/* IZI CRM — Light Google Sheets Style */
/* Aesthetic: Clean, readable, light — brand blue + orange accents */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
    --primary-color: #074783;
    --primary-hover: #053668;
    --primary-light: #e8f0f8;
    --primary-glow: rgba(7, 71, 131, 0.12);
    --accent-color: #F77350;
    --accent-hover: #e5623f;
    --secondary-color: #5f6368;
    --success-color: #188038;
    --warning-color: #e37400;
    --danger-color: #d93025;
    --bg-color: #ffffff;
    --card-bg: #ffffff;
    --text-color: #202124;
    --text-muted: #5f6368;
    --border-color: #dadce0;
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
    --shadow-lg: 0 2px 6px rgba(0, 0, 0, 0.08);
    --shadow-xl: 0 4px 12px rgba(0, 0, 0, 0.1);
    --radius: 4px;
    --radius-lg: 8px;
    --header-bg: #ffffff;
    --header-text: #202124;
    --transition: 0.15s ease;
    --surface-bg: #f8f9fa;
    --hover-bg: #f1f3f4;
    --surface-tint: #f0f5fa;
    --text-secondary: #9ca3af;
    --border-light: #e8eaed;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--bg-color);
    color: var(--text-color);
    min-height: 100vh;
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ========== LOGIN PAGE ========== */
.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-bg);
    position: relative;
    overflow: hidden;
}

.login-page::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--primary-color), var(--accent-color));
    top: 0;
    left: 0;
    pointer-events: none;
}

.login-page::after {
    content: none;
}

.login-container {
    background: var(--card-bg);
    padding: 40px 36px;
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 1px var(--border-color);
    width: 100%;
    max-width: 400px;
    text-align: center;
    position: relative;
    z-index: 1;
    animation: loginAppear 0.4s ease;
}

@keyframes loginAppear {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.login-container h1 {
    color: var(--primary-color);
    margin-bottom: 6px;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.3px;
}

.login-subtitle {
    color: var(--text-muted);
    margin-bottom: 28px;
    font-size: 0.9rem;
    font-weight: 400;
}

.forgot-password {
    display: block;
    margin-top: 18px;
    color: var(--primary-color);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    transition: color var(--transition);
}

.forgot-password:hover {
    color: var(--primary-hover);
    text-decoration: none;
}

.error-message {
    color: var(--danger-color);
    font-size: 0.85rem;
    margin-top: 12px;
    font-weight: 500;
}

/* 2FA & Password Recovery */
.twofa-header {
    text-align: center;
    margin-bottom: 24px;
}

.twofa-icon {
    font-size: 44px;
    display: block;
    margin-bottom: 12px;
}

.twofa-header h3 {
    font-size: 1.2rem;
    color: var(--text-color);
    margin: 0;
    font-weight: 700;
}

.twofa-info {
    text-align: center;
    color: var(--text-muted);
    font-size: 0.85rem;
    margin-bottom: 24px;
}

.code-input {
    text-align: center;
    font-size: 28px;
    letter-spacing: 10px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
}

.twofa-actions {
    display: flex;
    justify-content: space-between;
    margin-top: 18px;
}

.twofa-actions a {
    color: var(--primary-color);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    transition: color var(--transition);
}

.twofa-actions a:hover {
    color: var(--primary-hover);
}

/* ========== MAIN APP ========== */
.main-app {
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
}

.hidden {
    display: none !important;
}

/* ========== HEADER ========== */
.header {
    background: var(--header-bg);
    padding: 0 20px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid var(--border-color);
    box-shadow: none;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 20px;
}

.logo {
    display: flex;
    align-items: center;
    gap: 8px;
}

.logo svg {
    border-radius: 4px;
    flex-shrink: 0;
}

.logo-text {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--primary-color);
    letter-spacing: -0.3px;
}

.main-nav {
    display: flex;
    gap: 0;
}

.nav-btn {
    padding: 6px 14px;
    background: transparent;
    border: none;
    border-radius: var(--radius);
    font-size: 0.825rem;
    font-weight: 500;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    position: relative;
}

.nav-btn:hover {
    background: var(--hover-bg);
    color: var(--text-color);
}

.nav-btn.active {
    background: var(--primary-light);
    color: var(--primary-color);
    font-weight: 600;
    box-shadow: none;
}

.header-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.user-info {
    text-align: right;
}

.user-info span {
    display: block;
    color: var(--text-color);
    font-size: 0.82rem;
    font-weight: 500;
}

.user-role {
    font-size: 0.7rem !important;
    color: var(--text-muted) !important;
    font-weight: 400 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-logout {
    padding: 6px 12px;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.8rem;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
}

.btn-logout:hover {
    background: var(--danger-color);
    color: white;
    border-color: var(--danger-color);
}

.logout-menu {
    position: relative;
    display: inline-block;
}

.logout-caret {
    display: inline-block;
    margin-left: 4px;
    font-size: 0.75rem;
    line-height: 1;
}

.logout-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    min-width: 220px;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    z-index: 1000;
}

.logout-dropdown[hidden] {
    display: none;
}

.logout-dropdown-item {
    display: block;
    width: 100%;
    padding: 10px 14px;
    background: transparent;
    border: 0;
    text-align: left;
    font-family: inherit;
    font-size: 0.85rem;
    color: var(--text-color);
    cursor: pointer;
    transition: background var(--transition);
}

.logout-dropdown-item:hover {
    background: var(--bg-color);
}

.logout-dropdown-item + .logout-dropdown-item {
    border-top: 1px solid var(--border-color);
}

/* Тугл «Кнопка Правки поверх окон» в меню «Выход» (заказчик 20.06.2026, п.9) */
.logout-dropdown-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
.logout-dropdown-toggle input {
    margin: 0;
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: var(--primary-color, #2563eb);
}
.logout-dropdown-sep { height: 1px; background: var(--border-color); margin: 0; }

/* ========== CONTROL BAR ========== */
.control-bar {
    background: var(--card-bg);
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    border-bottom: 1px solid var(--border-color);
}

.period-filters {
    display: flex;
    align-items: center;
    gap: 8px;
}

.period-filters label {
    font-weight: 600;
    color: var(--text-muted);
    font-size: 0.825rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.period-filters select {
    padding: 7px 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.85rem;
    background: var(--bg-color);
    color: var(--text-color);
    font-family: inherit;
    cursor: pointer;
    transition: border-color var(--transition);
}

.period-filters select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px var(--primary-glow);
}

.global-search {
    flex: 1;
    max-width: 420px;
}

.global-search input {
    width: 100%;
    padding: 9px 16px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.85rem;
    background: var(--bg-color);
    font-family: inherit;
    transition: all var(--transition);
}

.global-search input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px var(--primary-glow);
    background: var(--card-bg);
}

.global-search input::placeholder {
    color: var(--text-secondary);
}

.btn-settings {
    padding: 8px 14px;
    background: var(--bg-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.825rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: all var(--transition);
    font-family: inherit;
    color: var(--text-muted);
    font-weight: 500;
}

.btn-settings:hover {
    background: var(--border-color);
    color: var(--text-color);
}

/* ========== MAIN CONTENT ========== */
.main-content {
    flex: 1;
    padding: 16px 20px;
    overflow-x: hidden;
    overflow-y: hidden;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    background: var(--surface-bg);
}

.main-content > .tab-panel.active {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* setPaymentsView переключает hidden на этих контейнерах — но display:grid/block перекрывал hidden, и оба view рендерились одновременно */
#paymentsTab .pm-table-card[hidden],
#paymentsTab .pm-feed-grid[hidden] { display: none !important; }

#clientCardTab.active,
#auditTab.active,
#auditFeedTab.active,
#rulesTab.active,
#salesTab.active,
#postingTab.active,
#financeBotTab.active,
#broadcastTab.active,
#paymentsTab.active,
#taxesSvodTab.active,
#esfSvodTab.active,
#updatesTab.active {
    overflow-y: auto;
}

/* ========== TAB PANELS ========== */
.tab-panel {
    display: none;
}

.tab-panel.active {
    display: flex;
    flex-direction: column;
}

.tab-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-shrink: 0;
}

.tab-header h2 {
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: normal;
    color: var(--text-color);
}

.tab-actions {
    display: flex;
    gap: 10px;
}

/* ========== STATS BAR ========== */
.stats-bar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 24px;
    flex-shrink: 0;
}

.stat-item {
    background: var(--card-bg);
    padding: 14px 18px;
    border-radius: var(--radius);
    box-shadow: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid var(--border-color);
    transition: all var(--transition);
}

.stat-item:hover {
    background: var(--surface-bg);
}

.stat-label {
    color: var(--text-muted);
    font-size: 0.8rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.stat-value {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--primary-color);
    font-variant-numeric: tabular-nums;
}

/* ========== TABLES ========== */
.table-wrapper {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: none;
    overflow-x: scroll;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    display: block;
    scrollbar-width: thin;
    scrollbar-color: #c1c8d1 transparent;
    position: relative;
    flex: 1;
    min-height: 0;
    border: 1px solid var(--border-color);
}

.table-wrapper::-webkit-scrollbar {
    height: 8px;
    width: 8px;
}

.table-wrapper::-webkit-scrollbar-track {
    background: transparent;
}

.table-wrapper::-webkit-scrollbar-thumb {
    background: #c1c8d1;
    border-radius: var(--radius);
}

.table-wrapper::-webkit-scrollbar-thumb:hover {
    background: var(--text-secondary);
}

.data-table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    table-layout: auto;
}

.data-table th,
.data-table td {
    padding: 8px 12px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    white-space: nowrap;
    font-size: 13px;
    line-height: 1.4;
}

.data-table th {
    background: var(--surface-bg);
    font-weight: 500;
    font-size: 12px;
    color: var(--text-muted);
    cursor: pointer;
    user-select: none;
    position: sticky;
    top: 0;
    z-index: 10;
    text-transform: none;
    letter-spacing: normal;
    border-bottom: 1px solid var(--border-color);
    border-right: 1px solid var(--border-light);
    min-width: 70px;
    will-change: transform;
}

.data-table th:last-child {
    border-right: none;
}

.data-table th:hover {
    background: var(--hover-bg);
    color: var(--text-color);
}

.data-table tbody tr {
    transition: background var(--transition);
}

.data-table tbody tr:hover {
    background: var(--surface-bg);
}

.data-table tbody tr:nth-child(even) {
    background: transparent;
}

.data-table tbody tr:nth-child(even):hover {
    background: var(--surface-bg);
}

.data-table tbody tr:last-child td {
    border-bottom: none;
}

.loading {
    text-align: center;
    color: var(--text-muted);
    padding: 48px !important;
    font-weight: 500;
}

.no-data {
    text-align: center;
    color: var(--text-muted);
    padding: 48px !important;
}

/* Clickable row */
.clickable-row {
    cursor: pointer;
}

.clickable-row:hover {
    background: var(--primary-light) !important;
}

/* ========== STATUS BADGES ========== */
.status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--radius);
    font-size: 0.73rem;
    font-weight: 600;
    letter-spacing: 0.2px;
}

.status-active {
    background: #d1fae5;
    color: #065f46;
}

.status-working {
    background: #fef3c7;
    color: #92400e;
}

.status-paused {
    background: #fed7aa;
    color: #c2410c;
}

.status-closed {
    background: #fecaca;
    color: #991b1b;
}

.status-submitted {
    background: #d1fae5;
    color: #065f46;
}

.status-pending {
    background: #f3f4f6;
    color: #4b5563;
}

.status-overdue {
    background: #fecaca;
    color: #991b1b;
}

/* Task statuses */
.status-new {
    background: #dbeafe;
    color: #1e40af;
}

.status-progress {
    background: #fef3c7;
    color: #92400e;
}

.status-done {
    background: #d1fae5;
    color: #065f46;
}

.status-error {
    background: #fecaca;
    color: #991b1b;
}

.status-success {
    background: #d1fae5;
    color: #065f46;
}

.error {
    color: #991b1b;
}

.empty {
    color: var(--text-muted);
    text-align: center;
    font-style: italic;
}

.priority-high {
    color: #991b1b;
    font-weight: 600;
}

/* Circular spinner */
.status-badge-spinner {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px 3px 4px;
    background: var(--surface-tint);
    border-radius: var(--radius);
}

.spinner-ring {
    width: 22px;
    height: 22px;
    animation: spin 1.2s linear infinite;
}

.spinner-track {
    fill: none;
    stroke: #a3c4e3;
    stroke-width: 3;
}

.spinner-arc {
    fill: none;
    stroke: var(--primary-color);
    stroke-width: 3;
    stroke-dasharray: 60, 88;
    stroke-linecap: round;
}

.spinner-text {
    font-size: 0.73rem;
    font-weight: 600;
    color: var(--primary-hover);
}

@keyframes spin {
    100% { transform: rotate(360deg); }
}

.priority-urgent {
    background-color: #fffbeb !important;
}

.priority-urgent td:first-child {
    border-left: 3px solid #f59e0b;
}

/* Task details */
.task-details {
    line-height: 1.8;
}

.task-details p {
    margin: 8px 0;
}

.task-log {
    background: var(--surface-bg);
    padding: 14px;
    border-radius: var(--radius);
    font-size: 0.85rem;
    white-space: pre-wrap;
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid var(--border-color);
    font-family: 'JetBrains Mono', monospace;
}

/* ========== ACTION BUTTONS ========== */
.action-btns {
    white-space: nowrap;
    vertical-align: middle;
}

.btn-icon {
    padding: 5px 10px;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    cursor: pointer;
    font-size: 0.75rem;
    transition: all var(--transition);
    font-family: inherit;
    margin-right: 4px;
}

.btn-icon:last-child {
    margin-right: 0;
}

.btn-icon:hover {
    background: var(--bg-color);
}

.btn-icon.edit:hover {
    background: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.btn-icon.delete:hover {
    background: var(--danger-color);
    color: white;
    border-color: var(--danger-color);
}

.btn-icon.parser {
    color: var(--primary-color);
    border-color: var(--primary-color);
}

.btn-icon.parser:hover {
    background: var(--primary-color);
    color: white;
}

/* Parser Launch Modal Info — Gradient Modern */
#parserLaunchModal .parser-launch-info {
    margin: -12px 28px 0;
    padding: 16px 20px;
    background: linear-gradient(135deg, #f0f4ff 0%, #f5f0ff 100%);
    border-radius: 14px;
    position: relative;
    z-index: 1;
    border: 1px solid rgba(102, 126, 234, 0.1);
    color: #1e3a5f;
}

#parserLaunchModal .parser-launch-info .info-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
}

#parserLaunchModal .parser-launch-info .info-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #8b7fc7;
    font-weight: 700;
    opacity: 1;
}

#parserLaunchModal .parser-launch-info .info-value {
    font-size: 14px;
    font-weight: 600;
    color: #1e3a5f;
}

#parserLaunchOrgInn {
    font-family: 'SF Mono', 'Menlo', monospace;
    letter-spacing: 0.5px;
}

/* ========== SUB-TABS ========== */
.sub-tabs {
    display: flex;
    gap: 2px;
    margin-bottom: 20px;
    flex-shrink: 0;
    border-bottom: 2px solid var(--border-color);
    padding-bottom: 0;
}

.sub-tab-btn {
    padding: 9px 18px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    font-size: 0.85rem;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    font-weight: 500;
}

.sub-tab-btn:hover {
    color: var(--text-color);
    background: var(--hover-bg);
}

.sub-tab-btn.active {
    color: var(--primary-color);
    border-bottom-color: var(--primary-color);
    font-weight: 600;
}

.sub-panel {
    display: none;
}

.sub-panel.active {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

/* ========== SALYK SUB-TABS ========== */
.salyk-sub-tabs {
    display: flex;
    gap: 2px;
    margin-bottom: 16px;
    background: var(--hover-bg);
    padding: 3px;
    border-radius: var(--radius);
    width: fit-content;
}

.salyk-sub-btn {
    padding: 5px 12px;
    background: transparent;
    border: none;
    border-radius: var(--radius);
    font-size: 12px;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    font-weight: 500;
}

.salyk-sub-btn:hover {
    color: var(--text-color);
}

.salyk-sub-btn.active {
    background: #ffffff;
    color: var(--primary-color);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.salyk-sub-panel {
    display: none;
}

.salyk-sub-panel.active {
    display: block;
}

/* Salyk Two-level Navigation */
.salyk-nav {
    margin-bottom: 16px;
}

.salyk-group-tabs {
    display: flex;
    gap: 2px;
    margin-bottom: 8px;
    background: var(--hover-bg);
    padding: 3px;
    border-radius: var(--radius);
    width: fit-content;
}

.salyk-group-btn {
    padding: 6px 14px;
    background: transparent;
    border: none;
    border-radius: var(--radius);
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
    text-transform: none;
    letter-spacing: normal;
    font-family: inherit;
}

.salyk-group-btn:hover {
    color: var(--text-color);
    background: rgba(0,0,0,0.04);
}

.salyk-group-btn.active {
    background: #ffffff;
    color: var(--primary-color);
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.file-download-btn {
    display: inline-block;
    padding: 3px 10px;
    background: var(--primary-color);
    color: white;
    border-radius: var(--radius);
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    transition: background var(--transition);
}

.file-download-btn:hover {
    background: var(--primary-hover);
}

/* ========== CLIENT CARD ========== */
.client-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.card-section {
    background: var(--card-bg);
    border-radius: var(--radius);
    padding: 18px;
    box-shadow: none;
    border: 1px solid var(--border-color);
}

.card-section h3 {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--border-color);
    color: var(--text-color);
    letter-spacing: -0.2px;
}

.card-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}

.info-item {
    display: flex;
    flex-direction: column;
}

.info-label {
    font-size: 0.73rem;
    color: var(--text-muted);
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 500;
}

.info-value {
    font-weight: 600;
    color: var(--text-color);
}

/* Client Card Period Filter */
.card-period-filter {
    background: var(--card-bg);
    border-radius: var(--radius);
    padding: 16px 22px;
    box-shadow: var(--shadow);
    border: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.card-period-filter label {
    font-weight: 600;
    color: var(--text-muted);
    font-size: 0.825rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.card-period-filter select {
    padding: 7px 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    background: var(--bg-color);
    cursor: pointer;
    font-family: inherit;
    transition: border-color var(--transition);
}

.card-period-filter select:focus {
    outline: none;
    border-color: var(--primary-color);
}

.btn-back {
    padding: 8px 16px;
    background: var(--bg-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    cursor: pointer;
    margin-right: 12px;
    font-size: 0.85rem;
    font-family: inherit;
    font-weight: 500;
    transition: all var(--transition);
    color: var(--text-muted);
}

.btn-back:hover {
    background: var(--border-color);
    color: var(--text-color);
}

/* ========== BUTTONS ========== */
.btn-primary {
    padding: 8px 18px;
    background: var(--primary-color);
    color: white;
    border: none;
    border-radius: var(--radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    box-shadow: none;
}

.btn-primary:hover {
    background: var(--primary-hover);
    box-shadow: 0 1px 3px rgba(7, 71, 131, 0.2);
}

.btn-primary:active {
    background: #042d54;
}

/* Мягкая блокировка: кнопка остаётся кликабельной (по клику показывает тост-объяснение
   причины), но визуально приглушена — чтобы не выглядела как обычное активное действие
   (Уля, 30.05.2026: «Принять на работу» при сданной 161 выглядела активной, но молчала). */
.btn-primary.emp2-btn-muted,
.btn-secondary.emp2-btn-muted {
    opacity: 0.55;
}
.btn-primary.emp2-btn-muted:hover {
    background: var(--primary-color);
    box-shadow: none;
}

/* Глобальный вид заблокированных (native disabled) кнопок — раньше .btn-primary/.btn-danger
   при [disabled] оставались яркими и выглядели кликабельными. */
.btn-primary:disabled,
.btn-secondary:disabled,
.btn-danger:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
}
.btn-primary:disabled:hover {
    background: var(--primary-color);
    box-shadow: none;
}
.btn-secondary:disabled:hover {
    background: var(--bg-color);
}

.btn-secondary {
    padding: 9px 20px;
    background: var(--bg-color);
    color: var(--text-color);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    font-weight: 500;
}

.btn-secondary:hover {
    background: var(--border-color);
}

.btn-danger {
    padding: 9px 20px;
    background: var(--danger-color);
    color: white;
    border: none;
    border-radius: var(--radius);
    font-size: 0.85rem;
    cursor: pointer;
    font-family: inherit;
    font-weight: 600;
    transition: all var(--transition);
}

.btn-danger:hover {
    background: #dc2626;
    transform: translateY(-1px);
}

.btn-full {
    width: 100%;
}

/* ========== MODALS ========== */
.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.32);
    backdrop-filter: none;
    z-index: 1000;
    align-items: center;
    justify-content: center;
}

.modal.show {
    display: flex;
    animation: modalBgAppear 0.25s ease;
}

@keyframes modalBgAppear {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-content {
    background: var(--card-bg);
    border-radius: var(--radius-lg);
    width: 100%;
    max-width: 500px;
    max-height: 85vh;
    margin: 20px;
    overflow-y: auto;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    animation: modalSlideUp 0.2s ease;
    border: 1px solid var(--border-color);
}

@keyframes modalSlideUp {
    from {
        opacity: 0;
        transform: translateY(16px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.modal-content-wide {
    max-width: 580px;
}

.modal-large {
    max-width: 700px;
}

.modal-header {
    padding: 22px 26px;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.modal-header h2 {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.2px;
}

.modal-close {
    background: none;
    border: none;
    font-size: 1.4rem;
    cursor: pointer;
    color: var(--text-muted);
    line-height: 1;
    padding: 4px;
    border-radius: var(--radius);
    transition: all var(--transition);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-close:hover {
    color: var(--text-color);
    background: var(--bg-color);
}

/* ========== FORMS ========== */
form {
    padding: 24px 26px;
}

.form-group {
    margin-bottom: 18px;
}

.form-group label {
    display: block;
    font-size: 0.825rem;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--text-color);
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 13px;
    transition: all var(--transition);
    font-family: inherit;
    background: var(--card-bg);
    color: var(--text-color);
}

.form-group select,
.period-field select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23667085' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
    cursor: pointer;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px var(--primary-glow);
    background: var(--card-bg);
}

.form-group input::placeholder {
    color: var(--text-secondary);
}

.form-group input[type="checkbox"] {
    width: auto;
    margin-right: 8px;
}

/* iOS-style toggle switch */
.ios-toggle {
    display: flex !important;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--text-color);
    user-select: none;
    margin-bottom: 0 !important;
    line-height: 1;
}

.ios-toggle input[type="checkbox"] {
    display: none !important;
}

.ios-toggle-track {
    display: inline-block;
    width: 44px;
    min-width: 44px;
    height: 24px;
    background: #d1d5db;
    border-radius: 12px;
    position: relative;
    transition: background 0.3s;
    flex-shrink: 0;
    vertical-align: middle;
}

.ios-toggle-track::after {
    content: '';
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    position: absolute;
    top: 2px;
    left: 2px;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.ios-toggle input:checked + .ios-toggle-track {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
}

.ios-toggle input:checked + .ios-toggle-track::after {
    transform: translateX(20px);
}

.ios-toggle span:last-child {
    line-height: 24px;
}

/* Расторгнут + дата в одну строку */
.toggle-date-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.toggle-date-row .form-group {
    margin-bottom: 0;
}

.toggle-date-row .ios-toggle {
    white-space: nowrap;
}

.toggle-date-row .termination-date-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.toggle-date-row .termination-date-inline label {
    white-space: nowrap;
    margin-bottom: 0;
    font-size: 0.825rem;
    font-weight: 600;
}

.toggle-date-row .termination-date-inline input {
    flex: 1;
    min-width: 0;
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 13px;
    font-family: inherit;
    background: var(--card-bg);
    color: var(--text-color);
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-group.full-width {
    grid-column: span 2;
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px 20px;
    border-top: 1px solid var(--border-color);
    margin-top: 8px;
    background: var(--surface-bg);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

/* Column Settings */
.columns-settings {
    padding: 22px 26px;
}

.columns-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}

.columns-list label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    cursor: pointer;
    padding: 6px 8px;
    border-radius: var(--radius);
    transition: background var(--transition);
}

.columns-list label:hover {
    background: var(--bg-color);
}

.columns-templates {
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
}

.columns-templates h4 {
    margin-bottom: 12px;
    font-size: 0.85rem;
    color: var(--text-muted);
    font-weight: 600;
}

.columns-templates select {
    width: 100%;
    padding: 8px 12px;
    margin-bottom: 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-family: inherit;
}

/* ========== WHATSAPP LINK ========== */
.whatsapp-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: transparent;
    border-radius: var(--radius);
    transition: transform var(--transition);
    text-decoration: none;
    color: #25d366;
}

.whatsapp-link:hover {
    transform: scale(1.15);
    text-decoration: none;
}

.whatsapp-link .wa-icon {
    display: block;
}

/* ========== INLINE FILTERS ========== */
.filter-row {
    background: var(--surface-bg);
}

.filter-row th {
    padding: 6px 8px;
    top: 41px;
    border-bottom: 2px solid var(--border-color);
}

.column-filter-input {
    width: 100%;
    padding: 6px 8px;
    border: 1.5px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.75rem;
    background: var(--card-bg);
    font-family: inherit;
    transition: border-color var(--transition);
}

.column-filter-input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px var(--primary-glow);
}

.btn-clear-filters {
    padding: 5px 12px;
    background: var(--danger-color);
    color: white;
    border: none;
    border-radius: var(--radius);
    font-size: 0.75rem;
    cursor: pointer;
    font-family: inherit;
    font-weight: 600;
    transition: background var(--transition);
}

.btn-clear-filters:hover {
    background: #dc2626;
}

/* ========== INLINE EDITING ========== */
.editable-cell {
    padding: 0 !important;
}

.inline-edit {
    width: 100%;
    padding: 10px 14px;
    border: none;
    background: transparent;
    font-size: 0.875rem;
    font-family: inherit;
}

.inline-edit:focus {
    outline: none;
    background: var(--surface-tint);
}

/* Form hints */
.form-hint {
    display: block;
    margin-top: 4px;
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* File links */
.file-link {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 500;
    transition: color var(--transition);
}

.file-link:hover {
    color: var(--primary-hover);
    text-decoration: underline;
}

/* Comment cell */
.comment-cell {
    max-width: 200px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--text-muted);
    font-size: 0.85rem;
}

/* Archived row */
.archived-row {
    opacity: 0.55;
    background: var(--surface-bg);
}

.status-archived {
    background: #94a3b8;
    color: white;
}

/* View button */
.btn-icon.view {
    background: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.btn-icon.view:hover {
    background: var(--primary-hover);
}

/* ========== PRIORITY & OVERDUE ========== */
.priority-overdue {
    background: #fef2f2 !important;
}

.priority-overdue td {
    color: #991b1b;
    font-weight: 500;
}

.priority-urgent {
    background: #fffbeb !important;
}

.priority-urgent td {
    color: #92400e;
}

.priority-soon {
    background: #fefce8 !important;
}

.days-left {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.priority-overdue .days-left {
    color: var(--danger-color);
}

.priority-urgent .days-left {
    color: var(--warning-color);
}

/* Sortable headers */
.sortable,
.sortable-th {
    cursor: pointer;
    user-select: none;
}

.sortable:hover,
.sortable-th:hover {
    background: var(--hover-bg);
}

/* Full width info item */
.info-item.full-width {
    grid-column: 1 / -1;
}

/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
    .header {
        flex-wrap: wrap;
        height: auto;
        padding: 12px;
    }

    .main-nav {
        order: 3;
        width: 100%;
        margin-top: 12px;
        justify-content: center;
        flex-wrap: wrap;
    }

    .control-bar {
        flex-wrap: wrap;
    }

    .global-search {
        order: 3;
        max-width: 100%;
        width: 100%;
        margin-top: 12px;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .form-group.full-width {
        grid-column: span 1;
    }

    .columns-list {
        grid-template-columns: 1fr;
    }
}

/* ========== FILES (DMS) ========== */
.files-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--text-muted);
    font-weight: 500;
}

.checkbox-label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: var(--primary-color);
}

.files-table {
    font-size: 0.85rem;
}

.archived-row {
    opacity: 0.55;
    background-color: var(--surface-bg);
}

.status-archived {
    background-color: #6b7280;
    color: white;
}

.btn-sm {
    padding: 5px 12px;
    font-size: 0.75rem;
}

.btn-icon.download {
    background-color: var(--success-color);
    color: white;
    border-color: var(--success-color);
}

/* Document folders */
.doc-folder {
    margin-bottom: 8px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    overflow: hidden;
}

.doc-folder-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    background: var(--surface-bg);
    cursor: pointer;
    user-select: none;
    font-size: 0.9rem;
    font-weight: 500;
    transition: background var(--transition);
}

.doc-folder-header:hover {
    background: var(--hover-bg);
}

.doc-folder-icon {
    font-size: 1.1rem;
}

.doc-folder-toggle {
    margin-left: auto;
    font-size: 0.7rem;
    transition: transform 0.2s;
    color: var(--text-muted);
}

.doc-folder.collapsed .doc-folder-toggle {
    transform: rotate(-90deg);
}

.doc-folder.collapsed .doc-folder-content {
    display: none;
}

.doc-folder-content {
    padding: 0;
}

.doc-folder-content .data-table {
    margin: 0;
    border-radius: 0;
}

.btn-icon.download:hover {
    background-color: #059669;
}

.btn-icon.archive {
    background-color: #6b7280;
    color: white;
    border-color: #6b7280;
}

.btn-icon.archive:hover {
    background-color: #4b5563;
}

.btn-icon.restore {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.btn-icon.restore:hover {
    background-color: var(--primary-hover);
}

.file-input,
input[type="file"].form-control {
    width: 100%;
    padding: 10px 14px;
    border: 2px dashed var(--border-color);
    border-radius: var(--radius);
    background: var(--bg-color);
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.file-input:hover,
input[type="file"].form-control:hover {
    border-color: var(--primary-color);
    background: var(--surface-tint);
}

input[type="file"].form-control::file-selector-button {
    padding: 6px 16px;
    background: var(--primary-color);
    color: white;
    border: none;
    border-radius: var(--radius);
    font-size: 0.82rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    margin-right: 12px;
    transition: background 0.15s;
}

input[type="file"].form-control::file-selector-button:hover {
    background: var(--primary-hover);
}

.modal-sm {
    max-width: 450px;
}

/* Dictionaries */
.inactive-row {
    opacity: 0.45;
    background-color: var(--surface-bg) !important;
}

.inactive-row td {
    color: var(--text-muted);
}

/* ========== NOTIFICATION & CONFIRM MODALS ========== */
.notification-modal .modal-notification,
.confirm-modal .modal-confirm {
    max-width: 420px;
    text-align: center;
    padding: 36px;
    position: relative;
}

/* Широкий режим confirm-модалки — для богатого контента (таблицы, списки).
   Включается опцией { wide:true } в showConfirm(). */
.confirm-modal.is-wide .modal-confirm {
    max-width: 680px;
    text-align: left;
    padding: 26px 30px;
}
.confirm-modal.is-wide .confirm-icon { display: none; }
.confirm-modal.is-wide .confirm-message { margin-top: 4px; }

.confirm-close {
    position: absolute;
    top: 12px;
    right: 12px;
    background: none;
    border: none;
    font-size: 1.3rem;
    color: var(--text-muted);
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius);
    transition: all var(--transition);
    line-height: 1;
}
.confirm-close:hover {
    color: var(--text-color);
    background: var(--bg-color);
}

.notification-icon {
    font-size: 48px;
    margin-bottom: 16px;
}

.notification-icon.success { color: var(--success-color); }
.notification-icon.error { color: var(--danger-color); }
.notification-icon.warning { color: var(--warning-color); }
.notification-icon.info { color: var(--primary-color); }

.notification-title {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--text-color);
}

.notification-message {
    color: var(--text-muted);
    margin-bottom: 24px;
    line-height: 1.6;
    font-size: 0.9rem;
}

.notification-actions,
.confirm-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.confirm-icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--accent-color);
    color: white;
    font-size: 24px;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    box-shadow: none;
}

.confirm-message {
    font-size: 1rem;
    color: var(--text-color);
    margin-bottom: 24px;
    line-height: 1.6;
}

/* Prompt modal */
.prompt-modal .modal-prompt {
    max-width: 420px;
    padding: 28px;
}

.prompt-message {
    font-size: 1rem;
    color: var(--text-color);
    margin-bottom: 16px;
    font-weight: 500;
}

.prompt-input {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.875rem;
    margin-bottom: 20px;
    font-family: inherit;
    background: var(--bg-color);
    transition: all var(--transition);
}

.prompt-input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px var(--primary-glow);
    background: var(--card-bg);
}

.prompt-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

/* ========== IMPORT MODAL ========== */
.import-info {
    background: var(--bg-color);
    border-radius: var(--radius);
    padding: 16px;
    margin-bottom: 20px;
    font-size: 0.875rem;
    border: 1px solid var(--border-color);
}

.import-info p {
    margin: 0 0 8px;
}

.import-info ul {
    margin: 8px 0;
    padding-left: 20px;
}

.import-info li {
    margin: 4px 0;
    color: var(--text-muted);
}

.import-preview {
    margin-top: 20px;
    padding: 16px;
    background: var(--bg-color);
    border-radius: var(--radius);
    border: 1px solid var(--border-color);
}

.import-preview h4 {
    margin: 0 0 12px;
    font-size: 0.875rem;
    font-weight: 700;
}

.preview-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

.preview-table th,
.preview-table td {
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    text-align: left;
}

.preview-table th {
    background: var(--surface-bg);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.3px;
}

#importTotalCount {
    margin-top: 12px;
    font-weight: 600;
    color: var(--primary-color);
}

/* ========== TOAST NOTIFICATIONS ========== */
.toast-container {
    position: fixed;
    top: 76px;
    right: 24px;
    z-index: 100000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.toast {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow-xl);
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 320px;
    max-width: 460px;
    pointer-events: auto;
    animation: slideInRight 0.35s cubic-bezier(0.16, 1, 0.3, 1), fadeOut 0.35s ease 2.65s forwards;
    border-left: 4px solid var(--primary-color);
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--primary-color);
}

.toast.success {
    border-left-color: var(--success-color);
}

.toast.error {
    border-left-color: var(--danger-color);
}

.toast.warning {
    border-left-color: var(--warning-color);
}

.toast-icon {
    font-size: 20px;
    flex-shrink: 0;
}

.toast.success .toast-icon { color: var(--success-color); }
.toast.error .toast-icon { color: var(--danger-color); }
.toast.warning .toast-icon { color: var(--warning-color); }
.toast.info .toast-icon { color: var(--primary-color); }

.toast-content {
    flex: 1;
}

.toast-title {
    font-weight: 700;
    font-size: 0.85rem;
    margin-bottom: 2px;
}

.toast-message {
    color: var(--text-muted);
    font-size: 0.8rem;
}

.toast-close {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 18px;
    padding: 4px;
    opacity: 0.5;
    transition: opacity var(--transition);
    border-radius: 4px;
}

.toast-close:hover {
    opacity: 1;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

/* ========== TASKS DASHBOARD ========== */
.tasks-dashboard {
    margin-bottom: 8px;
}

/* Toggle filters button */
.btn-toggle-filters {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 16px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    background: var(--card-bg);
    font-size: 0.82rem;
    font-family: inherit;
    font-weight: 500;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
}

.btn-toggle-filters:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.btn-toggle-filters.active {
    background: var(--primary-color);
    color: #fff;
    border-color: var(--primary-color);
}

.btn-toggle-filters svg {
    flex-shrink: 0;
}

.tasks-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    padding: 14px 18px;
    background: var(--card-bg);
    border-radius: var(--radius);
    margin-bottom: 8px;
    align-items: center;
    box-shadow: var(--shadow);
    border: 1px solid var(--border-color);
}

.tasks-filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

.task-filter-btn {
    padding: 4px 12px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: white;
    font-size: 12px;
    cursor: pointer;
    transition: all var(--transition);
    color: var(--text-muted);
    font-family: inherit;
    font-weight: 500;
}

.task-filter-btn:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.task-filter-btn.active {
    background: var(--primary-color);
    color: #fff;
    border-color: var(--primary-color);
    box-shadow: none;
}

.task-period-group {
    display: flex;
    gap: 2px;
    margin-left: 4px;
    padding-left: 10px;
    border-left: 2px solid var(--border-color);
}

.task-custom-period {
    display: flex;
    align-items: center;
    gap: 4px;
}

.task-custom-period input[type="date"],
.task-custom-period input.flatpickr-input + input {
    padding: 3px 6px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.75rem;
    background: var(--bg-color);
    font-family: inherit;
}

.tasks-filter-selects {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-left: auto;
}

.tasks-filter-selects .filter-group {
    display: flex;
    align-items: center;
    gap: 4px;
}

.tasks-filter-selects label {
    font-size: 0.73rem;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.tasks-filter-selects select {
    padding: 5px 10px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    background: #fff;
    font-size: 0.78rem;
    font-family: inherit;
    color: var(--text-color);
    min-width: 100px;
    cursor: pointer;
    transition: border-color var(--transition);
}

.tasks-filter-selects select:hover,
.tasks-filter-selects select:focus {
    border-color: var(--primary-color);
    outline: none;
}

/* Indicators inside filter bar */
.tasks-indicators {
    display: flex;
    gap: 6px;
    margin-left: 8px;
}


.task-indicator {
    padding: 3px 12px;
    border-radius: 16px;
    font-size: 12px;
    cursor: pointer;
    transition: all var(--transition);
    white-space: nowrap;
    font-weight: 600;
}

.task-indicator.active {
    box-shadow: 0 0 0 2px var(--primary-color);
}

.indicator-overdue {
    background: #fecaca;
    color: #991b1b;
}

.indicator-escalation {
    background: #fef3c7;
    color: #92400e;
}

.indicator-done {
    background: #d1fae5;
    color: #065f46;
}

/* Stats toggle */
.tasks-stats-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--card-bg);
    border-radius: var(--radius);
    margin-bottom: 8px;
    cursor: pointer;
    box-shadow: var(--shadow);
    border: 1px solid var(--border-color);
    font-size: 0.825rem;
    color: var(--text-muted);
    user-select: none;
    font-weight: 500;
    transition: all var(--transition);
}

.tasks-stats-toggle:hover {
    color: var(--text-color);
    border-color: var(--primary-color);
}

.tasks-stats-toggle .toggle-arrow {
    transition: transform 0.25s;
    font-size: 0.7rem;
}

.tasks-stats-toggle.expanded .toggle-arrow {
    transform: rotate(90deg);
}

.tasks-stats-grid {
    display: none;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 10px;
}

.tasks-stats-grid.visible {
    display: grid;
}

.tasks-stat-card {
    background: var(--card-bg);
    border-radius: var(--radius);
    padding: 12px 14px;
    box-shadow: var(--shadow);
    border: 1px solid var(--border-color);
}

.tasks-stat-card h4 {
    margin: 0 0 8px 0;
    font-size: 0.78rem;
    color: var(--text-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.stat-card-list {
    display: flex;
    flex-direction: column;
    gap: 3px;
    max-height: 120px;
    overflow-y: auto;
}

.stat-card-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 3px 0;
    font-size: 0.78rem;
}

.stat-card-name {
    color: var(--text-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 75%;
}

.stat-card-count {
    font-weight: 700;
    color: var(--primary-color);
    min-width: 20px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.stat-card-empty {
    color: var(--text-muted);
    font-size: 0.75rem;
    font-style: italic;
}

@media (max-width: 900px) {
    .tasks-stats-grid {
        grid-template-columns: 1fr;
    }
    .tasks-filter-bar {
        flex-direction: column;
        align-items: flex-start;
    }
    .tasks-filter-selects {
        margin-left: 0;
    }
    .tasks-indicators {
        margin-left: 0;
    }
}

/* Task Row Indicators */
.row-overdue {
    background-color: #fef2f2 !important;
}

.row-escalated {
    background-color: #fffbeb !important;
}

.indicator-overdue {
    color: #dc2626;
    font-weight: 700;
}

.indicator-escalated {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--radius);
    font-size: 0.73rem;
    font-weight: 600;
}

.escalation-1 { background: #fef3c7; color: #92400e; }
.escalation-2 { background: #fed7aa; color: #9a3412; }
.escalation-3 { background: #fecaca; color: #991b1b; }

/* Task Action Buttons */
.task-actions {
    white-space: nowrap;
}

.task-actions button {
    padding: 4px 8px;
    font-size: 0.72rem;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    white-space: nowrap;
    font-family: inherit;
    font-weight: 600;
    transition: all var(--transition);
}

.btn-start { background: var(--success-color); color: white; }
.btn-start:hover { background: #059669; }
.btn-pause { background: var(--warning-color); color: white; }
.btn-pause:hover { background: #d97706; }
.btn-stop { background: var(--danger-color); color: white; }
.btn-stop:hover { background: #dc2626; }
.btn-transfer { background: #6b7280; color: white; }
.btn-transfer:hover { background: #4b5563; }

/* code tag */
code {
    background: var(--border-light);
    padding: 2px 7px;
    border-radius: 5px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.82rem;
}

/* ========== Parser Launch Modal — Gradient Modern ========== */
#parserLaunchModal .modal-content-wide {
    max-width: 480px;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15), 0 1px 3px rgba(0,0,0,0.05);
    border: none;
}

#parserLaunchModal .modal-header {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    padding: 28px 28px 24px;
    position: relative;
    overflow: hidden;
    border-bottom: none;
    display: block;
}
#parserLaunchModal .modal-header::before {
    content: '';
    position: absolute;
    top: -30%;
    right: -10%;
    width: 200px;
    height: 200px;
    background: rgba(255,255,255,0.05);
    border-radius: 50%;
}
#parserLaunchModal .modal-header::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -5%;
    width: 150px;
    height: 150px;
    background: rgba(255,255,255,0.03);
    border-radius: 50%;
}
#parserLaunchModal .modal-header h2 {
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    position: relative;
    z-index: 1;
}
#parserLaunchModal .modal-subtitle {
    font-size: 13px;
    color: rgba(255,255,255,0.7);
    margin: 4px 0 0;
    position: relative;
    z-index: 1;
}
#parserLaunchModal .modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    border: none;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(10px);
    color: #fff;
    font-size: 18px;
    z-index: 2;
    padding: 0;
}
#parserLaunchModal .modal-close:hover {
    background: rgba(255,255,255,0.25);
    color: #fff;
}

#parserLaunchModal form {
    padding: 0;
}

/* Custom checkboxes — gradient */
#parserLaunchModal input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    border: 2px solid #d0d5e0;
    border-radius: 7px;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
    flex-shrink: 0;
    background: #fff;
}
#parserLaunchModal input[type="checkbox"]:checked {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    border-color: transparent;
    box-shadow: 0 2px 6px rgba(30, 58, 95, 0.3);
}
#parserLaunchModal input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 45%;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: translate(-50%, -50%) rotate(45deg);
}

/* Parser sections wrapper */
#parserLaunchModal .parser-sections {
    margin: 0;
    padding: 20px 28px 0;
    background: none;
    border-radius: 0;
    border: none;
}

/* Select All header */
#parserLaunchModal .section-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 12px;
    background: linear-gradient(135deg, #f8f9ff 0%, #fff 100%);
    border: 1px solid #e8ecf4;
    margin-bottom: 16px;
    cursor: pointer;
    transition: all 0.2s;
    font-weight: 600;
    font-size: 14px;
    color: #333;
}
#parserLaunchModal .section-header:hover {
    border-color: #c5d0e8;
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.06);
}

/* Checkbox list */
#parserLaunchModal .parser-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Checkbox items */
#parserLaunchModal .parser-checkbox-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px 11px 36px;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.15s;
    margin: 2px 0;
    border: none;
    background: none;
    font-size: 14px;
}
#parserLaunchModal .parser-checkbox-item:hover {
    background: linear-gradient(135deg, #f8f9ff 0%, #fff 100%);
    border-color: transparent;
}
#parserLaunchModal .parser-checkbox-item span {
    font-size: 14px;
    color: #444;
    font-weight: 500;
}

/* Period block */
#parserLaunchModal .parser-period-block {
    padding: 12px 28px 0;
    display: flex;
    align-items: center;
    gap: 16px;
}
.parser-period-label {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
}
/* Custom month picker */
.month-picker {
    flex: 1;
    position: relative;
}
.month-picker-display {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border: 2px solid #e8ecf4;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    background: linear-gradient(135deg, #f8f9ff 0%, #fff 100%);
    cursor: pointer;
    transition: all 0.2s;
    user-select: none;
}
.month-picker-display:hover {
    border-color: #c5d0e8;
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.06);
}
.month-picker-display.open {
    border-color: #2d5a8e;
    box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.1);
}
.month-picker-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.12), 0 2px 6px rgba(0,0,0,0.04);
    border: 1px solid #e8ecf4;
    padding: 16px;
    z-index: 100;
    animation: monthPickerIn 0.15s ease;
}
.month-picker-dropdown.open {
    display: block;
}
@keyframes monthPickerIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}
.month-picker-year-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.month-picker-year {
    font-size: 16px;
    font-weight: 700;
    color: #1e3a5f;
}
.month-picker-arrow {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: none;
    background: #f0f4ff;
    color: #1e3a5f;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.month-picker-arrow:hover {
    background: #e0e8f8;
}
.month-picker-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.month-picker-cell {
    padding: 10px 4px;
    border-radius: 10px;
    border: none;
    background: none;
    font-size: 13px;
    font-weight: 500;
    color: #444;
    cursor: pointer;
    transition: all 0.15s;
    text-align: center;
    font-family: inherit;
}
.month-picker-cell:hover {
    background: #f0f4ff;
    color: #1e3a5f;
}
.month-picker-cell.selected {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.25);
}
.month-picker-cell.current {
    border: 2px solid #2d5a8e;
    padding: 8px 2px;
}
.month-picker-actions {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f0;
}
.month-picker-clear,
.month-picker-today {
    background: none;
    border: none;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    padding: 4px 8px;
    border-radius: 6px;
    transition: all 0.15s;
}
.month-picker-clear {
    color: #999;
}
.month-picker-clear:hover {
    color: #666;
    background: #f5f5f5;
}
.month-picker-today {
    color: #2d5a8e;
}
.month-picker-today:hover {
    background: #f0f4ff;
}

/* Telegram toggle row */
#parserLaunchModal .parser-telegram-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 28px;
    margin-top: 8px;
    border-top: 1px solid #f0f0f0;
}
.parser-tg-label {
    font-size: 14px;
    color: #333;
    font-weight: 600;
}
.parser-tg-sub {
    font-size: 12px;
    color: #999;
    margin-top: 2px;
}
.parser-toggle {
    width: 48px;
    height: 26px;
    background: #e0e0e0;
    border-radius: 13px;
    cursor: pointer;
    position: relative;
    transition: background 0.3s;
    flex-shrink: 0;
}
.parser-toggle.active {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
}
.parser-toggle-knob {
    width: 22px;
    height: 22px;
    background: #fff;
    border-radius: 50%;
    position: absolute;
    top: 2px;
    left: 2px;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.parser-toggle.active .parser-toggle-knob {
    transform: translateX(22px);
}

/* Footer buttons */
#parserLaunchModal .form-actions {
    padding: 16px 28px 28px;
    display: flex;
    gap: 12px;
    border-top: none;
    background: none;
    margin-top: 0;
    justify-content: stretch;
}
#parserLaunchModal .form-actions .btn-secondary {
    flex: 1;
    padding: 14px;
    border-radius: 12px;
    border: 1px solid #e0e0e0;
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: #666;
}
#parserLaunchModal .form-actions .btn-secondary:hover {
    background: #f8f8f8;
    border-color: #ccc;
}
#parserLaunchModal .form-actions .btn-primary {
    flex: 2;
    padding: 14px;
    border-radius: 12px;
    border: none;
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.3);
}
#parserLaunchModal .form-actions .btn-primary:hover {
    box-shadow: 0 6px 20px rgba(30, 58, 95, 0.4);
    transform: translateY(-1px);
}

/* ========== Task Details View ========== */
.task-details-view {
    max-height: 70vh;
    overflow-y: auto;
}

.task-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}

.task-info-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.task-info-label {
    font-size: 0.72rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.task-info-value {
    font-weight: 600;
    color: var(--text-color);
}

.task-log-section {
    border-top: 2px solid var(--border-color);
    padding-top: 16px;
}

.task-log-section h4 {
    margin: 0 0 12px 0;
    font-size: 0.875rem;
    color: var(--text-muted);
    font-weight: 700;
}

.task-log-timeline {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 300px;
    overflow-y: auto;
}

.log-entry {
    display: flex;
    gap: 12px;
    padding: 10px 14px;
    background: var(--surface-bg);
    border-radius: var(--radius);
    border-left: 3px solid #e5e7eb;
    font-size: 0.85rem;
}

.log-entry.start {
    border-left-color: var(--primary-color);
    background: var(--surface-tint);
}

.log-entry.success {
    border-left-color: var(--success-color);
    background: #f0fdf4;
}

.log-entry.error {
    border-left-color: var(--danger-color);
    background: #fef2f2;
}

.log-entry.pause {
    border-left-color: var(--warning-color);
    background: #fffbeb;
}

.log-time {
    color: var(--text-muted);
    font-size: 0.75rem;
    white-space: nowrap;
    min-width: 130px;
    font-family: 'JetBrains Mono', monospace;
}

.log-message {
    color: var(--text-color);
    flex: 1;
}

.log-empty {
    color: var(--text-muted);
    font-style: italic;
    text-align: center;
    padding: 20px;
}

/* Additional task statuses */
.status-paused {
    background: #fef3c7;
    color: #92400e;
}

.status-stopped {
    background: #f3f4f6;
    color: #4b5563;
}

/* ========== Tasks Table ========== */
.task-number {
    font-weight: 700;
    color: var(--primary-color);
    text-align: center;
    min-width: 55px;
    font-variant-numeric: tabular-nums;
}

.task-date {
    white-space: nowrap;
    font-size: 0.78rem;
    color: var(--text-muted);
}

.task-inn {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.78rem;
    color: var(--text-muted);
}

.priority-high {
    color: #dc2626;
    font-weight: 700;
}

/* Task Details Container */
.task-details-container {
    padding: 18px 22px;
    max-height: 70vh;
    overflow-y: auto;
}

.task-details-view {
    padding: 0;
}

.task-details-view .task-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 24px;
    margin-bottom: 24px;
}

.task-details-view .task-info-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.task-details-view .task-info-label {
    font-size: 0.7rem;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.task-details-view .task-info-value {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-color);
    word-break: break-word;
}

.task-details-view .task-log-section {
    border-top: 2px solid var(--border-color);
    padding-top: 16px;
    margin-top: 8px;
}

.task-details-view .task-log-section h4 {
    margin: 0 0 12px 0;
    font-size: 0.875rem;
    font-weight: 700;
    color: #374151;
}

/* ========== COMPACT TABLE OPTIMIZATIONS ========== */

/* --- svodTable: dynamic columns, "Организация" + "Вид деятельности" wide --- */
#svodTable td {
    max-width: 240px;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    line-height: 1.3;
}

/* Clamp для длинных списков (Доп деятельность): 3 строки максимум, полный текст в title.
   Правка 15.04.2026: JS-обрезка убрана, вместо неё CSS ограничение по строкам. */
#svodTable td .svod-cell-clamp3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* --- salykDataTable: dynamic columns depending on sub-tab --- */
#salykDataTable td {
    max-width: 260px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- organizationsTable: 13 columns, many wide --- */
#organizationsTable td:nth-child(1) {  /* Организация */
    max-width: 200px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}
#organizationsTable td:nth-child(4) {  /* Адрес организации */
    max-width: 180px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}
#organizationsTable td:nth-child(5),
#organizationsTable th:nth-child(5) {  /* Вид налога */
    max-width: 180px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}
#organizationsTable td:nth-child(8) {  /* Вид деятельности */
    max-width: 160px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}
#organizationsTable td:nth-child(9) {  /* Доп. вид деятельности */
    max-width: 140px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- salykDataTable: "Наименование" column can be long --- */
#salykDataTable td:nth-child(2) {  /* Организация */
    max-width: 200px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}
#salykDataTable td:nth-child(4) {  /* Наименование */
    max-width: 200px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- reportsTable: "Организация" --- */
#reportsTable td:nth-child(1) {  /* Организация */
    max-width: 220px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- paymentsTable: "Организация" + "Назначение" --- */
#paymentsTable td:nth-child(2) {  /* Организация */
    max-width: 200px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}
#paymentsTable td:nth-child(3) {  /* Назначение */
    max-width: 200px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- revenueTable: "Организация" --- */
#revenueTable td:nth-child(1) {  /* Организация */
    max-width: 220px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- clientsTable: "Имя клиента" --- */
#clientsTable td:nth-child(1) {  /* Имя клиента */
    max-width: 220px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- repAccessesBody parent table: many narrow columns, keep compact --- */
#repAccessesPanel .data-table th,
#repAccessesPanel .data-table td {
    padding: 7px 6px;
    font-size: 0.78rem;
}
#repAccessesPanel .data-table td:nth-child(1) {  /* Организация */
    max-width: 180px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- activityTable: "Детали" can be long --- */
#activityTable td:nth-child(4) {  /* Детали */
    max-width: 250px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

/* --- Compact table for tasks — only constrain the 2 wide columns ---*/
#tasksTable th,
#tasksTable td {
    padding: 7px 6px;
    font-size: 0.78rem;
}

#tasksTable th {
    white-space: nowrap;
}

/* Центрируем заголовки и данные для: №, Дата, Период, Приоритет, Дедлайн, Статус, Последний статус, Просрочка, Действия */
#tasksTable th:nth-child(1),
#tasksTable th:nth-child(2),
#tasksTable th:nth-child(7),
#tasksTable th:nth-child(8),
#tasksTable th:nth-child(9),
#tasksTable th:nth-child(10),
#tasksTable th:nth-child(11),
#tasksTable th:nth-child(12),
#tasksTable th:nth-child(13),
#tasksTable td:nth-child(1),
#tasksTable td:nth-child(2),
#tasksTable td:nth-child(7),
#tasksTable td:nth-child(8),
#tasksTable td:nth-child(9),
#tasksTable td:nth-child(10),
#tasksTable td:nth-child(11),
#tasksTable td:nth-child(12),
#tasksTable td:nth-child(13) {
    text-align: center;
}

#tasksTable th.wrap-header {
    white-space: normal;
    max-width: 80px;
}

#tasksTable td:nth-child(4) {  /* ОРГ (ИНН) — allow wrap */
    max-width: 220px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

#tasksTable td:nth-child(5) {  /* Тема — allow wrap */
    max-width: 200px;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

#tasksTable .task-actions {
    white-space: nowrap;
    vertical-align: middle;
}

#tasksTable td {
    vertical-align: middle;
}

#tasksTable td small {
    display: block;
}

#tasksTab .task-filters {
    flex-shrink: 0;
}

/* OD statuses */
.status-progress-od {
    background: #e0e7ff;
    color: #3730a3;
}

.status-done-od {
    background: #d1fae5;
    color: #065f46;
}

/* Small INN */
#tasksTable td small {
    color: var(--text-muted);
    font-size: 0.73rem;
}

/* Time under date */
#tasksTable small.task-time {
    color: var(--text-muted);
    font-size: 0.7rem;
    display: block;
    margin-top: 1px;
}

/* Task action dropdown */
.task-action-dropdown {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
}

.task-action-dropdown .btn-action-toggle {
    padding: 4px 10px;
    background: var(--primary-color);
    color: #fff;
    border: none;
    border-radius: var(--radius);
    cursor: pointer;
    font-size: 0.78rem;
    white-space: nowrap;
    line-height: 1.4;
    vertical-align: middle;
    font-family: inherit;
    font-weight: 600;
    transition: all var(--transition);
}

.task-action-dropdown .btn-action-toggle:hover {
    background: var(--primary-hover);
}

.task-action-menu {
    display: none;
    position: absolute;
    right: 0;
    top: 100%;
    margin-top: 4px;
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    box-shadow: var(--shadow-xl);
    z-index: 100;
    min-width: 140px;
    padding: 4px;
    animation: menuAppear 0.15s ease;
}

@keyframes menuAppear {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.task-action-menu.open {
    display: block;
}

.task-action-menu button {
    display: block;
    width: 100%;
    padding: 8px 14px;
    border: none;
    background: none;
    cursor: pointer;
    text-align: left;
    font-size: 0.82rem;
    color: var(--text-color);
    white-space: nowrap;
    font-family: inherit;
    border-radius: var(--radius);
    font-weight: 500;
    transition: background var(--transition);
}

.task-action-menu button:hover {
    background: var(--bg-color);
}

.task-action-menu .btn-start { color: #059669; }
.task-action-menu .btn-pause { color: #d97706; }
.task-action-menu .btn-stop { color: #dc2626; }
.task-action-menu .btn-transfer { color: var(--text-color); }
.task-action-menu .btn-icon.view {
    color: var(--primary-color);
    background: none;
    border: none;
    padding: 8px 14px;
}

/* Task row flash */
@keyframes taskRowFlash {
    0% { background-color: rgba(7, 71, 131, 0.1); }
    100% { background-color: transparent; }
}

tr.task-row-updated {
    animation: taskRowFlash 3s ease-out;
}

/* ========== AUDIT PANEL ========== */
.audit-header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 24px;
    background: linear-gradient(135deg, var(--primary-color) 0%, #0a5da8 100%);
    border-radius: var(--radius-lg);
    margin-bottom: 20px;
    box-shadow: 0 2px 8px rgba(7, 71, 131, 0.15);
}

.audit-header .btn-back {
    background: rgba(255,255,255,0.15);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.25);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    backdrop-filter: blur(4px);
}

.audit-header .btn-back:hover {
    background: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.4);
}

.btn-audit-edit {
    margin-left: auto;
    background: rgba(255,255,255,0.15);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.25);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    backdrop-filter: blur(4px);
}

.btn-audit-edit:hover {
    background: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.4);
}

/* Portal access button & status dot */
.btn-portal-access {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.portal-status-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #6b7280;
    flex-shrink: 0;
    transition: background 0.2s;
}

.portal-status-dot.active {
    background: #34d399;
    box-shadow: 0 0 6px rgba(52, 211, 153, 0.6);
}

.portal-status-dot.inactive {
    background: #ef4444;
    box-shadow: 0 0 6px rgba(239, 68, 68, 0.5);
}

/* Portal modal body */
.portal-info-block {
    background: var(--surface-bg, #f8f9fa);
    border: 1px solid var(--border-color, #dadce0);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
}

.portal-info-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
}

.portal-info-row + .portal-info-row {
    border-top: 1px solid var(--border-color, #e8eaed);
}

.portal-info-label {
    font-size: 13px;
    color: var(--text-muted, #5f6368);
}

.portal-info-value {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-color, #202124);
    display: flex;
    align-items: center;
    gap: 6px;
}

.portal-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

.portal-status-badge.connected {
    background: #e6f4ea;
    color: #188038;
}

.portal-status-badge.disconnected {
    background: #fce8e6;
    color: #d93025;
}

.portal-status-badge.suspended {
    background: #fef7e0;
    color: #e37400;
}

.portal-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.portal-actions .btn {
    width: 100%;
    padding: 10px 16px;
    border: 1px solid var(--border-color, #dadce0);
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
    font-family: inherit;
    display: flex;
    align-items: center;
    gap: 8px;
}

.portal-actions .btn:hover {
    background: var(--hover-bg, #f1f3f4);
}

.portal-actions .btn-primary-portal {
    background: var(--primary-color, #074783);
    color: #fff;
    border-color: var(--primary-color, #074783);
}

.portal-actions .btn-primary-portal:hover {
    background: var(--primary-hover, #053668);
}

.portal-actions .btn-danger-portal {
    color: #d93025;
    border-color: #fce8e6;
    background: #fff;
}

.portal-actions .btn-danger-portal:hover {
    background: #fce8e6;
}

.portal-actions .btn-warning-portal {
    color: #e37400;
    border-color: #fef7e0;
    background: #fff;
}

.portal-actions .btn-warning-portal:hover {
    background: #fef7e0;
}

.portal-actions .btn-success-portal {
    color: #188038;
    border-color: #e6f4ea;
    background: #fff;
}

.portal-actions .btn-success-portal:hover {
    background: #e6f4ea;
}

.portal-credentials {
    background: var(--surface-bg, #f8f9fa);
    border: 1px solid var(--border-color, #dadce0);
    border-radius: 8px;
    padding: 16px;
    margin-top: 12px;
}

.portal-credentials h4 {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-color, #202124);
}

.portal-cred-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 0;
}

.portal-cred-label {
    font-size: 12px;
    color: var(--text-muted, #5f6368);
}

.portal-cred-value {
    font-size: 13px;
    font-weight: 600;
    color: var(--primary-color, #074783);
    font-family: 'SF Mono', 'Consolas', monospace;
    cursor: pointer;
}

.portal-cred-value:hover {
    text-decoration: underline;
}

/* Portal setup form */
.portal-setup-form .form-group {
    margin-bottom: 14px;
}

.portal-setup-form .form-group label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 5px;
    color: var(--text-color, #202124);
}

.portal-setup-form .form-group input {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border-color, #dadce0);
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
}

.portal-setup-form .form-group input:focus {
    outline: none;
    border-color: var(--primary-color, #074783);
    box-shadow: 0 0 0 2px rgba(7,71,131,0.12);
}

.portal-setup-actions {
    display: flex;
    gap: 8px;
    margin-top: 16px;
}

.portal-setup-actions button {
    flex: 1;
    padding: 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color, #dadce0);
}

.audit-header h2 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #fff;
}

.audit-inn {
    color: rgba(255,255,255,0.75);
    font-size: 0.82rem;
    font-family: 'JetBrains Mono', monospace;
    background: rgba(255,255,255,0.12);
    padding: 3px 10px;
    border-radius: 4px;
}

.audit-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 24px;
    overflow-x: auto;
    white-space: nowrap;
    background: var(--surface-bg);
    padding: 5px;
    border-radius: 10px;
    scrollbar-width: thin;
    flex-shrink: 0;
    border: 1px solid var(--border-light);
}

.audit-tabs::-webkit-scrollbar {
    height: 3px;
}

.audit-tabs::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 4px;
}

.audit-tab {
    padding: 8px 16px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--text-muted);
    border-radius: 6px;
    transition: all var(--transition);
    font-family: inherit;
    font-weight: 500;
}

.audit-tab:hover {
    color: var(--text-color);
    background: rgba(0,0,0,0.04);
}

.audit-tab.active {
    color: var(--primary-color);
    background: #fff;
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.audit-content {
    min-height: 400px;
}

/* ========== Profile — Card-based sections ========== */
.audit-profile {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.profile-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.profile-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.profile-card {
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 20px;
    transition: box-shadow var(--transition);
}

.profile-card:hover {
    box-shadow: var(--shadow-lg);
}

.profile-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-light);
}

.profile-card-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.profile-card-icon.org { background: #e0f2fe; color: #0369a1; }
.profile-card-icon.access { background: #fef3c7; color: #d97706; }
.profile-card-icon.contact { background: #dbeafe; color: #2563eb; }
.profile-card-icon.minjust { background: #f3e8ff; color: #7c3aed; }
.profile-card-icon.bank { background: #d1fae5; color: #059669; }
.profile-card-icon.founders { background: #ffe4e6; color: #e11d48; }

.profile-card-header h3 {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-color);
    flex: 1;
}

/* Кнопки редактирования карточек профиля */
.btn-icon.edit-card-btn { opacity: 0.3; transition: opacity 0.2s; background: none; border: none; cursor: pointer; font-size: 16px; padding: 4px; }
.profile-card:hover .btn-icon.edit-card-btn { opacity: 1; }
.card-edit-actions { display: flex; gap: 4px; }
.btn-icon.save-card-btn { color: #4caf50; background: none; border: none; cursor: pointer; font-size: 16px; padding: 4px; }
.btn-icon.cancel-card-btn { color: #f44336; background: none; border: none; cursor: pointer; font-size: 16px; padding: 4px; }
.btn-icon.save-card-btn:hover { background: #e8f5e9; border-radius: 4px; }
.btn-icon.cancel-card-btn:hover { background: #ffebee; border-radius: 4px; }

/* Банковские счета — таблица и кнопки */
.btn-icon-sm {
    background: none; border: none; cursor: pointer;
    width: 28px; height: 28px; border-radius: var(--radius);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 14px; opacity: 0.4; transition: all var(--transition);
}
.btn-icon-sm:hover { opacity: 1; background: var(--surface-bg); }
.btn-icon-sm.danger:hover { color: #f44336; background: #ffebee; }

/* Iconsax icon color helpers */
.icon-danger { color: #e74c3c; }
.icon-success { color: #27ae60; }

/* SVG icons inside buttons inherit color */
.btn-icon svg, .btn-icon-sm svg, .btn.btn-sm svg { vertical-align: middle; }
.btn-icon-sm svg, .btn.btn-sm svg { pointer-events: none; }

.readonly-row { opacity: 0.65; font-style: italic; }
.badge {
    display: inline-block; padding: 3px 10px; border-radius: 12px;
    font-size: 11px; font-weight: 600; letter-spacing: 0.3px;
    background: #e3f2fd; color: #1565c0;
}
.badge.salyk { background: #fff3e0; color: #e65100; }
.editing-row td { padding: 4px 6px; }

/* Inline edit inputs (профиль + банковские счета) */
.inline-edit-input {
    width: 100%;
    padding: 6px 10px;
    border: 1.5px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 13px;
    font-family: inherit;
    color: var(--text-color);
    background: var(--card-bg);
    transition: border-color var(--transition), box-shadow var(--transition);
    outline: none;
    box-sizing: border-box;
}
.inline-edit-input:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(7, 71, 131, 0.1);
}
.inline-edit-input::placeholder { color: var(--text-secondary); opacity: 0.6; }

/* Кнопки выручки */
.btn-revenue {
    padding: 7px 16px;
    border-radius: var(--radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-revenue.edit {
    background: var(--primary-color);
    color: white;
}
.btn-revenue.edit:hover {
    background: var(--primary-hover);
    box-shadow: 0 1px 3px rgba(7, 71, 131, 0.2);
}
.btn-revenue.save {
    background: var(--success-color, #10b981);
    color: white;
}
.btn-revenue.save:hover {
    background: #059669;
    box-shadow: 0 1px 3px rgba(16, 185, 129, 0.3);
}
.btn-revenue.cancel {
    background: var(--surface-bg, #f5f5f5);
    color: var(--text-secondary, #666);
    border: 1px solid var(--border-color, #e0e0e0);
}
.btn-revenue.cancel:hover {
    background: var(--border-color, #e0e0e0);
}
.revenue-display { font-size: 13px; }

.profile-grid {
    display: grid;
    gap: 2px;
}

.profile-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 8px;
    border-radius: 4px;
    transition: background var(--transition);
}

.profile-row:hover {
    background: var(--surface-bg);
}

.profile-row .label {
    color: var(--text-muted);
    font-size: 0.8rem;
    flex-shrink: 0;
    max-width: 45%;
}

.profile-row .value {
    font-size: 0.8rem;
    font-weight: 600;
    text-align: right;
    word-break: break-word;
    max-width: 55%;
}

.password-masked {
    cursor: pointer;
    color: var(--text-secondary);
    transition: all var(--transition);
    padding: 2px 6px;
    border-radius: 4px;
}

.password-masked:hover {
    color: var(--text-color);
    background: var(--hover-bg);
}

.data-table.compact {
    font-size: 12px;
    border-radius: 6px;
    overflow: hidden;
}

.data-table.compact td,
.data-table.compact th {
    padding: 6px 10px;
}

/* Parameters */
.audit-parameters {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.audit-section-card {
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 20px;
    transition: box-shadow var(--transition);
}

.audit-section-card:hover {
    box-shadow: var(--shadow-lg);
}

.audit-section-card h3 {
    margin: 0 0 4px;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-color);
}

.audit-section-card .hint {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin: 0 0 12px;
}

.audit-section-card h4 {
    margin: 0 0 10px;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-color);
}

.audit-section-card .data-table {
    margin: 0;
}

.audit-section-card .data-table td,
.audit-section-card .data-table th {
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

.audit-section-card .data-table td:nth-child(2),
.audit-section-card .data-table th:nth-child(2) {
    max-width: 250px;
}

.audit-section-card .table-wrapper {
    overflow-x: auto;
}

/* ========== Reports Calendar Matrix ========== */
.audit-reports-wrap {
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 20px;
}

.reports-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 10px;
}

.reports-toolbar h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
}

.year-selector {
    display: flex;
    align-items: center;
    gap: 8px;
}

.year-selector button,
.year-selector select {
    border: 1px solid var(--border-light);
    background: var(--surface-bg);
    padding: 5px 12px;
    cursor: pointer;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    font-weight: 600;
    transition: all var(--transition);
    color: var(--text-muted);
    height: 34px;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.year-selector select {
    padding: 5px 28px 5px 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23667085'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    color: var(--text-primary);
}

.year-selector button:hover,
.year-selector select:hover {
    background: var(--hover-bg);
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.year-selector span {
    font-weight: 700;
    font-size: 1.05rem;
}

.reports-legend {
    display: flex;
    gap: 14px;
    margin-bottom: 14px;
    font-size: 0.78rem;
    flex-wrap: wrap;
    font-weight: 500;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.legend-box {
    width: 14px;
    height: 14px;
    border-radius: 4px;
    display: inline-block;
}

.reports-matrix-wrapper {
    overflow-x: auto;
}

.reports-matrix {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.825rem;
}

.reports-matrix th,
.reports-matrix td {
    border: 1px solid var(--border-color);
    padding: 7px 8px;
    text-align: center;
}

.reports-matrix thead th {
    background: var(--surface-bg);
    font-weight: 700;
    font-size: 0.72rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Месяц с фактической активностью (выписка/ЭСФ/ККМ) — «деятельность велась»
   (Районы фаза E, ревью заказчика 05.06.2026) */
.reports-matrix thead th.month-activity {
    background: #dcfce7;
    color: #166534;
}
.reports-matrix thead th.month-activity .month-activity-dot {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #16a34a;
    margin-left: 4px;
    vertical-align: middle;
}

.report-type-col {
    text-align: left !important;
    min-width: 80px;
    font-weight: 600;
}

.month-col {
    min-width: 45px;
}

.month-cell {
    cursor: pointer;
    font-weight: 700;
    font-size: 12px;
    transition: opacity var(--transition);
    border-radius: 3px;
}

.month-cell:hover {
    opacity: 0.7;
}

/* Report status colors */
.rc-status-ok { background-color: #d1fae5; color: #065f46; }
.rc-status-corrected { background-color: #fef9c3; color: #854d0e; }
.rc-status-missing { background-color: #fecaca; color: #991b1b; }
.rc-status-na { background-color: var(--surface-bg); color: #c1c8d1; }
.rc-status-no-activity, .rc-status-no_activity { background-color: #dbeafe; color: #6b7fad; font-size: 10px; }
.rc-status-dismissed { background-color: #dbeafe; color: #3b82f6; }
.rc-status-forbidden { background-color: #fecaca; color: #991b1b; font-weight: 700; }
/* Статус «сдан с ошибками» — 091 сдан, но суммы не совпадают с ККМ/Выпиской */
.rc-status-mismatch { background-color: #fed7aa; color: #9a3412; }
/* «Уточнённый, сдан с ошибками» — тот же оранжевый, но отображаем букву «у» */
.rc-status-corrected_mismatch { background-color: #fed7aa; color: #9a3412; font-weight: 700; }
/* «Нет данных от клиента» — оранжевая ошибка снята, показываем как ok/corrected с буквами «нд» */
.rc-status-nd_ok { background-color: #d1fae5; color: #065f46; font-size: 11px; font-weight: 600; }
.rc-status-nd_corrected { background-color: #fef9c3; color: #854d0e; font-size: 11px; font-weight: 600; }
/* Ячейка сумм в Выручке, не совпадающая с ожидаемым источником */
.revenue-mismatch { background-color: #fed7aa !important; color: #9a3412 !important; cursor: help; }

.extra-report { opacity: 0.65; }
.extra-report td:first-child { font-style: italic; }
tr.policy-row { opacity: 1; border-top: 2px solid #7c3aed; }
tr.policy-row td:first-child { font-style: normal; color: #7c3aed; font-weight: 600; }

/* District selector on Reports tab */
.district-selector {
    display: flex;
    align-items: center;
    gap: 4px;
}
.district-selector button {
    border: 1px solid var(--border-light);
    background: var(--surface-bg);
    padding: 4px 8px;
    cursor: pointer;
    border-radius: 5px;
    font-size: 13px;
    font-weight: 600;
    color: var(--primary-color);
    transition: all var(--transition);
    height: 30px;
}
.district-selector button:hover:not(:disabled) { background: var(--hover-bg); }
.district-selector button:disabled { opacity: 0.3; cursor: default; }
.district-code {
    font-weight: 700;
    font-size: 14px;
    color: var(--primary-color);
    padding: 0 4px;
    min-width: 32px;
    text-align: center;
}
.district-code-single {
    font-weight: 600;
    font-size: 13px;
    color: var(--text-muted);
    padding: 0 6px;
}

/* ККМ per-district rows in profile */
.kkm-district-row { border-top: 1px dashed #e0d4f5; }
.kkm-activity-header .label { color: #7c3aed !important; font-weight: 600; font-size: 12px; }
.kkm-activity-header { margin-top: 8px; border-top: 2px solid #e0d4f5; padding-top: 4px; }
.additional-activity-kkm { border-left: 3px solid #7c3aed; padding-left: 12px; }
.btn-kkm-add { background: #7c3aed; color: #fff; border: none; border-radius: 6px; padding: 4px 12px; font-size: 12px; cursor: pointer; font-weight: 500; }
.btn-kkm-add:hover:not(:disabled) { background: #6d28d9; }
.btn-kkm-add:disabled { opacity: 0.4; cursor: not-allowed; }
.kkm-no-label { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #6b7280; cursor: pointer; user-select: none; }
.kkm-no-label input[type="checkbox"] { accent-color: #d93025; width: 15px; height: 15px; }
.kkm-buttons-row { padding: 4px 0 !important; }
.kkm-needs-action { background: #fff7ed; border-left: 3px solid #f97316; }
.kkm-btn-highlight { animation: kkm-pulse 2s ease-in-out infinite; box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.4); }
.kkm-label-highlight { color: #ea580c !important; font-weight: 600; }
@keyframes kkm-pulse { 0%, 100% { box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.4); } 50% { box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.2); } }

/* Problems badge in svod table */
.problems-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; border-radius: 50%; font-size: 11px; font-weight: 700; line-height: 1; }
.problems-badge.problems-error { background: #d93025; color: #fff; padding: 0 5px; }
.problems-badge.problems-ok { background: #188038; color: #fff; font-size: 13px; }

/* Revenue flags (Без ККМ / Без ЭСФ) */
.revenue-flags label { user-select: none; }
.revenue-flags input[type="checkbox"] { accent-color: var(--primary-color); width: 16px; height: 16px; }

/* Reports toolbar — right section */
.reports-toolbar-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Activity date in reports header */
.reports-activity-date {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
}
.activity-label {
    color: var(--text-muted);
    font-weight: 500;
    white-space: nowrap;
}
.activity-date-input {
    border: 1px solid var(--border-light);
    border-radius: 6px;
    padding: 4px 8px;
    font-size: 13px;
    font-family: inherit;
    color: var(--text-primary);
    background: var(--surface-bg);
    height: 30px;
}
.activity-date-input:focus {
    border-color: var(--primary-color);
    outline: none;
}

/* Report details panel */
.report-details {
    margin-top: 16px;
    padding: 18px;
    background: var(--surface-bg);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-light);
}

.report-details h4 {
    margin: 0 0 10px;
    font-weight: 700;
}

.report-detail-grid {
    display: grid;
    gap: 5px;
}

.detail-row span:first-child {
    color: var(--text-muted);
}

.report-data-preview {
    margin-top: 10px;
}

.report-data-preview pre {
    font-size: 11px;
    background: white;
    padding: 10px;
    border-radius: var(--radius);
    overflow-x: auto;
    max-height: 200px;
    font-family: 'JetBrains Mono', monospace;
    border: 1px solid var(--border-color);
}

/* ========== Employee sections (Audit) ========== */
.audit-employees {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.emp-section-tabs {
    display: flex;
    gap: 4px;
    background: var(--surface-bg);
    padding: 5px;
    border-radius: 10px;
    width: fit-content;
    border: 1px solid var(--border-light);
}

.emp-section-btn {
    padding: 8px 16px;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 6px;
    font-size: 0.8rem;
    transition: all var(--transition);
    font-family: inherit;
    font-weight: 500;
    color: var(--text-muted);
}

.emp-section-btn:hover {
    color: var(--text-color);
    background: rgba(0,0,0,0.04);
}

.emp-section-btn.active {
    background: var(--primary-color);
    color: white;
    box-shadow: 0 1px 3px rgba(7, 71, 131, 0.25);
}

.emp-details-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.emp-salyk-section,
.emp-161-section,
.emp-client-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.emp-client-card {
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 16px;
}

.emp-client-card h4 {
    margin: 0 0 10px;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-color);
}

.emp-client-card .reports-matrix td {
    text-align: left;
    white-space: nowrap;
}

.emp-client-card .reports-matrix td:last-child {
    text-align: center;
}

.emp-salyk-section h4,
.emp-161-section h4,
.emp-client-section h4 {
    margin: 0 0 8px;
    font-size: 0.9rem;
    color: var(--text-color);
    font-weight: 700;
}

.spino-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 700;
}

.spino-yes { background: #d1fae5; color: #065f46; }
.spino-no { background: #fecaca; color: #991b1b; }

.status-ok { background-color: #d1fae5; color: #065f46; }
.status-na { background-color: var(--surface-bg); color: #c1c8d1; }

/* ========== Revenue Matrix ========== */
.audit-revenue {
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 20px;
}

.revenue-table { min-width: 900px; table-layout: fixed; width: 100%; }
.revenue-table .report-type-col { width: 120px; min-width: 100px; }
.revenue-table .total-col { width: 90px; min-width: 80px; background: var(--surface-bg); }
.subtotal-row { background: #f0f4f8; font-weight: 700; }
.subtotal-row td { border-top: 2px solid var(--text-secondary); }

.revenue-input {
    width: 70px;
    border: 1px solid transparent;
    background: transparent;
    text-align: right;
    padding: 3px 5px;
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    transition: all var(--transition);
}

.revenue-input:focus {
    border-color: var(--primary-color);
    background: white;
    outline: none;
    box-shadow: 0 0 0 2px var(--primary-glow);
}

.revenue-input:hover {
    border-color: var(--border-color);
}

.audit-revenue .hint { font-size: 0.78rem; color: var(--text-muted); margin: 0 0 8px; }

.revenue-pdf-upload-btn { cursor: pointer; margin-left: 2px; opacity: 0.6; display: inline-flex; align-items: center; color: var(--primary-color); }
.revenue-pdf-upload-btn:hover { opacity: 1; }
.revenue-pdf-attached { cursor: pointer; margin-left: 1px; display: inline-flex; align-items: center; color: var(--primary-color); }
.revenue-pdf-attached:hover { opacity: 0.7; }
.revenue-pdf-indicator { cursor: pointer; display: inline-flex; align-items: center; color: var(--primary-color); }
.revenue-pdf-indicator-ro { display: inline-flex; align-items: center; color: var(--primary-color); vertical-align: middle; }
.revenue-pdf-delete-btn { cursor: pointer; margin-left: 1px; display: inline-flex; align-items: center; color: #e53935; opacity: 0.6; }
.revenue-pdf-delete-btn:hover { opacity: 1; }
.editable-cell.has-pdf { position: relative; }
.audit-revenue h4 { margin: 16px 0 6px; font-size: 0.9rem; font-weight: 700; }
.status-no-activity { background-color: #f3e8fd; color: #7627bb; }

/* ========== Contract & Balance ========== */
.audit-contract {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.contract-section, .balance-section {
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 20px;
}

.contract-section h3, .balance-section h3 {
    margin: 0 0 14px;
    font-size: 0.95rem;
    font-weight: 700;
}

.row-terminated { opacity: 0.45; text-decoration: line-through; }

/* --- Contract Form: Periods --- */
.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.contract-periods-section {
    margin: 18px 0 14px;
    padding: 18px 18px 14px;
    background: var(--bg-secondary, #f8f9fb);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
}

.contract-periods-section .section-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--primary-color, var(--primary));
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--primary-color, var(--primary));
    opacity: 0.85;
}

.contract-period-row {
    position: relative;
    padding: 14px;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    transition: box-shadow 0.15s;
}
.contract-period-row:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.period-fields-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
}

.period-field {
    display: flex;
    flex-direction: column;
}

.period-field label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 5px;
}

.period-field input,
.period-field select {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.88rem;
    background: var(--card-bg);
    color: var(--text-color);
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}
.period-field input:focus,
.period-field select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px var(--primary-glow);
}
.period-field input::placeholder {
    color: var(--text-secondary);
}

.period-field-hint {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-top: 3px;
    font-style: italic;
}

.period-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid #fca5a5;
    background: #fef2f2;
    color: #dc2626;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}
.period-remove:hover {
    background: #dc2626;
    color: #fff;
    border-color: #dc2626;
}

.contract-period-separator {
    border: none;
    border-top: 1px dashed var(--border-color);
    margin: 12px 0;
}

.btn-add-period {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    padding: 8px 18px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--primary-color, var(--primary));
    background: var(--card-bg);
    border: 1px dashed var(--primary-color, var(--primary));
    border-radius: var(--radius);
    cursor: pointer;
    transition: all 0.15s;
}
.btn-add-period:hover {
    background: var(--primary-color, var(--primary));
    color: #fff;
    border-style: solid;
}

/* --- Contract Table: period column --- */
.contract-group-separator td {
    padding: 0 !important;
    height: 2px;
    background: var(--border-light, var(--border-color));
}

.contract-price {
    font-weight: 700;
    white-space: nowrap;
}

.contract-period-cell {
    white-space: nowrap;
    font-size: 0.82rem;
}
.contract-period-cell .period-to {
    color: var(--text-muted);
}

@media (max-width: 600px) {
    .form-row-2 { grid-template-columns: 1fr; }
    .period-fields-grid { grid-template-columns: 1fr; }
    .contract-period-row { padding: 10px; }
}

.balance-badge {
    font-size: 0.85rem;
    padding: 3px 10px;
    border-radius: var(--radius);
    margin-left: 8px;
    font-weight: 700;
}

.balance-badge.positive { background: #d1fae5; color: #065f46; }
.balance-badge.negative { background: #fecaca; color: #991b1b; }

.amount-positive { color: #065f46; font-weight: 600; }
.amount-negative { color: #991b1b; font-weight: 600; }

/* ========== Tax subtabs ========== */
.audit-taxes, .audit-esf {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.tax-subtabs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding: 0;
    margin-bottom: 4px;
}

.tax-subtab-btn {
    padding: 6px 14px;
    border: 1px solid var(--border-light);
    background: var(--card-bg);
    cursor: pointer;
    border-radius: 20px;
    font-size: 0.76rem;
    white-space: nowrap;
    font-family: inherit;
    font-weight: 500;
    transition: all var(--transition);
    color: var(--text-muted);
}

.tax-subtab-btn.active {
    background: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
    box-shadow: 0 1px 3px rgba(7, 71, 131, 0.25);
}

.tax-subtab-btn:hover:not(.active) {
    color: var(--text-color);
    border-color: var(--primary-color);
    background: var(--surface-tint);
}

.tax-content-card {
    background: var(--card-bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    padding: 20px;
}

.total-row { background: var(--surface-bg); font-weight: 700; }
.total-row td { border-top: 2px solid #374151; }

/* Certificate request */
.cert-tabs {
    display: flex;
    gap: 4px;
    background: var(--surface-bg);
    padding: 5px;
    border-radius: 10px;
    width: fit-content;
    margin-bottom: 16px;
    border: 1px solid var(--border-light);
}

.cert-tab-btn {
    padding: 7px 14px;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 6px;
    font-size: 0.8rem;
    font-family: inherit;
    font-weight: 500;
    transition: all var(--transition);
    color: var(--text-muted);
}

.cert-tab-btn.active {
    background: var(--success-color);
    color: white;
    box-shadow: 0 1px 3px rgba(24, 128, 56, 0.25);
}

.cert-tab-btn:hover:not(.active) {
    color: var(--text-color);
    background: rgba(0,0,0,0.04);
}

.cert-form {
    max-width: 500px;
    padding: 20px;
    background: var(--card-bg);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-light);
}

.cert-form h4 {
    margin: 0 0 14px;
    font-weight: 700;
}

.status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--radius);
    font-size: 0.73rem;
    font-weight: 600;
}

.status-badge.status-ok { background: #d1fae5; color: #065f46; }
.status-badge.status-pending { background: #fef9c3; color: #854d0e; }

.reconciliation-section .data-table,
.summary-section .data-table { font-size: 11px; }

@media (max-width: 768px) {
    .audit-header { padding: 12px 16px; border-radius: 6px; }
    .audit-header h2 { font-size: 1rem; }
    .profile-columns { grid-template-columns: 1fr; }
    .audit-tabs { font-size: 12px; padding: 3px; }
    .audit-tab { padding: 6px 12px; font-size: 0.75rem; }
    .profile-card { padding: 14px; }
    .emp-section-tabs { flex-wrap: wrap; }
    .emp-details-row { grid-template-columns: 1fr; }
    .tax-subtabs { gap: 2px; }
    .tax-subtab-btn { font-size: 11px; padding: 4px 8px; }
}

/* ========== AUTOCOMPLETE ========== */
.search-autocomplete {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--border-color);
    border-top: none;
    border-radius: 0 0 10px 10px;
    box-shadow: var(--shadow-lg);
    z-index: 1000;
    max-height: 320px;
    overflow-y: auto;
}

.search-autocomplete-item {
    padding: 10px 14px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-light);
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background var(--transition);
}

.search-autocomplete-item:last-child {
    border-bottom: none;
}

.search-autocomplete-item:hover {
    background: var(--primary-light);
}

.search-autocomplete-item .ac-name {
    font-weight: 600;
    color: var(--text-color);
}

.search-autocomplete-item .ac-inn {
    color: var(--text-muted);
    font-size: 0.78rem;
    font-family: 'JetBrains Mono', monospace;
}

/* ========== ADMIN PANEL ========== */
.nav-btn-admin {
    color: var(--danger-color) !important;
}

.nav-btn-admin.active {
    background: #fce8e6 !important;
    color: var(--danger-color) !important;
    box-shadow: none;
}

.nav-btn-admin:hover {
    color: var(--danger-color) !important;
    background: #fce8e6 !important;
}

.admin-logs {
    background: #0f172a;
    color: #94a3b8;
    padding: 18px;
    border-radius: var(--radius);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11.5px;
    line-height: 1.5;
    max-height: 70vh;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-all;
    flex: 1;
    min-height: 200px;
    border: 1px solid #1e293b;
}

.admin-controls {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.admin-controls select {
    padding: 7px 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 0.85rem;
    background: white;
    font-family: inherit;
}

.admin-controls label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.85rem;
    color: var(--text-muted);
    cursor: pointer;
    font-weight: 500;
}

.admin-header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

/* Simplified logs */
.simple-logs {
    background: #0f172a;
    border-radius: var(--radius);
    padding: 14px;
    max-height: 70vh;
    overflow-y: auto;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    line-height: 1.4;
    min-height: 200px;
    border: 1px solid #1e293b;
}

.log-line {
    padding: 2px 8px;
    border-radius: 3px;
    color: #94a3b8;
    white-space: pre-wrap;
    word-break: break-all;
}

.log-line:hover {
    background: rgba(148, 163, 184, 0.08);
}

.log-error {
    color: #f87171;
    background: rgba(239, 68, 68, 0.08);
    font-weight: 600;
}

.btn-copy {
    padding: 7px 14px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    background: white;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--text-muted);
    transition: all var(--transition);
    font-family: inherit;
    font-weight: 500;
}

.btn-copy:hover {
    background: var(--bg-color);
    color: var(--text-color);
}

/* Maintenance mode */
.btn-maintenance {
    padding: 8px 16px;
    border: 2px solid #f59e0b;
    border-radius: var(--radius);
    background: white;
    color: #f59e0b;
    font-weight: 700;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all var(--transition);
    font-family: inherit;
}

.btn-maintenance:hover {
    background: #f59e0b;
    color: white;
}

.btn-maintenance.maintenance-active {
    background: var(--danger-color);
    border-color: var(--danger-color);
    color: white;
    animation: pulse-red 2s infinite;
}

@keyframes pulse-red {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* Maintenance overlay */
.maintenance-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.9);
    backdrop-filter: blur(8px);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.maintenance-box {
    background: white;
    border-radius: var(--radius-lg);
    padding: 52px 68px;
    text-align: center;
    max-width: 500px;
    box-shadow: var(--shadow-xl);
}

.maintenance-icon {
    font-size: 60px;
    margin-bottom: 18px;
    color: #f59e0b;
}

.maintenance-box h2 {
    font-size: 1.4rem;
    margin-bottom: 12px;
    color: var(--text-color);
    font-weight: 700;
}

.maintenance-box p {
    color: var(--text-muted);
    font-size: 0.95rem;
    margin-bottom: 8px;
}

.maintenance-sub {
    color: var(--text-secondary) !important;
    font-size: 0.825rem !important;
}

/* Activity load more */
.activity-load-more td {
    border: none !important;
}

.activity-load-more .btn-secondary {
    padding: 6px 20px;
    font-size: 0.85rem;
}

/* Scan upload preview */
.scan-preview {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: var(--primary-light);
    border-radius: var(--radius);
    margin-bottom: 6px;
    border: 1px solid #a3c4e3;
}

.scan-preview a {
    color: var(--primary-color);
    text-decoration: underline;
    word-break: break-all;
    font-weight: 500;
}

.btn-remove-scan {
    color: var(--danger-color);
    font-size: 1.2rem;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0 4px;
    transition: opacity var(--transition);
}

.btn-remove-scan:hover {
    opacity: 0.7;
}

.form-hint {
    display: block;
    color: var(--text-secondary);
    font-size: 0.78rem;
    margin-top: 3px;
}

/* Admin tariff trigger */
.btn-tariff-trigger {
    background: #f59e0b;
    color: #fff;
    border: none;
    padding: 8px 16px;
    border-radius: var(--radius);
    cursor: pointer;
    font-size: 0.85rem;
    font-family: inherit;
    font-weight: 700;
    transition: all var(--transition);
}

.btn-tariff-trigger:hover {
    background: #d97706;
    transform: translateY(-1px);
}

/* ========== SELECTION & SCROLLBAR ========== */
::selection {
    background: rgba(7, 71, 131, 0.15);
    color: var(--text-color);
}

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #c1c8d1;
    border-radius: var(--radius);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-secondary);
}

/* ========== FLATPICKR THEME ========== */
.flatpickr-calendar {
    font-family: 'Inter', sans-serif !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    border: 1px solid var(--border-color) !important;
    /* Выше панели «Мои правки» (99995), корзины/деталей (100000) и лайтбокса (100120),
       иначе календарь открывается ПОД ними и «не вылазит». */
    z-index: 100130 !important;
}

.flatpickr-current-month {
    font-weight: 700 !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
    font-weight: 700 !important;
    font-family: inherit !important;
}

span.flatpickr-weekday {
    color: var(--text-secondary) !important;
    font-weight: 600 !important;
}

.flatpickr-day {
    border-radius: var(--radius) !important;
    transition: all 0.15s ease !important;
}

.flatpickr-day:hover {
    background: var(--primary-light) !important;
    border-color: var(--primary-light) !important;
}

.flatpickr-day.today {
    border-color: var(--primary-color) !important;
    color: var(--primary-color) !important;
    font-weight: 600 !important;
}

.flatpickr-day.today:hover {
    background: var(--primary-light) !important;
    color: var(--primary-color) !important;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover {
    background: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: white !important;
}

.flatpickr-day.inRange {
    background: var(--primary-light) !important;
    border-color: var(--primary-light) !important;
    box-shadow: -5px 0 0 var(--primary-light), 5px 0 0 var(--primary-light) !important;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: var(--primary-color) !important;
}

input.flatpickr-input[readonly] {
    background: var(--bg-color) !important;
    cursor: pointer !important;
}

/* Ensure flatpickr alt inputs take full width in form groups */
.form-group input.flatpickr-input,
.period-field input.flatpickr-input,
.form-row-2 .form-group input.flatpickr-input {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Универсальный стиль полей-дат в модалках/формах без контейнерных стилей.
   Класс ставится на исходный input[type=date] — flatpickr копирует className
   на свой altInput, поэтому стиль переживает подмену (inline-стили — нет). */
.date-input,
.reconciliation-section .cert-form .form-row input,
.reconciliation-section .cert-form .form-row select,
.summary-section .cert-form .form-row input,
.summary-section .cert-form .form-row select {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 10px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
    color: var(--text-color);
    background: var(--card-bg);
}
.date-input:focus,
.reconciliation-section .cert-form .form-row input:focus,
.reconciliation-section .cert-form .form-row select:focus,
.summary-section .cert-form .form-row input:focus,
.summary-section .cert-form .form-row select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(7, 71, 131, 0.12);
}

/* Also handle the wrapper when static mode is used */
.flatpickr-wrapper {
    display: block !important;
    width: 100% !important;
}

.flatpickr-calendar.arrowTop::before,
.flatpickr-calendar.arrowTop::after {
    display: none !important;
}

/* ========== THEME TOGGLE (segmented) ========== */
.theme-toggle {
    display: inline-flex;
    gap: 2px;
    background: var(--bg-color, #f3f4f6);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 2px;
}

.theme-toggle-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 28px;
    border: none;
    background: transparent;
    border-radius: 6px;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
}

.theme-toggle-btn:hover {
    color: var(--text-color);
}

.theme-toggle-btn.is-active {
    background: var(--card-bg, #ffffff);
    color: var(--primary-color);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.theme-toggle-btn svg {
    width: 16px;
    height: 16px;
}

/* ========== DARK THEME ========== */
body[data-theme="dark"] {
    --primary-color: #4a9eff;
    --primary-hover: #6db3ff;
    --primary-light: #1a2a3a;
    --primary-glow: rgba(74, 158, 255, 0.15);
    --accent-color: #ff8a65;
    --accent-hover: #ffab91;
    --secondary-color: #9ca3af;
    --success-color: #34d399;
    --warning-color: #fbbf24;
    --danger-color: #f87171;
    --bg-color: #111827;
    --card-bg: #1f2937;
    --text-color: #e5e7eb;
    --text-muted: #9ca3af;
    --border-color: #374151;
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 2px 6px rgba(0, 0, 0, 0.4);
    --shadow-xl: 0 4px 12px rgba(0, 0, 0, 0.5);
    --header-bg: #111827;
    --header-text: #e5e7eb;
    --surface-bg: #1f2937;
    --hover-bg: #374151;
    --surface-tint: #1e3a5f;
    --text-secondary: #9ca3af;
    --text-primary: #e5e7eb;
    --border-light: #374151;
    color-scheme: dark;
}

/* Dark: elements with hardcoded white/light backgrounds */
body[data-theme="dark"] .salyk-sub-btn.active,
body[data-theme="dark"] .salyk-group-btn.active {
    background: var(--card-bg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

body[data-theme="dark"] .task-filter-btn {
    background: var(--card-bg);
}

body[data-theme="dark"] .parser-checkbox-item {
    background: var(--card-bg);
}

body[data-theme="dark"] .task-action-menu {
    background: var(--card-bg);
}

body[data-theme="dark"] .search-autocomplete {
    background: var(--card-bg);
}

body[data-theme="dark"] .admin-controls select {
    background: var(--card-bg);
}

body[data-theme="dark"] .btn-copy {
    background: var(--card-bg);
}

body[data-theme="dark"] .btn-maintenance {
    background: var(--card-bg);
}

body[data-theme="dark"] .maintenance-box {
    background: var(--card-bg);
}

body[data-theme="dark"] .year-selector button,
body[data-theme="dark"] .year-selector select {
    background: var(--card-bg);
}

body[data-theme="dark"] .emp-section-btn {
    background: var(--card-bg);
}

body[data-theme="dark"] .tax-subtab-btn {
    background: var(--card-bg);
}

body[data-theme="dark"] .cert-tab-btn {
    background: var(--card-bg);
}

body[data-theme="dark"] .report-data-preview pre {
    background: var(--surface-bg);
}

body[data-theme="dark"] .revenue-input:focus {
    background: var(--card-bg);
}

/* Dark: modal backdrop */
body[data-theme="dark"] .modal {
    background: rgba(0, 0, 0, 0.55);
}

/* Dark: scrollbar */
body[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: #4b5563;
}

body[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: #6b7280;
}

body[data-theme="dark"] .table-wrapper {
    scrollbar-color: #4b5563 transparent;
}

/* Dark: selection */
body[data-theme="dark"] ::selection {
    background: rgba(74, 158, 255, 0.25);
}

/* Dark: SVG logo path */
body[data-theme="dark"] .logo svg path:first-child {
    fill: #4a9eff;
}

/* Dark: flatpickr */
body[data-theme="dark"] .flatpickr-calendar {
    background: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

body[data-theme="dark"] .flatpickr-months,
body[data-theme="dark"] .flatpickr-month,
body[data-theme="dark"] .flatpickr-monthDropdown-months {
    background: var(--card-bg) !important;
    color: var(--text-color) !important;
}

body[data-theme="dark"] .flatpickr-weekdays,
body[data-theme="dark"] span.flatpickr-weekday {
    background: var(--card-bg) !important;
}

body[data-theme="dark"] .flatpickr-day {
    color: var(--text-color) !important;
}

body[data-theme="dark"] .flatpickr-day:hover {
    background: var(--hover-bg) !important;
    border-color: var(--hover-bg) !important;
}

body[data-theme="dark"] .flatpickr-day.prevMonthDay,
body[data-theme="dark"] .flatpickr-day.nextMonthDay {
    color: var(--text-muted) !important;
}

body[data-theme="dark"] .flatpickr-months .flatpickr-prev-month svg,
body[data-theme="dark"] .flatpickr-months .flatpickr-next-month svg {
    fill: var(--text-color) !important;
}

/* Dark: admin logs already dark — no change needed */

/* Dark: nav-btn admin */
body[data-theme="dark"] .nav-btn-admin.active,
body[data-theme="dark"] .nav-btn-admin:hover {
    background: rgba(248, 113, 113, 0.15) !important;
}

/* Dark: priority rows */
body[data-theme="dark"] .priority-overdue {
    background: rgba(220, 38, 38, 0.12) !important;
}

body[data-theme="dark"] .priority-urgent {
    background: rgba(245, 158, 11, 0.12) !important;
}

body[data-theme="dark"] .priority-soon {
    background: rgba(250, 204, 21, 0.08) !important;
}

body[data-theme="dark"] .row-overdue {
    background-color: rgba(220, 38, 38, 0.1) !important;
}

body[data-theme="dark"] .row-escalated {
    background-color: rgba(245, 158, 11, 0.1) !important;
}

/* Dark: log entry backgrounds */
body[data-theme="dark"] .log-entry.success {
    background: rgba(52, 211, 153, 0.1);
    border-left-color: var(--success-color);
}

body[data-theme="dark"] .log-entry.error {
    background: rgba(248, 113, 113, 0.1);
    border-left-color: var(--danger-color);
}

body[data-theme="dark"] .log-entry.pause {
    background: rgba(251, 191, 36, 0.1);
    border-left-color: var(--warning-color);
}

/* Dark: scan preview */
body[data-theme="dark"] .scan-preview {
    border-color: var(--border-color);
}

/* Editable profile fields */
.editable-field,
.editable-access {
    cursor: pointer;
    padding: 6px 12px;
    border-radius: 6px;
    transition: background 0.2s;
    flex: 1;
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
.editable-field:hover,
.editable-access:hover {
    background: #e8f0fe;
}
body[data-theme="dark"] .editable-field:hover,
body[data-theme="dark"] .editable-access:hover {
    background: rgba(138, 180, 248, 0.15);
}
.editable-access.password-masked {
    cursor: pointer;
}

/* 161 матрица — цвета ячеек */
.emp161-present {
    background-color: #e6f4ea !important;
    color: #1e7e34;
    cursor: pointer;
}
.emp161-missing {
    background-color: #fce8e6 !important;
    color: #d93025;
}
body[data-theme="dark"] .emp161-present {
    background-color: rgba(30, 126, 52, 0.2) !important;
    color: #81c995;
}
body[data-theme="dark"] .emp161-missing {
    background-color: rgba(217, 48, 37, 0.2) !important;
    color: #f28b82;
}

/* Dark: Chat */
body[data-theme="dark"] .chat-bubble--in {
    background: var(--surface-bg);
    border-color: var(--border-color);
}
body[data-theme="dark"] .chat-bubble--out {
    background: #1d4ed8;
}
body[data-theme="dark"] .chat-conv-avatar {
    background: #2563eb;
}
body[data-theme="dark"] .chat-messages {
    background: var(--surface-bg);
}
body[data-theme="dark"] .chat-media-doc {
    background: rgba(96, 165, 250, 0.1);
    color: #60a5fa;
}
body[data-theme="dark"] .chat-media-doc:hover {
    background: rgba(96, 165, 250, 0.18);
}
body[data-theme="dark"] .chat-media-unavailable {
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-muted);
}
body[data-theme="dark"] .chat-layout {
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}
body[data-theme="dark"] .chat-send-btn {
    background: #2563eb;
}
body[data-theme="dark"] .chat-conv-badge {
    background: #2563eb;
}
body[data-theme="dark"] .chat-media-img {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}
body[data-theme="dark"] .chat-media-video {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

/* PDF Viewer модальное окно */
.pdf-viewer-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.7);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pdf-viewer-container {
    width: 90vw;
    height: 90vh;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}
.pdf-viewer-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px;
    background: #1e293b;
    color: #fff;
    font-size: 14px;
}
.pdf-viewer-toolbar a { color: #93c5fd; text-decoration: none; font-size: 13px; }
.pdf-viewer-toolbar a:hover { text-decoration: underline; }
.pdf-viewer-close {
    background: none;
    border: none;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
}
.pdf-viewer-close:hover { color: #f87171; }
.pdf-viewer-iframe {
    flex: 1;
    border: none;
    width: 100%;
}

/* Поиск по таблицам */
.table-search {
    padding: 0 0 16px;
}
.table-search-wrapper {
    position: relative;
    width: 100%;
}
.table-search-wrapper .search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    pointer-events: none;
}
.table-search input {
    width: 100%;
    padding: 10px 16px 10px 40px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    font-size: 0.9rem;
    background: var(--card-bg);
    color: var(--text-color);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.table-search input::placeholder {
    color: var(--text-muted);
}
.table-search input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Группы парсеров в модалке */
/* Parser groups — Gradient Modern */
#parserLaunchModal .parser-group { margin-bottom: 12px; }
#parserLaunchModal .parser-group-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    color: #fff;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.95rem;
    transition: all 0.2s;
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.2);
}
#parserLaunchModal .parser-group-header:hover {
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.3);
    transform: translateY(-1px);
    opacity: 1;
}
#parserLaunchModal .parser-group-header input[type="checkbox"] {
    border-color: rgba(255,255,255,0.4);
    background: transparent;
}
#parserLaunchModal .parser-group-header input[type="checkbox"]:checked {
    background: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.5);
    box-shadow: none;
}
#parserLaunchModal .parser-group-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
#parserLaunchModal .parser-group-name { flex: 1; }
#parserLaunchModal .parser-group-count {
    background: rgba(255,255,255,0.2);
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
}
#parserLaunchModal .parser-group-toggle { font-size: 14px; color: rgba(255,255,255,0.6); opacity: 1; }
#parserLaunchModal .parser-group-items { padding: 6px 0 0 0; display: flex; flex-direction: column; gap: 0; }
.modal-subtitle { color: var(--text-muted); font-size: 0.9rem; margin: -8px 0 8px; }

/* Audit details tooltip */
.audit-date-cell { position: relative; cursor: default; }
.audit-date-cell .audit-tooltip {
    display: none;
    position: absolute;
    bottom: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--text-color, #333);
    color: #fff;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 12px;
    line-height: 1.5;
    white-space: nowrap;
    z-index: 100;
    box-shadow: var(--shadow-lg);
    pointer-events: none;
}
.audit-date-cell .audit-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--text-color, #333);
}
.audit-date-cell:hover .audit-tooltip { display: none; }

.audit-tooltip-fixed {
    position: fixed;
    transform: translate(-50%, -100%);
    background: var(--text-color, #333);
    color: #fff;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 12px;
    line-height: 1.5;
    white-space: nowrap;
    z-index: 10000;
    box-shadow: var(--shadow-lg);
    pointer-events: none;
}

/* Grouped client rows (M:N) */
.data-table td[rowspan] {
    vertical-align: middle;
    background: var(--bg-color);
}
.client-group-first td {
    border-top: 2px solid var(--border-color) !important;
}

/* ========== Audit: Error badges on tabs ========== */
.tab-error-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background: #e74c3c;
    margin-left: 4px;
    vertical-align: middle;
}

/* ========== Audit: Profile error highlighting ========== */
.profile-row.error-field .value {
    color: #e74c3c !important;
    font-weight: 600;
}
.profile-row.error-field .label {
    color: #c0392b;
}
.profile-card.error-card {
    border: 2px solid #e67e22 !important;
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.15);
}

/* Подсветка «парсер не смог войти» — конкретная auth-ошибка (отличаем от
 * «пустое поле» через .error-field). Тон темнее, полоска слева, help cursor
 * на всю строку, чтобы было понятно что за title висит. */
.profile-row.credential-invalid {
    background: #fef2f2;
    border-left: 3px solid #ef4444;
    padding-left: 9px;
    margin-left: -12px;
    border-radius: 4px;
    cursor: help;
}
.profile-row.credential-invalid .value {
    color: #b91c1c !important;
    font-weight: 600;
}
.profile-row.credential-invalid .label {
    color: #991b1b;
}
.profile-row.credential-invalid .label::after {
    content: " ⚠";
    font-size: 11px;
    color: #dc2626;
}

/* ========== Audit: Employee mismatch highlighting ========== */
.emp-comparison-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    margin-left: 12px;
    vertical-align: middle;
}
.emp-comparison-badge.match {
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #a5d6a7;
}
.emp-comparison-badge.mismatch {
    background: #ffebee;
    color: #c62828;
    border: 1px solid #ef9a9a;
}
.emp-row-mismatch {
    background: #fff3e0 !important;
}
.emp-row-mismatch td:first-child {
    border-left: 3px solid #e74c3c;
}

/* ========== Audit: Problems tab styling ========== */
.problem-dismissed {
    opacity: 0.6;
    background: #f9f9f9;
}
.problem-dismissed td {
    text-decoration: line-through;
    text-decoration-color: #ccc;
}
.problem-comment {
    font-size: 12px;
    color: #888;
    font-style: italic;
    margin-top: 4px;
    text-decoration: none !important;
    display: block;
}

/* ==================== CHAT ==================== */

.chat-badge {
    background: var(--primary-color);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    margin-left: 6px;
    vertical-align: middle;
}

.chat-layout {
    display: flex;
    flex: 1;
    min-height: 0;
    margin-bottom: 4px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    overflow: hidden;
    background: var(--card-bg);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 4px rgba(0, 0, 0, 0.04);
}

.chat-sidebar {
    width: 420px;
    min-width: 380px;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    background: var(--card-bg);
    position: relative;
}

.chat-sidebar-header {
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
    background: var(--card-bg);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.chat-sidebar-header h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--text-color);
}
.chat-sidebar-header-row {
    display: flex;
    align-items: center;
    gap: 8px;
}
.chat-sidebar-count {
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    color: #fff;
    background: var(--primary-color);
    padding: 4px 8px;
    border-radius: 999px;
}
/* Segmented control rows (status filters + meta filters) */
.chat-filter-tabs,
.chat-filter-meta-tabs {
    display: flex;
    width: 100%;
    gap: 2px;
    background: var(--surface-bg);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    padding: 3px;
    box-sizing: border-box;
}
.chat-filter-tab,
.chat-filter-meta {
    flex: 1 1 0;
    min-width: 0;
    min-height: 28px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0 4px;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    font-family: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.chat-filter-tab:hover,
.chat-filter-meta:hover {
    color: var(--text-color);
}
.chat-filter-tab.active,
.chat-filter-meta.active {
    background: var(--card-bg);
    color: var(--text-color);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 0 0 1px var(--border-color);
}
.chat-filter-meta svg {
    flex-shrink: 0;
}
.chat-filter-meta[data-filter="awaiting_clarification"].active { color: #dc2626; }
.chat-filter-meta[data-filter="awaiting_clarification"].active svg { color: #dc2626; }
.chat-filter-meta[data-filter="unresolved"].active { color: #d97706; }
.chat-filter-meta[data-filter="unresolved"].active svg { color: #d97706; }

.chat-meta-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 10px;
    border: 1px solid var(--border-color);
    background: transparent;
    color: var(--text-secondary);
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}
.chat-meta-btn svg { flex-shrink: 0; }
.chat-meta-btn--clarify svg { color: #dc2626; }
.chat-meta-btn--unresolved svg { color: #d97706; }
.chat-meta-btn:hover {
    background: #fef3c7;
    border-color: #d97706;
    color: #92400e;
}

/* Кнопка «База знаний» в шапке чата */
.chat-knowledge-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid #c4b5fd;
    background: #f5f3ff;
    color: #6d28d9;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}
.chat-knowledge-btn svg { flex-shrink: 0; }
.chat-knowledge-btn:hover {
    background: #ede9fe;
    border-color: #7c3aed;
    color: #5b21b6;
}

/* Модалка «База знаний клиента» */
.client-knowledge-modal-backdrop {
    position: fixed; inset: 0;
    background: rgba(15,23,42,0.5);
    display: flex; align-items: center; justify-content: center;
    z-index: 9999;
    padding: 20px;
    animation: ckFadeIn 0.15s ease-out;
}
@keyframes ckFadeIn { from { opacity: 0; } to { opacity: 1; } }
.client-knowledge-modal {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 640px;
    max-height: 86vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
    animation: ckSlideUp 0.2s ease-out;
}
@keyframes ckSlideUp { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.client-knowledge-modal-head {
    padding: 18px 22px;
    border-bottom: 1px solid #ede9fe;
    background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}
.client-knowledge-modal-head h3 {
    margin: 0;
    font-size: 17px;
    color: #4c1d95;
    font-weight: 700;
}
.client-knowledge-modal-head small {
    display: block;
    margin-top: 4px;
    color: #6d28d9;
    font-size: 12.5px;
}
.client-knowledge-modal-close {
    background: rgba(255,255,255,0.7);
    border: none;
    width: 32px; height: 32px;
    border-radius: 8px;
    font-size: 22px;
    color: #6d28d9;
    cursor: pointer;
    transition: all .15s;
    flex-shrink: 0;
}
.client-knowledge-modal-close:hover { background: #fff; color: #4c1d95; }

.client-knowledge-modal-body {
    padding: 18px 22px;
    overflow-y: auto;
    flex: 1;
}
.client-knowledge-empty {
    text-align: center;
    padding: 50px 20px;
    color: #94a3b8;
}
.client-knowledge-empty-icon { font-size: 48px; margin-bottom: 12px; }
.client-knowledge-empty small {
    display: block;
    margin-top: 8px;
    font-size: 12px;
    color: #cbd5e1;
}

.client-knowledge-cat {
    margin-bottom: 18px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}
.client-knowledge-cat header {
    background: linear-gradient(to right, #faf5ff, #fff);
    padding: 10px 14px;
    border-bottom: 1px solid #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.client-knowledge-cat-title {
    font-weight: 700;
    font-size: 13px;
    color: #1e293b;
}
.client-knowledge-cat-count {
    background: #ede9fe;
    color: #6d28d9;
    padding: 2px 9px;
    border-radius: 10px;
    font-size: 11.5px;
    font-weight: 600;
}
.client-knowledge-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.client-knowledge-item {
    padding: 10px 14px;
    border-bottom: 1px solid #f8fafc;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
}
.client-knowledge-item:last-child { border-bottom: none; }
.client-knowledge-fact {
    font-size: 13px;
    color: #0f172a;
    line-height: 1.5;
    flex: 1;
}
.client-knowledge-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
}
.client-knowledge-conf {
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 10.5px;
    font-weight: 700;
}
.client-knowledge-conf-high { background: #dcfce7; color: #166534; }
.client-knowledge-conf-mid  { background: #fef3c7; color: #92400e; }
.client-knowledge-conf-low  { background: #fee2e2; color: #991b1b; }
.client-knowledge-date { color: #94a3b8; font-size: 11px; }

.client-knowledge-modal-foot {
    padding: 12px 22px;
    border-top: 1px solid #f1f5f9;
    background: #fafafa;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
.client-knowledge-modal-foot small {
    color: #64748b;
    font-size: 11.5px;
    flex: 1;
    line-height: 1.4;
}
.client-knowledge-modal-foot code {
    background: #ede9fe;
    color: #6d28d9;
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 11px;
}

.chat-conversation-list {
    flex: 1;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.15) transparent;
}
.chat-conversation-list::-webkit-scrollbar { width: 4px; }
.chat-conversation-list::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.1);
    border-radius: 4px;
}

.chat-conv-item {
    display: flex;
    gap: 12px;
    padding: 12px 16px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-light);
    transition: background 0.15s ease;
    position: relative;
}
.chat-conv-item:hover {
    background: var(--hover-bg);
}
.chat-conv-item.active {
    background: var(--primary-light);
}
/* Status border now handled by .status-* classes below */

.chat-conv-avatar {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 10px;
    background: var(--primary-color);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}
.chat-conv-item:hover .chat-conv-avatar {
    /* no scale effect in v2 design */
}

.chat-conv-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
}
.chat-conv-top {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.chat-conv-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.chat-conv-time {
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
    margin-left: 8px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}
.chat-conv-item.active .chat-conv-time {
    color: var(--primary-color);
}
.chat-conv-phone {
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-variant-numeric: tabular-nums;
    margin: 1px 0 2px;
}
.chat-conv-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.chat-conv-last {
    font-size: 12px;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.4;
}
.chat-conv-arrow {
    color: var(--text-muted);
    font-size: 11px;
    opacity: 0.6;
}
.chat-conv-badge {
    background: var(--primary-color);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    margin-left: 8px;
    flex-shrink: 0;
}

/* === Status left border (always visible, color depends on status) === */
.chat-conv-item::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: transparent;
    border-radius: 0 2px 2px 0;
    transition: background 0.2s ease;
}
.chat-conv-item.status-open::after { background: #22c55e; }
.chat-conv-item.status-waiting::after { background: #f59e0b; }
.chat-conv-item.status-closed::after { background: #9ca3af; }

/* SLA indicator */
.chat-conv-sla {
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
    margin-left: 4px;
    padding: 1px 5px;
    border-radius: 3px;
    flex-shrink: 0;
}
.chat-conv-sla.sla-green { color: #16a34a; background: #f0fdf4; }
.chat-conv-sla.sla-yellow { color: #ca8a04; background: #fefce8; }
.chat-conv-sla.sla-red { color: #dc2626; background: #fef2f2; }

/* Labels mini-badges in sidebar */
.chat-conv-labels {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    overflow: visible;
    margin-top: 4px;
}
.chat-conv-label {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    color: #fff;
    white-space: normal;
    word-break: break-word;
    line-height: 1.25;
    max-width: 100%;
    overflow: visible;
    text-overflow: clip;
}

/* Search bar in sidebar */
.chat-search-bar {
    display: flex;
    align-items: center;
    gap: 8px;
}
.chat-search-wrap {
    position: relative;
    flex: 1;
    min-width: 0;
}
.chat-search-input {
    width: 100%;
    padding: 9px 12px 9px 34px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    font-size: 13px;
    line-height: 1.2;
    background: var(--surface-bg);
    color: var(--text-color);
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}
.chat-search-input::placeholder {
    color: var(--text-muted);
}
.chat-search-input:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(7, 71, 131, 0.1);
}
.chat-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    pointer-events: none;
}

/* Bulk actions bar */
.chat-bulk-bar {
    display: none;
    padding: 8px 12px;
    background: var(--primary-light);
    border-bottom: 1px solid var(--border-color);
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text-color);
}
.chat-bulk-bar.visible { display: flex; }
.chat-bulk-bar button {
    padding: 4px 10px;
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    border-radius: 5px;
    font-size: 11px;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}
.chat-bulk-bar button:hover {
    background: var(--primary-color);
    color: #fff;
    border-color: var(--primary-color);
}
.chat-bulk-count {
    font-weight: 600;
    margin-right: 4px;
}
.chat-bulk-close {
    margin-left: auto;
    background: transparent !important;
    border: none !important;
    font-size: 16px !important;
    cursor: pointer;
    color: var(--text-muted);
}

/* Conversation checkbox (bulk select) */
.chat-conv-checkbox {
    display: none;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    accent-color: var(--primary-color);
    cursor: pointer;
    margin-right: -4px;
    align-self: center;
}
.chat-bulk-mode .chat-conv-checkbox { display: block; }
.chat-bulk-mode .chat-conv-avatar { display: none; }

/* Header status selector */
.chat-status-select {
    padding: 4px 8px;
    border: 1px solid var(--border-color);
    border-radius: 5px;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    outline: none;
    background: var(--card-bg);
    color: var(--text-color);
}
.chat-status-select.s-open { border-color: #22c55e; color: #16a34a; }
.chat-status-select.s-waiting { border-color: #f59e0b; color: #ca8a04; }
.chat-status-select.s-closed { border-color: #9ca3af; color: #6b7280; }

/* ===== Свод-Чат (табличный реестр чатов) ===== */
/* Меню дропдауна "Чат" — выравниваем по левому краю кнопки (она в середине навбара).
   ::before-«мост» от .nav-dropdown-menu НЕ переопределяем — иначе ломается hover. */
#chatNavMenu { left: 0; right: auto; }
#chatSvodTab .chat-svod { padding: 16px 20px 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; min-height: 0; box-sizing: border-box; }
.chat-svod-toolbar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.chat-svod-title-row { display: flex; align-items: baseline; gap: 10px; }
.chat-svod-title-row h2 { margin: 0; }
.chat-svod-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 26px; height: 22px; padding: 0 7px; border-radius: 11px;
    background: var(--accent-color, #2563eb); color: #fff; font-size: 12px; font-weight: 600;
}
.chat-svod-search {
    flex: 1; min-width: 220px; max-width: 360px; height: 34px; padding: 0 12px;
    border: 1px solid var(--border-color, #d1d5db); border-radius: 8px;
    background: var(--card-bg, #fff); color: var(--text-color); font-size: 13px;
}
.chat-svod-filters { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.chat-svod-filters-sep { width: 1px; height: 20px; background: var(--border-color, #e5e7eb); margin: 0 4px; }
.chat-svod-table-wrap { flex: 1; min-height: 0; overflow: auto; }
.chat-svod-table { width: 100%; }
.chat-svod-table th { cursor: pointer; white-space: nowrap; user-select: none; }
.chat-svod-row { cursor: pointer; }
.chat-svod-name-cell { max-width: 380px; }
.chat-svod-name { font-weight: 600; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.chat-svod-last-msg { font-size: 12px; color: var(--text-muted, #6b7280); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 360px; }
.chat-svod-group-tag {
    display: inline-block; font-size: 10px; font-weight: 600; text-transform: uppercase;
    letter-spacing: .03em; padding: 1px 5px; border-radius: 4px;
    background: var(--accent-soft, #e0e7ff); color: var(--accent-color, #4338ca);
}
.chat-svod-status { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
.chat-svod-status.s-open { background: #f0fdf4; color: #16a34a; }
.chat-svod-status.s-waiting { background: #fefce8; color: #ca8a04; }
.chat-svod-status.s-closed { background: #f3f4f6; color: #6b7280; }
.chat-svod-created { white-space: nowrap; font-size: 12px; }
.chat-svod-muted { color: var(--text-muted, #9ca3af); }
body[data-theme="dark"] .chat-svod-status.s-open { background: rgba(22,163,74,.18); }
body[data-theme="dark"] .chat-svod-status.s-waiting { background: rgba(202,138,4,.18); }
body[data-theme="dark"] .chat-svod-status.s-closed { background: rgba(107,114,128,.22); color: #cbd5e1; }
body[data-theme="dark"] .chat-svod-group-tag { background: rgba(99,102,241,.22); color: #c7d2fe; }

/* ===== Живая AI-лента «Свод-Чат» (19.06.2026) ===== */
.chat-feed-list { flex: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: 8px; padding-right: 4px; }
.chat-feed-empty { padding: 40px 16px; text-align: center; color: var(--text-muted, #9ca3af); font-size: 14px; }
.chat-feed-item {
    display: flex; gap: 12px; padding: 10px 14px; border-radius: 12px;
    background: var(--card-bg, #fff); border: 1px solid var(--border-color, #e5e7eb);
    cursor: pointer; transition: background .12s, border-color .12s, transform .12s;
}
.chat-feed-item:hover { background: var(--hover-bg, #f9fafb); border-color: #c7d2fe; transform: translateX(2px); }
.chat-feed-item .cf-icon { font-size: 18px; line-height: 1.4; flex-shrink: 0; width: 24px; text-align: center; }
.chat-feed-item .cf-body { flex: 1; min-width: 0; }
.cf-line1 { display: flex; align-items: baseline; gap: 8px; }
.cf-name { font-weight: 600; font-size: 13px; color: var(--text-color, #111827); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cf-time { font-size: 11px; color: var(--text-muted, #9ca3af); margin-left: auto; flex-shrink: 0; }
.cf-text { font-size: 13px; color: var(--text-color, #1f2937); margin-top: 2px; line-height: 1.4; }
.cf-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.cf-chip { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: var(--hover-bg, #f3f4f6); color: var(--text-muted, #6b7280); white-space: nowrap; }
.cf-chip.cf-topic { background: #eef2ff; color: #4f46e5; }
.cf-chip.cf-mgr { background: #f0fdf4; color: #16a34a; }
.cf-chip.cf-sent-positive { background: #f0fdf4; color: #16a34a; }
.cf-chip.cf-sent-negative { background: #fef2f2; color: #dc2626; }
.cf-chip.cf-q-slow { background: #fefce8; color: #ca8a04; }
.cf-chip.cf-q-bad { background: #fef2f2; color: #dc2626; }
/* Левая цветная полоса по типу записи */
.chat-feed-item.cf-reminder { border-left: 3px solid #f59e0b; background: #fffbeb; }
.chat-feed-item.cf-reminder:hover { background: #fef3c7; }
.chat-feed-item.cf-summary, .chat-feed-item.cf-verdict { border-left: 3px solid #6366f1; }
.chat-feed-item.cf-role-client { }
.chat-feed-item.cf-event.cf-role-manager { border-left: 3px solid #16a34a; }
/* Тёмная тема */
body[data-theme="dark"] .chat-feed-item { background: var(--card-bg, #1e293b); border-color: var(--border-color, #334155); }
body[data-theme="dark"] .chat-feed-item:hover { background: rgba(99,102,241,.12); border-color: #4f46e5; }
body[data-theme="dark"] .chat-feed-item.cf-reminder { background: rgba(245,158,11,.10); }
body[data-theme="dark"] .chat-feed-item.cf-reminder:hover { background: rgba(245,158,11,.18); }
body[data-theme="dark"] .cf-chip { background: rgba(148,163,184,.18); color: #cbd5e1; }
body[data-theme="dark"] .cf-chip.cf-topic { background: rgba(99,102,241,.22); color: #c7d2fe; }
body[data-theme="dark"] .cf-chip.cf-mgr, body[data-theme="dark"] .cf-chip.cf-sent-positive { background: rgba(22,163,74,.20); color: #86efac; }
body[data-theme="dark"] .cf-chip.cf-sent-negative, body[data-theme="dark"] .cf-chip.cf-q-bad { background: rgba(220,38,38,.20); color: #fca5a5; }
body[data-theme="dark"] .cf-chip.cf-q-slow { background: rgba(202,138,4,.20); color: #fde68a; }

/* ===== Вид «Обращения» + переключатель + подсказки (фазы 3-4, 19.06.2026) ===== */
#chatFeedView, #chatInquiriesView { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 12px; }
.chat-svod-viewswitch { display: inline-flex; gap: 4px; background: var(--hover-bg, #f3f4f6); padding: 3px; border-radius: 10px; align-self: flex-start; }
.cf-viewbtn { border: none; background: transparent; padding: 6px 14px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; color: var(--text-muted, #6b7280); }
.cf-viewbtn.active { background: var(--card-bg, #fff); color: var(--text-color, #111827); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
body[data-theme="dark"] .chat-svod-viewswitch { background: rgba(148,163,184,.12); }
body[data-theme="dark"] .cf-viewbtn.active { background: #0f172a; color: #e2e8f0; }

/* Подсказка ответа (фаза 4) */
.chat-feed-item.cf-suggestion { border-left: 3px solid #0ea5e9; background: #f0f9ff; }
.chat-feed-item.cf-suggestion:hover { background: #e0f2fe; }
.cf-chip.cf-suggest-tag { background: #e0f2fe; color: #0284c7; font-weight: 600; }
.cf-suggest-actions { margin-top: 8px; }
.cf-copy-btn { border: 1px solid #0ea5e9; background: #fff; color: #0284c7; font-size: 12px; font-weight: 600; padding: 4px 12px; border-radius: 8px; cursor: pointer; }
.cf-copy-btn:hover { background: #0ea5e9; color: #fff; }
body[data-theme="dark"] .chat-feed-item.cf-suggestion { background: rgba(14,165,233,.10); }
body[data-theme="dark"] .cf-copy-btn { background: transparent; }

/* Метрики менеджеров */
.chat-inq-metrics { display: flex; gap: 10px; flex-wrap: wrap; flex-shrink: 0; }
.inq-metric-card { flex: 1 1 150px; min-width: 150px; background: var(--card-bg, #fff); border: 1px solid var(--border-color, #e5e7eb); border-radius: 12px; padding: 12px 14px; }
.inq-metric-card.inq-metric-total { background: #eef2ff; border-color: #c7d2fe; }
.imc-title { font-size: 12px; color: var(--text-muted, #6b7280); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.imc-big { font-size: 26px; font-weight: 700; color: var(--text-color, #111827); line-height: 1.2; margin: 2px 0; }
.imc-sub { font-size: 11px; color: var(--text-muted, #6b7280); line-height: 1.5; }
body[data-theme="dark"] .inq-metric-card { background: var(--card-bg, #1e293b); border-color: var(--border-color, #334155); }
body[data-theme="dark"] .inq-metric-card.inq-metric-total { background: rgba(99,102,241,.18); border-color: #4f46e5; }

/* Таблица обращений */
.chat-inq-table-wrap { flex: 1; min-height: 0; overflow: auto; }
.chat-inq-table { width: 100%; }
.chat-inq-table th { white-space: nowrap; }
.chat-inq-row { cursor: pointer; }
.chat-inq-table .cf-chip { display: inline-block; }

/* Header labels */
.chat-header-labels {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    align-items: center;
}
.chat-header-label {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    color: #fff;
    cursor: default;
    position: relative;
}
.chat-header-label .remove-label {
    display: none;
    margin-left: 3px;
    cursor: pointer;
    font-weight: 700;
}
.chat-header-label:hover .remove-label { display: inline; }
.chat-add-label-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    padding: 3px 8px;
    border: 1px dashed var(--border-color);
    border-radius: 4px;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
}
.chat-add-label-btn svg { flex-shrink: 0; }
.chat-add-label-btn:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

/* Header info row (subject, assigned, labels) */
.chat-header-details {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 4px;
    flex-wrap: wrap;
}
.chat-header-subject {
    font-size: 11px;
    color: var(--text-muted);
    max-width: 250px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    padding: 1px 4px;
    border-radius: 3px;
    transition: background 0.15s;
}
.chat-header-subject:hover { background: var(--hover-bg); }
.chat-header-assigned {
    font-size: 11px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
}
.chat-header-assigned select {
    padding: 2px 6px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 11px;
    background: var(--card-bg);
    color: var(--text-color);
    cursor: pointer;
    outline: none;
    max-width: 140px;
}

/* Internal note styling */
.chat-bubble.note-bubble {
    background: #fefce8 !important;
    border-left: 3px solid #f59e0b;
}
.chat-note-icon {
    font-size: 10px;
    color: #ca8a04;
    font-weight: 600;
}
.chat-note-input-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
}
.chat-note-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 8px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: transparent;
    font-size: 11px;
    cursor: pointer;
    color: var(--text-muted);
    transition: all 0.15s;
}
.chat-note-toggle svg { flex-shrink: 0; }
.chat-note-toggle:hover {
    color: var(--text-color);
    border-color: var(--primary-color);
}
.chat-note-toggle.active {
    background: #fefce8;
    border-color: #f59e0b;
    color: #ca8a04;
}
.chat-bulk-toggle-btn {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: var(--radius-lg);
    background: var(--surface-bg);
}
.chat-bulk-mode .chat-bulk-toggle-btn {
    background: var(--primary-light);
    border-color: var(--primary-color);
    color: var(--primary-color);
}

/* Search results overlay */
.chat-search-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 0 0 8px 8px;
    max-height: 300px;
    overflow-y: auto;
    z-index: 10;
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    display: none;
}
.chat-search-results.visible { display: block; }
.chat-search-result-item {
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-light);
    font-size: 12px;
}
.chat-search-result-item:hover { background: var(--hover-bg); }
.chat-search-result-name {
    font-weight: 600;
    color: var(--text-color);
}
.chat-search-result-text {
    color: var(--text-muted);
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--card-bg);
    position: relative;
}

/* Подсветка при перетаскивании файла в диалог (drag-and-drop в чат) */
.chat-main.chat-drop-active::after {
    content: 'Отпустите, чтобы отправить файл в чат';
    position: absolute;
    inset: 8px;
    z-index: 40;
    border: 2px dashed var(--primary-color, #2563eb);
    border-radius: 12px;
    background: rgba(37, 99, 235, .07);
    color: var(--primary-color, #2563eb);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 15px;
    pointer-events: none;
}
body[data-theme="dark"] .chat-main.chat-drop-active::after {
    background: rgba(59, 130, 246, .14);
    border-color: #60a5fa;
    color: #93c5fd;
}

.chat-placeholder {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: var(--text-muted);
    opacity: 0.7;
}
.chat-placeholder svg {
    opacity: 0.3;
}
.chat-placeholder p {
    margin: 0;
    font-size: 15px;
    font-weight: 500;
}

.chat-placeholder-small {
    padding: 32px;
    text-align: center;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 500;
}

.chat-header-bar {
    padding: 12px 24px;
    border-bottom: 1px solid var(--border-color);
    background: var(--card-bg);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.chat-header-left {
    display: flex;
    align-items: center;
    gap: 16px;
}
.chat-header-avatar {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 10px;
    background: var(--primary-color);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
}
.chat-header-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}
.chat-header-action-btn {
    padding: 6px 12px;
    border: 1px solid var(--border-color);
    background: transparent;
    color: var(--text-secondary);
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}
.chat-header-action-btn:hover {
    background: var(--primary-light);
    color: var(--primary-color);
    border-color: var(--primary-color);
}
.chat-verify-btn {
    padding: 6px 12px;
    border: 1px solid var(--border-color);
    background: transparent;
    color: var(--text-secondary);
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}
.chat-verify-btn:hover {
    background: var(--primary-light);
    color: var(--primary-color);
    border-color: var(--primary-color);
}
.chat-link-org-btn {
    padding: 6px 12px;
    border: 1px solid #f59e0b;
    background: #fffbeb;
    color: #b45309;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}
.chat-link-org-btn:hover {
    background: #fef3c7;
    border-color: #d97706;
    color: #92400e;
}
.org-link-modal-content { max-width: 560px; }
.org-link-row:hover { background: #f8fafc; }
.chat-header-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.chat-header-info strong {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-color);
}
.chat-header-name-link {
    cursor: pointer;
    transition: color .12s;
}
.chat-header-name-link:hover {
    color: var(--primary-color);
    text-decoration: underline;
}
.chat-header-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 11px;
    color: var(--text-muted);
}
.chat-header-meta-sep {
    width: 1px;
    height: 12px;
    background: var(--border-color);
}
.chat-header-phone {
    font-size: 11px;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 16px 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: var(--surface-bg);
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.1) transparent;
}
.chat-messages::-webkit-scrollbar { width: 4px; }
.chat-messages::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.1);
    border-radius: 4px;
}

.chat-bubble {
    max-width: 65%;
    padding: 10px 16px;
    font-size: 13px;
    line-height: 1.55;
    word-break: break-word;
    position: relative;
    animation: chat-bubble-appear 0.2s ease;
}
@keyframes chat-bubble-appear {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.chat-bubble--in {
    align-self: flex-start;
    background: var(--card-bg);
    color: var(--text-color);
    border: 1px solid var(--border-light);
    border-radius: 4px 16px 16px 16px;
}
.chat-bubble--out {
    align-self: flex-end;
    background: var(--primary-color);
    color: #fff;
    border-radius: 16px 4px 16px 16px;
}

.chat-bubble-sender {
    display: none;
}
/* В основном чате с клиентом (#chatMessages, класс .chat-messages) показываем имя автора
   над пузырём:
     - outbound/AI — всегда (видно, какой менеджер/ассистент писал)
     - inbound — только если в JS принято решение отрисовать sender-блок (полезно для групповых
       WhatsApp-чатов, где у каждого сообщения свой автор-участник). Решение принимается в
       _renderChatBubbleHtml на основании msg.sender_name (не «Клиент» / не голый телефон).
   Если JS не вставил <div class="chat-bubble-sender"> вовсе — этой строки просто нет. */
.chat-messages .chat-bubble--out .chat-bubble-sender,
.chat-messages .chat-bubble--ai .chat-bubble-sender,
.chat-messages .chat-bubble--in .chat-bubble-sender {
    display: block;
    font-size: 10.5px;
    font-weight: 600;
    margin-bottom: 3px;
    letter-spacing: 0.1px;
}
.chat-messages .chat-bubble--out .chat-bubble-sender {
    color: rgba(255, 255, 255, 0.92);
    opacity: 0.9;
}
.chat-messages .chat-bubble--ai .chat-bubble-sender {
    color: #6d28d9;
    opacity: 0.95;
}
body[data-theme="dark"] .chat-messages .chat-bubble--ai .chat-bubble-sender {
    color: #ede9fe;
}
.chat-messages .chat-bubble--in .chat-bubble-sender {
    color: var(--text-muted, #5f6368);
    opacity: 0.85;
}

.chat-load-more {
    text-align: center;
    padding: 8px 16px;
    margin: 8px auto;
    color: var(--primary-color);
    font-size: 13px;
    cursor: pointer;
    border-radius: 16px;
    background: rgba(var(--primary-rgb, 37, 99, 235), 0.08);
    width: fit-content;
}
.chat-load-more:hover {
    background: rgba(var(--primary-rgb, 37, 99, 235), 0.15);
}

.chat-source-omnidesk {
    display: inline-block;
    background: rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.9);
    font-size: 9px;
    font-weight: 700;
    padding: 1px 4px;
    border-radius: 3px;
    letter-spacing: 0.5px;
    vertical-align: middle;
    margin-right: 2px;
}
.chat-bubble--in .chat-source-omnidesk {
    background: rgba(var(--primary-rgb, 37, 99, 235), 0.12);
    color: var(--primary-color);
}

.chat-bubble-text {
    white-space: pre-wrap;
}

/* Кликабельные ссылки в сообщениях (Nuri 06.07.2026). На исходящих фон цветной —
   наследуем цвет текста; на входящих (светлый фон) — фирменный синий. */
.chat-bubble-text .chat-msg-link {
    color: inherit;
    text-decoration: underline;
    word-break: break-all;
}
.chat-bubble--in .chat-bubble-text .chat-msg-link {
    color: var(--primary-color);
}

.chat-bubble-time {
    font-size: 10px;
    text-align: right;
    margin-top: 4px;
    font-variant-numeric: tabular-nums;
}
.chat-bubble--in .chat-bubble-time {
    color: var(--text-muted);
}
.chat-bubble--out .chat-bubble-time {
    color: rgba(255, 255, 255, 0.5);
}

.chat-input-area {
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid var(--border-color);
    background: var(--card-bg);
    align-items: flex-end;
}
.chat-input-area > * { align-self: flex-end; }
.chat-input-area textarea {
    flex: 1;
    resize: none;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 10px 16px;
    font-size: 13px;
    font-family: inherit;
    background: var(--surface-bg);
    color: var(--text-color);
    outline: none;
    max-height: 120px;
    line-height: 1.5;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.chat-input-area textarea::placeholder {
    color: var(--text-muted);
    opacity: 0.6;
}
.chat-input-area textarea:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(7, 71, 131, 0.08);
}
.chat-send-btn {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--primary-color);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.15s ease;
}
.chat-send-btn:hover {
    opacity: 0.9;
}
.chat-send-btn:active {
    transform: scale(0.95);
}

.chat-media-img {
    max-width: 280px;
    max-height: 300px;
    border-radius: 10px;
    cursor: pointer;
    display: block;
    margin-bottom: 6px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.chat-media-img:hover {
    transform: scale(1.02);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.chat-media-video {
    max-width: 320px;
    max-height: 240px;
    border-radius: 10px;
    display: block;
    margin-bottom: 6px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.chat-media-audio {
    max-width: 280px;
    display: block;
    margin-bottom: 6px;
    border-radius: 20px;
}
.chat-media-unavailable {
    padding: 10px 14px;
    color: var(--text-muted);
    font-size: 13px;
    font-style: italic;
    background: rgba(0, 0, 0, 0.03);
    border-radius: 8px;
}
/* Расшифровка голосового (п.7) — под аудио-пузырём */
.chat-voice-transcript {
    margin-top: 6px;
    padding: 7px 10px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--text-color);
    background: rgba(0, 0, 0, 0.04);
    border-left: 3px solid var(--primary-color);
    border-radius: 6px;
    max-width: 320px;
    white-space: pre-wrap;
    word-break: break-word;
}
.chat-voice-transcript--pending {
    color: var(--text-muted);
    font-style: italic;
    border-left-color: var(--text-muted);
}
.chat-voice-transcript-ico { opacity: .7; }
.chat-bubble--out .chat-voice-transcript {
    background: rgba(255, 255, 255, 0.18);
    color: inherit;
}
body[data-theme="dark"] .chat-voice-transcript {
    background: rgba(255, 255, 255, 0.06);
}
.chat-media-doc {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: rgba(7, 71, 131, 0.06);
    border-radius: 8px;
    color: var(--primary-color);
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 6px;
    transition: background 0.15s ease;
}
.chat-media-doc:hover {
    background: rgba(7, 71, 131, 0.1);
    text-decoration: none;
}
.chat-bubble--out .chat-media-doc {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
}
.chat-bubble--out .chat-media-doc:hover {
    background: rgba(255, 255, 255, 0.22);
}
.chat-bubble--out .chat-media-unavailable {
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.7);
}

/* Unread divider */
.chat-unread-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 8px 0;
    align-self: stretch;
}
.chat-unread-divider::before,
.chat-unread-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(7, 71, 131, 0.3), transparent);
}
.chat-unread-divider span {
    font-size: 12px;
    font-weight: 600;
    color: var(--primary-color);
    white-space: nowrap;
    padding: 4px 14px;
    background: rgba(7, 71, 131, 0.06);
    border-radius: 12px;
    letter-spacing: 0.2px;
}

/* Группа сообщений за одну дату — родитель для sticky-разделителя.
   Каждая секция — отдельный containing block: position:sticky у вложенного divider'а
   ограничен её рамками, поэтому несколько секций НЕ стекают свои divider'ы на одной
   позиции top:4px (баг 14.05.2026 с двумя пилюлями даты). Когда нижняя граница секции
   уходит выше sticky-зоны — divider секции тоже уезжает вверх вместе с секцией. */
.chat-date-section {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Date divider between messages — sticky к верху своей секции */
.chat-date-divider {
    text-align: center;
    margin: 10px 0 4px;
    position: sticky;
    top: 4px;
    z-index: 2;
    pointer-events: none;
}
.chat-date-divider span {
    font-size: 11px;
    font-weight: 500;
    color: #6b7280;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding: 4px 12px;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08), 0 0 0 1px rgba(15, 23, 42, 0.04);
    letter-spacing: 0.2px;
    display: inline-block;
}
body[data-theme="dark"] .chat-date-divider span {
    color: #cbd5e1;
    background: rgba(30, 41, 59, 0.85);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(148, 163, 184, 0.15);
}

/* Кнопка-стрелка «вниз» (к последнему сообщению) над input-area */
.chat-scroll-bottom-btn {
    position: absolute;
    right: 18px;
    bottom: 80px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-color, #e5e7eb);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
    color: var(--primary-color, #074783);
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 5;
    transition: transform 0.15s ease, background 0.15s ease;
}
.chat-scroll-bottom-btn:hover {
    background: var(--surface-bg, #f8fafc);
    transform: translateY(-1px);
}
.chat-scroll-bottom-btn.is-visible {
    display: flex;
}
.chat-scroll-bottom-btn .chat-scroll-bottom-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--primary-color, #074783);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: none;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.chat-scroll-bottom-btn .chat-scroll-bottom-badge.is-visible {
    display: flex;
}
body[data-theme="dark"] .chat-scroll-bottom-btn {
    background: #1e293b;
    border-color: #334155;
    color: #93c5fd;
}

/* Reply quote inside bubble */
.chat-reply-quote {
    padding: 6px 10px;
    margin-bottom: 6px;
    border-left: 3px solid rgba(7, 71, 131, 0.5);
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.15s ease;
}
.chat-bubble--in .chat-reply-quote {
    background: rgba(7, 71, 131, 0.06);
}
.chat-bubble--out .chat-reply-quote {
    background: rgba(255, 255, 255, 0.12);
    border-left-color: rgba(255, 255, 255, 0.5);
}
.chat-reply-quote:hover {
    opacity: 0.8;
}
.chat-reply-quote-sender {
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 2px;
}
.chat-bubble--in .chat-reply-quote-sender {
    color: var(--primary-color);
}
.chat-bubble--out .chat-reply-quote-sender {
    color: rgba(255, 255, 255, 0.85);
}
.chat-reply-quote-text {
    font-size: 12px;
    opacity: 0.75;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Reply preview above input */
.chat-reply-preview {
    display: none;
    align-items: center;
    gap: 10px;
    padding: 10px 24px;
    border-top: 1px solid var(--border-color);
    background: var(--surface-bg);
    animation: chat-bubble-appear 0.2s ease;
}
.chat-reply-preview-icon {
    font-size: 18px;
    color: var(--primary-color);
    flex-shrink: 0;
}
.chat-reply-preview-body {
    flex: 1;
    min-width: 0;
    border-left: 3px solid var(--primary-color);
    padding-left: 10px;
}
.chat-reply-preview-sender {
    font-size: 12px;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 2px;
}
.chat-reply-preview-text {
    font-size: 12.5px;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.chat-reply-preview-close {
    background: none;
    border: none;
    font-size: 20px;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 50%;
    transition: all 0.15s;
    flex-shrink: 0;
}
.chat-reply-preview-close:hover {
    background: rgba(0,0,0,0.06);
    color: var(--text-color);
}

/* Highlight animation on scroll-to-message */
.chat-bubble-highlight {
    animation: chat-highlight-flash 2s ease;
}
@keyframes chat-highlight-flash {
    0%, 100% { box-shadow: 0 0 0 0 transparent; }
    15%, 50% { box-shadow: 0 0 0 3px rgba(7, 71, 131, 0.35); }
}

/* Emoji button */
.chat-upload-spinner {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-size: 13px;
    opacity: 0.8;
}
.spinner-ring {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    flex-shrink: 0;
}
.chat-bubble--in .spinner-ring {
    border-color: rgba(0,0,0,0.15);
    border-top-color: var(--primary-color);
}
@keyframes spin { to { transform: rotate(360deg); } }

.chat-attach-btn {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.15s;
    padding: 0;
    color: var(--text-muted);
}
.chat-attach-btn:hover {
    background: var(--hover-bg);
    color: var(--text-color);
}

.chat-emoji-btn {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.15s;
    padding: 0;
}
.chat-emoji-btn:hover {
    background: var(--hover-bg);
}

/* Кнопка внутренней заметки в строке ввода — единый размер с прикреплением/эмодзи/отправкой */
.chat-input-area .chat-note-mode-btn {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.15s;
}
.chat-input-area .chat-note-mode-btn:hover {
    border-color: var(--primary-color);
    color: var(--text-color);
    background: var(--hover-bg);
}
.chat-input-area .chat-note-mode-btn.active {
    background: #fefce8;
    border-color: #f59e0b;
    color: #ca8a04;
}
.chat-input-area .chat-note-mode-btn svg { display: block; }

/* Emoji picker */
.chat-emoji-picker {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 2px;
    padding: 10px 24px;
    border-top: 1px solid var(--border-color);
    background: var(--card-bg);
    animation: chat-bubble-appear 0.2s ease;
}
.chat-emoji-item {
    font-size: 22px;
    text-align: center;
    cursor: pointer;
    padding: 6px;
    border-radius: 8px;
    transition: all 0.12s;
    line-height: 1;
}
.chat-emoji-item:hover {
    background: var(--hover-bg);
    transform: scale(1.2);
}

/* Подавление нативной HTML5 подсветки невалидных полей */
input:invalid,
select:invalid {
    box-shadow: none;
    outline: none;
}

/* ========== ОМНИ — Morphing Disclosure ========== */
.audit-omni {
    max-width: 720px;
    --omni-border: #e0e0e0;
    --omni-bg: #fff;
    --omni-hover: #f8f9fa;
    --omni-radius: 12px;
    --omni-duration: 0.3s;
    --omni-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

.omni-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}

.omni-header h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #202124;
    letter-spacing: -0.02em;
}

.omni-target {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 20px;
    font-weight: 500;
    font-size: 12px;
}

.omni-target svg { flex-shrink: 0; }
.omni-target-group { background: #e8f5e9; color: #2e7d32; }
.omni-target-personal { background: #e3f2fd; color: #1565c0; }

/* Morphing disclosure container */
.morphing-disclosure {
    line-height: 1.5;
    font-size: 14px;
}

.morphing-disclosure details {
    background: var(--omni-bg);
    border-inline: 1px solid var(--omni-border);
    position: relative;
    transition: border-radius var(--omni-duration) var(--omni-ease),
                margin var(--omni-duration) var(--omni-ease),
                background var(--omni-duration) var(--omni-ease),
                border-color var(--omni-duration) var(--omni-ease);
    interpolate-size: allow-keywords;
}

.morphing-disclosure details::details-content {
    height: 0;
    overflow: hidden;
    transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
                content-visibility 0.4s;
    transition-behavior: allow-discrete;
}

.morphing-disclosure details[open]::details-content {
    height: fit-content;
}

.morphing-disclosure details:first-of-type {
    border-radius: var(--omni-radius) var(--omni-radius) 0 0;
    border-top: 1px solid var(--omni-border);
}

.morphing-disclosure details:last-of-type {
    border-radius: 0 0 var(--omni-radius) var(--omni-radius);
    border-bottom: 1px solid var(--omni-border);
}

.morphing-disclosure details + details {
    border-top: 1px solid var(--omni-border);
}

.morphing-disclosure details:has(+ details[open]) {
    border-bottom-left-radius: var(--omni-radius);
    border-bottom-right-radius: var(--omni-radius);
    border-bottom: 1px solid var(--omni-border);
}

.morphing-disclosure details[open] + details {
    border-top-left-radius: var(--omni-radius);
    border-top-right-radius: var(--omni-radius);
}

.morphing-disclosure details[open] {
    margin-block: 12px;
    border-radius: var(--omni-radius);
    border: 1px solid var(--omni-border);
    z-index: 2;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}

.morphing-disclosure details[open]:first-of-type { margin-block-start: 0; }
.morphing-disclosure details[open]:last-of-type { margin-block-end: 0; }

.morphing-disclosure details[open].omni-done {
    border-color: #27ae60;
    background: linear-gradient(135deg, #f6fef8, #eef9f1);
}

.morphing-disclosure details:has(~ details[open]) {
    translate: 0 -8px;
    transition: translate var(--omni-duration) var(--omni-ease), border-radius var(--omni-duration) var(--omni-ease), margin var(--omni-duration) var(--omni-ease), background var(--omni-duration) var(--omni-ease), border-color var(--omni-duration) var(--omni-ease);
}

.morphing-disclosure details[open] ~ details {
    translate: 0 8px;
    transition: translate var(--omni-duration) var(--omni-ease), border-radius var(--omni-duration) var(--omni-ease), margin var(--omni-duration) var(--omni-ease), background var(--omni-duration) var(--omni-ease), border-color var(--omni-duration) var(--omni-ease);
}

.morphing-disclosure details[open][data-highlight] {
    --omni-border: #202124;
}

/* Summary */
.morphing-disclosure summary {
    padding: 14px 18px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    font-weight: 600;
    font-size: 14px;
    color: #202124;
    letter-spacing: -0.01em;
}

.morphing-disclosure summary::marker { font-size: 0; }

.morphing-disclosure summary:hover {
    background: var(--omni-hover);
}

.morphing-disclosure details:first-of-type summary:hover {
    border-radius: var(--omni-radius) var(--omni-radius) 0 0;
}

.morphing-disclosure details:last-of-type summary:hover {
    border-radius: 0 0 var(--omni-radius) var(--omni-radius);
}

.morphing-disclosure details[open] summary:hover {
    border-radius: var(--omni-radius) var(--omni-radius) 0 0;
}

.morphing-disclosure summary svg:last-child {
    opacity: 0.4;
    transition: rotate var(--omni-duration) var(--omni-ease), opacity var(--omni-duration);
}

.morphing-disclosure summary:hover svg:last-child { opacity: 0.8; }
.morphing-disclosure details[open] summary svg:last-child { rotate: 45deg; opacity: 0.6; }

.morphing-disclosure .omni-done summary span {
    color: #27ae60;
}

.omni-sent-time {
    font-weight: 400;
    font-size: 11px;
    color: #27ae60;
    margin-left: 6px;
    opacity: 0.8;
}

/* Content area */
.omni-content {
    padding: 0 18px 18px;
    opacity: 0.4;
    translate: 0 8px;
    filter: blur(3px);
    transition: opacity var(--omni-duration) var(--omni-ease),
                translate var(--omni-duration) var(--omni-ease),
                filter var(--omni-duration) var(--omni-ease);
}

.morphing-disclosure details[open] .omni-content {
    opacity: 1;
    translate: 0 0;
    filter: blur(0);
}

.omni-step-desc {
    margin: 0 0 14px;
    color: #666;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
}

/* Toggle switch */
.omni-toggle-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #f0f0f0;
}

.omni-toggle {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.omni-toggle input { display: none; }

.omni-toggle-slider {
    position: relative;
    width: 44px;
    height: 24px;
    background: #ccc;
    border-radius: 12px;
    transition: background 0.3s;
}

.omni-toggle-slider::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}

.omni-toggle input:checked + .omni-toggle-slider {
    background: var(--primary-color);
}

.omni-toggle input:checked + .omni-toggle-slider::after {
    transform: translateX(20px);
}

.omni-toggle-label {
    font-size: 13px;
    color: #666;
    font-weight: 500;
}

/* Chat ID input */
.omni-chatid-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.omni-chatid-input-wrap {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
    max-width: 360px;
}

.omni-chatid-icon {
    position: absolute;
    left: 12px;
    pointer-events: none;
    opacity: 0.4;
}

.omni-chatid-input {
    width: 100%;
    padding: 10px 12px 10px 34px;
    border: 1.5px solid #e0e0e0;
    border-radius: 8px;
    font-size: 13px;
    font-family: 'JetBrains Mono', monospace;
    background: #fafafa;
    transition: border-color 0.2s, box-shadow 0.2s;
    letter-spacing: 0.3px;
}

.omni-chatid-input:focus {
    border-color: var(--primary-color);
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(7, 71, 131, 0.08);
}

.omni-chatid-btn {
    font-size: 12px;
    padding: 10px 18px;
    white-space: nowrap;
    border-radius: 8px;
}

.omni-chatid-hint {
    margin: 0 0 4px;
    font-size: 12px;
    color: #999;
    display: flex;
    align-items: center;
    gap: 4px;
}

.omni-chatid-hint-ok { color: #27ae60; font-weight: 500; }

/* Message textarea */
.omni-msg-text {
    width: 100%;
    font-family: inherit;
    line-height: 1.6;
    border: 1.5px solid #e0e0e0;
    border-radius: 8px;
    padding: 12px;
    background: #fafafa;
    font-size: 13px;
    resize: none;
    overflow: hidden;
    min-height: 60px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.omni-msg-text:focus {
    border-color: var(--primary-color);
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(7, 71, 131, 0.08);
}

/* Send button */
.omni-send-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 9px 20px;
    background: var(--primary-color);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
}

.omni-send-btn:hover { background: var(--primary-hover); }
.omni-send-btn:active { transform: scale(0.97); }
.omni-send-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* Variants */
.omni-variant {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f0;
}

.omni-variant:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.omni-variant-label {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    color: #555;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ========== Аудит — Секционный вид (Проблемы v2) ========== */
.audit-problems-v2 {
    max-width: 860px;
}

.audit-problems-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.audit-problems-header h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #202124;
    letter-spacing: -0.02em;
    display: flex;
    align-items: center;
    gap: 10px;
}

.audit-status-ok {
    font-size: 13px;
    font-weight: 500;
    color: #27ae60;
    background: #e8f5e9;
    padding: 3px 10px;
    border-radius: 12px;
}

.audit-status-error {
    font-size: 13px;
    font-weight: 500;
    color: #c62828;
    background: #fde8e8;
    padding: 3px 10px;
    border-radius: 12px;
}

.audit-status-warning {
    font-size: 13px;
    font-weight: 500;
    color: #e65100;
    background: #fff3e0;
    padding: 3px 10px;
    border-radius: 12px;
}

/* Section status colors (open state) */
.morphing-disclosure details[open].section-ok {
    border-color: #27ae60;
    background: linear-gradient(135deg, #f6fef8, #eef9f1);
}

.morphing-disclosure details[open].section-error {
    border-color: #e74c3c;
    background: linear-gradient(135deg, #fef6f6, #fdeaea);
}

.morphing-disclosure details[open].section-warning {
    border-color: #f39c12;
    background: linear-gradient(135deg, #fffef6, #fef8ea);
}

/* Section summary text color */
.morphing-disclosure .section-ok summary > span { color: #27ae60; }
.morphing-disclosure .section-error summary > span { color: #c62828; }
.morphing-disclosure .section-warning summary > span { color: #e65100; }

/* Section badge (count) in summary */
.section-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    padding: 0 6px;
    margin-left: 6px;
    line-height: 1;
}

.section-badge-error {
    background: #e74c3c;
    color: #fff;
}

.section-badge-warning {
    background: #f39c12;
    color: #fff;
}

/* Audit check table inside sections */
.audit-check-table {
    width: 100%;
    border-collapse: collapse;
}

.audit-check-row td {
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
    vertical-align: middle;
}

.audit-check-row:last-child td {
    border-bottom: none;
}

.audit-check-label {
    font-size: 13px;
    color: #333;
    font-weight: 500;
    width: 45%;
}

.audit-check-value {
    text-align: right;
    padding-right: 8px !important;
}

.audit-check-action {
    width: 32px;
    text-align: right;
}

/* Check badge (status pill) */
.check-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
    white-space: normal;
    word-break: break-word;
}

/* Message section inside audit */
.audit-msg-section {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #f0f0f0;
}

.audit-msg-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.audit-msg-label {
    font-size: 12px;
    font-weight: 600;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Sub-headers */
.audit-sub-header {
    margin: 24px 0 12px;
    font-size: 15px;
    font-weight: 600;
    color: #555;
}

/* Closed/dismissed details */
.audit-closed-details {
    margin-top: 24px;
}

.audit-closed-details > summary {
    cursor: pointer;
    color: #888;
    font-size: 14px;
    font-weight: 500;
    user-select: none;
}

.audit-closed-details > summary:hover {
    color: #555;
}

/* Мини-календарь закрытых периодов */
.audit-mini-calendar .cal-cell {
    padding: 6px 2px;
    text-align: center;
    font-size: 11px;
    border-radius: 4px;
    background: #f3f4f6;
    color: #6b7280;
    cursor: default;
    user-select: none;
    transition: background 0.15s;
}
.audit-mini-calendar .cal-cell.cal-quarter {
    font-weight: 600;
    background: #e5e7eb;
    color: #4b5563;
}
.audit-mini-calendar .cal-cell.closed {
    background: #d1fae5;
    color: #065f46;
    font-weight: 600;
}
.audit-mini-calendar .cal-cell.closed.cal-quarter {
    background: #a7f3d0;
    color: #064e3b;
}

/* Этапы отчётов */
.report-stages .stage-item input[type="checkbox"] {
    accent-color: #27ae60;
    flex-shrink: 0;
}

/* ========== OMNI CHAT PANEL ========== */

.omni-chat-wrapper {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}
.omni-chat-wrapper > .audit-omni {
    flex: 0 1 720px;
    min-width: 0;
}

.omni-chat-panel {
    flex: 1;
    min-width: 340px;
    max-width: 480px;
    height: calc(100vh - 320px);
    min-height: 400px;
    display: flex;
    flex-direction: column;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 16px;
    overflow: hidden;
    position: sticky;
    top: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

.omni-chat-panel-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
    background: var(--card-bg, #fff);
    flex-shrink: 0;
}
.omni-chat-panel-header .ocp-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--primary-color, #2563eb);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
}
.omni-chat-panel-header .ocp-info {
    flex: 1;
    min-width: 0;
}
.omni-chat-panel-header .ocp-name {
    font-weight: 600;
    font-size: 14px;
    color: var(--text-color, #202124);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.omni-chat-panel-header .ocp-phone {
    font-size: 11px;
    color: var(--text-muted, #6b7280);
    font-variant-numeric: tabular-nums;
}

.omni-chat-panel-header .ocp-actions {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}
.omni-chat-panel-header .ocp-actions button {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted, #6b7280);
    transition: background 0.15s, color 0.15s;
}
.omni-chat-panel-header .ocp-actions button:hover {
    background: var(--surface-bg, #f3f4f6);
    color: var(--text-color, #202124);
}
.omni-chat-panel-header .ocp-actions button.ocp-note-active {
    background: #fefce8;
    color: #ca8a04;
}

.omni-chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: var(--surface-bg, #f8f9fa);
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.1) transparent;
}
.omni-chat-messages::-webkit-scrollbar { width: 4px; }
.omni-chat-messages::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.1);
    border-radius: 4px;
}
.omni-chat-messages .chat-bubble {
    max-width: 85%;
    font-size: 12.5px;
    padding: 8px 12px;
}
.omni-chat-messages .chat-bubble-sender {
    display: block;
    font-size: 10px;
    font-weight: 600;
    margin-bottom: 2px;
    opacity: 0.7;
}
.omni-chat-messages .chat-bubble--in .chat-bubble-sender {
    color: var(--text-muted, #6b7280);
}
.omni-chat-messages .chat-bubble--out .chat-bubble-sender {
    color: rgba(255,255,255,0.7);
}
.omni-chat-messages .chat-media-img {
    max-width: 200px;
    max-height: 200px;
}
.omni-chat-messages .chat-media-video {
    max-width: 240px;
    max-height: 180px;
}
.omni-chat-messages .chat-load-more {
    font-size: 12px;
    padding: 6px 12px;
}

.omni-chat-placeholder {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted, #999);
    font-size: 13px;
    text-align: center;
    padding: 40px 20px;
}

.omni-chat-reply-preview {
    display: none;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-top: 1px solid var(--border-color, #e0e0e0);
    background: #f0f7ff;
    font-size: 12px;
    flex-shrink: 0;
}
.omni-chat-reply-preview.active {
    display: flex;
}
.omni-chat-reply-preview .ocrp-icon {
    color: var(--primary-color, #2563eb);
    font-size: 16px;
    flex-shrink: 0;
}
.omni-chat-reply-preview .ocrp-body {
    flex: 1;
    min-width: 0;
}
.omni-chat-reply-preview .ocrp-sender {
    font-weight: 600;
    color: var(--primary-color, #2563eb);
    font-size: 11px;
}
.omni-chat-reply-preview .ocrp-text {
    color: var(--text-muted, #6b7280);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.omni-chat-reply-preview .ocrp-close {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 18px;
    color: var(--text-muted, #999);
    padding: 0 2px;
    line-height: 1;
}

.omni-chat-input-area {
    display: flex;
    gap: 6px;
    padding: 10px 12px;
    border-top: 1px solid var(--border-color, #e0e0e0);
    background: var(--card-bg, #fff);
    align-items: end;
    flex-shrink: 0;
}
.omni-chat-input-area textarea {
    flex: 1;
    resize: none;
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 10px;
    padding: 8px 12px;
    font-size: 12.5px;
    font-family: inherit;
    background: var(--surface-bg, #f8f9fa);
    color: var(--text-color, #202124);
    outline: none;
    max-height: 100px;
    line-height: 1.45;
    transition: border-color 0.2s;
}
.omni-chat-input-area textarea::placeholder {
    color: var(--text-muted, #999);
    opacity: 0.6;
}
.omni-chat-input-area textarea:focus {
    border-color: var(--primary-color, #2563eb);
}
.omni-chat-input-area textarea.ocp-note-mode {
    background: #fefce8;
    border-color: #facc15;
}
.omni-chat-input-area .ocp-send-btn {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--primary-color, #2563eb);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: opacity 0.15s, transform 0.15s;
}
.omni-chat-input-area .ocp-send-btn:hover {
    opacity: 0.9;
}
.omni-chat-input-area .ocp-send-btn:active {
    transform: scale(0.95);
}

.omni-chat-date-divider {
    text-align: center;
    padding: 4px 0;
    font-size: 10px;
    color: var(--text-muted, #999);
    position: relative;
}
.omni-chat-date-divider::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background: var(--border-color, #e0e0e0);
}
.omni-chat-date-divider span {
    position: relative;
    background: var(--surface-bg, #f8f9fa);
    padding: 0 8px;
}

/* Mobile toggle */
.omni-chat-toggle {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 10px;
    background: var(--card-bg, #fff);
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    color: var(--primary-color, #2563eb);
    margin-bottom: 12px;
    transition: background 0.15s;
}
.omni-chat-toggle:hover {
    background: var(--surface-bg, #f3f4f6);
}
.omni-chat-toggle svg {
    flex-shrink: 0;
}
.omni-chat-toggle .ocp-unread-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ef4444;
    display: none;
    flex-shrink: 0;
}

@media (max-width: 1100px) {
    .omni-chat-wrapper {
        flex-direction: column;
    }
    .omni-chat-wrapper > .audit-omni {
        flex: none;
        width: 100%;
        max-width: 100%;
    }
    .omni-chat-panel {
        max-width: 100%;
        min-width: 0;
        width: 100%;
        height: 500px;
        position: static;
    }
    .omni-chat-panel.ocp-collapsed {
        display: none;
    }
    .omni-chat-toggle {
        display: inline-flex;
    }
}

/* ===== Раздел "Выписка" (Bank Statement) ===== */

.stmt-container { padding: 0; }

/* Тулбар */
.stmt-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 12px; margin-bottom: 16px;
}
.stmt-toolbar h3 { margin: 0; font-size: 18px; }
.stmt-toolbar-right { display: flex; align-items: center; gap: 12px; }

/* Период-селектор */
.stmt-period-selector { display: flex; align-items: center; gap: 6px; }
.stmt-period-btn {
    padding: 4px 12px; border: 1px solid #d1d5db; border-radius: 6px;
    background: #fff; font-size: 13px; cursor: pointer; color: #374151;
    transition: all .15s;
}
.stmt-period-btn:hover { border-color: var(--primary-color); color: var(--primary-color); }
.stmt-period-btn.active {
    background: var(--primary-color); color: #fff; border-color: var(--primary-color);
}
.stmt-period-select {
    padding: 4px 8px; border: 1px solid #d1d5db; border-radius: 6px;
    font-size: 13px; background: #fff; cursor: pointer;
}
.stmt-period-custom { display: flex; align-items: center; gap: 6px; }
.stmt-period-custom input[type="date"],
.stmt-period-custom input.flatpickr-input + input {
    padding: 3px 8px; border: 1px solid #d1d5db; border-radius: 6px;
    font-size: 13px;
}
.stmt-period-apply {
    padding: 4px 14px; border: 1px solid var(--primary-color); border-radius: 6px;
    background: var(--primary-color); color: #fff; font-size: 13px; cursor: pointer;
    transition: opacity .15s;
}
.stmt-period-apply:hover { opacity: .85; }

/* Подпись активного периода */
.stmt-period-label {
    margin: 8px 0 16px;
    padding: 8px 12px;
    background: #f3f4f6;
    border-left: 3px solid var(--primary-color);
    border-radius: 4px;
    font-size: 13px;
    color: #374151;
}
.stmt-period-label strong { color: #1f2937; }

/* Секция файлов */
.stmt-files-section {
    margin-bottom: 20px; position: relative;
    border: 2px dashed transparent; border-radius: 10px;
    padding: 4px; transition: border-color .15s, background .15s;
}
.stmt-files-section.drag-active {
    border-color: var(--primary-color, #2563eb);
    background: rgba(37, 99, 235, 0.04);
}
.stmt-files-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 8px;
}
.stmt-files-header h4 { margin: 0; font-size: 15px; }
.stmt-drop-hint { font-size: 12px; color: #9ca3af; font-weight: 400; }
.stmt-upload-label {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px; border-radius: 8px;
    background: var(--primary-color); color: #fff; font-size: 13px;
    cursor: pointer; transition: opacity .15s;
}
.stmt-upload-label:hover { opacity: .85; }
.stmt-upload-label input { display: none; }

/* Кнопка «Добавить вручную» рядом с «Загрузить выписку» */
.stmt-manual-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px; border-radius: 8px;
    background: #fff; color: #374151; border: 1px solid #d1d5db;
    font-size: 13px; cursor: pointer; transition: all .15s;
}
.stmt-manual-btn:hover { background: #f3f4f6; border-color: #9ca3af; }

/* Бейдж «вручную» в таблице операций */
.stmt-manual-badge {
    display: inline-block;
    padding: 2px 8px; border-radius: 10px;
    background: #ede9fe; color: #6d28d9; border: 1px solid #ddd6fe;
    font-size: 11px; font-weight: 500; letter-spacing: .2px;
}
.stmt-manual-row { background: #fafbff; }
.stmt-manual-row:hover { background: #f3f4ff; }
.stmt-op-delete {
    display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 4px;
    color: #9ca3af; cursor: pointer; transition: all .15s;
}
.stmt-op-delete:hover { background: #fee2e2; color: #dc2626; }

/* Модалка ручного ввода */
.manual-stmt-modal {
    background: #fff; border-radius: 12px;
    padding: 24px 24px 20px;
    max-width: 460px; width: 94%;
    box-shadow: 0 24px 48px rgba(0,0,0,0.18);
    position: relative; max-height: 92vh; overflow-y: auto;
}
.manual-stmt-close {
    position: absolute; top: 10px; right: 12px;
    background: none; border: none; font-size: 24px; line-height: 1;
    cursor: pointer; color: #9ca3af; padding: 4px 8px;
}
.manual-stmt-close:hover { color: #374151; }
.manual-stmt-title { margin: 0 0 16px; font-size: 17px; color: #111827; }
.manual-stmt-row { margin-bottom: 12px; }
.manual-stmt-row > label {
    display: block; font-size: 13px; font-weight: 500;
    color: #4b5563; margin-bottom: 6px;
}
.manual-stmt-hint { font-weight: 400; color: #9ca3af; font-size: 11.5px; margin-left: 4px; }
.manual-stmt-input {
    width: 100%; padding: 8px 12px;
    border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 14px; box-sizing: border-box;
    font-family: inherit;
}
.manual-stmt-input:focus {
    outline: none; border-color: var(--primary-color, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}
.manual-stmt-daterow { display: flex; gap: 8px; align-items: center; }
.manual-stmt-daterow .manual-stmt-input { flex: 1; }
.manual-stmt-dash { color: #9ca3af; font-size: 14px; }
.manual-stmt-typeset { display: flex; gap: 16px; flex-wrap: wrap; }
.manual-stmt-typeset label {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 13px; color: #374151; cursor: pointer;
}
.manual-stmt-actions {
    display: flex; justify-content: flex-end; gap: 8px;
    margin-top: 16px; padding-top: 12px;
    border-top: 1px solid #f3f4f6;
}
.manual-stmt-actions .btn {
    padding: 8px 18px; border-radius: 8px; font-size: 14px;
    border: 1px solid #d1d5db; background: #fff; color: #374151;
    cursor: pointer;
}
.manual-stmt-actions .btn:hover { background: #f9fafb; }
.manual-stmt-actions .btn-primary {
    background: var(--primary-color, #2563eb); color: #fff; border-color: transparent;
}
.manual-stmt-actions .btn-primary:hover:not(:disabled) { opacity: .9; }
.manual-stmt-actions .btn-primary:disabled { opacity: .6; cursor: not-allowed; }
.stmt-drop-overlay {
    position: absolute; inset: 0; display: none;
    align-items: center; justify-content: center;
    background: rgba(37, 99, 235, 0.10); border-radius: 10px;
    color: #1d4ed8; font-weight: 600; font-size: 14px;
    pointer-events: none; z-index: 2;
}
.stmt-files-section.drag-active .stmt-drop-overlay { display: flex; }

/* Таблица файлов */
.stmt-files-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.stmt-files-table th {
    text-align: left; padding: 6px 10px; background: #f3f4f6;
    font-weight: 600; color: #374151; border-bottom: 1px solid #e5e7eb;
}
.stmt-files-table td {
    padding: 6px 10px; border-bottom: 1px solid #f0f0f0; color: #4b5563;
}
.stmt-files-table tr:hover td { background: #f9fafb; }
.stmt-file-delete, .stmt-file-retry {
    cursor: pointer; color: #9ca3af; transition: color .15s;
}
.stmt-file-delete:hover { color: #e53935; }
.stmt-file-retry:hover { color: #2563eb; }

/* Календарь покрытия выписок */
.stmt-coverage-section { margin-bottom: 16px; }
.stmt-coverage-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 8px; flex-wrap: wrap; gap: 8px;
}
.stmt-coverage-header h4 { margin: 0; font-size: 14px; color: #374151; }
.stmt-coverage-table .report-type-col {
    min-width: 140px; max-width: 200px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: 12px;
}
/* Ячейки месяцев в календаре выписки — шире, чтобы вписалась сумма поступлений */
.stmt-month-cell {
    min-width: 56px;
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    padding: 6px 4px;
}
.stmt-coverage-table th.month-col { min-width: 56px; }
.stmt-warning {
    display: flex; align-items: center; gap: 6px;
    padding: 8px 12px; margin-bottom: 8px;
    background: #fef3c7; border: 1px solid #fcd34d; border-radius: 6px;
    font-size: 12px; color: #92400e;
}

/* Таблица деталей контрагента */
.stmt-detail-row td { background: #f8fafc; }
.stmt-detail-table {
    width: 100%; border-collapse: collapse; font-size: 11px;
    margin: 0; border: none;
}
.stmt-detail-table th {
    background: #f1f5f9; padding: 4px 6px; text-align: left;
    font-weight: 600; font-size: 10px; color: #64748b; border-bottom: 1px solid #e2e8f0;
}
.stmt-detail-table td {
    padding: 3px 6px; border-bottom: 1px solid #f1f5f9;
}
.stmt-detail-table .purpose-cell {
    max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Статусы файлов */
.stmt-status { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 500; }
.stmt-status-uploaded { color: #6b7280; }
.stmt-status-processing { color: #f59e0b; }
.stmt-status-completed { color: #27ae60; }
.stmt-status-error { color: #e53935; }
.stmt-status-image { color: #6d28d9; }
.stmt-status-dot {
    width: 8px; height: 8px; border-radius: 50%; display: inline-block;
}
.stmt-status-uploaded .stmt-status-dot { background: #9ca3af; }
.stmt-status-processing .stmt-status-dot { background: #f59e0b; animation: stmt-pulse 1.2s infinite; }
.stmt-status-completed .stmt-status-dot { background: #27ae60; }
.stmt-status-error .stmt-status-dot { background: #e53935; }
.stmt-status-image .stmt-status-dot { background: #8b5cf6; }

@keyframes stmt-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .4; }
}

/* Сабтабы Выписка / ЭСФ */
.stmt-data-section { margin-top: 20px; }
.stmt-subtabs {
    display: flex; gap: 0; border-bottom: 2px solid #e5e7eb; margin-bottom: 12px;
}
.stmt-subtab-btn {
    padding: 8px 20px; border: none; background: none;
    font-size: 14px; font-weight: 500; color: #6b7280; cursor: pointer;
    border-bottom: 2px solid transparent; margin-bottom: -2px;
    transition: all .15s;
}
.stmt-subtab-btn:hover { color: var(--primary-color); }
.stmt-subtab-btn.active {
    color: var(--primary-color); border-bottom-color: var(--primary-color); font-weight: 600;
}
.stmt-subtab-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 20px; height: 18px; padding: 0 5px;
    border-radius: 9px; background: #e5e7eb; font-size: 11px; font-weight: 600;
    color: #6b7280; margin-left: 6px;
}
.stmt-subtab-btn.active .stmt-subtab-count {
    background: var(--primary-color); color: #fff;
}
.stmt-panel-hint {
    font-size: 12px; color: #9ca3af; margin: 0 0 10px;
}

/* Таблица операций */
.stmt-ops-wrapper { max-height: 600px; overflow: auto; }
.stmt-ops-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.stmt-ops-table th {
    position: sticky; top: 0; z-index: 2;
    text-align: left; padding: 6px 8px; background: #f3f4f6;
    font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;
    white-space: nowrap;
}
.stmt-ops-table td {
    padding: 5px 8px; border-bottom: 1px solid #f0f0f0; color: #4b5563;
    vertical-align: top;
}
.stmt-ops-table tr:hover td { background: #f9fafb; }
.stmt-ops-table .purpose-cell {
    max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.stmt-ops-table .purpose-cell:hover {
    white-space: normal; overflow: visible;
}

/* Суммы credit/debit */
.amount-credit { color: #27ae60; font-weight: 600; }
.amount-debit { color: #e53935; font-weight: 600; }

/* Итоговая строка */
.stmt-totals-row td {
    font-weight: 700; background: #f0f4f8 !important;
    border-top: 2px solid #d1d5db;
}

/* Итоги блок */
.stmt-summary {
    display: flex; gap: 24px; margin-top: 16px; padding: 14px 18px;
    background: #f8f9fa; border-radius: 10px; font-size: 14px; flex-wrap: wrap;
}
.stmt-summary-item { display: flex; flex-direction: column; gap: 2px; }
.stmt-summary-label { font-size: 12px; color: #9ca3af; }
.stmt-summary-value { font-weight: 700; font-size: 16px; color: #1f2937; }
.stmt-summary-value.credit { color: #27ae60; }
.stmt-summary-value.debit { color: #e53935; }

/* Пустое состояние */
.stmt-empty {
    text-align: center; padding: 40px 20px; color: #9ca3af; font-size: 14px;
}

/* Responsive */
@media (max-width: 768px) {
    .stmt-toolbar { flex-direction: column; align-items: flex-start; }
    .stmt-summary { flex-direction: column; gap: 12px; }
    .stmt-subtabs { overflow-x: auto; }
}

/* ========== ВКЛАДКА "ВЫРУЧКА 2.0" — расчёт налога 091 ========== */

.audit-revenue091 {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rev091-info {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    padding: 12px 16px;
    background: #f8fafc;
    border-left: 3px solid var(--primary-color);
    border-radius: 4px;
    font-size: 13px;
    color: #374151;
}
.rev091-info-label { color: #6b7280; }
.rev091-info strong { color: #111827; }

.rev091-legend {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    padding: 8px 12px;
    font-size: 12px;
    color: #4b5563;
}
.rev091-legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
}
.rev091-legend .legend-box {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
}

.rev091-empty {
    text-align: center;
    padding: 60px 20px;
    color: #6b7280;
    background: #f9fafb;
    border-radius: 8px;
}
.rev091-empty p { margin: 4px 0; }

.rev091-correction-warning {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    margin: 12px 0;
    background: #fef3c7;
    border: 1px solid #fbbf24;
    border-left: 4px solid #f59e0b;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s;
}
.rev091-correction-warning:hover {
    background: #fde68a;
}
.rev091-correction-icon {
    font-size: 18px;
    line-height: 1.4;
    flex-shrink: 0;
}
.rev091-correction-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13px;
    color: #78350f;
}
.rev091-correction-text strong {
    color: #78350f;
    font-weight: 600;
}
.rev091-correction-hint {
    color: #92400e;
    font-size: 12px;
}

.rev091-period {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}
.rev091-period-year {
    border-color: var(--primary-color);
    border-width: 2px;
}
.rev091-period-title {
    margin: 0;
    padding: 12px 16px;
    background: #f8fafc;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
}
.rev091-period-year .rev091-period-title {
    background: #eef2ff;
    color: #4338ca;
}

.rev091-table-wrapper {
    max-width: 100%;
}

.rev091-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    min-width: 1100px;
}
.rev091-table th,
.rev091-table td {
    padding: 6px 8px;
    text-align: right;
    border: 1px solid #e5e7eb;
    white-space: nowrap;
}
.rev091-table thead th {
    background: #f3f4f6;
    color: #374151;
    font-weight: 600;
    font-size: 11px;
    text-align: center;
}
.rev091-table thead .rev091-group-row th {
    background: #e5e7eb;
    font-size: 12px;
    padding: 8px;
}
/* Sticky header через JS: клонированный заголовок */
.rev091-sticky-header {
    position: fixed;
    top: 0;
    z-index: 100;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
    overflow: hidden;
    pointer-events: auto;
}
.rev091-sticky-header table {
    margin: 0;
}
.rev091-sticky-header th {
    background: #f3f4f6 !important;
}
.rev091-table .rev091-noncash-group {
    background: #dbeafe !important;
    color: #1e40af;
}
.rev091-table .rev091-cash-group {
    background: #fef3c7 !important;
    color: #92400e;
}
.rev091-counterpart-col {
    min-width: 240px;
    max-width: 320px;
    text-align: left !important;
}
.rev091-counterpart {
    text-align: left;
    font-weight: 500;
    color: #1f2937;
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Цветовая разметка ячеек */
.rev091-advance {
    display: inline-block;
    padding: 2px 6px;
    background: #dcfce7;
    color: #166534;
    border-radius: 3px;
    font-weight: 600;
}
.rev091-debt {
    display: inline-block;
    padding: 2px 6px;
    background: #fee2e2;
    color: #991b1b;
    border-radius: 3px;
    font-weight: 600;
}
.rev091-tax {
    display: inline-block;
    padding: 2px 6px;
    background: #fef3c7;
    color: #92400e;
    border-radius: 3px;
    font-weight: 600;
}

.rev091-empty-cell {
    text-align: center !important;
    color: #9ca3af;
    padding: 16px;
    font-style: italic;
}

/* Итоговые строки */
.rev091-totals td {
    background: #f9fafb;
    font-weight: 600;
    border-top: 2px solid #d1d5db;
}
.rev091-tax-payable td {
    background: #e0e7ff;
    color: #3730a3;
    font-weight: 700;
}
.rev091-rate-hint td {
    background: #fafafa;
    text-align: left !important;
    padding: 4px 8px;
}

/* --- Переключатель периодов М|К|Г --- */
.rev091-periodicity-selector {
    display: inline-flex;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    overflow: hidden;
}
.rev091-p-btn {
    padding: 5px 14px;
    border: none;
    background: #fff;
    color: #374151;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}
.rev091-p-btn:not(:last-child) { border-right: 1px solid #d1d5db; }
.rev091-p-btn:hover { background: #f3f4f6; }
.rev091-p-btn.active {
    background: var(--primary-color, #4f46e5);
    color: #fff;
}

/* --- Кнопка "Применить" --- */
.rev091-apply-btn {
    transition: all 0.2s;
}
.rev091-apply-btn.dirty {
    background: #16a34a !important;
    color: #fff !important;
    border-color: #16a34a !important;
    animation: rev091-pulse 1.5s ease-in-out infinite;
}
@keyframes rev091-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(22,163,74,0.3); }
    50% { box-shadow: 0 0 0 6px rgba(22,163,74,0); }
}

/* --- Кликабельные ячейки --- */
.rev091-clickable {
    cursor: pointer;
    text-decoration: underline;
    text-decoration-style: dotted;
    text-underline-offset: 3px;
    transition: all 0.15s;
}
.rev091-clickable:hover {
    background: #eff6ff;
    border-radius: 3px;
    text-decoration-style: solid;
}

/* --- Зелёная подсветка ячеек с ручными правками --- */
.rev091-adjusted {
    background: #bbf7d0 !important;
    border-radius: 3px;
    padding: 2px 6px;
}
.rev091-row-adjusted td { background: #f0fdf4 !important; }
.rev091-row-excluded td { background: #fef2f2 !important; color: #991b1b; opacity: 0.7; }

/* --- Модалка детализации --- */
.rev091-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    padding: 20px;
}
.rev091-modal {
    background: #fff;
    border-radius: 12px;
    width: 100%;
    max-width: 950px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.rev091-modal-header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    flex-shrink: 0;
}
.rev091-modal-title {
    flex: 1;
    font-size: 15px;
    font-weight: 600;
    color: #1f2937;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rev091-modal-total {
    font-size: 16px;
    font-weight: 700;
    color: #059669;
    white-space: nowrap;
}
.rev091-modal-close {
    width: 32px;
    height: 32px;
    border: none;
    background: #f3f4f6;
    border-radius: 6px;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
    flex-shrink: 0;
}
.rev091-modal-close:hover { background: #e5e7eb; color: #1f2937; }
.rev091-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 0;
}
.rev091-modal-footer {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 12px 20px;
    border-top: 1px solid #e5e7eb;
    flex-shrink: 0;
}

/* --- Таблица транзакций --- */
.rev091-tx-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}
.rev091-tx-table th {
    position: sticky;
    top: 0;
    background: #f9fafb;
    padding: 8px 10px;
    text-align: left;
    font-weight: 600;
    color: #374151;
    border-bottom: 2px solid #e5e7eb;
    font-size: 11px;
    z-index: 1;
}
.rev091-tx-table td {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    color: #1f2937;
}
.rev091-tx-row:hover td { background: #f9fafb; }
.rev091-tx-purpose {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #6b7280;
    font-size: 11px;
}

/* --- Состояния строк транзакций --- */
.rev091-tx-mark_cash td { background: #fef3c7 !important; }
.rev091-tx-exclude td { background: #fee2e2 !important; opacity: 0.6; text-decoration: line-through; }
.rev091-tx-retail_buyer td { background: #e0e7ff !important; }
.rev091-tx-manual td { background: #f0fdf4 !important; font-style: italic; }
/* П5 — ЭСФ-корректировки */
.rev091-tx-esf_mark_cash td { background: #fef3c7 !important; }
.rev091-tx-esf_mark_noncash td { background: #dbeafe !important; }
.rev091-tx-esf_retail_buyer td { background: #e0e7ff !important; }
.rev091-tx-esf_invoice td { background: #d1fae5 !important; }

/* --- Кнопки действий --- */
.rev091-tx-actions {
    display: flex;
    gap: 4px;
    white-space: nowrap;
}
.rev091-adj-btn {
    width: 30px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d1d5db;
    border-radius: 5px;
    background: #fff;
    color: #9ca3af;
    cursor: pointer;
    transition: all 0.15s;
    padding: 0;
}
.rev091-adj-btn:hover:not(.disabled) { border-color: #6b7280; color: #374151; background: #f3f4f6; }
.rev091-adj-btn.disabled { opacity: 0.4; cursor: not-allowed; }

/* Активные состояния кнопок */
.rev091-adj-btn.cash.active {
    background: #fef3c7;
    border-color: #f59e0b;
    color: #d97706;
}
.rev091-adj-btn.noncash.active {
    background: #dbeafe;
    border-color: #3b82f6;
    color: #1d4ed8;
}
.rev091-adj-btn.exclude.active {
    background: #fee2e2;
    border-color: #ef4444;
    color: #dc2626;
}
.rev091-adj-btn.retail.active {
    background: #e0e7ff;
    border-color: #6366f1;
    color: #4f46e5;
}
.rev091-adj-btn.esf.active {
    background: #d1fae5;
    border-color: #10b981;
    color: #059669;
}
.rev091-adj-btn.move {
    font-size: 14px;
    line-height: 1;
}
.rev091-adj-btn.move:hover { border-color: #8b5cf6; color: #7c3aed; background: #ede9fe; }

/* --- Налог в заголовке периода (пункт 9) --- */
.rev091-period-tax {
    font-size: 12px;
    font-weight: 400;
    color: #4b5563;
    margin-left: 16px;
}
.rev091-period-tax strong { color: #dc2626; }
.rev091-tax-detail { color: #9ca3af; font-size: 11px; }

/* --- Кнопка "Показать скрытые" (пункт 2) --- */
.rev091-show-hidden-btn {
    font-size: 11px;
    padding: 2px 10px;
    margin-left: 12px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: #fff;
    color: #6b7280;
    cursor: pointer;
    vertical-align: middle;
}
.rev091-show-hidden-btn:hover { background: #f3f4f6; }
.rev091-show-hidden-btn.active { background: #e0e7ff; color: #4338ca; border-color: #6366f1; }

/* --- Кнопка скачать per period (пункт 8) --- */
.rev091-period-dl {
    border: none;
    background: none;
    font-size: 16px;
    cursor: pointer;
    color: #6b7280;
    margin-left: 8px;
    vertical-align: middle;
    padding: 2px 6px;
    border-radius: 4px;
}
.rev091-period-dl:hover { background: #e0e7ff; color: #4338ca; }

/* --- П2 (2026-04-13): чекбоксы для массового перевода в Розничного покупателя --- */
.rev091-check-col {
    width: 32px;
    text-align: center;
    padding: 4px 6px !important;
}
.rev091-check-col input[type="checkbox"] {
    cursor: pointer;
    margin: 0;
    width: 14px;
    height: 14px;
}
.rev091-bulk-retail-btn {
    margin-left: 8px;
    padding: 4px 10px;
    font-size: 12px;
    border: 1px solid #f59e0b;
    background: #fffbeb;
    color: #92400e;
    border-radius: 6px;
    cursor: pointer;
    vertical-align: middle;
    transition: background 0.15s;
}
.rev091-bulk-retail-btn:hover:not(:disabled) {
    background: #fef3c7;
    border-color: #d97706;
}
.rev091-bulk-retail-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.rev091-bulk-retail-btn.noncash {
    border-color: #6366f1;
    background: #eef2ff;
    color: #3730a3;
}
.rev091-bulk-retail-btn.noncash:hover:not(:disabled) {
    background: #e0e7ff;
    border-color: #4f46e5;
}

/* 2026-04-22: bulk-кнопка «Условный ЭСФ для выбранных» */
.rev091-bulk-virtesf-btn {
    margin-left: 8px;
    padding: 4px 10px;
    font-size: 12px;
    border: 1px dashed #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 6px;
    cursor: pointer;
    vertical-align: middle;
    transition: background 0.15s;
}
.rev091-bulk-virtesf-btn:hover:not(:disabled) {
    background: #dbeafe;
    border-style: solid;
    border-color: #1d4ed8;
}
.rev091-bulk-virtesf-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* П4 (2026-04-17): кнопки «Условный ЭСФ» */
.rev091-virtual-esf-btn {
    margin-left: 4px;
    padding: 0 5px;
    font-size: 11px;
    line-height: 14px;
    height: 16px;
    border: 1px dashed #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 4px;
    cursor: pointer;
    vertical-align: middle;
    transition: background 0.15s;
}
.rev091-virtual-esf-btn:hover { background: #dbeafe; border-style: solid; }

/* 2026-05-19: кнопка ✕ / ↺ на retail-строке — исключить ЭСФ из расчёта налога. */
.rev091-retail-exclude-btn {
    margin-left: 6px;
    padding: 0 6px;
    font-size: 11px;
    line-height: 14px;
    height: 16px;
    border: 1px solid #ef4444;
    background: #fef2f2;
    color: #b91c1c;
    border-radius: 4px;
    cursor: pointer;
    vertical-align: middle;
    transition: background 0.15s;
    font-weight: 600;
}
.rev091-retail-exclude-btn:hover { background: #fee2e2; }
.rev091-retail-exclude-btn.active {
    border-color: #16a34a;
    background: #ecfdf5;
    color: #15803d;
}
.rev091-retail-exclude-btn.active:hover { background: #d1fae5; }
.rev091-virtual-esf-total-btn {
    margin-left: 8px;
    padding: 4px 10px;
    font-size: 12px;
    border: 1px dashed #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 6px;
    cursor: pointer;
    vertical-align: middle;
    transition: background 0.15s;
}
.rev091-virtual-esf-total-btn:hover { background: #dbeafe; border-style: solid; }
/* В sticky-копии заголовка чекбоксы не работают (нет tbody) — скрываем */
.rev091-sticky-header input[type="checkbox"] { visibility: hidden; }

/* --- Сводная таблица (пункт 7) --- */
.rev091-period-combined { border-color: #059669; border-width: 2px; }
.rev091-period-combined .rev091-period-title { background: #ecfdf5; color: #065f46; }

/* --- Период принят к налогу (П-Acceptance) --- */
.rev091-period-accepted .rev091-table tbody tr:not(.rev091-totals):not(.rev091-fact-row):not(.rev091-accepted-row) td {
    background: #f9fafb !important;
    color: #6b7280;
}
.rev091-period-accepted .rev091-table .rev091-clickable { pointer-events: none; text-decoration: none; cursor: default; }
.rev091-period-accepted-badge {
    display: inline-block;
    background: #d1fae5;
    color: #065f46;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 4px;
    margin-left: 8px;
    font-weight: 600;
}
.rev091-accept-btn { background: #16a34a !important; color: #fff !important; border-color: #16a34a !important; }
.rev091-accept-btn:hover { background: #15803d !important; border-color: #15803d !important; }

/* ========== СВОД 2.0 — Сайдбар + Дашборд ========== */

/* Flex-контейнер: сайдбар + основная область */
.svod-layout {
    display: flex;
    flex: 1;
    overflow: hidden;
    min-height: 0;
    gap: 0;
}
#svodTab.active {
    overflow: hidden !important;
}

/* Левый сайдбар */
.svod-sidebar {
    width: 280px;
    min-width: 280px;
    background: var(--card-bg, #fff);
    border-right: 1px solid var(--border-color, #e5e7eb);
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 14px;
    transition: width 0.25s ease, min-width 0.25s ease, padding 0.25s ease, opacity 0.2s ease;
    flex-shrink: 0;
}
.svod-sidebar.collapsed {
    width: 0;
    min-width: 0;
    padding: 0;
    opacity: 0;
    border-right: none;
    overflow: hidden;
}

/* Основная область (таблица) */
.svod-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
}
.svod-main-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    flex-shrink: 0;
}
.svod-main-header h2 {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary, #1f2937);
}
.svod-org-count {
    font-size: 13px;
    color: #9ca3af;
}
.svod-sidebar-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid var(--border-color, #e5e7eb);
    background: var(--card-bg, #fff);
    cursor: pointer;
    color: #6b7280;
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}
.svod-sidebar-toggle:hover {
    background: #f3f4f6;
    color: #374151;
}

/* Скрыть control-bar когда Свод активен */
body.svod-active .control-bar {
    display: none;
}

/* Период в сайдбаре */
.svod-sidebar-period {
    margin-bottom: 12px;
}
.svod-sidebar-period-label {
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}
.svod-sidebar-period-selects {
    display: flex;
    gap: 8px;
}
.svod-sidebar-period-selects select {
    flex: 1;
    padding: 6px 8px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 13px;
    background: #fff;
    color: #374151;
    cursor: pointer;
}
.svod-sidebar-period-selects select:focus {
    outline: none;
    border-color: #3b82f6;
}

/* Выбор квартала (Alex Alex 13.05.2026): 4 кнопки-чипа под селектами месяц/год. */
.svod-sidebar-quarter {
    display: flex;
    gap: 4px;
    margin-top: 6px;
}
.svod-quarter-chip {
    flex: 1;
    padding: 4px 6px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #374151;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.svod-quarter-chip:hover {
    background: #f3f4f6;
    border-color: #cbd5e1;
}
.svod-quarter-chip.active {
    background: #3b82f6;
    color: #fff;
    border-color: #3b82f6;
}

/* Разделитель между блоком "верхних" (информационных) фильтров и периодом. */
.svod-dashboard-top {
    margin-bottom: 8px;
}
.svod-dashboard-top:empty {
    display: none;
}

/* Поиск в сайдбаре */
.svod-sidebar-search {
    position: relative;
    margin-bottom: 12px;
}
.svod-sidebar-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    pointer-events: none;
}
.svod-sidebar-search input {
    width: 100%;
    padding: 7px 10px 7px 32px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 13px;
    color: #374151;
    background: #fff;
}
.svod-sidebar-search input:focus {
    outline: none;
    border-color: #3b82f6;
}
.svod-sidebar-search input::placeholder {
    color: #9ca3af;
}

/* Кнопка "Столбцы" в main-header */
.svod-columns-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #6b7280;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}
.svod-columns-btn:hover {
    background: #f3f4f6;
    color: #374151;
}

/* Кнопка "Обновить всех" */
.svod-refresh-all-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid #2563eb;
    border-radius: 6px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    flex-shrink: 0;
    margin-right: 8px;
}
.svod-refresh-all-btn:hover {
    background: #2563eb;
    color: #fff;
}
.svod-refresh-all-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}
[data-theme="dark"] .svod-refresh-all-btn {
    background: #1e3a8a;
    color: #dbeafe;
    border-color: #3b82f6;
}
[data-theme="dark"] .svod-refresh-all-btn:hover {
    background: #2563eb;
    color: #fff;
}

/* V2 (2026-04-18): глобальная блокировка parser-кнопок УБРАНА.
   Теперь блокировка per-ИНН — проверяется в момент клика в
   isBulkRefreshBlockingForInn(inn) и показывает toast если клиент
   прямо сейчас в параллельном слоте bulk. Остальные клиенты работают. */

/* ============================================================
   Bulk Refresh — плавающий виджет (правый нижний угол)
   Persistent across SPA navigation (position: fixed)
   ============================================================ */

.bulk-refresh-widget {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 1999; /* ниже toast (2000), но выше модалок (1000) */
    font-size: 13px;
    animation: brwSlideIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes brwSlideIn {
    from { transform: translateY(24px) scale(0.95); opacity: 0; }
    to { transform: translateY(0) scale(1); opacity: 1; }
}

/* ===== Expanded (развёрнутый) вид ===== */
.bulk-refresh-widget .brw-expanded {
    width: 340px;
    max-width: calc(100vw - 48px);
    background: #fff;
    border-radius: 16px;
    box-shadow:
        0 20px 50px -10px rgba(30, 58, 95, 0.35),
        0 8px 20px -5px rgba(0, 0, 0, 0.12),
        0 0 0 1px rgba(30, 58, 95, 0.05);
    overflow: hidden;
}
.bulk-refresh-widget .brw-mini { display: none; }

/* ===== Minimized = floating card скрыта (роль свёрнутого взял чип в шапке) ===== */
.bulk-refresh-widget.minimized { display: none !important; }

/* ===== Чип в шапке (brw-header-chip) — всегда виден, когда есть job ===== */
.brw-header-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    cursor: pointer;
    padding: 0;
    margin-right: 6px;
    box-shadow:
        0 6px 16px -4px rgba(30, 58, 95, 0.5),
        0 2px 4px -1px rgba(0, 0, 0, 0.12),
        0 0 0 1px rgba(255, 255, 255, 0.08) inset;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    animation: brwChipAppear 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes brwChipAppear {
    from { transform: scale(0.6); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.brw-header-chip:hover {
    transform: translateY(-1px) scale(1.06);
    box-shadow:
        0 10px 24px -4px rgba(30, 58, 95, 0.6),
        0 4px 8px -2px rgba(0, 0, 0, 0.18);
}
.brw-header-chip:active { transform: translateY(0) scale(0.96); }
.brw-chip-ring {
    position: absolute;
    inset: 0;
    margin: auto;
}
.brw-chip-ring-bg { stroke: rgba(255, 255, 255, 0.2); }
.brw-chip-ring-fg {
    stroke: #fff;
    transition: stroke-dashoffset 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    filter: drop-shadow(0 0 2px rgba(255,255,255,0.4));
}
.brw-chip-text {
    position: relative;
    z-index: 2;
    color: #fff;
    font-weight: 700;
    font-size: 10.5px;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.brw-chip-pulse {
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    border: 2px solid rgba(45, 90, 142, 0.35);
    animation: brwPulse 2s ease-out infinite;
    pointer-events: none;
}
@keyframes brwPulse {
    0%   { transform: scale(0.95); opacity: 0.8; }
    70%  { transform: scale(1.25); opacity: 0; }
    100% { transform: scale(1.25); opacity: 0; }
}
/* Цветовые состояния чипа */
.brw-header-chip.status-completed {
    background: linear-gradient(135deg, #059669 0%, #10b981 100%);
    box-shadow: 0 6px 16px -4px rgba(16, 185, 129, 0.5), 0 2px 4px -1px rgba(0,0,0,0.12);
}
.brw-header-chip.status-completed .brw-chip-pulse { display: none; }
.brw-header-chip.status-paused {
    background: linear-gradient(135deg, #d97706 0%, #f59e0b 100%);
    box-shadow: 0 6px 16px -4px rgba(245, 158, 11, 0.5), 0 2px 4px -1px rgba(0,0,0,0.12);
}
.brw-header-chip.status-paused .brw-chip-pulse { animation-play-state: paused; opacity: 0; }
.brw-header-chip.status-cancelled {
    background: linear-gradient(135deg, #6b7280 0%, #9ca3af 100%);
    opacity: 0.9;
}
.brw-header-chip.status-cancelled .brw-chip-pulse { display: none; }
.brw-header-chip.status-failed {
    background: linear-gradient(135deg, #dc2626 0%, #ef4444 100%);
}

/* ===== Expanded header ===== */
.brw-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.brw-header::before {
    content: '';
    position: absolute;
    top: -60%;
    right: -20%;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
    pointer-events: none;
}
.bulk-refresh-widget.status-completed .brw-header {
    background: linear-gradient(135deg, #059669 0%, #10b981 100%);
}
.bulk-refresh-widget.status-paused .brw-header {
    background: linear-gradient(135deg, #d97706 0%, #f59e0b 100%);
}
.bulk-refresh-widget.status-cancelled .brw-header {
    background: linear-gradient(135deg, #6b7280 0%, #9ca3af 100%);
}
.brw-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    font-size: 13.5px;
    letter-spacing: -0.01em;
    position: relative;
    z-index: 1;
}
.brw-spinner-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
}
.brw-spinner {
    animation: brwSpin 1.1s linear infinite;
}
.brw-spinner-track {
    stroke: rgba(255, 255, 255, 0.2);
}
.brw-spinner-head {
    stroke: #fff;
    filter: drop-shadow(0 0 2px rgba(255,255,255,0.5));
}
.bulk-refresh-widget.status-paused .brw-spinner,
.bulk-refresh-widget.status-completed .brw-spinner,
.bulk-refresh-widget.status-cancelled .brw-spinner {
    animation: none;
}
.bulk-refresh-widget.status-completed .brw-spinner-head {
    stroke-dasharray: 100 100;
}
@keyframes brwSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.brw-actions {
    display: flex;
    gap: 4px;
    position: relative;
    z-index: 1;
}
.brw-icon-btn {
    width: 26px;
    height: 26px;
    border: none;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, transform 0.15s;
    backdrop-filter: blur(10px);
}
.brw-icon-btn:hover {
    background: rgba(255, 255, 255, 0.28);
    transform: scale(1.05);
}
.brw-icon-btn:active {
    transform: scale(0.95);
}

/* ===== Expanded body ===== */
.brw-body {
    padding: 16px;
}
.brw-status {
    margin-bottom: 10px;
}
.brw-progress-label {
    display: block;
    font-size: 10.5px;
    color: #6b7280;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}
.brw-progress-label #brwProgress {
    color: #1e3a5f;
    font-weight: 700;
    font-size: 14px;
    text-transform: none;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.brw-current-name {
    font-weight: 600;
    color: #1f2937;
    font-size: 13.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: -0.01em;
}
.brw-progress-bar {
    position: relative;
    height: 8px;
    background: #eef2f6;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 12px;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
}
.brw-progress-fill {
    position: relative;
    height: 100%;
    background: linear-gradient(90deg, #2d5a8e 0%, #4a90e2 100%);
    border-radius: 999px;
    transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 0 8px rgba(74, 144, 226, 0.4);
}
.brw-progress-fill::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255,255,255,0.4) 50%,
        transparent 100%);
    background-size: 40px 100%;
    animation: brwShimmer 1.6s linear infinite;
    border-radius: 999px;
}
.status-completed .brw-progress-fill::after,
.status-cancelled .brw-progress-fill::after { animation: none; opacity: 0; }
@keyframes brwShimmer {
    0%   { background-position: -40px 0; }
    100% { background-position: 100% 0; }
}
.status-completed .brw-progress-fill {
    background: linear-gradient(90deg, #059669, #10b981);
    box-shadow: 0 0 8px rgba(16, 185, 129, 0.4);
}
.status-paused .brw-progress-fill {
    background: linear-gradient(90deg, #d97706, #f59e0b);
    box-shadow: 0 0 8px rgba(245, 158, 11, 0.4);
}
.status-cancelled .brw-progress-fill {
    background: linear-gradient(90deg, #9ca3af, #d1d5db);
    box-shadow: none;
}
.brw-stats {
    display: flex;
    gap: 6px;
    font-size: 11.5px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.brw-stat {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #6b7280;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.brw-stat.done { background: #d1fae5; color: #047857; }
.brw-stat.error { background: #fee2e2; color: #b91c1c; }
.brw-stat.timeout { background: #fed7aa; color: #9a3412; }
.brw-stat.skipped { background: #f3f4f6; color: #6b7280; }
.brw-stat.running { background: #dbeafe; color: #1d4ed8; }

.brw-meta {
    font-size: 11.5px;
    color: #9ca3af;
    margin-bottom: 12px;
    line-height: 1.4;
}
.brw-buttons {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.brw-btn {
    padding: 7px 12px;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    color: #374151;
    letter-spacing: -0.01em;
}
.brw-btn:hover {
    background: #f9fafb;
    border-color: #c5d0e8;
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(30, 58, 95, 0.08);
}
.brw-btn-warning {
    background: #fef3c7;
    border-color: #fcd34d;
    color: #92400e;
}
.brw-btn-warning:hover {
    background: #fde68a;
}
.brw-btn-primary {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 2px 6px rgba(30, 58, 95, 0.25);
}
.brw-btn-primary:hover {
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.35);
    background: linear-gradient(135deg, #2d5a8e 0%, #3d6ea2 100%);
}
.brw-btn-danger {
    background: #fff;
    border-color: #fca5a5;
    color: #b91c1c;
}
.brw-btn-danger:hover {
    background: #fee2e2;
}

[data-theme="dark"] .bulk-refresh-widget .brw-expanded {
    background: #1f2937;
    box-shadow:
        0 20px 50px -10px rgba(0, 0, 0, 0.6),
        0 8px 20px -5px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .brw-current-name { color: #f9fafb; }
[data-theme="dark"] .brw-progress-label #brwProgress { color: #93c5fd; }
[data-theme="dark"] .brw-progress-bar { background: #374151; }
[data-theme="dark"] .brw-btn {
    background: #374151;
    border-color: #4b5563;
    color: #d1d5db;
}
[data-theme="dark"] .brw-btn:hover {
    background: #4b5563;
    border-color: #6b7280;
}
[data-theme="dark"] .brw-stat { background: #374151; color: #9ca3af; }
[data-theme="dark"] .brw-stat.done { background: #064e3b; color: #6ee7b7; }
[data-theme="dark"] .brw-stat.error { background: #7f1d1d; color: #fca5a5; }
[data-theme="dark"] .brw-stat.timeout { background: #78350f; color: #fed7aa; }
[data-theme="dark"] .brw-stat.running { background: #1e3a8a; color: #93c5fd; }

/* ============================================================
   Bulk Refresh — модалка запуска (красивый дизайн)
   ============================================================ */
#bulkRefreshStartModal .modal-content-wide {
    max-width: 560px;
    max-height: 90vh;
    border-radius: 20px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.18), 0 2px 6px rgba(0,0,0,0.06);
    border: none;
    overflow: hidden;
    padding: 0;
    display: flex;
    flex-direction: column;
}
#bulkRefreshStartModal form {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}
#bulkRefreshStartModal .modal-header {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    padding: 24px 28px 22px;
    position: relative;
    overflow: hidden;
    border-bottom: none;
    display: block;
    flex-shrink: 0;
}
#bulkRefreshStartModal .modal-header::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -10%;
    width: 240px;
    height: 240px;
    background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
#bulkRefreshStartModal .modal-header::after {
    content: '';
    position: absolute;
    bottom: -50%;
    left: -10%;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(255,255,255,0.04) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.bulk-modal-header-content {
    display: flex;
    align-items: center;
    gap: 16px;
    position: relative;
    z-index: 1;
}
.bulk-modal-header-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.15);
    border-radius: 14px;
    color: #fff;
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15), 0 0 0 1px rgba(255,255,255,0.1) inset;
}
.bulk-modal-header-icon svg { width: 24px; height: 24px; }
#bulkRefreshStartModal .modal-header h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1.2;
}
#bulkRefreshStartModal .modal-subtitle {
    font-size: 13px;
    color: rgba(255,255,255,0.75);
    margin: 4px 0 0;
    line-height: 1.4;
}
#bulkRefreshStartModal .modal-subtitle strong {
    color: #fff;
    font-weight: 700;
}
#bulkRefreshStartModal .modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    border: none;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(10px);
    color: #fff;
    font-size: 18px;
    line-height: 1;
    z-index: 2;
    padding: 0;
    cursor: pointer;
    transition: background 0.15s, transform 0.15s;
}
#bulkRefreshStartModal .modal-close:hover {
    background: rgba(255,255,255,0.28);
    color: #fff;
    transform: scale(1.05);
}

.bulk-modal-body {
    padding: 22px 28px 8px;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

/* Info cards */
.bulk-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 14px;
}
.bulk-info-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: linear-gradient(135deg, #f8fafc 0%, #eef2f6 100%);
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    transition: all 0.2s;
}
.bulk-info-card:hover {
    border-color: #c5d0e8;
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}
.bulk-info-card-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    color: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(30, 58, 95, 0.25);
}
.bulk-info-card-text { flex: 1; min-width: 0; }
.bulk-info-card-label {
    font-size: 11px;
    color: #6b7280;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 2px;
}
.bulk-info-card-value {
    font-size: 20px;
    font-weight: 700;
    color: #1e3a5f;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

/* Warning */
.bulk-warning {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: linear-gradient(135deg, #fff7ed 0%, #fef3c7 100%);
    border: 1px solid #fcd34d;
    border-radius: 12px;
    margin-bottom: 20px;
}
.bulk-warning-icon { font-size: 16px; line-height: 1.4; flex-shrink: 0; }
.bulk-warning-text {
    color: #92400e;
    font-size: 12.5px;
    line-height: 1.45;
}

/* Sections */
.bulk-section { margin-bottom: 18px; }
.bulk-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}
.bulk-section-header h3 {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.bulk-select-all {
    font-size: 12.5px !important;
    font-weight: 600 !important;
}

/* Parser grid with iOS toggles */
.bulk-parser-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}
.bulk-parser-grid-compact {
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}
.bulk-parser-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.15s;
    border: 1px solid #e5e7eb;
    background: #fff;
    user-select: none;
}
.bulk-parser-item:hover {
    background: linear-gradient(135deg, #f8fafc 0%, #fff 100%);
    border-color: #c5d0e8;
    box-shadow: 0 2px 6px rgba(30, 58, 95, 0.06);
}
.bulk-parser-item input[type="checkbox"] {
    display: none;
}
.bulk-parser-item .bulk-parser-track {
    display: inline-block;
    position: relative;
    width: 36px;
    min-width: 36px;
    height: 20px;
    background: #d1d5db;
    border-radius: 999px;
    transition: background 0.25s;
    flex-shrink: 0;
}
.bulk-parser-item .bulk-parser-track::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 1px 3px rgba(0,0,0,0.25);
}
.bulk-parser-item input:checked + .bulk-parser-track {
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    box-shadow: 0 1px 3px rgba(30, 58, 95, 0.3);
}
.bulk-parser-item input:checked + .bulk-parser-track::after {
    transform: translateX(16px);
}
.bulk-parser-item:has(input:checked) {
    background: linear-gradient(135deg, #f0f5ff 0%, #fff 100%);
    border-color: #c5d0e8;
}
.bulk-parser-label {
    font-size: 13.5px;
    font-weight: 500;
    color: #374151;
    flex: 1;
    line-height: 1.3;
    letter-spacing: -0.01em;
}
.bulk-parser-item.is-esf .bulk-parser-label { color: #9a3412; }
.bulk-parser-hint {
    font-size: 11px;
    margin-left: 2px;
}

/* Period input */
.bulk-period-input {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 500;
    color: #1f2937;
    background: #fff;
    transition: all 0.15s;
}
.bulk-period-input:focus {
    outline: none;
    border-color: #2d5a8e;
    box-shadow: 0 0 0 3px rgba(45, 90, 142, 0.12);
}

/* Config row (timeout + parallel) */
.bulk-config-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 8px;
}
.bulk-config-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    transition: all 0.15s;
}
.bulk-config-item:focus-within {
    border-color: #2d5a8e;
    box-shadow: 0 0 0 3px rgba(45, 90, 142, 0.12);
    background: #fff;
}
.bulk-config-label {
    font-size: 11.5px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.bulk-config-item input[type="number"] {
    border: none;
    background: transparent;
    padding: 0;
    font-size: 18px;
    font-weight: 700;
    color: #1e3a5f;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    outline: none;
    width: 100%;
}

/* Actions */
.bulk-actions {
    display: flex;
    gap: 12px;
    padding: 18px 28px 22px;
    border-top: 1px solid #f3f4f6;
    background: #fafbfc;
    flex-shrink: 0;
}
.bulk-actions .btn-secondary {
    flex: 1;
    padding: 13px;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.15s;
}
.bulk-actions .btn-secondary:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
    color: #374151;
}
.bulk-actions .btn-primary {
    flex: 2;
    padding: 13px;
    border-radius: 12px;
    border: none;
    background: linear-gradient(135deg, #1e3a5f 0%, #2d5a8e 100%);
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    transition: all 0.15s;
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.3);
    letter-spacing: -0.01em;
}
.bulk-actions .btn-primary:hover:not(:disabled) {
    box-shadow: 0 6px 20px rgba(30, 58, 95, 0.4);
    transform: translateY(-1px);
    background: linear-gradient(135deg, #2d5a8e 0%, #3d6ea2 100%);
}
.bulk-actions .btn-primary:active:not(:disabled) {
    transform: translateY(0);
}
.bulk-actions .btn-primary:disabled {
    opacity: 0.65;
    cursor: not-allowed;
    box-shadow: none;
}

/* Dark theme */
[data-theme="dark"] #bulkRefreshStartModal .modal-content-wide {
    background: #1f2937;
}
[data-theme="dark"] .bulk-info-card {
    background: linear-gradient(135deg, #111827 0%, #1e2938 100%);
    border-color: #374151;
}
[data-theme="dark"] .bulk-info-card-value { color: #93c5fd; }
[data-theme="dark"] .bulk-info-card-label { color: #9ca3af; }
[data-theme="dark"] .bulk-warning {
    background: linear-gradient(135deg, #78350f 0%, #92400e 100%);
    border-color: #b45309;
}
[data-theme="dark"] .bulk-warning-text { color: #fde68a; }
[data-theme="dark"] .bulk-section-header h3 { color: #e5e7eb; }
[data-theme="dark"] .bulk-parser-item {
    background: #111827;
    border-color: #374151;
}
[data-theme="dark"] .bulk-parser-item:hover {
    background: linear-gradient(135deg, #111827 0%, #1e2938 100%);
    border-color: #4b5563;
}
[data-theme="dark"] .bulk-parser-item:has(input:checked) {
    background: linear-gradient(135deg, #1e3a8a20 0%, #111827 100%);
    border-color: #4b5563;
}
[data-theme="dark"] .bulk-parser-label { color: #e5e7eb; }
[data-theme="dark"] .bulk-parser-item .bulk-parser-track { background: #4b5563; }
[data-theme="dark"] .bulk-config-item {
    background: #111827;
    border-color: #374151;
}
[data-theme="dark"] .bulk-config-label { color: #9ca3af; }
[data-theme="dark"] .bulk-config-item input[type="number"] { color: #93c5fd; }
[data-theme="dark"] .bulk-period-input {
    background: #111827;
    border-color: #374151;
    color: #e5e7eb;
}
[data-theme="dark"] .bulk-actions {
    background: #111827;
    border-top-color: #374151;
}
[data-theme="dark"] .bulk-actions .btn-secondary {
    background: #1f2937;
    border-color: #374151;
    color: #9ca3af;
}
[data-theme="dark"] .bulk-actions .btn-secondary:hover {
    background: #374151;
    color: #e5e7eb;
}

/* Подробности progress-модалки */
.bulk-refresh-details-row {
    display: grid;
    grid-template-columns: 30px 1fr 90px 100px;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid #f3f4f6;
    font-size: 13px;
    align-items: center;
}
.bulk-refresh-details-row:last-child {
    border-bottom: none;
}
.bulk-refresh-details-row.running {
    background: #dbeafe;
}
.bulk-refresh-details-row.done .status-cell { color: #047857; }
.bulk-refresh-details-row.error .status-cell { color: #b91c1c; }
.bulk-refresh-details-row.timeout .status-cell { color: #9a3412; }
.bulk-refresh-details-row.skipped .status-cell { color: #6b7280; }
.bulk-refresh-details-row .row-idx {
    color: #9ca3af;
    font-size: 11px;
    text-align: right;
}
.bulk-refresh-details-row .org-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bulk-refresh-details-row .org-inn {
    font-size: 11px;
    color: #9ca3af;
    font-family: monospace;
}
.bulk-refresh-details-row .status-cell {
    text-align: center;
    font-weight: 500;
    font-size: 12px;
}
.bulk-refresh-details-row .duration-cell {
    color: #6b7280;
    font-size: 11px;
    text-align: right;
}
[data-theme="dark"] .bulk-refresh-details-row {
    border-color: #374151;
}
[data-theme="dark"] .bulk-refresh-details-row.running {
    background: #1e3a8a;
}

/* Дашборд (вертикальный список в сайдбаре) */
.svod-dashboard {
    display: flex;
    flex-direction: column;
}
.svod-dashboard-loading {
    text-align: center;
    padding: 30px 0;
    color: #9ca3af;
    font-size: 13px;
}

/* Блок секции в сайдбаре */
.svod-dash-block {
    border-bottom: 1px solid #f3f4f6;
    padding: 10px 0;
    min-width: 0;
}
.svod-dash-block:last-child {
    border-bottom: none;
}
.svod-dash-block h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    user-select: none;
    padding: 2px 4px;
    border-radius: 4px;
    transition: background 0.1s;
}
.svod-dash-block h4:hover {
    background: #f9fafb;
}
.svod-dash-block h4 .svod-section-arrow {
    width: 14px;
    height: 14px;
    color: #9ca3af;
    transition: transform 0.2s;
    flex-shrink: 0;
}
.svod-dash-block h4 .svod-section-arrow.collapsed {
    transform: rotate(-90deg);
}
.svod-dash-section-content {
    overflow: hidden;
    transition: max-height 0.2s ease;
}
.svod-dash-section-content.collapsed {
    max-height: 0 !important;
    overflow: hidden;
}

/* Tri-state переключатель режима отчётов */
.svod-report-mode-toggle {
    display: flex;
    gap: 2px;
    margin-bottom: 6px;
    background: #f3f4f6;
    padding: 2px;
    border-radius: 6px;
}
.svod-mode-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 4px 2px;
    font-size: 10px;
    font-weight: 500;
    color: #6b7280;
    cursor: pointer;
    border-radius: 4px;
    transition: all 0.15s;
}
.svod-mode-btn:hover {
    color: #111827;
}
.svod-mode-btn.active {
    background: white;
    color: #2563eb;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

/* Строки с метриками */
.svod-dash-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 3px 6px;
    margin: 1px 0;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
    transition: background 0.1s;
}
.svod-dash-row:hover {
    background: #f3f4f6;
}
.svod-dash-rule-sec {
    font-size: 10px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 6px 6px 2px;
    margin-top: 2px;
}
.svod-dash-rule-sec:first-child { margin-top: 0; }
body[data-theme="dark"] .svod-dash-rule-sec { color: #64748b; }
.svod-dash-row.active {
    background: #dbeafe;
    font-weight: 600;
}
.svod-dash-row-label {
    color: #4b5563;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.svod-dash-row-value {
    font-weight: 600;
    margin-left: 8px;
    white-space: nowrap;
    font-size: 12px;
}
.svod-dash-row-value.all-ok {
    color: #16a34a;
}
.svod-dash-row-value.has-issues {
    color: #dc2626;
}
.svod-dash-row-value.neutral {
    color: #374151;
}
.svod-dash-row-value.good {
    color: #16a34a;
}
.svod-dash-row-value.bad {
    color: #dc2626;
}

/* Блок "Вид налога" — кнопки-чипы */
.svod-tax-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.svod-tax-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 12px;
    cursor: pointer;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    transition: all 0.15s;
}
.svod-tax-chip:hover {
    border-color: #3b82f6;
    background: #eff6ff;
}
.svod-tax-chip.active {
    background: #3b82f6;
    color: #fff;
    border-color: #3b82f6;
}
.svod-tax-chip-count {
    font-weight: 700;
}

/* Активные фильтры */
.svod-active-filters {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    margin-bottom: 8px;
    font-size: 12px;
    flex-shrink: 0;
}
.svod-filter-label {
    font-weight: 600;
    color: #1e40af;
}
.svod-filter-text {
    color: #1e40af;
    flex: 1;
}
.svod-filter-reset {
    padding: 2px 8px;
    border-radius: 4px;
    border: 1px solid #93c5fd;
    background: #fff;
    color: #1e40af;
    cursor: pointer;
    font-size: 11px;
}
.svod-filter-reset:hover {
    background: #dbeafe;
}

/* Статусы аудита в таблице */
.svod-status-ok {
    color: #16a34a;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}
.svod-status-error {
    color: #dc2626;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}
.svod-status-warning {
    color: #d97706;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}
.svod-status-na {
    color: #9ca3af;
    font-size: 12px;
    white-space: nowrap;
}

/* Чаты в дашборде */
.svod-dash-chat-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 700;
}
.svod-dash-chat-new {
    background: #dc2626;
    color: #fff;
}
.svod-dash-chat-waiting {
    background: #f59e0b;
    color: #fff;
}

/* Блок задолженности */
.svod-debt-value {
    font-weight: 700;
    font-size: 13px;
}
.svod-debt-negative {
    color: #dc2626;
}
.svod-debt-zero {
    color: #16a34a;
}

@media (max-width: 768px) {
    .svod-layout {
        flex-direction: column;
    }
    .svod-sidebar {
        width: 100% !important;
        min-width: 100% !important;
        max-height: 300px;
        border-right: none;
        border-bottom: 1px solid var(--border-color, #e5e7eb);
    }
    .svod-sidebar.collapsed {
        max-height: 0;
        width: 0 !important;
        min-width: 0 !important;
        padding: 0;
        border-bottom: none;
    }
}

/* === Сопоставление ЭСФ / Выписка === */
.stmt-reconcile-btn {
    background: #f3f4f6;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 3px 10px;
    font-size: 11px;
    color: #374151;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s;
}
.stmt-reconcile-btn:hover {
    background: #e5e7eb;
}
.stmt-reconciliation {
    margin-top: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
}
.stmt-reconciliation-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 8px;
}
.stmt-reconciliation-header h4 {
    margin: 0;
    font-size: 14px;
    color: #374151;
}

/* ========== СОТРУДНИКИ 2.0 ========== */
.emp2-wrapper { display: flex; flex-direction: column; gap: 16px; padding: 12px 4px; }
.emp2-header-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.emp2-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: space-between; }
.emp2-period-nav { display: flex; align-items: center; gap: 8px; }
.emp2-period-label { font-size: 18px; font-weight: 600; color: #111827; min-width: 160px; text-align: center; }
.emp2-nav-btn {
    width: 36px; height: 36px;
    border: 1px solid #d1d5db; background: #f9fafb;
    border-radius: 8px; cursor: pointer; font-size: 20px; line-height: 1; color: #374151;
    transition: background .15s;
}
.emp2-nav-btn:hover { background: #f3f4f6; }
.emp2-meta-fields { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.emp2-field-inline { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #374151; }
.emp2-field-inline input, .emp2-field-inline select {
    padding: 6px 10px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px;
}
.emp2-confirm-block, .emp2-161-block {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 10px 14px; border-radius: 10px; flex: 1;
    background: #fffbeb; border: 1px solid #fde68a;
}
.emp2-confirm-block.is-confirmed { background: #ecfdf5; border-color: #a7f3d0; }
.emp2-161-block.is-submitted { background: #ecfdf5; border-color: #a7f3d0; }
.emp2-161-block.is-manual { background: #d1fae5; border-color: #6ee7b7; }
.emp2-161-block.is-pending { background: #fef2f2; border-color: #fecaca; }
.emp2-161-block.is-waiting { background: #eff6ff; border-color: #bfdbfe; }
.emp2-161-block.is-error { background: #fef2f2; border-color: #fca5a5; }
.emp2-confirm-label, .emp2-161-label { font-weight: 600; color: #111827; }
.emp2-radio-group { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.emp2-mini-btn { padding: 6px 12px !important; font-size: 13px !important; }
.emp2-sent-tag { color: #6b7280; font-size: 12px; font-style: italic; }
.emp2-warn-tag { color: #b45309; font-size: 12px; font-weight: 500; }
.emp2-161-status { font-weight: 600; padding: 4px 10px; border-radius: 6px; background: #fff; }
.emp2-161-block.is-submitted .emp2-161-status { color: #047857; }
.emp2-161-block.is-manual .emp2-161-status { color: #047857; background: transparent; padding: 0; }
.emp2-161-block.is-manual .emp2-manual-pill {
    display: inline-block; background: #10b981; color: #fff; font-weight: 700;
    padding: 4px 12px; border-radius: 999px; letter-spacing: .01em;
}
.emp2-161-block.is-pending .emp2-161-status { color: #b91c1c; }
.emp2-161-block.is-waiting .emp2-161-status { color: #1d4ed8; }
.emp2-161-block.is-error .emp2-161-status { color: #b91c1c; }
.emp2-161-block .emp2-error-text { width: 100%; }

.emp2-table-wrapper {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; overflow: auto;
}
.emp2-table { width: 100%; border-collapse: collapse; }
.emp2-table th {
    text-align: left; padding: 10px 12px; font-size: 12px; text-transform: uppercase;
    letter-spacing: .04em; background: #f9fafb; color: #6b7280;
    border-bottom: 1px solid #e5e7eb; position: sticky; top: 0; z-index: 1;
}
.emp2-table td {
    padding: 10px 12px; font-size: 14px; color: #111827;
    border-bottom: 1px solid #f3f4f6; vertical-align: middle;
}
.emp2-table tbody tr:hover { background: #fafbfc; }
.emp2-meta { color: #6b7280; font-size: 12px; }
.emp2-cell-match {
    background: #d1fae5; color: #065f46; font-weight: 500;
    padding: 6px 10px; border-radius: 6px; cursor: pointer; text-align: center;
    transition: filter .15s;
}
.emp2-cell-mismatch {
    background: #fee2e2; color: #991b1b; font-weight: 500;
    padding: 6px 10px; border-radius: 6px; cursor: pointer; text-align: center;
}
.emp2-cell-match:hover, .emp2-cell-mismatch:hover { filter: brightness(0.96); }

/* Inline-редактирование ячеек свода "Сотрудники 2.0" v3 */
.emp2-inline-select, .emp2-inline-input {
    padding: 4px 6px; border: 1px solid #d1d5db; border-radius: 4px;
    font-size: 13px; background: #fff; min-width: 90px;
    transition: background 0.2s, border-color 0.2s;
}
.emp2-inline-select { max-width: 200px; }
.emp2-inline-select:focus, .emp2-inline-input:focus {
    outline: none; border-color: #0ea5e9; box-shadow: 0 0 0 2px rgba(14,165,233,0.15);
}
.emp2-inline-check { width: 18px; height: 18px; cursor: pointer; }
.emp2-cell-center { text-align: center; }
.emp2-save-ok { background: #ecfdf5 !important; border-color: #10b981 !important; }
.emp2-save-error { background: #fef2f2 !important; border-color: #ef4444 !important; }
.emp2-ip-badge {
    display: inline-block; background: #fef3c7; color: #92400e;
    font-size: 10px; font-weight: 700; padding: 1px 5px; border-radius: 3px;
    margin-left: 6px; vertical-align: middle;
}
.emp2-row-ip td:first-child { background: #fef9c3; border-left: 3px solid #facc15; }
/* Источник появления сотрудника (Ульяна 04.05.2026, пункт 1) */
.emp2-src-badge {
    display: inline-block; font-size: 10px; font-weight: 600; padding: 1px 5px; border-radius: 3px;
    margin-left: 4px; vertical-align: middle; line-height: 14px;
}
.emp2-src-registry { background: #dbeafe; color: #1e3a8a; }
.emp2-src-form161  { background: #ede9fe; color: #5b21b6; }
body[data-theme="dark"] .emp2-src-registry { background: #1e3a8a; color: #dbeafe; }
body[data-theme="dark"] .emp2-src-form161  { background: #4c1d95; color: #ede9fe; }
/* Сотрудник в нескольких районах (Ульяна 04.05.2026, пункт 2) */
.emp2-multi-badge {
    display: inline-block; background: #fee2e2; color: #991b1b;
    font-size: 10px; font-weight: 700; padding: 1px 5px; border-radius: 3px;
    margin-left: 4px; vertical-align: middle; line-height: 14px;
    cursor: help;
}
body[data-theme="dark"] .emp2-multi-badge { background: #7f1d1d; color: #fecaca; }
.emp2-row-multi-district td:first-child { background: #fff7ed; border-left: 3px solid #f97316; }
body[data-theme="dark"] .emp2-row-multi-district td:first-child { background: #7c2d1222; border-left-color: #f97316; }
/* Кнопки «✕ удалить из района» / «↔ перенести район» */
.emp2-district-action {
    display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 4px; border: 1px solid #d1d5db;
    background: #fff; cursor: pointer; font-size: 13px; line-height: 1;
    margin-left: 6px; vertical-align: middle; color: #374151;
    transition: background 0.15s, border-color 0.15s;
}
.emp2-district-action:hover { background: #f3f4f6; border-color: #9ca3af; }
.emp2-action-remove { color: #b91c1c; }
.emp2-action-remove:hover { background: #fee2e2; border-color: #fca5a5; }
.emp2-action-move { color: #1d4ed8; }
.emp2-action-move:hover { background: #dbeafe; border-color: #93c5fd; }
body[data-theme="dark"] .emp2-district-action { background: #1f2937; color: #e5e7eb; border-color: #374151; }
body[data-theme="dark"] .emp2-district-action:hover { background: #374151; }

.emp2-fire-empty {
    color: #dc2626; font-size: 12px; cursor: pointer; text-decoration: underline dotted;
    padding: 2px 6px; border-radius: 4px;
}
.emp2-fire-empty:hover { background: #fee2e2; }
.emp2-161-amounts {
    font-size: 12px; text-align: left; line-height: 1.4; padding: 6px 10px;
    background: #d1fae5; color: #065f46; border-radius: 6px; cursor: pointer;
}
.emp2-161-amounts div { white-space: nowrap; }

body[data-theme="dark"] .emp2-inline-select,
body[data-theme="dark"] .emp2-inline-input {
    background: #1f2937; color: #f3f4f6; border-color: #374151;
}
body[data-theme="dark"] .emp2-save-ok { background: #064e3b !important; }
body[data-theme="dark"] .emp2-save-error { background: #7f1d1d !important; }
body[data-theme="dark"] .emp2-ip-badge { background: #78350f; color: #fef3c7; }
body[data-theme="dark"] .emp2-row-ip td:first-child { background: #78350f22; border-left-color: #facc15; }
body[data-theme="dark"] .emp2-161-amounts { background: #064e3b; color: #a7f3d0; }

.emp2-actions { display: flex; gap: 6px; align-items: center; }
.emp2-col-actions { width: 130px; }

/* ── «Сотрудники 2.0» v2 — таблица по ТЗ заказчика (2026-05-11) ─────────────── */
.emp2-table-v2 th, .emp2-table-v2 td { padding: 8px 8px; }
.emp2-table-v2 .emp2-col-num { width: 34px; text-align: center; color: #6b7280; font-size: 12px; }
.emp2-table-v2 .emp2-col-name { min-width: 180px; }
.emp2-table-v2 .emp2-col-pos { color: #4b5563; font-size: 13px; max-width: 150px; }
.emp2-cell-right { text-align: right; }
.emp2-cell-right.emp2-th-calc { color: #9ca3af; }   /* «авто»-колонки в шапке — приглушённо */
/* Расчётные (read-only) ячейки — серый фон, цифры моноширинно */
.emp2-calc-cell {
    background: #f8fafc; color: #334155; font-variant-numeric: tabular-nums;
    white-space: nowrap; font-size: 13px;
}
.emp2-table-v2 td.emp2-calc-cell { border-left: 1px solid #eef2f7; }
/* Редактируемые числовые поля (РД/ОД/Нач ЗП/на руки) */
.emp2-inline-input.emp2-w-days { width: 52px; min-width: 44px; text-align: center; }
.emp2-inline-input.emp2-w-money { width: 96px; min-width: 80px; text-align: right; font-variant-numeric: tabular-nums; }
.emp2-input-editable { background: #fffdf3; border-color: #e5d9a8; }
.emp2-input-editable:focus { background: #fff; }
.emp2-inline-input:disabled { background: #f3f4f6; color: #9ca3af; cursor: not-allowed; }
/* Ячейка «Отраб. дни» — кнопка пересчёта + подсветка доп. ФОТ */
.emp2-od-cell { white-space: nowrap; }
.emp2-od-cell.emp2-od-extrafot { background: #fee2e2; }
.emp2-od-cell.emp2-od-extrafot .emp2-inline-input { border-color: #ef4444; background: #fff5f5; }
.emp2-recalc-od {
    margin-left: 4px; border: none; background: transparent; cursor: pointer;
    color: #2563eb; font-size: 14px; line-height: 1; padding: 2px;
}
.emp2-recalc-od:hover { color: #1d4ed8; }
/* Строка ИТОГО */
.emp2-totals-row td { background: #f1f5f9; border-top: 2px solid #cbd5e1; font-size: 13px; }
.emp2-totals-row td strong { font-variant-numeric: tabular-nums; }
.emp2-totals-hint { color: #94a3b8; font-weight: 400; font-size: 12px; }
/* Бейдж «уволен» */
.emp2-fire-badge {
    display: inline-block; background: #fee2e2; color: #b91c1c;
    font-size: 10px; font-weight: 700; padding: 1px 5px; border-radius: 3px;
    margin-left: 4px; vertical-align: middle; line-height: 14px;
}
/* Dark theme */
body[data-theme="dark"] .emp2-calc-cell { background: #111827; color: #cbd5e1; }
body[data-theme="dark"] .emp2-table-v2 td.emp2-calc-cell { border-left-color: #1f2937; }
body[data-theme="dark"] .emp2-input-editable { background: #2a2410; border-color: #4d4327; color: #f3f4f6; }
body[data-theme="dark"] .emp2-input-editable:focus { background: #1f2937; }
body[data-theme="dark"] .emp2-od-cell.emp2-od-extrafot { background: #7f1d1d; }
body[data-theme="dark"] .emp2-od-cell.emp2-od-extrafot .emp2-inline-input { background: #5a1414; border-color: #ef4444; }
body[data-theme="dark"] .emp2-totals-row td { background: #111827; border-top-color: #374151; }
body[data-theme="dark"] .emp2-fire-badge { background: #7f1d1d; color: #fecaca; }
body[data-theme="dark"] .emp2-table-v2 .emp2-col-pos { color: #9ca3af; }
.emp2-dropdown { position: relative; }
.emp2-dropdown-btn {
    width: 32px; height: 32px; border: 1px solid #d1d5db; background: #fff; border-radius: 6px;
    cursor: pointer; font-size: 16px; color: #6b7280;
}
.emp2-dropdown-btn:hover { background: #f9fafb; }
.emp2-dropdown-menu {
    position: absolute; top: 100%; right: 0; margin-top: 4px;
    min-width: 180px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    box-shadow: 0 6px 18px rgba(0,0,0,.08); display: none; z-index: 30;
}
.emp2-dropdown-menu.show { display: block; }
.emp2-dropdown-menu a {
    display: block; padding: 8px 12px; font-size: 14px; color: #111827; text-decoration: none;
}
.emp2-dropdown-menu a:hover { background: #f3f4f6; }

/* ====== Модалки ====== */
.emp2-form-row { margin-bottom: 12px; }
.emp2-form-row label { display: block; font-size: 13px; color: #374151; margin-bottom: 4px; font-weight: 500; }
.emp2-form-row label .req { color: #ef4444; }
.emp2-form-row input, .emp2-form-row select, .emp2-form-row textarea {
    width: 100%; padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px;
    background: #fff;
}
.emp2-form-row input:focus, .emp2-form-row select:focus, .emp2-form-row textarea:focus {
    outline: 2px solid #2563eb22; border-color: #2563eb;
}
.emp2-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #374151; }
.emp2-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 14px; }
.emp2-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 14px; }
.emp2-section-title {
    margin: 16px 0 10px; padding-bottom: 6px;
    border-bottom: 1px solid #e5e7eb; color: #1f2937;
    font-size: 14px; text-transform: uppercase; letter-spacing: .04em; font-weight: 600;
}
.emp2-readonly .emp2-form-row { background: #f9fafb; padding: 8px; border-radius: 6px; }
.emp2-readonly-val { font-size: 14px; color: #111827; font-weight: 500; padding: 4px 0; }
.emp2-actions-row { display: flex; gap: 10px; flex-wrap: wrap; }

.emp2-kv { width: 100%; border-collapse: collapse; }
.emp2-kv th { text-align: left; width: 40%; padding: 8px 10px; color: #6b7280; font-weight: 500; vertical-align: top; }
.emp2-kv td { padding: 8px 10px; color: #111827; }
.emp2-kv tr { border-bottom: 1px solid #f3f4f6; }

/* dark mode */
body[data-theme="dark"] .emp2-header-card,
body[data-theme="dark"] .emp2-table-wrapper { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .emp2-table th { background: #111827; color: #9ca3af; border-bottom-color: #374151; }
body[data-theme="dark"] .emp2-table td { color: #f3f4f6; border-bottom-color: #374151; }
body[data-theme="dark"] .emp2-table tbody tr:hover { background: #111827; }
body[data-theme="dark"] .emp2-period-label { color: #f3f4f6; }
body[data-theme="dark"] .emp2-nav-btn { background: #111827; border-color: #374151; color: #d1d5db; }
body[data-theme="dark"] .emp2-form-row input,
body[data-theme="dark"] .emp2-form-row select,
body[data-theme="dark"] .emp2-form-row textarea,
body[data-theme="dark"] .emp2-field-inline input,
body[data-theme="dark"] .emp2-field-inline select {
    background: #111827; color: #f3f4f6; border-color: #374151;
}
body[data-theme="dark"] .emp2-cell-match { background: #064e3b; color: #a7f3d0; }
body[data-theme="dark"] .emp2-cell-mismatch { background: #7f1d1d; color: #fecaca; }
body[data-theme="dark"] .emp2-confirm-block { background: #1f2937; border-color: #92400e; }
body[data-theme="dark"] .emp2-confirm-block.is-confirmed { background: #064e3b22; border-color: #047857; }
body[data-theme="dark"] .emp2-readonly .emp2-form-row { background: #111827; }
body[data-theme="dark"] .emp2-dropdown-menu { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .emp2-dropdown-menu a { color: #f3f4f6; }
body[data-theme="dark"] .emp2-dropdown-menu a:hover { background: #374151; }
body[data-theme="dark"] .emp2-section-title { color: #f3f4f6; border-bottom-color: #374151; }

/* ============================================================================
   ВКЛАДКА «ПРАВИЛА»
============================================================================ */
.rules-container { padding: 16px 0; }
.rules-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(440px, 1fr));
    gap: 16px;
}
.rule-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.rule-card:hover { border-color: #cbd5e1; }
.rule-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #f1f5f9;
}
.rule-card-title { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.rule-card-title h3 { margin: 0; font-size: 14px; font-weight: 600; color: #111827; line-height: 1.4; }
.rule-key {
    font-size: 11px;
    color: #6b7280;
    font-family: 'Menlo', 'Monaco', monospace;
    background: #f3f4f6;
    padding: 1px 6px;
    border-radius: 3px;
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rule-readonly-badge {
    font-size: 10px;
    background: #fef3c7;
    color: #92400e;
    padding: 2px 6px;
    border-radius: 3px;
    font-weight: 500;
    white-space: nowrap;
}
.rule-card-body { display: flex; flex-direction: column; gap: 10px; }
.rule-row { display: flex; flex-direction: column; gap: 4px; }
.rule-label {
    font-size: 12px;
    font-weight: 500;
    color: #374151;
}
.rule-unit { color: #6b7280; font-weight: normal; }
.rule-value-wrap { display: flex; gap: 6px; }
.rule-input {
    width: 100%;
    padding: 7px 10px;
    font-size: 13px;
    border: 1px solid #d1d5db;
    border-radius: 5px;
    background: #ffffff;
    color: #111827;
    box-sizing: border-box;
    font-family: inherit;
}
.rule-input:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}
.rule-input:disabled {
    background: #f9fafb;
    color: #6b7280;
    cursor: not-allowed;
}
.rule-input-number { max-width: 220px; }
.rule-input-json,
textarea.rule-input-string {
    font-family: 'Menlo', 'Monaco', monospace;
    font-size: 12px;
    line-height: 1.5;
    resize: vertical;
}
.rule-input-json { background: #f9fafb; }
.rule-description {
    font-size: 12px;
    color: #4b5563;
    line-height: 1.5;
    padding: 6px 0;
}
.rule-legal {
    resize: vertical;
    font-size: 12px;
    color: #374151;
}
.rule-legal::placeholder { color: #9ca3af; }
.rule-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding-top: 10px;
    border-top: 1px solid #f1f5f9;
    margin-top: 4px;
}
.rule-meta { font-size: 11px; color: #6b7280; transition: color 0.3s; }
.rule-save-btn { padding: 6px 16px; font-size: 13px; transition: all 0.2s; }
.rule-save-btn-success {
    background: #10b981 !important;
    border-color: #10b981 !important;
    color: #ffffff !important;
}
.rule-toggle {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px; color: #374151; cursor: pointer;
}
.rule-toggle input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; }

body[data-theme="dark"] .rule-card { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .rule-card:hover { border-color: #4b5563; }
body[data-theme="dark"] .rule-card-header { border-bottom-color: #374151; }
body[data-theme="dark"] .rule-card-title h3 { color: #f3f4f6; }
body[data-theme="dark"] .rule-key { background: #111827; color: #9ca3af; }
body[data-theme="dark"] .rule-readonly-badge { background: #78350f; color: #fef3c7; }
body[data-theme="dark"] .rule-label { color: #d1d5db; }
body[data-theme="dark"] .rule-description { color: #9ca3af; }
body[data-theme="dark"] .rule-input { background: #111827; border-color: #374151; color: #f3f4f6; }
body[data-theme="dark"] .rule-input:disabled { background: #1f2937; color: #6b7280; }
body[data-theme="dark"] .rule-input-json { background: #0f172a; }
body[data-theme="dark"] .rule-card-footer { border-top-color: #374151; }
body[data-theme="dark"] .rule-meta { color: #9ca3af; }
body[data-theme="dark"] .rule-legal { color: #d1d5db; }

/* ============================================================================
   РЕЕСТР ПРАВИЛ АУДИТА (режим «Аудит» во вкладке «Правила»)
============================================================================ */
.audit-rules-toolbar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    padding: 14px 0 10px; border-bottom: 1px solid #f1f5f9; margin-bottom: 12px;
}
.audit-rules-search {
    flex: 1; min-width: 240px; padding: 8px 12px; font-size: 13px;
    border: 1px solid #d1d5db; border-radius: 6px; font-family: inherit; color: #111827; background: #fff;
}
.audit-rules-search:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.15); }
.audit-rules-filter {
    padding: 7px 10px; font-size: 13px; border: 1px solid #d1d5db; border-radius: 6px; background: #fff; color: #111827; font-family: inherit;
}
.audit-rules-filter-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #374151; cursor: pointer; white-space: nowrap; }
.audit-rules-filter-chk input { width: 15px; height: 15px; cursor: pointer; }
.audit-rules-expand-btn {
    padding: 7px 12px; font-size: 12px; border: 1px solid #d1d5db; border-radius: 6px; background: #f8fafc; color: #475569; cursor: pointer; font-family: inherit;
}
.audit-rules-expand-btn:hover { background: #f1f5f9; }
.audit-rules-container { display: flex; flex-direction: column; gap: 14px; padding-bottom: 28px; }

/* Phase F (13.05.2026): кнопки действий в тулбаре Реестра — Импорт OmniDesk / Регламент / +Правило */
.audit-rules-toolbar-actions { display: flex; gap: 8px; margin-left: auto; }
.audit-rules-toolbar-actions .btn-primary,
.audit-rules-toolbar-actions .btn-secondary {
    padding: 7px 12px; font-size: 13px; border-radius: 6px; cursor: pointer; font-family: inherit; white-space: nowrap;
}
.audit-rule-modal-create { max-width: 820px; }
.ar-create-title { margin: 0 0 8px; font-size: 18px; color: #111827; }
.ar-create-desc { font-size: 13px; color: #64748b; margin: 0 0 16px; line-height: 1.5; }
.ar-create-status { margin-top: 10px; font-size: 13px; min-height: 18px; }
.ar-create-status-ok    { color: #047857; }
.ar-create-status-error { color: #b91c1c; }
.audit-rule-create-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }
.audit-rule-create-actions .btn-primary,
.audit-rule-create-actions .btn-secondary { padding: 8px 16px; font-size: 13px; border-radius: 6px; cursor: pointer; }
.ar-imp-preview { margin-top: 14px; }
.ar-imp-card {
    border: 1px solid #d1fae5; background: #ecfdf5; border-radius: 8px;
    padding: 12px 14px; font-size: 13px; color: #065f46;
}
.ar-imp-card > div { margin-bottom: 6px; }
.ar-imp-card code { background: #fff; border: 1px solid #d1fae5; border-radius: 4px; padding: 1px 5px; font-size: 11px; color: #047857; }
.ar-imp-actions { display: flex; gap: 8px; margin-top: 10px; }
.ar-delete-btn {
    padding: 6px 12px; font-size: 12px; border: 1px solid #fecaca; background: #fff;
    color: #b91c1c; border-radius: 6px; cursor: pointer; font-family: inherit;
}
.ar-delete-btn:hover { background: #fef2f2; border-color: #fca5a5; }
.ar-delete-btn:disabled { opacity: 0.5; cursor: wait; }

body[data-theme="dark"] .ar-create-title { color: #f8fafc; }
body[data-theme="dark"] .ar-create-desc  { color: #94a3b8; }
body[data-theme="dark"] .ar-imp-card     { background: #064e3b; border-color: #047857; color: #d1fae5; }
body[data-theme="dark"] .ar-imp-card code { background: #022c22; border-color: #047857; color: #6ee7b7; }
body[data-theme="dark"] .ar-delete-btn   { background: transparent; border-color: #7f1d1d; color: #fca5a5; }
body[data-theme="dark"] .ar-delete-btn:hover { background: #450a0a; border-color: #b91c1c; }


/* ============================================================================
   Лента ошибок аудита — раздел «Аудит» (Фаза B, 13.05.2026).
   ============================================================================ */
.audit-feed-greeting {
    padding: 16px 20px;
    margin: 0 0 8px;
    background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%);
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}
body[data-theme="dark"] .audit-feed-greeting { background: linear-gradient(135deg, #1e1b4b 0%, #052e16 100%); }
.audit-greeting-text { font-size: 16px; color: #1e293b; }
body[data-theme="dark"] .audit-greeting-text { color: #e2e8f0; }
.audit-greeting-stats { display: flex; gap: 12px; flex-wrap: wrap; }
.ag-stat { font-size: 13px; padding: 4px 10px; border-radius: 6px; font-variant-numeric: tabular-nums; }
.ag-stat-open { background: #fef2f2; color: #b91c1c; }
.ag-stat-progress { background: #fffbeb; color: #92400e; }
.ag-stat-done { background: #f0fdf4; color: #166534; }
.ag-stat-age { background: #f5f5f5; color: #6b7280; }
body[data-theme="dark"] .ag-stat-open { background: #450a0a; color: #fca5a5; }
body[data-theme="dark"] .ag-stat-progress { background: #451a03; color: #fcd34d; }
body[data-theme="dark"] .ag-stat-done { background: #052e16; color: #86efac; }
body[data-theme="dark"] .ag-stat-age { background: #1e293b; color: #94a3b8; }
.af-org-tags { display: inline-flex; gap: 3px; margin-left: 6px; vertical-align: middle; flex-wrap: wrap; }
.af-tag { font-size: 10px; padding: 1px 5px; border-radius: 3px; font-weight: 500; white-space: nowrap; line-height: 1.4; }
.af-tag-type { background: #e0e7ff; color: #3730a3; }
.af-tag-report { background: #fef3c7; color: #92400e; }
.af-tag-emp { background: #dbeafe; color: #1e40af; }
body[data-theme="dark"] .af-tag-type { background: #312e81; color: #c7d2fe; }
body[data-theme="dark"] .af-tag-report { background: #451a03; color: #fcd34d; }
body[data-theme="dark"] .af-tag-emp { background: #1e3a5f; color: #93c5fd; }
.audit-feed-summary { font-size: 12px; color: #64748b; margin-right: 12px; }
.audit-feed-toolbar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    padding: 14px 0 10px; border-bottom: 1px solid #f1f5f9; margin-bottom: 12px;
}
.audit-feed-search {
    flex: 1; min-width: 240px; padding: 8px 12px; font-size: 13px;
    border: 1px solid #d1d5db; border-radius: 6px; background: #fff; color: #111827; font-family: inherit;
}
.audit-feed-search:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.15); }
.audit-feed-filter {
    padding: 7px 10px; font-size: 13px; border: 1px solid #d1d5db; border-radius: 6px; background: #fff; color: #111827; font-family: inherit;
}
/* Phase G (13.05.2026): группа выбора периода аудита (мес/кв/год). */
.audit-feed-period-group {
    display: inline-flex; align-items: center; gap: 6px;
    margin-left: auto; padding: 4px 8px;
    background: #eef2ff; border: 1px solid #c7d2fe; border-radius: 8px;
}
.audit-feed-period-group .audit-feed-filter {
    border: 1px solid #c7d2fe; background: #fff;
}
.af-snapshot {
    display: inline-block; margin-left: 6px; padding: 1px 6px;
    font-size: 10.5px; font-weight: 600; color: #4338ca;
    background: #eef2ff; border: 1px solid #c7d2fe; border-radius: 4px;
}
body[data-theme="dark"] .audit-feed-period-group { background: #1e1b4b; border-color: #312e81; }
body[data-theme="dark"] .audit-feed-period-group .audit-feed-filter { background: #0f172a; border-color: #312e81; color: #e2e8f0; }
body[data-theme="dark"] .af-snapshot { background: #1e1b4b; border-color: #312e81; color: #c7d2fe; }

/* 23.05.2026 (Алекс): чекбоксы + сортировка + bulk-toolbar.
   Колонка чекбоксов слева; заголовки кликабельные; верхняя панель появляется при выборе. */
.audit-feed-bulkbar {
    position: sticky; top: 0; z-index: 10;
    display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
    margin: 0 0 10px; padding: 10px 14px;
    background: linear-gradient(180deg, #eff6ff, #dbeafe);
    border: 1px solid #93c5fd; border-radius: 8px;
    box-shadow: 0 2px 6px rgba(30,64,175,0.08);
}
.audit-feed-bulkbar .afbb-count { font-size: 13px; color: #1e3a8a; font-weight: 500; }
.audit-feed-bulkbar .afbb-count b { font-size: 15px; }
.audit-feed-bulkbar .afbb-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.audit-feed-bulkbar .af-asg-btn { padding: 5px 12px; font-size: 12px; }
body[data-theme="dark"] .audit-feed-bulkbar {
    background: linear-gradient(180deg, #0f172a, #1e293b);
    border-color: #1e40af; box-shadow: none;
}
body[data-theme="dark"] .audit-feed-bulkbar .afbb-count { color: #93c5fd; }

.af-col-check { width: 38px; padding-left: 12px !important; padding-right: 4px !important; }
.af-col-check input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; vertical-align: middle; }
.audit-feed-table thead th.af-col-check { cursor: default; }
.audit-feed-table tbody tr.af-row-selected { background: #eff6ff; }
.audit-feed-table tbody tr.af-row-selected:hover { background: #dbeafe; }
body[data-theme="dark"] .audit-feed-table tbody tr.af-row-selected { background: #1e293b; }
body[data-theme="dark"] .audit-feed-table tbody tr.af-row-selected:hover { background: #1e3a8a; }

.audit-feed-table thead th.af-sortable { cursor: pointer; user-select: none; }
.audit-feed-table thead th.af-sortable:hover { background: #e2e8f0; color: #1e293b; }
body[data-theme="dark"] .audit-feed-table thead th.af-sortable:hover { background: #374151; color: #f3f4f6; }
.af-sort-ind {
    display: inline-block; margin-left: 4px; font-size: 11px; font-weight: 700;
    color: #94a3b8; vertical-align: baseline;
}
.af-sort-ind.af-sort-asc, .af-sort-ind.af-sort-desc { color: #2563eb; }
body[data-theme="dark"] .af-sort-ind.af-sort-asc, body[data-theme="dark"] .af-sort-ind.af-sort-desc { color: #60a5fa; }

/* Phase H (13.05.2026): менеджерская работа над ошибкой — бэйджи и кнопки. */
.af-col-asg { width: 200px; min-width: 180px; }
.af-asg-pill {
    display: inline-block; padding: 2px 8px; border-radius: 999px;
    font-size: 11px; font-weight: 600; line-height: 1.45;
    background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0;
}
.af-asg-pill.af-asg-open        { background: #fef3c7; color: #92400e; border-color: #fcd34d; }
.af-asg-pill.af-asg-in_progress { background: #dbeafe; color: #1e3a8a; border-color: #93c5fd; }
.af-asg-pill.af-asg-snoozed     { background: #ede9fe; color: #5b21b6; border-color: #c4b5fd; }
.af-asg-pill.af-asg-ai          { background: #cffafe; color: #155e75; border-color: #67e8f9; }
.af-asg-pill.af-asg-auto        { background: #f3e8ff; color: #6b21a8; border-color: #d8b4fe; }
.af-asg-pill.af-asg-done        { background: #dcfce7; color: #14532d; border-color: #86efac; }
.af-asg-actions { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.af-asg-btn {
    padding: 3px 8px; font-size: 11px; line-height: 1.4;
    border: 1px solid #d1d5db; background: #fff; color: #374151;
    border-radius: 4px; cursor: pointer; font-family: inherit;
}
.af-asg-btn:hover { background: #f8fafc; border-color: #94a3b8; }
.af-asg-btn:disabled { opacity: 0.6; cursor: wait; }
.af-asg-btn-take   { border-color: #93c5fd; color: #1e3a8a; }
.af-asg-btn-take:hover { background: #dbeafe; }
.af-asg-btn-snooze { border-color: #c4b5fd; color: #5b21b6; }
.af-asg-btn-snooze:hover { background: #ede9fe; }
.af-asg-btn-ai     { border-color: #67e8f9; color: #155e75; }
.af-asg-btn-ai:hover { background: #cffafe; }
.af-asg-btn-auto   { border-color: #d8b4fe; color: #6b21a8; }
.af-asg-btn-auto:hover { background: #f3e8ff; }
.af-asg-btn-close  { border-color: #86efac; color: #14532d; }
.af-asg-btn-close:hover { background: #dcfce7; }
.af-asg-btn-reopen { border-color: #fbbf24; color: #92400e; }
.af-asg-btn-reopen:hover { background: #fef3c7; }
.af-asg-comment {
    margin-top: 6px; padding: 4px 8px; font-size: 11.5px; color: #475569;
    background: #f8fafc; border-left: 3px solid #cbd5e1; border-radius: 3px;
    word-break: break-word;
}

body[data-theme="dark"] .af-asg-pill           { background: #1e293b; color: #94a3b8; border-color: #334155; }
body[data-theme="dark"] .af-asg-pill.af-asg-open        { background: #422006; color: #fbbf24; border-color: #92400e; }
body[data-theme="dark"] .af-asg-pill.af-asg-in_progress { background: #1e3a8a; color: #93c5fd; border-color: #2563eb; }
body[data-theme="dark"] .af-asg-pill.af-asg-snoozed     { background: #2e1065; color: #c4b5fd; border-color: #6d28d9; }
body[data-theme="dark"] .af-asg-pill.af-asg-ai          { background: #083344; color: #67e8f9; border-color: #155e75; }
body[data-theme="dark"] .af-asg-pill.af-asg-auto        { background: #4c1d95; color: #d8b4fe; border-color: #7c3aed; }
body[data-theme="dark"] .af-asg-pill.af-asg-done        { background: #14532d; color: #86efac; border-color: #166534; }
body[data-theme="dark"] .af-asg-btn { background: #0f172a; border-color: #334155; color: #cbd5e1; }
body[data-theme="dark"] .af-asg-btn:hover { background: #1e293b; }
body[data-theme="dark"] .af-asg-comment { background: #0f172a; color: #94a3b8; border-left-color: #475569; }
.audit-feed-wrap {
    overflow-x: auto; padding-bottom: 28px;
    /* 23.05.2026: per-section панели сами рисуют рамку — обнуляем общую. */
    border: 0; border-radius: 0; background: transparent;
}

/* 23.05.2026 (Алекс): «расклеить по разделам» — каждая секция = собственная панель
   с шапкой (название + счётчик + локальный bulkbar) и собственной таблицей. */
.audit-section-panel {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .04);
    margin: 0 0 18px 0;
    overflow: hidden;
}
body[data-theme="dark"] .audit-section-panel {
    background: #0f172a; border-color: #1e293b; box-shadow: none;
}
.audit-section-head {
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
    padding: 12px 16px;
    background: linear-gradient(180deg, #f8fafc, #f1f5f9);
    border-bottom: 1px solid #e5e7eb;
}
body[data-theme="dark"] .audit-section-head {
    background: linear-gradient(180deg, #1e293b, #0f172a);
    border-bottom-color: #1e293b;
}
.audit-section-title {
    display: flex; align-items: baseline; gap: 10px;
    flex: 0 0 auto;
}
.audit-section-name {
    font-size: 15px; font-weight: 700; color: #1e293b; letter-spacing: -0.01em;
}
body[data-theme="dark"] .audit-section-name { color: #f1f5f9; }
.audit-section-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 28px; padding: 2px 10px; height: 22px;
    border-radius: 999px; background: #e2e8f0; color: #475569;
    font-size: 12px; font-weight: 700;
}
body[data-theme="dark"] .audit-section-count { background: #334155; color: #cbd5e1; }
.audit-section-bulkbar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    margin-left: auto;
    padding: 4px 10px;
    background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px;
}
body[data-theme="dark"] .audit-section-bulkbar { background: #1e293b; border-color: #1e40af; }
.audit-section-bulkbar .afbb-count { font-size: 12.5px; color: #1e3a8a; font-weight: 500; }
.audit-section-bulkbar .afbb-count b { font-size: 14px; }
body[data-theme="dark"] .audit-section-bulkbar .afbb-count { color: #93c5fd; }
.audit-section-bulkbar .afbb-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.audit-section-bulkbar .af-asg-btn { padding: 4px 10px; font-size: 11.5px; }
.audit-section-table-wrap {
    overflow-x: auto;
}
.audit-section-table-wrap .audit-feed-table { min-width: 1060px; }
.audit-section-table-wrap .audit-feed-table thead th {
    /* В per-section панели — sticky к шапке самой панели не нужен (короткий список),
       оставляем обычный header. */
    position: static;
}
/* Глобальный bulkbar 23.05.2026 — теперь только информационный (счётчик + Снять всё). */
.audit-feed-bulkbar-global { background: linear-gradient(180deg, #f1f5f9, #e2e8f0); border-color: #cbd5e1; }
body[data-theme="dark"] .audit-feed-bulkbar-global { background: linear-gradient(180deg, #1e293b, #0f172a); border-color: #334155; }
.audit-feed-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12.5px; min-width: 1180px; }
.audit-feed-table thead th {
    position: sticky; top: 0; z-index: 2; background: #f8fafc; color: #475569;
    font-weight: 600; text-align: left; padding: 9px 12px; border-bottom: 1px solid #e2e8f0; white-space: nowrap;
}
.audit-feed-table tbody td {
    padding: 9px 12px; border-bottom: 1px solid #f1f5f9; vertical-align: top; line-height: 1.4;
}
.audit-feed-table tbody tr.af-row { cursor: pointer; transition: background 0.1s; }
.audit-feed-table tbody tr.af-row:hover { background: #f8fafc; }
.af-col-status  { width: 130px; }
.af-col-org     { width: 220px; }
.af-col-section { width: 160px; color: #475569; }
.af-col-rule    { min-width: 320px; }
.af-col-periods { width: 200px; color: #334155; font-size: 11.5px; }
.af-col-when    { width: 160px; color: #94a3b8; }
.af-periods { white-space: normal; line-height: 1.35; }
.af-periods-empty { color: #cbd5e1; }
.af-confirm-btn {
    margin-top: 6px; padding: 4px 10px; font-size: 11.5px; font-weight: 600;
    background: #ecfdf5; border: 1px solid #6ee7b7; color: #047857; border-radius: 6px;
    cursor: pointer; transition: background 0.15s;
}
.af-confirm-btn:hover { background: #d1fae5; }
.af-confirm-btn:disabled { opacity: 0.6; cursor: wait; }
.audit-feed-pill {
    display: inline-block; padding: 2px 9px; border-radius: 12px; font-size: 11px; font-weight: 600;
    background: #e2e8f0; color: #475569;
}
.audit-feed-pill.st-error    { background: #fee2e2; color: #b91c1c; }
.audit-feed-pill.st-warning  { background: #fef3c7; color: #b45309; }
.audit-feed-pill.st-pending  { background: #e0f2fe; color: #0369a1; }
.af-org      { font-weight: 600; color: #0f172a; }
.af-inn      { display: inline-block; margin-top: 2px; font-size: 10.5px; color: #6b7280; font-family: 'Menlo','Monaco',monospace; background: #f3f4f6; padding: 1px 5px; border-radius: 3px; }
.af-rule-label { font-weight: 500; color: #be123c; }
.af-rule-id  { display: inline-block; margin-top: 2px; font-size: 10.5px; color: #6b7280; font-family: 'Menlo','Monaco',monospace; }
.af-msg      { margin-top: 4px; color: #475569; font-size: 12px; }
.af-unmapped { display: inline-block; margin-left: 8px; padding: 1px 7px; font-size: 10px; font-weight: 600; background: #fde68a; color: #92400e; border-radius: 10px; vertical-align: middle; }
.af-row-unmapped { background: #fffbeb; }
.af-row-unmapped:hover { background: #fef3c7 !important; }
.af-group-row td {
    background: #f1f5f9; font-weight: 700; color: #0f172a; padding: 9px 12px;
    border-top: 2px solid #cbd5e1;
}
.af-group-title { font-size: 13.5px; }
.af-group-count { display: inline-block; margin-left: 10px; font-size: 11px; color: #64748b; background: #e2e8f0; padding: 2px 8px; border-radius: 10px; font-weight: 500; }

body[data-theme="dark"] .audit-feed-wrap { background: #111827; border-color: #374151; }
body[data-theme="dark"] .audit-feed-table thead th { background: #1f2937; color: #cbd5e1; border-bottom-color: #374151; }
body[data-theme="dark"] .audit-feed-table tbody td { border-bottom-color: #1f2937; }
body[data-theme="dark"] .audit-feed-table tbody tr.af-row:hover { background: #1f2937; }
body[data-theme="dark"] .af-org { color: #f3f4f6; }
body[data-theme="dark"] .af-inn,
body[data-theme="dark"] .af-rule-id { background: #374151; color: #cbd5e1; }
body[data-theme="dark"] .af-group-row td { background: #1f2937; color: #f3f4f6; border-top-color: #4b5563; }
body[data-theme="dark"] .af-group-count { background: #374151; color: #cbd5e1; }
body[data-theme="dark"] .af-col-periods,
body[data-theme="dark"] .af-periods { color: #cbd5e1; }
body[data-theme="dark"] .af-periods-empty { color: #475569; }
body[data-theme="dark"] .af-confirm-btn { background: #064e3b; border-color: #047857; color: #6ee7b7; }
body[data-theme="dark"] .af-confirm-btn:hover { background: #065f46; }

/* ============================================================================
   Матрица «По клиентам и правилам» — Аудит-лента (Ульяна 19.05.2026).
   ============================================================================ */
.audit-by-client-wrap { background: #fff; border: 1px solid #e5e7eb; border-radius: 6px; }
.audit-by-client-table { border-collapse: separate; border-spacing: 0; font-size: 12px; }
.audit-by-client-table thead th {
    position: sticky; top: 0; z-index: 5;
    background: #f3f4f6; padding: 6px 4px; text-align: center; vertical-align: bottom;
    border-bottom: 2px solid #d1d5db; font-weight: 600; color: #374151; white-space: nowrap;
}
.audit-by-client-table thead th.abc-col-org { left: 0; z-index: 6; min-width: 220px; max-width: 260px; text-align: left; padding-left: 12px; }
.audit-by-client-table .abc-rule-head { min-width: 28px; max-width: 110px; padding: 6px 6px; }
.audit-by-client-table .abc-rule-head-section { font-size: 9px; color: #6b7280; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100px; }
.audit-by-client-table .abc-rule-head-label { font-size: 11px; font-weight: 600; color: #111827; max-width: 100px; white-space: normal; line-height: 1.2; word-break: break-word; }
.audit-by-client-table tbody th.abc-col-org {
    position: sticky; left: 0; z-index: 4;
    background: #fff; border-right: 1px solid #e5e7eb; border-bottom: 1px solid #f3f4f6;
    padding: 6px 10px; font-weight: 500; min-width: 220px; max-width: 260px; text-align: left;
}
.audit-by-client-table tbody tr:hover th.abc-col-org { background: #f9fafb; }
.audit-by-client-table tbody tr:hover .abc-cell { background-color: rgba(243,244,246,0.5); }
.abc-org-link { color: #1f2937; text-decoration: none; font-weight: 500; }
.abc-org-link:hover { color: #2563eb; text-decoration: underline; }
.abc-org-inn { font-size: 10px; color: #6b7280; margin-top: 2px; }
.abc-org-err-cnt { display: inline-block; margin-left: 6px; background: #fee2e2; color: #b91c1c; padding: 1px 6px; border-radius: 10px; font-size: 10px; font-weight: 600; }
.abc-cell { text-align: center; padding: 6px 4px; border-bottom: 1px solid #f3f4f6; font-weight: 600; font-size: 14px; cursor: help; }
.abc-cell.abc-ok      { color: #15803d; background: #f0fdf4; }
.abc-cell.abc-err     { color: #b91c1c; background: #fef2f2; }
.abc-cell.abc-warn    { color: #b45309; background: #fffbeb; }
.abc-cell.abc-na      { color: #9ca3af; background: #fff; }
.abc-cell.abc-pending { color: #6366f1; background: #eef2ff; }
.audit-by-client-legend { background: #f9fafb; border-bottom: 1px solid #e5e7eb; border-top-left-radius: 6px; border-top-right-radius: 6px; }

body[data-theme="dark"] .audit-by-client-wrap { background: #111827; border-color: #374151; }
body[data-theme="dark"] .audit-by-client-table thead th { background: #1f2937; color: #cbd5e1; border-bottom-color: #374151; }
body[data-theme="dark"] .audit-by-client-table .abc-rule-head-section { color: #9ca3af; }
body[data-theme="dark"] .audit-by-client-table .abc-rule-head-label { color: #e5e7eb; }
body[data-theme="dark"] .audit-by-client-table tbody th.abc-col-org { background: #111827; color: #f3f4f6; border-right-color: #374151; border-bottom-color: #1f2937; }
body[data-theme="dark"] .audit-by-client-table tbody tr:hover th.abc-col-org { background: #1f2937; }
body[data-theme="dark"] .abc-org-link { color: #e5e7eb; }
body[data-theme="dark"] .abc-org-link:hover { color: #60a5fa; }
body[data-theme="dark"] .abc-org-inn { color: #9ca3af; }
body[data-theme="dark"] .abc-cell { border-bottom-color: #1f2937; }
body[data-theme="dark"] .abc-cell.abc-ok      { color: #4ade80; background: #052e16; }
body[data-theme="dark"] .abc-cell.abc-err     { color: #fca5a5; background: #450a0a; }
body[data-theme="dark"] .abc-cell.abc-warn    { color: #fcd34d; background: #451a03; }
body[data-theme="dark"] .abc-cell.abc-na      { color: #6b7280; background: #111827; }
body[data-theme="dark"] .abc-cell.abc-pending { color: #a5b4fc; background: #1e1b4b; }
body[data-theme="dark"] .audit-by-client-legend { background: #1f2937; border-bottom-color: #374151; color: #9ca3af; }

/* ============================================================================
   Табличный вид реестра правил (13.05.2026) — 14 колонок из Excel заказчика.
   Контейнер #auditRulesContainer теперь имеет класс .audit-rules-table-wrap.
   ============================================================================ */
.audit-rules-ai-bar {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 0 8px;
}
.audit-rules-ai-input {
    flex: 1; min-width: 280px; padding: 9px 14px; font-size: 13px;
    border: 1px solid #c7d2fe; border-radius: 8px; background: #f5f7ff; color: #111827; font-family: inherit;
}
.audit-rules-ai-input:focus { outline: none; border-color: #4f46e5; box-shadow: 0 0 0 3px rgba(79,70,229,0.15); background: #fff; }
.audit-rules-ai-btn {
    padding: 9px 18px; font-size: 13px; font-weight: 600; border: none; border-radius: 8px;
    background: linear-gradient(135deg, #6366f1, #4f46e5); color: #fff; cursor: pointer;
}
.audit-rules-ai-btn:hover { filter: brightness(1.05); }
.audit-rules-ai-hint { font-size: 12px; color: #6b7280; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ai-hint-ok   { color: #4338ca; font-weight: 600; }
.ai-hint-expl { color: #4b5563; }
.ai-hint-err  { color: #b91c1c; font-weight: 600; }
.ai-hint-clear {
    border: 1px solid #c7d2fe; background: #eef2ff; color: #4338ca; font-size: 11px;
    padding: 2px 8px; border-radius: 10px; cursor: pointer; font-family: inherit;
}
.ai-hint-clear:hover { background: #e0e7ff; }
.ar-row-ai-match { background: #fef3c7 !important; }
.ar-row-ai-match:hover { background: #fde68a !important; }

/* Phase E — runtime_logic блок в карточке правила */
.audit-rule-runtime { border: 1px dashed #c7d2fe; background: #f5f7ff; border-radius: 8px; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.audit-rule-runtime-head { display: flex; align-items: center; gap: 12px; }
.audit-rule-runtime-toggle { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; color: #4338ca; }
.audit-rule-runtime-toggle input { width: 16px; height: 16px; cursor: pointer; }
.audit-rule-runtime-test { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 12.5px; }
.audit-rule-runtime-test label { font-weight: 500; color: #475569; }
.ar-test-inn { padding: 5px 9px; font-size: 12.5px; border: 1px solid #d1d5db; border-radius: 6px; font-family: 'Menlo','Monaco',monospace; min-width: 200px; }
.ar-test-btn { font-size: 12px !important; padding: 5px 10px !important; }
.ar-test-result { width: 100%; margin-top: 6px; font-size: 12px; }
.ar-test-loading { color: #6b7280; }
.ar-test-err     { color: #b91c1c; font-weight: 500; }
.ar-test-warn    { color: #b45309; font-weight: 500; }
.ar-test-block   { background: #fff; border-radius: 8px; padding: 10px 12px; border: 1px solid #e5e7eb; }
.ar-test-block.ok   { border-color: #86efac; background: #f0fdf4; }
.ar-test-block.diff { border-color: #fcd34d; background: #fffbeb; }
.ar-test-verdict { font-weight: 600; margin-bottom: 8px; }
.ar-test-table   { width: 100%; border-collapse: collapse; font-size: 12px; }
.ar-test-table th { text-align: left; padding: 4px 8px; background: #f8fafc; color: #475569; font-weight: 600; }
.ar-test-table td { padding: 4px 8px; border-top: 1px solid #f1f5f9; vertical-align: top; }
.ar-test-ctx     { margin-top: 8px; }
.ar-test-ctx summary { cursor: pointer; color: #6b7280; font-size: 11.5px; }
.ar-test-ctx pre  { background: #f8fafc; padding: 8px; border-radius: 6px; font-size: 11px; white-space: pre-wrap; word-break: break-all; max-height: 220px; overflow-y: auto; }

body[data-theme="dark"] .audit-rule-runtime { background: #1e293b; border-color: #4338ca; }
body[data-theme="dark"] .ar-test-block { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .ar-test-block.ok   { background: #064e3b; border-color: #047857; }
body[data-theme="dark"] .ar-test-block.diff { background: #422006; border-color: #b45309; }
body[data-theme="dark"] .ar-test-table th { background: #111827; color: #cbd5e1; }
body[data-theme="dark"] .ar-test-ctx pre { background: #111827; color: #cbd5e1; }

.audit-rules-table-wrap {
    overflow-x: auto; padding-bottom: 28px;
    border: 1px solid #e5e7eb; border-radius: 10px; background: #fff;
}
.audit-rules-table {
    width: 100%; border-collapse: separate; border-spacing: 0;
    font-size: 12.5px; color: #111827; min-width: 1900px;
}
.audit-rules-table thead th {
    position: sticky; top: 0; z-index: 2;
    background: #f8fafc; color: #475569; font-weight: 600; text-align: left;
    padding: 9px 10px; border-bottom: 1px solid #e2e8f0; white-space: nowrap;
}
.audit-rules-table thead th.ar-sortable {
    cursor: pointer; user-select: none;
}
.audit-rules-table thead th.ar-sortable:hover {
    background: #f1f5f9; color: #1e293b;
}
.audit-rules-table thead th .ar-sort-icon {
    display: inline-block; margin-left: 4px; opacity: 0.35; font-size: 10px; vertical-align: 1px;
}
.audit-rules-table thead th.ar-sort-asc .ar-sort-icon,
.audit-rules-table thead th.ar-sort-desc .ar-sort-icon {
    opacity: 1; color: #2563eb;
}
.audit-rules-table thead th.ar-sort-asc,
.audit-rules-table thead th.ar-sort-desc {
    background: #eff6ff; color: #1e3a8a;
}
body[data-theme="dark"] .audit-rules-table thead th.ar-sortable:hover {
    background: #2a2f3a; color: #e2e8f0;
}
body[data-theme="dark"] .audit-rules-table thead th.ar-sort-asc,
body[data-theme="dark"] .audit-rules-table thead th.ar-sort-desc {
    background: #1e293b; color: #93c5fd;
}
.audit-rules-table tbody td {
    padding: 8px 10px; border-bottom: 1px solid #f1f5f9; vertical-align: top;
    line-height: 1.35;
}
.audit-rules-table tbody tr.ar-row { cursor: pointer; transition: background 0.1s; }
.audit-rules-table tbody tr.ar-row:hover { background: #f8fafc; }
.audit-rules-table .col-block  { width: 130px; font-weight: 600; color: #1e293b; position: sticky; left: 0; background: inherit; }
.audit-rules-table tbody tr:hover .col-block { background: #f8fafc; }
.audit-rules-table .col-topic  { width: 220px; }
.audit-rules-table .col-aud    { width: 160px; color: #475569; }
.audit-rules-table .col-period { width: 110px; }
.audit-rules-table .col-if     { width: 240px; color: #334155; }
.audit-rules-table .col-then   { width: 180px; color: #334155; }
.audit-rules-table .col-else   { width: 180px; color: #334155; }
.audit-rules-table .col-err    { width: 180px; color: #be123c; }
.audit-rules-table .col-legal  { width: 180px; color: #475569; }
.audit-rules-table .col-notes  { width: 160px; color: #6b7280; }
.audit-rules-table .col-ai     { width: 150px; color: #4338ca; }
.audit-rules-table .col-status { width: 130px; }
.audit-rules-table .col-who    { width: 130px; color: #6b7280; }
.audit-rules-table .col-cnt    { width: 80px;  text-align: right; font-variant-numeric: tabular-nums; }
.ar-cell-topic { font-weight: 600; color: #0f172a; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ar-cell-id    { display: inline-block; margin-top: 3px; font-size: 10.5px; color: #6b7280; font-family: 'Menlo','Monaco',monospace; background: #f3f4f6; padding: 1px 5px; border-radius: 3px; }
.ar-dash       { color: #cbd5e1; }
.ar-ellipsis   { color: #94a3b8; }
.ar-row-svod   { color: #f59e0b; font-size: 13px; }
.ar-row-cond   { color: #7c3aed; font-size: 13px; }
.ar-who-date   { font-size: 10.5px; color: #94a3b8; margin-top: 2px; }

.ar-status-pill {
    display: inline-block; padding: 2px 9px; border-radius: 12px; font-size: 11px; font-weight: 600; white-space: nowrap;
    background: #e2e8f0; color: #475569;
}
.ar-status-pill.status-working        { background: #dcfce7; color: #15803d; }
.ar-status-pill.status-partial        { background: #fef3c7; color: #b45309; }
.ar-status-pill.status-broken         { background: #fee2e2; color: #b91c1c; }
.ar-status-pill.status-disabled       { background: #e2e8f0; color: #64748b; }
.ar-status-pill.status-needs_backend  { background: #fde68a; color: #92400e; }
.ar-status-pill.status-needs_director { background: #ddd6fe; color: #5b21b6; }

.ar-period-pill {
    display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 500; background: #eef2ff; color: #4338ca; white-space: nowrap;
}
.ar-period-pill.ar-period-daily     { background: #dbeafe; color: #1d4ed8; }
.ar-period-pill.ar-period-monthly   { background: #ddd6fe; color: #6d28d9; }
.ar-period-pill.ar-period-quarterly { background: #fef3c7; color: #b45309; }
.ar-period-pill.ar-period-yearly    { background: #fce7f3; color: #be185d; }
.ar-period-pill.ar-period-manual    { background: #e5e7eb; color: #4b5563; }
.ar-period-pill.ar-period-on_event  { background: #ccfbf1; color: #0f766e; }
.ar-period-pill.ar-period-none      { background: transparent; color: #cbd5e1; }

.ar-group-row td {
    background: #f1f5f9; font-weight: 700; color: #0f172a; padding: 10px 12px;
    border-top: 2px solid #cbd5e1; position: sticky; left: 0;
}
.ar-group-title   { font-size: 13.5px; }
.ar-group-count   { display: inline-block; margin-left: 10px; font-size: 11px; color: #64748b; background: #e2e8f0; padding: 2px 8px; border-radius: 10px; font-weight: 500; }
.ar-group-summary { display: inline-block; margin-left: 12px; font-size: 11px; color: #16a34a; font-weight: 500; }

/* Модалка редактирования правила (карточка _renderAuditRuleCard внутри). */
.audit-rule-modal-overlay {
    position: fixed; inset: 0; background: rgba(15,23,42,0.55); z-index: 9000;
    display: none; align-items: flex-start; justify-content: center; padding: 40px 20px; overflow-y: auto;
}
.audit-rule-modal-overlay.is-open { display: flex; }
body.audit-rule-modal-open { overflow: hidden; }
.audit-rule-modal {
    position: relative; width: 100%; max-width: 1080px; background: #fff;
    border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,0.25); padding: 18px 22px 22px;
}
.audit-rule-modal-close {
    position: absolute; top: 10px; right: 14px; width: 32px; height: 32px;
    border: none; background: transparent; font-size: 22px; line-height: 1; color: #64748b; cursor: pointer; border-radius: 6px;
}
.audit-rule-modal-close:hover { background: #f1f5f9; color: #111827; }
.audit-rule-modal-body .audit-rule-card { box-shadow: none; border: none; padding: 0; }

/* Доп. сетки для 6 новых полей в карточке-модалке. */
.audit-rule-grid2 { display: grid; grid-template-columns: 2fr 1fr; gap: 12px; }
.audit-rule-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
@media (max-width: 800px) {
    .audit-rule-grid2, .audit-rule-grid3 { grid-template-columns: 1fr; }
}

/* Тёмная тема */
body[data-theme="dark"] .audit-rules-ai-input { background: #1f2937; color: #f3f4f6; border-color: #4338ca; }
body[data-theme="dark"] .audit-rules-table-wrap { background: #111827; border-color: #374151; }
body[data-theme="dark"] .audit-rules-table { color: #f3f4f6; }
body[data-theme="dark"] .audit-rules-table thead th { background: #1f2937; color: #cbd5e1; border-bottom-color: #374151; }
body[data-theme="dark"] .audit-rules-table tbody td { border-bottom-color: #1f2937; }
body[data-theme="dark"] .audit-rules-table tbody tr.ar-row:hover { background: #1f2937; }
body[data-theme="dark"] .audit-rules-table .col-block { color: #f3f4f6; }
body[data-theme="dark"] .audit-rules-table tbody tr:hover .col-block { background: #1f2937; }
body[data-theme="dark"] .ar-cell-id { background: #374151; color: #cbd5e1; }
body[data-theme="dark"] .ar-group-row td { background: #1f2937; color: #f3f4f6; border-top-color: #4b5563; }
body[data-theme="dark"] .ar-group-count { background: #374151; color: #cbd5e1; }
body[data-theme="dark"] .audit-rule-modal { background: #1f2937; color: #f3f4f6; }
body[data-theme="dark"] .audit-rule-modal-close { color: #cbd5e1; }
body[data-theme="dark"] .audit-rule-modal-close:hover { background: #374151; color: #f3f4f6; }

.audit-rule-section {
    border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; overflow: hidden;
}
.audit-rule-section > summary {
    list-style: none; cursor: pointer; padding: 12px 16px; display: flex; align-items: center; gap: 12px;
    font-size: 15px; font-weight: 650; color: #0f172a; user-select: none;
}
.audit-rule-section > summary::-webkit-details-marker { display: none; }
.audit-rule-section > summary::before {
    content: '▸'; font-size: 12px; color: #94a3b8; transition: transform 0.15s; flex-shrink: 0;
}
.audit-rule-section[open] > summary::before { transform: rotate(90deg); }
.audit-rule-section > summary:hover { background: #f1f5f9; }
.audit-rule-section-title { flex-shrink: 0; }
.audit-rule-section-count { font-size: 12px; font-weight: 500; color: #64748b; background: #e2e8f0; padding: 2px 8px; border-radius: 10px; }
.audit-rule-section-summary { font-size: 12px; font-weight: 500; color: #16a34a; margin-left: auto; }
.audit-rule-section-summary.has-issue { color: #d97706; }
.audit-rule-section-body { display: flex; flex-direction: column; gap: 10px; padding: 4px 14px 16px; }

.audit-rule-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px 16px; box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.audit-rule-card:hover { border-color: #cbd5e1; }
.audit-rule-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid #f1f5f9; flex-wrap: wrap; }
.audit-rule-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.audit-rule-title h4 { margin: 0; font-size: 14px; font-weight: 600; color: #111827; }
.audit-rule-id { font-size: 11px; color: #6b7280; font-family: 'Menlo','Monaco',monospace; background: #f3f4f6; padding: 1px 6px; border-radius: 3px; }
.audit-rule-status-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.audit-rule-status-dot.status-working { background: #22c55e; }
.audit-rule-status-dot.status-partial { background: #f59e0b; }
.audit-rule-status-dot.status-broken { background: #ef4444; }
.audit-rule-status-dot.status-disabled { background: #94a3b8; }
.audit-rule-cond-badge { font-size: 10px; background: #ede9fe; color: #6d28d9; padding: 2px 7px; border-radius: 10px; font-weight: 500; }
.audit-rule-nav-badge { font-size: 10px; background: #e0f2fe; color: #0369a1; padding: 2px 7px; border-radius: 10px; font-weight: 500; }
.audit-rule-quick { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.audit-rule-quick .ar-status { padding: 5px 8px; font-size: 12px; border: 1px solid #d1d5db; border-radius: 6px; background: #fff; color: #111827; font-family: inherit; }
.audit-rule-svod-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #374151; cursor: pointer; white-space: nowrap; }
.audit-rule-svod-chk input { width: 15px; height: 15px; cursor: pointer; }
.audit-rule-body { display: flex; flex-direction: column; gap: 10px; padding-top: 10px; }
.audit-rule-field { display: flex; flex-direction: column; gap: 4px; }
.audit-rule-field > label { font-size: 12px; font-weight: 600; color: #374151; }
.audit-rule-field .ar-hint { font-weight: 400; color: #9ca3af; }
.audit-rule-body textarea, .audit-rule-body input[type="text"], .audit-rule-body input[type="number"] {
    width: 100%; box-sizing: border-box; padding: 7px 10px; font-size: 13px; border: 1px solid #d1d5db; border-radius: 5px; background: #fff; color: #111827; font-family: inherit;
}
.audit-rule-body textarea { resize: vertical; line-height: 1.55; }
.audit-rule-body .ar-logic { line-height: 1.6; }
.audit-rule-body textarea:focus, .audit-rule-body input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.15); }
.audit-rule-parsing { display: flex; flex-direction: column; gap: 6px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; padding: 10px 12px; }
.audit-rule-parsing-title { font-size: 12px; font-weight: 600; color: #475569; }
.audit-rule-params { display: flex; flex-direction: column; gap: 8px; background: #fefce8; border: 1px solid #fde68a; border-radius: 6px; padding: 10px 12px; }
.audit-rule-params-title { font-size: 12px; font-weight: 600; color: #854d0e; }
.audit-rule-param-row { display: flex; flex-direction: column; gap: 3px; padding: 6px 0; border-top: 1px dashed #fde68a; transition: background 0.3s; }
.audit-rule-param-row:first-of-type { border-top: none; }
.audit-rule-param-row.ar-param-saved { background: #ecfdf5; }
.ar-param-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ar-param-head label { font-size: 12px; font-weight: 600; color: #374151; }
.ar-param-key { font-size: 10px; color: #6b7280; font-family: 'Menlo','Monaco',monospace; background: #fff; padding: 1px 5px; border-radius: 3px; }
.ar-param-unit { color: #6b7280; font-weight: 400; }
.ar-param-wrap .ar-param-num { max-width: 220px; }
.ar-param-wrap .ar-param-json { font-family: 'Menlo','Monaco',monospace; font-size: 12px; background: #fff; }
.ar-param-toggle { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #374151; cursor: pointer; }
.ar-param-toggle input { width: 16px; height: 16px; cursor: pointer; }
.ar-param-desc { font-size: 11px; color: #6b7280; line-height: 1.45; }
.ar-param-legal { font-size: 11px; color: #57534e; }
.ar-param-missing { font-size: 12px; color: #b91c1c; font-style: italic; }
.audit-rule-ai { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 6px; padding: 10px 12px; }
.audit-rule-ai-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.audit-rule-ai-head > span { font-size: 12px; font-weight: 600; color: #166534; }
.ar-ai-btn { padding: 5px 12px; font-size: 12px; border: 1px solid #86efac; border-radius: 6px; background: #fff; color: #15803d; cursor: pointer; font-family: inherit; }
.ar-ai-btn:hover:not(:disabled) { background: #dcfce7; }
.ar-ai-btn:disabled { opacity: 0.6; cursor: default; }
.ar-ai-body { margin-top: 8px; font-size: 12px; color: #374151; }
.ar-ai-empty { color: #94a3b8; font-style: italic; }
.ar-ai-verdict { font-weight: 600; color: #166534; margin-bottom: 4px; }
.ar-ai-suggestions { margin: 4px 0 0; padding-left: 18px; line-height: 1.5; }
.ar-ai-meta { font-size: 10px; color: #9ca3af; margin-top: 6px; }
.audit-rule-topics { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12px; }
.audit-rule-topics-label { font-weight: 600; color: #475569; }
.ar-topic-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; font-size: 11px; border: 1px solid #c7d2fe; border-radius: 12px; background: #eef2ff; color: #4338ca; cursor: pointer; font-family: inherit; }
.ar-topic-chip:hover { background: #e0e7ff; }
.ar-topic-chip-st { color: #6366f1; opacity: 0.8; }
body[data-theme="dark"] .audit-rule-topics-label { color: #cbd5e1; }
body[data-theme="dark"] .ar-topic-chip { background: #1e1b4b; border-color: #4338ca; color: #c7d2fe; }
.audit-rule-footer { display: flex; align-items: center; gap: 10px; padding-top: 10px; border-top: 1px solid #f1f5f9; flex-wrap: wrap; }
.ar-history-btn { padding: 5px 10px; font-size: 11px; border: 1px solid #d1d5db; border-radius: 6px; background: #f8fafc; color: #475569; cursor: pointer; font-family: inherit; }
.ar-history-btn:hover { background: #f1f5f9; }
.audit-rule-meta { font-size: 11px; color: #6b7280; }
.ar-save-btn { margin-left: auto; padding: 6px 16px; font-size: 13px; transition: all 0.2s; }
.ar-save-btn.ar-save-ok { background: #10b981 !important; border-color: #10b981 !important; color: #fff !important; }
.ar-history { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #e2e8f0; overflow-x: auto; }
.ar-history-empty { font-size: 12px; color: #94a3b8; font-style: italic; }
.ar-history-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.ar-history-table th, .ar-history-table td { text-align: left; padding: 5px 8px; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.ar-history-table th { color: #6b7280; font-weight: 600; }
.ar-history-table .ar-h-old { color: #b91c1c; max-width: 280px; word-break: break-word; }
.ar-history-table .ar-h-new { color: #15803d; max-width: 280px; word-break: break-word; }
.ar-history-table code { font-family: 'Menlo','Monaco',monospace; background: #f3f4f6; padding: 1px 4px; border-radius: 3px; }

body[data-theme="dark"] .audit-rules-toolbar { border-bottom-color: #374151; }
body[data-theme="dark"] .audit-rules-search, body[data-theme="dark"] .audit-rules-filter { background: #111827; border-color: #374151; color: #f3f4f6; }
body[data-theme="dark"] .audit-rules-filter-chk, body[data-theme="dark"] .audit-rule-svod-chk { color: #d1d5db; }
body[data-theme="dark"] .audit-rules-expand-btn { background: #1f2937; border-color: #374151; color: #cbd5e1; }
body[data-theme="dark"] .audit-rule-section { background: #111827; border-color: #374151; }
body[data-theme="dark"] .audit-rule-section > summary { color: #f3f4f6; }
body[data-theme="dark"] .audit-rule-section > summary:hover { background: #1f2937; }
body[data-theme="dark"] .audit-rule-section-count { background: #374151; color: #cbd5e1; }
body[data-theme="dark"] .audit-rule-card { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .audit-rule-card:hover { border-color: #4b5563; }
body[data-theme="dark"] .audit-rule-head, body[data-theme="dark"] .audit-rule-footer { border-color: #374151; }
body[data-theme="dark"] .audit-rule-title h4 { color: #f3f4f6; }
body[data-theme="dark"] .audit-rule-id, body[data-theme="dark"] .ar-param-key { background: #111827; color: #9ca3af; }
body[data-theme="dark"] .audit-rule-field > label, body[data-theme="dark"] .ar-param-head label { color: #d1d5db; }
body[data-theme="dark"] .audit-rule-body textarea, body[data-theme="dark"] .audit-rule-body input, body[data-theme="dark"] .audit-rule-quick .ar-status { background: #111827; border-color: #374151; color: #f3f4f6; }
body[data-theme="dark"] .audit-rule-parsing { background: #0f172a; border-color: #334155; }
body[data-theme="dark"] .audit-rule-parsing-title { color: #94a3b8; }
body[data-theme="dark"] .audit-rule-params { background: #2a2410; border-color: #57430f; }
body[data-theme="dark"] .audit-rule-params-title { color: #fcd34d; }
body[data-theme="dark"] .audit-rule-param-row { border-top-color: #57430f; }
body[data-theme="dark"] .ar-param-desc { color: #9ca3af; }
body[data-theme="dark"] .audit-rule-ai { background: #0f1f15; border-color: #166534; }
body[data-theme="dark"] .ar-ai-body { color: #d1d5db; }
body[data-theme="dark"] .ar-ai-btn { background: #1f2937; border-color: #166534; color: #4ade80; }
body[data-theme="dark"] .ar-history-table th, body[data-theme="dark"] .ar-history-table td { border-bottom-color: #374151; }
body[data-theme="dark"] .ar-history-table code { background: #111827; }
body[data-theme="dark"] .ar-history-btn { background: #1f2937; border-color: #374151; color: #cbd5e1; }

/* ============================================================================
   ПЕРЕКЛЮЧАТЕЛЬ «ПАРАМЕТРЫ / ТЕМЫ»
============================================================================ */
.rules-view-switcher {
    display: inline-flex;
    gap: 4px;
    background: #f1f5f9;
    padding: 4px;
    border-radius: 10px;
    margin: 16px 0 8px;
    border: 1px solid #e2e8f0;
    align-self: flex-start;
}
.rules-view-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    border: none;
    background: transparent;
    color: #64748b;
    font-size: 14px;
    font-weight: 500;
    border-radius: 7px;
    cursor: pointer;
    transition: all 0.15s ease;
    font-family: inherit;
}
.rules-view-btn:hover { color: #334155; background: rgba(255,255,255,0.5); }
.rules-view-btn.active {
    background: #ffffff;
    color: #0f172a;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.05);
}
.rules-view-btn svg { flex-shrink: 0; }
.rules-view-count {
    background: #e2e8f0;
    color: #475569;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 10px;
    min-width: 22px;
    text-align: center;
}
.rules-view-btn.active .rules-view-count { background: #dbeafe; color: #1e40af; }

.rules-view { display: flex; flex-direction: column; gap: 8px; }

/* ============================================================================
   СЕКЦИЯ «ТЕМЫ» — двухколоночный layout
============================================================================ */
.topics-layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 20px;
    margin-top: 16px;
    min-height: 600px;
}
.topics-sidebar {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 260px);
    overflow: hidden;
}
.topics-sidebar-header {
    padding: 12px;
    border-bottom: 1px solid #f1f5f9;
}
.topics-search {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    box-sizing: border-box;
}
.topics-search:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.15); }

.topics-list { flex: 1; overflow-y: auto; padding: 8px 0; }
.topic-item {
    padding: 12px 14px;
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: background 0.12s ease;
}
.topic-item:hover { background: #f9fafb; }
.topic-item.active {
    background: #eff6ff;
    border-left-color: #3b82f6;
}
.topic-item-title {
    font-size: 13px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 4px;
    line-height: 1.3;
}
.topic-item-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 11px;
    flex-wrap: wrap;
}
.topic-item-summary {
    font-size: 11px;
    color: #6b7280;
    margin-top: 6px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.topic-comments-count, .topic-rules-count {
    color: #6b7280;
    font-size: 11px;
}

.topic-status {
    display: inline-block;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 10px;
}
.topic-status-new { background: #f3f4f6; color: #4b5563; }
.topic-status-discussing { background: #dbeafe; color: #1e40af; }
.topic-status-approved { background: #d1fae5; color: #065f46; }
.topic-status-implemented { background: #ede9fe; color: #5b21b6; }

/* Главная область темы */
.topics-main {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    min-height: 500px;
    overflow-y: auto;
    max-height: calc(100vh - 260px);
}
.topics-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 500px;
    color: #9ca3af;
    gap: 14px;
}
.topics-placeholder p { margin: 0; font-size: 14px; }

.topic-detail { padding: 24px 32px; display: flex; flex-direction: column; gap: 20px; }
.topic-detail-header h2 { margin: 0 0 8px 0; font-size: 22px; color: #0f172a; }
.topic-summary { font-size: 14px; color: #64748b; margin: 0 0 12px 0; line-height: 1.5; }

.topic-controls {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 0;
    border-top: 1px solid #f1f5f9;
    border-bottom: 1px solid #f1f5f9;
    flex-wrap: wrap;
}
.topic-status-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #475569;
}
.topic-status-label select {
    padding: 5px 10px;
    border: 1px solid #d1d5db;
    border-radius: 5px;
    background: #ffffff;
    font-size: 13px;
    cursor: pointer;
}
.topic-status-badge {
    display: inline-block;
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 500;
    border-radius: 10px;
}
.topic-status-badge.topic-status-new { background: #f3f4f6; color: #4b5563; }
.topic-status-badge.topic-status-discussing { background: #dbeafe; color: #1e40af; }
.topic-status-badge.topic-status-approved { background: #d1fae5; color: #065f46; }
.topic-status-badge.topic-status-implemented { background: #ede9fe; color: #5b21b6; }

.topic-linked-rules {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.topic-linked-label { font-size: 13px; color: #64748b; }
.topic-rule-chip {
    padding: 4px 10px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    border-radius: 12px;
    font-size: 12px;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.12s;
}
.topic-rule-chip:hover { background: #dbeafe; border-color: #93c5fd; }

/* Markdown content */
.topic-content {
    font-size: 14px;
    line-height: 1.65;
    color: #1f2937;
}
.topic-h2 { font-size: 18px; margin: 24px 0 10px 0; color: #0f172a; padding-bottom: 6px; border-bottom: 1px solid #f1f5f9; }
.topic-h3 { font-size: 15px; margin: 18px 0 8px 0; color: #0f172a; }
.topic-content p { margin: 0 0 10px 0; }
.topic-ul, .topic-ol { margin: 0 0 10px 0; padding-left: 22px; }
.topic-ul li, .topic-ol li { margin: 4px 0; }
.topic-content code {
    background: #f3f4f6;
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 12px;
    font-family: 'Menlo', monospace;
    color: #be123c;
}
.topic-content strong { color: #0f172a; }
.topic-quote {
    border-left: 3px solid #cbd5e1;
    padding: 6px 12px;
    margin: 10px 0;
    color: #475569;
    background: #f8fafc;
    font-style: italic;
}
.topic-table {
    width: 100%;
    border-collapse: collapse;
    margin: 12px 0;
    font-size: 13px;
}
.topic-table th, .topic-table td {
    padding: 8px 12px;
    border: 1px solid #e5e7eb;
    text-align: left;
    vertical-align: top;
}
.topic-table th { background: #f9fafb; font-weight: 600; color: #374151; }

.topic-edit-btn {
    margin-top: 12px;
    padding: 7px 14px;
    border: 1px solid #d1d5db;
    background: #ffffff;
    color: #374151;
    border-radius: 5px;
    font-size: 13px;
    cursor: pointer;
    font-family: inherit;
}
.topic-edit-btn:hover { background: #f9fafb; border-color: #9ca3af; }

.topic-content-editor {
    width: 100%;
    padding: 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-family: 'Menlo', monospace;
    font-size: 12px;
    line-height: 1.6;
    box-sizing: border-box;
    resize: vertical;
    min-height: 400px;
}
.topic-edit-actions { margin-top: 10px; display: flex; gap: 8px; }

/* Комментарии */
.topic-comments-section { border-top: 1px solid #f1f5f9; padding-top: 16px; }
.topic-comments-section h3 { margin: 0 0 12px 0; font-size: 15px; color: #0f172a; }
.topic-comments-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.topic-no-comments { font-size: 13px; color: #9ca3af; font-style: italic; padding: 10px 0; }
.topic-comment {
    background: #f9fafb;
    border: 1px solid #f1f5f9;
    border-radius: 6px;
    padding: 10px 14px;
}
.topic-comment-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    font-size: 12px;
}
.topic-comment-header strong { color: #0f172a; }
.topic-comment-date { color: #9ca3af; }
.topic-comment-delete {
    margin-left: auto;
    background: transparent;
    border: none;
    color: #9ca3af;
    font-size: 18px;
    cursor: pointer;
    padding: 0 6px;
    line-height: 1;
}
.topic-comment-delete:hover { color: #ef4444; }
.topic-comment-text { font-size: 13px; line-height: 1.55; color: #1f2937; }

.topic-comment-compose {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.topic-comment-compose textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
    box-sizing: border-box;
}
.topic-comment-compose textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.15); }
.topic-comment-compose button { align-self: flex-start; }

.topic-detail-footer {
    font-size: 11px;
    color: #9ca3af;
    padding-top: 10px;
    border-top: 1px solid #f1f5f9;
}

/* Dark theme */
body[data-theme="dark"] .rules-view-switcher { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .rules-view-btn { color: #9ca3af; }
body[data-theme="dark"] .rules-view-btn:hover { color: #e5e7eb; background: rgba(255,255,255,0.04); }
body[data-theme="dark"] .rules-view-btn.active { background: #111827; color: #f3f4f6; }
body[data-theme="dark"] .rules-view-count { background: #374151; color: #d1d5db; }
body[data-theme="dark"] .rules-view-btn.active .rules-view-count { background: #1e3a8a; color: #dbeafe; }
body[data-theme="dark"] .topics-sidebar,
body[data-theme="dark"] .topics-main { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .topics-sidebar-header { border-bottom-color: #374151; }
body[data-theme="dark"] .topics-search { background: #111827; border-color: #374151; color: #f3f4f6; }
body[data-theme="dark"] .topic-item:hover { background: #111827; }
body[data-theme="dark"] .topic-item.active { background: #1e3a8a33; border-left-color: #60a5fa; }
body[data-theme="dark"] .topic-item-title { color: #f3f4f6; }
body[data-theme="dark"] .topic-item-summary { color: #9ca3af; }
body[data-theme="dark"] .topic-detail-header h2 { color: #f3f4f6; }
body[data-theme="dark"] .topic-summary { color: #9ca3af; }
body[data-theme="dark"] .topic-controls { border-color: #374151; }
body[data-theme="dark"] .topic-status-label { color: #d1d5db; }
body[data-theme="dark"] .topic-status-label select { background: #111827; border-color: #374151; color: #f3f4f6; }
body[data-theme="dark"] .topic-rule-chip { background: #1e3a8a33; border-color: #1e40af; color: #93c5fd; }
body[data-theme="dark"] .topic-rule-chip:hover { background: #1e3a8a55; }
body[data-theme="dark"] .topic-content { color: #e5e7eb; }
body[data-theme="dark"] .topic-h2, body[data-theme="dark"] .topic-h3 { color: #f3f4f6; border-bottom-color: #374151; }
body[data-theme="dark"] .topic-content code { background: #111827; color: #fca5a5; }
body[data-theme="dark"] .topic-content strong { color: #f9fafb; }
body[data-theme="dark"] .topic-quote { background: #111827; border-left-color: #4b5563; color: #d1d5db; }
body[data-theme="dark"] .topic-table th { background: #111827; color: #d1d5db; }
body[data-theme="dark"] .topic-table th, body[data-theme="dark"] .topic-table td { border-color: #374151; }
body[data-theme="dark"] .topic-edit-btn { background: #111827; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .topic-edit-btn:hover { background: #1f2937; }
body[data-theme="dark"] .topic-content-editor { background: #111827; border-color: #374151; color: #f3f4f6; }
body[data-theme="dark"] .topic-comments-section { border-top-color: #374151; }
body[data-theme="dark"] .topic-comments-section h3 { color: #f3f4f6; }
body[data-theme="dark"] .topic-comment { background: #111827; border-color: #374151; }
body[data-theme="dark"] .topic-comment-header strong { color: #f3f4f6; }
body[data-theme="dark"] .topic-comment-text { color: #e5e7eb; }
body[data-theme="dark"] .topic-comment-compose textarea { background: #111827; border-color: #374151; color: #f3f4f6; }
body[data-theme="dark"] .topic-status-new { background: #374151; color: #d1d5db; }
body[data-theme="dark"] .topic-status-discussing { background: #1e3a8a; color: #dbeafe; }
body[data-theme="dark"] .topic-status-approved { background: #065f46; color: #d1fae5; }
body[data-theme="dark"] .topic-status-implemented { background: #5b21b6; color: #ede9fe; }
body[data-theme="dark"] .topic-detail-footer { color: #9ca3af; border-top-color: #374151; }

/* ========== NAV DROPDOWN "Другое" ========== */
.nav-dropdown {
    position: relative;
    display: inline-block;
}

.nav-dropdown-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.nav-dropdown-btn .nav-dropdown-chevron {
    opacity: 0.65;
    transition: transform var(--transition);
}

.nav-dropdown.open .nav-dropdown-btn .nav-dropdown-chevron,
.nav-dropdown:hover .nav-dropdown-btn .nav-dropdown-chevron {
    transform: rotate(180deg);
    opacity: 1;
}

.nav-dropdown-menu {
    position: absolute;
    top: 100%;
    right: 0;
    min-width: 200px;
    margin-top: 6px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12), 0 4px 10px rgba(15, 23, 42, 0.06);
    padding: 6px;
    display: none;
    z-index: 1000;
    animation: navDropdownIn 0.14s ease-out;
}

@keyframes navDropdownIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Показ по hover и по клику (класс .open) */
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu {
    display: block;
}

/* Невидимый "мост" чтобы меню не закрывалось при переходе мыши от кнопки к пунктам */
.nav-dropdown-menu::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    height: 8px;
}

.nav-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 12px;
    background: transparent;
    border: none;
    border-radius: 7px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--text-color, #1f2937);
    cursor: pointer;
    text-align: left;
    transition: background var(--transition), color var(--transition);
    font-family: inherit;
}

.nav-dropdown-item + .nav-dropdown-item {
    margin-top: 2px;
}

.nav-dropdown-item:hover {
    background: var(--hover-bg, #f3f4f6);
    color: var(--primary-color, #074783);
}

.nav-dropdown-item .nav-dropdown-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: var(--text-muted, #6b7280);
    flex-shrink: 0;
}

.nav-dropdown-item:hover .nav-dropdown-icon {
    color: var(--primary-color, #074783);
}

.nav-dropdown-item-admin {
    color: var(--danger-color, #dc2626);
}

.nav-dropdown-item-admin .nav-dropdown-icon {
    color: var(--danger-color, #dc2626);
}

.nav-dropdown-item-admin:hover {
    background: #fce8e6;
    color: var(--danger-color, #dc2626);
}

/* Dark mode для dropdown */
body[data-theme="dark"] .nav-dropdown-menu {
    background: #1f2937;
    border-color: #374151;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5), 0 4px 10px rgba(0, 0, 0, 0.3);
}

body[data-theme="dark"] .nav-dropdown-item {
    color: #e5e7eb;
}

body[data-theme="dark"] .nav-dropdown-item:hover {
    background: #374151;
    color: #93c5fd;
}

body[data-theme="dark"] .nav-dropdown-item-admin:hover {
    background: rgba(248, 113, 113, 0.15);
    color: #fca5a5;
}

body[data-theme="dark"] .nav-dropdown-item .nav-dropdown-icon {
    color: #9ca3af;
}

/* ========== ВКЛАДКА "АКТУАЛЬНОЕ" ========== */
:root {
    --seg-done : #10b981;
    --seg-err  : #ef4444;
    --seg-prog : #f59e0b;
    --seg-new  : #4f46e5;
    --seg-pause: #94a3b8;
    --seg-empty: #e2e8f0;
}

.actual-table th,
.actual-table td {
    vertical-align: middle;
}

/* Центрирование колонок "Готовность" и "Обновлено" */
.actual-table th.actual-col-center,
.actual-table td.actual-col-center {
    text-align: center;
}

.actual-filter {
    display: inline-flex;
    align-items: center;
    flex: 1;
    min-width: 260px;
    max-width: 520px;
}

.actual-search-input {
    width: 100%;
    padding: 9px 14px;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: var(--radius);
    font-size: 0.85rem;
    font-family: inherit;
    background: var(--input-bg, #fff);
    color: var(--text-color, #1f2937);
    outline: none;
    line-height: 1.2;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.actual-search-input::placeholder {
    color: var(--text-muted, #9ca3af);
}

.actual-search-input:focus {
    border-color: var(--primary-color, #074783);
    box-shadow: 0 0 0 3px rgba(7, 71, 131, 0.1);
}

/* Индикатор загрузки для кнопки обновления */
#actualTab .btn-secondary.is-loading {
    opacity: 0.6;
    cursor: wait;
}
#actualTab .btn-secondary.is-loading svg {
    animation: spinRefresh 0.9s linear infinite;
}
@keyframes spinRefresh {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.actual-idx {
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: var(--text-muted, #6b7280);
    font-size: 0.82rem;
}

.actual-org-name {
    font-weight: 600;
    color: var(--text-color, #1f2937);
    font-size: 0.88rem;
    letter-spacing: -0.005em;
}

.actual-org-inn {
    margin-top: 2px;
    font-size: 0.78rem;
    color: var(--text-muted, #6b7280);
    font-family: 'JetBrains Mono', monospace;
}

.actual-row { cursor: pointer; }
.actual-row:hover { background: var(--hover-bg, #f9fafb) !important; }
.actual-row.has-error td:first-child {
    box-shadow: inset 3px 0 0 var(--seg-err);
}

/* Сегментные полоски */
.segs-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-width: 520px;
}

.segs {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    gap: 3px;
    width: 100%;
}

.seg {
    position: relative;
    height: 30px;
    border-radius: 6px;
    background: var(--seg-empty);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    border: 1px solid transparent;
    transition: transform 0.12s ease, border-color 0.12s ease;
}

.seg:hover {
    transform: translateY(-1px);
    border-color: rgba(7, 71, 131, 0.35);
}

.seg .bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 6px;
}

.seg.done  .bar { background: var(--seg-done);  height: 100%; }
.seg.err   .bar { background: var(--seg-err);   height: 100%; }
.seg.prog  .bar { background: var(--seg-prog);  height: 100%; }
.seg.new   .bar { background: var(--seg-new);   height: 30%; }
.seg.pause .bar { background: var(--seg-pause); height: 50%; }
.seg.empty .bar { background: transparent; }

/* Tooltip поверх сегмента */
.seg[data-tip]::after {
    content: attr(data-tip);
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: #0b1220;
    color: #fff;
    padding: 5px 8px;
    border-radius: 6px;
    font-size: 11px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.1s ease;
    z-index: 10;
    font-weight: 500;
}
.seg[data-tip]:hover::after { opacity: 1; }

.segs-labels {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    gap: 3px;
    font-size: 9px;
    color: var(--text-muted, #6b7280);
    text-align: center;
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.segs-labels > div {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 1px;
}

/* Метрика готовности: "X/9 + progress bar" */
.ok-ratio {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--text-muted, #6b7280);
}
.ok-ratio b {
    font-variant-numeric: tabular-nums;
    color: #065f46;
    font-weight: 700;
    font-size: 12px;
}
.ok-ratio b.err { color: #991b1b; }
.ok-ratio .ratio-bar {
    flex: 1;
    height: 4px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
    min-width: 60px;
    max-width: 140px;
}
.ok-ratio .ratio-fill {
    height: 100%;
    background: linear-gradient(90deg, #10b981, #34d399);
    border-radius: 999px;
}

.actual-last {
    font-size: 0.8rem;
    color: var(--text-muted, #4b5563);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.actual-details-row > td {
    background: var(--hover-bg, #f9fafb);
    padding: 12px 16px;
    border-top: 0;
}

.actual-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}

.actual-detail-row {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto;
    gap: 6px 10px;
    align-items: center;
    padding: 8px 10px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
}

.actual-detail-name {
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--text-color, #1f2937);
}

.actual-detail-status {
    justify-self: end;
}

.actual-detail-time {
    grid-column: 1 / -1;
    font-size: 0.75rem;
    color: var(--text-muted, #6b7280);
    font-variant-numeric: tabular-nums;
}

.actual-detail-log {
    grid-column: 1 / -1;
    font-size: 0.74rem;
    color: #b91c1c;
    background: #fef2f2;
    border-radius: 6px;
    padding: 6px 8px;
    font-family: 'JetBrains Mono', monospace;
    word-break: break-word;
    max-height: 80px;
    overflow-y: auto;
}

/* Dark mode для "Актуальное" */
body[data-theme="dark"] .actual-search-input {
    background: #1f2937;
    border-color: #374151;
    color: #e5e7eb;
}
body[data-theme="dark"] .actual-search-input:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}
body[data-theme="dark"] .actual-org-name { color: #f3f4f6; }
body[data-theme="dark"] .actual-org-inn { color: #9ca3af; }

body[data-theme="dark"] .seg { background: #374151; }
body[data-theme="dark"] .ok-ratio .ratio-bar { background: #374151; }
body[data-theme="dark"] .ok-ratio b { color: #a7f3d0; }
body[data-theme="dark"] .ok-ratio b.err { color: #fca5a5; }

body[data-theme="dark"] .actual-details-row > td { background: #111827; }
body[data-theme="dark"] .actual-detail-row {
    background: #1f2937;
    border-color: #374151;
}
body[data-theme="dark"] .actual-detail-name { color: #f3f4f6; }
body[data-theme="dark"] .actual-detail-time { color: #9ca3af; }
body[data-theme="dark"] .actual-detail-log {
    background: rgba(127, 29, 29, 0.3);
    color: #fca5a5;
}
/* ========== /ВКЛАДКА "АКТУАЛЬНОЕ" ========== */

/* ========== ПРАВИЛА+ТЕМЫ — обогащение (22.04.2026) ========== */
/* Источник данных, период обновления, затрагивает разделы, условия */

/* Новый статус — "Не принято" */
.topic-status-rejected { background: #fee2e2; color: #991b1b; }
.topic-status-badge.topic-status-rejected { background: #fee2e2; color: #991b1b; }

/* Бейдж раздела орг-ции в списке тем */
.topic-section-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
    background: #f0f9ff;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

/* Label «Раздел» в хедере темы */
.topic-section-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #475569;
}
.topic-section-label select {
    padding: 4px 8px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    background: #ffffff;
    font-size: 13px;
    cursor: pointer;
}

/* --- Мета-блок (источник / период / affects) --- в карточке правила и в теме */
.rule-meta-box,
.topic-meta-box,
.topic-conditions-box,
.topic-example-box {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px 14px;
    margin-top: 8px;
}
.topic-meta-section,
.topic-conditions-section,
.topic-example-section { margin: 0; }

.rule-meta-title,
.topic-meta-title {
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rule-meta-row {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 10px;
    align-items: center;
    margin-bottom: 8px;
}
.rule-meta-row label {
    font-size: 12px;
    color: #64748b;
    font-weight: 500;
}
.rule-meta-input,
.topic-meta-input {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    font-size: 13px;
    background: #ffffff;
    color: #1e293b;
}
.rule-meta-input:focus,
.topic-meta-input:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.12);
}

.topic-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.topic-meta-grid > div { display: flex; flex-direction: column; gap: 4px; }
.topic-meta-grid label {
    font-size: 12px;
    color: #64748b;
    font-weight: 500;
}
.topic-meta-affects {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #e2e8f0;
}
.topic-meta-affects > label {
    display: block;
    font-size: 12px;
    color: #64748b;
    font-weight: 500;
    margin-bottom: 6px;
}

/* --- Affects chips --- */
.affects-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.affects-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    font-size: 12px;
    cursor: pointer;
    background: #ffffff;
    color: #475569;
    transition: all 0.12s;
    user-select: none;
}
.affects-chip input[type="checkbox"] {
    margin: 0;
    width: 12px;
    height: 12px;
    accent-color: #3b82f6;
    cursor: pointer;
}
.affects-chip:hover { border-color: #94a3b8; }
.affects-chip.selected {
    background: #eff6ff;
    border-color: #60a5fa;
    color: #1e40af;
    font-weight: 500;
}

/* --- Конструктор условий --- */
.topic-conditions-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.topic-conditions-grid > div { display: flex; flex-direction: column; gap: 4px; }
.topic-conditions-grid label {
    font-size: 12px;
    color: #64748b;
    font-weight: 500;
}
.topic-conditions-grid select,
.topic-conditions-grid input {
    padding: 6px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    font-size: 13px;
    background: #ffffff;
    color: #1e293b;
}
.topic-conditions-grid select:focus,
.topic-conditions-grid input:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.12);
}
.topic-conditions-hint {
    margin-top: 10px;
    padding: 8px 10px;
    background: #eff6ff;
    border-left: 3px solid #60a5fa;
    border-radius: 4px;
    font-size: 12px;
    color: #1e3a8a;
    line-height: 1.45;
}

/* --- Пример-организация --- */
.topic-example-row {
    display: flex;
    align-items: center;
    gap: 10px;
}
.topic-example-row .topic-meta-input {
    max-width: 260px;
}
.topic-example-name {
    font-size: 13px;
    color: #065f46;
    font-weight: 500;
}
.topic-example-hint {
    margin-top: 8px;
    font-size: 12px;
    color: #64748b;
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .topic-conditions-grid { grid-template-columns: repeat(2, 1fr); }
    .topic-meta-grid { grid-template-columns: 1fr; }
    .rule-meta-row { grid-template-columns: 1fr; }
}

/* --- Dark theme --- */
body[data-theme="dark"] .rule-meta-box,
body[data-theme="dark"] .topic-meta-box,
body[data-theme="dark"] .topic-conditions-box,
body[data-theme="dark"] .topic-example-box {
    background: #111827;
    border-color: #374151;
}
body[data-theme="dark"] .rule-meta-input,
body[data-theme="dark"] .topic-meta-input,
body[data-theme="dark"] .topic-conditions-grid select,
body[data-theme="dark"] .topic-conditions-grid input,
body[data-theme="dark"] .topic-section-label select {
    background: #1f2937;
    border-color: #4b5563;
    color: #e5e7eb;
}
body[data-theme="dark"] .affects-chip {
    background: #1f2937;
    border-color: #4b5563;
    color: #cbd5e1;
}
body[data-theme="dark"] .affects-chip.selected {
    background: #1e3a8a;
    border-color: #3b82f6;
    color: #dbeafe;
}
body[data-theme="dark"] .topic-section-badge {
    background: rgba(14, 165, 233, 0.15);
    color: #7dd3fc;
    border-color: #0284c7;
}
body[data-theme="dark"] .topic-conditions-hint {
    background: rgba(59, 130, 246, 0.12);
    color: #dbeafe;
    border-left-color: #60a5fa;
}
/* ========== /ПРАВИЛА+ТЕМЫ — обогащение ========== */

/* ========== ФАЗА 2 (22.04.2026): карта + фильтры + вкладка «Правила» в орг-ции ========== */

/* --- Фильтры списка тем --- */
.topics-filters {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    margin-top: 8px;
}
.topics-filter {
    padding: 5px 8px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 12px;
    background: #ffffff;
    color: #1e293b;
    cursor: pointer;
}
.topics-filter:focus { outline: none; border-color: #3b82f6; }
body[data-theme="dark"] .topics-filter { background: #1f2937; border-color: #4b5563; color: #e5e7eb; }

/* --- Привязанные правила (чипы с × + picker) --- */
.topic-linked-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.topic-rule-chip-wrap {
    display: inline-flex;
    align-items: stretch;
    border-radius: 12px;
    overflow: hidden;
}
.topic-rule-chip-wrap .topic-rule-chip {
    border-radius: 0;
    border-right: none;
}
.topic-rule-chip-remove {
    padding: 4px 8px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-left: none;
    color: #991b1b;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    font-family: inherit;
    font-weight: 600;
}
.topic-rule-chip-remove:hover { background: #fee2e2; border-color: #fca5a5; }

.topic-linked-add-btn {
    padding: 4px 10px;
    background: transparent;
    border: 1px dashed #94a3b8;
    border-radius: 12px;
    font-size: 12px;
    color: #475569;
    cursor: pointer;
    font-family: inherit;
}
.topic-linked-add-btn:hover { background: #f1f5f9; border-color: #64748b; }

.topic-linked-picker {
    margin-top: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px;
    background: #f8fafc;
}
.topic-linked-search {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    font-size: 13px;
    margin-bottom: 8px;
    background: #ffffff;
}
.topic-linked-picker-list {
    max-height: 260px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.topic-linked-picker-item {
    display: flex;
    flex-direction: column;
    padding: 6px 10px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.12s;
}
.topic-linked-picker-item:hover { background: #eff6ff; border-color: #93c5fd; }
.topic-linked-picker-label { font-size: 13px; color: #1e293b; font-weight: 500; }
.topic-linked-picker-key {
    font-size: 11px;
    color: #64748b;
    font-family: 'Menlo', monospace;
    margin-top: 2px;
}
.topic-linked-empty {
    padding: 12px;
    text-align: center;
    font-size: 13px;
    color: #94a3b8;
}
body[data-theme="dark"] .topic-linked-picker { background: #111827; border-color: #374151; }
body[data-theme="dark"] .topic-linked-search { background: #1f2937; border-color: #4b5563; color: #e5e7eb; }
body[data-theme="dark"] .topic-linked-picker-item { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .topic-linked-picker-item:hover { background: #1e3a8a; border-color: #3b82f6; }
body[data-theme="dark"] .topic-linked-picker-label { color: #e5e7eb; }
body[data-theme="dark"] .topic-linked-picker-key { color: #9ca3af; }
body[data-theme="dark"] .topic-linked-add-btn { color: #cbd5e1; border-color: #4b5563; }
body[data-theme="dark"] .topic-linked-add-btn:hover { background: #374151; }

/* --- Карта зависимостей --- */
.rules-map-container { padding: 8px 4px 24px; }
.rules-map-hint {
    padding: 10px 14px;
    background: #eff6ff;
    border-left: 3px solid #60a5fa;
    border-radius: 4px;
    font-size: 13px;
    color: #1e3a8a;
    margin-bottom: 16px;
}
.rules-map-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}
.map-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.map-card-header {
    background: #f8fafc;
    padding: 10px 14px;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.map-card-header h4 { margin: 0; font-size: 14px; color: #0f172a; }
.map-counts { font-size: 11px; color: #64748b; }
.map-card-body { padding: 10px 14px; display: flex; flex-direction: column; gap: 10px; }
.map-group-title {
    font-size: 11px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 4px;
}
.map-item {
    display: flex;
    flex-direction: column;
    padding: 6px 8px;
    border-radius: 5px;
    background: #f9fafb;
    margin-bottom: 4px;
}
.map-item:hover { background: #f1f5f9; }
.map-item-title {
    background: none;
    border: none;
    padding: 0;
    text-align: left;
    font-size: 13px;
    font-family: inherit;
    color: #1e40af;
    cursor: pointer;
    font-weight: 500;
}
.map-item-title:hover { text-decoration: underline; }
.map-item-key {
    font-size: 10px;
    color: #64748b;
    font-family: 'Menlo', monospace;
    margin-top: 2px;
}
.map-item-topic { border-left: 3px solid #60a5fa; }
.map-item-rule  { border-left: 3px solid #a78bfa; }
.map-empty-row { color: #cbd5e1; font-size: 12px; padding: 4px 8px; font-style: italic; }

body[data-theme="dark"] .map-card { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .map-card-header { background: #111827; border-bottom-color: #374151; }
body[data-theme="dark"] .map-card-header h4 { color: #f3f4f6; }
body[data-theme="dark"] .map-item { background: #111827; }
body[data-theme="dark"] .map-item:hover { background: #0f1419; }
body[data-theme="dark"] .map-item-title { color: #60a5fa; }
body[data-theme="dark"] .rules-map-hint { background: rgba(59, 130, 246, 0.12); color: #dbeafe; }

/* --- Вкладка «Правила» в карточке орг-ции --- */
.audit-rules-panel { padding: 16px 20px; display: flex; flex-direction: column; gap: 18px; }
.audit-rules-summary {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 14px 16px;
}
.audit-rules-summary-title {
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 10px;
}
.audit-rules-params {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 8px;
}
.audit-rules-param {
    display: flex;
    flex-direction: column;
    padding: 8px 10px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
}
.audit-rules-param .label {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.audit-rules-param .value {
    font-size: 14px;
    color: #0f172a;
    font-weight: 500;
    margin-top: 2px;
}
.audit-rules-param .value.yes { color: #065f46; }
.audit-rules-param .value.no  { color: #991b1b; }
.audit-rules-subparam {
    font-size: 11px;
    color: #64748b;
    margin-top: 2px;
    display: block;
}
body[data-theme="dark"] .audit-rules-subparam { color: #94a3b8; }
.audit-rules-hint {
    margin-top: 10px;
    font-size: 12px;
    color: #64748b;
}

.audit-rules-section { }
.audit-rules-h {
    margin: 0 0 10px 0;
    font-size: 14px;
    color: #0f172a;
    font-weight: 600;
}
details.audit-rules-section[open] summary { margin-bottom: 10px; }
details.audit-rules-section summary {
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #0f172a;
    padding: 6px 0;
    list-style: none;
}
details.audit-rules-section summary::-webkit-details-marker { display: none; }
details.audit-rules-section summary::before { content: '▶ '; color: #94a3b8; font-size: 10px; }
details.audit-rules-section[open] summary::before { content: '▼ '; }

.audit-rules-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 10px;
}
.audit-rule-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.audit-rule-card.applicable { border-left: 3px solid #10b981; }
.audit-rule-card.non-applicable {
    border-left: 3px solid #ef4444;
    background: #fafafa;
    opacity: 0.85;
}
.audit-rule-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}
.audit-rule-title {
    font-size: 14px;
    font-weight: 600;
    color: #1e40af;
    text-decoration: none;
    flex: 1;
}
.audit-rule-title:hover { text-decoration: underline; }
.audit-rule-status { font-size: 11px; padding: 2px 8px; border-radius: 10px; }
.audit-rule-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 11px;
    color: #64748b;
}
.audit-rule-section, .audit-rule-source, .audit-rule-period {
    padding: 2px 8px;
    background: #f1f5f9;
    border-radius: 10px;
}
.audit-rule-summary {
    font-size: 13px;
    color: #334155;
    line-height: 1.5;
}
.audit-rule-reasons {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 8px;
    background: #ecfdf5;
    border-radius: 5px;
    border-left: 2px solid #10b981;
}
.audit-rule-card.non-applicable .audit-rule-reasons {
    background: #fef2f2;
    border-left-color: #ef4444;
}
.audit-rule-reason {
    font-size: 12px;
    color: #065f46;
    line-height: 1.4;
}
.audit-rule-card.non-applicable .audit-rule-reason { color: #991b1b; }
.audit-rule-affects {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
    font-size: 12px;
    color: #64748b;
}
.audit-affect-chip {
    padding: 1px 7px;
    background: #eff6ff;
    color: #1e40af;
    border-radius: 10px;
    font-size: 11px;
}

.audit-rule-params-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
}
.audit-rule-param-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.audit-rule-param-head { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; }
.audit-rule-param-label { font-size: 13px; font-weight: 500; color: #1e293b; }
.audit-rule-param-key { font-size: 10px; color: #94a3b8; font-family: 'Menlo', monospace; }
.audit-rule-param-value {
    font-size: 14px;
    color: #0f172a;
    font-weight: 500;
    word-break: break-word;
}
.audit-rule-param-value .unit { font-size: 11px; color: #64748b; font-weight: 400; }
.audit-rule-param-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 11px;
    color: #64748b;
    margin-top: 2px;
}

/* dark theme */
body[data-theme="dark"] .audit-rules-summary { background: #111827; border-color: #374151; }
body[data-theme="dark"] .audit-rules-param { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .audit-rules-param .label { color: #9ca3af; }
body[data-theme="dark"] .audit-rules-param .value { color: #f3f4f6; }
body[data-theme="dark"] .audit-rule-card { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .audit-rule-card.non-applicable { background: #111827; }
body[data-theme="dark"] .audit-rule-title { color: #60a5fa; }
body[data-theme="dark"] .audit-rule-summary { color: #cbd5e1; }
body[data-theme="dark"] .audit-rule-section, body[data-theme="dark"] .audit-rule-source, body[data-theme="dark"] .audit-rule-period {
    background: #374151; color: #cbd5e1;
}
body[data-theme="dark"] .audit-rule-reasons { background: rgba(16, 185, 129, 0.12); }
body[data-theme="dark"] .audit-rule-reason { color: #6ee7b7; }
body[data-theme="dark"] .audit-rule-card.non-applicable .audit-rule-reasons { background: rgba(239, 68, 68, 0.12); }
body[data-theme="dark"] .audit-rule-card.non-applicable .audit-rule-reason { color: #fca5a5; }
body[data-theme="dark"] .audit-affect-chip { background: rgba(59, 130, 246, 0.15); color: #93c5fd; }
body[data-theme="dark"] .audit-rule-param-card { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .audit-rule-param-label { color: #e5e7eb; }
body[data-theme="dark"] .audit-rule-param-value { color: #f3f4f6; }
body[data-theme="dark"] .audit-rules-h { color: #f3f4f6; }
body[data-theme="dark"] details.audit-rules-section summary { color: #f3f4f6; }
/* ========== /ФАЗА 2 ========== */

/* ========== ВКЛАДКА "НОЧНОЙ СВОД" V2 (Comparison-first, редизайн Claude Design) ========== */
/* Все правила скоплены под #nightly_digestTab чтобы токены/классы
   (.btn, .card, .pill, .delta, .dot, .lbl, .mono и т.п.) не утекли
   в остальной CRM — там могут быть одноимённые классы. */

#nightly_digestTab {
    /* Design tokens (light) */
    --bg:        #f6f7f9;
    --surface:   #ffffff;
    --surface-2: #f8fafc;
    --surface-3: #f1f5f9;
    --border:    #e5e9f0;
    --border-2:  #eef1f6;
    --ink:       #0f172a;
    --ink-2:     #334155;
    --ink-3:     #64748b;
    --ink-4:     #94a3b8;
    --ink-5:     #cbd5e1;
    --ok:        #10b981;
    --ok-bg:     #ecfdf5;
    --ok-border: #a7f3d0;
    --warn:      #f59e0b;
    --warn-bg:   #fffbeb;
    --warn-border:#fde68a;
    --err:       #ef4444;
    --err-bg:    #fef2f2;
    --err-border:#fecaca;
    --accent:    #3b82f6;
    --accent-2:  #2563eb;
    --accent-bg: #eff6ff;
    --accent-border:#bfdbfe;
    --violet:    #8b5cf6;
    --violet-bg: #f5f3ff;
    --nd-font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace;
    --r-sm: 6px;
    --r-md: 8px;
}
body[data-theme="dark"] #nightly_digestTab {
    --bg:        #0a0f1d;
    --surface:   #0f172a;
    --surface-2: #111a2e;
    --surface-3: #172235;
    --border:    #1f2a40;
    --border-2:  #182338;
    --ink:       #f1f5f9;
    --ink-2:     #e2e8f0;
    --ink-3:     #94a3b8;
    --ink-4:     #64748b;
    --ink-5:     #475569;
    --ok:        #34d399;
    --ok-bg:     rgba(16, 185, 129, 0.10);
    --ok-border: rgba(16, 185, 129, 0.35);
    --warn:      #fbbf24;
    --warn-bg:   rgba(245, 158, 11, 0.10);
    --warn-border:rgba(245, 158, 11, 0.35);
    --err:       #f87171;
    --err-bg:    rgba(239, 68, 68, 0.10);
    --err-border:rgba(239, 68, 68, 0.35);
    --accent:    #60a5fa;
    --accent-2:  #3b82f6;
    --accent-bg: rgba(59, 130, 246, 0.12);
    --accent-border:rgba(59, 130, 246, 0.35);
    --violet:    #a78bfa;
    --violet-bg: rgba(139, 92, 246, 0.12);
}

#nightly_digestTab .nd-scene {
    width: 100%;
    flex: 1;
    min-height: 0;
    padding: 4px 0;
    background: transparent;
    color: var(--ink);
    display: flex;
    flex-direction: column;
    font-size: 14px;
    line-height: 1.45;
}
#nightly_digestTab .nd-scene * { box-sizing: border-box; }
#nightly_digestTab .num,
#nightly_digestTab .mono {
    font-family: var(--nd-font-mono);
    font-feature-settings: "tnum", "zero";
    font-variant-numeric: tabular-nums;
}

/* Tab head */
#nightly_digestTab .nd-tab-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
#nightly_digestTab .nd-tab-head h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
    display: flex;
    align-items: baseline;
    gap: 10px;
}
#nightly_digestTab .nd-tab-head h2 .sub {
    font-size: 13px;
    font-weight: 400;
    color: var(--ink-3);
}
#nightly_digestTab .nd-tab-actions { display: flex; align-items: center; gap: 8px; }

#nightly_digestTab .btn {
    font: inherit;
    padding: 6px 12px;
    background: var(--surface);
    border: 1px solid var(--ink-5);
    border-radius: var(--r-sm);
    color: var(--ink-2);
    font-size: 13px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1;
    transition: background 0.12s;
}
body[data-theme="dark"] #nightly_digestTab .btn { border-color: var(--border); background: var(--surface-2); color: var(--ink-2); }
#nightly_digestTab .btn:hover { background: var(--surface-3); }
#nightly_digestTab .btn.primary {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
#nightly_digestTab .btn.primary:hover { background: var(--accent-2); }
#nightly_digestTab .btn.sm { padding: 4px 9px; font-size: 12px; }
#nightly_digestTab .btn[disabled] { opacity: 0.5; cursor: not-allowed; }

#nightly_digestTab .checkbox {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 13px; color: var(--ink-3);
    user-select: none;
    cursor: pointer;
}
#nightly_digestTab .checkbox input { accent-color: var(--accent); }

/* Two-column split */
#nightly_digestTab .nd-split {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 14px;
    flex: 1;
    min-height: 0;
}
#nightly_digestTab .nd-split.wide-list { grid-template-columns: 380px 1fr; }
/* Правая колонка деталей: сама является flex-контейнером, внутренности (.vC) скроллятся */
#nightly_digestTab .nd-split > section,
#nightly_digestTab #ndDetail {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

/* Cards + primitives */
#nightly_digestTab .card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    overflow: hidden;
}
#nightly_digestTab .card.pad { padding: 16px; }

#nightly_digestTab .dot {
    width: 8px; height: 8px; border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
#nightly_digestTab .dot.ok   { background: var(--ok); }
#nightly_digestTab .dot.warn { background: var(--warn); }
#nightly_digestTab .dot.err  { background: var(--err); }
#nightly_digestTab .dot.run  { background: var(--accent); box-shadow: 0 0 0 3px rgba(59,130,246,0.25); animation: ndv2Pulse 1.6s infinite; }
#nightly_digestTab .dot.mute { background: var(--ink-4); }
@keyframes ndv2Pulse {
    0%,100% { box-shadow: 0 0 0 0 rgba(59,130,246,0.35); }
    50%     { box-shadow: 0 0 0 6px rgba(59,130,246,0); }
}

#nightly_digestTab .pill {
    display: inline-flex; align-items: center; gap: 5px;
    height: 20px; padding: 0 8px;
    border-radius: 999px;
    font-size: 11px; font-weight: 500;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
#nightly_digestTab .pill.ok   { background: var(--ok-bg);   color: var(--ok);   border: 1px solid var(--ok-border); }
#nightly_digestTab .pill.warn { background: var(--warn-bg); color: var(--warn); border: 1px solid var(--warn-border); }
#nightly_digestTab .pill.err  { background: var(--err-bg);  color: var(--err);  border: 1px solid var(--err-border); }
#nightly_digestTab .pill.run  { background: var(--accent-bg); color: var(--accent); border: 1px solid var(--accent-border); }
#nightly_digestTab .pill.mute { background: var(--surface-3); color: var(--ink-3); border: 1px solid var(--border); }
#nightly_digestTab .pill.violet { background: var(--violet-bg); color: var(--violet); border: 1px solid color-mix(in srgb, var(--violet) 40%, transparent); }

#nightly_digestTab .lbl {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--ink-3);
}
#nightly_digestTab .accent-lbl { color: var(--accent); }
#nightly_digestTab .err-lbl { color: var(--err); }
#nightly_digestTab .mute { color: var(--ink-4); }

#nightly_digestTab .state {
    padding: 48px 24px;
    text-align: center;
    color: var(--ink-4);
    font-size: 14px;
}
#nightly_digestTab .state-icon {
    width: 64px; height: 64px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: var(--surface-3);
    display: grid; place-items: center;
    color: var(--ink-4);
    font-size: 28px;
}

#nightly_digestTab .delta {
    display: inline-flex; align-items: center; gap: 3px;
    font-family: var(--nd-font-mono);
    font-size: 12px;
    padding: 1px 6px;
    border-radius: 4px;
}
#nightly_digestTab .delta.up   { color: var(--ok);  background: var(--ok-bg); }
#nightly_digestTab .delta.down { color: var(--err); background: var(--err-bg); }
#nightly_digestTab .delta.flat { color: var(--ink-3); background: var(--surface-3); }

#nightly_digestTab .progress {
    height: 6px;
    border-radius: 999px;
    background: var(--surface-3);
    overflow: hidden;
}
#nightly_digestTab .progress > div { height: 100%; background: var(--accent); border-radius: 999px; }

#nightly_digestTab .tag-nightly {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 10px; font-weight: 500;
    padding: 1px 6px; border-radius: 4px;
    background: var(--violet-bg); color: var(--violet);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
#nightly_digestTab .tag-manual {
    font-size: 10px; font-weight: 500;
    padding: 1px 6px; border-radius: 4px;
    background: var(--surface-3); color: var(--ink-3);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* ── List / sidebar ───────────────────────────────────────── */
#nightly_digestTab .nd-aside {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
}
#nightly_digestTab .aside-head {
    padding: 12px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--border);
    background: var(--surface-2);
}
#nightly_digestTab .aside-scroll {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}
#nightly_digestTab .li {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-2);
    cursor: pointer;
    transition: background 0.12s;
    position: relative;
}
#nightly_digestTab .li:hover { background: var(--surface-2); }
#nightly_digestTab .li.sel { background: var(--accent-bg); }
#nightly_digestTab .li.sel::before {
    content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--accent);
}
#nightly_digestTab .li.h-warn::after,
#nightly_digestTab .li.h-err::after {
    content: '';
    position: absolute;
    top: 14px; right: 0;
    width: 3px;
    height: calc(100% - 28px);
    background: var(--warn);
    border-radius: 999px 0 0 999px;
    opacity: 0.45;
}
#nightly_digestTab .li.h-err::after { background: var(--err); }

#nightly_digestTab .li-top {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 6px;
}
#nightly_digestTab .li-date { font-weight: 600; color: var(--ink); font-size: 13px; }
#nightly_digestTab .li-time { color: var(--ink-3); font-size: 12px; }
#nightly_digestTab .li-mid {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin: 2px 0 6px;
}
#nightly_digestTab .li-stats {
    display: inline-flex; gap: 8px; align-items: center;
    font-size: 12px; color: var(--ink-3); flex-wrap: wrap;
}
#nightly_digestTab .li-stats .st { display: inline-flex; gap: 3px; align-items: center; }
#nightly_digestTab .li-stats .st.ok b   { color: var(--ok); }
#nightly_digestTab .li-stats .st.warn b { color: var(--warn); }
#nightly_digestTab .li-stats .st.run    { color: var(--accent); }
#nightly_digestTab .li-stats .st.mute   { color: var(--ink-4); }
#nightly_digestTab .li-stats .sep       { color: var(--ink-5); }
#nightly_digestTab .li-bottom {
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; color: var(--ink-3);
}
#nightly_digestTab .li-changes b { color: var(--ink); font-weight: 600; }
#nightly_digestTab .li-changes.muted { color: var(--ink-4); }

/* ── Detail header ────────────────────────────────────────── */
#nightly_digestTab .detail-head {
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: 16px; padding: 2px 4px;
}
#nightly_digestTab .detail-title {
    margin: 0 0 6px 0;
    font-size: 22px; font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
    display: inline-flex; align-items: center;
}
#nightly_digestTab .detail-sub { font-size: 13px; color: var(--ink-3); }
#nightly_digestTab .detail-sub b { color: var(--ink); font-weight: 600; }
#nightly_digestTab .detail-actions { display: flex; gap: 6px; flex-wrap: wrap; }

/* ── Problem clients ─────────────────────────────────────── */
#nightly_digestTab .tl-prob {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    background: var(--surface);
}
#nightly_digestTab .tl-prob.tone-err  { border-color: var(--err-border); background: var(--err-bg); }
#nightly_digestTab .tl-prob.tone-warn { border-color: var(--warn-border); background: var(--warn-bg); }
#nightly_digestTab .tl-prob-main { flex: 1; min-width: 0; }
#nightly_digestTab .tl-prob-name { font-size: 13px; font-weight: 500; color: var(--ink); }
#nightly_digestTab .tl-prob-sub  { font-size: 11px; color: var(--ink-3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#nightly_digestTab .pad-head {
    display: flex; justify-content: space-between; align-items: center;
    padding: 12px 14px; border-bottom: 1px solid var(--border);
}

/* ── Parser tiles ─────────────────────────────────────────── */
#nightly_digestTab .parser-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 8px;
}
#nightly_digestTab .parser-tile {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: 10px 12px;
    display: flex; flex-direction: column; gap: 6px;
}
#nightly_digestTab .parser-top { display: flex; align-items: center; gap: 6px; }
#nightly_digestTab .parser-name { font-size: 12px; color: var(--ink-2); font-weight: 500; }
#nightly_digestTab .parser-mid { display: flex; align-items: baseline; justify-content: space-between; }
#nightly_digestTab .pct { font-size: 20px; font-weight: 600; color: var(--ink); font-family: var(--nd-font-mono); font-variant-numeric: tabular-nums; }
#nightly_digestTab .pct small { font-size: 11px; color: var(--ink-4); font-weight: 400; margin-left: 1px; }
#nightly_digestTab .parser-bar { height: 3px; border-radius: 999px; background: var(--surface-3); overflow: hidden; }
#nightly_digestTab .parser-fill { height: 100%; background: var(--ok); border-radius: 999px; }
#nightly_digestTab .parser-bottom { font-size: 11px; color: var(--ink-4); display: flex; gap: 6px; justify-content: space-between; font-family: var(--nd-font-mono); }
#nightly_digestTab .parser-tile.tone-warn .parser-fill { background: var(--warn); }
#nightly_digestTab .parser-tile.tone-err .parser-fill  { background: var(--err); }
#nightly_digestTab .parser-tile.tone-err  { border-color: var(--err-border);  background: var(--err-bg); }
#nightly_digestTab .parser-tile.tone-warn { border-color: var(--warn-border); }

/* ── Variant C ───────────────────────────────────────────── */
#nightly_digestTab .vC {
    padding: 4px 4px 20px 4px;
    overflow-y: auto;
    min-height: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
/* Прямые дети .vC — не сжимаются под давлением флекса: скролл .vC разруливает высоту */
#nightly_digestTab .vC > * { flex-shrink: 0; }
#nightly_digestTab .vC-head {
    display: flex; justify-content: space-between; align-items: flex-end;
    padding: 0 2px; flex-wrap: wrap; gap: 10px;
}

#nightly_digestTab .vC-op-banner {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    align-items: stretch;
}
#nightly_digestTab .cs { display: flex; flex-direction: column; gap: 2px; align-items: center; text-align: center; }
#nightly_digestTab .cs-label { margin-bottom: 2px; }
#nightly_digestTab .cs-row { display: flex; align-items: baseline; gap: 8px; justify-content: center; }
#nightly_digestTab .cs-val {
    font-size: 24px; font-weight: 600; color: var(--ink);
    font-family: var(--nd-font-mono); font-variant-numeric: tabular-nums;
}
#nightly_digestTab .cs.big .cs-val { font-size: 32px; color: var(--accent); }
#nightly_digestTab .cs-val small { font-size: 13px; color: var(--ink-4); font-weight: 400; margin-left: 2px; font-family: inherit; }
#nightly_digestTab .cs-val.tone-ok { color: var(--ok); }
#nightly_digestTab .cs-val.tone-warn { color: var(--warn); }
#nightly_digestTab .cs-val.tone-err  { color: var(--err); }
#nightly_digestTab .cs-val.tone-accent { color: var(--accent); }
#nightly_digestTab .cs-yest { font-size: 11px; color: var(--ink-4); margin-top: 2px; font-family: var(--nd-font-mono); }

#nightly_digestTab .vC-grid {
    display: grid;
    grid-template-columns: 1fr 48px 1fr;
    gap: 0;
    align-items: stretch;
}
#nightly_digestTab .vC-col {
    background: var(--surface);
    border: 1px solid var(--border);
    padding: 16px 18px;
}
#nightly_digestTab .today-col {
    border-radius: var(--r-md) 0 0 var(--r-md);
    background: linear-gradient(180deg, color-mix(in srgb, var(--accent-bg) 70%, transparent) 0%, var(--surface) 60%);
    border-color: var(--accent-border);
    border-right: 0;
}
#nightly_digestTab .yest-col {
    border-radius: 0 var(--r-md) var(--r-md) 0;
    background: var(--surface-2);
    border-left: 0;
}
#nightly_digestTab .vC-col-head {
    display: flex; justify-content: space-between; align-items: center;
    padding-bottom: 10px; border-bottom: 1px solid var(--border); margin-bottom: 14px;
}
#nightly_digestTab .vC-col-time { font-size: 12px; color: var(--ink-3); margin-top: 2px; font-family: var(--nd-font-mono); }
#nightly_digestTab .vC-col-chip {
    font-size: 12px; padding: 3px 9px; border-radius: 999px;
    background: var(--surface-3); color: var(--ink-2);
    font-family: var(--nd-font-mono);
}
#nightly_digestTab .vC-col-chip b { color: var(--ink); }
#nightly_digestTab .vC-col-chip.mute { color: var(--ink-3); }
#nightly_digestTab .vC-col-chip .warn { color: var(--warn); }

#nightly_digestTab .vC-reports {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 0; margin-bottom: 14px;
    border-bottom: 1px dashed var(--border);
}
#nightly_digestTab .vC-reports-val {
    font-size: 56px; line-height: 1; font-weight: 700;
    color: var(--accent); letter-spacing: -0.03em;
    font-family: var(--nd-font-mono); font-variant-numeric: tabular-nums;
}
#nightly_digestTab .vC-reports.yest .vC-reports-val { color: var(--ink-2); font-size: 44px; }
#nightly_digestTab .vC-reports-types { display: flex; flex-wrap: wrap; gap: 4px; }
#nightly_digestTab .vC-type-chip {
    font-size: 11px; color: var(--ink-2); background: var(--surface-3);
    padding: 2px 6px; border-radius: 3px;
}
#nightly_digestTab .vC-type-chip b { color: var(--ink); margin-right: 2px; font-family: var(--nd-font-mono); }
#nightly_digestTab .vC-type-chip.mute { color: var(--ink-4); }
#nightly_digestTab .vC-type-chip.mute b { color: var(--ink-3); }

#nightly_digestTab .vC-mlist { display: flex; flex-direction: column; gap: 2px; }
#nightly_digestTab .vC-m {
    display: flex; align-items: baseline; justify-content: space-between;
    padding: 5px 0; border-bottom: 1px solid var(--border-2); font-size: 13px;
}
#nightly_digestTab .vC-m:last-child { border-bottom: 0; }
#nightly_digestTab .vC-m.right .vC-m-l { text-align: right; }
#nightly_digestTab .vC-m-l { color: var(--ink-2); }
#nightly_digestTab .vC-m-v { color: var(--ink); font-weight: 600; min-width: 30px; text-align: right; font-family: var(--nd-font-mono); }
#nightly_digestTab .vC-m.muted .vC-m-v { color: var(--ink-3); }
#nightly_digestTab .vC-m.muted .vC-m-l { color: var(--ink-4); }

/* Бейджи: количество попыток / причина auth */
.nd-attempt-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    background: var(--surface-3, #f3f4f6);
    color: var(--ink-3, #64748b);
    border: 1px solid var(--border-2, #e5e7eb);
    vertical-align: middle;
    line-height: 1.5;
}
.nd-attempt-badge.nd-auth {
    background: var(--err-bg, #fef2f2);
    color: var(--err, #b91c1c);
    border-color: var(--err-border, #fecaca);
}

/* Кликабельные бейджи и метрики (расшифровка по клику) */
#nightly_digestTab .nd-clickable { cursor: pointer; transition: background 0.12s, transform 0.12s; }
#nightly_digestTab .vC-type-chip.nd-clickable:hover {
    background: var(--accent-bg); color: var(--accent);
}
#nightly_digestTab .vC-m.nd-clickable:hover {
    background: var(--accent-bg);
    border-radius: 4px;
    padding-left: 6px; padding-right: 6px;
    margin-left: -6px; margin-right: -6px;
}
#nightly_digestTab .vC-m.nd-clickable .vC-m-l::after {
    content: ' ›';
    color: var(--ink-4);
    font-weight: 600;
    font-size: 14px;
    margin-left: 4px;
}
#nightly_digestTab .vC-m.nd-clickable:hover .vC-m-l::after { color: var(--accent); }

/* Модалка-расшифровка */
.nd-modal-overlay {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(15, 23, 42, 0.55);
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
    animation: ndFadeIn 0.12s ease-out;
}
@keyframes ndFadeIn { from { opacity: 0; } to { opacity: 1; } }
.nd-modal {
    background: var(--surface, #fff);
    border-radius: 12px;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25);
    width: 100%; max-width: 880px;
    max-height: calc(100vh - 48px);
    display: flex; flex-direction: column;
    animation: ndSlideUp 0.18s ease-out;
}
@keyframes ndSlideUp { from { transform: translateY(8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.nd-modal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px; border-bottom: 1px solid var(--border, #e5e7eb);
    flex-shrink: 0;
}
.nd-modal-head .lbl {
    font-size: 11px; color: var(--ink-3, #64748b);
    text-transform: uppercase; letter-spacing: 0.04em;
    margin-bottom: 2px;
}
.nd-modal-title {
    margin: 0; font-size: 18px; color: var(--ink, #0f172a); font-weight: 600;
}
.nd-modal-close {
    background: transparent; border: 0; cursor: pointer;
    font-size: 28px; line-height: 1; color: var(--ink-3, #64748b);
    padding: 4px 10px; border-radius: 6px;
    transition: background 0.12s;
}
.nd-modal-close:hover { background: var(--surface-3, #f3f4f6); color: var(--ink, #0f172a); }
.nd-modal-body {
    padding: 12px 20px 20px; overflow-y: auto;
    display: flex; flex-direction: column; gap: 10px;
}
.nd-modal-empty {
    padding: 32px 0; text-align: center; color: var(--ink-3, #64748b);
}
.nd-modal-grp {
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    /* overflow: hidden обрезал карточки с большим diff-блоком —
       заменён на overflow: visible. Ровные углы шапки даём через
       border-top-left/right-radius у самой шапки. */
    overflow: visible;
    /* Лёгкий серый фон группы, чтобы белые карточки внутри визуально
       выделялись (раньше карточки на белом фоне сливались — особенно
       короткие, как ККМ-отчёты). */
    background: var(--surface-3, #f9fafb);
}
.nd-modal-grp-head {
    display: flex; align-items: baseline; justify-content: space-between;
    /* Шапка белая на сером фоне группы — отделяет «название клиента»
       от его карточек-записей. */
    background: #fff;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-2, #f3f4f6);
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}
.nd-modal-grp-name {
    font-size: 13px; font-weight: 600; color: var(--ink, #0f172a);
}
.nd-modal-grp-rows {
    padding: 10px 12px 12px;
    display: flex; flex-direction: column;
    gap: 8px;
}
.nd-modal-row {
    padding: 4px 0;
    font-size: 12px;
    color: var(--ink-2, #334155);
    border-bottom: 1px dashed var(--border-2, #f3f4f6);
}
.nd-modal-row:last-child { border-bottom: 0; }
.nd-modal-row b { color: var(--ink, #0f172a); font-family: var(--nd-font-mono, monospace); }
.nd-modal-row .mute { color: var(--ink-4, #94a3b8); }

/* ────────── Карточки (новый формат подробностей) ─────────────── */
.nd-card {
    display: flex; flex-direction: column;
    padding: 10px 12px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: border-color 0.12s, box-shadow 0.12s;
}
.nd-card:hover { border-color: var(--accent-border, #cbd5e1); box-shadow: 0 2px 4px rgba(15, 23, 42, 0.06); }
.nd-card-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}
.nd-card-title {
    font-size: 13px; color: var(--ink, #0f172a);
    line-height: 1.35;
    flex: 1; min-width: 0;
}
.nd-card-code {
    font-family: var(--nd-font-mono, monospace);
    font-weight: 700; color: var(--ink, #0f172a);
}
.nd-card-name { font-weight: 600; color: var(--ink, #0f172a); }
.nd-card-sub { color: var(--ink-3, #64748b); font-weight: 400; font-size: 12px; }
.nd-card-right { flex-shrink: 0; }
.nd-card-amount {
    font-size: 14px; line-height: 1;
    color: var(--ink, #0f172a);
}
.nd-card-amount b { font-size: 16px; font-family: var(--nd-font-mono, monospace); }
.nd-card-amount small {
    color: var(--ink-3, #64748b); font-size: 11px; margin-left: 4px;
    text-transform: lowercase;
}

/* Бейджи */
.nd-card-tags {
    display: flex; flex-wrap: wrap; gap: 4px;
    margin: 2px 0 4px;
}
.nd-tag {
    display: inline-flex; align-items: center;
    padding: 2px 8px;
    font-size: 11px; line-height: 1.3;
    border-radius: 10px;
    font-weight: 500;
    border: 1px solid transparent;
    white-space: nowrap;
}
.nd-tag-info   { background: #eff6ff; color: #1e40af; border-color: #dbeafe; }
.nd-tag-warn   { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.nd-tag-ok     { background: #ecfdf5; color: #047857; border-color: #d1fae5; }
.nd-tag-err    { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.nd-tag-accent { background: #f3e8ff; color: #6b21a8; border-color: #e9d5ff; }
.nd-tag-mute   { background: #f3f4f6; color: #475569; border-color: #e5e7eb; }

/* Метаданные карточки.
   Изначально была grid auto-fit minmax(180px, 1fr) — плохо работал когда
   значения короткие (создавал большие пустые столбцы). Заменили на
   flex-wrap: ряд равномерно заполняется, wide-элементы переносятся целиком. */
.nd-card-meta {
    display: flex; flex-wrap: wrap;
    column-gap: 16px; row-gap: 4px;
    margin-top: 6px;
    font-size: 12px;
}
.nd-meta-item {
    display: flex; gap: 6px; align-items: baseline;
    min-width: 0;
    flex: 0 1 auto;
}
.nd-meta-item.nd-meta-wide {
    flex-basis: 100%;
}
.nd-meta-lbl {
    color: var(--ink-3, #64748b);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}
.nd-meta-val {
    color: var(--ink-2, #334155);
    overflow-wrap: break-word; word-break: break-word; min-width: 0;
}
.nd-meta-val.mono { font-family: var(--nd-font-mono, monospace); }

/* Diff-блок */
.nd-card-diffs {
    margin-top: 8px;
    padding: 8px 10px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 6px;
}
.nd-card-diffs-head {
    font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em;
    color: #92400e; font-weight: 600; margin-bottom: 4px;
}
.nd-diff-row {
    display: flex; align-items: baseline; flex-wrap: wrap;
    gap: 6px;
    font-size: 12px; line-height: 1.5;
    color: var(--ink-2, #334155);
}
.nd-diff-row + .nd-diff-row { margin-top: 2px; }
.nd-diff-lbl {
    color: var(--ink-3, #64748b);
    font-size: 11px;
    flex-shrink: 0;
}
.nd-diff-old {
    color: var(--ink-4, #94a3b8);
    text-decoration: line-through;
    text-decoration-color: rgba(148, 163, 184, 0.6);
}
.nd-diff-arrow {
    color: var(--ink-4, #94a3b8);
    font-weight: 400;
}
.nd-diff-new { color: var(--ink, #0f172a); font-weight: 500; }
.nd-diff-delta {
    font-size: 11px;
    padding: 1px 6px;
    border-radius: 8px;
    font-family: var(--nd-font-mono, monospace);
}
.nd-diff-pos { background: #ecfdf5; color: #047857; }
.nd-diff-neg { background: #fef2f2; color: #b91c1c; }

/* Узкий экран — карточки в одну колонку, head вертикально */
@media (max-width: 720px) {
    .nd-card-meta { flex-direction: column; }
    .nd-meta-item, .nd-meta-item.nd-meta-wide { flex-basis: auto; }
    .nd-card-head { flex-direction: column; align-items: flex-start; gap: 6px; }
    .nd-card-amount { font-size: 13px; }
}

/* Aggregate-режим: «клиент — N» в одну строку */
.nd-modal-agg-list { display: flex; flex-direction: column; }
.nd-modal-agg-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: baseline;
    gap: 12px;
    padding: 7px 4px;
    border-bottom: 1px dashed var(--border-2, #f3f4f6);
    font-size: 13px;
}
.nd-modal-agg-row:last-child { border-bottom: 0; }
.nd-modal-agg-name { color: var(--ink, #0f172a); font-weight: 500; }
.nd-modal-agg-inn { font-size: 11px; color: var(--ink-4, #94a3b8); }
.nd-modal-agg-count {
    min-width: 50px; text-align: right;
    color: var(--accent, #074783);
    font-variant-numeric: tabular-nums;
}
.nd-modal-agg-count b { color: var(--accent, #074783); }

#nightly_digestTab .vC-center {
    position: relative;
    display: flex; flex-direction: column; justify-content: flex-start;
    padding-top: 154px;
    gap: 5px; align-items: center;
}
#nightly_digestTab .vC-center-line {
    position: absolute; left: 50%; top: 0; bottom: 0;
    width: 1px; background: var(--border);
}
#nightly_digestTab .vC-diff {
    font-family: var(--nd-font-mono);
    font-size: 11px; padding: 2px 6px; border-radius: 999px;
    background: var(--surface); border: 1px solid var(--border);
    position: relative; z-index: 1; line-height: 1.4;
    min-width: 34px; text-align: center; color: var(--ink-3);
    height: 22px;
    display: inline-flex; align-items: center; justify-content: center; gap: 2px;
    margin-top: 6px;
}
#nightly_digestTab .vC-diff.up   { color: var(--ok);  border-color: var(--ok-border);  background: var(--ok-bg); }
#nightly_digestTab .vC-diff.down { color: var(--err); border-color: var(--err-border); background: var(--err-bg); }
#nightly_digestTab .vC-diff.flat { color: var(--ink-4); }

#nightly_digestTab .vC-parsers { margin-top: 4px; }
#nightly_digestTab .vC-problems .tl-prob { margin-bottom: 6px; }

/* Адаптивность: на узких экранах сворачиваем в 1 колонку */
@media (max-width: 1100px) {
    #nightly_digestTab .vC-op-banner { grid-template-columns: repeat(2, 1fr); }
    #nightly_digestTab .vC-grid { grid-template-columns: 1fr; }
    #nightly_digestTab .vC-center { padding-top: 0; flex-direction: row; justify-content: center; flex-wrap: wrap; }
    #nightly_digestTab .vC-center-line { display: none; }
    #nightly_digestTab .today-col, #nightly_digestTab .yest-col {
        border-radius: var(--r-md);
        border: 1px solid var(--border);
    }
    #nightly_digestTab .today-col { border-color: var(--accent-border); }
}

/* ====== Вкладка «Оплата» (редизайн v2 — variant A + feed toggle) ====== */
#paymentsTab {
    --pm-paid:       #10b981;
    --pm-paid-bg:    #ecfdf5;
    --pm-paid-bdr:   #a7f3d0;
    --pm-paid-text:  #047857;
    --pm-partial:    #f59e0b;
    --pm-partial-bg: #fffbeb;
    --pm-partial-bdr:#fde68a;
    --pm-partial-text:#b45309;
    --pm-unpaid:     #ef4444;
    --pm-unpaid-bg:  #fef2f2;
    --pm-unpaid-bdr: #fecaca;
    --pm-unpaid-text:#b91c1c;
    --pm-nocharge:   #9ca3af;
    --pm-nocharge-bg:#f9fafb;
    --pm-nocharge-bdr:#e5e7eb;
    --pm-paynet:     #7c3aed;
    --pm-paynet-bg:  #f5f3ff;
    --pm-paynet-bdr: #ddd6fe;
    --pm-paynet-text:#6d28d9;
    --pm-card-bg:    #ffffff;
    --pm-card-bdr:   #e5e7eb;
    --pm-card-bdr-soft: #f3f4f6;
    --pm-ink:        #0f172a;
    --pm-ink-2:      #334155;
    --pm-ink-3:      #64748b;
    --pm-ink-4:      #94a3b8;
    --pm-bg-soft:    #f9fafb;
    --pm-primary:    #074783;
    --pm-primary-soft: rgba(7,71,131,0.08);
}
body[data-theme="dark"] #paymentsTab {
    --pm-paid-bg:    rgba(16,185,129,0.12);
    --pm-paid-bdr:   rgba(16,185,129,0.25);
    --pm-paid-text:  #6ee7b7;
    --pm-partial-bg: rgba(245,158,11,0.12);
    --pm-partial-bdr:rgba(245,158,11,0.25);
    --pm-partial-text:#fcd34d;
    --pm-unpaid-bg:  rgba(239,68,68,0.12);
    --pm-unpaid-bdr: rgba(239,68,68,0.28);
    --pm-unpaid-text:#fca5a5;
    --pm-nocharge-bg: rgba(148,163,184,0.08);
    --pm-nocharge-bdr:rgba(148,163,184,0.18);
    --pm-paynet-bg:  rgba(124,58,237,0.14);
    --pm-paynet-bdr: rgba(124,58,237,0.28);
    --pm-paynet-text:#c4b5fd;
    --pm-card-bg:    #0f172a;
    --pm-card-bdr:   #1f2937;
    --pm-card-bdr-soft:#162033;
    --pm-ink:        #f1f5f9;
    --pm-ink-2:      #cbd5e1;
    --pm-ink-3:      #94a3b8;
    --pm-ink-4:      #64748b;
    --pm-bg-soft:    #0b1220;
    --pm-primary-soft: rgba(59,130,246,0.15);
}

#paymentsTab .tab-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
#paymentsTab .pm-select,
#paymentsTab .pm-search {
    padding: 7px 10px;
    border: 1px solid var(--pm-card-bdr);
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
    background: var(--pm-card-bg);
    color: var(--pm-ink);
    outline: none;
    min-width: 120px;
    transition: border-color .15s, box-shadow .15s;
}
#paymentsTab .pm-search { min-width: 200px; }
#paymentsTab .pm-select:focus,
#paymentsTab .pm-search:focus {
    border-color: var(--pm-primary);
    box-shadow: 0 0 0 3px var(--pm-primary-soft);
}

.pm-quarter-label {
    font-size: 13px;
    color: var(--pm-ink-2, #64748b);
    font-weight: 500;
    padding: 7px 4px;
    white-space: nowrap;
}

/* ── Колонка «Комментарии» (Ульяна 08.05.2026) ── */
#paymentsTab .pm-comment-cell { padding: 4px 6px; vertical-align: middle; }
#paymentsTab .pm-comment-input {
    width: 100%;
    min-height: 38px;
    padding: 6px 8px;
    border: 1px solid var(--pm-card-bdr, #e5e7eb);
    border-radius: 6px;
    font-size: 12px;
    font-family: inherit;
    line-height: 1.35;
    resize: vertical;
    background: var(--pm-card-bg, #fff);
    color: var(--pm-ink, #111);
}
#paymentsTab .pm-comment-input:focus {
    outline: none;
    border-color: #8e44ad;
    box-shadow: 0 0 0 2px rgba(142, 68, 173, 0.18);
}

/* ── Compact view («Только таблица») — скрывает hero и второстепенные блоки ── */
#paymentsContent[data-view="compact"] ~ #paymentsHero,
#paymentsContent[data-view="compact"] ~ #paymentsHandoffCounter,
#paymentsContent[data-view="compact"] ~ #paymentsAlert { display: none !important; }
#paymentsTab[data-view-mode="compact"] #paymentsHero,
#paymentsTab[data-view-mode="compact"] #paymentsHandoffCounter,
#paymentsTab[data-view-mode="compact"] #paymentsAlert { display: none !important; }
#paymentsTab[data-view-mode="compact"] #paymentsFeedView { display: none !important; }
/* В режиме «График» прячем KPI-шапку, счётчик передач и алерт — их роль играют сами графики */
#paymentsTab[data-view-mode="chart"] #paymentsHero,
#paymentsTab[data-view-mode="chart"] #paymentsHandoffCounter,
#paymentsTab[data-view-mode="chart"] #paymentsAlert { display: none !important; }

/* ── View toggle (Таблица / Лента) ── */
#paymentsTab .pm-view-toggle {
    display: inline-flex;
    padding: 3px;
    gap: 2px;
    background: var(--pm-bg-soft);
    border: 1px solid var(--pm-card-bdr);
    border-radius: 10px;
}
#paymentsTab .pm-view-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 0;
    background: transparent;
    color: var(--pm-ink-3);
    border-radius: 7px;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 500;
    font-family: inherit;
}
#paymentsTab .pm-view-btn:hover { color: var(--pm-ink); }
#paymentsTab .pm-view-btn.is-active {
    background: var(--pm-card-bg);
    color: var(--pm-ink);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 0 0 1px var(--pm-card-bdr);
}

/* ── Режим «График» (ApexCharts) ── */
#paymentsTab .pm-charts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 4px 2px 16px;
    overflow-y: auto;
    align-content: start;
}
#paymentsTab .pm-charts-grid[hidden] { display: none; }
#paymentsTab .pm-chart-wide { grid-column: 1 / -1; }
#paymentsTab .pm-chart-card {
    background: var(--pm-card-bg);
    border: 1px solid var(--pm-card-bdr);
    border-radius: 14px;
    padding: 14px 16px 10px;
    min-width: 0;
}
#paymentsTab .pm-chart-head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
#paymentsTab .pm-chart-title { font-size: 14px; font-weight: 650; color: var(--pm-ink); }
#paymentsTab .pm-chart-sub { font-size: 11.5px; color: var(--pm-ink-3); }
#paymentsTab .pm-chart-body { min-height: 260px; }
#paymentsTab .pm-chart-body-lg { min-height: 340px; }
#paymentsTab .pm-chart-empty,
#paymentsTab .pm-chart-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 240px;
    color: var(--pm-ink-3);
    font-size: 13px;
    text-align: center;
}
#paymentsTab .pm-chart-loading::before {
    content: "";
    width: 16px; height: 16px;
    margin-right: 8px;
    border: 2px solid var(--pm-ink-4);
    border-top-color: transparent;
    border-radius: 50%;
    animation: pmSpin 0.7s linear infinite;
}
@keyframes pmSpin { to { transform: rotate(360deg); } }
@media (max-width: 1100px) {
    #paymentsTab .pm-charts-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    #paymentsTab .pm-charts-grid { grid-template-columns: 1fr; }
}

/* ── Hero: 4 KPI cards ── */
#paymentsTab .pm-hero {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 10px;
    margin: 10px 0 8px;
    flex-shrink: 0;
}
#paymentsTab .pm-alert-slot { flex-shrink: 0; }
/* paymentsContent растягивается на оставшуюся высоту, чтобы внутренний скролл сам подстроился */
#paymentsTab .pm-content { flex: 1; min-height: 0; display: flex; flex-direction: column; }
#paymentsTab .pm-kpi {
    position: relative;
    background: var(--pm-card-bg);
    border: 1px solid var(--pm-card-bdr);
    border-radius: 12px;
    padding: 10px 14px 10px;
    min-height: 92px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    overflow: hidden;
}
#paymentsTab .pm-kpi.pm-kpi-main {
    background: linear-gradient(135deg, #074783 0%, #1e40af 100%);
    color: #fff;
    border-color: transparent;
}
body[data-theme="dark"] #paymentsTab .pm-kpi.pm-kpi-main {
    background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%);
}
#paymentsTab .pm-kpi-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--pm-ink-3);
}
#paymentsTab .pm-kpi.pm-kpi-main .pm-kpi-label { color: rgba(255,255,255,0.82); }
#paymentsTab .pm-kpi-value {
    font-size: 26px;
    font-weight: 650;
    color: var(--pm-ink);
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
}
#paymentsTab .pm-kpi.pm-kpi-main .pm-kpi-value { color: #fff; }
#paymentsTab .pm-kpi-value .pm-unit {
    font-size: 12px;
    font-weight: 500;
    color: var(--pm-ink-3);
}
#paymentsTab .pm-kpi.pm-kpi-main .pm-kpi-value .pm-unit { color: rgba(255,255,255,0.72); }
#paymentsTab .pm-kpi-sub {
    font-size: 12px;
    color: var(--pm-ink-3);
}
#paymentsTab .pm-kpi.pm-kpi-main .pm-kpi-sub { color: rgba(255,255,255,0.82); }
#paymentsTab .pm-kpi-sub .pm-mono { font-variant-numeric: tabular-nums; }
#paymentsTab .pm-kpi-trend {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 600;
}
#paymentsTab .pm-kpi-trend.up   { color: var(--pm-paid-text); }
#paymentsTab .pm-kpi-trend.down { color: var(--pm-unpaid-text); }
#paymentsTab .pm-kpi-progress {
    margin-top: auto;
    height: 6px;
    background: rgba(255,255,255,0.25);
    border-radius: 3px;
    overflow: hidden;
}
#paymentsTab .pm-kpi-progress > div {
    height: 100%;
    background: #fff;
    border-radius: 3px;
    transition: width .3s ease;
}

#paymentsTab .pm-sparkline {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 28px;
    margin-top: auto;
}
#paymentsTab .pm-sparkline .bar {
    flex: 1;
    background: var(--pm-ink-4);
    opacity: 0.35;
    border-radius: 2px 2px 0 0;
    min-height: 3px;
    transition: background .15s, opacity .15s;
}
#paymentsTab .pm-sparkline .bar.active { background: var(--pm-primary); opacity: 1; }
#paymentsTab .pm-sparkline .bar.active.bad { background: var(--pm-unpaid); }
#paymentsTab .pm-sparkline .bar.active.paynet { background: var(--pm-paynet); }

/* ── Alert banner ── */
#paymentsTab .pm-alert-slot:empty { display: none; }
#paymentsTab .pm-alert {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    border-radius: 10px;
    background: var(--pm-unpaid-bg);
    border: 1px solid var(--pm-unpaid-bdr);
    margin-bottom: 8px;
}
#paymentsTab .pm-alert.info {
    background: var(--pm-paid-bg);
    border-color: var(--pm-paid-bdr);
}
#paymentsTab .pm-alert.warn {
    background: var(--pm-partial-bg);
    border-color: var(--pm-partial-bdr);
}
#paymentsTab .pm-alert-icon {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--pm-unpaid);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
}
#paymentsTab .pm-alert.info .pm-alert-icon { background: var(--pm-paid); }
#paymentsTab .pm-alert.warn .pm-alert-icon { background: var(--pm-partial); }
#paymentsTab .pm-alert-body { flex: 1; min-width: 0; }
#paymentsTab .pm-alert-title {
    font-weight: 600;
    color: var(--pm-unpaid-text);
    font-size: 14px;
    margin-bottom: 2px;
}
#paymentsTab .pm-alert.info .pm-alert-title { color: var(--pm-paid-text); }
#paymentsTab .pm-alert.warn .pm-alert-title { color: var(--pm-partial-text); }
#paymentsTab .pm-alert-text {
    font-size: 12.5px;
    color: var(--pm-ink-2);
    line-height: 1.45;
}
#paymentsTab .pm-alert-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
}
#paymentsTab .pm-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border: 1px solid var(--pm-card-bdr);
    background: var(--pm-card-bg);
    color: var(--pm-ink);
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}
#paymentsTab .pm-btn:hover { border-color: var(--pm-primary); color: var(--pm-primary); }
#paymentsTab .pm-btn.pm-btn-danger {
    background: var(--pm-unpaid);
    color: #fff;
    border-color: var(--pm-unpaid);
}
#paymentsTab .pm-btn.pm-btn-danger:hover { background: #dc2626; border-color: #dc2626; color: #fff; }
#paymentsTab .pm-btn.pm-btn-ghost {
    background: transparent;
    border-color: transparent;
    color: var(--pm-ink-2);
}
#paymentsTab .pm-btn.pm-btn-ghost:hover { background: var(--pm-bg-soft); color: var(--pm-ink); }

/* ── Пайплайн этапов оплаты ── */
#paymentsPipeline { margin-bottom: 10px; }
#paymentsPipeline .pp-header {
    display: flex; align-items: center; gap: 10px; margin-bottom: 8px;
}
#paymentsPipeline .pp-title {
    font-size: 13px; font-weight: 600; color: var(--pm-ink-2); text-transform: uppercase; letter-spacing: 0.5px;
}
#paymentsPipeline .pp-clear {
    font-size: 11px; color: var(--pm-primary); background: none; border: 1px solid var(--pm-primary);
    border-radius: 4px; padding: 2px 8px; cursor: pointer;
}
#paymentsPipeline .pp-clear:hover { background: var(--pm-primary); color: #fff; }
#paymentsPipeline .pp-action-hint {
    font-size: 11px; color: #f97316; margin-left: auto; font-weight: 500;
}
#paymentsPipeline .pp-steps {
    display: flex; align-items: center; gap: 0; flex-wrap: wrap; margin-bottom: 8px;
}
#paymentsPipeline .pp-arrow {
    color: var(--pm-ink-3, #94a3b8); font-size: 12px; margin: 0 2px; flex-shrink: 0;
}
#paymentsPipeline .pp-step {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 10px; border-radius: 8px; border: 1.5px solid var(--pm-card-bdr, #e2e8f0);
    background: var(--pm-card-bg, #fff); cursor: pointer; transition: all 0.15s;
    font-size: 12px; white-space: nowrap;
}
#paymentsPipeline .pp-step:hover { border-color: var(--pm-primary); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
#paymentsPipeline .pp-step.pp-active { border-color: var(--pm-primary); background: var(--pm-bg-soft, #f0f4ff); box-shadow: 0 0 0 2px rgba(59,130,246,0.15); }
#paymentsPipeline .pp-dot {
    width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
#paymentsPipeline .pp-label { font-weight: 500; color: var(--pm-ink, #1e293b); }
#paymentsPipeline .pp-count { font-weight: 700; font-size: 13px; }
#paymentsPipeline .pp-bar {
    display: flex; height: 6px; border-radius: 4px; overflow: hidden; gap: 1px;
    background: var(--pm-bg-soft, #f1f5f9);
}
#paymentsPipeline .pp-bar-seg {
    min-width: 3px; border-radius: 2px; cursor: pointer; transition: opacity 0.15s;
}
#paymentsPipeline .pp-bar-seg:hover { opacity: 0.75; }
#paymentsPipeline .pp-bar-seg.pp-bar-active { box-shadow: 0 0 0 2px rgba(59,130,246,0.4); }
#paymentsPipeline .pp-hint {
    margin-top: 8px; padding: 8px 12px; font-size: 12px; color: var(--pm-ink-2);
    background: var(--pm-bg-soft); border-radius: 6px;
}

.pp-row-badge {
    display: inline-block; font-size: 9px; font-weight: 600; color: #fff;
    padding: 1px 5px; border-radius: 3px; line-height: 1.4; white-space: nowrap;
    vertical-align: middle; margin-left: 4px;
}

body[data-theme="dark"] #paymentsPipeline .pp-step { background: var(--pm-card-bg); border-color: var(--pm-card-bdr); }
body[data-theme="dark"] #paymentsPipeline .pp-step.pp-active { background: #1e293b; }
body[data-theme="dark"] #paymentsPipeline .pp-label { color: var(--pm-ink); }
body[data-theme="dark"] #paymentsPipeline .pp-bar { background: #1e293b; }
body[data-theme="dark"] .pp-row-badge { opacity: 0.9; }

/* ── Таблица ── */
#paymentsTab .pm-table-card {
    background: var(--pm-card-bg);
    border: 1px solid var(--pm-card-bdr);
    border-radius: 12px;
    /* Заказчик 23.06.2026 (п.2 PDF «правки оплат»): «список листается, а страница — нет».
       Раньше карта была flex:1 + overflow:hidden, а внутренний .pm-table-scroll перехватывал
       прокрутку — сама страница не скроллилась. Теперь карта растёт по содержимому, а скроллится
       страница целиком (#paymentsTab.active{overflow-y:auto}). Карта используется только в табличном
       представлении (feed/chart — отдельные контейнеры), поэтому правка локальна. */
    overflow: visible;
    flex: none;
    display: flex;
    flex-direction: column;
}
#paymentsTab .pm-table-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--pm-card-bdr-soft);
    background: var(--pm-bg-soft);
    flex-shrink: 0;
}
#paymentsTab .pm-status-tabs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
#paymentsTab .pm-chip-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border: 1px solid var(--pm-card-bdr);
    background: var(--pm-card-bg);
    color: var(--pm-ink-2);
    border-radius: 14px;
    font-size: 12px;
    cursor: pointer;
    font-family: inherit;
    transition: background .12s, border-color .12s, color .12s;
}
#paymentsTab .pm-chip-tab:hover { border-color: var(--pm-primary); color: var(--pm-primary); }
#paymentsTab .pm-chip-tab.is-active {
    background: var(--pm-primary);
    border-color: var(--pm-primary);
    color: #fff;
}
#paymentsTab .pm-chip-tab.is-active .pm-chip-count { background: rgba(255,255,255,0.22); color: #fff; }
#paymentsTab .pm-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    padding: 1px 5px;
    border-radius: 9px;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    background: var(--pm-bg-soft);
    color: var(--pm-ink-3);
}
#paymentsTab .pm-dot {
    display: inline-block;
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--pm-nocharge);
}
#paymentsTab .pm-dot.paid    { background: var(--pm-paid); }
#paymentsTab .pm-dot.partial { background: var(--pm-partial); }
#paymentsTab .pm-dot.unpaid  { background: var(--pm-unpaid); }
#paymentsTab .pm-dot.nocharge { background: var(--pm-nocharge); }
#paymentsTab .pm-dot.paynet  { background: var(--pm-paynet); }

#paymentsTab .pm-table-scroll {
    /* Растём по содержимому — скроллит страница, а не внутренний контейнер (см. .pm-table-card). */
    overflow: visible;
    padding-bottom: 16px;
}
#paymentsTab .pm-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
#paymentsTab .pm-table thead th {
    padding: 10px 12px;
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--pm-ink-3);
    background: var(--pm-bg-soft);
    border-bottom: 1px solid var(--pm-card-bdr);
    position: sticky;
    top: 0;
    z-index: 2;
}
#paymentsTab .pm-table th.pm-num, #paymentsTab .pm-table td.pm-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
#paymentsTab .pm-table tbody tr { transition: background .12s; }
#paymentsTab .pm-table tbody tr:hover { background: var(--pm-primary-soft); }
#paymentsTab .pm-table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--pm-card-bdr-soft);
    color: var(--pm-ink);
    vertical-align: middle;
}
#paymentsTab .pm-table tbody tr:last-child td { border-bottom: 0; }
#paymentsTab .pm-table tbody tr.pm-row-unpaid  td:first-child { box-shadow: inset 3px 0 0 var(--pm-unpaid); }
#paymentsTab .pm-table tbody tr.pm-row-partial td:first-child { box-shadow: inset 3px 0 0 var(--pm-partial); }
#paymentsTab .pm-table tbody tr.pm-row-paid    td:first-child { box-shadow: inset 3px 0 0 var(--pm-paid); }
#paymentsTab .pm-table tbody tr.pm-row-nocharge td { color: var(--pm-ink-3); }

#paymentsTab .pm-idx { color: var(--pm-ink-4); font-variant-numeric: tabular-nums; }

#paymentsTab .pm-org-cell { width: 280px; max-width: 280px; }
#paymentsTab .pm-org-name {
    font-weight: 600;
    color: var(--pm-ink);
    font-size: 13px;
    line-height: 1.3;
    letter-spacing: -0.005em;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 260px;
}
#paymentsTab .pm-org-meta {
    display: flex;
    gap: 6px;
    font-size: 11px;
    color: var(--pm-ink-3);
    font-variant-numeric: tabular-nums;
}
#paymentsTab .pm-org-meta .pm-inn { font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace; }

#paymentsTab .pm-tariff-name { font-size: 12.5px; color: var(--pm-ink); }
#paymentsTab .pm-tariff-price { font-size: 11px; color: var(--pm-ink-3); font-variant-numeric: tabular-nums; margin-top: 1px; }

#paymentsTab .pm-paid-strong { font-weight: 650; color: var(--pm-paid-text); }
#paymentsTab .pm-zero { color: var(--pm-ink-4); }

#paymentsTab .pm-date-cell { display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
#paymentsTab .pm-date-cell .pm-date { font-variant-numeric: tabular-nums; color: var(--pm-ink); }
#paymentsTab .pm-paynet-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 7px 2px 5px;
    border-radius: 10px;
    background: var(--pm-paynet-bg);
    color: var(--pm-paynet-text);
    border: 1px solid var(--pm-paynet-bdr);
    font-size: 10.5px;
    font-weight: 600;
    width: max-content;
}

#paymentsTab .pm-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px 3px 8px;
    border-radius: 11px;
    font-size: 11.5px;
    font-weight: 600;
    border: 1px solid transparent;
    white-space: nowrap;
}
#paymentsTab .pm-status-pill.paid    { background: var(--pm-paid-bg); color: var(--pm-paid-text); border-color: var(--pm-paid-bdr); }
#paymentsTab .pm-status-pill.partial { background: var(--pm-partial-bg); color: var(--pm-partial-text); border-color: var(--pm-partial-bdr); }
#paymentsTab .pm-status-pill.unpaid  { background: var(--pm-unpaid-bg); color: var(--pm-unpaid-text); border-color: var(--pm-unpaid-bdr); }
#paymentsTab .pm-status-pill.nocharge { background: var(--pm-nocharge-bg); color: var(--pm-ink-3); border-color: var(--pm-nocharge-bdr); }

#paymentsTab .pm-row-actions { display: flex; gap: 3px; opacity: 0.45; transition: opacity .15s; }
#paymentsTab .pm-table tbody tr:hover .pm-row-actions { opacity: 1; }
#paymentsTab .pm-ico-btn {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--pm-ink-3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
}
#paymentsTab .pm-ico-btn:hover {
    background: var(--pm-card-bg);
    border-color: var(--pm-card-bdr);
    color: var(--pm-ink);
}
#paymentsTab .pm-ico-btn.wa:hover { color: #16a34a; border-color: #86efac; background: #f0fdf4; }
body[data-theme="dark"] #paymentsTab .pm-ico-btn.wa:hover { color: #4ade80; background: rgba(22,163,74,0.15); border-color: rgba(22,163,74,0.3); }
#paymentsTab .pm-ico-btn.tel:hover { color: var(--pm-primary); border-color: var(--pm-primary); }

#paymentsTab .pm-loading, #paymentsTab .pm-empty {
    text-align: center;
    color: var(--pm-ink-3);
    padding: 60px 0;
    font-size: 13px;
}

/* ===== Свод налоги (#taxesSvodTab) + Сдача ЭСФ (#esfSvodTab) — собственные стили =====
   Классы pm-* (.pm-hero/.pm-kpi/.pm-table) заскоуплены под #paymentsTab, и сами переменные
   --pm-* объявлены на #paymentsTab — на этих страницах их не было, поэтому KPI и таблица
   рендерились голым текстом. Дублируем переменные и нужные компоненты через :is(...)
   (тот же паттерн, что у #employees_pageTab). */
:is(#taxesSvodTab, #esfSvodTab) {
    --pm-card-bg:#ffffff; --pm-card-bdr:#e5e7eb; --pm-card-bdr-soft:#f3f4f6;
    --pm-ink:#0f172a; --pm-ink-2:#334155; --pm-ink-3:#64748b; --pm-ink-4:#94a3b8;
    --pm-bg-soft:#f9fafb; --pm-primary:#074783; --pm-primary-soft:rgba(7,71,131,0.08);
}
body[data-theme="dark"] :is(#taxesSvodTab, #esfSvodTab) {
    --pm-card-bg:#0f172a; --pm-card-bdr:#1f2937; --pm-card-bdr-soft:#162033;
    --pm-ink:#f1f5f9; --pm-ink-2:#cbd5e1; --pm-ink-3:#94a3b8; --pm-ink-4:#64748b;
    --pm-bg-soft:#0b1220; --pm-primary-soft:rgba(59,130,246,0.15);
}
:is(#taxesSvodTab, #esfSvodTab) .tab-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
:is(#taxesSvodTab, #esfSvodTab) .pm-select,
:is(#taxesSvodTab, #esfSvodTab) .pm-search {
    padding:7px 10px; border:1px solid var(--pm-card-bdr); border-radius:8px;
    font-size:13px; font-family:inherit; background:var(--pm-card-bg); color:var(--pm-ink);
    outline:none; min-width:120px; transition:border-color .15s, box-shadow .15s;
}
:is(#taxesSvodTab, #esfSvodTab) .pm-search { min-width:240px; }
:is(#taxesSvodTab, #esfSvodTab) .pm-select:focus,
:is(#taxesSvodTab, #esfSvodTab) .pm-search:focus { border-color:var(--pm-primary); box-shadow:0 0 0 3px var(--pm-primary-soft); }
:is(#taxesSvodTab, #esfSvodTab) .pm-btn {
    display:inline-flex; align-items:center; gap:6px; padding:7px 12px;
    border:1px solid var(--pm-card-bdr); background:var(--pm-card-bg); color:var(--pm-ink);
    border-radius:8px; font-size:12.5px; font-weight:500; cursor:pointer; font-family:inherit; white-space:nowrap;
    transition:border-color .15s, color .15s;
}
:is(#taxesSvodTab, #esfSvodTab) .pm-btn:hover { border-color:var(--pm-primary); color:var(--pm-primary); }

/* KPI-шапка */
:is(#taxesSvodTab, #esfSvodTab) .pm-hero {
    display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:10px; margin:10px 0 12px;
}
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi {
    position:relative; background:var(--pm-card-bg); border:1px solid var(--pm-card-bdr);
    border-radius:12px; padding:12px 16px; min-height:92px;
    display:flex; flex-direction:column; gap:4px; overflow:hidden;
    box-shadow:0 1px 2px rgba(15,23,42,0.04);
}
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi.pm-kpi-main {
    background:linear-gradient(135deg,#074783 0%,#1e40af 100%); color:#fff; border-color:transparent;
}
body[data-theme="dark"] :is(#taxesSvodTab, #esfSvodTab) .pm-kpi.pm-kpi-main { background:linear-gradient(135deg,#1e3a8a 0%,#3b82f6 100%); }
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi-label {
    font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--pm-ink-3);
}
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi.pm-kpi-main .pm-kpi-label { color:rgba(255,255,255,0.82); }
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi-value {
    font-size:26px; font-weight:650; color:var(--pm-ink); font-variant-numeric:tabular-nums; line-height:1.15;
    display:flex; align-items:baseline; gap:6px; flex-wrap:wrap;
}
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi.pm-kpi-main .pm-kpi-value { color:#fff; }
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi-sub { font-size:12px; color:var(--pm-ink-3); }
:is(#taxesSvodTab, #esfSvodTab) .pm-kpi.pm-kpi-main .pm-kpi-sub { color:rgba(255,255,255,0.82); }

/* Таблица */
:is(#taxesSvodTab, #esfSvodTab) .pm-table-card {
    background:var(--pm-card-bg); border:1px solid var(--pm-card-bdr); border-radius:12px;
    /* overflow:visible — чтобы sticky-шапка липла к скроллу страницы (#taxesSvodTab.active),
       а не к самой карточке (иначе при длинной таблице шапка уезжает вместе со страницей). */
    overflow:visible; box-shadow:0 1px 2px rgba(15,23,42,0.04);
}
:is(#taxesSvodTab, #esfSvodTab) .pm-table-scroll { overflow:visible; padding-bottom:8px; }
:is(#taxesSvodTab, #esfSvodTab) .pm-table { width:100%; border-collapse:collapse; font-size:13px; }
:is(#taxesSvodTab, #esfSvodTab) .pm-table thead th {
    padding:11px 14px; text-align:left; font-size:11px; font-weight:600; text-transform:uppercase;
    letter-spacing:.04em; color:var(--pm-ink-3); background:var(--pm-bg-soft);
    border-bottom:1px solid var(--pm-card-bdr); position:sticky; top:0; z-index:2; white-space:nowrap;
}
:is(#taxesSvodTab, #esfSvodTab) .pm-table tbody tr { transition:background .12s; }
:is(#taxesSvodTab, #esfSvodTab) .pm-table tbody tr:hover { background:var(--pm-primary-soft); }
:is(#taxesSvodTab, #esfSvodTab) .pm-table tbody td {
    padding:10px 14px; border-bottom:1px solid var(--pm-card-bdr-soft); color:var(--pm-ink); vertical-align:middle;
}
:is(#taxesSvodTab, #esfSvodTab) .pm-table tbody tr:last-child td { border-bottom:0; }
:is(#taxesSvodTab, #esfSvodTab) .pm-loading, :is(#taxesSvodTab, #esfSvodTab) .pm-empty {
    text-align:center; color:var(--pm-ink-3); padding:60px 0; font-size:13px;
}
@media (max-width:980px) { :is(#taxesSvodTab, #esfSvodTab) .pm-hero { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { :is(#taxesSvodTab, #esfSvodTab) .pm-hero { grid-template-columns:1fr; } }

/* Сдача ЭСФ: чипы-фильтры статуса и бейджи статусов */
:is(#taxesSvodTab, #esfSvodTab) .pm-btn.pm-btn-active {
    border-color:var(--pm-primary); color:var(--pm-primary); background:var(--pm-primary-soft); font-weight:600;
}
#esfSvodTab .esfsv-badge { display:inline-block; padding:2px 9px; border-radius:10px; font-size:11.5px; white-space:nowrap; }
#esfSvodTab .esfsv-ok { background:rgba(34,197,94,.13); color:#15803d; }
#esfSvodTab .esfsv-wait { background:rgba(245,158,11,.14); color:#b45309; }
#esfSvodTab .esfsv-err { background:rgba(239,68,68,.13); color:#b91c1c; }
body[data-theme="dark"] #esfSvodTab .esfsv-ok { color:#4ade80; }
body[data-theme="dark"] #esfSvodTab .esfsv-wait { color:#fbbf24; }
body[data-theme="dark"] #esfSvodTab .esfsv-err { color:#f87171; }

/* ── Лента событий (feed view) ── */
#paymentsTab .pm-feed-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 14px;
    align-items: flex-start;
}
#paymentsTab .pm-panel {
    background: var(--pm-card-bg);
    border: 1px solid var(--pm-card-bdr);
    border-radius: 12px;
    overflow: hidden;
}
#paymentsTab .pm-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--pm-card-bdr-soft);
    background: var(--pm-bg-soft);
}
#paymentsTab .pm-panel-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--pm-ink);
}
#paymentsTab .pm-panel-body { padding: 8px 0; }
#paymentsTab .pm-feed-body { max-height: calc(100vh - 430px); min-height: 360px; overflow-y: auto; padding: 0 0 12px; }
#paymentsTab .pm-feed-filter { display: flex; gap: 4px; }

#paymentsTab .pm-feed-day {
    padding: 10px 16px 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--pm-ink-4);
    background: var(--pm-card-bg);
    position: sticky;
    top: 0;
    z-index: 1;
    border-top: 1px solid var(--pm-card-bdr-soft);
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}
#paymentsTab .pm-feed-day:first-child { border-top: 0; }
#paymentsTab .pm-feed-day-label { flex: 1 1 auto; min-width: 0; }
#paymentsTab .pm-feed-day-total {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    color: #16a34a;
    letter-spacing: 0;
    text-transform: none;
    background: rgba(22, 163, 74, .08);
    padding: 2px 8px;
    border-radius: 999px;
}

#paymentsTab .pm-feed-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--pm-card-bdr-soft);
    transition: background .1s;
}
#paymentsTab .pm-feed-item:hover { background: var(--pm-bg-soft); }
#paymentsTab .pm-feed-dot {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 13px;
    background: var(--pm-paid-bg);
    color: var(--pm-paid-text);
    border: 1px solid var(--pm-paid-bdr);
}
#paymentsTab .pm-feed-dot.paynet {
    background: var(--pm-paynet-bg);
    color: var(--pm-paynet-text);
    border-color: var(--pm-paynet-bdr);
}
#paymentsTab .pm-feed-dot.unpaid {
    background: var(--pm-unpaid-bg);
    color: var(--pm-unpaid-text);
    border-color: var(--pm-unpaid-bdr);
}
#paymentsTab .pm-feed-main { flex: 1; min-width: 0; }
#paymentsTab .pm-feed-text { font-size: 13px; color: var(--pm-ink); line-height: 1.35; }
#paymentsTab .pm-feed-text b { font-weight: 600; }
#paymentsTab .pm-feed-meta { margin-top: 3px; font-size: 11.5px; color: var(--pm-ink-3); font-variant-numeric: tabular-nums; }
#paymentsTab .pm-feed-amt {
    font-weight: 650;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
#paymentsTab .pm-feed-amt.paid   { color: var(--pm-paid-text); }
#paymentsTab .pm-feed-amt.unpaid { color: var(--pm-unpaid-text); }

/* Aside-панели при режиме «лента» */
#paymentsTab .pm-feed-aside { display: flex; flex-direction: column; gap: 14px; }
#paymentsTab .pm-feed-aside .pm-panel-body { padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
#paymentsTab .pm-breakdown-row { }
#paymentsTab .pm-breakdown-top {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 12px;
    color: var(--pm-ink-2);
    margin-bottom: 4px;
}
#paymentsTab .pm-breakdown-top b { color: var(--pm-ink); font-variant-numeric: tabular-nums; }
#paymentsTab .pm-breakdown-bar {
    height: 6px;
    background: var(--pm-bg-soft);
    border-radius: 3px;
    overflow: hidden;
}
#paymentsTab .pm-breakdown-bar > span { display: block; height: 100%; border-radius: 3px; }
#paymentsTab .pm-breakdown-bar > span.paid    { background: var(--pm-paid); }
#paymentsTab .pm-breakdown-bar > span.partial { background: var(--pm-partial); }
#paymentsTab .pm-breakdown-bar > span.unpaid  { background: var(--pm-unpaid); }
#paymentsTab .pm-breakdown-bar > span.nocharge { background: var(--pm-nocharge); }

#paymentsTab .pm-priority-panel .pm-panel-head {
    background: var(--pm-unpaid-bg);
    border-bottom-color: var(--pm-unpaid-bdr);
}
#paymentsTab .pm-priority-panel .pm-panel-title { color: var(--pm-unpaid-text); }
#paymentsTab .pm-priority-amount {
    font-size: 22px;
    font-weight: 700;
    color: var(--pm-unpaid-text);
    font-variant-numeric: tabular-nums;
}
#paymentsTab .pm-priority-sub {
    font-size: 12px;
    color: var(--pm-ink-3);
    margin-bottom: 10px;
}
#paymentsTab .pm-paynet-panel .pm-panel-title { color: var(--pm-paynet-text); }
#paymentsTab .pm-paynet-amount {
    font-size: 22px;
    font-weight: 700;
    color: var(--pm-paynet-text);
    font-variant-numeric: tabular-nums;
}
#paymentsTab .pm-paynet-sub {
    font-size: 12px;
    color: var(--pm-ink-3);
}

/* Адаптация на узких экранах */
@media (max-width: 1280px) {
    #paymentsTab .pm-hero { grid-template-columns: 1fr 1fr; }
    #paymentsTab .pm-feed-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    #paymentsTab .pm-hero { grid-template-columns: 1fr; }
}

/* Кнопки в тулбаре — высота = pm-select */
#paymentsTab .tab-actions .btn-secondary,
#employees_pageTab .tab-actions .btn-secondary {
    padding: 7px 12px;
    font-size: 13px;
}

/* Кнопка обновления — индикатор загрузки */
#paymentsTab .pm-btn-refresh.is-loading svg { animation: pmSpin 0.9s linear infinite; }
@keyframes pmSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ========== /ВКЛАДКА "НОЧНОЙ СВОД" ========== */

/* ============================================================
   IZI Expert 2.0 — AI-помощник в чатах (фаза 04, инкрементальная)
   Старый дизайн чата + кнопка «Позвать помощника» + AI-сообщения + лента мета-AI
   ============================================================ */

/* AI-bubble: лиловая полоса слева + бейдж "AI" сверху-справа */
.chat-bubble--ai {
    align-self: flex-start;
    background: #f5f3ff;
    color: #1f2937;
    border: 1px solid #ddd6fe;
    border-left: 3px solid #7c3aed;
    border-radius: 4px 16px 16px 16px;
    position: relative;
    padding-right: 36px !important;
}
body[data-theme="dark"] .chat-bubble--ai {
    background: #2e1065;
    color: #ede9fe;
    border-color: #5b21b6;
    border-left-color: #a78bfa;
}
.chat-bubble--ai::before {
    content: 'AI';
    position: absolute;
    top: 4px;
    right: 8px;
    font-size: 9px;
    background: #7c3aed;
    color: white;
    padding: 1px 6px;
    border-radius: 3px;
    font-weight: 700;
    letter-spacing: 0.05em;
}
.chat-bubble--ai .chat-bubble-time {
    color: #6b7280;
}
body[data-theme="dark"] .chat-bubble--ai .chat-bubble-time {
    color: #c4b5fd;
}

/* «Позвать помощника» — кнопка в шапке чата */
.chat-assistant-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid #7c3aed;
    border-radius: 6px;
    background: transparent;
    color: #7c3aed;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s;
}
.chat-assistant-trigger:hover {
    background: #f5f3ff;
}
.chat-assistant-trigger:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
body[data-theme="dark"] .chat-assistant-trigger:hover {
    background: rgba(124, 58, 237, 0.15);
}

/* Дропдаун с промптами */
.chat-assistant-dropdown {
    position: absolute;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.12);
    min-width: 280px;
    max-width: 360px;
    padding: 6px;
    z-index: 9999;
    max-height: 360px;
    overflow-y: auto;
}
.chat-assistant-dropdown .cv2-prompt-option {
    display: block;
    width: 100%;
    text-align: left;
    padding: 8px 12px;
    border-radius: 4px;
    border: none;
    background: transparent;
    color: var(--text-color, #1f2937);
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
}
.chat-assistant-dropdown .cv2-prompt-option:hover {
    background: #f5f3ff;
}
body[data-theme="dark"] .chat-assistant-dropdown .cv2-prompt-option:hover {
    background: rgba(124, 58, 237, 0.15);
}
.chat-assistant-dropdown .cv2-prompt-option strong {
    display: block;
    font-size: 13px;
    color: var(--text-color, #1f2937);
}
.chat-assistant-dropdown .cv2-prompt-option small {
    display: block;
    font-size: 11px;
    color: var(--text-muted, #6b7280);
    margin-top: 2px;
}
.chat-assistant-dropdown .cv2-prompt-empty {
    padding: 10px 12px;
    color: var(--text-muted, #6b7280);
    font-size: 12px;
    text-align: center;
}
.chat-assistant-dropdown-footer {
    margin-top: 4px;
    padding: 8px 6px 4px;
    border-top: 1px solid var(--border-color, #e5e7eb);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.chat-assistant-dropdown-footer .cv2-prompt-context-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-color, #1f2937);
    padding: 4px 8px;
    cursor: pointer;
    user-select: none;
    border-radius: 4px;
}
.chat-assistant-dropdown-footer .cv2-prompt-context-toggle:hover {
    background: rgba(124, 58, 237, 0.06);
}
.chat-assistant-dropdown-footer .cv2-prompt-context-toggle input {
    margin: 0;
    cursor: pointer;
    accent-color: #7c3aed;
}
.chat-assistant-dropdown-footer .cv2-prompt-context-hint {
    font-size: 10.5px;
    color: var(--text-muted, #6b7280);
    line-height: 1.4;
    padding: 0 8px;
}
.chat-assistant-dropdown-footer .cv2-prompt-settings {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 6px;
    background: transparent;
    color: #7c3aed;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.chat-assistant-dropdown-footer .cv2-prompt-settings:hover {
    background: rgba(124, 58, 237, 0.08);
    border-color: #7c3aed;
}
body[data-theme="dark"] .chat-assistant-dropdown-footer .cv2-prompt-settings:hover {
    background: rgba(124, 58, 237, 0.2);
}

/* Плашка «Работает агент: X • Стоп» — над input area */
.chat-ai-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    background: linear-gradient(135deg, #7c3aed, #a855f7);
    color: #fff;
    font-size: 13px;
    border-top: 1px solid #6d28d9;
    animation: chatAiPulse 3s ease-in-out infinite;
}
.chat-ai-bar.is-typing {
    animation: chatAiPulse 1s ease-in-out infinite;
}
.chat-ai-bar .chat-ai-bar-icon {
    font-size: 16px;
}
.chat-ai-bar .chat-ai-bar-text {
    flex: 1;
}
.chat-ai-bar .chat-ai-bar-text strong {
    font-weight: 600;
}
.chat-ai-bar .chat-ai-bar-stop {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    border: none;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.chat-ai-bar .chat-ai-bar-stop:hover {
    background: rgba(255, 255, 255, 0.3);
}
@keyframes chatAiPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.85; }
}

/* Lock textarea while AI is active */
.chat-input-area.is-ai-locked {
    position: relative;
    opacity: 0.55;
    pointer-events: none;
}
.chat-input-area.is-ai-locked::after {
    content: '🤖 Окно ввода заблокировано — работает AI-помощник';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(245, 243, 255, 0.85);
    color: #7c3aed;
    font-size: 12px;
    font-weight: 500;
    pointer-events: auto;
    border-radius: 0;
}
body[data-theme="dark"] .chat-input-area.is-ai-locked::after {
    background: rgba(46, 16, 101, 0.9);
    color: #ddd6fe;
}

/* AI-индикатор на конверсейшен-карточке в сайдбаре */
.chat-conv-ai-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 6px;
    padding: 1px 5px;
    background: #7c3aed;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: 0.05em;
    vertical-align: middle;
}

/* Лента мета-AI в закрепе сверху сайдбара */
.chat-meta-feed-pin {
    border-bottom: 1px solid var(--border-color, #e5e7eb);
    background: linear-gradient(to right, #fef3c7, #fde68a);
    padding: 8px 12px;
    flex-shrink: 0;
}
body[data-theme="dark"] .chat-meta-feed-pin {
    background: linear-gradient(to right, #78350f, #92400e);
}
.chat-meta-feed-pin.is-empty {
    background: var(--card-bg, #fff);
    color: var(--text-muted, #6b7280);
    font-size: 11px;
    padding: 6px 12px;
    text-align: center;
    border-bottom: 1px solid var(--border-light, #f1f5f9);
}
.chat-meta-feed-pin-header {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 12px;
    color: #78350f;
}
body[data-theme="dark"] .chat-meta-feed-pin-header {
    color: #fef3c7;
}
.chat-meta-feed-pin-summary {
    flex: 1;
    line-height: 1.3;
}
.chat-meta-feed-pin-summary strong {
    color: #dc2626;
}
.chat-meta-feed-pin-toggle {
    font-size: 11px;
    background: transparent;
    border: none;
    color: #1d4ed8;
    cursor: pointer;
    text-decoration: underline;
}
.chat-meta-feed-pin-events {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    max-height: 220px;
    overflow-y: auto;
    background: var(--card-bg, #fff);
    border-radius: 4px;
}
.chat-meta-feed-event {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    padding: 6px 8px;
    border-bottom: 1px solid var(--border-light, #f1f5f9);
    cursor: pointer;
    font-size: 12px;
}
.chat-meta-feed-event:hover {
    background: var(--bg-hover, #f1f5f9);
}
.chat-meta-feed-event:last-child {
    border-bottom: none;
}
.chat-meta-feed-event-body {
    flex: 1;
}
.chat-meta-feed-event-title {
    font-weight: 500;
    color: var(--text-color, #1f2937);
}
.chat-meta-feed-event-meta {
    font-size: 10px;
    color: var(--text-muted, #6b7280);
    margin-top: 2px;
}
.chat-meta-feed-event-ack {
    font-size: 10px;
    color: #1d4ed8;
    background: transparent;
    border: none;
    padding: 2px 6px;
    cursor: pointer;
}
.chat-meta-feed-event-ack:hover {
    text-decoration: underline;
}
.chat-meta-feed-sev-error { color: #dc2626; }
.chat-meta-feed-sev-warn  { color: #d97706; }
.chat-meta-feed-sev-info  { color: #2563eb; }

/* iziexpert-2.0 фаза 06: severity-маркеры на событиях мета-AI. */
.chat-meta-feed-event[data-severity="critical"],
.chat-meta-feed-event[data-severity="error"]    { border-left: 4px solid #dc2626; background: #fef2f2; }
.chat-meta-feed-event[data-severity="warn"]     { border-left: 4px solid #f59e0b; background: #fffbeb; }
.chat-meta-feed-event[data-severity="info"]     { border-left: 4px solid #6b7280; }
body[data-theme="dark"] .chat-meta-feed-event[data-severity="critical"],
body[data-theme="dark"] .chat-meta-feed-event[data-severity="error"]    { background: rgba(220, 38, 38, 0.15); }
body[data-theme="dark"] .chat-meta-feed-event[data-severity="warn"]     { background: rgba(245, 158, 11, 0.12); }

/* ========== /AI-помощник в чатах (фаза 04) ========== */

/* ========== Process handoffs (iziexpert-2.0 фаза 05) ========== */

/* Bulk-bar над таблицей оплат */
.payments-bulk-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    margin: 8px 12px;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
    border-radius: 10px;
    font-size: 13px;
    box-shadow: 0 4px 14px rgba(37,99,235,0.18);
    animation: handoffBulkSlide 0.18s ease-out;
}
@keyframes handoffBulkSlide {
    from { transform: translateY(-6px); opacity: 0; }
    to   { transform: translateY(0);     opacity: 1; }
}
.payments-bulk-bar .payments-bulk-text {
    flex: 1;
    color: #fff;
}
.payments-bulk-bar .payments-bulk-text strong {
    font-weight: 700;
    font-size: 14px;
}
.payments-bulk-bar .btn-secondary {
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.28);
    color: #fff;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.payments-bulk-bar .btn-secondary:hover {
    background: rgba(255,255,255,0.3);
}
.payments-bulk-bar #payBulkHandoff {
    background: rgba(255,255,255,0.95);
    color: #2563eb;
}
.payments-bulk-bar #payBulkHandoff:hover {
    background: #fff;
}

.pm-table .pm-check {
    text-align: center;
    width: 32px;
}
.pm-table .pm-check input[type="checkbox"] {
    cursor: pointer;
    width: 16px; height: 16px;
}
.pm-table thead th input[type="checkbox"] {
    cursor: pointer;
    width: 16px; height: 16px;
}

/* Универсальный bulk-bar для Свода/других таблиц (paymentsBulkBar — самостоятельный alias) */
.crm-bulk-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    margin: 8px 12px;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    color: #fff;
    border-radius: 10px;
    font-size: 13px;
    box-shadow: 0 4px 14px rgba(37,99,235,0.18);
    animation: handoffBulkSlide 0.18s ease-out;
    position: sticky;
    top: 0;
    z-index: 5;
}
.crm-bulk-bar .crm-bulk-text { flex: 1; color: #fff; }
.crm-bulk-bar .crm-bulk-text strong { font-weight: 700; font-size: 14px; }
.crm-bulk-bar .btn-secondary {
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.28);
    color: #fff;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.crm-bulk-bar .btn-secondary:hover { background: rgba(255,255,255,0.3); }
.crm-bulk-bar .btn-secondary:first-of-type {
    background: rgba(255,255,255,0.95);
    color: #2563eb;
}
.crm-bulk-bar .btn-secondary:first-of-type:hover { background: #fff; }

.svod-bulk-cell {
    width: 32px;
    text-align: center;
    padding: 0 6px !important;
}
.svod-bulk-cell input[type="checkbox"] {
    cursor: pointer;
    width: 16px; height: 16px;
}

/* Counter-виджет на стр Оплата (msg 102563) */
.payments-handoff-counter {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 14px;
    margin: 0 12px 8px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 12.5px;
    color: #475569;
}
.payments-handoff-counter[hidden] { display: none !important; }
.payments-handoff-counter .pm-hcnt-title {
    font-weight: 600;
    color: #334155;
    margin-right: 4px;
}
.payments-handoff-counter .pm-hcnt-sep { color: #cbd5e1; }
.payments-handoff-counter .pm-hcnt-item strong {
    margin-left: 4px;
    font-weight: 700;
    color: #0f172a;
}
.payments-handoff-counter .pm-hcnt-progress strong { color: #2563eb; }
.payments-handoff-counter .pm-hcnt-success strong  { color: #16a34a; }
.payments-handoff-counter .pm-hcnt-problem strong  { color: #dc2626; }

/* Handoff modal (общая) */
.handoff-modal-backdrop {
    position: fixed; inset: 0;
    background: rgba(15, 23, 42, 0.55);
    z-index: 9000;
    display: flex; align-items: center; justify-content: center;
    backdrop-filter: blur(2px);
    animation: handoffFadeIn 0.15s ease-out;
}
@keyframes handoffFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
.handoff-modal {
    background: var(--bg-1, #fff);
    color: var(--ink-1, #0f172a);
    width: min(540px, 92vw);
    max-height: 92vh;
    overflow: auto;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.28);
    display: flex; flex-direction: column;
    animation: handoffSlideUp 0.18s ease-out;
}
@keyframes handoffSlideUp {
    from { transform: translateY(8px); opacity: 0; }
    to   { transform: translateY(0);   opacity: 1; }
}
.handoff-modal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px 8px;
    border-bottom: 1px solid var(--bd-1, #e5e7eb);
}
.handoff-modal-head h3 { margin: 0; font-size: 16px; font-weight: 700; }
.handoff-modal-close {
    background: transparent; border: none; cursor: pointer;
    font-size: 22px; line-height: 1; color: #64748b;
}
.handoff-modal-close:hover { color: #0f172a; }
.handoff-modal-body { padding: 16px 20px; display: flex; flex-direction: column; gap: 14px; }
.handoff-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.handoff-field > span { font-weight: 600; color: var(--ink-2, #475569); }
.handoff-field input[type="text"],
.handoff-field input[type="number"],
.handoff-field select,
.handoff-field textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--bd-1, #d1d5db);
    border-radius: 6px;
    background: var(--bg-2, #fff);
    color: var(--ink-1, #0f172a);
    font: inherit;
    box-sizing: border-box;
}
.handoff-field textarea { min-height: 88px; resize: vertical; }
.handoff-field input:disabled { background: #f3f4f6; color: #6b7280; }
.handoff-hint { color: #64748b; font-size: 11px; margin-top: 2px; }
.handoff-info {
    background: #fef3c7; color: #92400e;
    border: 1px solid #fde68a;
    padding: 8px 10px; border-radius: 6px;
    font-size: 12px; margin: 0;
}
.handoff-modal-actions {
    display: flex; justify-content: flex-end; gap: 8px;
    padding: 12px 20px 16px;
    border-top: 1px solid var(--bd-1, #e5e7eb);
}
.handoff-modal-actions .btn-primary {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    border: none; color: #fff;
    padding: 8px 18px; border-radius: 6px;
    font-weight: 600; cursor: pointer;
}
.handoff-modal-actions .btn-primary:hover { filter: brightness(1.07); }
.handoff-modal-actions .btn-secondary {
    background: #f1f5f9; color: #0f172a;
    border: 1px solid #e2e8f0;
    padding: 8px 16px; border-radius: 6px;
    cursor: pointer;
}
.handoff-modal-actions .btn-secondary:hover { background: #e2e8f0; }
body[data-theme="dark"] .handoff-modal { background: #0f172a; color: #f1f5f9; }
body[data-theme="dark"] .handoff-modal-head { border-color: #1e293b; }
body[data-theme="dark"] .handoff-field input,
body[data-theme="dark"] .handoff-field select,
body[data-theme="dark"] .handoff-field textarea {
    background: #1e293b; color: #f1f5f9; border-color: #334155;
}
body[data-theme="dark"] .handoff-info { background: rgba(251,191,36,0.12); color: #fde68a; border-color: rgba(251,191,36,0.3); }
body[data-theme="dark"] .handoff-modal-actions { border-color: #1e293b; }
body[data-theme="dark"] .handoff-modal-actions .btn-secondary { background: #1e293b; color: #f1f5f9; border-color: #334155; }

/* Handoff-summary в сайдбаре чатов */
.chat-handoff-summary {
    margin: 6px 12px;
    padding: 8px 10px;
    background: linear-gradient(135deg, rgba(37,99,235,0.06), rgba(124,58,237,0.06));
    border: 1px solid rgba(124,58,237,0.18);
    border-radius: 10px;
    font-size: 12px;
}
body[data-theme="dark"] .chat-handoff-summary {
    background: linear-gradient(135deg, rgba(37,99,235,0.16), rgba(124,58,237,0.16));
    border-color: rgba(124,58,237,0.4);
}
.chat-handoff-summary[hidden] { display: none; }
.chat-handoff-summary-head {
    display: flex; align-items: center; justify-content: space-between;
    color: #475569; font-weight: 600; padding-bottom: 4px;
}
body[data-theme="dark"] .chat-handoff-summary-head { color: #cbd5f5; }
.chat-handoff-clear {
    background: rgba(239,68,68,0.12); color: #b91c1c; border: 1px solid rgba(239,68,68,0.3);
    border-radius: 999px; padding: 2px 8px; font-size: 11px; cursor: pointer;
}
.chat-handoff-summary-list { display: flex; flex-direction: column; gap: 4px; }
.chat-topic-summary {
    width: 100%;
    display: grid; grid-template-columns: auto auto 1fr; gap: 6px;
    align-items: center;
    background: rgba(255,255,255,0.6);
    border: 1px solid rgba(124,58,237,0.18);
    border-radius: 8px;
    padding: 6px 8px;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font-size: 12px;
    transition: background 0.12s, border-color 0.12s;
}
.chat-topic-summary:hover { background: rgba(255,255,255,0.85); }
.chat-topic-summary.is-active { background: linear-gradient(135deg, #2563eb, #7c3aed); color: #fff; border-color: #6d28d9; }
.chat-topic-summary.is-active .chat-topic-pending,
.chat-topic-summary.is-active .chat-topic-resolved { color: #fef3c7; }
body[data-theme="dark"] .chat-topic-summary { background: rgba(255,255,255,0.06); }
body[data-theme="dark"] .chat-topic-summary:hover { background: rgba(255,255,255,0.12); }
.chat-topic-icon { font-size: 14px; }
.chat-topic-label { font-weight: 600; }
.chat-topic-counts { color: #64748b; font-size: 11px; text-align: right; }
.chat-topic-summary.is-active .chat-topic-counts { color: rgba(255,255,255,0.92); }
.chat-topic-pending { color: #d97706; font-weight: 600; }
.chat-topic-resolved { color: #16a34a; }

/* Topic banner в шапке открытого чата */
.chat-topic-banner {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 14px;
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    color: #78350f;
    border-bottom: 1px solid #fcd34d;
    font-size: 13px;
    animation: handoffBulkSlide 0.18s ease-out;
}
body[data-theme="dark"] .chat-topic-banner {
    background: linear-gradient(135deg, rgba(251,191,36,0.18), rgba(217,119,6,0.18));
    color: #fde68a; border-color: rgba(251,191,36,0.3);
}
.chat-topic-banner-icon { font-size: 16px; }
.chat-topic-banner-text { flex: 1; }
.chat-topic-banner-text strong { font-weight: 700; }
.chat-topic-banner-start, .chat-topic-banner-cancel {
    border: none; cursor: pointer; padding: 5px 12px;
    border-radius: 6px; font-size: 12px; font-weight: 600;
}
.chat-topic-banner-start {
    background: linear-gradient(135deg, #16a34a, #22c55e);
    color: #fff;
}
.chat-topic-banner-start:hover { filter: brightness(1.08); }
.chat-topic-banner-cancel {
    background: rgba(120,53,15,0.12); color: #78350f;
}
.chat-topic-banner-cancel:hover { background: rgba(120,53,15,0.22); }
body[data-theme="dark"] .chat-topic-banner-cancel { background: rgba(255,255,255,0.1); color: #fde68a; }

/* «Темы (X+Y)» ссылка в шапке чата */
.chat-header-topics {
    color: var(--ink-2, #64748b);
    font-size: 12px;
}
.chat-header-topics-link {
    color: #7c3aed; cursor: pointer; text-decoration: none;
    font-weight: 600;
}
.chat-header-topics-link:hover { text-decoration: underline; }

/* Popover «темы клиента» */
.chat-topics-popover {
    position: fixed;
    z-index: 9100;
    width: 360px;
    max-height: 70vh; overflow: auto;
    background: var(--bg-1, #fff);
    color: var(--ink-1, #0f172a);
    border: 1px solid var(--bd-1, #e5e7eb);
    border-radius: 10px;
    padding: 8px;
    box-shadow: 0 14px 40px rgba(0,0,0,0.18);
    display: flex; flex-direction: column; gap: 6px;
}
body[data-theme="dark"] .chat-topics-popover { background: #0f172a; color: #f1f5f9; border-color: #1e293b; }
.chat-topic-pop-row {
    border: 1px solid var(--bd-1, #e5e7eb);
    border-radius: 8px;
    padding: 8px 10px;
    background: var(--bg-2, #f8fafc);
    font-size: 12px;
    display: flex; flex-direction: column; gap: 6px;
}
body[data-theme="dark"] .chat-topic-pop-row { background: #1e293b; border-color: #334155; }
.chat-topic-pop-row[data-status="active"] { border-color: #16a34a; background: rgba(22,163,74,0.06); }
.chat-topic-pop-row[data-status="queued"] { border-color: #d97706; background: rgba(217,119,6,0.06); }
.chat-topic-pop-row-head {
    display: flex; justify-content: space-between; align-items: center;
}
.chat-topic-pop-status { font-size: 11px; color: #64748b; }
.chat-topic-pop-tpl { color: #475569; font-style: italic; line-height: 1.3; }
body[data-theme="dark"] .chat-topic-pop-tpl { color: #cbd5f5; }
.chat-topic-pop-actions { display: flex; justify-content: flex-end; }
.chat-topic-pop-btn {
    background: #2563eb; color: #fff; border: none;
    padding: 4px 10px; border-radius: 5px; cursor: pointer;
    font-size: 11px; font-weight: 600;
}
.chat-topic-pop-btn:hover { background: #1d4ed8; }
.chat-topic-pop-empty { color: #64748b; padding: 8px; }

/* «Закрыть тему» — рядом со «Стоп» в AI-bar */
.chat-ai-bar .chat-ai-bar-close {
    background: rgba(255,255,255,0.92);
    color: #15803d;
    border: none;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.chat-ai-bar .chat-ai-bar-close:hover { background: #fff; }

/* ========== /Process handoffs (фаза 05) ========== */

/* ========== Broadcasts (iziexpert-2.0 фаза 07) ========== */

.chat-modal-backdrop {
    position: fixed; inset: 0;
    background: rgba(15, 23, 42, 0.55);
    z-index: 9100;
    display: flex; align-items: center; justify-content: center;
    backdrop-filter: blur(2px);
    animation: chatBcFadeIn 0.15s ease-out;
}
@keyframes chatBcFadeIn { from { opacity: 0; } to { opacity: 1; } }

.chat-broadcast-modal {
    background: var(--bg-1, #fff);
    color: var(--ink-1, #0f172a);
    width: min(560px, 92vw);
    max-height: 92vh;
    overflow: auto;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.28);
    display: flex; flex-direction: column;
    animation: chatBcSlideUp 0.18s ease-out;
}
@keyframes chatBcSlideUp {
    from { transform: translateY(8px); opacity: 0; }
    to   { transform: translateY(0);   opacity: 1; }
}
.chat-broadcast-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px 8px;
    border-bottom: 1px solid var(--bd-1, #e5e7eb);
}
.chat-broadcast-header h2 { margin: 0; font-size: 16px; font-weight: 700; }
.chat-broadcast-close {
    background: transparent; border: none; cursor: pointer;
    font-size: 22px; line-height: 1; color: #64748b;
}
.chat-broadcast-close:hover { color: #0f172a; }

.chat-broadcast-step {
    padding: 12px 20px;
    border-bottom: 1px solid var(--bd-2, #f1f5f9);
    display: flex; flex-direction: column; gap: 8px;
    font-size: 13px;
}
.chat-broadcast-step:last-of-type { border-bottom: none; }
.chat-bc-lbl { color: var(--ink-2, #475569); font-weight: 500; }
.chat-bc-label { font-weight: 600; color: var(--ink-2, #475569); }
.chat-bc-hint { color: #64748b; font-size: 11px; line-height: 1.8; margin-top: 6px; }

.chat-bc-var-chip {
    display: inline-block;
    padding: 2px 8px;
    margin: 1px 2px;
    background: #eef2ff;
    color: #3730a3;
    border: 1px solid #c7d2fe;
    border-radius: 12px;
    font-size: 11px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    user-select: none;
}
.chat-bc-var-chip:hover {
    background: #c7d2fe;
    border-color: #818cf8;
}

.chat-bc-save-tpl-btn {
    background: none; border: 1px solid #d1d5db; border-radius: 6px;
    color: #475569; font-size: 11px; padding: 3px 10px; cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.chat-bc-save-tpl-btn:hover { background: #f1f5f9; border-color: #94a3b8; }

.chat-bc-del-tpl-btn {
    background: none; border: none; color: #ef4444; font-size: 11px;
    cursor: pointer; padding: 2px 6px;
}
.chat-bc-del-tpl-btn:hover { text-decoration: underline; }

.chat-broadcast-step textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--bd-1, #d1d5db);
    border-radius: 6px;
    background: var(--bg-2, #fff);
    color: var(--ink-1, #0f172a);
    font: inherit;
    box-sizing: border-box;
    resize: vertical;
    min-height: 88px;
}
.chat-broadcast-step select {
    padding: 6px 8px;
    border: 1px solid var(--bd-1, #d1d5db);
    border-radius: 6px;
    background: var(--bg-2, #fff);
    color: var(--ink-1, #0f172a);
    font: inherit;
}
.chat-broadcast-step select:disabled { background: #f3f4f6; color: #6b7280; }

.chat-bc-checkbox { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.chat-bc-checkbox input { margin: 0; }

.chat-bc-sample {
    background: rgba(37, 99, 235, 0.05);
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--ink-2, #475569);
    max-height: 110px; overflow: auto;
}
.chat-bc-sample-title { font-weight: 600; color: #1e3a8a; margin-bottom: 4px; }
.chat-bc-sample-row { color: #334155; }
body[data-theme="dark"] .chat-bc-sample { background: rgba(37, 99, 235, 0.16); color: #cbd5f5; }
body[data-theme="dark"] .chat-bc-sample-title { color: #93c5fd; }
body[data-theme="dark"] .chat-bc-sample-row { color: #e2e8f0; }

.chat-broadcast-actions {
    display: flex; justify-content: flex-end; gap: 8px;
    padding: 12px 20px 16px;
    border-top: 1px solid var(--bd-1, #e5e7eb);
}
.chat-broadcast-actions .btn-primary {
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    border: none; color: #fff;
    padding: 8px 18px; border-radius: 6px;
    font-weight: 600; cursor: pointer;
}
.chat-broadcast-actions .btn-primary:hover { filter: brightness(1.07); }
.chat-broadcast-actions .btn-primary:disabled { opacity: 0.6; cursor: not-allowed; }
.chat-broadcast-actions .btn-secondary {
    background: #f1f5f9; color: #0f172a;
    border: 1px solid #e2e8f0;
    padding: 8px 16px; border-radius: 6px;
    cursor: pointer;
}
.chat-broadcast-actions .btn-secondary:hover { background: #e2e8f0; }

body[data-theme="dark"] .chat-broadcast-modal { background: #0f172a; color: #f1f5f9; }
body[data-theme="dark"] .chat-broadcast-header { border-color: #1e293b; }
body[data-theme="dark"] .chat-broadcast-step { border-color: #1e293b; }
body[data-theme="dark"] .chat-broadcast-step textarea,
body[data-theme="dark"] .chat-broadcast-step select {
    background: #1e293b; color: #f1f5f9; border-color: #334155;
}
body[data-theme="dark"] .chat-broadcast-actions { border-color: #1e293b; }
body[data-theme="dark"] .chat-broadcast-actions .btn-secondary {
    background: #1e293b; color: #f1f5f9; border-color: #334155;
}
body[data-theme="dark"] .chat-bc-var-chip {
    background: #1e1b4b; color: #a5b4fc; border-color: #3730a3;
}
body[data-theme="dark"] .chat-bc-var-chip:hover {
    background: #312e81; border-color: #6366f1;
}
body[data-theme="dark"] .chat-bc-save-tpl-btn {
    color: #94a3b8; border-color: #334155;
}
body[data-theme="dark"] .chat-bc-save-tpl-btn:hover {
    background: #1e293b; border-color: #475569;
}
body[data-theme="dark"] .chat-bc-del-tpl-btn { color: #f87171; }

/* Прогресс-виджет (fixed bottom-right) */
.chat-broadcast-progress {
    position: fixed; right: 20px; bottom: 20px;
    width: 280px;
    background: var(--bg-1, #fff);
    color: var(--ink-1, #0f172a);
    border: 1px solid var(--bd-1, #e5e7eb);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    padding: 12px 14px;
    z-index: 8800;
    display: flex; flex-direction: column; gap: 8px;
    font-size: 13px;
    animation: chatBcSlideUp 0.18s ease-out;
}
.chat-bc-progress-head { font-weight: 700; color: #1e3a8a; }
body[data-theme="dark"] .chat-bc-progress-head { color: #93c5fd; }
.chat-bc-progress-bar {
    height: 8px; border-radius: 999px;
    background: #eef2ff;
    overflow: hidden;
}
body[data-theme="dark"] .chat-bc-progress-bar { background: #1e293b; }
.chat-bc-progress-fill {
    height: 100%;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    transition: width 0.4s ease;
}
.chat-bc-progress-text { color: var(--ink-2, #475569); }
.chat-bc-progress-cancel {
    align-self: flex-end;
    background: #f1f5f9; color: #0f172a;
    border: 1px solid #e2e8f0;
    padding: 4px 10px; border-radius: 5px;
    font-size: 12px; cursor: pointer;
}
.chat-bc-progress-cancel:hover { background: #e2e8f0; }
body[data-theme="dark"] .chat-broadcast-progress { background: #0f172a; border-color: #1e293b; color: #f1f5f9; }
body[data-theme="dark"] .chat-bc-progress-cancel { background: #1e293b; color: #f1f5f9; border-color: #334155; }

/* История рассылок */
.chat-bc-history-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.chat-bc-history-table th, .chat-bc-history-table td {
    padding: 6px 8px; border-bottom: 1px solid var(--bd-2, #eef2f7); text-align: left;
}
.chat-bc-history-table th { color: var(--ink-2, #475569); font-weight: 600; }
.chat-bc-status {
    display: inline-block;
    padding: 1px 8px; border-radius: 999px;
    font-size: 11px; font-weight: 600;
    background: #eef2ff; color: #1e3a8a;
}
.chat-bc-status-completed { background: #dcfce7; color: #166534; }
.chat-bc-status-sending  { background: #fef3c7; color: #92400e; }
.chat-bc-status-failed   { background: #fee2e2; color: #991b1b; }
.chat-bc-status-cancelled{ background: #e2e8f0; color: #475569; }
.chat-bc-status-queued   { background: #eef2ff; color: #1e3a8a; }
.chat-bc-history-loading, .chat-bc-history-empty, .chat-bc-history-error {
    padding: 12px; color: var(--ink-2, #475569); font-size: 13px;
}
.chat-bc-history-error { color: #b91c1c; }

/* ========== /Broadcasts (фаза 07) ========== */

/* ========== AI-промпты редактор (вкладка в /#rules) ========== */
.ai-prompts-container { padding: 16px 0; }
.ai-prompts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
    gap: 16px;
}
.ai-prompt-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
    transition: box-shadow .15s, transform .15s;
}
.ai-prompt-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.06); transform: translateY(-1px); }
.ai-prompt-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.ai-prompt-card-title { display: flex; align-items: center; gap: 8px; }
.ai-prompt-name {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}
.ai-prompt-topic {
    background: #eef2ff;
    color: #4338ca;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
}
.ai-prompt-version {
    font-size: 11px;
    color: #16a34a;
    background: #dcfce7;
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: 600;
}
.ai-prompt-card-desc { color: #475569; font-size: 13px; line-height: 1.4; }
.ai-prompt-card-meta { font-size: 12px; color: #475569; display: flex; flex-direction: column; gap: 4px; }
.ai-prompt-card-meta code {
    background: #f1f5f9;
    color: #1e293b;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 11px;
    margin-right: 3px;
    display: inline-block;
}
.ai-prompt-card-actions { display: flex; gap: 8px; margin-top: 4px; }
.ai-prompts-hint {
    margin-top: 16px;
    padding: 12px 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 12.5px;
    color: #475569;
    line-height: 1.5;
}

/* Modal редактирования промта */
.ai-prompt-modal-backdrop {
    position: fixed; inset: 0;
    background: rgba(15,23,42,0.5);
    display: flex; align-items: center; justify-content: center;
    z-index: 9999;
    padding: 20px;
}
.ai-prompt-modal {
    background: #fff;
    border-radius: 14px;
    max-width: 720px;
    width: 100%;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.ai-prompt-modal-head {
    padding: 16px 20px;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(to right, #f8fafc, #fff);
}
.ai-prompt-modal-head h3 { margin: 0; font-size: 16px; color: #0f172a; }
.ai-prompt-modal-topic { color: #64748b; font-size: 13px; font-weight: 400; }
.ai-prompt-modal-close {
    background: none; border: none;
    font-size: 24px;
    color: #64748b;
    cursor: pointer;
    width: 32px; height: 32px;
    border-radius: 6px;
}
.ai-prompt-modal-close:hover { background: #f1f5f9; color: #0f172a; }
.ai-prompt-modal-body {
    padding: 18px 20px;
    overflow-y: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.ai-prompt-field { display: block; }
.ai-prompt-field > span,
.ai-prompt-field legend {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 6px;
}
.ai-prompt-field input[type="text"],
.ai-prompt-field textarea {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
    color: #0f172a;
    box-sizing: border-box;
}
.ai-prompt-field textarea {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12.5px;
    line-height: 1.5;
    resize: vertical;
}
.ai-prompt-field input:focus,
.ai-prompt-field textarea:focus {
    outline: none;
    border-color: #4f46e5;
    box-shadow: 0 0 0 3px rgba(79,70,229,0.1);
}
.ai-prompt-field small { display: block; margin-top: 4px; color: #64748b; font-size: 11.5px; }
fieldset.ai-prompt-field {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px 14px;
}
fieldset.ai-prompt-field label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #334155;
    padding: 4px 0;
    cursor: pointer;
}
.ai-prompt-tools-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    max-height: 220px;
    overflow-y: auto;
    padding: 4px;
}
.ai-prompt-tool {
    display: flex !important;
    align-items: flex-start !important;
    padding: 6px 8px !important;
    border-radius: 6px;
    transition: background .1s;
}
.ai-prompt-tool:hover { background: #f8fafc; }
.ai-prompt-tool input { margin-top: 2px; flex-shrink: 0; }
.ai-prompt-tool span { font-size: 12.5px; line-height: 1.4; }
.ai-prompt-tool code {
    background: #eef2ff;
    color: #4338ca;
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 11.5px;
    margin-right: 4px;
}
.ai-prompt-modal-actions {
    padding: 14px 20px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    background: #f8fafc;
}

/* Версии промта */
.ai-prompt-version-row {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 10px;
    background: #fff;
}
.ai-prompt-version-row.is-active {
    border-color: #16a34a;
    background: #f0fdf4;
}
.ai-prompt-version-row-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}
.ai-prompt-version-row-head strong {
    font-family: ui-monospace, monospace;
    font-size: 14px;
    color: #0f172a;
}
.ai-prompt-version-badge {
    background: #16a34a;
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}
.ai-prompt-version-date { color: #64748b; font-size: 12px; flex: 1; }
.ai-prompt-version-notes { color: #475569; font-size: 12.5px; margin-bottom: 4px; }
.ai-prompt-version-body {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 10px;
    font-size: 11.5px;
    max-height: 240px;
    overflow: auto;
    white-space: pre-wrap;
    word-wrap: break-word;
    font-family: ui-monospace, monospace;
    margin-top: 6px;
}
/* ========== /AI-промпты редактор ========== */

/* =========================================================================== */
/* ============== ADVERTISING TAB (2026-05-08) =============================== */
/* =========================================================================== */
/* Воронка лидов (kanban), inbox мессенджеров, постинг, аналитика. */

#advertisingTab {
    padding: 0;
    background: #f8fafc;
}

/* Subtabs */
.adv-subtabs {
    display: flex;
    gap: 2px;
    padding: 12px 20px 0;
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    position: sticky;
    top: 0;
    z-index: 10;
}
.adv-subtab {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 10px 16px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #64748b;
    transition: all .15s;
}
.adv-subtab:hover { color: #0f172a; background: #f1f5f9; }
.adv-subtab.active {
    color: #0f172a;
    border-bottom-color: #3b82f6;
    background: #fff;
}

/* Panels */
.adv-panel { display: none; padding: 20px; }
.adv-panel.active { display: block; }

.adv-loading { padding: 40px; text-align: center; color: #94a3b8; font-size: 14px; }
.adv-empty   { padding: 20px; text-align: center; color: #94a3b8; font-size: 13px; font-style: italic; }
.adv-error   { padding: 20px; color: #dc2626; background: #fef2f2; border: 1px solid #fecaca; border-radius: 6px; }

.adv-placeholder { max-width: 640px; margin: 60px auto; text-align: center; }
.adv-placeholder h3 { font-size: 20px; color: #0f172a; margin-bottom: 12px; }
.adv-placeholder p { color: #64748b; line-height: 1.6; margin: 8px 0; }
.adv-placeholder-status { display: inline-block; margin-top: 16px; padding: 8px 14px; background: #fef3c7; color: #92400e; border-radius: 6px; font-size: 13px; }

/* Funnel toolbar */
.adv-funnel-toolbar {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 16px;
    padding: 12px;
    background: #fff;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}
.adv-funnel-toolbar .btn-primary { padding: 8px 14px; font-size: 13px; }
.adv-funnel-toolbar .btn-secondary { padding: 8px 12px; }
.adv-search {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 13px;
    min-width: 240px;
}
/* Дата в аналитике постинга — компактная (inline max-width терялся на flatpickr altInput) */
.adv-analytics-toolbar .adv-search { max-width: 180px; min-width: 140px; }
.adv-funnel-counter { color: #64748b; font-size: 13px; font-weight: 500; white-space: nowrap; }

/* Kanban */
.adv-kanban {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 12px;
    min-height: calc(100vh - 220px);
}
.adv-stage-column {
    flex: 0 0 280px;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 200px);
    transition: background .15s, box-shadow .15s;
}
.adv-stage-column.adv-drag-over {
    background: #dbeafe;
    box-shadow: inset 0 0 0 2px #3b82f6;
}
.adv-stage-header {
    padding: 12px;
    border-top: 3px solid var(--stage-color, #94a3b8);
    border-radius: 8px 8px 0 0;
    background: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    color: #0f172a;
}
.adv-stage-title { font-size: 13px; }
.adv-stage-count {
    background: var(--stage-color, #94a3b8);
    color: #fff;
    border-radius: 12px;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 600;
}
.adv-stage-body {
    padding: 8px;
    overflow-y: auto;
    flex: 1;
}
.adv-stage-empty {
    padding: 16px 8px;
    text-align: center;
    color: #cbd5e1;
    font-size: 12px;
    font-style: italic;
}

/* Lead card (compact, в колонках канбана) */
.adv-lead-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 10px;
    margin-bottom: 8px;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    transition: box-shadow .15s, transform .1s;
}
.adv-lead-card:hover {
    box-shadow: 0 4px 8px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}
.adv-lead-card.adv-dragging {
    opacity: .4;
    cursor: grabbing;
}
.adv-lead-name { font-weight: 600; font-size: 13px; color: #0f172a; margin-bottom: 4px; line-height: 1.3; }
.adv-lead-phone, .adv-lead-inn { font-size: 12px; color: #475569; margin-bottom: 2px; }
.adv-lead-money { font-size: 13px; font-weight: 600; color: #16a34a; margin: 4px 0; }
.adv-lead-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.adv-lead-tag {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 3px;
    background: #f1f5f9;
    color: #475569;
    font-weight: 500;
}
.adv-lead-tag.adv-tag-source { background: #ddd6fe; color: #5b21b6; }
.adv-tag-won { background: #dcfce7; color: #166534; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-weight: 600; }
.adv-tag-lost { background: #fee2e2; color: #991b1b; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-weight: 600; }
.adv-lead-assigned { font-size: 11px; color: #64748b; margin-top: 4px; }
.adv-lead-time { font-size: 10px; color: #94a3b8; margin-top: 6px; text-align: right; }

/* Modal overlay для рекламы */
.adv-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .55);
    z-index: 1200;
    overflow-y: auto;
    padding: 40px 20px;
}
.adv-modal-overlay.open { display: block; }
.adv-modal-content {
    max-width: 660px;
    margin: 0 auto;
    background: #fff;
    border-radius: 14px;
    padding: 22px 28px 24px;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .35);
    border: 1px solid #e9eef5;
}
.adv-modal-content h3 { margin: 0 0 16px; font-size: 19px; font-weight: 700; color: #0f172a; display: flex; align-items: center; gap: 10px; }
.adv-lead-modal-content { max-width: 800px; }
/* Шапка модалки: заголовок + крестик */
.adv-modal-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid #eef2f7;
}
.adv-modal-header h3 { margin: 0; }
.adv-modal-header .btn-close {
    background: #f1f5f9; border: none; width: 30px; height: 30px; border-radius: 8px;
    font-size: 20px; line-height: 1; color: #64748b; cursor: pointer; flex-shrink: 0;
    transition: background .15s, color .15s;
}
.adv-modal-header .btn-close:hover { background: #e2e8f0; color: #0f172a; }

/* Post editor — обновлённый вид */
.adv-pe-opt { font-weight: 400; color: #94a3b8; font-size: 11px; }
.adv-pe-aibuttons { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.btn-ai {
    background: linear-gradient(135deg, #6366f1, #8b5cf6); color: #fff; border: none;
    padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer;
    box-shadow: 0 2px 8px rgba(99, 102, 241, .25); transition: filter .15s, transform .05s;
}
.btn-ai:hover { filter: brightness(1.07); }
.btn-ai:active { transform: translateY(1px); }
.btn-ai:disabled { opacity: .6; cursor: progress; filter: grayscale(.3); }
.adv-pe-img-box {
    margin: 6px 0 8px; border: 1px dashed #cbd5e1; border-radius: 10px; background: #f8fafc;
    min-height: 120px; display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.adv-pe-img-box img { max-width: 100%; max-height: 320px; display: block; border-radius: 8px; }
.adv-pe-img-empty { padding: 28px 16px; color: #94a3b8; font-size: 13px; text-align: center; }
.adv-pe-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.adv-pe-chip {
    display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px;
    border: 1px solid #cbd5e1; border-radius: 999px; font-size: 13px; cursor: pointer;
    color: #475569; background: #fff; transition: all .12s; user-select: none;
}
.adv-pe-chip:hover { border-color: #94a3b8; }
.adv-pe-chip:has(input:checked) { background: #eef2ff; border-color: #6366f1; color: #3730a3; font-weight: 600; }
.adv-pe-chip input { accent-color: #6366f1; }
.adv-pe-published { margin-top: 12px; font-size: 13px; color: #475569; }
.adv-pe-published a { color: #2563eb; }

/* Form inside modal */
.adv-form-row { margin-bottom: 12px; }
.adv-form-row label {
    display: block;
    font-size: 12px;
    color: #475569;
    margin-bottom: 4px;
    font-weight: 500;
}
.adv-form-row input,
.adv-form-row select,
.adv-form-row textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 13px;
    box-sizing: border-box;
    font-family: inherit;
}
.adv-form-row textarea { resize: vertical; min-height: 70px; }
.adv-form-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
}

/* Lead modal: header */
.adv-lead-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}
.adv-lead-header h3 { margin: 0; flex: 1; }
.btn-close {
    background: none;
    border: none;
    font-size: 28px;
    color: #94a3b8;
    cursor: pointer;
    padding: 0 8px;
    line-height: 1;
}
.btn-close:hover { color: #0f172a; }

.adv-lead-meta {
    background: #f8fafc;
    padding: 12px;
    border-radius: 8px;
    margin-bottom: 12px;
    font-size: 13px;
    color: #1e293b;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.adv-lead-meta div { line-height: 1.4; }
.adv-lead-stage { display: flex; align-items: center; gap: 8px; }
.adv-lead-stage label { color: #475569; font-weight: 500; }
.adv-lead-stage select {
    padding: 4px 8px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 13px;
}

.adv-lead-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}
.adv-lead-actions button { padding: 6px 10px; font-size: 12px; }

.adv-lead-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 720px) { .adv-lead-tabs { grid-template-columns: 1fr; } }

.adv-lead-section h4 {
    margin: 0 0 8px;
    font-size: 13px;
    color: #475569;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.adv-events, .adv-messages {
    max-height: 360px;
    overflow-y: auto;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #f8fafc;
}

.adv-event {
    padding: 10px 12px;
    border-bottom: 1px solid #e2e8f0;
    font-size: 12.5px;
}
.adv-event:last-child { border-bottom: none; }
.adv-event-time { color: #94a3b8; font-size: 11px; margin-bottom: 2px; }
.adv-event-text { color: #475569; margin-top: 4px; }
.adv-event-user { color: #64748b; margin-top: 2px; font-style: italic; }
.adv-event-capi_sent .adv-event-body strong { color: #16a34a; }
.adv-event-capi_failed .adv-event-body strong { color: #dc2626; }
.adv-event-stage_changed .adv-event-body strong { color: #3b82f6; }
.adv-event-note { background: #fefce8; }

.adv-msg {
    padding: 8px 12px;
    border-bottom: 1px solid #e2e8f0;
    font-size: 13px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 8px;
}
.adv-msg:last-child { border-bottom: none; }
.adv-msg-channel {
    font-size: 10px;
    background: #ddd6fe;
    color: #5b21b6;
    padding: 1px 5px;
    border-radius: 3px;
    align-self: start;
    text-transform: uppercase;
    font-weight: 600;
}
.adv-msg-inbound .adv-msg-channel { background: #dbeafe; color: #1e40af; }
.adv-msg-outbound .adv-msg-channel { background: #dcfce7; color: #166534; }
.adv-msg-text { color: #1e293b; line-height: 1.4; }
.adv-msg-time { grid-column: 2; color: #94a3b8; font-size: 10px; }

/* Settings panel */
.adv-settings-section {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 16px;
}
.adv-settings-section h3 {
    margin: 0 0 12px;
    font-size: 14px;
    color: #0f172a;
    font-weight: 600;
}

.adv-conn-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
}
.adv-conn-row:last-of-type { border-bottom: none; }
.adv-conn-ok      { color: #16a34a; font-weight: 500; }
.adv-conn-expired { color: #dc2626; font-weight: 500; }
.adv-conn-missing { color: #94a3b8; font-style: italic; }
.adv-conn-actions { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e2e8f0; }
.adv-conn-summary {
    cursor: pointer;
    font-size: 13px;
    color: #475569;
    padding: 6px 0;
    user-select: none;
}
.adv-conn-summary:hover { color: #0f172a; }
.adv-conn-form { padding: 12px 0; }
.adv-conn-form textarea {
    width: 100%;
    padding: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-family: ui-monospace, monospace;
    font-size: 12px;
    resize: vertical;
}
.adv-conn-hint { font-size: 12px; color: #64748b; line-height: 1.5; margin: 0 0 8px; }
.adv-conn-hint code { background: #f1f5f9; padding: 1px 4px; border-radius: 3px; font-size: 11px; }

.adv-stages-list { display: flex; flex-direction: column; gap: 6px; }
.adv-stage-info {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: #f8fafc;
    border-radius: 6px;
    font-size: 13px;
    border-left: 3px solid var(--stage-color, #94a3b8);
}
.adv-stage-info-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--stage-color, #94a3b8);
    flex-shrink: 0;
}
.adv-stage-info-pos { color: #94a3b8; font-weight: 600; min-width: 16px; }
.adv-stage-info-label { color: #0f172a; font-weight: 500; flex: 1; }
.adv-stage-info-slug {
    font-family: ui-monospace, monospace;
    font-size: 11px;
    background: #fff;
    border: 1px solid #e2e8f0;
    padding: 2px 6px;
    border-radius: 3px;
    color: #64748b;
}
.adv-stage-info-capi {
    background: #fef3c7;
    color: #92400e;
    padding: 2px 8px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 600;
}

/* ========== Inbox (Сессия D) ========== */
.adv-inbox {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 0;
    height: calc(100vh - 220px);
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}
.adv-inbox-sidebar {
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    background: #f8fafc;
}
.adv-inbox-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
}
.adv-inbox-counter { color: #64748b; font-size: 12px; }
.adv-inbox-conversations { overflow-y: auto; flex: 1; }
.adv-inbox-row {
    padding: 10px 12px;
    border-bottom: 1px solid #f1f5f9;
    cursor: pointer;
    transition: background 0.15s;
}
.adv-inbox-row:hover { background: #f1f5f9; }
.adv-inbox-row.active { background: #dbeafe; }
.adv-inbox-row-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.adv-inbox-name { font-weight: 600; color: #0f172a; flex: 1; font-size: 13px; }
.adv-inbox-unread {
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 9px;
    min-width: 18px;
    text-align: center;
}
.adv-inbox-row-stage {
    display: inline-block;
    font-size: 11px;
    color: var(--stage-color, #64748b);
    background: color-mix(in srgb, var(--stage-color, #64748b) 12%, white);
    padding: 1px 6px;
    border-radius: 3px;
    margin-bottom: 4px;
}
.adv-inbox-row-last { color: #64748b; font-size: 12px; line-height: 1.3; margin-bottom: 4px; }
.adv-inbox-row-time { color: #94a3b8; font-size: 11px; }

.adv-ch {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    background: #e2e8f0;
    color: #475569;
}
.adv-ch-wa { background: #25d366; color: #fff; }
.adv-ch-tg { background: #0088cc; color: #fff; }
.adv-ch-ig { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); color: #fff; }
.adv-ch-fb { background: #1877f2; color: #fff; }

.adv-inbox-conversation {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}
.adv-inbox-conv-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}
.adv-inbox-conv-channel { color: #64748b; font-size: 12px; margin-left: 8px; }
.adv-inbox-messages {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #fafbfc;
}
.adv-msg {
    max-width: 70%;
    padding: 8px 12px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.4;
}
.adv-msg-in  { align-self: flex-start; background: #fff; border: 1px solid #e2e8f0; border-bottom-left-radius: 4px; }
.adv-msg-out { align-self: flex-end; background: #3b82f6; color: #fff; border-bottom-right-radius: 4px; }
.adv-msg-text { white-space: pre-wrap; word-break: break-word; }
.adv-msg-media a { color: inherit; opacity: 0.85; font-size: 12px; }
.adv-msg-time { font-size: 10px; color: #94a3b8; margin-top: 4px; text-align: right; }
.adv-msg-out .adv-msg-time { color: rgba(255, 255, 255, 0.75); }
.adv-inbox-composer { padding: 12px 16px; border-top: 1px solid #e2e8f0; background: #fff; }
.adv-inbox-composer form { display: flex; gap: 8px; align-items: flex-end; }
.adv-inbox-composer textarea {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-family: inherit;
    font-size: 13px;
    resize: vertical;
    min-height: 40px;
    max-height: 120px;
}
.adv-inbox-hint { color: #94a3b8; font-size: 12px; margin-top: 8px; font-style: italic; }

/* ========== Posts (Сессия E) ========== */
.adv-posts { display: flex; flex-direction: column; gap: 12px; }
.adv-posts-toolbar { display: flex; gap: 12px; align-items: center; }
.adv-posts-list { display: flex; flex-direction: column; gap: 8px; }
.adv-post-row {
    display: flex;
    gap: 12px;
    padding: 12px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    cursor: pointer;
    transition: border-color 0.15s;
}
.adv-post-row:hover { border-color: #94a3b8; }
.adv-post-thumb {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
    background: #f1f5f9;
    flex-shrink: 0;
}
.adv-post-thumb-empty { display: flex; align-items: center; justify-content: center; color: #cbd5e1; font-size: 11px; }
.adv-post-body { flex: 1; min-width: 0; }
.adv-post-status {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 3px;
    margin-bottom: 4px;
    text-transform: uppercase;
}
.adv-post-status-draft       { background: #f1f5f9; color: #64748b; }
.adv-post-status-publishing  { background: #fef3c7; color: #92400e; }
.adv-post-status-published   { background: #dcfce7; color: #166534; }
.adv-post-status-failed      { background: #fee2e2; color: #991b1b; }
.adv-post-text {
    font-size: 13px;
    color: #0f172a;
    line-height: 1.4;
    margin-bottom: 4px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.adv-post-meta { font-size: 12px; color: #64748b; margin-bottom: 4px; }
.adv-post-target {
    display: inline-block;
    background: #dbeafe;
    color: #1e3a8a;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 11px;
    margin-right: 4px;
}
.adv-post-time { font-size: 11px; color: #94a3b8; }

.adv-post-editor textarea, .adv-post-editor input[type="text"] { width: 100%; }
.adv-targets { display: flex; gap: 12px; flex-wrap: wrap; }
.adv-targets label { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.adv-form-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; padding-top: 16px; border-top: 1px solid #e2e8f0; }

/* ========== Analytics (Сессия F) ========== */
.adv-analytics { display: flex; flex-direction: column; gap: 16px; }
.adv-analytics-toolbar { display: flex; gap: 12px; align-items: center; }
.adv-analytics-content { display: flex; flex-direction: column; gap: 16px; }
.adv-anal-section { background: #fff; padding: 16px; border: 1px solid #e2e8f0; border-radius: 8px; }
.adv-anal-section h3 { margin: 0 0 12px 0; font-size: 14px; color: #0f172a; }
.adv-anal-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.adv-anal-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 12px 14px;
    text-align: center;
}
.adv-anal-card-good { background: #dcfce7; border-color: #86efac; }
.adv-anal-card-bad  { background: #fef2f2; border-color: #fecaca; }
.adv-anal-num { font-size: 22px; font-weight: 700; color: #0f172a; }
.adv-anal-card-good .adv-anal-num { color: #166534; }
.adv-anal-card-bad .adv-anal-num  { color: #991b1b; }
.adv-anal-lbl { font-size: 12px; color: #64748b; margin-top: 4px; }
.adv-anal-stages { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.adv-anal-stage {
    padding: 10px;
    border-left: 4px solid var(--stage-color, #94a3b8);
    background: #f8fafc;
    border-radius: 0 6px 6px 0;
}
.adv-anal-stage-label { font-size: 12px; color: #64748b; margin-bottom: 4px; }
.adv-anal-stage-count { font-size: 20px; font-weight: 600; color: #0f172a; }
.adv-anal-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.adv-anal-table th, .adv-anal-table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid #f1f5f9; }
.adv-anal-table th { background: #f8fafc; color: #475569; font-weight: 600; }
.adv-anal-sub { font-size: 11px; color: #94a3b8; }

/* ----- Задачи по лидам (раздел «Продажи») ----- */
.adv-tasks { display: flex; flex-direction: column; gap: 12px; }
.adv-tasks-toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.adv-tasks-toolbar .btn-primary { padding: 8px 14px; font-size: 13px; }
.adv-tasks-list { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; }
.adv-tasks-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.adv-tasks-table th, .adv-tasks-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.adv-tasks-table th { background: #f8fafc; color: #475569; font-weight: 600; }
.adv-tasks-table a { color: #2563eb; text-decoration: none; font-weight: 600; }
.adv-tasks-table a:hover { text-decoration: underline; }
.adv-task-row.adv-task-done { opacity: 0.6; }
.adv-task-row.adv-task-done .adv-task-title { text-decoration: line-through; }
.adv-task-row.adv-task-overdue { background: #fff7ed; }
.adv-task-title { font-weight: 600; color: #0f172a; }
.adv-task-desc { font-size: 12px; color: #64748b; margin-top: 3px; white-space: pre-wrap; }
.adv-task-stage { display: inline-block; margin-top: 4px; font-size: 10px; padding: 2px 6px; border-radius: 3px;
    background: color-mix(in srgb, var(--stage-color, #94a3b8) 18%, white); color: var(--stage-color, #64748b); font-weight: 600; }
.adv-task-actions { display: flex; gap: 4px; white-space: nowrap; }
.adv-task-actions .btn-secondary { padding: 4px 8px; font-size: 13px; line-height: 1; }
.adv-task-overdue-badge { color: #c2410c; font-weight: 600; }
/* задачи внутри карточки лида */
.adv-tasks-items { display: flex; flex-direction: column; gap: 8px; }
.adv-task-item { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between;
    padding: 8px 10px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; }
.adv-task-item.adv-task-done { opacity: 0.6; }
.adv-task-item.adv-task-done .adv-task-title { text-decoration: line-through; }
.adv-task-item.adv-task-overdue { background: #fff7ed; border-color: #fed7aa; }
.adv-task-item-main { flex: 1; min-width: 0; }

/* ----- Брендбук / AI (раздел «Постинг» → Настройки) ----- */
.adv-brand-settings { display: flex; flex-direction: column; gap: 16px; }
.adv-brand-row { display: flex; flex-direction: column; gap: 4px; }
.adv-brand-row > label { font-size: 13px; font-weight: 600; color: #334155; }
.adv-brand-row code { background: #f1f5f9; padding: 1px 4px; border-radius: 3px; font-size: 12px; }
.adv-brand-textarea, .adv-brand-input {
    width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 6px;
    font-size: 13px; font-family: inherit; }
.adv-brand-textarea { resize: vertical; min-height: 70px; line-height: 1.5; }
.adv-brand-logo-preview { margin-top: 6px; }
.adv-brand-logo-preview img { max-width: 220px; max-height: 90px; border: 1px solid #e2e8f0; border-radius: 6px; background: #f8fafc; padding: 6px; }
.adv-brand-actions { display: flex; justify-content: flex-end; }

/* ----- Выбор лида в модалке задачи ----- */
.adv-form-static { font-size: 13px; color: #334155; padding: 6px 0; }
.adv-lead-pick-wrap { position: relative; }
.adv-lead-pick-wrap input { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 13px; }
.adv-lead-pick-results {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 5; max-height: 220px; overflow-y: auto;
    background: #fff; border: 1px solid #cbd5e1; border-top: none; border-radius: 0 0 6px 6px; box-shadow: 0 6px 18px rgba(0,0,0,0.12); }
.adv-lead-pick { padding: 8px 10px; font-size: 13px; cursor: pointer; border-bottom: 1px solid #f1f5f9; }
.adv-lead-pick:hover { background: #f1f5f9; }

/* confirm/prompt модалки должны быть ВЫШЕ всех overlay (broadcast backdrop = 9100) */
#confirmModal, #promptModal { z-index: 100100 !important; }

/* «Куда публиковать» — iOS-переключатели вместо чекбоксов */
.adv-pe-toggles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; margin-top: 4px; }
.adv-pe-toggles .ios-toggle { font-size: 14px !important; }

/* Загрузка картинки: drop-zone + кнопка «с компьютера» */
.adv-pe-img-box.adv-drop-over { border-color: #6366f1; border-style: solid; background: #eef2ff; }
.adv-pe-img-box.adv-drop-over .adv-pe-img-empty { color: #4f46e5; }
.adv-pe-upload-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; align-items: center; }
.btn-file {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 8px;
    border: 1px solid #cbd5e1; background: #fff; color: #334155; font-size: 13px; font-weight: 500; cursor: pointer;
    transition: border-color .15s, background .15s;
}
.btn-file:hover { border-color: #94a3b8; background: #f8fafc; }
.adv-pe-uploading { font-size: 13px; color: #6366f1; display: inline-flex; align-items: center; gap: 6px; }

/* Спиннер + overlay «занято» для модалки (публикация и т.п.) */
@keyframes advSpin { to { transform: rotate(360deg); } }
@keyframes advBusyAppear { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes advBusyDot { 0%, 80%, 100% { opacity: .25; transform: scale(.85); } 40% { opacity: 1; transform: scale(1); } }
.adv-spinner {
    display: inline-block; width: 16px; height: 16px; border: 2px solid currentColor; border-top-color: transparent;
    border-radius: 50%; animation: advSpin .7s linear infinite; vertical-align: -2px;
}
.adv-modal-busy {
    position: fixed; inset: 0; background: rgba(15, 23, 42, .55); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
    display: flex; align-items: center; justify-content: center; z-index: 1250; padding: 24px;
}
.adv-modal-busy-card {
    background: #fff; color: #0f172a; border-radius: 16px; padding: 28px 32px 26px;
    box-shadow: 0 24px 64px rgba(15, 23, 42, .32), 0 2px 8px rgba(15, 23, 42, .12);
    min-width: 320px; max-width: 460px; text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: 16px;
    animation: advBusyAppear .25s cubic-bezier(.2, .9, .3, 1.2);
}
body[data-theme="dark"] .adv-modal-busy-card { background: #1e293b; color: #f1f5f9; }
.adv-modal-busy-spinner {
    width: 56px; height: 56px; position: relative;
}
.adv-modal-busy-spinner::before, .adv-modal-busy-spinner::after {
    content: ''; position: absolute; inset: 0; border-radius: 50%;
    border: 3px solid transparent; animation: advSpin 1.1s cubic-bezier(.5, .15, .5, .85) infinite;
}
.adv-modal-busy-spinner::before {
    border-top-color: #6366f1; border-right-color: #8b5cf6;
}
.adv-modal-busy-spinner::after {
    inset: 8px; border-top-color: #ec4899; border-left-color: #f59e0b;
    animation-duration: 1.5s; animation-direction: reverse;
}
.adv-modal-busy-title {
    font-size: 15px; font-weight: 600; letter-spacing: 0.1px; line-height: 1.35;
}
.adv-modal-busy-hint {
    font-size: 12.5px; color: #64748b; line-height: 1.5; margin: 0;
}
body[data-theme="dark"] .adv-modal-busy-hint { color: #94a3b8; }
.adv-modal-busy-dots {
    display: inline-flex; gap: 5px; margin-top: 2px;
}
.adv-modal-busy-dots span {
    width: 6px; height: 6px; border-radius: 50%; background: #8b5cf6;
    animation: advBusyDot 1.2s ease-in-out infinite both;
}
.adv-modal-busy-dots span:nth-child(2) { animation-delay: .15s; background: #ec4899; }
.adv-modal-busy-dots span:nth-child(3) { animation-delay: .3s; background: #f59e0b; }
.adv-modal-content { position: relative; }

/* ========== /Advertising tab ========== */

/* Список клиентов: «Имя клиента» и «Организация» — одинаковая ширина с переносом строк.
   Без этого длинные ООО («Общество с ограниченной ответственностью ...») растягивали
   колонку и сдвигали остальные за пределы экрана (Alex Alex 19.05.2026). */
#clientsTable th.col-client_name,
#clientsTable td.col-client_name,
#clientsTable th.col-org_name,
#clientsTable td.col-org_name {
    width: 240px;
    max-width: 240px;
    white-space: normal;
    word-wrap: break-word;
    word-break: break-word;
}

/* ====== Страница «Сотрудники» — полностью автономный блок ====== */
#employees_pageTab {
    --ep-primary: #074783;
    --ep-primary-soft: rgba(7,71,131,0.08);
    --ep-card-bg: #ffffff;
    --ep-card-bdr: #e5e7eb;
    --ep-card-bdr-soft: #f3f4f6;
    --ep-ink: #0f172a;
    --ep-ink-2: #334155;
    --ep-ink-3: #64748b;
    --ep-ink-4: #94a3b8;
    --ep-bg-soft: #f9fafb;
    --ep-ok: #22c55e;
    --ep-warn: #f97316;
    --ep-danger: #ef4444;
}
body[data-theme="dark"] #employees_pageTab {
    --ep-card-bg: #0f172a;
    --ep-card-bdr: #1f2937;
    --ep-card-bdr-soft: #162033;
    --ep-ink: #f1f5f9;
    --ep-ink-2: #cbd5e1;
    --ep-ink-3: #94a3b8;
    --ep-ink-4: #64748b;
    --ep-bg-soft: #0b1220;
    --ep-primary-soft: rgba(59,130,246,0.15);
}

#employees_pageTab .tab-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* Инпуты */
#employees_pageTab .pm-select,
#employees_pageTab .pm-search {
    padding: 7px 10px; border: 1px solid var(--ep-card-bdr); border-radius: 8px;
    font-size: 13px; font-family: inherit; background: var(--ep-card-bg);
    color: var(--ep-ink); outline: none; min-width: 120px;
    transition: border-color .15s, box-shadow .15s;
}
#employees_pageTab .pm-search { min-width: 200px; }
#employees_pageTab .pm-select:focus,
#employees_pageTab .pm-search:focus { border-color: var(--ep-primary); box-shadow: 0 0 0 3px var(--ep-primary-soft); }

/* KPI-карточки */
#employees_pageTab .pm-hero {
    display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 10px; margin: 10px 0 8px; flex-shrink: 0;
}
#employees_pageTab .pm-kpi {
    position: relative; background: var(--ep-card-bg); border: 1px solid var(--ep-card-bdr);
    border-radius: 12px; padding: 10px 14px; min-height: 92px;
    display: flex; flex-direction: column; gap: 3px; overflow: hidden;
}
#employees_pageTab .pm-kpi.pm-kpi-main {
    background: linear-gradient(135deg, #074783 0%, #1e40af 100%);
    color: #fff; border-color: transparent;
}
body[data-theme="dark"] #employees_pageTab .pm-kpi.pm-kpi-main {
    background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%);
}
#employees_pageTab .pm-kpi-label { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ep-ink-3); }
#employees_pageTab .pm-kpi.pm-kpi-main .pm-kpi-label { color: rgba(255,255,255,0.82); }
#employees_pageTab .pm-kpi-value { font-size: 26px; font-weight: 650; color: var(--ep-ink); font-variant-numeric: tabular-nums; line-height: 1.15; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
#employees_pageTab .pm-kpi.pm-kpi-main .pm-kpi-value { color: #fff; }
#employees_pageTab .pm-kpi-value .pm-unit { font-size: 12px; font-weight: 500; color: var(--ep-ink-3); }
#employees_pageTab .pm-kpi.pm-kpi-main .pm-kpi-value .pm-unit { color: rgba(255,255,255,0.72); }
#employees_pageTab .pm-kpi-sub { font-size: 12px; color: var(--ep-ink-3); }
#employees_pageTab .pm-kpi.pm-kpi-main .pm-kpi-sub { color: rgba(255,255,255,0.82); }
#employees_pageTab .pm-kpi-progress { margin-top: auto; height: 6px; background: rgba(255,255,255,0.25); border-radius: 3px; overflow: hidden; }
#employees_pageTab .pm-kpi-progress > div { height: 100%; background: #fff; border-radius: 3px; transition: width .3s ease; }

/* Пайплайн */
#employees_pageTab .pm-pipeline { margin-bottom: 10px; }
#employees_pageTab .pm-pipeline .pp-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
#employees_pageTab .pm-pipeline .pp-title { font-size: 13px; font-weight: 600; color: var(--ep-ink-2); text-transform: uppercase; letter-spacing: 0.5px; }
#employees_pageTab .pm-pipeline .pp-clear { font-size: 11px; color: var(--ep-primary); background: none; border: 1px solid var(--ep-primary); border-radius: 4px; padding: 2px 8px; cursor: pointer; }
#employees_pageTab .pm-pipeline .pp-clear:hover { background: var(--ep-primary); color: #fff; }
#employees_pageTab .pm-pipeline .pp-action-hint { font-size: 11px; color: #f97316; margin-left: auto; font-weight: 500; }
#employees_pageTab .pm-pipeline .pp-steps { display: flex; align-items: center; gap: 0; flex-wrap: wrap; margin-bottom: 8px; }
#employees_pageTab .pm-pipeline .pp-arrow { color: var(--ep-ink-3); font-size: 12px; margin: 0 2px; flex-shrink: 0; }
#employees_pageTab .pm-pipeline .pp-step {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 10px; border-radius: 8px; border: 1.5px solid var(--ep-card-bdr);
    background: var(--ep-card-bg); cursor: pointer; transition: all 0.15s;
    font-size: 12px; white-space: nowrap;
}
#employees_pageTab .pm-pipeline .pp-step:hover { border-color: var(--ep-primary); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
#employees_pageTab .pm-pipeline .pp-step.pp-active { border-color: var(--ep-primary); background: var(--ep-bg-soft); box-shadow: 0 0 0 2px rgba(59,130,246,0.15); }
#employees_pageTab .pm-pipeline .pp-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
#employees_pageTab .pm-pipeline .pp-label { font-weight: 500; color: var(--ep-ink); }
#employees_pageTab .pm-pipeline .pp-count { font-weight: 700; font-size: 13px; }
#employees_pageTab .pm-pipeline .pp-bar { display: flex; height: 6px; border-radius: 4px; overflow: hidden; gap: 1px; background: var(--ep-bg-soft); }
#employees_pageTab .pm-pipeline .pp-bar-seg { min-width: 3px; border-radius: 2px; cursor: pointer; transition: opacity 0.15s; }
#employees_pageTab .pm-pipeline .pp-bar-seg:hover { opacity: 0.75; }
#employees_pageTab .pm-pipeline .pp-bar-seg.pp-bar-active { box-shadow: 0 0 0 2px rgba(59,130,246,0.4); }
#employees_pageTab .pm-pipeline .pp-hint {
    margin-top: 8px; padding: 8px 12px; font-size: 12px; color: var(--ep-ink-2);
    background: var(--ep-bg-soft); border-radius: 6px;
}
body[data-theme="dark"] #employees_pageTab .pm-pipeline .pp-step { background: var(--ep-card-bg); border-color: var(--ep-card-bdr); }
body[data-theme="dark"] #employees_pageTab .pm-pipeline .pp-step.pp-active { background: #1e293b; }
body[data-theme="dark"] #employees_pageTab .pm-pipeline .pp-label { color: var(--ep-ink); }
body[data-theme="dark"] #employees_pageTab .pm-pipeline .pp-bar { background: #1e293b; }

/* Бейдж этапа в строке */
#employees_pageTab .pp-row-badge {
    display: inline-block; font-size: 9px; font-weight: 600; color: #fff;
    padding: 1px 5px; border-radius: 3px; line-height: 1.4; white-space: nowrap;
    vertical-align: middle; margin-left: 4px;
}
body[data-theme="dark"] #employees_pageTab .pp-row-badge { opacity: 0.9; }

/* Таблица */
#employees_pageTab .pm-table-card {
    background: var(--ep-card-bg); border: 1px solid var(--ep-card-bdr);
    border-radius: 12px; overflow: hidden; flex: 1; min-height: 0;
    display: flex; flex-direction: column;
}
#employees_pageTab .pm-table-scroll { flex: 1; min-height: 0; overflow: auto; padding-bottom: 16px; }
#employees_pageTab .pm-table { width: 100%; border-collapse: collapse; font-size: 13px; }
#employees_pageTab .pm-table thead th {
    padding: 10px 12px; text-align: left; font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em; color: var(--ep-ink-3);
    background: var(--ep-bg-soft); border-bottom: 1px solid var(--ep-card-bdr);
    position: sticky; top: 0; z-index: 2; white-space: nowrap;
}
#employees_pageTab .pm-table tbody tr { transition: background .12s; }
#employees_pageTab .pm-table tbody tr:hover { background: var(--ep-primary-soft); }
#employees_pageTab .pm-table tbody td {
    padding: 10px 12px; border-bottom: 1px solid var(--ep-card-bdr-soft);
    color: var(--ep-ink); vertical-align: middle;
}
#employees_pageTab .pm-table tbody tr:last-child td { border-bottom: 0; }
#employees_pageTab .pm-idx { color: var(--ep-ink-4); font-variant-numeric: tabular-nums; }
#employees_pageTab .pm-org-cell { width: 280px; max-width: 280px; }
#employees_pageTab .pm-org-name {
    font-weight: 600; color: var(--ep-primary); font-size: 13px; line-height: 1.3;
    letter-spacing: -0.005em; margin-bottom: 2px; cursor: pointer;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px;
}
#employees_pageTab .pm-org-name:hover { text-decoration: underline; }
#employees_pageTab .pm-org-meta { display: flex; gap: 6px; font-size: 11px; color: var(--ep-ink-3); font-variant-numeric: tabular-nums; }
#employees_pageTab .pm-org-meta .pm-inn { font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace; }
#employees_pageTab .pm-loading,
#employees_pageTab .pm-empty { text-align: center; color: var(--ep-ink-3); padding: 60px 0; font-size: 13px; }

/* Pill-бейджи статусов */
#employees_pageTab .ep-pill { display: inline-block; font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius: 6px; border: 1px solid transparent; white-space: nowrap; }
#employees_pageTab .ep-pill-ok { background: #dcfce7; color: #15803d; border-color: #bbf7d0; }
#employees_pageTab .ep-pill-warn { background: #fff7ed; color: #c2410c; border-color: #fed7aa; }
#employees_pageTab .ep-pill-none { background: #f1f5f9; color: #94a3b8; border-color: #e2e8f0; }
body[data-theme="dark"] #employees_pageTab .ep-pill-ok { background: #052e16; color: #86efac; border-color: #14532d; }
body[data-theme="dark"] #employees_pageTab .ep-pill-warn { background: #451a03; color: #fdba74; border-color: #7c2d12; }
body[data-theme="dark"] #employees_pageTab .ep-pill-none { background: #1e293b; color: #64748b; border-color: #334155; }

/* Подсветка строк по этапу */
#employees_pageTab .ep-row-done { background: #f0fdf4; }
#employees_pageTab .ep-row-error { background: #fef2f2; }
#employees_pageTab .ep-row-skip { opacity: 0.55; }
#employees_pageTab .ep-row-skip:hover { opacity: 0.85; }
body[data-theme="dark"] #employees_pageTab .ep-row-done { background: rgba(34,197,94,0.06); }
body[data-theme="dark"] #employees_pageTab .ep-row-error { background: rgba(239,68,68,0.06); }

/* Кнопка «Открыть» */
#employees_pageTab .ep-open-btn { font-size: 11px; font-weight: 500; color: var(--ep-primary); background: none; border: 1px solid var(--ep-primary); border-radius: 6px; padding: 4px 12px; cursor: pointer; transition: all 0.15s; }
#employees_pageTab .ep-open-btn:hover { background: var(--ep-primary); color: #fff; }
/* Значок чата (открытие диалога с клиентом в новой вкладке) */
#employees_pageTab .ep-chat-btn { display: inline-block; font-size: 15px; line-height: 1; text-decoration: none; margin-right: 8px; vertical-align: middle; cursor: pointer; transition: transform 0.12s, opacity 0.12s; }
#employees_pageTab .ep-chat-btn:hover { transform: scale(1.15); opacity: 0.85; }
#employees_pageTab .ep-responsible { font-size: 12px; color: var(--ep-ink-2); }

/* Кнопка toggle «Показать/Скрыть без сотрудников» — теперь внутри pp-header */
#employees_pageTab .pm-pipeline .pp-toggle-no-emp {
    font-size: 12px; color: var(--ep-ink-3); background: var(--ep-card-bg);
    border: 1px solid var(--ep-card-bdr); border-radius: 8px; padding: 5px 12px;
    cursor: pointer; transition: all 0.15s; margin-left: auto; white-space: nowrap;
}
#employees_pageTab .pm-pipeline .pp-toggle-no-emp:hover {
    border-color: var(--ep-primary); color: var(--ep-primary);
}

/* ============ ФИНАНСОВЫЙ БОТ — Gradient Cards ============ */
#financeBotTab {
    --fb-bg: #f6f5fb;
    --fb-card: #ffffff;
    --fb-ink-1: #1a1738;
    --fb-ink-2: #5a5a7a;
    --fb-ink-3: #9090ab;
    --fb-bdr: #ece9f5;
    --fb-primary: #6d5cff;
    --fb-primary-soft: #ece8ff;
    --fb-green: #1fbf75;
    --fb-red: #ef5670;
    --fb-amber: #f5a623;
    --fb-cyan: #20c4d6;
    --fb-pink: #ee6fb1;
    --fb-shadow: 0 8px 24px -8px rgba(80,60,180,.18), 0 2px 6px rgba(80,60,180,.06);
}
body[data-theme="dark"] #financeBotTab {
    --fb-bg: #1a1730;
    --fb-card: #23203a;
    --fb-ink-1: #e8e6f0;
    --fb-ink-2: #a8a8c4;
    --fb-ink-3: #6e6e8e;
    --fb-bdr: #2f2c48;
    --fb-primary-soft: rgba(109,92,255,.2);
}
#financeBotTab .fin-bot-shell { padding: 4px 0 40px; max-width: 1320px; margin: 0 auto; width: 100%; }

#financeBotTab .fin-bot-tabs {
    display: flex; gap: 6px; background: var(--fb-card); border: 1px solid var(--fb-bdr);
    border-radius: 14px; padding: 6px; margin-bottom: 22px; width: max-content;
}
#financeBotTab .fin-bot-tab {
    padding: 9px 18px; border: 0; background: transparent; cursor: pointer;
    font-size: 13px; font-weight: 500; color: var(--fb-ink-2); border-radius: 10px;
    display: flex; align-items: center; gap: 8px; font-family: inherit;
}
#financeBotTab .fin-bot-tab .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .4; }
#financeBotTab .fin-bot-tab.active {
    background: linear-gradient(135deg, #6d5cff, #8a7bff); color: #fff;
    box-shadow: 0 6px 14px -4px rgba(109,92,255,.5);
}
#financeBotTab .fin-bot-tab.active .dot { opacity: 1; }

#financeBotTab .fin-bot-panel { display: none; animation: fbFadeUp .35s ease; }
#financeBotTab .fin-bot-panel.active { display: block; }
@keyframes fbFadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* KPI row */
#financeBotTab .fin-bot-kpi-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; margin-bottom: 22px; }
#financeBotTab .fin-bot-kpi {
    position: relative; overflow: hidden; border-radius: 18px; padding: 18px 20px;
    color: #fff; box-shadow: var(--fb-shadow);
}
#financeBotTab .fin-bot-kpi .k-label { font-size: 12px; opacity: .85; font-weight: 500; }
#financeBotTab .fin-bot-kpi .k-value { font-size: 28px; font-weight: 700; margin-top: 4px; letter-spacing: -0.5px; }
#financeBotTab .fin-bot-kpi .k-trend {
    display: inline-flex; align-items: center; gap: 4px; font-size: 12px; margin-top: 8px;
    background: rgba(255,255,255,.22); padding: 3px 8px; border-radius: 20px; backdrop-filter: blur(4px);
}
#financeBotTab .fin-bot-kpi .k-deco {
    position: absolute; right: -30px; top: -30px; width: 120px; height: 120px;
    border-radius: 50%; background: rgba(255,255,255,.12);
}
#financeBotTab .fin-bot-kpi .k-deco-2 {
    position: absolute; right: 30px; bottom: -50px; width: 80px; height: 80px;
    border-radius: 50%; background: rgba(255,255,255,.1);
}
#financeBotTab .fin-bot-kpi.g1 { background: linear-gradient(135deg, #8a7bff, #b993ff); }
#financeBotTab .fin-bot-kpi.g2 { background: linear-gradient(135deg, #20c4d6, #6d5cff); }
#financeBotTab .fin-bot-kpi.g3 { background: linear-gradient(135deg, #ee6fb1, #ff9d6c); }
#financeBotTab .fin-bot-kpi.g4 { background: linear-gradient(135deg, #1fbf75, #5dd7a0); }
#financeBotTab .fin-bot-kpi.g5 { background: linear-gradient(135deg, #1fbf75, #20c4d6); }
#financeBotTab .fin-bot-kpi.g6 { background: linear-gradient(135deg, #ef5670, #ee6fb1); }

/* Cards */
#financeBotTab .fb-grid-2 { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; margin-bottom: 18px; }
#financeBotTab .fb-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; margin-bottom: 18px; }
#financeBotTab .fb-card {
    background: var(--fb-card); border: 1px solid var(--fb-bdr); border-radius: 18px;
    padding: 22px 24px; box-shadow: var(--fb-shadow);
}
#financeBotTab .fb-card-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
#financeBotTab .fb-card-h h3 { font-size: 15px; font-weight: 600; color: var(--fb-ink-1); margin: 0; }
#financeBotTab .fb-card-h .sub { font-size: 12px; color: var(--fb-ink-3); }
#financeBotTab .fb-pill-switch {
    display: inline-flex; background: var(--fb-bg); border-radius: 10px; padding: 3px; gap: 2px;
}
#financeBotTab .fb-pill-switch button {
    border: 0; background: transparent; padding: 5px 12px; font-size: 12px;
    cursor: pointer; color: var(--fb-ink-2); border-radius: 7px; font-family: inherit;
}
#financeBotTab .fb-pill-switch button.on {
    background: var(--fb-card); color: var(--fb-ink-1); font-weight: 600;
    box-shadow: 0 2px 6px rgba(0,0,0,.06);
}

/* Chart */
#financeBotTab .fb-chart-wrap { position: relative; height: 220px; }
#financeBotTab .fb-chart-wrap svg { width: 100%; height: 100%; display: block; }
#financeBotTab .fb-legend { display: flex; gap: 14px; font-size: 12px; color: var(--fb-ink-2); margin-top: 8px; }
#financeBotTab .fb-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: middle; }

/* Top categories */
#financeBotTab .fb-cat-list { display: flex; flex-direction: column; gap: 12px; }
#financeBotTab .fb-cat-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; font-size: 13px; color: var(--fb-ink-1); }
#financeBotTab .fb-cat-top .name { display: flex; align-items: center; gap: 8px; font-weight: 500; }
#financeBotTab .fb-cat-icon { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; font-size: 14px; color: #fff; flex-shrink: 0; }
#financeBotTab .fb-cat-bar { height: 6px; background: var(--fb-bg); border-radius: 6px; overflow: hidden; }
#financeBotTab .fb-cat-bar > div { height: 100%; border-radius: 6px; }

/* Кошельки / копилки + кнопки (дашборд пользователя финбота — рендерится в оверлее на body,
   поэтому классы глобальные, без префикса #financeBotTab). */
.fb-acc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.fb-acc-card { border: 1px solid #e2e8f0; border-radius: 12px; padding: 12px 14px; background: #fff; display: flex; flex-direction: column; gap: 6px; }
.fb-goal-card { background: linear-gradient(180deg, #faf9ff, #fff); border-color: #e3ddff; }
.fb-acc-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.fb-acc-name { font-weight: 700; font-size: 13px; color: #0f172a; }
.fb-acc-edit { cursor: pointer; color: #94a3b8; font-size: 13px; flex-shrink: 0; }
.fb-acc-edit:hover { color: #475569; }
.fb-acc-bal { font-size: 18px; font-weight: 800; color: #0f172a; }
.fb-goal-bar { height: 8px; border-radius: 6px; background: #eef2f7; overflow: hidden; }
.fb-goal-bar > div { height: 100%; border-radius: 6px; transition: width .3s; }
.fb-acc-actions { margin-top: 2px; }
.fb-mini-btn { border: 1px solid #cbd5e1; background: #fff; color: #334155; border-radius: 8px; padding: 5px 10px; font-size: 12px; cursor: pointer; font-family: inherit; }
.fb-mini-btn:hover { background: #f1f5f9; }
.fb-mini-btn-primary { background: #6d5cff; border-color: #6d5cff; color: #fff; }
.fb-mini-btn-primary:hover { background: #5b4be0; }
.fb-tx-act { cursor: pointer; padding: 2px 4px; font-size: 14px; opacity: .7; }
.fb-tx-act:hover { opacity: 1; }

/* Mini activity list */
#financeBotTab .fb-mini-list { display: flex; flex-direction: column; gap: 10px; }
#financeBotTab .fb-mini-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--fb-bdr); }
#financeBotTab .fb-mini-row:last-child { border-bottom: 0; }
#financeBotTab .fb-mini-row .avatar {
    width: 34px; height: 34px; border-radius: 50%; color: #fff;
    display: grid; place-items: center; font-weight: 600; font-size: 12px; flex-shrink: 0;
}
#financeBotTab .fb-mini-row .info { flex: 1; line-height: 1.35; }
#financeBotTab .fb-mini-row .info .t { font-size: 13px; color: var(--fb-ink-1); }
#financeBotTab .fb-mini-row .info .m { font-size: 11px; color: var(--fb-ink-3); }
#financeBotTab .fb-mini-row .amount { font-weight: 700; font-size: 13px; }
#financeBotTab .fb-mini-row .amount.up { color: var(--fb-green); }
#financeBotTab .fb-mini-row .amount.down { color: var(--fb-red); }

/* Budget */
#financeBotTab .fb-budget-list { display: flex; flex-direction: column; gap: 16px; }
#financeBotTab .fb-budget-row .label { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 6px; color: var(--fb-ink-1); }
#financeBotTab .fb-budget-row .label b { font-weight: 600; }
#financeBotTab .fb-budget-row .label .vals { color: var(--fb-ink-3); font-size: 12px; }
#financeBotTab .fb-budget-row .label .vals b { color: var(--fb-ink-1); }
#financeBotTab .fb-budget-bar {
    height: 10px; background: var(--fb-bg); border-radius: 6px; position: relative; overflow: hidden;
}
#financeBotTab .fb-budget-bar > div {
    height: 100%; border-radius: 6px; background: linear-gradient(90deg, #6d5cff, #ee6fb1);
    transition: width .6s;
}
#financeBotTab .fb-budget-bar.danger > div { background: linear-gradient(90deg, #ef5670, #ff9d6c); }

/* Sparklines table */
#financeBotTab .fb-spark-table { width: 100%; }
#financeBotTab .fb-spark-table .row {
    display: grid; grid-template-columns: 130px 1fr 60px; gap: 12px;
    align-items: center; padding: 8px 0; border-bottom: 1px solid var(--fb-bdr);
}
#financeBotTab .fb-spark-table .row:last-child { border-bottom: 0; }
#financeBotTab .fb-spark-table .name {
    font-size: 13px; font-weight: 500; display: flex; align-items: center; gap: 8px; color: var(--fb-ink-1);
}
#financeBotTab .fb-spark-table .name .a {
    width: 26px; height: 26px; border-radius: 50%; color: #fff;
    display: grid; place-items: center; font-size: 11px; font-weight: 600;
}
#financeBotTab .fb-spark-table .count { text-align: right; font-size: 13px; font-weight: 600; color: var(--fb-ink-1); }

/* Buttons */
#financeBotTab .fb-btn {
    padding: 9px 16px; border: 0; border-radius: 10px; cursor: pointer;
    font-size: 13px; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; font-family: inherit;
}
#financeBotTab .fb-btn-primary {
    background: linear-gradient(135deg, #6d5cff, #8a7bff); color: #fff;
    box-shadow: 0 6px 14px -4px rgba(109,92,255,.4);
}
#financeBotTab .fb-btn-ghost { background: var(--fb-card); color: var(--fb-ink-2); border: 1px solid var(--fb-bdr); }
#financeBotTab .fb-btn-danger { background: var(--fb-card); color: var(--fb-red); border: 1px solid #fcd9df; }
#financeBotTab .fb-btn-icon { padding: 8px 10px; }
#financeBotTab .fb-search-input {
    display: flex; align-items: center; gap: 8px; background: var(--fb-card);
    border: 1px solid var(--fb-bdr); border-radius: 10px; padding: 7px 12px; min-width: 260px; color: var(--fb-ink-3);
}
#financeBotTab .fb-search-input input {
    border: 0; outline: none; flex: 1; font-size: 13px; background: transparent; color: var(--fb-ink-1); font-family: inherit;
}
#financeBotTab .fb-filter-chip {
    background: var(--fb-card); border: 1px solid var(--fb-bdr); border-radius: 10px;
    padding: 7px 12px; font-size: 13px; color: var(--fb-ink-2); cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px; font-family: inherit;
}

/* Toolbar */
#financeBotTab .fb-toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; }

/* Users table */
#financeBotTab .fb-users-table {
    background: var(--fb-card); border: 1px solid var(--fb-bdr); border-radius: 18px;
    overflow: hidden; box-shadow: var(--fb-shadow);
}
#financeBotTab .fb-users-table table { width: 100%; border-collapse: collapse; font-size: 13px; }
#financeBotTab .fb-users-table th {
    text-align: left; padding: 14px 18px; font-size: 11px; text-transform: uppercase;
    letter-spacing: .5px; color: var(--fb-ink-3); font-weight: 600; background: var(--fb-bg);
    border-bottom: 1px solid var(--fb-bdr);
}
#financeBotTab .fb-users-table td { padding: 14px 18px; border-bottom: 1px solid var(--fb-bdr); color: var(--fb-ink-1); }
#financeBotTab .fb-users-table tbody tr:last-child td { border-bottom: 0; }
#financeBotTab .fb-users-table tbody tr:hover { background: #fafafe; }
body[data-theme="dark"] #financeBotTab .fb-users-table tbody tr:hover { background: rgba(255,255,255,.03); }
#financeBotTab .fb-user-cell { display: flex; align-items: center; gap: 12px; }
#financeBotTab .fb-user-avatar {
    position: relative; width: 36px; height: 36px; border-radius: 50%; color: #fff;
    display: grid; place-items: center; font-weight: 600; font-size: 13px; flex-shrink: 0;
}
#financeBotTab .fb-online-dot {
    position: absolute; bottom: -1px; right: -1px; width: 11px; height: 11px;
    border-radius: 50%; background: var(--fb-green); border: 2px solid var(--fb-card);
}
#financeBotTab .fb-online-dot.off { background: var(--fb-ink-3); }
#financeBotTab .fb-user-name b { font-weight: 600; }
#financeBotTab .fb-user-name .phone { font-size: 11px; color: var(--fb-ink-3); }
#financeBotTab .fb-badge {
    display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px;
    border-radius: 8px; font-size: 11px; font-weight: 600;
}
#financeBotTab .fb-badge-tg { background: #e9f4ff; color: #2589f2; }
#financeBotTab .fb-badge-off { background: #f3f0ff; color: #8175b8; }
#financeBotTab .fb-badge-active { background: #e3f7ed; color: #15a060; }
#financeBotTab .fb-badge-blocked { background: #fde9ed; color: #d4374f; }
#financeBotTab .fb-balance-pos { color: var(--fb-green); font-weight: 600; }
#financeBotTab .fb-balance-neg { color: var(--fb-red); font-weight: 600; }

/* Messenger */
#financeBotTab .fb-messenger { display: grid; grid-template-columns: 320px 1fr; gap: 16px; height: 640px; }
#financeBotTab .fb-dialogs {
    background: var(--fb-card); border: 1px solid var(--fb-bdr); border-radius: 18px;
    overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--fb-shadow);
}
#financeBotTab .fb-dialogs-header {
    padding: 14px 16px; border-bottom: 1px solid var(--fb-bdr);
    display: flex; align-items: center; gap: 10px;
}
#financeBotTab .fb-dialogs-list { overflow-y: auto; flex: 1; }
#financeBotTab .fb-dialog-item {
    padding: 12px 16px; display: flex; align-items: center; gap: 12px;
    cursor: pointer; border-bottom: 1px solid var(--fb-bdr);
}
#financeBotTab .fb-dialog-item:hover { background: #fafafe; }
body[data-theme="dark"] #financeBotTab .fb-dialog-item:hover { background: rgba(255,255,255,.03); }
#financeBotTab .fb-dialog-item.active {
    background: linear-gradient(90deg, var(--fb-primary-soft) 0%, transparent);
    border-left: 3px solid var(--fb-primary); padding-left: 13px;
}
#financeBotTab .fb-dialog-item .info { flex: 1; min-width: 0; }
#financeBotTab .fb-dialog-item .top-line { display: flex; justify-content: space-between; align-items: center; }
#financeBotTab .fb-dialog-item .name { font-weight: 600; font-size: 13px; color: var(--fb-ink-1); }
#financeBotTab .fb-dialog-item .time { font-size: 11px; color: var(--fb-ink-3); }
#financeBotTab .fb-dialog-item .preview {
    font-size: 12px; color: var(--fb-ink-3); margin-top: 2px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#financeBotTab .fb-dialog-item .unread {
    background: var(--fb-primary); color: #fff; border-radius: 10px;
    font-size: 10px; padding: 2px 7px; font-weight: 700; min-width: 18px; text-align: center;
}

#financeBotTab .fb-chat-area {
    background: var(--fb-card); border: 1px solid var(--fb-bdr); border-radius: 18px;
    display: flex; flex-direction: column; overflow: hidden; box-shadow: var(--fb-shadow);
}
#financeBotTab .fb-chat-header {
    padding: 14px 20px; border-bottom: 1px solid var(--fb-bdr);
    display: flex; align-items: center; gap: 12px;
}
#financeBotTab .fb-chat-header .name { font-weight: 600; font-size: 14px; color: var(--fb-ink-1); }
#financeBotTab .fb-chat-header .meta { font-size: 11px; color: var(--fb-green); }
#financeBotTab .fb-chat-actions { margin-left: auto; display: flex; gap: 6px; }
#financeBotTab .fb-icon-btn {
    border: 0; background: transparent; cursor: pointer; padding: 6px 8px;
    border-radius: 8px; color: var(--fb-ink-2); font-size: 16px;
}
#financeBotTab .fb-icon-btn:hover { background: var(--fb-bg); }
#financeBotTab .fb-chat-body {
    flex: 1; padding: 18px 22px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px;
    background: linear-gradient(180deg, var(--fb-bg) 0%, var(--fb-card) 100%);
}
#financeBotTab .fb-day-divider { text-align: center; font-size: 11px; color: var(--fb-ink-3); margin: 8px 0; }
#financeBotTab .fb-bubble {
    max-width: 70%; padding: 10px 14px; border-radius: 14px; font-size: 13px;
    line-height: 1.45; position: relative;
}
#financeBotTab .fb-bubble.in {
    background: var(--fb-card); border: 1px solid var(--fb-bdr);
    align-self: flex-start; border-bottom-left-radius: 4px; color: var(--fb-ink-1);
}
#financeBotTab .fb-bubble.out {
    background: linear-gradient(135deg, #6d5cff, #8a7bff); color: #fff;
    align-self: flex-end; border-bottom-right-radius: 4px;
    box-shadow: 0 6px 16px -8px rgba(109,92,255,.6);
}
#financeBotTab .fb-bubble .meta { font-size: 11px; opacity: .7; margin-bottom: 3px; display: flex; align-items: center; gap: 6px; }
#financeBotTab .fb-compose {
    padding: 12px 16px; border-top: 1px solid var(--fb-bdr);
    display: flex; gap: 10px; align-items: center; background: var(--fb-card);
}
#financeBotTab .fb-compose input {
    flex: 1; padding: 10px 14px; border: 1px solid var(--fb-bdr); border-radius: 10px;
    font-size: 13px; outline: none; background: var(--fb-card); color: var(--fb-ink-1); font-family: inherit;
}
#financeBotTab .fb-compose input:focus { border-color: var(--fb-primary); }
#financeBotTab .fb-compose .send {
    background: linear-gradient(135deg, #6d5cff, #8a7bff); color: #fff; border: 0;
    border-radius: 10px; padding: 10px 18px; font-weight: 600; cursor: pointer; font-family: inherit;
}

/* Transactions */
#financeBotTab .fb-tx-wrap {
    background: var(--fb-card); border: 1px solid var(--fb-bdr); border-radius: 18px;
    overflow: hidden; box-shadow: var(--fb-shadow);
}
#financeBotTab .fb-tx-summary {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 18px 22px;
    border-bottom: 1px solid var(--fb-bdr);
    background: linear-gradient(135deg, var(--fb-bg), var(--fb-card));
}
#financeBotTab .fb-tx-summary .s { display: flex; flex-direction: column; gap: 4px; }
#financeBotTab .fb-tx-summary .s .lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--fb-ink-3); font-weight: 600; }
#financeBotTab .fb-tx-summary .s .v { font-size: 20px; font-weight: 700; color: var(--fb-ink-1); }
#financeBotTab .fb-tx-summary .s .v.up { color: var(--fb-green); }
#financeBotTab .fb-tx-summary .s .v.down { color: var(--fb-red); }
#financeBotTab .fb-tx-table table { width: 100%; border-collapse: collapse; font-size: 13px; }
#financeBotTab .fb-tx-table th {
    text-align: left; padding: 12px 18px; font-size: 11px; text-transform: uppercase;
    letter-spacing: .5px; color: var(--fb-ink-3); font-weight: 600; background: var(--fb-bg);
    border-bottom: 1px solid var(--fb-bdr);
}
#financeBotTab .fb-tx-table td { padding: 11px 18px; border-bottom: 1px solid var(--fb-bdr); color: var(--fb-ink-1); }
#financeBotTab .fb-tx-table tbody tr:last-child td { border-bottom: 0; }
#financeBotTab .fb-tx-table tbody tr:hover { background: #fafafe; }
body[data-theme="dark"] #financeBotTab .fb-tx-table tbody tr:hover { background: rgba(255,255,255,.03); }
#financeBotTab .fb-day-row td {
    background: linear-gradient(90deg, var(--fb-primary-soft) 0%, transparent 60%);
    font-weight: 600; font-size: 12px; color: var(--fb-ink-2); padding: 8px 18px;
}
#financeBotTab .fb-cat-tag {
    display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px;
    border-radius: 14px; font-size: 11px; font-weight: 600;
}
#financeBotTab .fb-cat-tag .ic { width: 14px; height: 14px; border-radius: 50%; display: inline-block; }
#financeBotTab .fb-amt-pos { color: var(--fb-green); font-weight: 700; }
#financeBotTab .fb-amt-neg { color: var(--fb-red); font-weight: 700; }

/* Settings */
#financeBotTab .fb-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
#financeBotTab .fb-settings-grid .span-2 { grid-column: span 2; }
#financeBotTab .fb-set-card {
    background: var(--fb-card); border: 1px solid var(--fb-bdr); border-radius: 18px;
    padding: 22px 24px; box-shadow: var(--fb-shadow);
}
#financeBotTab .fb-set-card h3 { font-size: 15px; margin-bottom: 6px; display: flex; align-items: center; gap: 8px; color: var(--fb-ink-1); }
#financeBotTab .fb-set-card .sub { font-size: 12px; color: var(--fb-ink-3); margin-bottom: 16px; }
#financeBotTab .fb-set-card textarea,
#financeBotTab .fb-set-card input[type="text"],
#financeBotTab .fb-set-card input[type="time"],
#financeBotTab .fb-set-card select {
    padding: 9px 12px; border: 1px solid var(--fb-bdr); border-radius: 10px;
    font-size: 13px; font-family: inherit; outline: none; background: var(--fb-card); color: var(--fb-ink-1);
}
#financeBotTab .fb-set-card textarea:focus,
#financeBotTab .fb-set-card input:focus,
#financeBotTab .fb-set-card select:focus { border-color: var(--fb-primary); }
#financeBotTab .fb-prompt-textarea { width: 100%; min-height: 130px; resize: vertical; line-height: 1.5; }
#financeBotTab .fb-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
#financeBotTab .fb-field label { font-size: 12px; color: var(--fb-ink-2); font-weight: 500; }

#financeBotTab .fb-feature-toggle {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 0; border-bottom: 1px dashed var(--fb-bdr);
}
#financeBotTab .fb-feature-toggle:last-child { border-bottom: 0; }
#financeBotTab .fb-feature-toggle .ft-l { display: flex; flex-direction: column; gap: 2px; }
#financeBotTab .fb-feature-toggle .ft-l b { font-size: 13px; font-weight: 600; color: var(--fb-ink-1); }
#financeBotTab .fb-feature-toggle .ft-l span { font-size: 11px; color: var(--fb-ink-3); }
#financeBotTab .fb-switch {
    width: 40px; height: 22px; background: #d8d4ea; border-radius: 12px;
    position: relative; cursor: pointer; transition: background .2s; flex-shrink: 0; border: 0;
}
#financeBotTab .fb-switch::after {
    content: ''; position: absolute; left: 2px; top: 2px; width: 18px; height: 18px;
    background: #fff; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.15); transition: transform .2s;
}
#financeBotTab .fb-switch.on { background: linear-gradient(135deg, #6d5cff, #8a7bff); }
#financeBotTab .fb-switch.on::after { transform: translateX(18px); }

#financeBotTab .fb-cat-chips { display: flex; flex-wrap: wrap; gap: 8px; }
#financeBotTab .fb-cat-chip {
    padding: 6px 10px; border-radius: 10px; background: var(--fb-bg);
    font-size: 12px; display: inline-flex; align-items: center; gap: 6px; color: var(--fb-ink-1);
}
#financeBotTab .fb-cat-chip .ic { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
#financeBotTab .fb-cat-chip button { background: transparent; border: 0; cursor: pointer; color: var(--fb-ink-3); }

#financeBotTab .fb-status-pill {
    display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px;
    border-radius: 12px; font-size: 12px; font-weight: 600;
}
#financeBotTab .fb-status-pill.ok { background: #e3f7ed; color: var(--fb-green); }
#financeBotTab .fb-status-pill.ok::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--fb-green); }

#financeBotTab .fb-error-log {
    background: var(--fb-bg); border-radius: 10px; padding: 12px 14px;
    font-family: ui-monospace, Menlo, monospace; font-size: 11px; color: var(--fb-ink-2);
    max-height: 140px; overflow-y: auto;
}
#financeBotTab .fb-error-log .err { color: var(--fb-red); }
#financeBotTab .fb-error-log .warn { color: var(--fb-amber); }

/* Selects in toolbar */
#financeBotTab .fb-toolbar select,
#financeBotTab .fb-toolbar input[type="date"],
#financeBotTab .fb-toolbar input.flatpickr-input + input {
    padding: 7px 12px; border: 1px solid var(--fb-bdr); border-radius: 10px;
    font-size: 13px; font-family: inherit; background: var(--fb-card); color: var(--fb-ink-1); outline: none;
}
#financeBotTab .fb-toolbar select:focus,
#financeBotTab .fb-toolbar input[type="date"]:focus,
#financeBotTab .fb-toolbar input.flatpickr-input + input:focus { border-color: var(--fb-primary); }

/* Loading */
#financeBotTab .fb-loading {
    text-align: center; padding: 40px 20px; color: var(--fb-ink-3); font-size: 14px;
}

/* Responsive */
@media (max-width: 1100px) {
    #financeBotTab .fin-bot-kpi-row { grid-template-columns: repeat(3, 1fr); }
    #financeBotTab .fb-grid-2 { grid-template-columns: 1fr; }
    #financeBotTab .fb-grid-3 { grid-template-columns: 1fr; }
    #financeBotTab .fb-messenger { grid-template-columns: 1fr; }
    #financeBotTab .fb-settings-grid { grid-template-columns: 1fr; }
    #financeBotTab .fb-settings-grid .span-2 { grid-column: auto; }
    #financeBotTab .fb-tx-summary { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    #financeBotTab .fin-bot-kpi-row { grid-template-columns: 1fr 1fr; }
    #financeBotTab .fin-bot-tabs { flex-wrap: wrap; }
}

/* ========================================================================
   ПРАВКИ (visual feedback): кнопка-тумблер, оверлей выделения, форма подписи,
   Канбан-карточки, модалка деталей. Префикс em-/edit-mode-. Изолировано.
   ======================================================================== */

/* Кнопка-тумблер в шапке (рядом с переключателем тем) */
.edit-mode-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 32px;
    border: 1px solid var(--border-color);
    background: var(--bg-color, #f3f4f6);
    border-radius: 8px;
    color: var(--text-muted);
    cursor: pointer;
    transition: all var(--transition);
}
.edit-mode-toggle:hover { color: var(--text-color); }
.edit-mode-toggle.is-active {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: #fff;
    box-shadow: 0 1px 4px rgba(7, 71, 131, 0.25);
}
.edit-mode-toggle svg { width: 16px; height: 16px; }

/* Плавающая кнопка «Правки» поверх модальных окон (заказчик 20.06.2026, п.9).
   z-index выше confirm/prompt-модалок (100100) и лайтбокса правок (100120). По умолчанию
   скрыта; показывается, когда на body есть класс em-float-on (тугл в меню «Выход», default ВКЛ). */
.edit-mode-float {
    display: none;
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color, #e2e8f0);
    background: var(--card-bg, #fff);
    color: var(--text-muted, #64748b);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.22);
    transition: transform .12s ease, background .15s, color .15s;
    z-index: 100300;
}
body.em-float-on .edit-mode-float { display: inline-flex; }
.edit-mode-float:hover { transform: translateY(-1px); color: var(--text-color, #0f172a); }
.edit-mode-float.is-active {
    background: var(--primary-color, #074783);
    border-color: var(--primary-color, #074783);
    color: #fff;
}
body[data-theme="dark"] .edit-mode-float { background: #1e293b; border-color: #334155; }

/* Оверлей режима разметки */
.em-overlay {
    position: fixed;
    inset: 0;
    z-index: 99990;
    cursor: crosshair;
    background: rgba(15, 23, 42, 0.04);
}
body.em-active { user-select: none; }
.em-box {
    position: fixed;
    border: 2px solid var(--primary-color, #2563eb);
    background: rgba(37, 99, 235, 0.12);
    border-radius: 3px;
    pointer-events: none;
    box-shadow: 0 0 0 9999px rgba(15, 23, 42, 0.10);
}
/* Плавающий тулбар режима правок (заменил баннер-подсказку) */
.em-toolbar {
    position: fixed;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 4px;
    background: #0f172a;
    color: #e2e8f0;
    padding: 6px;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    cursor: default;
    z-index: 7;
    user-select: none;
}
.em-tool-group { display: flex; gap: 4px; }
.em-tool {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: none;
    background: transparent;
    color: #cbd5e1;
    border-radius: 9px;
    padding: 8px 10px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s, color .12s, opacity .12s;
}
.em-tool svg { width: 18px; height: 18px; display: block; }
.em-tool:hover:not(:disabled) { background: rgba(255, 255, 255, 0.1); color: #fff; }
.em-tool.is-active { background: var(--primary-color, #2563eb); color: #fff; }
.em-tool[data-tool="pen"].is-active { background: #ef4444; color: #fff; }
.em-tool:disabled { opacity: .35; cursor: default; }
.em-tool-text { white-space: nowrap; }
.em-tool-done { background: rgba(22, 163, 74, 0.18); color: #4ade80; }
.em-tool-done:hover:not(:disabled) { background: rgba(22, 163, 74, 0.30); color: #86efac; }
.em-tool-sep { width: 1px; align-self: stretch; margin: 4px 2px; background: rgba(255, 255, 255, 0.14); }

/* Палитра цветов */
.em-swatches { display: flex; align-items: center; gap: 5px; padding: 0 4px; }
.em-swatch {
    width: 18px; height: 18px; border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.25);
    background: var(--sw); cursor: pointer; padding: 0;
    transition: transform .1s, border-color .1s;
}
.em-swatch:hover { transform: scale(1.12); }
.em-swatch.is-active { border-color: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.35); }
/* Толщина линии */
.em-widths { display: flex; align-items: center; gap: 3px; }
.em-width {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border: none; background: transparent;
    border-radius: 7px; cursor: pointer;
}
.em-width span { display: block; background: #cbd5e1; border-radius: 50%; }
.em-width:hover { background: rgba(255,255,255,.1); }
.em-width.is-active { background: rgba(255,255,255,.16); }
.em-width.is-active span { background: #fff; }

/* Холст для рисования поверх выделенной области */
.em-draw-canvas {
    position: fixed;
    z-index: 4;
    cursor: crosshair;
    touch-action: none;
}
.em-overlay.em-pen-mode { cursor: crosshair; }

@media (max-width: 760px) {
    .em-tool-text { display: none; }
    .em-tool { padding: 8px; }
    .em-toolbar { gap: 2px; padding: 5px; flex-wrap: wrap; max-width: 96vw; }
}

/* Форма подписи к выделению */
.em-caption {
    position: fixed;
    width: 360px;
    max-width: calc(100vw - 16px);
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.22);
    padding: 12px;
    cursor: default;
    z-index: 5;
}
.em-caption-title { font-weight: 600; font-size: 13px; color: #0f172a; margin-bottom: 8px; }
.em-caption-text {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 8px;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
    outline: none;
    /* Заказчик 20.06.2026 (п.9): поле было низким (rows=3) и текст «обрезался» при наборе.
       Лимита на длину нет (БД TEXT), но даём больше места и скролл внутри для длинных правок. */
    min-height: 104px;
    max-height: 38vh;
    line-height: 1.4;
}
.em-caption-text:focus { border-color: var(--primary-color, #2563eb); }
.em-caption-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 8px;
}
.em-caption-priority {
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 6px 8px;
    font-size: 12px;
    background: #fff;
    cursor: pointer;
}
.em-caption-actions { display: flex; gap: 6px; }
.em-btn {
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155;
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s, border-color .12s;
}
.em-btn:hover { background: #f1f5f9; }
.em-btn-save { background: var(--primary-color, #2563eb); border-color: var(--primary-color, #2563eb); color: #fff; }
.em-btn-save:hover { filter: brightness(1.08); background: var(--primary-color, #2563eb); }
.em-btn-save:disabled { opacity: .6; cursor: default; }
.em-btn-del { color: #b91c1c; border-color: #fecaca; }
.em-btn-del:hover { background: #fef2f2; }
.em-caption-meta {
    margin-top: 8px;
    font-size: 11px;
    color: #94a3b8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Вкладка «Правки» — шапка */
.em-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 16px 18px;
    background: linear-gradient(180deg, var(--card-bg, #fff), var(--surface-bg, #f8fafc));
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .05);
}
.em-page-title { display: flex; align-items: center; gap: 14px; min-width: 0; }
.em-page-ic {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; flex-shrink: 0;
    border-radius: 12px; color: #fff;
    background: linear-gradient(135deg, var(--primary-color, #2563eb), #1d4ed8);
    box-shadow: 0 4px 12px rgba(37, 99, 235, .3);
}
.em-page-title h2 { margin: 0; font-size: 20px; color: var(--text-color, #0f172a); }
.em-page-sub { color: var(--text-muted, #64748b); font-size: 13px; margin-top: 2px; max-width: 560px; }
.em-add-btn {
    display: inline-flex; align-items: center; gap: 7px;
    border: none;
    background: var(--primary-color, #2563eb);
    color: #fff;
    border-radius: 10px;
    padding: 11px 18px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(37, 99, 235, .28);
    transition: filter .12s, transform .1s;
}
.em-add-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.em-add-btn svg { display: block; }

/* ===== Канбан правок — мягкие тонированные колонки + компактные строки (scoped под .em-kanban) ===== */
/* Доска занимает всю доступную высоту (#editsTab — flex-колонка), 3 колонки делят всю ширину.
   Скролл — внутри колонок, сама доска не растёт и не оставляет пустоты снизу/справа. */
.em-kanban {
    gap: 16px;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    align-items: stretch;
}
.em-kanban .adv-stage-column {
    flex: 1 1 0;            /* равная доля всей ширины */
    min-width: 0;
    max-height: none;       /* высоту задаёт флекс-растяжение, базовый cap отменяем */
    min-height: 0;
    background: color-mix(in srgb, var(--stage-color, #94a3b8) 7%, var(--card-bg, #fff));
    border: 1px solid color-mix(in srgb, var(--stage-color, #94a3b8) 18%, var(--border-color, #e2e8f0));
    border-radius: 16px;
    overflow: hidden;
}
.em-kanban .adv-stage-header {
    display: flex; align-items: center; justify-content: space-between;
    border: none; border-radius: 0; padding: 14px 16px; background: transparent;
    flex: 0 0 auto;
}
.em-kanban .adv-stage-header::before { content: none; }
.em-kanban .adv-stage-title { font-size: 14px; font-weight: 800; color: var(--stage-color, #475569); }
.em-kanban .adv-stage-count {
    background: var(--stage-color, #94a3b8);
    color: #fff;
    border-radius: 999px; padding: 3px 11px; font-size: 12px; font-weight: 800; min-width: 26px; text-align: center;
}
.em-kanban .adv-stage-body {
    flex: 1 1 auto; min-height: 0; overflow-y: auto;
    padding: 2px 12px 14px; display: flex; flex-direction: column; gap: 9px;
}
.em-kanban .adv-stage-empty { color: #94a3b8; font-size: 12px; text-align: center; padding: 22px 0; font-style: italic; margin: auto; }
.em-kanban .adv-stage-column.adv-drag-over {
    box-shadow: inset 0 0 0 2px var(--stage-color, #3b82f6);
}

/* Компактная строка-карточка (плотный список, стиль мягких карточек п.5) */
.em-card.em-card-row {
    display: flex !important;
    align-items: center;
    gap: 10px;
    background: var(--card-bg, #fff);
    border: none !important;
    border-radius: 13px !important;
    padding: 10px 12px !important;
    box-shadow: 0 3px 10px rgba(15, 23, 42, .07);
    cursor: pointer;
    transition: box-shadow .14s, transform .1s;
}
.em-card.em-card-row:hover { box-shadow: 0 6px 18px rgba(15, 23, 42, .13); transform: translateY(-1px); }
.em-card.em-card-row.adv-dragging { opacity: .55; }
.em-row-thumb {
    width: 42px; height: 42px; border-radius: 9px; flex-shrink: 0; object-fit: cover; object-position: top left;
    border: 1px solid var(--border-color, #e2e8f0); background: #f1f5f9;
}
.em-row-thumb--empty { display: inline-flex; align-items: center; justify-content: center; color: #cbd5e1; background: var(--surface-bg, #f8fafc); }
.em-row-main { min-width: 0; flex: 1; }
.em-row-title {
    font-size: 13px; font-weight: 600; color: var(--text-color, #0f172a); line-height: 1.35;
    word-break: break-word; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.em-row-sub { font-size: 11px; color: #94a3b8; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-row-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
.em-row-time { font-size: 10px; color: #94a3b8; white-space: nowrap; }
body[data-theme="dark"] .em-card.em-card-row { background: #1e293b; }
body[data-theme="dark"] .em-row-title { color: #e2e8f0; }
body[data-theme="dark"] .em-row-thumb--empty { background: #0f172a; }

/* Канбан-карточка правки (базовый класс, на случай старого рендера) */
.em-card {
    border-radius: 11px !important;
    padding: 11px !important;
    border-color: var(--border-color, #e7ebf1) !important;
}
.em-card-shot {
    width: 100%;
    max-height: 130px;
    object-fit: cover;
    object-position: top left;
    border-radius: 8px;
    border: 1px solid var(--border-color, #e2e8f0);
    margin-bottom: 8px;
    display: block;
    background: #f8fafc;
}
/* Превью текста правки в карточке: до 8 строк (заказчик 20.06.2026, п.9 — длинный текст «обрезался»).
   Полный текст всегда доступен по клику в детальном окне (.em-detail-comment без клампа). */
.em-card-comment { font-size: 13px; color: var(--text-color, #0f172a); line-height: 1.4; white-space: pre-wrap; word-break: break-word; display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
.em-card-route {
    display: inline-block; font-size: 11px; color: var(--text-muted, #64748b);
    margin-top: 8px; background: var(--surface-bg, #f1f5f9);
    padding: 2px 8px; border-radius: 6px; max-width: 100%;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: top;
}
.em-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid var(--border-color, #eef1f6);
}
.em-card-foot-l { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.em-card-author { font-size: 11px; color: var(--text-muted, #64748b); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-card-time { font-size: 10px; color: #94a3b8; white-space: nowrap; }
.em-prio { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: #f1f5f9; color: #475569; }
.em-prio-high { background: #fee2e2; color: #b91c1c; }
.em-prio-low { background: #f1f5f9; color: #94a3b8; }
body[data-theme="dark"] .em-card-comment { color: #e2e8f0; }
body[data-theme="dark"] .em-kanban .adv-stage-header { background: transparent; }
body[data-theme="dark"] .em-card { background: #1e293b; }
body[data-theme="dark"] .em-card-route { background: #0f172a; }

/* Модалка деталей правки */
.em-detail-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(15, 23, 42, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.em-detail {
    width: 560px;
    max-width: 100%;
    max-height: 88vh;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.em-detail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid #e2e8f0;
    font-weight: 600;
    color: #0f172a;
}
.em-detail-close { border: none; background: none; font-size: 22px; line-height: 1; color: #94a3b8; cursor: pointer; }
.em-detail-close:hover { color: #334155; }
.em-detail-body { padding: 16px 18px; overflow-y: auto; }
.em-detail-shotwrap { position: relative; margin-bottom: 14px; }
.em-detail-shot { width: 100%; border: 1px solid #e2e8f0; border-radius: 8px; display: block; cursor: zoom-in; }
.em-detail-annot {
    position: absolute; right: 8px; bottom: 8px;
    border: none; background: rgba(15, 23, 42, 0.78); color: #fff;
    border-radius: 8px; padding: 7px 12px; font-size: 12px; font-weight: 600;
    cursor: pointer; backdrop-filter: blur(2px); transition: background .12s;
}
.em-detail-annot:hover { background: rgba(15, 23, 42, 0.92); }
.em-detail-comment { font-size: 15px; color: #0f172a; line-height: 1.4; white-space: pre-wrap; word-break: break-word; margin-bottom: 14px; }
.em-detail-meta { display: grid; grid-template-columns: 90px 1fr; gap: 6px 12px; margin: 0; font-size: 12px; }
.em-detail-meta dt { color: #94a3b8; font-weight: 600; }
.em-detail-meta dd { margin: 0; color: #334155; word-break: break-word; }
.em-detail-meta code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; background: #f1f5f9; padding: 1px 5px; border-radius: 4px; }
.em-detail-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid #e2e8f0;
}

/* Тёмная тема — модалка/форма на тёмном фоне */
body[data-theme="dark"] .em-caption,
body[data-theme="dark"] .em-detail { background: #1e293b; border-color: #334155; }
body[data-theme="dark"] .em-caption-title,
body[data-theme="dark"] .em-detail-head,
body[data-theme="dark"] .em-detail-comment,
body[data-theme="dark"] .em-card-comment { color: #e2e8f0; }
body[data-theme="dark"] .em-caption-text,
body[data-theme="dark"] .em-caption-priority { background: #0f172a; color: #e2e8f0; border-color: #334155; }
body[data-theme="dark"] .em-detail-meta dd { color: #cbd5e1; }

/* Подсказка в форме подписи */
.em-caption-tip { font-size: 11px; color: #94a3b8; margin: -2px 0 8px; }

/* Кнопка-карандаш в шапке остаётся кликабельной поверх оверлея (выход из режима) */
body.em-active #editModeToggle { position: relative; z-index: 99999; }

/* Инлайн-редактирование в модалке деталей */
.em-detail-edit { margin-bottom: 14px; }
.em-detail-text {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 9px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
    outline: none;
}
.em-detail-text:focus { border-color: var(--primary-color, #2563eb); }
.em-detail-priority {
    margin-top: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 7px 10px;
    font-size: 13px;
    background: #fff;
    cursor: pointer;
}
.em-detail-foot { flex-wrap: wrap; }
.em-btn-edit { margin-right: auto; }
.em-btn-savEdit { background: var(--primary-color, #2563eb); border-color: var(--primary-color, #2563eb); color: #fff; }
.em-btn-savEdit:hover { filter: brightness(1.08); }
body[data-theme="dark"] .em-detail-text,
body[data-theme="dark"] .em-detail-priority { background: #0f172a; color: #e2e8f0; border-color: #334155; }

/* Панель «Мои правки» — выезжает справа поверх оверлея */
.em-history {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 340px;
    max-width: 90vw;
    background: #fff;
    box-shadow: -10px 0 40px rgba(15, 23, 42, 0.25);
    z-index: 99995;
    display: flex;
    flex-direction: column;
    animation: emHistoryIn .18s ease-out;
}
@keyframes emHistoryIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
.em-history-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #e2e8f0;
    font-weight: 700;
    font-size: 15px;
    color: #0f172a;
}
.em-history-close { border: none; background: none; font-size: 22px; line-height: 1; color: #94a3b8; cursor: pointer; }
.em-history-close:hover { color: #334155; }
.em-history-body { flex: 1; overflow-y: auto; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.em-history-empty { color: #94a3b8; font-size: 13px; text-align: center; padding: 30px 12px; }
.em-history-item {
    display: flex;
    gap: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 9px;
    cursor: pointer;
    transition: border-color .12s, box-shadow .12s;
}
.em-history-item:hover { border-color: var(--primary-color, #2563eb); box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08); }
.em-history-shot { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; border: 1px solid #e2e8f0; flex-shrink: 0; background: #f8fafc; }
.em-history-main { min-width: 0; flex: 1; }
.em-history-comment { font-size: 13px; color: #0f172a; line-height: 1.35; word-break: break-word; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.em-history-route { font-size: 11px; color: #64748b; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-history-foot { display: flex; align-items: center; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.em-history-status { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 999px; color: #fff; background: var(--st, #3b82f6); }
.em-history-time { font-size: 10px; color: #94a3b8; margin-left: auto; }
body[data-theme="dark"] .em-history { background: #1e293b; }
body[data-theme="dark"] .em-history-head { color: #e2e8f0; border-color: #334155; }
body[data-theme="dark"] .em-history-item { border-color: #334155; }
body[data-theme="dark"] .em-history-comment { color: #e2e8f0; }

/* Редактор скриншота (дорисовать поверх картинки) */
.em-imed-overlay {
    position: fixed; inset: 0; z-index: 100090;
    background: rgba(15, 23, 42, 0.62);
    display: flex; align-items: center; justify-content: center; padding: 18px;
}
.em-imed {
    background: #fff; border-radius: 14px; box-shadow: 0 24px 70px rgba(0,0,0,.4);
    display: flex; flex-direction: column; max-width: 96vw; max-height: 94vh; overflow: hidden;
}
.em-imed-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 13px 18px; border-bottom: 1px solid #e2e8f0; font-weight: 700; color: #0f172a;
}
.em-imed-close { border: none; background: none; font-size: 22px; line-height: 1; color: #94a3b8; cursor: pointer; }
.em-imed-close:hover { color: #334155; }
.em-imed-tools {
    display: flex; align-items: center; gap: 4px; flex-wrap: wrap;
    padding: 8px 14px; background: #0f172a; color: #e2e8f0;
}
.em-imed-canvaswrap {
    padding: 16px; overflow: auto; display: flex; align-items: center; justify-content: center;
    background: repeating-conic-gradient(#f1f5f9 0% 25%, #fff 0% 50%) 50% / 22px 22px;
}
.em-imed-canvas { cursor: crosshair; touch-action: none; border-radius: 6px; box-shadow: 0 2px 10px rgba(0,0,0,.12); background: #fff; }
.em-imed-foot {
    display: flex; align-items: center; justify-content: flex-end; gap: 8px;
    padding: 12px 18px; border-top: 1px solid #e2e8f0;
}
body[data-theme="dark"] .em-imed { background: #1e293b; }
body[data-theme="dark"] .em-imed-head { color: #e2e8f0; border-color: #334155; }
body[data-theme="dark"] .em-imed-canvaswrap { background: repeating-conic-gradient(#0b1220 0% 25%, #131f33 0% 50%) 50% / 22px 22px; }

/* Лайтбокс скриншота правки */
.em-lightbox {
    position: fixed; inset: 0; z-index: 100120;
    background: rgba(0, 0, 0, .85);
    display: flex; align-items: center; justify-content: center;
    padding: 24px; cursor: zoom-out;
}
.em-lightbox img { max-width: 96vw; max-height: 92vh; border-radius: 8px; box-shadow: 0 10px 50px rgba(0,0,0,.5); }
.em-lightbox-close {
    position: fixed; top: 18px; right: 24px;
    background: rgba(255,255,255,.18); border: none; color: #fff;
    font-size: 30px; width: 46px; height: 46px; border-radius: 50%; cursor: pointer; line-height: 1;
}
.em-lightbox-close:hover { background: rgba(255,255,255,.3); }

/* ============================================================================
   ПРАВКИ 21.06.2026 — компактная шапка, вложения, корзина, фильтр дат
============================================================================ */

/* --- Компактная панель страницы (заменила большую плашку-баннер) --- */
.em-bar {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    margin-bottom: 16px;
}
.em-bar-search {
    display: inline-flex; align-items: center; gap: 8px; flex: 1 1 240px; min-width: 200px; max-width: 460px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 10px; padding: 9px 12px; color: var(--text-muted, #94a3b8);
    transition: border-color .12s, box-shadow .12s;
}
.em-bar-search:focus-within { border-color: var(--primary-color, #2563eb); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.em-bar-search svg { flex-shrink: 0; }
.em-bar-search input {
    border: none; outline: none; background: transparent; width: 100%;
    font-size: 14px; color: var(--text-color, #0f172a);
}
.em-bar-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.em-ghost-btn {
    display: inline-flex; align-items: center; gap: 7px;
    border: 1px solid var(--border-color, #e2e8f0); background: var(--card-bg, #fff);
    color: var(--text-color, #334155); border-radius: 10px; padding: 10px 14px;
    font-size: 14px; font-weight: 600; cursor: pointer; transition: background .12s, border-color .12s;
}
.em-ghost-btn:hover { background: var(--surface-bg, #f1f5f9); border-color: #cbd5e1; }
.em-bar-count {
    background: #ef4444; color: #fff; border-radius: 999px;
    min-width: 18px; height: 18px; padding: 0 5px; font-size: 11px; font-weight: 800;
    display: inline-flex; align-items: center; justify-content: center;
}
body[data-theme="dark"] .em-bar-search,
body[data-theme="dark"] .em-ghost-btn { background: #1e293b; border-color: #334155; color: #e2e8f0; }
body[data-theme="dark"] .em-bar-search input { color: #e2e8f0; }
body[data-theme="dark"] .em-ghost-btn:hover { background: #0f172a; }

/* --- Форма правки: шапка/перетаскивание/сворачивание --- */
.em-caption-bar {
    display: flex; align-items: center; gap: 8px;
    margin: -12px -12px 8px; padding: 8px 10px;
    border-bottom: 1px solid var(--border-color, #eef1f6);
    cursor: grab; user-select: none; border-radius: 10px 10px 0 0;
}
.em-caption--dragging .em-caption-bar { cursor: grabbing; }
.em-caption-grip { color: #cbd5e1; font-size: 14px; line-height: 1; letter-spacing: -2px; }
.em-caption-bar .em-caption-title { margin: 0; flex: 1; }
.em-caption-bar-actions { display: flex; align-items: center; gap: 2px; }
.em-caption-collapse, .em-caption-x {
    border: none; background: none; color: #94a3b8; cursor: pointer; line-height: 1;
    width: 26px; height: 26px; border-radius: 7px; font-size: 18px;
    display: inline-flex; align-items: center; justify-content: center;
}
.em-caption-collapse:hover, .em-caption-x:hover { background: #f1f5f9; color: #334155; }
.em-caption--collapsed { width: auto !important; }
.em-caption--collapsed .em-caption-body { display: none; }
.em-caption--collapsed .em-caption-bar { margin-bottom: -12px; border-bottom: none; }
.em-caption--dragging { box-shadow: 0 18px 50px rgba(15,23,42,.35); }
body[data-theme="dark"] .em-caption-collapse:hover,
body[data-theme="dark"] .em-caption-x:hover { background: #0f172a; color: #e2e8f0; }

/* --- Зона drag&drop вложений --- */
.em-caption-drop {
    display: flex; align-items: center; gap: 8px; margin-top: 8px;
    border: 1.5px dashed #cbd5e1; border-radius: 8px; padding: 9px 11px;
    color: #64748b; font-size: 12px; cursor: pointer; transition: border-color .12s, background .12s;
}
.em-caption-drop:hover { border-color: var(--primary-color, #2563eb); background: rgba(37,99,235,.04); }
.em-caption-drop.is-over { border-color: var(--primary-color, #2563eb); background: rgba(37,99,235,.10); border-style: solid; }
.em-caption-drop.is-busy { opacity: .6; pointer-events: none; }
.em-caption-drop-ic { flex-shrink: 0; color: #94a3b8; }
.em-caption-drop-link { color: var(--primary-color, #2563eb); font-weight: 600; text-decoration: underline; }
/* Чипы вложений */
.em-caption-files { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.em-file-chip {
    display: inline-flex; align-items: center; gap: 7px; max-width: 100%;
    border: 1px solid var(--border-color, #e2e8f0); border-radius: 8px; padding: 4px 6px 4px 4px;
    background: var(--surface-bg, #f8fafc); font-size: 12px;
}
.em-file-thumb { width: 30px; height: 30px; object-fit: cover; border-radius: 5px; flex-shrink: 0; background: #fff; }
.em-file-ic { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.em-file-meta { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.em-file-name { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-color, #334155); font-weight: 600; }
.em-file-size { color: #94a3b8; font-size: 10px; }
.em-file-rm {
    border: none; background: none; color: #94a3b8; cursor: pointer; font-size: 16px; line-height: 1;
    width: 20px; height: 20px; border-radius: 5px; flex-shrink: 0;
}
.em-file-rm:hover { background: #fee2e2; color: #b91c1c; }
body[data-theme="dark"] .em-caption-drop { border-color: #334155; color: #94a3b8; }
body[data-theme="dark"] .em-file-chip { background: #0f172a; border-color: #334155; }
body[data-theme="dark"] .em-file-name { color: #e2e8f0; }

/* Значок вложений на карточке/в корзине */
.em-card-att { font-size: 10px; color: #64748b; background: #f1f5f9; border-radius: 999px; padding: 2px 7px; white-space: nowrap; }
body[data-theme="dark"] .em-card-att { background: #0f172a; color: #94a3b8; }

/* --- Вложения в детальном окне --- */
.em-detail-atts { margin-bottom: 14px; }
.em-detail-atts-h { font-size: 12px; font-weight: 700; color: #64748b; margin-bottom: 8px; }
.em-detail-atts-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.em-att { text-decoration: none; }
.em-att-img img { width: 84px; height: 84px; object-fit: cover; border-radius: 8px; border: 1px solid #e2e8f0; cursor: zoom-in; display: block; background: #f8fafc; }
.em-att-img img:hover { border-color: var(--primary-color, #2563eb); }
.em-att-file {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 11px; background: #f8fafc; color: #334155;
    transition: border-color .12s, background .12s;
}
.em-att-file:hover { border-color: var(--primary-color, #2563eb); background: #eff6ff; }
.em-att-ic { font-size: 20px; }
.em-att-name { font-size: 13px; font-weight: 600; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-att-size { font-size: 11px; color: #94a3b8; }
.em-detail-hint { font-size: 11px; color: #94a3b8; margin-top: 4px; line-height: 1.35; }
body[data-theme="dark"] .em-att-file { background: #0f172a; border-color: #334155; color: #cbd5e1; }
body[data-theme="dark"] .em-att-file:hover { background: #1e293b; }

/* --- Фильтр дат в «Мои правки» (дизайн 4: сегмент-контрол + раскрытие) --- */
.em-history-filter {
    display: flex; flex-direction: column; gap: 10px;
    padding: 12px 14px; border-bottom: 1px solid var(--border-color, #e2e8f0);
}
.em-hf-seg {
    display: flex; gap: 2px; padding: 3px;
    background: var(--surface-bg, #f1f5f9); border-radius: 10px;
}
.em-hf-seg button {
    flex: 1; border: none; background: transparent; color: #475569;
    border-radius: 8px; padding: 7px 4px; font-size: 12px; font-weight: 600; cursor: pointer;
    transition: background .12s, color .12s, box-shadow .12s;
}
.em-hf-seg button:hover:not(.is-active) { color: var(--primary-color, #2563eb); }
.em-hf-seg button.is-active {
    background: var(--card-bg, #fff); color: var(--primary-color, #2563eb);
    box-shadow: 0 1px 3px rgba(15, 23, 42, .12);
}
.em-hf-disc {
    display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
    border: none; background: none; padding: 0; cursor: pointer;
    color: var(--primary-color, #2563eb); font-size: 12px; font-weight: 600;
}
.em-hf-disc svg { transition: transform .15s; }
.em-hf-disc.is-open svg { transform: rotate(0); }
.em-hf-disc:hover { text-decoration: underline; }
/* поле диапазона раскрывается по клику */
.em-hf-range-wrap { display: none; }
.em-hf-range-wrap.open { display: block; }
.em-hf-range-wrap input {
    width: 100%; box-sizing: border-box;
    border: 1px solid var(--border-color, #e2e8f0); border-radius: 9px; padding: 9px 11px;
    font-size: 13px; font-family: inherit; background: var(--card-bg, #fff); color: var(--text-color, #334155);
    cursor: pointer;
}
.em-hf-range-wrap input:focus { outline: none; border-color: var(--primary-color, #2563eb); box-shadow: 0 0 0 3px rgba(37, 99, 235, .12); }
body[data-theme="dark"] .em-history-filter { border-color: #334155; }
body[data-theme="dark"] .em-hf-seg { background: #0f172a; }
body[data-theme="dark"] .em-hf-seg button.is-active { background: #1e293b; }
body[data-theme="dark"] .em-hf-range-wrap input { background: #0f172a; border-color: #334155; color: #cbd5e1; }

/* --- Корзина правок (оверлей) --- */
.em-trash { width: 640px; }
.em-trash-body { flex: 1 1 auto; min-height: 0; padding: 12px 16px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
.em-trash-item {
    display: flex; gap: 12px; align-items: center;
    border: 1px solid var(--border-color, #e2e8f0); border-radius: 10px; padding: 10px;
}
.em-trash-shot { width: 64px; height: 64px; object-fit: cover; border-radius: 7px; border: 1px solid #e2e8f0; flex-shrink: 0; cursor: zoom-in; background: #f8fafc; }
.em-trash-noshot { width: 64px; height: 64px; flex-shrink: 0; border-radius: 7px; border: 1px dashed #e2e8f0; display: flex; align-items: center; justify-content: center; font-size: 10px; color: #cbd5e1; }
.em-trash-main { flex: 1; min-width: 0; }
.em-trash-comment { font-size: 14px; color: #0f172a; line-height: 1.35; word-break: break-word; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.em-trash-sub { display: flex; align-items: center; gap: 8px; margin-top: 5px; flex-wrap: wrap; }
.em-trash-route { font-size: 11px; color: #64748b; background: #f1f5f9; padding: 2px 8px; border-radius: 6px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-trash-time { font-size: 11px; color: #94a3b8; }
.em-trash-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.em-trash-foot { justify-content: flex-start; }
.em-trash-empty { color: #b91c1c; border-color: #fecaca; }
.em-trash-empty:hover { background: #fef2f2; }
body[data-theme="dark"] .em-trash-item { border-color: #334155; }
body[data-theme="dark"] .em-trash-comment { color: #e2e8f0; }
body[data-theme="dark"] .em-trash-route { background: #0f172a; }

/* ============================================================================
   ТЁМНАЯ ТЕМА — ПОЛНАЯ ДОВОДКА ПО ВСЕМ ЭКРАНАМ (07.06.2026)
   Все правила скоупированы body[data-theme="dark"] — светлая тема не затронута.
   Блок 1: глобальные оверрайды инлайн-стилей (захардкоженные цвета в JS-рендере)
   Блок 2: точечные оверрайды классов по разделам
============================================================================ */

/* ---------- 1. Инлайн-стили: тёмные тексты → светлые (порядок важен: общие префиксы раньше) ---------- */
body[data-theme="dark"] [style*="color:#111"]:not(.dark-keep):not(.dark-keep *) { color: #e5e7eb !important; }
body[data-theme="dark"] [style*="color:#111827"]:not(.dark-keep):not(.dark-keep *) { color: #e5e7eb !important; }
body[data-theme="dark"] [style*="color:#0f172a"]:not(.dark-keep):not(.dark-keep *) { color: #e5e7eb !important; }
body[data-theme="dark"] [style*="color:#1f2937"]:not(.dark-keep):not(.dark-keep *) { color: #e5e7eb !important; }
body[data-theme="dark"] [style*="color:#333"]:not(.dark-keep):not(.dark-keep *) { color: #d1d5db !important; }
body[data-theme="dark"] [style*="color:#334155"]:not(.dark-keep):not(.dark-keep *) { color: #cbd5e1 !important; }
body[data-theme="dark"] [style*="color:#374151"]:not(.dark-keep):not(.dark-keep *) { color: #cbd5e1 !important; }
body[data-theme="dark"] [style*="color:#444"]:not(.dark-keep):not(.dark-keep *) { color: #cbd5e1 !important; }
body[data-theme="dark"] [style*="color:#4b5563"]:not(.dark-keep):not(.dark-keep *) { color: #9ca3af !important; }
body[data-theme="dark"] [style*="color:#475569"]:not(.dark-keep):not(.dark-keep *) { color: #94a3b8 !important; }
body[data-theme="dark"] [style*="color:#555"]:not(.dark-keep):not(.dark-keep *) { color: #9ca3af !important; }
body[data-theme="dark"] [style*="color:#64748b"]:not(.dark-keep):not(.dark-keep *) { color: #94a3b8 !important; }
body[data-theme="dark"] [style*="color:#666"]:not(.dark-keep):not(.dark-keep *) { color: #9ca3af !important; }
body[data-theme="dark"] [style*="color:#6b7280"]:not(.dark-keep):not(.dark-keep *) { color: #9ca3af !important; }
/* красные */
body[data-theme="dark"] [style*="color:#dc2626"]:not(.dark-keep):not(.dark-keep *) { color: #f87171 !important; }
body[data-theme="dark"] [style*="color:#b91c1c"]:not(.dark-keep):not(.dark-keep *) { color: #f87171 !important; }
body[data-theme="dark"] [style*="color:#991b1b"]:not(.dark-keep):not(.dark-keep *) { color: #fca5a5 !important; }
body[data-theme="dark"] [style*="color:#7f1d1d"]:not(.dark-keep):not(.dark-keep *) { color: #fca5a5 !important; }
body[data-theme="dark"] [style*="color:#c00"]:not(.dark-keep):not(.dark-keep *) { color: #f87171 !important; }
body[data-theme="dark"] [style*="color:#c0392b"]:not(.dark-keep):not(.dark-keep *) { color: #f87171 !important; }
/* янтарные/оранжевые */
body[data-theme="dark"] [style*="color:#92400e"]:not(.dark-keep):not(.dark-keep *) { color: #fbbf24 !important; }
body[data-theme="dark"] [style*="color:#b45309"]:not(.dark-keep):not(.dark-keep *) { color: #fbbf24 !important; }
body[data-theme="dark"] [style*="color:#78350f"]:not(.dark-keep):not(.dark-keep *) { color: #fcd34d !important; }
body[data-theme="dark"] [style*="color:#9a3412"]:not(.dark-keep):not(.dark-keep *) { color: #fdba74 !important; }
body[data-theme="dark"] [style*="color:#856404"]:not(.dark-keep):not(.dark-keep *) { color: #fcd34d !important; }
/* зелёные */
body[data-theme="dark"] [style*="color:#065f46"]:not(.dark-keep):not(.dark-keep *) { color: #34d399 !important; }
body[data-theme="dark"] [style*="color:#047857"]:not(.dark-keep):not(.dark-keep *) { color: #34d399 !important; }
body[data-theme="dark"] [style*="color:#059669"]:not(.dark-keep):not(.dark-keep *) { color: #34d399 !important; }
body[data-theme="dark"] [style*="color:#15803d"]:not(.dark-keep):not(.dark-keep *) { color: #4ade80 !important; }
body[data-theme="dark"] [style*="color:#166534"]:not(.dark-keep):not(.dark-keep *) { color: #4ade80 !important; }
body[data-theme="dark"] [style*="color:#16a34a"]:not(.dark-keep):not(.dark-keep *) { color: #4ade80 !important; }
/* синие/фиолетовые */
body[data-theme="dark"] [style*="color:#1e3a8a"]:not(.dark-keep):not(.dark-keep *) { color: #93c5fd !important; }
body[data-theme="dark"] [style*="color:#1e40af"]:not(.dark-keep):not(.dark-keep *) { color: #93c5fd !important; }
body[data-theme="dark"] [style*="color:#3730a3"]:not(.dark-keep):not(.dark-keep *) { color: #a5b4fc !important; }
body[data-theme="dark"] [style*="color:#6b21a8"]:not(.dark-keep):not(.dark-keep *) { color: #d8b4fe !important; }
body[data-theme="dark"] [style*="color:#0369a1"]:not(.dark-keep):not(.dark-keep *) { color: #7dd3fc !important; }
body[data-theme="dark"] [style*="color:#075985"]:not(.dark-keep):not(.dark-keep *) { color: #7dd3fc !important; }
body[data-theme="dark"] [style*="color:#7c3aed"]:not(.dark-keep):not(.dark-keep *) { color: #a78bfa !important; }
body[data-theme="dark"] [style*="color:#8e44ad"]:not(.dark-keep):not(.dark-keep *) { color: #c084fc !important; }

/* ---------- 1а. Инлайн-стили: светлые фоны → тёмные (общий #fff раньше длинных) ---------- */
body[data-theme="dark"] [style*="background:#fff"]:not(.dark-keep):not(.dark-keep *) { background: #1f2937 !important; }
body[data-theme="dark"] [style*="background:#fff3cd"]:not(.dark-keep):not(.dark-keep *) { background: rgba(245,158,11,.12) !important; border-color: rgba(245,158,11,.35) !important; }
body[data-theme="dark"] [style*="background:#fffbeb"]:not(.dark-keep):not(.dark-keep *) { background: rgba(245,158,11,.10) !important; }
body[data-theme="dark"] [style*="background:#ffedd5"]:not(.dark-keep):not(.dark-keep *) { background: rgba(249,115,22,.15) !important; }
body[data-theme="dark"] [style*="background:#f9fafb"]:not(.dark-keep):not(.dark-keep *) { background: #111827 !important; }
body[data-theme="dark"] [style*="background:#f3f4f6"]:not(.dark-keep):not(.dark-keep *) { background: #374151 !important; }
body[data-theme="dark"] [style*="background:#fafafa"]:not(.dark-keep):not(.dark-keep *) { background: #111827 !important; }
body[data-theme="dark"] [style*="background:#f8fafc"]:not(.dark-keep):not(.dark-keep *) { background: #111827 !important; }
body[data-theme="dark"] [style*="background:#fcfcfd"]:not(.dark-keep):not(.dark-keep *) { background: #111827 !important; }
body[data-theme="dark"] [style*="background:#f9f9f9"]:not(.dark-keep):not(.dark-keep *) { background: #111827 !important; }
body[data-theme="dark"] [style*="background:#f7f8fa"]:not(.dark-keep):not(.dark-keep *) { background: #111827 !important; }
body[data-theme="dark"] [style*="background:#f1f5f9"]:not(.dark-keep):not(.dark-keep *) { background: #1e293b !important; }
body[data-theme="dark"] [style*="background:#f0f7ff"]:not(.dark-keep):not(.dark-keep *) { background: #16263a !important; }
body[data-theme="dark"] [style*="background:#fef3c7"]:not(.dark-keep):not(.dark-keep *) { background: rgba(245,158,11,.15) !important; }
body[data-theme="dark"] [style*="background:#fef9c3"]:not(.dark-keep):not(.dark-keep *) { background: rgba(245,158,11,.15) !important; }
body[data-theme="dark"] [style*="background:#fee2e2"]:not(.dark-keep):not(.dark-keep *) { background: rgba(239,68,68,.16) !important; }
body[data-theme="dark"] [style*="background:#fef2f2"]:not(.dark-keep):not(.dark-keep *) { background: rgba(239,68,68,.10) !important; }
body[data-theme="dark"] [style*="background:#dcfce7"]:not(.dark-keep):not(.dark-keep *) { background: rgba(34,197,94,.16) !important; }
body[data-theme="dark"] [style*="background:#d1fae5"]:not(.dark-keep):not(.dark-keep *) { background: rgba(16,185,129,.16) !important; }
body[data-theme="dark"] [style*="background:#ecfdf5"]:not(.dark-keep):not(.dark-keep *) { background: rgba(16,185,129,.10) !important; }
body[data-theme="dark"] [style*="background:#f0fdf4"]:not(.dark-keep):not(.dark-keep *) { background: rgba(34,197,94,.10) !important; }
body[data-theme="dark"] [style*="background:#bbf7d0"]:not(.dark-keep):not(.dark-keep *) { background: rgba(34,197,94,.28) !important; }
body[data-theme="dark"] [style*="background:#eef2ff"]:not(.dark-keep):not(.dark-keep *) { background: rgba(99,102,241,.16) !important; }
body[data-theme="dark"] [style*="background:#e0e7ff"]:not(.dark-keep):not(.dark-keep *) { background: rgba(99,102,241,.20) !important; }
body[data-theme="dark"] [style*="background:#dbeafe"]:not(.dark-keep):not(.dark-keep *) { background: rgba(59,130,246,.20) !important; }
body[data-theme="dark"] [style*="background:#eff6ff"]:not(.dark-keep):not(.dark-keep *) { background: rgba(59,130,246,.10) !important; }
body[data-theme="dark"] [style*="background:#e0f2fe"]:not(.dark-keep):not(.dark-keep *) { background: rgba(14,165,233,.16) !important; }
body[data-theme="dark"] [style*="background:#f0f9ff"]:not(.dark-keep):not(.dark-keep *) { background: rgba(14,165,233,.10) !important; }

/* ---------- 1б. Инлайн-стили: светлые рамки → тёмные ---------- */
body[data-theme="dark"] [style*="solid #e5e7eb"]:not(.dark-keep):not(.dark-keep *) { border-color: #374151 !important; }
body[data-theme="dark"] [style*="solid #d1d5db"]:not(.dark-keep):not(.dark-keep *) { border-color: #4b5563 !important; }
body[data-theme="dark"] [style*="solid #e2e8f0"]:not(.dark-keep):not(.dark-keep *) { border-color: #374151 !important; }
body[data-theme="dark"] [style*="solid #f1f5f9"]:not(.dark-keep):not(.dark-keep *) { border-color: #1f2937 !important; }
body[data-theme="dark"] [style*="solid #f3f4f6"]:not(.dark-keep):not(.dark-keep *) { border-color: #1f2937 !important; }
body[data-theme="dark"] [style*="solid #f9fafb"]:not(.dark-keep):not(.dark-keep *) { border-color: #1f2937 !important; }
body[data-theme="dark"] [style*="solid #f8fafc"]:not(.dark-keep):not(.dark-keep *) { border-color: #1f2937 !important; }
body[data-theme="dark"] [style*="solid #ddd"]:not(.dark-keep):not(.dark-keep *) { border-color: #374151 !important; }
body[data-theme="dark"] [style*="solid #cbd5e1"]:not(.dark-keep):not(.dark-keep *) { border-color: #4b5563 !important; }
body[data-theme="dark"] [style*="solid #fde68a"]:not(.dark-keep):not(.dark-keep *) { border-color: rgba(245,158,11,.40) !important; }
body[data-theme="dark"] [style*="solid #fcd34d"]:not(.dark-keep):not(.dark-keep *) { border-color: rgba(245,158,11,.45) !important; }
body[data-theme="dark"] [style*="solid #fef3c7"]:not(.dark-keep):not(.dark-keep *) { border-color: rgba(245,158,11,.35) !important; }
body[data-theme="dark"] [style*="solid #fca5a5"]:not(.dark-keep):not(.dark-keep *) { border-color: rgba(239,68,68,.45) !important; }
body[data-theme="dark"] [style*="solid #fecaca"]:not(.dark-keep):not(.dark-keep *) { border-color: rgba(239,68,68,.35) !important; }

/* ---------- 2. СВОД: сайдбар, чипсы, фильтры ---------- */
body[data-theme="dark"] .svod-tax-chip { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .svod-tax-chip:hover { background: #1e3a5f; border-color: #4a9eff; }
body[data-theme="dark"] .svod-quarter-chip { background: #1f2937; border-color: #374151; color: #cbd5e1; }
body[data-theme="dark"] .svod-quarter-chip:hover { background: #374151; border-color: #4b5563; }
body[data-theme="dark"] .svod-sidebar-period-selects select,
body[data-theme="dark"] .svod-sidebar-search input { background: #1f2937; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .svod-sidebar-toggle:hover { background: #374151; color: #e5e7eb; }
body[data-theme="dark"] .svod-dash-row:hover { background: #374151; }
body[data-theme="dark"] .svod-dash-row.active { background: #1e3a5f; }
body[data-theme="dark"] .svod-dash-row-label { color: #9ca3af; }
body[data-theme="dark"] .svod-dash-row-value.neutral { color: #cbd5e1; }
body[data-theme="dark"] .svod-dash-row-value.has-issues,
body[data-theme="dark"] .svod-dash-row-value.bad { color: #f87171; }
body[data-theme="dark"] .svod-dash-row-value.all-ok,
body[data-theme="dark"] .svod-dash-row-value.good { color: #4ade80; }
body[data-theme="dark"] .svod-debt-negative { color: #f87171; }
body[data-theme="dark"] .svod-debt-zero { color: #4ade80; }
body[data-theme="dark"] .svod-main-header h2 { color: #e5e7eb; }
body[data-theme="dark"] .svod-columns-btn { background: #1f2937; border-color: #374151; color: #9ca3af; }
body[data-theme="dark"] .svod-columns-btn:hover { background: #374151; color: #e5e7eb; }
body[data-theme="dark"] .svod-status-ok { color: #4ade80; }
body[data-theme="dark"] .svod-status-error { color: #f87171; }
body[data-theme="dark"] .svod-status-warning { color: #fbbf24; }
body[data-theme="dark"] .svod-active-filters { background: #16263a; border-color: #1e3a5f; }
body[data-theme="dark"] .svod-filter-label,
body[data-theme="dark"] .svod-filter-text { color: #93c5fd; }
body[data-theme="dark"] .svod-filter-reset { background: #1f2937; border-color: #3b82f6; color: #93c5fd; }
body[data-theme="dark"] .svod-filter-reset:hover { background: #1e3a5f; }
body[data-theme="dark"] .svod-mode-toggle { background: #111827; }
body[data-theme="dark"] .svod-mode-btn { color: #9ca3af; }
body[data-theme="dark"] .svod-mode-btn:hover { color: #e5e7eb; }
body[data-theme="dark"] .svod-mode-btn.active { background: #374151; color: #93c5fd; }

/* ---------- 2а. Общие статус-бейджи и суммы ---------- */
body[data-theme="dark"] .status-active,
body[data-theme="dark"] .status-submitted,
body[data-theme="dark"] .status-done,
body[data-theme="dark"] .status-success { background: rgba(16,185,129,.16); color: #6ee7b7; }
body[data-theme="dark"] .status-working,
body[data-theme="dark"] .status-progress { background: rgba(245,158,11,.16); color: #fcd34d; }
body[data-theme="dark"] .status-paused { background: rgba(249,115,22,.18); color: #fdba74; }
body[data-theme="dark"] .status-closed,
body[data-theme="dark"] .status-overdue,
body[data-theme="dark"] .status-error { background: rgba(239,68,68,.16); color: #fca5a5; }
body[data-theme="dark"] .status-pending { background: #374151; color: #9ca3af; }
body[data-theme="dark"] .status-new { background: rgba(59,130,246,.18); color: #93c5fd; }
body[data-theme="dark"] .error { color: #fca5a5; }
body[data-theme="dark"] .priority-high { color: #fca5a5; }
body[data-theme="dark"] .indicator-overdue { background: rgba(239,68,68,.16); color: #fca5a5; }
body[data-theme="dark"] .indicator-escalation { background: rgba(245,158,11,.16); color: #fcd34d; }
body[data-theme="dark"] .indicator-done { background: rgba(16,185,129,.16); color: #6ee7b7; }
body[data-theme="dark"] .escalation-3 { background: rgba(239,68,68,.18); color: #fca5a5; }
body[data-theme="dark"] .amount-positive { color: #34d399; }
body[data-theme="dark"] .amount-negative { color: #f87171; }
body[data-theme="dark"] .balance-badge.positive { background: rgba(16,185,129,.16); color: #6ee7b7; }
body[data-theme="dark"] .balance-badge.negative { background: rgba(239,68,68,.16); color: #fca5a5; }
body[data-theme="dark"] .spino-yes { background: rgba(16,185,129,.16); color: #6ee7b7; }
body[data-theme="dark"] .spino-no { background: rgba(239,68,68,.16); color: #fca5a5; }

/* ---------- 2б. Статусы отчётов/выручки (месячные ячейки, сетка 091) ---------- */
body[data-theme="dark"] .rc-status-ok { background-color: rgba(16,185,129,.18); color: #6ee7b7; }
body[data-theme="dark"] .rc-status-corrected { background-color: rgba(234,179,8,.18); color: #fde047; }
body[data-theme="dark"] .rc-status-missing { background-color: rgba(239,68,68,.20); color: #fca5a5; }
body[data-theme="dark"] .rc-status-na { color: #6b7280; }
body[data-theme="dark"] .rc-status-no-activity,
body[data-theme="dark"] .rc-status-no_activity { background-color: rgba(59,130,246,.15); color: #94b8e0; }
body[data-theme="dark"] .rc-status-dismissed { background-color: rgba(59,130,246,.15); color: #93c5fd; }
body[data-theme="dark"] .rc-status-forbidden { background-color: rgba(239,68,68,.28); color: #fecaca; }
body[data-theme="dark"] .rc-status-mismatch { background-color: rgba(249,115,22,.20); color: #fdba74; }
body[data-theme="dark"] .revenue-mismatch { background-color: rgba(249,115,22,.22) !important; color: #fdba74 !important; }
body[data-theme="dark"] .status-ok { background-color: rgba(16,185,129,.18); color: #6ee7b7; }
body[data-theme="dark"] .status-no-activity { background-color: rgba(168,85,247,.18); color: #d8b4fe; }
body[data-theme="dark"] .subtotal-row { background: #1e293b; }
body[data-theme="dark"] .kkm-needs-action { background: rgba(249,115,22,.10); }
body[data-theme="dark"] .kkm-no-label { color: #9ca3af; }

/* ---------- 2в. Карточка клиента: вкладки ---------- */
body[data-theme="dark"] .audit-tab:hover { background: rgba(255,255,255,.06); }
body[data-theme="dark"] .audit-tab.active { background: #374151; color: #6db3ff; box-shadow: 0 1px 3px rgba(0,0,0,.4); }

/* ---------- 2г. Чат ---------- */
body[data-theme="dark"] .chat-conv-sla.sla-green { background: rgba(34,197,94,.12); color: #4ade80; }
body[data-theme="dark"] .chat-conv-sla.sla-yellow { background: rgba(234,179,8,.12); color: #facc15; }
body[data-theme="dark"] .chat-conv-sla.sla-red { background: rgba(239,68,68,.14); color: #f87171; }
body[data-theme="dark"] .chat-meta-feed-pin-summary strong { color: #f87171; }
body[data-theme="dark"] .chat-meta-feed-pin-toggle { color: #93c5fd; }
body[data-theme="dark"] .chat-knowledge-btn { background: rgba(124,58,237,.15); border-color: rgba(124,58,237,.45); color: #c4b5fd; }
body[data-theme="dark"] .chat-knowledge-btn:hover { background: rgba(124,58,237,.25); border-color: #a78bfa; color: #ddd6fe; }
body[data-theme="dark"] .chat-assistant-trigger { border-color: #a78bfa; color: #a78bfa; }

/* ---------- 2д. Лента ошибок ---------- */
body[data-theme="dark"] .audit-feed-search,
body[data-theme="dark"] .audit-feed-filter { background: #1f2937; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .audit-feed-toolbar { border-bottom-color: #374151; }
body[data-theme="dark"] .audit-feed-summary { color: #94a3b8; }
body[data-theme="dark"] .audit-feed-pill.st-error { background: rgba(239,68,68,.16); color: #fca5a5; }
body[data-theme="dark"] .audit-feed-pill.st-warning { background: rgba(245,158,11,.16); color: #fcd34d; }
body[data-theme="dark"] .audit-feed-pill.st-pending { background: rgba(14,165,233,.16); color: #7dd3fc; }
body[data-theme="dark"] .af-rule-label { color: #fb7185; }
body[data-theme="dark"] .af-msg { color: #94a3b8; }
body[data-theme="dark"] .audit-feed-bulkbar { background: linear-gradient(180deg, #1e3a5f, #16263a); border-color: #1e3a5f; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
body[data-theme="dark"] .audit-feed-bulkbar .afbb-count { color: #93c5fd; }

/* ---------- 2е. Реестр правил (таблица) ---------- */
body[data-theme="dark"] .audit-rules-table tbody tr.ar-row:hover { background: #1e293b; }
body[data-theme="dark"] .audit-rules-table tbody tr:hover .col-block { background: #1e293b; }
body[data-theme="dark"] .audit-rules-table .col-block { color: #e2e8f0; }
body[data-theme="dark"] .audit-rules-table .col-aud,
body[data-theme="dark"] .audit-rules-table .col-legal { color: #94a3b8; }
body[data-theme="dark"] .audit-rules-table .col-if,
body[data-theme="dark"] .audit-rules-table .col-then,
body[data-theme="dark"] .audit-rules-table .col-else { color: #cbd5e1; }
body[data-theme="dark"] .audit-rules-table .col-err { color: #fb7185; }
body[data-theme="dark"] .audit-rules-table .col-notes,
body[data-theme="dark"] .audit-rules-table .col-who { color: #9ca3af; }
body[data-theme="dark"] .audit-rules-table .col-ai { color: #a5b4fc; }
body[data-theme="dark"] .ar-cell-topic { color: #f1f5f9; }
body[data-theme="dark"] .ar-cell-id { background: #374151; color: #9ca3af; }
body[data-theme="dark"] .ar-dash { color: #475569; }
body[data-theme="dark"] .ar-status-pill { background: #374151; color: #94a3b8; }
body[data-theme="dark"] .ar-status-pill.status-working { background: rgba(34,197,94,.16); color: #4ade80; }
body[data-theme="dark"] .ar-status-pill.status-partial { background: rgba(245,158,11,.16); color: #fcd34d; }
body[data-theme="dark"] .ar-status-pill.status-broken { background: rgba(239,68,68,.16); color: #fca5a5; }
body[data-theme="dark"] .ar-status-pill.status-disabled { background: #374151; color: #94a3b8; }
body[data-theme="dark"] .ar-status-pill.status-needs_backend { background: rgba(245,158,11,.22); color: #fcd34d; }
body[data-theme="dark"] .ar-status-pill.status-needs_director { background: rgba(139,92,246,.20); color: #c4b5fd; }
body[data-theme="dark"] .ar-period-pill { background: rgba(99,102,241,.16); color: #a5b4fc; }
body[data-theme="dark"] .ar-period-pill.ar-period-daily { background: rgba(59,130,246,.18); color: #93c5fd; }
body[data-theme="dark"] .ar-period-pill.ar-period-monthly { background: rgba(139,92,246,.20); color: #c4b5fd; }
body[data-theme="dark"] .ar-period-pill.ar-period-quarterly { background: rgba(245,158,11,.16); color: #fcd34d; }
body[data-theme="dark"] .ar-period-pill.ar-period-yearly { background: rgba(236,72,153,.18); color: #f9a8d4; }
body[data-theme="dark"] .ar-period-pill.ar-period-manual { background: #374151; color: #9ca3af; }
body[data-theme="dark"] .ar-period-pill.ar-period-on_event { background: rgba(20,184,166,.18); color: #5eead4; }
body[data-theme="dark"] .ar-period-pill.ar-period-none { color: #4b5563; }
body[data-theme="dark"] .ar-group-row td { background: #1e293b; color: #f1f5f9; border-top-color: #374151; }
body[data-theme="dark"] .ar-group-count { background: #374151; color: #9ca3af; }
body[data-theme="dark"] .ar-group-summary { color: #4ade80; }

/* ---------- 2ж. Правила: мета-боксы, карта, темы ---------- */
body[data-theme="dark"] .rule-meta-box,
body[data-theme="dark"] .topic-meta-box,
body[data-theme="dark"] .topic-conditions-box,
body[data-theme="dark"] .topic-example-box { background: #111827; border-color: #374151; }
body[data-theme="dark"] .rule-meta-title,
body[data-theme="dark"] .topic-meta-title { color: #94a3b8; }
body[data-theme="dark"] .map-item-title { color: #93c5fd; }
body[data-theme="dark"] .map-item-key { color: #94a3b8; }
body[data-theme="dark"] .topic-section-badge { background: rgba(14,165,233,.12); color: #7dd3fc; border-color: rgba(14,165,233,.35); }
body[data-theme="dark"] .topic-status-rejected,
body[data-theme="dark"] .topic-status-badge.topic-status-rejected { background: rgba(239,68,68,.16); color: #fca5a5; }
body[data-theme="dark"] .rule-card { background: #1f2937; border-color: #374151; box-shadow: 0 1px 2px rgba(0,0,0,.3); }
body[data-theme="dark"] .rule-card:hover { border-color: #4b5563; }

/* ---------- 2з. AI-промпты ---------- */
body[data-theme="dark"] .ai-prompt-card { background: #1f2937; border-color: #374151; box-shadow: 0 1px 2px rgba(0,0,0,.3); }
body[data-theme="dark"] .ai-prompt-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,.45); }
body[data-theme="dark"] .ai-prompt-name { color: #f1f5f9; }
body[data-theme="dark"] .ai-prompt-topic { background: rgba(99,102,241,.16); color: #a5b4fc; }
body[data-theme="dark"] .ai-prompt-version { background: rgba(34,197,94,.16); color: #4ade80; }
body[data-theme="dark"] .ai-prompt-card-desc,
body[data-theme="dark"] .ai-prompt-card-meta { color: #94a3b8; }
body[data-theme="dark"] .ai-prompt-card-meta code { background: #374151; color: #e2e8f0; }
body[data-theme="dark"] .ai-prompts-hint { background: #111827; border-color: #374151; color: #94a3b8; }

/* ---------- 2и. Сотрудники 2.0 (карточка) ---------- */
body[data-theme="dark"] .emp2-confirm-block,
body[data-theme="dark"] .emp2-161-block { background: rgba(245,158,11,.08); border-color: rgba(245,158,11,.30); }
body[data-theme="dark"] .emp2-confirm-block.is-confirmed,
body[data-theme="dark"] .emp2-161-block.is-submitted { background: rgba(16,185,129,.10); border-color: rgba(16,185,129,.35); }
body[data-theme="dark"] .emp2-161-block.is-manual { background: rgba(16,185,129,.16); border-color: rgba(16,185,129,.45); }
body[data-theme="dark"] .emp2-161-block.is-pending { background: rgba(239,68,68,.10); border-color: rgba(239,68,68,.30); }
body[data-theme="dark"] .emp2-161-block.is-waiting { background: rgba(59,130,246,.10); border-color: rgba(59,130,246,.30); }
body[data-theme="dark"] .emp2-161-block.is-error { background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.40); }
body[data-theme="dark"] .emp2-confirm-label, body[data-theme="dark"] .emp2-161-label { color: #e5e7eb; }
body[data-theme="dark"] .emp2-confirm-label[style*="color:#15803d"] { color: #4ade80 !important; }
body[data-theme="dark"] .emp2-confirm-label[style*="color:#b91c1c"] { color: #f87171 !important; }
body[data-theme="dark"] .emp2-161-status { background: #1f2937; }
body[data-theme="dark"] .emp2-161-block.is-pending .emp2-161-status,
body[data-theme="dark"] .emp2-161-block.is-error .emp2-161-status { color: #f87171; }
body[data-theme="dark"] .emp2-161-block.is-waiting .emp2-161-status { color: #93c5fd; }
body[data-theme="dark"] .emp2-161-block.is-submitted .emp2-161-status { color: #34d399; }
body[data-theme="dark"] .emp2-data-error-banner { background: rgba(239,68,68,.10) !important; border-color: rgba(239,68,68,.35) !important; color: #fca5a5 !important; }
body[data-theme="dark"] .emp2-issues-block { background: rgba(245,158,11,.10) !important; border-color: rgba(245,158,11,.35) !important; }
body[data-theme="dark"] .emp2-ip-policy-cell { background: rgba(34,197,94,.08) !important; }
body[data-theme="dark"] .emp2-recalc-od { color: #93c5fd; }
body[data-theme="dark"] .emp2-recalc-od:hover { color: #bfdbfe; }
body[data-theme="dark"] .emp2-warn-tag { color: #fbbf24; }
body[data-theme="dark"] .emp2-kv th { color: #9ca3af; }
body[data-theme="dark"] .emp2-kv td { color: #f3f4f6; }
body[data-theme="dark"] .emp2-kv tr { border-bottom-color: #374151; }
body[data-theme="dark"] .emp2-field-inline { color: #cbd5e1; }

/* ---------- 2к. «Продажи» и «Постинг» (модуль adv-*) ---------- */
body[data-theme="dark"] .adv-subtabs { background: #1f2937; border-bottom-color: #374151; }
body[data-theme="dark"] .adv-subtab { color: #9ca3af; }
body[data-theme="dark"] .adv-subtab:hover { color: #e5e7eb; background: #374151; }
body[data-theme="dark"] .adv-subtab.active { color: #e5e7eb; background: #1f2937; border-bottom-color: #4a9eff; }
body[data-theme="dark"] .adv-error { background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.35); color: #fca5a5; }
body[data-theme="dark"] .adv-placeholder h3 { color: #f1f5f9; }
body[data-theme="dark"] .adv-placeholder-status { background: rgba(245,158,11,.15); color: #fcd34d; }
body[data-theme="dark"] .adv-funnel-toolbar { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .adv-search { background: #111827; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .adv-stage-column { background: #111827; }
body[data-theme="dark"] .adv-stage-column.adv-drag-over { background: #1e3a5f; box-shadow: inset 0 0 0 2px #4a9eff; }
body[data-theme="dark"] .adv-stage-header { background: #1f2937; color: #e5e7eb; }
body[data-theme="dark"] .adv-stage-empty { color: #4b5563; }
body[data-theme="dark"] .adv-lead-card { background: #1f2937; border-color: #374151; box-shadow: 0 1px 2px rgba(0,0,0,.3); }
body[data-theme="dark"] .adv-lead-name { color: #f1f5f9; }
body[data-theme="dark"] .adv-lead-phone,
body[data-theme="dark"] .adv-lead-time,
body[data-theme="dark"] .adv-lead-assigned,
body[data-theme="dark"] .adv-funnel-counter { color: #94a3b8; }
body[data-theme="dark"] .adv-lead-tag { background: #374151; color: #cbd5e1; }
body[data-theme="dark"] .adv-modal-content { background: #1f2937; }
body[data-theme="dark"] .adv-inbox { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .adv-inbox-sidebar { background: #111827; border-right-color: #374151; }
body[data-theme="dark"] .adv-inbox-toolbar { background: #1f2937; border-bottom-color: #374151; }
body[data-theme="dark"] .adv-inbox-row { border-bottom-color: #1f2937; }
body[data-theme="dark"] .adv-inbox-row:hover { background: #1e293b; }
body[data-theme="dark"] .adv-inbox-row.active { background: #1e3a5f; }
body[data-theme="dark"] .adv-inbox-name { color: #f1f5f9; }
body[data-theme="dark"] .adv-inbox-row-stage { background: color-mix(in srgb, var(--stage-color, #64748b) 22%, #111827); }
body[data-theme="dark"] .adv-inbox-row-last { color: #94a3b8; }
body[data-theme="dark"] .adv-ch { background: #374151; color: #cbd5e1; }
body[data-theme="dark"] .adv-inbox-conv-header { background: #111827; border-bottom-color: #374151; }
body[data-theme="dark"] .adv-inbox-messages { background: #111827; }
body[data-theme="dark"] .adv-msg-in { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .adv-inbox-composer { background: #1f2937; border-top-color: #374151; }
body[data-theme="dark"] .adv-inbox-composer textarea { background: #111827; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .adv-post-row { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .adv-post-row:hover { border-color: #4b5563; }
body[data-theme="dark"] .adv-post-thumb { background: #374151; }
body[data-theme="dark"] .adv-post-thumb-empty { color: #6b7280; }
body[data-theme="dark"] .adv-post-text { color: #e5e7eb; }
body[data-theme="dark"] .adv-post-meta { color: #94a3b8; }
body[data-theme="dark"] .adv-post-status-draft { background: #374151; color: #9ca3af; }
body[data-theme="dark"] .adv-post-status-publishing { background: rgba(245,158,11,.16); color: #fcd34d; }
body[data-theme="dark"] .adv-post-status-published { background: rgba(34,197,94,.16); color: #4ade80; }
body[data-theme="dark"] .adv-post-status-failed { background: rgba(239,68,68,.16); color: #fca5a5; }
body[data-theme="dark"] .adv-post-target { background: rgba(59,130,246,.18); color: #93c5fd; }
body[data-theme="dark"] .adv-anal-section { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .adv-anal-section h3 { color: #e5e7eb; }
body[data-theme="dark"] .adv-anal-card { background: #111827; border-color: #374151; }
body[data-theme="dark"] .adv-anal-card-good { background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.35); }
body[data-theme="dark"] .adv-anal-card-bad { background: rgba(239,68,68,.10); border-color: rgba(239,68,68,.35); }
body[data-theme="dark"] .adv-anal-num { color: #f1f5f9; }
body[data-theme="dark"] .adv-anal-card-good .adv-anal-num { color: #4ade80; }
body[data-theme="dark"] .adv-anal-card-bad .adv-anal-num { color: #fca5a5; }
body[data-theme="dark"] .adv-anal-lbl,
body[data-theme="dark"] .adv-anal-stage-label,
body[data-theme="dark"] .adv-anal-sub { color: #94a3b8; }
body[data-theme="dark"] .adv-anal-stage { background: #111827; }
body[data-theme="dark"] .adv-anal-stage-count { color: #f1f5f9; }
body[data-theme="dark"] .adv-anal-table th { background: #111827; color: #94a3b8; }
body[data-theme="dark"] .adv-anal-table th, body[data-theme="dark"] .adv-anal-table td { border-bottom-color: #374151; }
body[data-theme="dark"] .adv-tasks-list { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .adv-tasks-table th { background: #111827; color: #94a3b8; }
body[data-theme="dark"] .adv-tasks-table th, body[data-theme="dark"] .adv-tasks-table td { border-bottom-color: #374151; }
body[data-theme="dark"] .adv-tasks-table a { color: #6db3ff; }
body[data-theme="dark"] .adv-task-title { color: #f1f5f9; }
body[data-theme="dark"] .adv-task-desc { color: #94a3b8; }
body[data-theme="dark"] .adv-task-row.adv-task-overdue { background: rgba(249,115,22,.08); }
body[data-theme="dark"] .adv-task-item { background: #111827; border-color: #374151; }
body[data-theme="dark"] .adv-task-item.adv-task-overdue { background: rgba(249,115,22,.08); border-color: rgba(249,115,22,.30); }
body[data-theme="dark"] .adv-task-stage { background: color-mix(in srgb, var(--stage-color, #94a3b8) 24%, #111827); }
body[data-theme="dark"] .adv-task-overdue-badge { color: #fdba74; }
body[data-theme="dark"] .adv-brand-row > label { color: #cbd5e1; }
body[data-theme="dark"] .adv-brand-row code { background: #374151; color: #e2e8f0; }
body[data-theme="dark"] .adv-brand-textarea,
body[data-theme="dark"] .adv-brand-input { background: #111827; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .adv-brand-logo-preview img { background: #111827; border-color: #374151; }

/* ---------- 2к-2. adv-*: модалки, формы, события, настройки ---------- */
body[data-theme="dark"] .adv-modal-content { border-color: #374151; }
body[data-theme="dark"] .adv-modal-content h3 { color: #f1f5f9; }
body[data-theme="dark"] .adv-modal-header { border-bottom-color: #374151; }
body[data-theme="dark"] .adv-modal-header .btn-close { background: #374151; color: #9ca3af; }
body[data-theme="dark"] .adv-modal-header .btn-close:hover { background: #4b5563; color: #f1f5f9; }
body[data-theme="dark"] .adv-pe-img-box { background: #111827; border-color: #4b5563; }
body[data-theme="dark"] .adv-pe-chip { background: #1f2937; border-color: #4b5563; color: #cbd5e1; }
body[data-theme="dark"] .adv-pe-chip:has(input:checked) { background: rgba(99,102,241,.20); border-color: #818cf8; color: #c7d2fe; }
body[data-theme="dark"] .adv-pe-published { color: #94a3b8; }
body[data-theme="dark"] .adv-pe-published a { color: #6db3ff; }
body[data-theme="dark"] .adv-form-row label { color: #94a3b8; }
body[data-theme="dark"] .adv-form-row input,
body[data-theme="dark"] .adv-form-row select,
body[data-theme="dark"] .adv-form-row textarea { background: #111827; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .adv-form-actions { border-top-color: #374151; }
body[data-theme="dark"] .adv-lead-header { background: #111827; }
body[data-theme="dark"] .adv-lead-header h3 { color: #f1f5f9; }
body[data-theme="dark"] .adv-lead-meta { color: #e2e8f0; }
body[data-theme="dark"] .adv-lead-stage label { color: #94a3b8; }
body[data-theme="dark"] .adv-lead-stage select { background: #111827; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .adv-lead-section h4 { color: #94a3b8; }
body[data-theme="dark"] .adv-events { background: #111827; border-color: #374151; }
body[data-theme="dark"] .adv-event { border-bottom-color: #374151; }
body[data-theme="dark"] .adv-event-text { color: #cbd5e1; }
body[data-theme="dark"] .adv-event-user { color: #94a3b8; }
body[data-theme="dark"] .adv-event-note { background: rgba(234,179,8,.10); }
body[data-theme="dark"] .adv-msg-channel { background: rgba(139,92,246,.22); color: #c4b5fd; }
body[data-theme="dark"] .adv-msg-inbound .adv-msg-channel { background: rgba(59,130,246,.20); color: #93c5fd; }
body[data-theme="dark"] .adv-msg-outbound .adv-msg-channel { background: rgba(34,197,94,.18); color: #4ade80; }
body[data-theme="dark"] .adv-msg-text { color: #e2e8f0; }
body[data-theme="dark"] .adv-settings-section { background: #1f2937; border-color: #374151; }
body[data-theme="dark"] .adv-settings-section h3 { color: #f1f5f9; }
body[data-theme="dark"] .adv-conn-row { border-bottom-color: #374151; }
body[data-theme="dark"] .adv-conn-ok { color: #4ade80; }
body[data-theme="dark"] .adv-conn-expired { color: #f87171; }
body[data-theme="dark"] .adv-conn-actions { border-top-color: #374151; }
body[data-theme="dark"] .adv-conn-summary { color: #94a3b8; }
body[data-theme="dark"] .adv-conn-summary:hover { color: #f1f5f9; }
body[data-theme="dark"] .adv-conn-form input { background: #111827; border-color: #374151; color: #e5e7eb; }
body[data-theme="dark"] .adv-conn-hint code { background: #374151; color: #e2e8f0; }
body[data-theme="dark"] .adv-stage-info { background: #111827; }
body[data-theme="dark"] .adv-stage-info-label { color: #e5e7eb; }
body[data-theme="dark"] .adv-stage-info-slug { background: #1f2937; border-color: #374151; color: #94a3b8; }
body[data-theme="dark"] .adv-stage-info-capi { background: rgba(245,158,11,.16); color: #fcd34d; }
body[data-theme="dark"] .adv-inbox-hint { color: #6b7280; }

/* ---------- 2л. Сотрудники (страница): primary-цвет ссылок в тёмной ---------- */
body[data-theme="dark"] #employees_pageTab { --ep-primary: #6db3ff; --ep-primary-soft: rgba(74,158,255,.15); }

/* ---------- 3. Исключения: «бумага» и превью подписи/печати остаются светлыми ---------- */
body[data-theme="dark"] #invSigPreview,
body[data-theme="dark"] #invStampPreview { background: #fafafa !important; }
body[data-theme="dark"] #invSignZone { background: #fcfcfd !important; }
body[data-theme="dark"] #invPdfPreview { background: #f8fafc !important; }

/* ============================================================================
   ВЫРУЧКА 3.0 — современный модуль (ТЗ 15.06.2026). Тема-адаптивно через var().
   ============================================================================ */
.rev3-wrap { color: var(--text-color); padding: 2px; }
.rev3-title { margin: 0 0 14px; font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
.rev3-tabsrow { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.rev3-subtabs { display: inline-flex; gap: 3px; background: var(--surface-bg); padding: 4px; border-radius: 12px; }
.rev3-subtab { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: none; background: transparent; color: var(--text-muted); font-size: 13.5px; font-weight: 600; font-family: inherit; border-radius: 9px; cursor: pointer; transition: var(--transition); white-space: nowrap; }
.rev3-subtab:hover { color: var(--text-color); background: var(--hover-bg); }
.rev3-subtab.active { background: var(--card-bg); color: var(--primary-color); box-shadow: var(--shadow-lg); }
.rev3-subtab svg { opacity: .9; }
.rev3-meta { margin-left: auto; display: inline-flex; align-items: center; gap: 16px; }
.rev3-oborot { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; color: var(--success-color); font-size: 14px; }

.rev3-field { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); font-weight: 600; }
.rev3-input, .rev3-select { height: 38px; padding: 0 13px; border: 1px solid var(--border-color); border-radius: 9px; background: var(--card-bg); color: var(--text-color); font-size: 13.5px; font-family: inherit; outline: none; transition: var(--transition); box-sizing: border-box; }
.rev3-select { appearance: none; -webkit-appearance: none; padding-right: 34px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239aa3b2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center; }
.rev3-input:focus, .rev3-select:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px var(--primary-glow); }
.rev3-input::placeholder { color: var(--text-secondary); }
.rev3-input--sm, .rev3-select--sm { height: 31px; font-size: 12.5px; border-radius: 8px; padding: 0 10px; }
.rev3-select--sm { padding-right: 28px; background-position: right 8px center; }
.rev3-input--num { width: 72px; text-align: right; }

.rev3-check { width: 18px; height: 18px; accent-color: var(--primary-color); cursor: pointer; vertical-align: middle; margin: 0; }
.rev3-checklabel { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); cursor: pointer; user-select: none; font-weight: 500; }

.rev3-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 38px; padding: 0 15px; border: 1px solid var(--border-color); border-radius: 9px; background: var(--card-bg); color: var(--text-color); font-size: 13px; font-weight: 600; font-family: inherit; cursor: pointer; transition: var(--transition); white-space: nowrap; }
.rev3-btn:hover { background: var(--hover-bg); border-color: var(--text-secondary); }
.rev3-btn:active { transform: translateY(1px); }
.rev3-btn--sm { height: 31px; padding: 0 11px; font-size: 12px; border-radius: 8px; }
.rev3-btn--primary { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.rev3-btn--primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); }
.rev3-btn--success { background: var(--success-color); border-color: var(--success-color); color: #fff; }
.rev3-btn--success:hover { filter: brightness(1.06); background: var(--success-color); }
.rev3-btn--ghost { background: var(--primary-light); border-color: transparent; color: var(--primary-color); }
.rev3-btn--ghost:hover { background: var(--primary-light); filter: brightness(.97); }
.rev3-btn--danger { background: transparent; border-color: var(--border-color); color: var(--danger-color); }
.rev3-btn--danger:hover { background: rgba(217,48,37,.08); border-color: var(--danger-color); }
.rev3-btn.is-active { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }

.rev3-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: none; background: transparent; color: var(--text-muted); border-radius: 8px; cursor: pointer; transition: var(--transition); }
.rev3-iconbtn:hover { background: var(--hover-bg); color: var(--primary-color); }
.rev3-iconbtn.is-danger:hover { color: var(--danger-color); background: rgba(217,48,37,.08); }
.rev3-iconbtn.is-success:hover { color: var(--success-color); background: rgba(24,128,56,.1); }

.rev3-panel { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 11px 13px; background: var(--surface-bg); border: 1px solid var(--border-light); border-radius: 12px; margin-bottom: 14px; }
.rev3-panel--sticky { position: sticky; top: 0; z-index: 3; background: var(--card-bg); box-shadow: var(--shadow); }
.rev3-panel .rev3-label { font-size: 13px; color: var(--text-muted); font-weight: 700; }
.rev3-divider { width: 1px; align-self: stretch; min-height: 24px; background: var(--border-light); margin: 0 3px; }
.rev3-hint { color: var(--text-muted); font-size: 13px; margin: 0 0 14px; line-height: 1.55; max-width: 900px; }
.rev3-empty { color: var(--text-secondary); font-size: 13.5px; padding: 18px 4px; }
.rev3-spinner { color: var(--text-muted); font-size: 13.5px; padding: 20px 4px; display: flex; align-items: center; gap: 9px; }
.rev3-spinner svg { animation: rev3spin 1s linear infinite; }
@keyframes rev3spin { to { transform: rotate(360deg); } }

.rev3-chips { margin-left: auto; display: inline-flex; gap: 9px; flex-wrap: wrap; align-items: center; }
.rev3-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: var(--card-bg); border: 1px solid var(--border-light); }
.rev3-chip b { font-variant-numeric: tabular-nums; }
.rev3-chip--tax { color: var(--primary-color); } .rev3-chip--tax::before { content:""; width:8px; height:8px; border-radius:50%; background: var(--primary-color); }
.rev3-chip--adv { color: var(--warning-color); } .rev3-chip--adv::before { content:""; width:8px; height:8px; border-radius:50%; background: var(--warning-color); }
.rev3-chip--rej { color: var(--text-secondary); } .rev3-chip--rej::before { content:""; width:8px; height:8px; border-radius:50%; background: var(--text-secondary); }

.rev3-dist { display: flex; align-items: center; gap: 9px; margin: 20px 0 9px; font-weight: 700; font-size: 15px; }
.rev3-dist svg { color: var(--primary-color); }
.rev3-dist .rev3-reg { font-size: 12px; font-weight: 500; color: var(--text-secondary); }
.rev3-act-row { display: flex; align-items: center; gap: 9px; margin: 10px 0 5px; color: var(--text-muted); font-size: 13px; font-weight: 600; }
.rev3-badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 6px; background: var(--primary-light); color: var(--primary-color); }
.rev3-badge--ok { background: rgba(24,128,56,.13); color: var(--success-color); }
.rev3-badge--warn { background: rgba(217,48,37,.1); color: var(--danger-color); }
.rev3-badge--err { background: rgba(217,48,37,.16); color: var(--danger-color); border: 1px solid rgba(217,48,37,.35); font-weight: 600; }
/* Нет вида деятельности — ошибка (док «выручка выписка» 04.07.2026, п.5) */
.rev3-act-missing { border-color: #ef4444 !important; background: #fef2f2; box-shadow: 0 0 0 1px rgba(239,68,68,.25); }
body[data-theme="dark"] .rev3-act-missing { background: rgba(239,68,68,.14); }
/* Сортировка таблиц Выписки по клику на заголовок (п.2) */
.rev3-th-sort { cursor: pointer; user-select: none; white-space: nowrap; }
.rev3-th-sort:hover { color: var(--primary-color, #2563eb); }
.rev3-th-arrow { font-size: 9px; }

.rev3-tblwrap { overflow-x: auto; border: 1px solid var(--border-light); border-radius: 12px; margin-bottom: 6px; }
.rev3-tbl { border-collapse: collapse; width: 100%; font-size: 13px; background: var(--card-bg); }
.rev3-tbl th { text-align: left; padding: 10px 13px; background: var(--surface-bg); color: var(--text-muted); font-weight: 600; font-size: 12px; border-bottom: 1px solid var(--border-light); white-space: nowrap; }
.rev3-tbl th.num, .rev3-tbl td.num { text-align: right; font-variant-numeric: tabular-nums; }
.rev3-tbl td { padding: 9px 13px; border-bottom: 1px solid var(--border-light); vertical-align: middle; }
.rev3-tbl tbody tr:last-child td { border-bottom: none; }
.rev3-tbl tbody tr:hover { background: var(--hover-bg); }
.rev3-tbl .strong { font-weight: 700; }
.rev3-tbl .muted { color: var(--text-secondary); }
.rev3-tbl--compact th { padding: 8px 10px; } .rev3-tbl--compact td { padding: 6px 10px; }
.rev3-row-total td { font-weight: 700; background: var(--surface-tint); }
.rev3-row-split td { background: var(--surface-bg); color: var(--primary-color); font-weight: 600; }
.rev3-row-inactive { opacity: .5; }
.rev3-cell-mismatch { background: rgba(227,116,0,.13) !important; }
.rev3-acts { display: inline-flex; gap: 2px; }
.rev3-purpose { max-width: 240px; color: var(--text-secondary); display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.rev3-cp-inn { color: var(--text-secondary); font-size: 11.5px; }

/* --- ревью 18.06: фильтр-бар, отчёт/оплата ЭСФ, чипы счетов, иконки ЭСФ, секции, блоки, модалка подбора --- */
.rev3-fltbar { margin-bottom: 10px; }
.rev3-pays { line-height: 1.5; }
.rev3-pay { display: inline-block; font-size: 12px; background: var(--primary-light); color: var(--primary-color); border-radius: 6px; padding: 1px 7px; margin: 1px 3px 1px 0; font-variant-numeric: tabular-nums; }
.rev3-rep { display: inline-flex; align-items: center; gap: 6px; }
.rev3-rep-chk { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--text-muted); white-space: nowrap; cursor: pointer; }
/* чипы счетов (точка 3) */
.rev3-accchips { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: 4px 0 12px; font-size: 13px; color: var(--text-muted); font-weight: 700; }
.rev3-acc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--border-light); background: var(--surface-bg); color: var(--text-color); font-size: 13px; font-weight: 700; cursor: pointer; transition: var(--transition); }
.rev3-acc-chip:hover { border-color: var(--primary-color); }
.rev3-acc-chip.is-active { background: var(--primary-color); color: #fff; border-color: var(--primary-color); }
.rev3-acc-cnt { font-size: 11px; background: rgba(0,0,0,.08); border-radius: 999px; padding: 0 6px; min-width: 18px; text-align: center; }
.rev3-acc-chip.is-active .rev3-acc-cnt { background: rgba(255,255,255,.25); }
/* иконки статуса ЭСФ (точка 5) */
.rev3-esf-ic { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; }
.rev3-esf-ic.is-signed { color: var(--success-color); background: rgba(24,128,56,.12); }
.rev3-esf-ic.is-new { color: var(--text-muted); background: var(--hover-bg); }
.rev3-esf-ic.is-uesf { color: var(--warning-color); background: rgba(245,158,11,.14); }
.rev3-esf-ic.is-retail { color: var(--primary-color); background: var(--primary-light); }
.rev3-esf-ic.is-none { color: var(--danger-color); background: rgba(217,48,37,.08); cursor: pointer; }
.rev3-esf-ic.is-none:hover { background: rgba(217,48,37,.18); }
/* секции 5 таблиц */
.rev3-sec { margin: 10px 0 16px; }
.rev3-sec-head { display: flex; align-items: center; gap: 10px; margin: 6px 0; font-size: 13px; }
/* розничные блоки */
.rev3-retail-blocks { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; }
.rev3-block { border: 1px solid var(--border-light); border-radius: 12px; padding: 10px 12px; background: var(--surface-bg); min-width: 240px; }
.rev3-block-head { font-size: 13px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rev3-block-acts { display: flex; gap: 6px; margin: 7px 0 4px; }
.rev3-block-pays { font-size: 11.5px; }
/* модалка подбора ЭСФ */
.rev3-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 9999; display: flex; align-items: flex-start; justify-content: center; padding: 5vh 16px; overflow: auto; }
.rev3-overlay-box { background: var(--card-bg); border-radius: 16px; box-shadow: var(--shadow-lg, 0 18px 50px rgba(0,0,0,.3)); width: min(900px, 96vw); max-height: 90vh; overflow: auto; }
.rev3-overlay-head { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-bottom: 1px solid var(--border-light); position: sticky; top: 0; background: var(--card-bg); z-index: 1; }
.rev3-overlay-body { padding: 14px 16px; }
.rev3-pick-filter { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.rev3-pick-near > td { background: rgba(24,128,56,.09); }

/* ===== Чат «под WhatsApp» (заказчик 20.06.2026) =====
   Временно скрываем фильтры списка чатов (Все/Непр/Откр/Ожид/Закр/Мои, 5м/15м/Уточнение/Не решён)
   и кнопки шапки открытого чата (метка/Открыто/Уточнение/Не решён/База знаний/Позвать помощника),
   чтобы инбокс максимально походил на WhatsApp. Откат — удалить этот блок.
   Логика статусов/назначений продолжает работать автоматически под капотом (входящее=open и т.д.);
   лента «Свод-Чат» использует другой класс (.chat-svod-filters) и не затрагивается. */
.chat-sidebar .chat-filter-tabs,
.chat-sidebar .chat-filter-meta-tabs,
.chat-header-actions { display: none !important; }

/* ===== Чипы-фильтры списка чатов в стиле WhatsApp (xannzass 06.07.2026) =====
   «Все / Непрочитанные / Мои» под строкой поиска — как фильтры в самом WhatsApp. */
.chat-quick-filters {
    display: flex;
    gap: 6px;
    margin-top: 8px;
    flex-wrap: wrap;
}
.chat-quick-filter {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    color: var(--text-muted);
    border-radius: 14px;
    padding: 4px 12px;
    font-size: 12px;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}
.chat-quick-filter:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
}
.chat-quick-filter.active {
    background: rgba(var(--primary-rgb, 37, 99, 235), 0.12);
    border-color: transparent;
    color: var(--primary-color);
    font-weight: 600;
}
.chat-quick-count {
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    background: var(--primary-color);
    color: #fff;
    font-size: 10.5px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-variant-numeric: tabular-nums;
}
.chat-quick-count:empty { display: none; }

/* ===== Контекстное меню чата + личные флаги (06.07.2026) ===== */
.chat-conv-menu {
    position: fixed;
    z-index: 10050;
    min-width: 215px;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    padding: 4px;
    display: flex;
    flex-direction: column;
}
.chat-conv-menu button {
    background: none;
    border: none;
    text-align: left;
    padding: 9px 12px;
    font-size: 13px;
    color: var(--text-color);
    border-radius: 7px;
    cursor: pointer;
}
.chat-conv-menu button:hover {
    background: rgba(var(--primary-rgb, 37, 99, 235), 0.08);
}
/* Точка «помечен непрочитанным» — как в WhatsApp */
.chat-conv-badge--dot {
    width: 10px;
    height: 10px;
    min-width: 10px;
    padding: 0;
    border-radius: 50%;
}
.chat-conv-pin {
    font-size: 11px;
    margin-right: 3px;
    opacity: 0.7;
}
/* Метка «изменено» у отредактированного сообщения */
.chat-bubble-edited {
    font-style: italic;
    opacity: 0.75;
}

/* ===== Раздел «ИИ»: чат + правая панель истории запросов (заказчик 20.06.2026, пп.1-2) =====
   Заказчик: «повторим интерфейс ИИ = добавим справа окно с запросами», «блок истории как в гпт». */
.ai-layout { display: flex; height: calc(100vh - 130px); max-width: 1240px; margin: 0 auto; width: 100%; }
.ai-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.ai-head { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--border, #e5e7eb); }
.ai-messages { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.ai-input-bar { padding: 12px 14px; border-top: 1px solid var(--border, #e5e7eb); }
.ai-input-wrap { display: flex; gap: 8px; align-items: flex-end; }
.ai-history { width: 290px; flex-shrink: 0; display: flex; flex-direction: column; border-left: 1px solid var(--border, #e5e7eb); background: var(--bg-color, #f8fafc); }
.ai-history-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--border, #e5e7eb); font-weight: 600; font-size: 13px; }
.ai-history-new { border: 1px solid var(--primary-color, #2563eb); color: var(--primary-color, #2563eb); background: none; border-radius: 8px; padding: 5px 10px; font-size: 12px; cursor: pointer; font-weight: 500; white-space: nowrap; }
.ai-history-new:hover { background: rgba(37, 99, 235, .08); }
.ai-thread-list { flex: 1; overflow-y: auto; padding: 8px; display: flex; flex-direction: column; gap: 3px; }
.ai-thread-item { display: flex; align-items: center; gap: 6px; padding: 9px 10px; border-radius: 8px; cursor: pointer; font-size: 12.5px; color: var(--text-color, #334155); line-height: 1.35; transition: background .12s; }
.ai-thread-item:hover { background: rgba(15, 23, 42, .06); }
.ai-thread-item.is-active { background: rgba(37, 99, 235, .12); color: var(--primary-color, #1d4ed8); font-weight: 500; }
.ai-thread-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-thread-del { border: 0; background: none; color: #94a3b8; cursor: pointer; font-size: 16px; line-height: 1; padding: 0 2px; opacity: 0; flex-shrink: 0; }
.ai-thread-item:hover .ai-thread-del { opacity: 1; }
.ai-thread-del:hover { color: #dc2626; }
.ai-thread-empty { color: #9ca3af; font-size: 12px; text-align: center; padding: 24px 14px; line-height: 1.5; }
body[data-theme="dark"] .ai-history { background: #0f172a; }
body[data-theme="dark"] .ai-thread-item:hover { background: rgba(148, 163, 184, .12); }
@media (max-width: 980px) { .ai-history { display: none; } }

/* ── Дашборд диалогов «контроль менеджеров» (Свод-Чат → По дням, 28.06.2026) ── */
#chatDialogsView { flex-direction: column; gap: 12px; }
.chat-dlg-daynav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.chat-dlg-navbtn {
    border: 1px solid var(--border-color); background: var(--card-bg); color: var(--text-primary);
    border-radius: 8px; padding: 6px 12px; font-size: 15px; cursor: pointer; line-height: 1;
}
.chat-dlg-navbtn:hover { background: var(--accent-color); color: #fff; border-color: var(--accent-color); }
.chat-dlg-today { font-size: 13px; }
.chat-dlg-daylabel { font-size: 14px; font-weight: 600; color: var(--text-primary); margin-left: 6px; }
.chat-dlg-date {
    border: 1px solid var(--border-color); background: var(--card-bg); color: var(--text-primary);
    border-radius: 8px; padding: 6px 10px; font-size: 14px;
}
.chat-dlg-mgrstrip { display: flex; gap: 8px; flex-wrap: wrap; }
.dlg-mgrcard {
    background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 10px;
    padding: 8px 12px; min-width: 130px;
}
.dlg-mgrcard-name { font-size: 12px; color: var(--text-secondary); }
.dlg-mgrcard-num { font-size: 22px; font-weight: 700; color: var(--text-primary); line-height: 1.1; }
.dlg-mgrcard-sub { font-size: 11px; color: var(--text-secondary); }

.chat-dlg-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.chat-dlg-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.chat-dlg-colhead {
    font-size: 13px; font-weight: 600; color: var(--text-primary); padding: 6px 4px;
    border-bottom: 2px solid var(--border-color); display: flex; align-items: center; gap: 6px;
}
.chat-dlg-colhead-client { border-bottom-color: #3b82f6; }
.chat-dlg-colhead-mgr { border-bottom-color: #f59e0b; }
.chat-dlg-colcount {
    background: var(--border-color); color: var(--text-secondary); border-radius: 10px;
    padding: 1px 8px; font-size: 11px; font-weight: 600;
}
.chat-dlg-list { display: flex; flex-direction: column; gap: 8px; max-height: 60vh; overflow-y: auto; }

.dlg-card {
    background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 10px;
    padding: 10px 12px; cursor: pointer; transition: box-shadow .12s, border-color .12s;
}
.dlg-card:hover { border-color: var(--accent-color); box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.dlg-card-head { display: flex; align-items: center; gap: 6px; }
.dlg-name { font-weight: 600; color: var(--text-primary); font-size: 13px; flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dlg-time { margin-left: auto; font-size: 11px; color: var(--text-secondary); flex: none; }
.dlg-topic { font-size: 13px; color: var(--text-primary); margin: 4px 0; }
.dlg-muted { color: var(--text-secondary); font-style: italic; }
.dlg-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--text-secondary); }
.dlg-mgr { color: var(--text-secondary); }
.dlg-mgr-none { font-style: italic; opacity: .8; }
.dlg-resp { color: var(--text-secondary); }
.dlg-result { font-size: 12px; color: var(--text-secondary); margin-top: 5px; }
.dlg-coach {
    font-size: 12px; color: #92400e; background: #fef3c7; border: 1px solid #fde68a;
    border-radius: 8px; padding: 5px 8px; margin-top: 6px; line-height: 1.35;
}
.dlg-attn { color: #dc2626; }
.dlg-senti { font-size: 13px; }
.dlg-chip { border-radius: 8px; padding: 1px 8px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.dlg-chip-ok { background: #dcfce7; color: #166534; }
.dlg-chip-ans { background: #dbeafe; color: #1e40af; }
.dlg-chip-no { background: #fee2e2; color: #991b1b; }
.dlg-chip-wait { background: #fef9c3; color: #854d0e; }
.inq-metric-card.dlg-kpi-warn { box-shadow: inset 0 0 0 1px #fca5a5; }
/* Клик по KPI «Без ответа» → фильтр «только не дождавшиеся» (ТЗ 06.07.2026) */
.inq-metric-card.dlg-kpi-active { background: #fef2f2; box-shadow: inset 0 0 0 2px #ef4444; }
.dlg-card-noreply { border-left: 3px solid #ef4444; }
.dlg-resolve-btn {
    margin-left: auto; border: 1px solid #86efac; background: #f0fdf4; color: #166534;
    border-radius: 8px; padding: 2px 10px; font-size: 11px; font-weight: 600; cursor: pointer;
    transition: background .15s ease;
}
.dlg-resolve-btn:hover { background: #dcfce7; }
.chat-draft-foot .chat-draft-resolve { border-color: #86efac; color: #166534; }

body[data-theme="dark"] .inq-metric-card.dlg-kpi-active { background: rgba(239,68,68,.12); }
body[data-theme="dark"] .dlg-resolve-btn { background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.35); color: #86efac; }
body[data-theme="dark"] .dlg-resolve-btn:hover { background: rgba(34,197,94,.22); }
body[data-theme="dark"] .chat-draft-foot .chat-draft-resolve { border-color: rgba(34,197,94,.35); color: #86efac; }

body[data-theme="dark"] .dlg-coach { color: #fcd34d; background: rgba(245, 158, 11, .12); border-color: rgba(245, 158, 11, .3); }
body[data-theme="dark"] .dlg-chip-ok { background: rgba(34,197,94,.18); color: #86efac; }
body[data-theme="dark"] .dlg-chip-ans { background: rgba(59,130,246,.18); color: #93c5fd; }
body[data-theme="dark"] .dlg-chip-no { background: rgba(239,68,68,.18); color: #fca5a5; }
body[data-theme="dark"] .dlg-chip-wait { background: rgba(234,179,8,.18); color: #fde047; }

@media (max-width: 860px) { .chat-dlg-cols { grid-template-columns: 1fr; } }

/* ── ИИ-суфлёр «по требованию»: 2 колонки внутри обращения (этап 3, 28.06.2026) ── */
.chat-draft-modal { max-width: 1040px; width: 95vw; }
.chat-draft-sub { color: var(--text-secondary); font-size: 13px; margin: -2px 0 12px; padding: 0 2px; }
.chat-draft-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.chat-draft-col { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--border-color); border-radius: 10px; overflow: hidden; }
.chat-draft-colhead { font-size: 12px; font-weight: 600; color: var(--text-primary); padding: 8px 10px; background: rgba(127,127,127,.06); border-bottom: 1px solid var(--border-color); }
.chat-draft-hint { font-weight: 400; color: var(--text-secondary); }
.chat-draft-msgs { padding: 10px; overflow-y: auto; max-height: 56vh; display: flex; flex-direction: column; gap: 8px; }
.cdm-row { display: flex; }
.cdm-row.cdm-in { justify-content: flex-start; }
.cdm-row.cdm-out { justify-content: flex-end; }
.cdm-bubble { max-width: 88%; border: 1px solid var(--border-color); border-radius: 10px; padding: 6px 9px; background: var(--card-bg); }
.cdm-in .cdm-bubble { background: rgba(59, 130, 246, .06); }
.cdm-out .cdm-bubble { background: rgba(16, 185, 129, .06); }
.cdm-row.cdm-sel .cdm-bubble { border-color: var(--accent-color); box-shadow: 0 0 0 1px var(--accent-color); }
.cdm-who { font-size: 11px; color: var(--text-secondary); display: flex; gap: 6px; align-items: center; }
.cdm-time { margin-left: auto; }
.cdm-text { font-size: 13px; color: var(--text-primary); white-space: pre-wrap; word-break: break-word; }
.cdm-ask { margin-top: 5px; font-size: 11px; border: 1px solid var(--border-color); background: var(--card-bg); border-radius: 7px; padding: 2px 8px; cursor: pointer; color: var(--accent-color); }
.cdm-ask:hover { background: var(--accent-color); color: #fff; border-color: var(--accent-color); }
.chat-draft-ai { padding: 12px; overflow-y: auto; max-height: 56vh; }
.chat-draft-aiempty, .chat-draft-thinking { color: var(--text-secondary); font-size: 13px; }
.chat-draft-aierr { color: #dc2626; font-size: 13px; }
.chat-draft-for { font-size: 11px; color: var(--text-secondary); margin-bottom: 6px; font-style: italic; }
.chat-draft-answer { font-size: 14px; color: #92400e; white-space: pre-wrap; line-height: 1.45; background: #fef3c7; border: 1px solid #fde68a; border-radius: 8px; padding: 10px 12px; }
.chat-draft-meta { font-size: 11px; color: var(--text-secondary); margin: 6px 0; }
.chat-draft-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.chat-draft-actions .btn-primary, .chat-draft-actions .btn-secondary { font-size: 13px; padding: 6px 12px; }
.chat-draft-correctbox { margin-top: 10px; }
.chat-draft-correctta { width: 100%; min-height: 64px; border: 1px solid var(--border-color); border-radius: 8px; padding: 8px; font-size: 13px; resize: vertical; background: var(--card-bg); color: var(--text-primary); box-sizing: border-box; }
.cdm-spin { display: inline-block; width: 12px; height: 12px; border: 2px solid var(--border-color); border-top-color: var(--accent-color); border-radius: 50%; animation: cdmspin .8s linear infinite; vertical-align: middle; margin-right: 4px; }
@keyframes cdmspin { to { transform: rotate(360deg); } }
.chat-draft-foot { margin-top: 12px; display: flex; justify-content: flex-end; }
body[data-theme="dark"] .chat-draft-answer { color: #fcd34d; background: rgba(245, 158, 11, .12); border-color: rgba(245, 158, 11, .3); }
body[data-theme="dark"] .cdm-in .cdm-bubble { background: rgba(59, 130, 246, .12); }
body[data-theme="dark"] .cdm-out .cdm-bubble { background: rgba(16, 185, 129, .12); }
@media (max-width: 820px) { .chat-draft-cols { grid-template-columns: 1fr; } }

/* ==================== Светофор чатов «Контроль» (ТЗ заказчика 03.07.2026) ==================== */
/* «Смотрим не диалог, а на вопрос от клиента»: 4 цвета (красный/жёлтый/зелёный/серый),
   динамический свод по группам, накопительные проблемы, покраска чатов в сайдбаре и
   сообщений-вопросов в открытом чате. */

#chatLightsView { flex-direction: column; gap: 14px; overflow-y: auto; }

/* Точки-цвета (общие: сайдбар, борд, свод клиента) */
.cl-dot-black, .cl-dot-red, .cl-dot-yellow, .cl-dot-green, .cl-dot-gray, .cl-dot-none {
    display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
}
.cl-dot-black { background: #111827; box-shadow: 0 0 0 1px #6b7280; }
.cl-dot-red { background: #ef4444; }
.cl-dot-yellow { background: #f59e0b; }
.cl-dot-green { background: #22c55e; }
.cl-dot-gray { background: #9ca3af; }
.cl-dot-none { background: transparent; border: 1px dashed #9ca3af; }

/* Сайдбар чатов: цвет на аватарке (менеджер видит, что диалог на контроле) */
.chat-conv-avatar { position: relative; }
.chat-conv-light {
    position: absolute; right: -3px; bottom: -3px;
    width: 12px; height: 12px; border-radius: 50%;
    border: 2px solid var(--bg-primary, #fff);
}
.chat-conv-light.cl-dot-black { background: #111827; animation: cl-pulse-black 1.6s ease-in-out infinite; }
.chat-conv-light.cl-dot-red { background: #ef4444; animation: cl-pulse 1.6s ease-in-out infinite; }
.chat-conv-light.cl-dot-yellow { background: #f59e0b; }
.chat-conv-light.cl-dot-green { background: #22c55e; }
.chat-conv-light.cl-dot-gray { background: #9ca3af; }
@keyframes cl-pulse-black { 0%, 100% { box-shadow: 0 0 0 0 rgba(17, 24, 39, .5); } 50% { box-shadow: 0 0 0 5px rgba(17, 24, 39, 0); } }
@keyframes cl-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .45); } 50% { box-shadow: 0 0 0 5px rgba(239, 68, 68, 0); } }

/* Группы борда */
.chat-lights-groups { display: flex; flex-direction: column; gap: 10px; }
.chat-light-group { border: 1px solid var(--border-color, #e5e7eb); border-radius: 12px; overflow: hidden; }
.clg-head {
    display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer;
    font-weight: 600; font-size: 14px; user-select: none; background: var(--bg-secondary, #f9fafb);
}
.clg-head:hover { filter: brightness(.98); }
.clg-count {
    background: var(--bg-primary, #fff); border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 10px; padding: 1px 9px; font-size: 12px;
}
.clg-arrow { margin-left: auto; color: var(--text-secondary, #6b7280); }
.clg-black .clg-head { background: rgba(17, 24, 39, .12); }
.clg-red .clg-head { background: rgba(239, 68, 68, .08); }
.clg-yellow .clg-head { background: rgba(245, 158, 11, .08); }
.clg-green .clg-head { background: rgba(34, 197, 94, .07); }
.clg-gray .clg-head { background: rgba(156, 163, 175, .10); }
.clg-body { padding: 10px; display: flex; flex-direction: column; gap: 8px; max-height: 52vh; overflow-y: auto; }

/* Карточка чата (красные/жёлтые) */
.chat-light-card {
    border: 1px solid var(--border-color, #e5e7eb); border-left-width: 4px;
    border-radius: 10px; padding: 10px 12px; background: var(--bg-primary, #fff);
}
.chat-light-card.cl-black { border-left-color: #111827; background: rgba(17, 24, 39, .03); }
.chat-light-card.cl-red { border-left-color: #ef4444; }
.chat-light-card.cl-yellow { border-left-color: #f59e0b; }
.cl-head { display: flex; align-items: baseline; gap: 10px; }
.cl-name { font-weight: 600; cursor: pointer; }
.cl-name:hover { text-decoration: underline; }
.cl-since { margin-left: auto; font-size: 12px; color: var(--text-secondary, #6b7280); white-space: nowrap; }
.cl-reason { font-size: 13px; margin-top: 3px; color: var(--text-secondary, #6b7280); }
.cl-question { margin-top: 6px; font-size: 13px; display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.cl-q-topic { font-weight: 500; }
.cl-q-meta { font-size: 12px; color: var(--text-secondary, #6b7280); }
.cl-flag { font-size: 11px; border-radius: 8px; padding: 1px 7px; }
.cl-flag-bad { background: rgba(239, 68, 68, .12); color: #dc2626; }
.cl-flag-good { background: rgba(34, 197, 94, .12); color: #16a34a; }
.cl-flag-manual { background: rgba(156, 163, 175, .18); color: var(--text-secondary, #6b7280); }
.cl-q-resolve { margin-left: auto; border-color: #22c55e; color: #16a34a; white-space: nowrap; }
.cl-actions { margin-top: 8px; display: flex; gap: 8px; }
.cl-btn {
    border: 1px solid var(--border-color, #e5e7eb); background: var(--bg-primary, #fff);
    border-radius: 8px; padding: 3px 10px; font-size: 12px; cursor: pointer; color: inherit;
}
.cl-btn:hover { background: var(--bg-secondary, #f3f4f6); }
.cl-btn-review { border-color: #22c55e; color: #16a34a; }

/* Компактные строки (зелёные/серые) */
.chat-light-row {
    display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 8px;
    font-size: 13px; cursor: pointer;
}
.chat-light-row:hover { background: var(--bg-secondary, #f3f4f6); }
.cl-row-reason { color: var(--text-secondary, #6b7280); font-size: 12px; margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 45%; }

/* Проблемы — накопительный разбор */
.chat-lights-problems { border-top: 1px dashed var(--border-color, #e5e7eb); padding-top: 12px; }
.chat-lights-problems-head { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.chat-lights-problems-head h3 { font-size: 15px; margin: 0; }
.chat-lights-showreviewed { margin-left: auto; font-size: 12px; color: var(--text-secondary, #6b7280); display: flex; align-items: center; gap: 5px; cursor: pointer; }
#chatLightsProblems { display: flex; flex-direction: column; gap: 8px; }
.chat-light-problem {
    display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px;
    border: 1px solid rgba(239, 68, 68, .25); border-left: 4px solid #ef4444;
    border-radius: 10px; background: rgba(239, 68, 68, .04);
}
.chat-light-problem.clp-reviewed { opacity: .65; border-color: var(--border-color, #e5e7eb); border-left-color: #22c55e; background: transparent; }
.clp-main { flex: 1; min-width: 0; }
.clp-when { font-size: 12px; color: var(--text-secondary, #6b7280); margin-left: 8px; }
.clp-reason { font-size: 13px; margin-top: 2px; }
.clp-note { font-size: 12px; color: #16a34a; margin-top: 3px; }
.clp-actions { display: flex; flex-direction: column; gap: 6px; }

/* Свод по клиенту (модалка) */
.client-svod-modal { max-width: 900px; width: 92%; }
.client-svod-head { padding: 4px 0 10px; border-bottom: 1px solid var(--border-color, #e5e7eb); }
.cs-light { display: flex; align-items: center; gap: 8px; font-size: 13px; margin-bottom: 4px; }
.cs-stats { font-size: 13px; color: var(--text-secondary, #6b7280); }
.client-svod-body { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; margin-top: 10px; max-height: 58vh; min-height: 0; }
.client-svod-col { min-width: 0; display: flex; flex-direction: column; }
.client-svod-questions, .client-svod-history { overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding-right: 4px; }
.cs-q { border: 1px solid var(--border-color, #e5e7eb); border-left-width: 4px; border-radius: 9px; padding: 8px 10px; font-size: 13px; }
.cs-q-open { border-left-color: #f59e0b; }
.cs-q-answered { border-left-color: #3b82f6; }
.cs-q-resolved { border-left-color: #22c55e; }
.cs-q-top { display: flex; gap: 8px; align-items: baseline; }
.cs-q-topic { font-weight: 600; }
.cs-q-status { margin-left: auto; font-size: 12px; color: var(--text-secondary, #6b7280); white-space: nowrap; }
.cs-q-meta { font-size: 12px; color: var(--text-secondary, #6b7280); margin-top: 2px; display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.cs-q-summary { font-size: 12px; margin-top: 4px; }
.cs-h { display: flex; align-items: baseline; gap: 6px; font-size: 13px; flex-wrap: wrap; }
.cs-h-when { font-size: 12px; color: var(--text-secondary, #6b7280); }
.cs-h-reason { flex-basis: 100%; font-size: 12px; color: var(--text-secondary, #6b7280); padding-left: 2px; }

/* Сообщения-вопросы «на контроле» в открытом чате */
.chat-bubble--question.chat-q-open { box-shadow: inset 4px 0 0 #f59e0b; }
.chat-bubble--question.chat-q-answered { box-shadow: inset 4px 0 0 #3b82f6; }
.chat-bubble--question.chat-q-red { box-shadow: inset 4px 0 0 #ef4444; }
.chat-q-chip {
    margin-top: 6px; font-size: 11px; border-radius: 8px; padding: 2px 8px; width: fit-content;
    background: rgba(245, 158, 11, .14); color: #b45309;
}
.chat-q-red .chat-q-chip { background: rgba(239, 68, 68, .14); color: #dc2626; }
.chat-q-answered .chat-q-chip { background: rgba(59, 130, 246, .12); color: #2563eb; }

/* KPI-акценты */
.cl-kpi-black .imc-big { color: #111827; }
.cl-kpi-red .imc-big { color: #ef4444; }
.cl-kpi-yellow .imc-big { color: #f59e0b; }
.cl-kpi-green .imc-big { color: #22c55e; }
.cl-kpi-gray .imc-big { color: #9ca3af; }
/* KPI-плитки кликабельны: клик раскрывает и скроллит к группе */
.cl-kpi-click { cursor: pointer; transition: transform .1s ease, box-shadow .1s ease; }
.cl-kpi-click:hover { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(0, 0, 0, .08); }

/* Тёмная тема */
body[data-theme="dark"] .chat-light-card,
body[data-theme="dark"] .cl-btn { background: rgba(255, 255, 255, .04); }
body[data-theme="dark"] .cl-btn:hover { background: rgba(255, 255, 255, .09); }
body[data-theme="dark"] .clg-head { background: rgba(255, 255, 255, .05); }
body[data-theme="dark"] .clg-black .clg-head { background: rgba(255, 255, 255, .10); }
body[data-theme="dark"] .cl-dot-black { background: #030712; box-shadow: 0 0 0 1px #9ca3af; }
body[data-theme="dark"] .cl-kpi-black .imc-big { color: #e5e7eb; }
body[data-theme="dark"] .chat-light-card.cl-black { background: rgba(255, 255, 255, .06); border-left-color: #6b7280; }
body[data-theme="dark"] .clg-red .clg-head { background: rgba(239, 68, 68, .14); }
body[data-theme="dark"] .clg-yellow .clg-head { background: rgba(245, 158, 11, .13); }
body[data-theme="dark"] .clg-green .clg-head { background: rgba(34, 197, 94, .12); }
body[data-theme="dark"] .clg-gray .clg-head { background: rgba(156, 163, 175, .12); }
body[data-theme="dark"] .clg-count { background: rgba(255, 255, 255, .06); }
body[data-theme="dark"] .chat-light-problem { background: rgba(239, 68, 68, .08); }
body[data-theme="dark"] .chat-conv-light { border-color: #1f2937; }
body[data-theme="dark"] .cl-flag-bad { color: #f87171; }
body[data-theme="dark"] .cl-flag-good, body[data-theme="dark"] .clp-note { color: #4ade80; }
body[data-theme="dark"] .chat-q-chip { background: rgba(245, 158, 11, .18); color: #fcd34d; }
body[data-theme="dark"] .chat-q-red .chat-q-chip { background: rgba(239, 68, 68, .2); color: #fca5a5; }
body[data-theme="dark"] .chat-q-answered .chat-q-chip { background: rgba(59, 130, 246, .2); color: #93c5fd; }
@media (max-width: 820px) { .client-svod-body { grid-template-columns: 1fr; } }

/* ============================================================
   Лайтбокс картинок в чате (превью с затемнением + «в новой вкладке»)
   ============================================================ */
.chat-media-img { cursor: zoom-in; }
.chat-lightbox {
    position: fixed; inset: 0; z-index: 20050;
    background: rgba(0, 0, 0, .86);
    display: flex; align-items: center; justify-content: center;
    padding: 40px; cursor: zoom-out;
    animation: chatLbFade .13s ease;
}
@keyframes chatLbFade { from { opacity: 0; } to { opacity: 1; } }
.chat-lightbox img {
    max-width: 94vw; max-height: 90vh;
    border-radius: 10px; box-shadow: 0 14px 64px rgba(0, 0, 0, .6);
    cursor: default; object-fit: contain;
}
.chat-lightbox-tools { position: fixed; top: 18px; right: 22px; display: flex; gap: 10px; z-index: 1; }
.chat-lightbox-btn {
    width: 44px; height: 44px; border-radius: 50%; border: none;
    background: rgba(255, 255, 255, .16); color: #fff;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: background .15s ease;
}
.chat-lightbox-btn:hover { background: rgba(255, 255, 255, .32); }

/* ============================================================
   Раздел «Обновления» (#updates) — таймлайн changelog
   ============================================================ */
.upd-wrap { max-width: 920px; margin: 0 auto; padding: 24px 20px 72px; }
.upd-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.upd-head-title h2 { font-size: 22px; font-weight: 700; color: var(--text-color); margin: 0; line-height: 1.2; }
.upd-head-sub { display: block; font-size: 13px; color: var(--text-muted); margin-top: 3px; }
.upd-search {
    display: flex; align-items: center; gap: 8px; min-width: 250px;
    background: var(--card-bg); border: 1px solid var(--border-color);
    border-radius: 24px; padding: 8px 14px; color: var(--text-muted);
}
.upd-search input { border: none; outline: none; background: transparent; font-size: 14px; color: var(--text-color); width: 100%; }
.upd-loading, .upd-empty { text-align: center; padding: 64px 20px; color: var(--text-muted); font-size: 14px; line-height: 1.6; }

.upd-group { position: relative; }
.upd-group-date {
    position: sticky; top: 0; z-index: 3;
    display: inline-block; margin: 14px 0 10px 4px; padding: 5px 13px;
    font-size: 12px; font-weight: 700; letter-spacing: .01em;
    color: var(--primary-color); background: var(--primary-light);
    border-radius: 20px;
}
.upd-group-cards { position: relative; margin-left: 12px; padding-left: 24px; border-left: 2px solid var(--border-light); }
.upd-card { position: relative; padding: 8px 0 12px; }
.upd-card-dot {
    position: absolute; left: -31px; top: 18px; width: 12px; height: 12px;
    border-radius: 50%; border: 2px solid var(--card-bg); box-shadow: 0 0 0 1px var(--border-color);
}
.upd-card-main {
    background: var(--card-bg); border: 1px solid var(--border-color);
    border-radius: 11px; padding: 12px 15px; box-shadow: var(--shadow);
    transition: box-shadow var(--transition), border-color var(--transition);
}
.upd-card-main:hover { box-shadow: var(--shadow-lg); border-color: var(--primary-color); }
.upd-card-top { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.upd-card-title { font-size: 14.5px; font-weight: 650; color: var(--text-color); line-height: 1.45; }
.upd-card-desc { font-size: 13.5px; color: var(--text-muted); line-height: 1.55; margin-top: 6px; }
.upd-card-body { font-size: 12.5px; color: var(--text-secondary); white-space: pre-wrap; margin-top: 6px; line-height: 1.5; }
.upd-card-meta { display: flex; align-items: center; gap: 10px; margin-top: 9px; font-size: 11.5px; color: var(--text-secondary); }
.upd-card-hash { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background: var(--surface-bg); padding: 1px 7px; border-radius: 5px; }

.upd-chip { font-size: 10.5px; font-weight: 700; padding: 2px 9px; border-radius: 20px; white-space: nowrap; text-transform: uppercase; letter-spacing: .02em; }
.upd-chip.upd-cat-feature { background: #e6f4ea; color: #188038; }
.upd-card-dot.upd-cat-feature { background: #34a853; }
.upd-chip.upd-cat-fix { background: #fce8e6; color: #c5221f; }
.upd-card-dot.upd-cat-fix { background: #ea4335; }
.upd-chip.upd-cat-design { background: #f3e8fd; color: #8430ce; }
.upd-card-dot.upd-cat-design { background: #a142f4; }
.upd-chip.upd-cat-chore { background: #eef1f4; color: #5f6368; }
.upd-card-dot.upd-cat-chore { background: #9aa0a6; }

/* Тёмная тема */
body[data-theme="dark"] .upd-head-title h2 { color: #e2e8f0; }
body[data-theme="dark"] .upd-search { background: #1e293b; border-color: #334155; }
body[data-theme="dark"] .upd-search input { color: #e2e8f0; }
body[data-theme="dark"] .upd-group-date { background: rgba(59, 130, 246, .16); color: #93c5fd; }
body[data-theme="dark"] .upd-group-cards { border-left-color: #334155; }
body[data-theme="dark"] .upd-card-main { background: #1e293b; border-color: #334155; }
body[data-theme="dark"] .upd-card-main:hover { border-color: #3b82f6; }
body[data-theme="dark"] .upd-card-dot { border-color: #1e293b; box-shadow: 0 0 0 1px #334155; }
body[data-theme="dark"] .upd-card-title { color: #e2e8f0; }
body[data-theme="dark"] .upd-card-desc { color: #cbd5e1; }
body[data-theme="dark"] .upd-card-body { color: #94a3b8; }
body[data-theme="dark"] .upd-card-hash { background: #0f172a; color: #94a3b8; }
body[data-theme="dark"] .upd-chip.upd-cat-feature { background: rgba(52, 168, 83, .18); color: #6ee7a0; }
body[data-theme="dark"] .upd-chip.upd-cat-fix { background: rgba(234, 67, 53, .18); color: #fca5a5; }
body[data-theme="dark"] .upd-chip.upd-cat-design { background: rgba(161, 66, 244, .2); color: #d8b4fe; }
body[data-theme="dark"] .upd-chip.upd-cat-chore { background: rgba(154, 160, 166, .18); color: #cbd5e1; }

@media (max-width: 640px) {
    .upd-head { flex-direction: column; align-items: stretch; }
    .upd-search { min-width: 0; }
}

/* Модалка «раздел в разработке» (заглушка закрытых пунктов меню) */
.devlock-overlay {
    position: fixed; inset: 0; z-index: 21000;
    background: rgba(15, 23, 42, .55); backdrop-filter: blur(2px);
    display: flex; align-items: center; justify-content: center; padding: 24px;
    animation: chatLbFade .13s ease;
}
.devlock-card {
    background: var(--card-bg); border-radius: 16px; padding: 32px 28px 26px;
    max-width: 380px; width: 100%; text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .28);
}
.devlock-icon {
    width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%;
    background: var(--primary-light); color: var(--primary-color);
    display: flex; align-items: center; justify-content: center;
}
.devlock-title { font-size: 19px; font-weight: 700; color: var(--text-color); margin-bottom: 8px; }
.devlock-text { font-size: 14px; color: var(--text-muted); line-height: 1.55; margin-bottom: 22px; }
.devlock-btn {
    background: var(--primary-color); color: #fff; border: none; border-radius: 10px;
    padding: 11px 30px; font-size: 14px; font-weight: 600; cursor: pointer;
    transition: background .15s ease;
}
.devlock-btn:hover { background: var(--primary-hover); }
body[data-theme="dark"] .devlock-card { background: #1e293b; }
body[data-theme="dark"] .devlock-title { color: #e2e8f0; }
body[data-theme="dark"] .devlock-text { color: #94a3b8; }
body[data-theme="dark"] .devlock-icon { background: rgba(59, 130, 246, .16); color: #93c5fd; }

/* ═══════════════════════════════════════════════════════════════════════════
   WhatsApp Web редизайн чата (ТЗ заказчика 06.07.2026)
   «Сделать чат максимально похожим на вотсапп»: обои с дудлами, белые/зелёные
   пузыри с хвостиками, галочки, круглые аватары, зелёные бейджи, WA-палитра.
   Светофоры-кругляшки на аватарках ОСТАЮТСЯ (просьба заказчика).
   Блок в конце файла — переопределяет базовые стили чата и dark-оверрайды выше.
   ═══════════════════════════════════════════════════════════════════════════ */
body {
    --wa-app-bg: #f0f2f5;        /* фон панелей приложения WA */
    --wa-panel: #ffffff;         /* сайдбар/списки */
    --wa-head: #f0f2f5;          /* шапка чата и инпут-бар */
    --wa-chat-bg: #efeae2;       /* обои переписки */
    --wa-in: #ffffff;            /* входящий пузырь */
    --wa-out: #d9fdd3;           /* исходящий пузырь */
    --wa-text: #111b21;
    --wa-muted: #667781;
    --wa-icon: #54656f;
    --wa-sep: #e9edef;
    --wa-green: #00a884;
    --wa-green-dark: #008069;
    --wa-badge: #25d366;
    --wa-input: #ffffff;
    --wa-scroll: #c5ccd2;
    --wa-doodle: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%23ddd4c6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' opacity='.6'%3E%3Ccircle cx='28' cy='30' r='8'/%3E%3Cpath d='M84 18l3.5 7 7.5 1-5.5 5.5 1.5 7.5-7-3.5-7 3.5 1.5-7.5-5.5-5.5 7.5-1z'/%3E%3Cpath d='M138 34c-3-6-12-5-12 2 0 5 12 12 12 12s12-7 12-12c0-7-9-8-12-2z'/%3E%3Cpath d='M18 86q6-8 12 0t12 0'/%3E%3Cpath d='M92 76l2 6 6 2-6 2-2 6-2-6-6-2 6-2z'/%3E%3Ccircle cx='150' cy='92' r='5'/%3E%3Ccircle cx='150' cy='92' r='11' stroke-dasharray='3 5'/%3E%3Cpath d='M30 140h20v14a6 6 0 0 1-6 6H36a6 6 0 0 1-6-6z'/%3E%3Cpath d='M50 143h5a5 5 0 0 1 0 10h-5'/%3E%3Cpath d='M96 132q10-10 20 0M96 152q10 10 20 0'/%3E%3Cpath d='M150 140l4 8 8 4-8 4-4 8-4-8-8-4 8-4z'/%3E%3C/g%3E%3C/svg%3E");
}
body[data-theme="dark"] {
    --wa-app-bg: #0c1317;
    --wa-panel: #111b21;
    --wa-head: #202c33;
    --wa-chat-bg: #0b141a;
    --wa-in: #202c33;
    --wa-out: #005c4b;
    --wa-text: #e9edef;
    --wa-muted: #8696a0;
    --wa-icon: #aebac1;
    --wa-sep: #222d34;
    --wa-input: #2a3942;
    --wa-scroll: #374248;
    --wa-doodle: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%231c262d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' opacity='.85'%3E%3Ccircle cx='28' cy='30' r='8'/%3E%3Cpath d='M84 18l3.5 7 7.5 1-5.5 5.5 1.5 7.5-7-3.5-7 3.5 1.5-7.5-5.5-5.5 7.5-1z'/%3E%3Cpath d='M138 34c-3-6-12-5-12 2 0 5 12 12 12 12s12-7 12-12c0-7-9-8-12-2z'/%3E%3Cpath d='M18 86q6-8 12 0t12 0'/%3E%3Cpath d='M92 76l2 6 6 2-6 2-2 6-2-6-6-2 6-2z'/%3E%3Ccircle cx='150' cy='92' r='5'/%3E%3Ccircle cx='150' cy='92' r='11' stroke-dasharray='3 5'/%3E%3Cpath d='M30 140h20v14a6 6 0 0 1-6 6H36a6 6 0 0 1-6-6z'/%3E%3Cpath d='M50 143h5a5 5 0 0 1 0 10h-5'/%3E%3Cpath d='M96 132q10-10 20 0M96 152q10 10 20 0'/%3E%3Cpath d='M150 140l4 8 8 4-8 4-4 8-4-8-8-4 8-4z'/%3E%3C/g%3E%3C/svg%3E");
}

/* ── Раскладка и сайдбар ── */
.chat-layout { background: var(--wa-app-bg); border-color: var(--wa-sep); }
.chat-sidebar { background: var(--wa-panel); border-right: 1px solid var(--wa-sep); }
.chat-sidebar-header { background: var(--wa-panel); border-bottom: none; }
body[data-theme="dark"] .chat-layout { background: var(--wa-app-bg); }

/* Поиск по чатам — WA-инпут без рамки */
.chat-search-wrap input,
.chat-search-bar input {
    background: var(--wa-app-bg); border: none; border-radius: 8px;
    color: var(--wa-text);
}
.chat-search-wrap input:focus, .chat-search-bar input:focus { box-shadow: 0 0 0 1.5px var(--wa-green); }

/* Чипы Все/Непрочитанные/Мои — как фильтры WhatsApp */
.chat-quick-filter {
    background: var(--wa-app-bg); color: var(--wa-icon); border: none;
    border-radius: 9999px; font-weight: 500;
}
.chat-quick-filter:hover { background: var(--wa-sep); }
.chat-quick-filter.active { background: #e7fce3; color: var(--wa-green-dark); }
body[data-theme="dark"] .chat-quick-filter.active { background: #103529; color: #86efac; }

/* ── Список бесед ── */
/* П.2 ТЗ: заметный плавный ползунок прокрутки.
   ВАЖНО (Chrome 121+): любое значение scrollbar-width/scrollbar-color кроме auto
   ОТКЛЮЧАЕТ ::-webkit-scrollbar-стили ниже — тогда Windows 11 рисует overlay-скроллбар,
   который прячется («ползунок не найти»). Поэтому здесь строго auto + webkit-стили:
   так скроллбар классический — всегда видимый и хватаемый мышкой. */
.chat-conversation-list {
    scrollbar-width: auto;
    scrollbar-color: auto;
    overscroll-behavior: contain;
}
.chat-conversation-list::-webkit-scrollbar { width: 12px; }
.chat-conversation-list::-webkit-scrollbar-track { background: var(--wa-app-bg); }
.chat-conversation-list::-webkit-scrollbar-thumb {
    background: #a8b3bb; border-radius: 8px;
    border: 2px solid var(--wa-app-bg); min-height: 48px;
}
.chat-conversation-list::-webkit-scrollbar-thumb:hover,
.chat-conversation-list::-webkit-scrollbar-thumb:active { background: #7f8b94; }
body[data-theme="dark"] .chat-conversation-list::-webkit-scrollbar-track { background: #1a242b; }
body[data-theme="dark"] .chat-conversation-list::-webkit-scrollbar-thumb { background: #46545e; border-color: #1a242b; }
body[data-theme="dark"] .chat-conversation-list::-webkit-scrollbar-thumb:hover,
body[data-theme="dark"] .chat-conversation-list::-webkit-scrollbar-thumb:active { background: #5b6b77; }

.chat-conv-item { padding: 10px 14px 10px 16px; border-bottom: 1px solid var(--wa-sep); gap: 13px; }
.chat-conv-item:hover { background: var(--wa-app-bg); }
.chat-conv-item.active { background: var(--wa-app-bg); }
body[data-theme="dark"] .chat-conv-item:hover,
body[data-theme="dark"] .chat-conv-item.active { background: #202c33; }
.chat-conv-item::after { opacity: .75; width: 3px; }

/* Круглые аватары как в WA (светофор-кругляшок остаётся снизу справа) */
.chat-conv-avatar {
    width: 46px; height: 46px; min-width: 46px; border-radius: 50%;
    font-size: 13px;
}
body[data-theme="dark"] .chat-conv-avatar { background: #364147; color: #cfd9df; }
.chat-conv-light { right: -1px; bottom: -1px; width: 13px; height: 13px; border-color: var(--wa-panel); }
body[data-theme="dark"] .chat-conv-light { border-color: var(--wa-panel); }

.chat-conv-name { font-size: 14px; font-weight: 500; color: var(--wa-text); }
.chat-conv-time { font-size: 11.5px; color: var(--wa-muted); }
.chat-conv-phone { color: var(--wa-muted); }
.chat-conv-last { font-size: 12.5px; color: var(--wa-muted); }
/* Непрочитанный чат: имя жирнее, время и счётчик — зелёные (как в WA) */
.chat-conv-item.has-unread .chat-conv-name { font-weight: 700; }
.chat-conv-item.has-unread .chat-conv-time { color: var(--wa-badge); font-weight: 600; }
.chat-conv-item.has-unread .chat-conv-last { color: var(--wa-text); }
.chat-conv-badge {
    background: var(--wa-badge); color: #fff; border-radius: 9999px;
    min-width: 20px; height: 20px; font-size: 11px;
}
body[data-theme="dark"] .chat-conv-badge { background: var(--wa-green); color: #111b21; }
.chat-conv-badge--dot { min-width: 12px; width: 12px; height: 12px; }

/* ── Правая часть: пустое состояние ── */
.chat-main { background: var(--wa-app-bg); }
.chat-placeholder { background: var(--wa-app-bg); }

/* ── Шапка открытого чата ── */
.chat-header-bar {
    background: var(--wa-head); border-bottom: 1px solid var(--wa-sep);
    padding: 8px 16px; min-height: 59px;
}
.chat-header-left { gap: 12px; }
.chat-header-avatar { width: 40px; height: 40px; min-width: 40px; border-radius: 50%; font-size: 12px; }
body[data-theme="dark"] .chat-header-avatar { background: #364147; color: #cfd9df; }
.chat-header-info strong { font-size: 15px; font-weight: 600; color: var(--wa-text); }
.chat-header-meta { color: var(--wa-muted); }
.chat-header-tools { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.chat-header-tool-btn {
    width: 40px; height: 40px; border-radius: 50%; border: none; background: transparent;
    color: var(--wa-icon); cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: background .15s ease;
}
.chat-header-tool-btn:hover { background: rgba(11, 20, 26, .08); }
body[data-theme="dark"] .chat-header-tool-btn:hover { background: rgba(233, 237, 239, .1); }

/* ── Панель поиска по чату (п.4 ТЗ, «как в вотсап и тг») ── */
.chat-msg-search {
    display: flex; align-items: center; gap: 8px;
    padding: 7px 16px; background: var(--wa-panel); border-bottom: 1px solid var(--wa-sep);
}
.chat-msg-search-ico { color: var(--wa-muted); flex-shrink: 0; }
.chat-msg-search input {
    flex: 1; min-width: 0; background: var(--wa-app-bg); border: none; border-radius: 8px;
    padding: 8px 12px; font-size: 13px; color: var(--wa-text); outline: none;
}
.chat-msg-search input:focus { box-shadow: 0 0 0 1.5px var(--wa-green); }
.chat-msg-search-count { font-size: 12px; color: var(--wa-muted); white-space: nowrap; min-width: 74px; text-align: center; font-variant-numeric: tabular-nums; }
.chat-msg-search-nav, .chat-msg-search-close {
    width: 32px; height: 32px; border-radius: 50%; border: none; background: transparent;
    color: var(--wa-icon); cursor: pointer; display: flex; align-items: center; justify-content: center;
    font-size: 14px; transition: background .15s ease; flex-shrink: 0;
}
.chat-msg-search-nav:hover, .chat-msg-search-close:hover { background: rgba(11, 20, 26, .08); }
body[data-theme="dark"] .chat-msg-search-nav:hover,
body[data-theme="dark"] .chat-msg-search-close:hover { background: rgba(233, 237, 239, .1); }
.chat-bubble-search-current { outline: 2px solid var(--wa-green); outline-offset: 1px; }

/* ── Лента сообщений: обои WhatsApp ── */
.chat-messages {
    background: var(--wa-chat-bg);
    background-image: var(--wa-doodle);
    background-size: 380px 380px;
    padding: 18px 6% 14px;
    gap: 3px;
    /* как у списка бесед: auto, иначе Chrome 121+ игнорирует webkit-стили скроллбара */
    scrollbar-width: auto;
    scrollbar-color: auto;
}
body[data-theme="dark"] .chat-messages {
    background: var(--wa-chat-bg);
    background-image: var(--wa-doodle);
    background-size: 380px 380px;
}
.chat-messages::-webkit-scrollbar { width: 8px; }
.chat-messages::-webkit-scrollbar-thumb { background: rgba(11, 20, 26, .22); border-radius: 8px; min-height: 48px; }
body[data-theme="dark"] .chat-messages::-webkit-scrollbar-thumb { background: rgba(233, 237, 239, .18); }
.chat-date-section { gap: 3px; }

/* ── Пузыри: белые входящие / зелёные исходящие, хвостик у первого в серии ── */
.chat-bubble {
    max-width: 62%;
    padding: 6px 9px 7px;
    font-size: 13.5px;
    line-height: 1.45;
    box-shadow: 0 1px .5px rgba(11, 20, 26, .13);
    margin-bottom: 2px;
}
.chat-bubble--in {
    background: var(--wa-in); color: var(--wa-text);
    border: none; border-radius: 0 8px 8px 8px;
}
.chat-bubble--in::before {
    content: ''; position: absolute; top: 0; left: -8px;
    border-right: 8px solid var(--wa-in); border-bottom: 10px solid transparent;
}
.chat-bubble--in + .chat-bubble--in { border-radius: 8px; }
.chat-bubble--in + .chat-bubble--in::before { display: none; }
.chat-bubble--out {
    background: var(--wa-out); color: var(--wa-text);
    border-radius: 8px 0 8px 8px;
}
.chat-bubble--out::before {
    content: ''; position: absolute; top: 0; right: -8px;
    border-left: 8px solid var(--wa-out); border-bottom: 10px solid transparent;
}
.chat-bubble--out + .chat-bubble--out { border-radius: 8px; }
.chat-bubble--out + .chat-bubble--out::before { display: none; }
/* dark: те же правила берут цвета из переменных */
body[data-theme="dark"] .chat-bubble--in { background: var(--wa-in); color: var(--wa-text); }
body[data-theme="dark"] .chat-bubble--out { background: var(--wa-out); color: var(--wa-text); }

/* Заметки (внутренние) остаются жёлтыми стикерами — без WA-хвостика */
.chat-bubble.note-bubble::before { display: none; }

/* Подписи авторов: менеджер на зелёном — тёмно-зелёная, автор в группе — цветная (inline) */
.chat-messages .chat-bubble--out .chat-bubble-sender { color: var(--wa-green-dark); opacity: 1; }
body[data-theme="dark"] .chat-messages .chat-bubble--out .chat-bubble-sender { color: #7fd8b7; }
.chat-messages .chat-bubble--in .chat-bubble-sender { color: var(--wa-muted); opacity: 1; }
.chat-messages .chat-bubble-sender { font-size: 11px; }

/* Время + галочки внутри пузыря */
.chat-bubble-time { font-size: 10.5px; margin-top: 2px; }
.chat-bubble--in .chat-bubble-time { color: var(--wa-muted); }
.chat-bubble--out .chat-bubble-time { color: var(--wa-muted); }
body[data-theme="dark"] .chat-bubble--out .chat-bubble-time { color: rgba(233, 237, 239, .6); }
/* Галочки статуса — SVG-иконки (svg4.ru): серые «отправлено», голубые «доставлено» */
.chat-ticks { display: inline-flex; align-items: center; vertical-align: middle; margin-left: 3px; color: #8a9aa4; }
.chat-ticks--wa { color: #53bdeb; }
.chat-tick-ico { width: 16px; height: 16px; display: block; }

/* Ссылки в сообщениях — WA-голубой на обоих типах пузырей */
.chat-bubble--in .chat-bubble-text .chat-msg-link,
.chat-bubble--out .chat-bubble-text .chat-msg-link { color: #027eb5; }
body[data-theme="dark"] .chat-bubble--in .chat-bubble-text .chat-msg-link,
body[data-theme="dark"] .chat-bubble--out .chat-bubble-text .chat-msg-link { color: #53bdeb; }

/* OD-значок и цитаты на новом фоне */
.chat-bubble--out .chat-source-omnidesk { background: rgba(11, 20, 26, .08); color: var(--wa-icon); }
.chat-reply-quote {
    background: rgba(11, 20, 26, .05); border-left: 4px solid var(--wa-green);
    border-radius: 6px;
}
body[data-theme="dark"] .chat-reply-quote { background: rgba(233, 237, 239, .06); }

/* Пилюли дат и разделитель «непрочитанные» — белые плашки WA */
.chat-date-divider span {
    background: var(--wa-panel); color: var(--wa-icon);
    box-shadow: 0 1px .5px rgba(11, 20, 26, .13); border-radius: 8px;
    font-size: 12px; text-transform: none;
}
body[data-theme="dark"] .chat-date-divider span { background: #182229; color: var(--wa-muted); box-shadow: 0 1px .5px rgba(0, 0, 0, .35); }
.chat-unread-divider span { background: var(--wa-panel); color: var(--wa-icon); box-shadow: 0 1px .5px rgba(11, 20, 26, .13); }
body[data-theme="dark"] .chat-unread-divider span { background: #182229; color: var(--wa-muted); }
.chat-unread-divider::before, .chat-unread-divider::after { background: transparent; }

/* Кнопка «вниз» */
.chat-scroll-bottom-btn { background: var(--wa-panel); color: var(--wa-icon); border-radius: 50%; box-shadow: 0 1px 3px rgba(11, 20, 26, .25); }
body[data-theme="dark"] .chat-scroll-bottom-btn { background: #202c33; color: var(--wa-icon); }

/* ── Инпут-бар WA ── */
.chat-input-area {
    background: var(--wa-head); border-top: 1px solid var(--wa-sep);
    padding: 8px 14px; gap: 6px; align-items: flex-end;
}
.chat-input-area textarea {
    background: var(--wa-input); border: none; border-radius: 8px;
    font-size: 14px; padding: 10px 12px; color: var(--wa-text);
}
.chat-input-area textarea:focus { border: none; box-shadow: none; }
.chat-input-area textarea::placeholder { color: var(--wa-muted); opacity: 1; }
.chat-attach-btn, .chat-emoji-btn, .chat-note-mode-btn {
    width: 40px; height: 40px; border-radius: 50%; border: none; background: transparent;
    color: var(--wa-icon); display: flex; align-items: center; justify-content: center;
    font-size: 20px; cursor: pointer; transition: background .15s ease;
}
.chat-attach-btn:hover, .chat-emoji-btn:hover, .chat-note-mode-btn:hover { background: rgba(11, 20, 26, .08); color: var(--wa-icon); }
body[data-theme="dark"] .chat-attach-btn:hover, body[data-theme="dark"] .chat-emoji-btn:hover,
body[data-theme="dark"] .chat-note-mode-btn:hover { background: rgba(233, 237, 239, .1); }
.chat-send-btn { width: 42px; height: 42px; border-radius: 50%; background: var(--wa-green); }
.chat-send-btn:hover { background: var(--wa-green-dark); opacity: 1; }
body[data-theme="dark"] .chat-send-btn { background: var(--wa-green); color: #111b21; }

/* Медиа в пузырях — скругления под новый радиус */
.chat-media-img, .chat-media-video { border-radius: 6px; }
body[data-theme="dark"] .chat-media-doc { background: rgba(233, 237, 239, .06); }

/* ── Ползунок ширины списка чатов (п.2 ТЗ): ручка на границе список/чат ── */
.chat-sidebar-resizer {
    flex: 0 0 10px;
    width: 10px;
    margin: 0 -5px;              /* широкая зона захвата поверх границы, места не занимает */
    position: relative;
    z-index: 6;
    cursor: col-resize;
    -webkit-user-select: none;
    user-select: none;
}
.chat-sidebar-resizer::before { /* видимая полоса при наведении/перетаскивании */
    content: '';
    position: absolute;
    top: 0; bottom: 0; left: 50%;
    width: 4px;
    transform: translateX(-50%);
    border-radius: 3px;
    background: transparent;
    transition: background .12s ease;
}
.chat-sidebar-resizer::after {  /* ручка-пилюля по центру — видно, за что тянуть */
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: 6px; height: 64px;
    transform: translate(-50%, -50%);
    border-radius: 6px;
    background: #aab4bc;
    opacity: 0;
    transition: opacity .12s ease;
}
.chat-sidebar-resizer:hover::before,
body.chat-resizing .chat-sidebar-resizer::before { background: rgba(0, 168, 132, .45); }
.chat-sidebar-resizer:hover::after,
body.chat-resizing .chat-sidebar-resizer::after { opacity: 1; }
body.chat-resizing { cursor: col-resize; -webkit-user-select: none; user-select: none; }
body.chat-resizing .chat-main, body.chat-resizing .chat-sidebar { pointer-events: none; }
body[data-theme="dark"] .chat-sidebar-resizer::after { background: #46545e; }

/* ── Режим wa.iziexpert.kg: только чаты, без остальной CRM ── */
body.wa-mode .main-nav { display: none !important; }
body.wa-mode .logo { pointer-events: none; }
body.wa-mode #crmVersion { display: none; }
body.wa-mode .header { padding-top: 6px; padding-bottom: 6px; }
body.wa-mode .main-content { padding: 0; }
body.wa-mode #chatTab { padding: 0; }
body.wa-mode .chat-layout { border: none; border-radius: 0; margin: 0; box-shadow: none; }
/* Плавающая кнопка «Правки» на wa не нужна */
body.wa-mode .em-float-btn, body.wa-mode #emFloatBtn { display: none !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   Доработки чата (ТЗ заказчика 06.07.2026, вторая волна): экономия высоты шапки,
   галочка вместо ↩ в списке, WA-инпут без send-кнопки, подсветка поиска, обои.
   ═══════════════════════════════════════════════════════════════════════════ */

/* П.2: строку темы/назначения переносим в один ряд со строкой ИНН (экономия высоты) */
.chat-header-metarow {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    row-gap: 2px;
}
.chat-header-details { margin-top: 0; }

/* П.3: галочка (вместо ↩) у последнего исходящего в списке бесед */
.chat-conv-arrow {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-right: 2px;
    opacity: 1;
    color: #53bdeb;
}
.chat-conv-arrow .chat-tick-ico { width: 15px; height: 15px; }
.chat-conv-item.has-unread .chat-conv-arrow { color: #53bdeb; }

/* П.4: WA-инпут — иконки-кружки, у «заметки» убираем рамку (base давал border) */
.chat-input-area .chat-note-mode-btn {
    border: none;
    border-radius: 50%;
    color: var(--wa-icon);
}
.chat-input-area .chat-note-mode-btn.active {
    border: none;
    background: #fef3c7;
    color: #d97706;
}
body[data-theme="dark"] .chat-input-area .chat-note-mode-btn.active { background: #3a3115; color: #fcd34d; }
.chat-input-area .chat-emoji-btn svg,
.chat-input-area .chat-attach-btn svg,
.chat-input-area .chat-note-mode-btn svg { display: block; }
.chat-input-area .chat-emoji-btn { font-size: 0; }

/* П.5: подсветка искомого слова в найденном сообщении (как жёлтый маркер в WhatsApp) */
mark.chat-search-hl {
    background: #ffe08a;
    color: inherit;
    border-radius: 3px;
    padding: 0 1px;
    box-shadow: 0 0 0 1px rgba(245, 158, 11, .35);
}
body[data-theme="dark"] mark.chat-search-hl { background: #b58a2b; color: #fff; box-shadow: none; }
.chat-bubble-search-current { outline: 2px solid rgba(0, 168, 132, .55); outline-offset: 1px; }

/* П.6: модалка выбора обоев чата */
.chat-bg-modal-overlay {
    position: fixed; inset: 0; z-index: 10050;
    background: rgba(11, 20, 26, .55);
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.chat-bg-modal {
    background: var(--wa-panel);
    color: var(--wa-text);
    border-radius: 14px;
    width: 100%; max-width: 560px; max-height: 88vh;
    display: flex; flex-direction: column;
    box-shadow: 0 12px 48px rgba(0, 0, 0, .35);
    overflow: hidden;
}
.chat-bg-modal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 18px; border-bottom: 1px solid var(--wa-sep);
    font-size: 15px; font-weight: 600;
}
.chat-bg-modal-close {
    width: 30px; height: 30px; border: none; background: transparent;
    color: var(--wa-icon); font-size: 16px; cursor: pointer; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}
.chat-bg-modal-close:hover { background: rgba(11, 20, 26, .08); }
body[data-theme="dark"] .chat-bg-modal-close:hover { background: rgba(233, 237, 239, .1); }
.chat-bg-modal-body { padding: 16px 18px; overflow-y: auto; }
.chat-bg-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    gap: 10px;
}
.chat-bg-swatch {
    position: relative;
    height: 84px;
    border: 2px solid var(--wa-sep);
    border-radius: 10px;
    cursor: pointer;
    padding: 0;
    background-repeat: repeat;
    background-position: center;
    overflow: hidden;
    transition: border-color .12s, transform .12s;
}
.chat-bg-swatch:hover { transform: translateY(-1px); border-color: var(--wa-green); }
.chat-bg-swatch.active { border-color: var(--wa-green); box-shadow: 0 0 0 2px rgba(0, 168, 132, .35); }
.chat-bg-swatch.active::after {
    content: '✓';
    position: absolute; top: 4px; right: 5px;
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--wa-green); color: #fff;
    font-size: 11px; display: flex; align-items: center; justify-content: center;
}
.chat-bg-swatch-name {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 3px 6px;
    font-size: 10.5px; font-weight: 600; color: #fff;
    background: linear-gradient(transparent, rgba(0, 0, 0, .55));
    text-align: center;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.chat-bg-modal-actions {
    display: flex; gap: 10px; flex-wrap: wrap;
    margin-top: 16px;
}
.chat-bg-upload {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px 14px; border-radius: 8px; cursor: pointer;
    background: var(--wa-green); color: #fff; font-size: 13px; font-weight: 600;
    transition: background .12s;
}
.chat-bg-upload:hover { background: var(--wa-green-dark); }
.chat-bg-upload.active { box-shadow: 0 0 0 2px rgba(0, 168, 132, .4) inset; }
.chat-bg-reset {
    padding: 9px 14px; border-radius: 8px; cursor: pointer;
    border: 1px solid var(--wa-sep); background: transparent;
    color: var(--wa-text); font-size: 13px; font-weight: 500;
}
.chat-bg-reset:hover { background: rgba(11, 20, 26, .05); }
body[data-theme="dark"] .chat-bg-reset:hover { background: rgba(233, 237, 239, .06); }
.chat-bg-hint { margin-top: 12px; font-size: 12px; color: var(--wa-muted); }
