/* Файл interface_customization.css */

:root {
    --ui-main-sidebar-width: 100px; --ui-contextual-sidebar-width: 100px;
    --ui-top-tab-height: 15px; --ui-left-tab-height: 15px;
    --ui-lk-tab-height: 40px; --ui-tab-gap: 5px;
    --ui-lk-tab-gap: 20px; --ui-top-tab-title-padding: 8px;
    --ui-left-tab-title-padding: 8px; --ui-input-padding-block: 4px;
    --ui-input-padding-inline: 8px; --ui-table-row-height: 30px;
    --ui-table-font-size: 17px; --ui-workspace-zoom: 1;
}

.tab-nav-left {
    width: var(--ui-main-sidebar-width) !important;
    min-width: var(--ui-main-sidebar-width) !important;
}

.contextual-sidebar-portal {
    width: var(--ui-main-sidebar-width);
}

:root[data-ui-left-sidebar-fit-content='true'] .tab-nav-left {
    width: max-content !important; min-width: max-content !important;
}

:root[data-ui-left-sidebar-fit-content='true'] .tab-nav-left .tab-link {
    white-space: nowrap !important; overflow-wrap: normal !important;
    word-break: normal !important;
}

:root[data-ui-left-sidebar-fit-content='true'] .contextual-sidebar-portal {
    width: max-content; max-width: calc(100vw - (var(--spacing_small) * 2));
}

:root[data-ui-left-sidebar-fit-content='true'] .contextual-sidebar__tab {
    width: auto; min-width: 100%;
    white-space: nowrap;
}

.tab-nav-left > .tab-list, .contextual-sidebar__tabs {
    gap: var(--tab-sidebar-item-gap) !important;
}

.tab-nav-left .tab-link, .contextual-sidebar__tab {
    padding-left: var(--ui-left-tab-title-padding) !important;
    padding-right: var(--ui-left-tab-title-padding) !important;
}

.tab-nav-top > .tab-list {
    gap: var(--ui-tab-gap) !important;
}

.config_LK > .tab-widget-container > .tab-container-left > .tab-nav-left
> .tab-list {
    gap: var(--ui-lk-tab-gap) !important;
}

.config_LK > .tab-widget-container > .tab-container-left > .tab-nav-left
.tab-link {
    min-height: var(--ui-lk-tab-height) !important;
    padding-top: max(
        0px,
        calc(
            (var(--ui-lk-tab-height)
                - min(1.2em, var(--ui-lk-tab-height))) / 2
        )
    ) !important;
    padding-bottom: max(
        0px,
        calc(
            (var(--ui-lk-tab-height)
                - min(1.2em, var(--ui-lk-tab-height))) / 2
        )
    ) !important; line-height: min(1.2em, var(--ui-lk-tab-height)) !important;
}

.tab-nav-top .tab-item-wrapper {
    padding-left: var(--ui-top-tab-title-padding) !important;
    padding-right: var(--ui-top-tab-title-padding) !important;
}

.tab-nav-left .tab-item-wrapper, .tab-nav-top .tab-item-wrapper {
    margin-bottom: 0 !important;
}

.tab-nav-top .tab-link {
    min-height: var(--ui-top-tab-height) !important;
    padding-top: max(
        0px,
        calc(
            (var(--ui-top-tab-height)
                - min(1.2em, var(--ui-top-tab-height))) / 2
        )
    ) !important;
    padding-bottom: max(
        0px,
        calc(
            (var(--ui-top-tab-height)
                - min(1.2em, var(--ui-top-tab-height))) / 2
        )
    ) !important; line-height: min(1.2em, var(--ui-top-tab-height)) !important;
}

.tab-nav-left .tab-link, .contextual-sidebar__tab {
    min-height: var(--ui-left-tab-height) !important;
    padding-top: max(
        0px,
        calc(
            (var(--ui-left-tab-height)
                - min(1.2em, var(--ui-left-tab-height))) / 2
        )
    ) !important;
    padding-bottom: max(
        0px,
        calc(
            (var(--ui-left-tab-height)
                - min(1.2em, var(--ui-left-tab-height))) / 2
        )
    ) !important;
    line-height: min(1.2em, var(--ui-left-tab-height)) !important;
}

:root[data-ui-long-tab-names='ellipsis'] .tab-link {
    white-space: nowrap !important; overflow: hidden;
    text-overflow: ellipsis; display: block;
}

:root[data-ui-long-tab-names='wrap'] .tab-link {
    white-space: normal !important; overflow-wrap: anywhere;
}

:root[data-ui-left-sidebar-fit-content='true'][data-ui-long-tab-names='wrap']
.tab-nav-left .tab-link {
    white-space: nowrap !important; overflow-wrap: normal;
}

.table-widget .data-table, .table-widget .cell-input {
    font-size: var(--ui-table-font-size) !important;
}

.table-widget .data-table th, .table-widget .data-table td {
    height: var(--ui-table-row-height);
}

:root[data-ui-sticky-table-header='false'] .fixed-header-row,
:root[data-ui-sticky-table-header='false'] .fixed-header-table thead {
    position: static !important;
}

:root[data-ui-scrollbars='compact'] * {
    scrollbar-width: thin;
}

:root[data-ui-scrollbars='compact'] *::-webkit-scrollbar {
    width: 7px; height: 7px;
}

:root[data-ui-scrollbars='hover'] * {
    scrollbar-color: transparent transparent;
}

:root[data-ui-scrollbars='hover'] *:hover {
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

:root[data-ui-scrollbars='hover'] *::-webkit-scrollbar-thumb {
    background: transparent;
}

:root[data-ui-scrollbars='hover'] *:hover::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
}

:root[data-ui-animations='reduced'] * {
    animation-duration: 80ms !important; transition-duration: 80ms !important;
}

:root[data-ui-animations='off'] * {
    animation: none !important; transition: none !important;
    scroll-behavior: auto !important;
}

:root[data-ui-toast-position='top-right'] .toast-stack {
    top: 12px; right: 12px;
    bottom: auto; left: auto;
    align-items: flex-end;
}

:root[data-ui-toast-position='bottom-left'] .toast-stack {
    top: auto; right: auto;
    bottom: 12px; left: 12px;
}

:root[data-ui-toast-position='bottom-right'] .toast-stack {
    top: auto; right: 12px;
    bottom: 12px; left: auto;
    align-items: flex-end;
}

#tab-container-tab_0 > .tab-content-wrapper,
#tab-container-lk_main > .tab-content-wrapper,
#tab-container-developer_settings > .tab-content-wrapper,
.office-workspace__content {
    zoom: var(--ui-workspace-zoom);
}

.pivot-table {
    font-size: var(--ui-table-font-size) !important;
}

.pivot-table th, .pivot-table td {
    height: var(--ui-table-row-height);
}

:root[data-ui-sticky-table-header='false'] .pivot-table th,
:root[data-ui-sticky-table-header='false'] .pivot-total-row {
    position: static !important;
}

:root[data-ui-height-greater-than-width='true'] {
    --ui-table-font-size: var(--font_size_0);
}

:root[data-ui-height-greater-than-width='true'] body,
:root[data-ui-height-greater-than-width='true'] .container {
    font-size: var(--font_size_0);
}

:root[data-ui-height-greater-than-width='true'] button,
:root[data-ui-height-greater-than-width='true'] input,
:root[data-ui-height-greater-than-width='true'] select,
:root[data-ui-height-greater-than-width='true'] textarea,
:root[data-ui-height-greater-than-width='true'] .theme-lk .nav-footer
.logout-button {
    font-size: var(--font_size_button) !important;
}

:root[data-ui-height-greater-than-width='true'] label,
:root[data-ui-height-greater-than-width='true'] .tab-link,
:root[data-ui-height-greater-than-width='true'] .contextual-sidebar__tab {
    font-size: var(--font_size_0) !important;
}

:root[data-ui-height-greater-than-width='true'] h1 {
    font-size: var(--font_size_3);
}

:root[data-ui-height-greater-than-width='true'] h2,
:root[data-ui-height-greater-than-width='true'] h3 {
    font-size: var(--font_size_2);
}

/* Файл AppErrorBoundary.css */

.app-error-boundary {
    box-sizing: border-box; min-height: 100dvh;
    place-content: center; gap: 14px;
    padding: 24px; text-align: center;
    background: #f4f7fb;
    color: #1f365c;}

.app-error-boundary button {
    min-height: 42px; padding: 8px 18px;
    border: 0; border-radius: 12px;
    background: #3889c9; color: #fff;
    font: inherit; cursor: pointer;
}

/* Файл shared_variables.css */

:root {
    /* По умолчанию — для десктопа */
    --spacing_small: 8px;
    --tab-sidebar-edge-padding: calc(var(--spacing_small) / 2);
    --tab-sidebar-item-gap: var(--spacing_small);
    /* Единый размер шрифта всех левых панелей TabWidget. */
    --tab-sidebar-font-size: var(--font_size_0);
    --table-workspace-edge-gap: calc(var(--spacing_small) / 2);
    --button-padding-block: calc(var(--spacing_small) / 2);
    --button-padding-inline: var(--spacing_small);
    --messenger-action-size: 36px;
    --messenger-back-icon-size: calc(
        var(--messenger-action-size) * 0.95
    );
    --messenger-call-icon-size: calc(
        var(--messenger-action-size) * 0.85
    );
    --messenger-list-search-icon-size: calc(
        var(--messenger-action-size) * 0.8
    );
    --messenger-list-action-icon-size: calc(
        var(--messenger-action-size) * 0.85
    );
    --document_navigation_button_padding_inline: 2px;
    --button-min-height: calc(
        var(--font_size_button) + var(--spacing_small)
    ); --info_button_size: 22px;
    --font_family_interface: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --font_family_monospace: Consolas, 'Courier New', monospace;
    --font_size_caption: 14px; --font_size_button: 15px;
    --font_size_0: 17px; --document_editor_control_font_size: 14px;
    --document_editor_control_height: 28px;
    --document_editor_font_name_width: 140px;
    --document_editor_font_size_width: 54px;
    --font_size_1: calc(var(--font_size_0) * 1.1);
    --font_size_2: calc(var(--font_size_0) * 1.2);
    --font_size_3: calc(var(--font_size_0) * 1.3);
    --authorization_title_font_size:
        calc(var(--font_size_3) * 1.25);
    --authorization_title_landscape_font_size:
        calc(var(--font_size_3) * 1.45);
    --authorization_company_landscape_font_size:
        calc(var(--font_size_1) * 1.08);
    /* Общая шкала размеров для компонентов. */
    --spacing_2xs: 2px; --spacing_xs: 4px;
    --spacing_micro: 3px; --spacing_tight: 5px;
    --spacing_compact: 6px; --spacing_dense: 7px;
    --spacing_regular: 10px; --spacing_medium: 12px;
    --spacing_relaxed: 14px; --spacing_section: 18px;
    --spacing_large: 16px; --spacing_xl: 24px;
    --radius_2xs: 2px; --radius_xs: 4px;
    --radius_tight: 5px; --radius_compact: 6px;
    --radius_dense: 7px; --radius_medium: 8px;
    --radius_relaxed: 9px; --radius_large: 10px;
    --radius_extended: 11px; --radius_xl: 12px;
    --radius_pill: 999px;
    /* Семантические переменные интерфейса. */
    --app-background: #e9edf0; --surface-primary: #ffffff;
    --surface-secondary: #edf1f5;
    --surface-elevated: rgba(255, 255, 255, 0.94); --surface-muted: #f6f9fc;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #0f5ca8 0%, #075298 100%);
    --sidebar-background-solid: #075aa8; --sidebar-text: #ffffff;
    --on-accent: #ffffff; --sidebar-text-muted: rgba(255, 255, 255, 0.78);
    --heading-color: #244b84; --text-primary: #0f2a15;
    --text-secondary: #334155; --text-muted: #64748b;
    --border-color: #b8cada; --primary-color: #3d84c4;
    --primary-hover: #2f75b5; --active-tab-background: #fd7e14;
    --active-tab-hover: #f16f08; --active-tab-text: #ffffff;
    --focus-ring: rgba(61, 132, 196, 0.28);
    --overlay-background: rgba(15, 23, 42, 0.42); --scrollbar-track: #e8eef4;
    --scrollbar-thumb: #9db5c9; --info-background: #ebf5ff;
    --info-border: #a5c0df; --app-shadow: 0 6px 16px rgba(15, 23, 42, 0.09);
    --divider-color: #a8bed1; --divider-soft: #cedbe6;
    --table-header-background: #304d6b; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #e8f1f8;
    --table-row-hover-background: #d9ebf8; --table-cell-border: #bfd0de;
    --table-custom-fill-strength: 82%; --table-fixed-accent-strength: 14%;
    --tab-border-color: var(--divider-soft);
    --tab-panel-separator: var(--divider-soft);
    --sidebar-tab-background: color-mix(
        in srgb,
        var(--sidebar-text) 13%,
        transparent
    );
    --sidebar-tab-border: color-mix(
        in srgb,
        var(--sidebar-text) 18%,
        transparent
    );
    --sidebar-tab-hover: color-mix(
        in srgb,
        var(--sidebar-text) 22%,
        transparent
    );
    --on-accent-muted: color-mix(
        in srgb,
        var(--on-accent) 78%,
        transparent
    );
    --control-border-on-accent: color-mix(
        in srgb,
        var(--on-accent) 42%,
        transparent
    );
    --control-hover-on-accent: color-mix(
        in srgb,
        var(--on-accent) 14%,
        transparent
    );
    --service-header-background: linear-gradient(
        90deg,
        color-mix(
            in srgb,
            var(--primary-color) 16%,
            var(--surface-primary)
        ) 0%,
        color-mix(
            in srgb,
            var(--primary-color) 7%,
            var(--surface-primary)
        ) 100%
    );
    --service-header-border: color-mix(
        in srgb,
        var(--primary-color) 22%,
        var(--divider-soft)
    );
    --service-cold-background: color-mix(
        in srgb,
        var(--primary-color) 18%,
        var(--surface-primary)
    );
    --service-hot-background: color-mix(
        in srgb,
        var(--accent-red) 14%,
        var(--surface-primary)
    ); --dropdown-background: var(--surface-elevated);
    --dropdown-border: var(--divider-color);
    --dropdown-text: var(--text-primary);
    --dropdown-hover: var(--surface-secondary);
    --dropdown-button-secondary: color-mix(
        in srgb,
        var(--primary-color) 68%,
        var(--heading-color)
    ); --selection-border: var(--primary-color);
    --selection-background: color-mix(
        in srgb,
        var(--primary-color) 12%,
        transparent
    );
    --status-error-background: color-mix(
        in srgb,
        var(--accent-red) 14%,
        var(--surface-primary)
    );
    --status-error-border: color-mix(
        in srgb,
        var(--accent-red) 38%,
        var(--divider-color)
    );
    --status-error-text: color-mix(
        in srgb,
        var(--accent-red) 82%,
        var(--text-primary)
    );
    --status-warning-title: color-mix(
        in srgb,
        var(--active-tab-background) 76%,
        var(--text-primary)
    ); --status-warning-text: var(--text-secondary);
    --status-success-background: color-mix(
        in srgb,
        var(--accent-success) 14%,
        var(--surface-primary)
    );
    --status-success-border: color-mix(
        in srgb,
        var(--accent-success) 42%,
        var(--divider-color)
    );
    --status-success-title: color-mix(
        in srgb,
        var(--accent-success) 78%,
        var(--text-primary)
    ); --status-success-text: var(--text-secondary);
    /* Совместимость с существующими компонентами. */
    --bg-1: var(--surface-primary); --bg-2: var(--surface-secondary);
    --card: var(--surface-elevated); --page_background: var(--app-background);
    --shadow: var(--app-shadow); --border: var(--divider-color);
    --accent: var(--primary-color); --accent-blue: var(--primary-hover);
    --blue-navy: var(--heading-color); --text-1: var(--text-primary);
    --text-2: var(--text-secondary); --text-3: var(--text-muted);
    --accent-orange-bg: color-mix(
        in srgb,
        var(--active-tab-background) 12%,
        var(--surface-primary)
    );
    --accent-yellow-border: color-mix(
        in srgb,
        var(--active-tab-background) 62%,
        var(--divider-color)
    );
    --accent-orange-text: color-mix(
        in srgb,
        var(--active-tab-background) 82%,
        var(--text-primary)
    ); --color_3: #ce612f;
    --accent-2: #d4702b; --accent-red: #d23f3f;
    --accent-red-bright: #ff5b5b; --accent-success: #2f9e66;
    --accent-success-hover: #248655;
}

/* Мобильные устройства (до 680px) */

@media (max-width: 680px) {
    :root {
        --font_size_caption: 14px; --font_size_button: 14px;
        --font_size_0: 14px; --font_size_3: calc(var(--font_size_0) * 1.25);
    }
}

/* Мобильные устройства (до 768px) */

@media (max-width: 768px) {
    :root {
        --font_size_caption: 14px; --font_size_button: 14px;
        --font_size_0: 14px; --font_size_3: calc(var(--font_size_0) * 1.2);
    }
}

/* Очень большие экраны (десктоп/мониторы) */

@media (min-width: 2200px) {
    :root {
        --font_size_caption: 15px; --font_size_button: 16px;
        --font_size_0: 18px;
    }
}

/* Когда высота viewport больше ширины, интерфейс становится компактнее. */

:root[data-ui-height-greater-than-width='true'] {
    --messenger-action-size: 32px;
    --font_size_caption: 11px; --font_size_button: 12px;
    --font_size_0: 12px; --font_size_1: 13px;
    --font_size_2: 13px; --font_size_3: 14px;
    --document_editor_control_font_size: 12px;
    --document_editor_control_height: 24px;
}

/* Файл theme_blue.css */

:root, :root[data-app-theme="blue"], [data-app-theme-preview="blue"] {
    --app-background: #e9edf0; --surface-primary: #ffffff;
    --surface-secondary: #edf1f5;
    --surface-elevated: rgba(255, 255, 255, 0.94); --surface-muted: #f6f9fc;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #0f5ca8 0%, #075298 100%);
    --sidebar-background-solid: #075aa8; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.78); --heading-color: #244b84;
    --text-primary: #0f2a15; --text-secondary: #334155;
    --text-muted: #64748b; --border-color: #b8cada;
    --primary-color: #3d84c4; --primary-hover: #2f75b5;
    --active-tab-background: #fd7e14; --active-tab-hover: #f16f08;
    --active-tab-text: #ffffff; --focus-ring: rgba(61, 132, 196, 0.28);
    --overlay-background: rgba(15, 23, 42, 0.42); --scrollbar-track: #e8eef4;
    --scrollbar-thumb: #9db5c9; --info-background: #ebf5ff;
    --info-border: #a5c0df; --app-shadow: 0 6px 16px rgba(15, 23, 42, 0.09);
    --divider-color: #a8bed1; --divider-soft: #cedbe6;
    --table-header-background: #304d6b; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #e8f1f8;
    --table-row-hover-background: #d9ebf8; --table-cell-border: #bfd0de;
}

/* Файл theme_sky.css */

:root[data-app-theme="sky"], [data-app-theme-preview="sky"] {
    --app-background: #edf1f5; --surface-primary: #ffffff;
    --surface-secondary: #edf1f5;
    --surface-elevated: rgba(255, 255, 255, 0.92); --surface-muted: #f6f9fc;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(
        135deg,
        #3681c7 0%,
        #73a4b4 100%
    ); --sidebar-background-solid: #3d84c4;
    --sidebar-text: #ffffff; --sidebar-text-muted: rgba(255, 255, 255, 0.84);
    --heading-color: #2a4d8f; --text-primary: #0f2a15;
    --text-secondary: #334155; --text-muted: #64748b;
    --border-color: #d7e7f2; --primary-color: #3d84c4;
    --primary-hover: #2f75b5; --active-tab-background: #fd7e14;
    --active-tab-hover: #e96f08; --active-tab-text: #ffffff;
    --focus-ring: rgba(61, 132, 196, 0.28);
    --overlay-background: rgba(29, 60, 91, 0.38); --scrollbar-track: #edf1f5;
    --scrollbar-thumb: #9db5c9; --info-background: #ebf5ff;
    --info-border: #a5c0df; --app-shadow: 0 6px 14px rgba(15, 23, 42, 0.06);
    --divider-color: #d7e7f2; --divider-soft: #e5eef4;
    --tab-border-color: #d7e7f2; --tab-panel-separator: #d7e7f2;
    --sidebar-tab-background: rgba(255, 255, 255, 0.2);
    --sidebar-tab-border: rgba(255, 255, 255, 0.28);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.3);
    --table-header-background: #3681c7; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #edf1f5;
    --table-row-hover-background: #dcecf8; --table-cell-border: #d7e7f2;
}

/* Файл theme_light.css */

:root[data-app-theme="light"], [data-app-theme-preview="light"] {
    --app-background: #f4f6f8; --surface-primary: #ffffff;
    --surface-secondary: #eef2f6;
    --surface-elevated: rgba(255, 255, 255, 0.96); --surface-muted: #f8fafc;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #364b63 0%, #273b52 100%);
    --sidebar-background-solid: #31475f; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.76); --heading-color: #243b53;
    --text-primary: #17212b; --text-secondary: #405266;
    --text-muted: #6b7c8f; --border-color: #c4ced8;
    --primary-color: #3478b8; --primary-hover: #255f94;
    --active-tab-background: #e97027; --active-tab-hover: #cf5d1c;
    --active-tab-text: #ffffff; --focus-ring: rgba(52, 120, 184, 0.26);
    --overlay-background: rgba(22, 33, 45, 0.38); --scrollbar-track: #edf1f5;
    --scrollbar-thumb: #a8b5c2; --info-background: #edf6ff;
    --info-border: #b5cee6; --app-shadow: 0 8px 22px rgba(31, 45, 61, 0.08);
    --divider-color: #acb9c6; --divider-soft: #dfe5eb;
    --table-header-background: #344b62; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #eef3f7;
    --table-row-hover-background: #e0edf7; --table-cell-border: #cbd5de;
}

/* Файл theme_dark.css */

:root[data-app-theme="dark"], [data-app-theme-preview="dark"] {
    --app-background: #111827; --surface-primary: #1b2534;
    --surface-secondary: #151f2d; --surface-elevated: rgba(29, 40, 56, 0.96);
    --surface-muted: #202c3d; --input-background: #111b29;
    --sidebar-background: linear-gradient(180deg, #101827 0%, #0b1220 100%);
    --sidebar-background-solid: #111827; --sidebar-text: #f8fafc;
    --sidebar-text-muted: #aab8c8; --heading-color: #d8e8ff;
    --text-primary: #edf4fc; --text-secondary: #c3cfdd;
    --text-muted: #93a4b8; --border-color: #43536a;
    --primary-color: #4d9bd8; --primary-hover: #67afe4;
    --active-tab-background: #d9772f; --active-tab-hover: #eb8b42;
    --active-tab-text: #ffffff; --focus-ring: rgba(77, 155, 216, 0.34);
    --overlay-background: rgba(0, 0, 0, 0.66); --scrollbar-track: #141e2b;
    --scrollbar-thumb: #506279; --info-background: #182d42;
    --info-border: #365c7d; --app-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
    --divider-color: #52657e; --divider-soft: #2d3b4d;
    --table-header-background: #2b3b50; --table-header-text: #f8fafc;
    --table-row-background: #1b2534; --table-row-alt-background: #202d3e;
    --table-row-hover-background: #293b50; --table-cell-border: #35475d;
}

/* Файл theme_graphite.css */

:root[data-app-theme="graphite"], [data-app-theme-preview="graphite"] {
    --app-background: #191c20; --surface-primary: #25292e;
    --surface-secondary: #202429; --surface-elevated: rgba(39, 44, 50, 0.97);
    --surface-muted: #2b3036; --input-background: #1c2025;
    --sidebar-background: linear-gradient(180deg, #252a30 0%, #171b20 100%);
    --sidebar-background-solid: #252a30; --sidebar-text: #f1f5f4;
    --sidebar-text-muted: #aebbb8; --heading-color: #d8f3ee;
    --text-primary: #edf2f1; --text-secondary: #c5cecc;
    --text-muted: #98a5a2; --border-color: #4c555e;
    --primary-color: #2ea89a; --primary-hover: #42c1b2;
    --active-tab-background: #d17a3b; --active-tab-hover: #e38b4b;
    --active-tab-text: #ffffff; --focus-ring: rgba(46, 168, 154, 0.34);
    --overlay-background: rgba(0, 0, 0, 0.68); --scrollbar-track: #202429;
    --scrollbar-thumb: #59615f; --info-background: #203936;
    --info-border: #3d6861; --app-shadow: 0 10px 28px rgba(0, 0, 0, 0.3);
    --divider-color: #5b6670; --divider-soft: #343b42;
    --table-header-background: #343c44; --table-header-text: #f1f5f4;
    --table-row-background: #25292e; --table-row-alt-background: #2b3036;
    --table-row-hover-background: #34413f; --table-cell-border: #454e56;
}

/* Файл theme_emerald.css */

:root[data-app-theme="emerald"], [data-app-theme-preview="emerald"] {
    --app-background: #edf5f2; --surface-primary: #ffffff;
    --surface-secondary: #e4f0ec;
    --surface-elevated: rgba(255, 255, 255, 0.96); --surface-muted: #f4faf8;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #087f72 0%, #05655b 100%);
    --sidebar-background-solid: #087f72; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.78); --heading-color: #145c54;
    --text-primary: #16332f; --text-secondary: #365b55;
    --text-muted: #65817c; --border-color: #abcac2;
    --primary-color: #118f80; --primary-hover: #08766a;
    --active-tab-background: #e27238; --active-tab-hover: #c95f2a;
    --active-tab-text: #ffffff; --focus-ring: rgba(17, 143, 128, 0.28);
    --overlay-background: rgba(12, 59, 53, 0.42); --scrollbar-track: #e4efec;
    --scrollbar-thumb: #8fb9b0; --info-background: #e4f6f2;
    --info-border: #9dd2c7; --app-shadow: 0 8px 22px rgba(22, 82, 73, 0.1);
    --divider-color: #8eb9af; --divider-soft: #d3e6e1;
    --table-header-background: #1b665c; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #e7f3ef;
    --table-row-hover-background: #d6eee8; --table-cell-border: #b7d2cb;
}

/* Файл theme_lavender.css */

:root[data-app-theme="lavender"], [data-app-theme-preview="lavender"] {
    --app-background: #f2f0f8; --surface-primary: #ffffff;
    --surface-secondary: #ebe8f4;
    --surface-elevated: rgba(255, 255, 255, 0.96); --surface-muted: #f8f6fc;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #6654a7 0%, #4f408c 100%);
    --sidebar-background-solid: #6250a3; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.8); --heading-color: #55468b;
    --text-primary: #2a2638; --text-secondary: #514b68;
    --text-muted: #7a738f; --border-color: #c5bbdc;
    --primary-color: #7661c7; --primary-hover: #604cae;
    --active-tab-background: #e16f52; --active-tab-hover: #c85b40;
    --active-tab-text: #ffffff; --focus-ring: rgba(118, 97, 199, 0.28);
    --overlay-background: rgba(43, 34, 72, 0.42); --scrollbar-track: #ebe8f3;
    --scrollbar-thumb: #aaa0ca; --info-background: #f0edfb;
    --info-border: #c7bdea; --app-shadow: 0 8px 24px rgba(73, 58, 120, 0.12);
    --divider-color: #afa1cf; --divider-soft: #e2dced;
    --table-header-background: #5a4d88; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #f0edf7;
    --table-row-hover-background: #e8e1f5; --table-cell-border: #cec4e1;
}

/* Файл theme_arctic.css */

:root[data-app-theme="arctic"], [data-app-theme-preview="arctic"] {
    --app-background: #eef5f8; --surface-primary: #ffffff;
    --surface-secondary: #e4eef3; --surface-elevated: rgba(255,255,255,0.96);
    --surface-muted: #f5fafc; --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #2f6177 0%, #1f485d 100%);
    --sidebar-background-solid: #28566b; --sidebar-text: #f8fcff;
    --sidebar-text-muted: rgba(248,252,255,0.78); --heading-color: #21536a;
    --text-primary: #17313d; --text-secondary: #426473;
    --text-muted: #718b96; --border-color: #b8cfd8;
    --primary-color: #3187a8; --primary-hover: #226d8a;
    --active-tab-background: #ee7445; --active-tab-hover: #d96035;
    --focus-ring: rgba(49,135,168,0.28);
    --overlay-background: rgba(20,55,70,0.42); --scrollbar-track: #e6eff3;
    --scrollbar-thumb: #91b0bd; --info-background: #e7f6fb;
    --info-border: #9bc8d8; --app-shadow: 0 8px 22px rgba(30,76,94,0.11);
    --divider-color: #9bbbc7; --divider-soft: #d4e3e9;
    --table-header-background: #2b6075; --table-row-background: #ffffff;
    --table-row-alt-background: #e9f3f7; --table-row-hover-background: #d9ecf3;
    --table-cell-border: #bdd2da; --active-tab-text: #ffffff;
    --table-header-text: #ffffff;
}

/* Файл theme_sakura.css */

:root[data-app-theme="sakura"], [data-app-theme-preview="sakura"] {
    --app-background: #f8f1f3; --surface-primary: #ffffff;
    --surface-secondary: #f3e7eb; --surface-elevated: rgba(255,255,255,0.97);
    --surface-muted: #fcf7f9; --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #8d5368 0%, #6f3d52 100%);
    --sidebar-background-solid: #825064; --sidebar-text: #fff9fb;
    --sidebar-text-muted: rgba(255,249,251,0.8); --heading-color: #7a3e57;
    --text-primary: #38232c; --text-secondary: #684b58;
    --text-muted: #907681; --border-color: #d9bdc7;
    --primary-color: #b55f7d; --primary-hover: #984761;
    --active-tab-background: #df7044; --active-tab-hover: #c85d35;
    --focus-ring: rgba(181,95,125,0.27);
    --overlay-background: rgba(63,31,44,0.4); --scrollbar-track: #f2e7eb;
    --scrollbar-thumb: #c29aaa; --info-background: #fbecf2;
    --info-border: #dfb6c6; --app-shadow: 0 8px 22px rgba(98,47,66,0.11);
    --divider-color: #cca7b5; --divider-soft: #ead9df;
    --table-header-background: #77495c; --table-row-background: #ffffff;
    --table-row-alt-background: #f7edf1; --table-row-hover-background: #f0dce4;
    --table-cell-border: #ddc4cd; --active-tab-text: #ffffff;
    --table-header-text: #ffffff;
}

/* Файл theme_sand.css */

:root[data-app-theme="sand"], [data-app-theme-preview="sand"] {
    --app-background: #f4f0e8; --surface-primary: #fffdf8;
    --surface-secondary: #ece5d8; --surface-elevated: rgba(255,253,248,0.97);
    --surface-muted: #faf7f0; --input-background: #fffdf8;
    --sidebar-background: linear-gradient(180deg, #746451 0%, #564838 100%);
    --sidebar-background-solid: #675743; --sidebar-text: #fffaf1;
    --sidebar-text-muted: rgba(255,250,241,0.8); --heading-color: #665039;
    --text-primary: #342b22; --text-secondary: #625647;
    --text-muted: #897c6a; --border-color: #d2c3ad;
    --primary-color: #a97748; --primary-hover: #8d5e35;
    --active-tab-background: #d86e37; --active-tab-hover: #bd5728;
    --focus-ring: rgba(169,119,72,0.28);
    --overlay-background: rgba(53,43,32,0.42); --scrollbar-track: #eee7dc;
    --scrollbar-thumb: #b5a38d; --info-background: #f7efd9;
    --info-border: #d7c08b; --app-shadow: 0 8px 22px rgba(75,59,41,0.1);
    --divider-color: #bea98d; --divider-soft: #e2d7c6;
    --table-header-background: #655744; --table-row-background: #fffdf8;
    --table-row-alt-background: #f2ece1; --table-row-hover-background: #e9dfd0;
    --table-cell-border: #d3c4af; --active-tab-text: #ffffff;
    --table-header-text: #ffffff;
}

/* Файл theme_midnight.css */

:root[data-app-theme="midnight"], [data-app-theme-preview="midnight"] {
    --app-background: #0e1020; --surface-primary: #171a2d;
    --surface-secondary: #121526; --surface-elevated: rgba(25,29,49,0.97);
    --surface-muted: #1d2137; --input-background: #111426;
    --sidebar-background: linear-gradient(180deg, #171b35 0%, #0b0e1d 100%);
    --sidebar-background-solid: #151a31; --sidebar-text: #f3f5ff;
    --sidebar-text-muted: #aab1cf; --heading-color: #d8ddff;
    --text-primary: #f0f2ff; --text-secondary: #c5cae5;
    --text-muted: #969dbd; --border-color: #454c70;
    --primary-color: #6687e8; --primary-hover: #7d9afb;
    --active-tab-background: #e47a45; --active-tab-hover: #f08d59;
    --focus-ring: rgba(102,135,232,0.35);
    --overlay-background: rgba(0,0,0,0.7); --scrollbar-track: #121526;
    --scrollbar-thumb: #535b83; --info-background: #1c2a50;
    --info-border: #3e5793; --app-shadow: 0 12px 30px rgba(0,0,0,0.34);
    --divider-color: #596284; --divider-soft: #303753;
    --table-header-background: #2d355b; --table-row-background: #171a2d;
    --table-row-alt-background: #1d2138; --table-row-hover-background: #272e4b;
    --table-cell-border: #39415f; --active-tab-text: #ffffff;
    --table-header-text: #ffffff;
}

/* Файл theme_neon.css */

:root[data-app-theme="neon"], [data-app-theme-preview="neon"] {
    --app-background: #101519; --surface-primary: #182126;
    --surface-secondary: #131b20; --surface-elevated: rgba(25,34,40,0.97);
    --surface-muted: #202b31; --input-background: #111a1f;
    --sidebar-background: linear-gradient(180deg, #15323a 0%, #111721 55%,
        #241631 100%);
    --sidebar-background-solid: #172a32; --sidebar-text: #effffc;
    --sidebar-text-muted: #a9c9c3; --heading-color: #baf5eb;
    --text-primary: #eaf8f5; --text-secondary: #bfd2ce;
    --text-muted: #8fa7a2; --border-color: #3d5a5b;
    --primary-color: #24b9a8; --primary-hover: #39d1be;
    --active-tab-background: #9b5de5; --active-tab-hover: #b176ee;
    --focus-ring: rgba(36,185,168,0.34); --overlay-background: rgba(0,0,0,0.7);
    --scrollbar-track: #131b20; --scrollbar-thumb: #466b69;
    --info-background: #173b3b; --info-border: #2c716b;
    --app-shadow: 0 12px 30px rgba(0,0,0,0.32); --divider-color: #4d7070;
    --divider-soft: #2a4144; --table-header-background: #24464b;
    --table-row-background: #182126; --table-row-alt-background: #1e2a30;
    --table-row-hover-background: #273a3d; --table-cell-border: #355154;
    --active-tab-text: #ffffff; --table-header-text: #ffffff;
}

/* Файл theme_aurora.css */

:root[data-app-theme="aurora"], [data-app-theme-preview="aurora"] {
    --app-background: #0b1220; --surface-primary: #121d31;
    --surface-secondary: #172640; --surface-elevated: rgba(20, 32, 53, 0.97);
    --surface-muted: #0f192b; --input-background: #0e192b;
    --sidebar-background: linear-gradient(160deg, #10233f 0%, #15204a 52%,
        #312150 100%);
    --sidebar-background-solid: #142543; --sidebar-text: #f4f8ff;
    --sidebar-text-muted: rgba(225, 236, 255, 0.8); --heading-color: #9fe8ff;
    --text-primary: #edf6ff; --text-secondary: #b7c8df;
    --text-muted: #8295b1; --border-color: #354966;
    --primary-color: #2ec5ce; --primary-hover: #24aeb7;
    --active-tab-background: #d65cba; --active-tab-hover: #bf49a3;
    --active-tab-text: #ffffff; --focus-ring: rgba(46, 197, 206, 0.34);
    --overlay-background: rgba(4, 9, 19, 0.68); --scrollbar-track: #101a2b;
    --scrollbar-thumb: #526987; --info-background: #142b3f;
    --info-border: #34738b; --app-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    --divider-color: #3c506b; --divider-soft: #263a56;
    --tab-border-color: #3a506e; --tab-panel-separator: #304663;
    --sidebar-tab-background: rgba(255, 255, 255, 0.07);
    --sidebar-tab-border: rgba(194, 225, 255, 0.18);
    --sidebar-tab-hover: rgba(46, 197, 206, 0.15);
    --table-header-background: #203956; --table-header-text: #f4f9ff;
    --table-row-background: #121d31; --table-row-alt-background: #16243a;
    --table-row-hover-background: #1d3550; --table-cell-border: #344a67;
}

/* Файл theme_space.css */

:root[data-app-theme="space"], [data-app-theme-preview="space"] {
    --app-background: rgba(3, 8, 22, 0.74);
    --surface-primary: rgba(7, 16, 38, 0.78);
    --surface-secondary: rgba(11, 24, 52, 0.82);
    --surface-elevated: rgba(14, 29, 61, 0.88);
    --surface-muted: rgba(17, 34, 68, 0.76);
    --input-background: rgba(8, 20, 44, 0.88);
    --sidebar-background: linear-gradient(
        180deg,
        rgba(4, 15, 38, 0.92) 0%,
        rgba(10, 24, 57, 0.88) 100%
    ); --sidebar-background-solid: #07152f;
    --sidebar-text: #f8fbff; --sidebar-text-muted: rgba(224, 235, 255, 0.82);
    --heading-color: #dceaff; --text-primary: #f7fbff;
    --text-secondary: #c9d7ed; --text-muted: #91a5c4;
    --border-color: rgba(145, 180, 226, 0.36); --primary-color: #5c9dff;
    --primary-hover: #7db3ff; --active-tab-background: #d861a8;
    --active-tab-hover: #e879bc; --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #70aaff 38%, transparent);
    --overlay-background: rgba(0, 4, 16, 0.64);
    --scrollbar-track: rgba(6, 16, 36, 0.82); --scrollbar-thumb: #526e9d;
    --info-background: rgba(17, 43, 82, 0.88);
    --info-border: rgba(104, 159, 226, 0.56);
    --app-shadow: 0 12px 34px rgba(0, 0, 15, 0.34);
    --divider-color: rgba(121, 155, 205, 0.42);
    --divider-soft: rgba(94, 126, 176, 0.26);
    --tab-border-color: rgba(129, 165, 218, 0.44);
    --tab-panel-separator: rgba(112, 148, 201, 0.34);
    --sidebar-tab-background: rgba(255, 255, 255, 0.08);
    --sidebar-tab-border: rgba(222, 235, 255, 0.18);
    --sidebar-tab-hover: rgba(92, 157, 255, 0.18);
    --table-header-background: #173765; --table-header-text: #ffffff;
    --table-row-background: #071229; --table-row-alt-background: #0d1e3d;
    --table-row-hover-background: #224577; --workspace-opaque-surface: #071026;
    --workspace-opaque-surface-secondary: #0c1c3d;
    --selection-list-background: #071229;
    --table-cell-border: rgba(118, 151, 199, 0.36);
}

:root[data-app-theme="space"] {
    background-color: #020815;
    background-image:
        linear-gradient(rgba(0, 4, 15, 0.2), rgba(0, 4, 15, 0.38)),
        url(/static/media/space_galaxy.f1138c0c.jpg);
    background-position: center; background-size: cover;
    background-attachment: fixed;
}

:root[data-app-theme="space"] body, :root[data-app-theme="space"] #root,
:root[data-app-theme="space"] .tab-content,
:root[data-app-theme="space"] .tab-content-wrapper,
:root[data-app-theme="space"] .tab-content-item,
:root[data-app-theme="space"] .container,
:root[data-app-theme="space"] .office-workspace,
:root[data-app-theme="space"] .developer-settings-root {
    background-color: transparent; background-image: none;
}

:root[data-app-theme="space"] .modal-content,
:root[data-app-theme="space"] .drawer-panel {
    backdrop-filter: blur(13px) saturate(118%);
}

[data-app-theme-preview="space"].app-theme-preview,
[data-app-theme-preview="space"] .app-theme-preview__content {
    background-image:
        linear-gradient(rgba(3, 9, 24, 0.18), rgba(3, 9, 24, 0.5)),
        url(/static/media/space_galaxy.f1138c0c.jpg);
    background-position: center; background-size: cover;
}

/* На фоновых космических темах рабочие карточки не просвечивают. */

:root[data-app-theme="space"] .doc-card {
    background: var(--workspace-opaque-surface);
}

:root[data-app-theme="space"] .bank-dashboard__header,
:root[data-app-theme="space"] .bank-account-page__statement-toolbar,
:root[data-app-theme="space"] .bank-account-page__table-toolbar {
    padding: var(--spacing_small); border: 1px solid var(--border-color);
    border-radius: 8px; background: var(--workspace-opaque-surface);
    box-shadow: var(--app-shadow);
}

:root[data-app-theme="space"] .bank-dashboard__settings {
    background: var(--workspace-opaque-surface-secondary);
}

/* Файл theme_space_nebula.css */

:root[data-app-theme="space_nebula"],
[data-app-theme-preview="space_nebula"] {
    --app-background: rgba(225, 238, 250, 0.34);
    --surface-primary: rgba(246, 251, 255, 0.76);
    --surface-secondary: rgba(224, 239, 251, 0.74);
    --surface-elevated: rgba(255, 255, 255, 0.84);
    --surface-muted: rgba(231, 243, 252, 0.68);
    --input-background: rgba(255, 255, 255, 0.78);
    --sidebar-background: linear-gradient(
        180deg,
        rgba(20, 92, 143, 0.86) 0%,
        rgba(35, 116, 157, 0.76) 100%
    ); --sidebar-background-solid: #216f9a;
    --sidebar-text: #ffffff; --sidebar-text-muted: rgba(239, 250, 255, 0.84);
    --heading-color: #173f68; --text-primary: #102b37;
    --text-secondary: #365269; --text-muted: #687f95;
    --border-color: rgba(94, 143, 181, 0.36); --primary-color: #3188ca;
    --primary-hover: #236fae; --active-tab-background: #7b6bed;
    --active-tab-hover: #6959db; --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #3188ca 28%, transparent);
    --overlay-background: rgba(2, 19, 38, 0.4);
    --scrollbar-track: rgba(224, 239, 250, 0.72); --scrollbar-thumb: #82a9c3;
    --info-background: rgba(226, 243, 255, 0.82);
    --info-border: rgba(83, 141, 186, 0.46);
    --app-shadow: 0 10px 28px rgba(7, 34, 57, 0.16);
    --divider-color: rgba(94, 142, 180, 0.4);
    --divider-soft: rgba(121, 164, 197, 0.26);
    --tab-border-color: rgba(90, 143, 183, 0.42);
    --tab-panel-separator: rgba(102, 152, 189, 0.34);
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.24);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.2);
    --table-header-background: #296c9d; --table-header-text: #ffffff;
    --table-row-background: #eef7fc; --table-row-alt-background: #dcecf6;
    --table-row-hover-background: #cce6f7; --workspace-opaque-surface: #f6fbff;
    --workspace-opaque-surface-secondary: #e5f1f9;
    --table-cell-border: rgba(107, 153, 188, 0.36);
    --selection-list-background: #eef7fc;
}

:root[data-app-theme="space_nebula"] {
    background-color: #153e62;
    background-image:
        linear-gradient(
            120deg,
            rgba(196, 229, 248, 0.2),
            rgba(13, 50, 88, 0.24)
        ),
        url(/static/media/space_nebula.c35885ba.jpg);
    background-position: center; background-size: cover;
    background-attachment: fixed;
}

:root[data-app-theme="space_nebula"] body,
:root[data-app-theme="space_nebula"] #root,
:root[data-app-theme="space_nebula"] .tab-content,
:root[data-app-theme="space_nebula"] .tab-content-wrapper,
:root[data-app-theme="space_nebula"] .tab-content-item,
:root[data-app-theme="space_nebula"] .container,
:root[data-app-theme="space_nebula"] .office-workspace,
:root[data-app-theme="space_nebula"] .developer-settings-root {
    background-color: transparent; background-image: none;
}

:root[data-app-theme="space_nebula"] .modal-content,
:root[data-app-theme="space_nebula"] .drawer-panel {
    backdrop-filter: blur(16px) saturate(125%);
}

[data-app-theme-preview="space_nebula"].app-theme-preview,
[data-app-theme-preview="space_nebula"] .app-theme-preview__content {
    background-image:
        linear-gradient(
            rgba(225, 242, 253, 0.28),
            rgba(232, 246, 255, 0.56)
        ),
        url(/static/media/space_nebula.c35885ba.jpg);
    background-position: center; background-size: cover;
}

/* На фоновых космических темах рабочие карточки не просвечивают. */

:root[data-app-theme="space_nebula"] .doc-card {
    background: var(--workspace-opaque-surface);
}

:root[data-app-theme="space_nebula"] .bank-dashboard__header,
:root[data-app-theme="space_nebula"]
.bank-account-page__statement-toolbar,
:root[data-app-theme="space_nebula"] .bank-account-page__table-toolbar {
    padding: var(--spacing_small); border: 1px solid var(--border-color);
    border-radius: 8px; background: var(--workspace-opaque-surface);
    box-shadow: var(--app-shadow);
}

:root[data-app-theme="space_nebula"] .bank-dashboard__settings {
    background: var(--workspace-opaque-surface-secondary);
}

/* Файл theme_porcelain.css */

:root[data-app-theme="porcelain"], [data-app-theme-preview="porcelain"] {
    --app-background: #f5f3ef; --surface-primary: #fffefd;
    --surface-secondary: #ece9e3;
    --surface-elevated: rgba(255, 254, 253, 0.97); --surface-muted: #faf8f4;
    --input-background: #fffefd;
    --sidebar-background: linear-gradient(180deg, #334a62 0%, #26394d 100%);
    --sidebar-background-solid: #2e4358; --sidebar-text: #fffdf9;
    --sidebar-text-muted: rgba(255, 253, 249, 0.8); --heading-color: #294b69;
    --text-primary: #25313d; --text-secondary: #596571;
    --text-muted: #7d868e; --border-color: #cfc9bf;
    --primary-color: #3f7898; --primary-hover: #32647f;
    --active-tab-background: #c66a4b; --active-tab-hover: #ae573b;
    --active-tab-text: #ffffff; --focus-ring: rgba(63, 120, 152, 0.25);
    --overlay-background: rgba(31, 42, 52, 0.42); --scrollbar-track: #ece9e3;
    --scrollbar-thumb: #a79f94; --info-background: #edf5f8;
    --info-border: #abc8d5; --app-shadow: 0 8px 22px rgba(53, 61, 68, 0.1);
    --divider-color: #c3bdb3; --divider-soft: #ded9d1;
    --tab-border-color: #d1cbc2; --tab-panel-separator: #d3cdc4;
    --sidebar-tab-background: rgba(255, 255, 255, 0.1);
    --sidebar-tab-border: rgba(255, 255, 255, 0.2);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.17);
    --table-header-background: #3b5267; --table-header-text: #ffffff;
    --table-row-background: #fffefd; --table-row-alt-background: #f0ede7;
    --table-row-hover-background: #e7edf0; --table-cell-border: #d1cbc2;
}

/* Файл theme_ocean.css */

:root[data-app-theme="ocean"], [data-app-theme-preview="ocean"] {
    --app-background: #071b25; --surface-primary: #0d2732;
    --surface-secondary: #123540; --surface-elevated: rgba(13, 39, 50, 0.97);
    --surface-muted: #0a222c; --input-background: #0a202a;
    --sidebar-background: linear-gradient(180deg, #075d68 0%, #083e54 100%);
    --sidebar-background-solid: #075262; --sidebar-text: #ecffff;
    --sidebar-text-muted: rgba(219, 252, 252, 0.78); --heading-color: #77e1dd;
    --text-primary: #ecfbfb; --text-secondary: #aed0d1;
    --text-muted: #789da1; --border-color: #2e5862;
    --primary-color: #20aeb0; --primary-hover: #178f92;
    --active-tab-background: #ff8b4d; --active-tab-hover: #e97539;
    --active-tab-text: #ffffff; --focus-ring: rgba(32, 174, 176, 0.32);
    --overlay-background: rgba(2, 17, 24, 0.68); --scrollbar-track: #0a222c;
    --scrollbar-thumb: #3e737d; --info-background: #10343e;
    --info-border: #34747d; --app-shadow: 0 10px 28px rgba(0, 0, 0, 0.27);
    --divider-color: #37616b; --divider-soft: #214751;
    --tab-border-color: #35616b; --tab-panel-separator: #2b5660;
    --sidebar-tab-background: rgba(255, 255, 255, 0.07);
    --sidebar-tab-border: rgba(218, 255, 255, 0.17);
    --sidebar-tab-hover: rgba(32, 174, 176, 0.16);
    --table-header-background: #154653; --table-header-text: #f1ffff;
    --table-row-background: #0d2732; --table-row-alt-background: #11323d;
    --table-row-hover-background: #17434d; --table-cell-border: #2e5963;
}

/* Файл theme_copper.css */

:root[data-app-theme="copper"], [data-app-theme-preview="copper"] {
    --app-background: #171615; --surface-primary: #22201e;
    --surface-secondary: #2b2825; --surface-elevated: rgba(35, 32, 29, 0.97);
    --surface-muted: #1c1a18; --input-background: #1d1b19;
    --sidebar-background: linear-gradient(180deg, #312b27 0%, #201d1b 100%);
    --sidebar-background-solid: #292522; --sidebar-text: #fff7ef;
    --sidebar-text-muted: rgba(248, 228, 211, 0.78); --heading-color: #e6a574;
    --text-primary: #f4ece5; --text-secondary: #c8b8aa;
    --text-muted: #95877c; --border-color: #55483f;
    --primary-color: #c77b4c; --primary-hover: #ad6338;
    --active-tab-background: #d58b50; --active-tab-hover: #bb733f;
    --active-tab-text: #ffffff; --focus-ring: rgba(199, 123, 76, 0.32);
    --overlay-background: rgba(10, 9, 8, 0.7); --scrollbar-track: #1d1b19;
    --scrollbar-thumb: #6b5b50; --info-background: #302821;
    --info-border: #74543e; --app-shadow: 0 10px 26px rgba(0, 0, 0, 0.3);
    --divider-color: #5c4d43; --divider-soft: #40362f;
    --tab-border-color: #5b4c42; --tab-panel-separator: #4a3e36;
    --sidebar-tab-background: rgba(255, 255, 255, 0.06);
    --sidebar-tab-border: rgba(255, 233, 214, 0.15);
    --sidebar-tab-hover: rgba(199, 123, 76, 0.16);
    --table-header-background: #49372b; --table-header-text: #fff7ef;
    --table-row-background: #22201e; --table-row-alt-background: #292623;
    --table-row-hover-background: #352d27; --table-cell-border: #55483f;
}

/* Файл theme_coral.css */

:root[data-app-theme="coral"], [data-app-theme-preview="coral"] {
    --app-background: #fff5f0; --surface-primary: #ffffff;
    --surface-secondary: #f8e8e2;
    --surface-elevated: rgba(255, 255, 255, 0.97); --surface-muted: #fffaf7;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #d66f69 0%, #b84f5e 100%);
    --sidebar-background-solid: #c45f64; --sidebar-text: #fffafa;
    --sidebar-text-muted: rgba(255, 250, 250, 0.82); --heading-color: #85424e;
    --text-primary: #3d2930; --text-secondary: #72535d;
    --text-muted: #967b83; --border-color: #e1c4c2;
    --primary-color: #d96f6a; --primary-hover: #bd5957;
    --active-tab-background: #385f82; --active-tab-hover: #2d4e6c;
    --active-tab-text: #ffffff; --focus-ring: rgba(217, 111, 106, 0.27);
    --overlay-background: rgba(67, 39, 45, 0.42); --scrollbar-track: #f8e8e2;
    --scrollbar-thumb: #c99d9a; --info-background: #fff0ed;
    --info-border: #e6b5b0; --app-shadow: 0 8px 22px rgba(112, 62, 70, 0.1);
    --divider-color: #d8b4b2; --divider-soft: #eed7d3;
    --tab-border-color: #e4c5c2; --tab-panel-separator: #e4c6c3;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.22);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.2);
    --table-header-background: #8c4e58; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #fbefeb;
    --table-row-hover-background: #f7dfdc; --table-cell-border: #e0c1bf;
}

/* Файл theme_mint.css */

:root[data-app-theme="mint"], [data-app-theme-preview="mint"] {
    --app-background: #effaf6; --surface-primary: #ffffff;
    --surface-secondary: #e1f3ec;
    --surface-elevated: rgba(255, 255, 255, 0.97); --surface-muted: #f7fcfa;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #1d8b78 0%, #126456 100%);
    --sidebar-background-solid: #187565; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #165f54;
    --text-primary: #173c35; --text-secondary: #496b64;
    --text-muted: #718f88; --border-color: #b9ddd3;
    --primary-color: #24a88e; --primary-hover: #17856f;
    --active-tab-background: #e57b2f; --active-tab-hover: #ca6420;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #24a88e 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #e1f3ec;
    --scrollbar-thumb: #81b9ab; --info-background: #e4f8f2;
    --info-border: #9fd2c5; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #b9ddd3;
    --divider-soft: color-mix(in srgb, #b9ddd3 58%, #ffffff);
    --tab-border-color: #b9ddd3; --tab-panel-separator: #b9ddd3;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #1b7567; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #edf8f4;
    --table-row-hover-background: #dff2eb; --table-cell-border: #b9ddd3;
}

/* Файл theme_plum.css */

:root[data-app-theme="plum"], [data-app-theme-preview="plum"] {
    --app-background: #17121c; --surface-primary: #211827;
    --surface-secondary: #2b2032; --surface-elevated: rgba(37, 42, 48, 0.97);
    --surface-muted: #261d2c; --input-background: #211827;
    --sidebar-background: linear-gradient(180deg, #4e2d58 0%, #281a32 100%);
    --sidebar-background-solid: #3d2548; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #f0c9f1;
    --text-primary: #f7edf8; --text-secondary: #cfb8d3;
    --text-muted: #9e879f; --border-color: #54435a;
    --primary-color: #b06bc1; --primary-hover: #c47ad4;
    --active-tab-background: #dd7b57; --active-tab-hover: #ec8c68;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #b06bc1 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #2b2032;
    --scrollbar-thumb: #725c78; --info-background: #30203b;
    --info-border: #775681; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #54435a;
    --divider-soft: color-mix(in srgb, #54435a 58%, #211827);
    --tab-border-color: #54435a; --tab-panel-separator: #54435a;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #5b3567; --table-header-text: #ffffff;
    --table-row-background: #211827; --table-row-alt-background: #291e30;
    --table-row-hover-background: #3b2844; --table-cell-border: #54435a;
}

/* Файл theme_nord.css */

:root[data-app-theme="nord"], [data-app-theme-preview="nord"] {
    --app-background: #202833; --surface-primary: #2a3441;
    --surface-secondary: #344150; --surface-elevated: rgba(37, 42, 48, 0.97);
    --surface-muted: #2f3a47; --input-background: #2a3441;
    --sidebar-background: linear-gradient(180deg, #3b5268 0%, #273849 100%);
    --sidebar-background-solid: #32485b; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #d9edf7;
    --text-primary: #edf5f8; --text-secondary: #b8cbd4;
    --text-muted: #8da3ae; --border-color: #506273;
    --primary-color: #6fb6cf; --primary-hover: #86c9df;
    --active-tab-background: #d8904b; --active-tab-hover: #e7a05d;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #6fb6cf 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #344150;
    --scrollbar-thumb: #6a8192; --info-background: #304454;
    --info-border: #628195; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #506273;
    --divider-soft: color-mix(in srgb, #506273 58%, #2a3441);
    --tab-border-color: #506273; --tab-panel-separator: #506273;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #3f596d; --table-header-text: #ffffff;
    --table-row-background: #2a3441; --table-row-alt-background: #303c49;
    --table-row-hover-background: #3c4d5d; --table-cell-border: #506273;
}

/* Файл theme_solar.css */

:root[data-app-theme="solar"], [data-app-theme-preview="solar"] {
    --app-background: #fff9e9; --surface-primary: #ffffff;
    --surface-secondary: #f8edcf;
    --surface-elevated: rgba(255, 255, 255, 0.97); --surface-muted: #fffcf4;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #d39a2c 0%, #a86e18 100%);
    --sidebar-background-solid: #bd8120; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #7b5514;
    --text-primary: #3f331f; --text-secondary: #6f6045;
    --text-muted: #95866b; --border-color: #e4d2a4;
    --primary-color: #e1a82e; --primary-hover: #c98c17;
    --active-tab-background: #4c79ad; --active-tab-hover: #37638f;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #e1a82e 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #f8edcf;
    --scrollbar-thumb: #cbb77f; --info-background: #fff3cd;
    --info-border: #e3c777; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #e4d2a4;
    --divider-soft: color-mix(in srgb, #e4d2a4 58%, #ffffff);
    --tab-border-color: #e4d2a4; --tab-panel-separator: #e4d2a4;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #9c711f; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #fbf3dc;
    --table-row-hover-background: #f6e7ba; --table-cell-border: #e4d2a4;
}

/* Файл theme_rosewood.css */

:root[data-app-theme="rosewood"], [data-app-theme-preview="rosewood"] {
    --app-background: #1d1718; --surface-primary: #282021;
    --surface-secondary: #342829; --surface-elevated: rgba(37, 42, 48, 0.97);
    --surface-muted: #2e2425; --input-background: #282021;
    --sidebar-background: linear-gradient(180deg, #643a3f 0%, #392327 100%);
    --sidebar-background-solid: #4e2d32; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #f2d7d3;
    --text-primary: #f6efed; --text-secondary: #cdb9b6;
    --text-muted: #9d8582; --border-color: #5a4748;
    --primary-color: #b9675e; --primary-hover: #cc766c;
    --active-tab-background: #d4964f; --active-tab-hover: #e3a55e;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #b9675e 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #342829;
    --scrollbar-thumb: #796163; --info-background: #3a292c;
    --info-border: #785055; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #5a4748;
    --divider-soft: color-mix(in srgb, #5a4748 58%, #282021);
    --tab-border-color: #5a4748; --tab-panel-separator: #5a4748;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #704148; --table-header-text: #ffffff;
    --table-row-background: #282021; --table-row-alt-background: #302526;
    --table-row-hover-background: #433032; --table-cell-border: #5a4748;
}

/* Файл theme_cloud.css */

:root[data-app-theme="cloud"], [data-app-theme-preview="cloud"] {
    --app-background: #f2f6fa; --surface-primary: #ffffff;
    --surface-secondary: #e7eef5;
    --surface-elevated: rgba(255, 255, 255, 0.97); --surface-muted: #f8fafc;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #7896b1 0%, #536f8a 100%);
    --sidebar-background-solid: #66839e; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #365470;
    --text-primary: #243746; --text-secondary: #566b7c;
    --text-muted: #7d909f; --border-color: #c8d6e2;
    --primary-color: #5d93bf; --primary-hover: #477ba5;
    --active-tab-background: #e2813c; --active-tab-hover: #c76b2d;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #5d93bf 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #e7eef5;
    --scrollbar-thumb: #9eb2c2; --info-background: #eaf4fb;
    --info-border: #b3ccdf; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #c8d6e2;
    --divider-soft: color-mix(in srgb, #c8d6e2 58%, #ffffff);
    --tab-border-color: #c8d6e2; --tab-panel-separator: #c8d6e2;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #5b7892; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #edf3f8;
    --table-row-hover-background: #e0edf6; --table-cell-border: #c8d6e2;
}

/* Файл theme_steel.css */

:root[data-app-theme="steel"], [data-app-theme-preview="steel"] {
    --app-background: #25292d; --surface-primary: #30353a;
    --surface-secondary: #3a4147; --surface-elevated: rgba(37, 42, 48, 0.97);
    --surface-muted: #343a40; --input-background: #30353a;
    --sidebar-background: linear-gradient(180deg, #505b65 0%, #333b43 100%);
    --sidebar-background-solid: #424c55; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #e1edf3;
    --text-primary: #f2f5f6; --text-secondary: #c0c9ce;
    --text-muted: #909ba1; --border-color: #596269;
    --primary-color: #6da2bf; --primary-hover: #7eb5d1;
    --active-tab-background: #d77d43; --active-tab-hover: #e78d51;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #6da2bf 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #3a4147;
    --scrollbar-thumb: #707b82; --info-background: #35434b;
    --info-border: #617783; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #596269;
    --divider-soft: color-mix(in srgb, #596269 58%, #30353a);
    --tab-border-color: #596269; --tab-panel-separator: #596269;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #4d626e; --table-header-text: #ffffff;
    --table-row-background: #30353a; --table-row-alt-background: #373d42;
    --table-row-hover-background: #454d53; --table-cell-border: #596269;
}

/* Файл theme_amber.css */

:root[data-app-theme="amber"], [data-app-theme-preview="amber"] {
    --app-background: #fff6e6; --surface-primary: #fffdf9;
    --surface-secondary: #f4dfbd;
    --surface-elevated: rgba(255, 255, 255, 0.97); --surface-muted: #fffaf1;
    --input-background: #fffdf9;
    --sidebar-background: linear-gradient(180deg, #b96d20 0%, #7b4418 100%);
    --sidebar-background-solid: #94531a; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #6d3f19;
    --text-primary: #3d2b1f; --text-secondary: #705541;
    --text-muted: #957965; --border-color: #dfc29f;
    --primary-color: #d58427; --primary-hover: #b96b17;
    --active-tab-background: #326f9c; --active-tab-hover: #275c83;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #d58427 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #f4dfbd;
    --scrollbar-thumb: #c6a075; --info-background: #ffedcf;
    --info-border: #deb77c; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #dfc29f;
    --divider-soft: color-mix(in srgb, #dfc29f 58%, #fffdf9);
    --tab-border-color: #dfc29f; --tab-panel-separator: #dfc29f;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #83501f; --table-header-text: #ffffff;
    --table-row-background: #fffdf9; --table-row-alt-background: #f9ead2;
    --table-row-hover-background: #f3d9b0; --table-cell-border: #dfc29f;
}

/* Файл theme_aqua.css */

:root[data-app-theme="aqua"], [data-app-theme-preview="aqua"] {
    --app-background: #eefafb; --surface-primary: #ffffff;
    --surface-secondary: #dff3f4;
    --surface-elevated: rgba(255, 255, 255, 0.97); --surface-muted: #f7fcfd;
    --input-background: #ffffff;
    --sidebar-background: linear-gradient(180deg, #238da1 0%, #176477 100%);
    --sidebar-background-solid: #1e7688; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #155d70;
    --text-primary: #173943; --text-secondary: #496b73;
    --text-muted: #729099; --border-color: #b8dce1;
    --primary-color: #2ca2b6; --primary-hover: #1f8497;
    --active-tab-background: #ef7f35; --active-tab-hover: #d66b25;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #2ca2b6 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #dff3f4;
    --scrollbar-thumb: #82b8c1; --info-background: #e3f7fa;
    --info-border: #9fd4dc; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #b8dce1;
    --divider-soft: color-mix(in srgb, #b8dce1 58%, #ffffff);
    --tab-border-color: #b8dce1; --tab-panel-separator: #b8dce1;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #207489; --table-header-text: #ffffff;
    --table-row-background: #ffffff; --table-row-alt-background: #eaf7f8;
    --table-row-hover-background: #d8eff2; --table-cell-border: #b8dce1;
}

/* Файл theme_monochrome.css */

:root[data-app-theme="monochrome"],
[data-app-theme-preview="monochrome"] {
    --app-background: #151515; --surface-primary: #222222;
    --surface-secondary: #2d2d2d; --surface-elevated: rgba(37, 42, 48, 0.97);
    --surface-muted: #272727; --input-background: #222222;
    --sidebar-background: linear-gradient(180deg, #3b3b3b 0%, #1f1f1f 100%);
    --sidebar-background-solid: #2b2b2b; --sidebar-text: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.80); --heading-color: #f5f5f5;
    --text-primary: #f7f7f7; --text-secondary: #cccccc;
    --text-muted: #999999; --border-color: #4c4c4c;
    --primary-color: #d7d7d7; --primary-hover: #ffffff;
    --active-tab-background: #d77a32; --active-tab-hover: #e88b43;
    --active-tab-text: #ffffff;
    --focus-ring: color-mix(in srgb, #d7d7d7 28%, transparent);
    --overlay-background: rgba(18, 24, 31, 0.46); --scrollbar-track: #2d2d2d;
    --scrollbar-thumb: #707070; --info-background: #2b2b2b;
    --info-border: #5b5b5b; --app-shadow: 0 8px 22px rgba(20, 32, 44, 0.10);
    --divider-color: #4c4c4c;
    --divider-soft: color-mix(in srgb, #4c4c4c 58%, #222222);
    --tab-border-color: #4c4c4c; --tab-panel-separator: #4c4c4c;
    --sidebar-tab-background: rgba(255, 255, 255, 0.12);
    --sidebar-tab-border: rgba(255, 255, 255, 0.23);
    --sidebar-tab-hover: rgba(255, 255, 255, 0.20);
    --table-header-background: #454545; --table-header-text: #ffffff;
    --table-row-background: #222222; --table-row-alt-background: #292929;
    --table-row-hover-background: #383838; --table-cell-border: #4c4c4c;
}

/* Файл theme_base.css */

html, body, #root {
    background: var(--app-background); color: var(--text-1);
}

body {
    transition: background-color 0.18s ease, color 0.18s ease;
}

::selection {
    background: color-mix(in srgb, var(--accent) 34%, transparent);
    color: var(--text-1);
}

* {
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

input, select, textarea {
    accent-color: var(--accent);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select, textarea {
    padding: var(--ui-input-padding-block) var(--ui-input-padding-inline);
    background-color: var(--input-background); color: var(--text-1);
    border-color: var(--border);
}

input::placeholder, textarea::placeholder {
    color: var(--text-3);
}

.top-panel__row input.input_text[type="text"] {
    width: 150px; margin: 0;
    padding: 0; border: 0;
    background: transparent; color: var(--on-accent);
    box-shadow: none; font-weight: 400;
    text-align: center;
}

.tab-content, .tab-content-wrapper, .tab-content-item, .container,
.page_authorization, .auth-pd-side, .office-workspace,
.developer-settings-root {
    background-color: var(--app-background); color: var(--text-1);
}

.modal-content, .drawer-content {
    background-color: var(--surface-primary); color: var(--text-1);
    border-color: var(--border);
}

.app-theme-preview, [data-app-theme-preview] {
    --preview-surface: var(--surface-primary);
    --preview-surface-secondary: var(--surface-secondary);
    --preview-sidebar: var(--sidebar-background-solid);
    --preview-accent: var(--accent); --preview-text: var(--text-1);
    --preview-muted: var(--text-3);
}

hr {
    border: 0; border-top: 1px solid var(--divider-color);
}

fieldset {
    border-color: var(--divider-color);
}

.modal-content, .drawer-content {
    border-color: var(--divider-color);
}

/* Файл common_layout.css */

/* Единая белая карточка интерфейса. Визуальные свойства block_1
   задаются только здесь. */

.block_1 {
    box-sizing: border-box; min-width: 0;
    margin: 0 0 var(--spacing_large);
    padding: var(--font_size_0) var(--font_size_0)
        calc(var(--font_size_0) + var(--spacing_micro));
    border: 1px solid var(--divider-color); border-radius: var(--radius_xl);
    background: var(--surface-primary); color: var(--text-1);
    box-shadow: var(--shadow); font-family: var(--font_family_interface);
    font-size: var(--font_size_0); line-height: 1.35;
}

.block_1 :is(h1, h2, h3, h4, h5, h6), .block_1 .block_1__title {
    margin: 0 0 var(--font_size_0); color: var(--blue-navy) !important;
    font-size: var(--font_size_0) !important; font-weight: 700;
    line-height: 1.25;
}

.tab-content-item.active:has(> .management-workspace),
.tab-content-item.active:has(> .company-information-root),
.tab-content-item.active:has(> .meetings-root),
.tab-content-item.active:has(> .taxes-and-reporting-root) {
    flex: 1 1 auto; min-height: 0;
    height: 100%; overflow: hidden;
}

.management-workspace, .company-information-root,
.taxes-and-reporting-root {
    display: flex; width: 100%;
    max-width: 100%; height: 100%;
    min-height: 0; flex-direction: column;
    box-sizing: border-box;
}

.management-workspace > .tab-widget-container,
.company-information-root > .tab-widget-container,
.taxes-and-reporting-root > .tab-widget-container {
    flex: 1 1 auto; min-height: 0;
}

.tab-content .tab-content-wrapper.scrollable >
.tab-content-item.active:has(> .management-workspace),
.tab-content .tab-content-wrapper.scrollable >
.tab-content-item.active:has(> .company-information-root),
.tab-content .tab-content-wrapper.scrollable >
.tab-content-item.active:has(> .meetings-root),
.tab-content .tab-content-wrapper.scrollable >
.tab-content-item.active:has(> .taxes-and-reporting-root) {
    overflow: hidden !important; scrollbar-gutter: auto;
}

.workspace-card__title {
    margin: 0 0 var(--font_size_0); color: var(--blue-navy);
    font-size: var(--font_size_0); font-weight: 700;
    line-height: 1.15;
}

.workspace-card__title-group {
    min-width: 0; gap: calc(var(--spacing_small) / 2);
    margin-bottom: var(--font_size_0);}

.workspace-card__title-group > :last-child {
    margin-bottom: 0;
}

.workspace-card__subtitle, .workspace-card__intro {
    color: var(--text-2); font-size: var(--font_size_0);
}

.workspace-card__intro {
    margin-top: 0;
}

.workspace-form-grid--three {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
}

.workspace-form-grid--two {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
}

.workspace-field, .house-details-params, .house-details-files,
.meeting-field, .meeting-answers-block, .meeting-question-list {
    display: flex; min-width: 0;
    flex-direction: column; gap: var(--spacing_small);
}

.workspace-field > span, .house-details-paramrow > span,
.company-information__field > span, .meeting-field > span,
.meeting-answers-block > span {
    color: var(--text-3); font-size: var(--font_size_0);
    font-weight: 600;
}

.ui-form-control, .company-information__field input,
.company-information__field select, .meeting-field input,
.meeting-answer-row input, .integrations-house-card select,
.integration-card input:not([type="checkbox"]),
.integration-card select, .outgoing-settings__delivery-row select,
.debtor-card-page__field input, .debtor-card-page__field select,
.accounting-report-page__toolbar input {
    width: 100%; min-width: 0;
    min-height: var(--button-min-height); height: auto;
    box-sizing: border-box; margin: 0;
    padding: var(--button-padding-block) var(--button-padding-inline);
    outline: none; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1); font-family: var(--font_family_interface);
    font-size: var(--font_size_0); line-height: 1.35;
}

.workspace-textarea {
    width: 100%; min-width: 0;
    min-height: calc(var(--font_size_0) * 5); height: auto;
    box-sizing: border-box; margin: 0;
    padding: var(--spacing_small) var(--button-padding-inline); outline: none;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
    line-height: 1.35; resize: vertical;
}

.ui-form-control:focus, .workspace-textarea:focus,
.company-information__field input:focus,
.company-information__field select:focus,
.company-information__field textarea:focus, .meeting-field input:focus,
.meeting-field textarea:focus, .meeting-answer-row input:focus {
    border-color: var(--accent); outline: none;
}

.company-information__row-actions, .meetings-toolbar, .meeting-answer-row,
.meeting-question-actions {
    display: flex; align-items: center;
    flex-wrap: wrap; gap: var(--spacing_small);
}

.workspace-table-wrap {
    min-width: 0; overflow: auto;
    scrollbar-gutter: stable;
}

.counters-toolbar button:disabled,
.counters-import-panel__submit:disabled,
.counterparty-driverbtn:disabled, .house-details-savebtn:disabled,
.pad-btn-approve:disabled, .pad-btn-chat:disabled,
.pad-btn-reject:disabled, .driver_messages_send:disabled {
    cursor: not-allowed; opacity: 0.55;
}

.check_window_table, .personnel-hires__table,
.ndfl-page__table, .meter-readings-history-table {
    width: 100%; border-collapse: collapse;
}

@media (max-aspect-ratio: 1 / 1), (max-width: 900px) {
    .workspace-form-grid--three, .workspace-form-grid--two {
        grid-template-columns: 1fr;
    }
}

/* Файл common_patterns.css */

/* Повторяемые интерфейсные паттерны собраны здесь. */

.text-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.grid-layout {
    display: grid;
}

.gap-default {
    gap: var(--font_size_0);
}

.min-width-0 {
    min-width: 0;
}

.flex-align-center {
    display: flex;
    align-items: center;
}

.gap-small {
    gap: var(--spacing_small);
}

.full-width {
    width: 100%;
}

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

.gap-8 {
    gap: 8px;
}

.hidden {
    display: none !important;
}

.justify-end {
    justify-content: flex-end;
}

.grid-span-all {
    grid-column: 1 / -1;
}

.flex-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.overflow-hidden {
    overflow: hidden;
}

.min-height-0 {
    min-height: 0;
}

.justify-between {
    justify-content: space-between;
}

.gap-10 {
    gap: 10px;
}

.align-self-start {
    align-self: flex-start;
}

.position-relative {
    position: relative;
}

.flex-fill {
    flex: 1 1 auto;
    min-height: 0;
}

.text-muted {
    color: var(--text-3);
    font-size: var(--font_size_caption);
}

.empty-state-spacious {
    padding: calc(var(--font_size_0) * 2);
    color: var(--text-3);
    text-align: center;
}

.flex-wrap-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing_small);
}

.gap-6 {
    gap: 6px;
}

.flex-static {
    flex: 0 0 auto;
}

.flex-grow {
    flex: 1;
    min-height: 0;
}

.text-secondary-caption {
    color: var(--text-2);
    font-size: var(--font_size_caption);
    line-height: 1.35;
}

.empty-state-compact {
    padding: var(--font_size_0);
    color: var(--text-3);
    text-align: center;
}

.section-heading {
    color: var(--blue-navy);
    font-size: var(--font_size_1);
    font-weight: 600;
}

.empty-state-regular {
    padding: 18px;
    color: var(--text-3);
    text-align: center;
}

.block_1--interactive {
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, transform .12s
        ease;
}

.block_1--interactive:hover {
    border-color: var(--accent);
    box-shadow: 0 10px 26px color-mix(in srgb, var(--accent) 14%, transparent);
    transform: translateY(-2px);
}

.block_1--interactive:focus-visible {
    outline: 3px solid var(--focus-ring); outline-offset: 2px;
}

.block_1--selected {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--focus-ring), var(--shadow);
}

.settings-fieldset {
    display: grid; gap: var(--spacing_medium);
    margin: var(--font_size_1) 0 0; padding: var(--spacing_relaxed);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
}

.settings-fieldset > legend {
    padding: 0 var(--spacing_compact); color: var(--text-1);
    font-size: var(--font_size_0); font-weight: 700;
}

.office-query-steps__list, .office-dataflow-queries__list {
    display: flex; min-height: 0;
    flex: 1 1 auto; flex-direction: column;
    gap: var(--spacing_tight); padding: var(--spacing_dense);
    overflow-y: auto;
}

/* Полноэкранная геометрия рабочих разделов. */

.accounting-tab-root, .accounting-report-page, .accounting-entries,
.debtor-card-page, .purchases-and-sales-table-page {
    display: flex; width: 100%;
    height: 100%; min-width: 0;
    min-height: 0; box-sizing: border-box;
    flex-direction: column; overflow: hidden;
}

/* Классы с динамическим применением. */

.meter-readings-drawer-loading {
    display: flex; flex-direction: column;
    align-items: center;
}

.app-theme-card, .bank-dashboard__metric, .developer-dashboard__chart-panel,
.developer-dashboard__metric, .developer-log-summary, .developer-preview,
.developer-server, .developer-server__chart, .developer-table-list,
.doc-card__related-table-panel, .driver_messages_settings,
.form-field-vertical, .incoming-resolutions, .incoming-resolutions__content,
.incoming-resolutions__resolution-meta, .incoming-resolutions__tree,
.info_blocks, .ndfl-page__table-wrap, .office-dashboard-object,
.office-dataflow-combine-panel__query, .office-dataflow-queries__item,
.office-ribbon__group, .office-sheet-context-menu, .office-workspace__panel,
.options-container, .payment-order-templates__counterparty,
.payment-order-templates__item, .radio-button-list, .radio-content,
.receipt_upload_panel, .sale-templates-panel__editor,
.sale-templates-panel__list, .sale-templates-panel__template,
.service-card__body--pivot, .services-table-layout__actions,
.table-context-menu, .table-widget, .top-panel,
.warehouse-entry-form__field {
    display: flex; flex-direction: column;
}

.accounting-opening-balances__summary, .add_row_column__button,
.bank-dashboard__header-meta, .bank-dashboard__widget-title, .block_2,
.counterparty-page_loading, .developer-app-toolbar,
.developer-app-toolbar__switches, .developer-column-name,
.developer-dashboard__toolbar, .developer-diagram-tools,
.developer-server__legend, .developer-summary-card,
.developer-toolbar__modes, .doc-card__header-actions, .doc-card__meta,
.doc-card__modal-actions, .driver_voice_recorder,
.incoming-resolutions__actions, .incoming-resolutions__meta-row,
.incoming-resolutions__resolution-head,
.incoming-resolutions__section-title, .lk-theme-option, .loading,
.meter-readings-drawer-header-actions, .office-dashboard-navigator,
.office-ribbon__group-row, .office-toolbar-buttons, .office-workspace__logo,
.pivot-table-error, .radio-label, .search, .tab-widget-empty-content {
    display: flex; align-items: center;
}

.accounting-report-page__warnings, .accounting-report__row,
.approval-sheet-employees, .bank-dashboard__metrics,
.bank-dashboard__widgets, .company-information__field,
.developer-column-row, .developer-cpu-drill__layout,
.developer-dashboard__integration-grid,
.developer-dashboard__integration-list, .developer-server__cards,
.developer-storage__bottom-grid, .developer-storage__cards,
.developer-storage__main, .developer-summary-grid,
.doc-editor__reviewer-item, .document-showcase__filters,
.document-showcase__grid, .meter-readings-settings,
.meter-readings-settings__item, .meter_readings_compare_panel,
.meter_readings_import_panel, .office-formula-suggestion,
.office-ribbon-menu__list, .profile-photo-approvals__card,
.sale-templates-panel__layout, .services-table-layout,
.tab-layout-settings__tab, .warehouse-entry-form {
    display: grid;
}

.doc-card__attachment-local-open {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

/* Единый индикатор длительной загрузки интерфейса. */

.PDFViewer-spinner, .file-viewer__spinner, .lk-content-loader__spinner,
.meter-readings-drawer-spinner {
    width: 38px; height: 38px;
    box-sizing: border-box; flex: 0 0 38px;
    border: 4px solid var(--border); border-top-color: var(--accent);
    border-radius: 50%; animation: app-loading-spin .8s linear infinite;
}

@keyframes app-loading-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .PDFViewer-spinner, .file-viewer__spinner,
    .lk-content-loader__spinner, .meter-readings-drawer-spinner {
        animation-duration: 1.6s;
    }
}

/* Файл toast.css */

.toast-stack {
    position: fixed; top: 12px;
    left: 12px; z-index: 9999;
    gap: 10px;}

.toast {
    background: #1f9d57; color: var(--on-accent);
    padding: 10px 14px; border-radius: 10px;
    box-shadow: 0 10px 25px rgba(0,0,0,.18); width: fit-content;
    max-width: min(420px, calc(100vw - 24px)); max-height: calc(100dvh - 24px);
    box-sizing: border-box; overflow: auto;
    overflow-wrap: anywhere; word-break: break-word;
    white-space: pre-wrap; font-size: var(--font_size_caption);
    line-height: 1.25; will-change: transform, opacity, background-color;
}

.toast--error {
    background: var(--accent-red);
}

/* быстро и плавно выезжает/уезжает */

.toast--enter {
        animation: toast-in 180ms ease-out both, toast-blink 360ms ease-in-out
            180ms 2;
    }

.toast--leave {
    animation: toast-out 180ms ease-in both;
}

@keyframes toast-in {
    from { transform: translateX(-110%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

@keyframes toast-out {
    from { transform: translateX(0); opacity: 1; }
    to { transform: translateX(-110%); opacity: 0; }
}

@keyframes toast-blink {
    0% { filter: brightness(1); }
    50% { filter: brightness(1.6); }
    100% { filter: brightness(1); }
}

/* Файл DriverPanel.css */

.drawer-overlay {
    position: fixed; inset: 0;
    z-index: 999; background: var(--text-1);
    opacity: 0.15;
}

.drawer-panel {
    position: fixed; top: 0;
    right: 0; display: flex;
    width: 58%; max-width: 100vw;
    height: 100dvh; box-sizing: border-box;
    flex-direction: column; overflow: hidden;
    background: var(--bg-2); color: var(--blue-navy);
    font-size: var(--font_size_0); z-index: 1000;
    transform: translateX(100%); transition: transform 0.25s ease;
}

.drawer-panel.open {
    transform: translateX(0); box-shadow: var(--shadow);
}

.drawer-header {
    display: flex; flex-shrink: 0;
    align-items: center; justify-content: space-between;
    padding: var(--spacing_small) var(--font_size_0);
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_0); font-weight: 600;
}

.drawer-header button {
    border: none; background: transparent;
    color: var(--on-accent); font-size: var(--font_size_1);
    cursor: pointer;
}

.drawer-header button:hover {
    background: transparent; color: var(--on-accent);
    transform: none; box-shadow: none;
}

.drawer-body {
    flex: 1; min-height: 0;
    box-sizing: border-box; padding: var(--font_size_0);
    padding-bottom: calc(var(--font_size_0) / 2); color: var(--blue-navy);
    font-size: var(--font_size_0);
}

.drawer-body--scrollable {
    overflow: auto;
}

.drawer-body--fixed {
    overflow: hidden;
}

.drawer-body :is(
    h1, h2, h3, h4, h5, h6
):not(.doc-editor *) {
    margin-top: 0; color: var(--blue-navy);
    font-size: var(--font_size_1); line-height: 1.2;
}

.drawer-body :is( label, p, span, input, select, textarea, td, th
):not(.doc-editor *) {
    font-size: var(--font_size_0);
}

.drawer-body :is( label > span, .label_info, .label-info
):not(.doc-editor *) {
    color: var(--text-3);
}

.drawer-body :is( input:not([type="checkbox"]):not([type="radio"]),
select, textarea ):not(.doc-editor *) {
    box-sizing: border-box; margin: 0;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--blue-navy);
}

.drawer-body :is( input:not([type="checkbox"]):not([type="radio"]),
select, textarea ):not(.doc-editor *):focus {
    border-color: var(--accent); outline: none;
    box-shadow: 0 0 0 3px rgba(61, 132, 196, 0.14);
}

@media (orientation: portrait) {
    .drawer-panel {
        width: 98%;
    }
}

@media (max-width: 762px) {
    .drawer-panel {
        width: 98%;
    }
}

.drawer-header__main {
    display: flex; min-width: 0;
    flex: 1 1 auto; align-items: center;
    gap: var(--font_size_0);
}

.drawer-title {
    flex: 0 0 auto; white-space: nowrap;
}

.drawer-header__actions {
    min-width: 0; flex: 1 1 auto;
    gap: var(--spacing_small);}

.drawer-header__actions button, .drawer-header__actions input {
    min-height: 32px; box-sizing: border-box;
}

@media (max-width: 762px) {
    .drawer-header {
        align-items: flex-start;
    }
    .drawer-header__main {
        flex-direction: column; align-items: flex-start;
    }
    .drawer-header__actions {
        width: 100%; flex-wrap: wrap;
    }
}

@media (orientation: landscape) {
    .drawer-panel.document-text-drawer {
        width: 85%;
    }
}

/* Файл PDFViewer.css */

.PDFViewer-container {
    width: 100%; height: 100%;
    overflow-y: auto; overflow-x: hidden;
    padding: var(--spacing_small); box-sizing: border-box;
    background: #f3f4f6; display: flex;
    flex-direction: column; align-items: center;
}

/* Сам Document */

.PDFViewer-container .react-pdf__Document {
    display: flex; flex-direction: column;
    align-items: center; width: auto;
    max-width: 100%;
}

/* Обёртка каждой страницы */

.PDFViewer-page {
    width: 100%; display: flex;
    justify-content: center; margin: 0 0 var(--spacing_small) 0;
    overflow: hidden;
}

/* Страница */

.PDFViewer-container .react-pdf__Page {
    display: flex; justify-content: center;
    align-items: flex-start; max-width: 100%;
    background: white;
}

/* Canvas */

.PDFViewer-container .react-pdf__Page__canvas {
    display: block; max-width: 100%;
    height: auto !important; margin: 0 auto;
}

/* Текстовый слой и слой аннотаций */

.PDFViewer-container .react-pdf__Page__textContent,
.PDFViewer-container .react-pdf__Page__annotations {
    left: 50% !important; transform: translateX(-50%);
    max-width: 100%;
}

.PDFViewer-loading, .PDFViewer-error {
    width: 100%; min-height: 240px;
    display: flex; align-items: center;
    justify-content: center; text-align: center;
    padding: var(--font_size__2); box-sizing: border-box;
}

.PDFViewer-loading {
    color: var(--text-2);
}

.PDFViewer-error-link {
    margin-top: var(--spacing_small);
}

.PDFViewer-webview-image {
    display: block; width: 100%;
    height: auto; max-width: 900px;
    margin: 0 auto; background: var(--surface-primary);
}

/* Файл attachment_list.css */

/* ── Вложения ── */


.doc-card__attachments-tab {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-sizing: border-box;
}

.doc-card__attachments-tab > .doc-card__related-row-head {
    border-bottom: 0 !important;
    box-shadow: none !important;
}

.doc-card__attachments-tab > .doc-card__attachments,
.doc-card__attachments-tab > .doc-card__empty {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.doc-card__attachments-tab .doc-card__empty,
.doc-card__attachments-title {
    font-size: var(--font_size_0);
    line-height: 1.45;
}

.doc-card__file-list {
    gap: var(--spacing_small);
    margin: 0;
    padding: 0;
    list-style: none;
}

.doc-card__file-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    min-width: 0;
    padding: var(--font_size_1);
    border: 0;
    border-radius: 0;
    background: transparent;
    transition: background 0.15s;
    box-sizing: border-box;
}

.doc-card__file-item:hover {
    background: var(--bg-1);
}

.doc-card__file-icon {
    width: calc(var(--font_size_0) * 2);
    height: calc(var(--font_size_0) * 2);
    flex-shrink: 0;
    flex-grow: 0;
}

.doc-card__file-name {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--text-3);
    font-size: var(--font_size_0);
    font-weight: 500;
}

/* Кнопка скачивания доков — прижата к правому краю строки */

.doc-card__file-download {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    flex-grow: 0;
    margin-left: auto;
    padding: 8px;
    border: none;
    background: transparent;
    color: var(--text-3);
    cursor: pointer;
}

.doc-card__file-download:hover {
    color: var(--accent);
}

.doc-card__file-delete {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    flex-grow: 0;
    padding: 8px;
    border: none;
    background: transparent;
    color: var(--text-3);
    cursor: pointer;
}

.doc-card__file-delete:hover {
    color: var(--accent-red);
}

/* ── Подпись под списком ── */

.doc-card__attachments-footer {
    display: inline-block;
    margin-top: calc(var(--spacing_small) / 2);
    padding: var(--spacing_small);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--text-3);
    font-size: var(--font_size_0);
}

.doc-card__empty--error {
    color: var(--accent-red);
    font-style: normal;
}

@media (max-width: 760px) {
    /* Контейнер списка не вылезает за карточку */
    .doc-card__attachments,
    .doc-card__file-list {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
        box-sizing: border-box;
    }

    /* Строка одного файла */
    .doc-card__file-item {
        display: flex;
        align-items: flex-start;
        gap: 6px;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding: 6px 4px;
        box-sizing: border-box;
    }

    /* Иконка PDF — фикс, не ужимается */
    .doc-card__file-icon {
        width: 22px;
        height: 22px;
        flex-shrink: 0;
        flex-grow: 0;
    }

    /* Имя — забирает оставшееся место и переносится */
    .doc-card__file-name {
        flex: 1 1 0;
        min-width: 0;
        overflow: visible;
        color: var(--text-3);
        font-size: var(--font_size_0);
        line-height: 1.3;
        text-overflow: clip;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
        hyphens: none;
    }

    /* Кнопки скачивания/удаления — фикс и не сжимаются */
    .doc-card__file-download,
    .doc-card__file-delete {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        flex-shrink: 0;
        flex-grow: 0;
        margin: 0;
        padding: 4px;
        box-sizing: border-box;
    }

    .doc-card__file-download {
        margin-left: auto;
    }

    .doc-card__file-download svg,
    .doc-card__file-delete svg {
        width: 18px;
        height: 18px;
        flex-shrink: 0;
    }
}

/* Файл document_viewers.css */

/* ── Просмотрщики файлов в DriverPanel ── */

.file-viewer__message {
    justify-content: center; gap: 12px;
    padding: 24px; text-align: center;
    color: var(--text-2, #57606a);}

.file-viewer__message--error {
    color: #b42318;
}

.file-viewer__text {
    margin: 0; max-width: 360px;
    line-height: 1.4;
}


.file-viewer__download-btn {
    padding: 8px 16px; border: 1px solid #0078d4;
    border-radius: 6px; background: #0078d4;
    color: #fff; font-size: var(--font_size_caption);
    cursor: pointer;
}

.file-viewer__download-btn:disabled {
    opacity: 0.5; cursor: default;
}

/* docx */

.docx-viewer {
    width: 100%; overflow: auto;
    background: transparent;
}

.docx-viewer .docx-wrapper {
    padding: 5px; background: transparent;
}

.docx-viewer .docx {
    background: #fff;
}

/* excel — оформление под Excel: зелёные акценты, сетка,
   заголовки столбцов (A, B, …) и номера строк */

.excel-viewer {
    width: 100%;}

.excel-viewer__tabs {
    display: flex; flex-wrap: wrap;
    gap: 4px; padding: 8px;
    background: #f3f5f4; border-bottom: 2px solid #217346;
}

.excel-viewer__tab {
    padding: 4px 12px; border: 1px solid #cfd8d3;
    border-bottom: none; border-radius: 4px 4px 0 0;
    background: #e8efe9; color: #217346;
    cursor: pointer; font-size: var(--font_size_0);
    font-weight: 600;
}

.excel-viewer__tab.is-active {
    background: #217346; border-color: #217346;
    color: #fff;
}

.excel-viewer__table-wrap {
    overflow: auto; max-width: 100%;
    background: #fff;
}

.excel-viewer__table {
    border-collapse: collapse; font-size: var(--font_size_0);
    color: #1f2328;
}

.excel-viewer__table td {
    border: 1px solid #d4d4d4; padding: 3px 8px;
    white-space: nowrap; max-width: 320px;
    overflow: hidden; text-overflow: ellipsis;
    background: #fff;
}

.excel-viewer__table tbody tr:hover td {
    background: #eef6f0;
}

/* Заголовки столбцов (буквы) — прибиты к верху */

.excel-viewer__colhead, .excel-viewer__corner {
    position: sticky; top: 0;
    z-index: 2; background: #f1f4f2;
    border: 1px solid #cfd8d3; color: #4a5a52;
    font-weight: 600; text-align: center;
    padding: 3px 8px;
}

/* Номера строк — прибиты к левому краю */

.excel-viewer__rowhead {
    position: sticky; left: 0;
    z-index: 1; background: #f1f4f2;
    border: 1px solid #cfd8d3; color: #4a5a52;
    font-weight: 600; text-align: center;
    padding: 3px 8px; min-width: 38px;
}

/* Угловая ячейка — поверх и строк, и столбцов */

.excel-viewer__corner {
    left: 0; z-index: 3;
    min-width: 38px;
}

.excel-viewer__more {
    align-self: center; margin: 12px 0;
}

/* Файл image_and_compact_viewers.css */

/* image */

.image-viewer {
    width: 100%; height: 100%;
    min-width: 0;
    min-height: 0;}

.image-viewer__toolbar {
    gap: 6px; padding: 6px;
    border-bottom: 1px solid var(--border, #d0d7de); flex: 0 0 auto;
    flex-wrap: wrap;}

.image-viewer__toolbar button {
    min-width: 30px; height: 28px;
    padding: 0 7px; border: 1px solid var(--border, #d0d7de);
    border-radius: 4px; background: var(--bg-1, #fff);
    color: var(--text-1, #1f2328); cursor: pointer;
    font-size: var(--font_size_button); line-height: 1;
}

.image-viewer__toolbar .image-viewer__wide-button {
    width: auto;
}

.image-viewer__scale {
    margin-left: 4px; color: var(--text-2, #57606a);
    font-size: var(--font_size_0);
}

.image-viewer__canvas {
    position: relative; overflow: hidden;
    min-width: 0; min-height: 0;
    flex: 1 1 auto; place-items: center;
    background:
        repeating-conic-gradient(#f0f0f0 0% 25%, #fafafa 0% 50%)
        50% / 20px 20px;
    cursor: grab; touch-action: none;
    overscroll-behavior: contain;}

.image-viewer__canvas:active {
    cursor: grabbing;
}

.image-viewer__img {
    display: block; max-width: none;
    max-height: none; transform-origin: center center;
    user-select: none; -webkit-user-drag: none;
    will-change: transform;
}

@media (orientation: portrait) {
    .image-viewer__toolbar {
        gap: 4px; padding: 4px;
    }
    .image-viewer__toolbar button {
        height: 26px; padding-inline: 5px;
    }
}

.docx-viewer .docx-wrapper {
    padding: 0; background: #ffffff;
}

.docx-viewer .docx {
    margin: 0 auto; box-shadow: none;
}

.csv-viewer .excel-viewer__table-wrap {
    background: #ffffff;
}

/* Компактный DocumentAttachments для сообщений мессенджера. */

.doc-card__attachments--compact {
    width: 100%; margin-top: 6px;
}

.doc-card__attachments--compact .doc-card__file-list {
    width: 100%;
}

.doc-card__attachments--compact .doc-card__file-item {
    align-items: center; gap: 6px;
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    cursor: pointer;
}

.doc-card__attachments--compact .doc-card__file-item:hover {
    background: var(--bg-2);
}

.doc-card__attachments--compact .doc-card__file-icon {
    width: 28px; height: 28px;
}

.doc-card__attachments--compact .doc-card__file-name {
    color: var(--text-1); font-size: var(--font_size_0);
    line-height: 1.2;
}

.doc-card__attachments--compact .doc-card__file-download {
    width: 30px; height: 30px;
    padding: 5px;
}

.doc-card__attachments--compact .doc-card__attachments-footer {
    display: none;
}

.drawer-overlay.document-attachment-overlay--transparent {
    background: transparent; opacity: 0;
}

.document-attachment-viewer .drawer-body {
    padding: 0; overflow: hidden;
}

.document-attachment-viewer .file-viewer__message {
    box-sizing: border-box; height: 100%;
}

.document-attachment-viewer .drawer-body {
    display: flex; min-height: 0;
    flex-direction: column;
}

.document-attachment-viewer .drawer-body > * {
    min-height: 0; flex: 1 1 auto;
}

.document-attachment-viewer .docx-viewer,
.document-attachment-viewer .excel-viewer,
.document-attachment-viewer .csv-viewer,
.document-attachment-viewer .PDFViewer-container {
    height: 100%; max-height: 100%;
}

@media (min-aspect-ratio: 1/1) {
    .drawer-panel.document-attachment-viewer {
        width: 80%;
    }
}

/* Файл DocumentAttachments.css */

/* Файл Button.css */

.btn {
    display: inline-flex; align-items: center;
    justify-content: center; gap: var(--spacing_compact);
    min-width: 0; min-height: var(--button-min-height);
    box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid transparent; border-radius: var(--radius_medium);
    color: var(--on-accent); background: var(--accent);
    font-family: var(--font_family_interface);
    font-size: var(--font_size_button); font-weight: 400;
    text-align: center; text-decoration: none;
    white-space: nowrap; cursor: pointer;
    transition:
        background-color .16s ease,
        border-color .16s ease,
        box-shadow .16s ease,
        transform .06s ease;
}

.btn__action-icon {
    display: inline-flex; align-items: center;
    justify-content: center; font-size: var(--font_size_caption);
    line-height: 1;
}

.btn:hover:not(:disabled):not(.disabled) {
    background: var(--accent-blue); box-shadow: var(--shadow);
}

.btn:active:not(:disabled):not(.disabled) {
    transform: translateY(1px); box-shadow: none;
}

.btn:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
    outline-offset: 2px;
}

.btn-primary {
    color: var(--on-accent); background: var(--accent);
    border-color: var(--accent);
}

.btn-secondary {
    color: var(--text-2); background: var(--bg-1);
    border-color: var(--border);
}

.btn-secondary:hover:not(:disabled):not(.disabled) {
    color: var(--accent-blue); background: var(--bg-2);
    border-color: var(--accent);
}

.btn-success {
    color: var(--on-accent); background: var(--accent-success);
    border-color: var(--accent-success);
}

.btn-success:hover:not(:disabled):not(.disabled) {
    background: var(--accent-success-hover);
}

.btn-danger {
    color: var(--on-accent); background: var(--accent-red);
    border-color: var(--accent-red);
}

.btn-danger:hover:not(:disabled):not(.disabled) {
    background: var(--accent-red-bright);
}

.btn-orange {
    color: var(--on-accent); background: var(--accent-2);
    border-color: var(--accent-2);
}

.btn-orange:hover:not(:disabled):not(.disabled) {
    background: var(--accent-orange-text);
}

.btn-ghost {
    color: var(--accent-blue); background: transparent;
    border-color: transparent;
}

.btn-ghost:hover:not(:disabled):not(.disabled) {
    background: var(--bg-2); box-shadow: none;
}

.btn-small {
    font-size: var(--font_size_button);
}

.btn-large {
    font-size: var(--font_size_1);
}

.btn-wrap {
    white-space: normal; overflow-wrap: anywhere;
}

.btn-square {
    width: 34px; min-width: 34px;
}

.btn-small.btn-square {
    width: 30px; min-width: 30px;
}

.btn-active {
    color: var(--on-accent); background: var(--blue-navy);
    border-color: var(--blue-navy);
}

.btn:disabled, .btn.disabled {
    opacity: .55; cursor: not-allowed;
    box-shadow: none; transform: none;
}

/* Файл page_authorization.css */

.page_authorization {
    width: 100%; min-height: 100dvh;
    box-sizing: border-box; overflow-x: hidden;
    background: var(--bg-1); color: var(--text-1);
    font-family:var(--font_family_interface); font-size: var(--font_size_0);
}

.page_authorization .label_info_3 {
    color: var(--text-1); font-size: var(--font_size_0);
}

.authorization-title-group {
    display: flex; flex-direction: column;
    align-items: center; gap: 2px;
}

.authorization-title-row .label_info_3 {
    color: var(--blue-navy);
    font-size: var(
        --authorization_title_font_size,
        calc(var(--font_size_3) * 1.25)
    );
    font-weight: 750; letter-spacing: -0.02em;
}

.authorization-company-title-row .label_info_3 {
    color: var(--text-2); font-size: var(--font_size_1);
    font-weight: 600; letter-spacing: 0;
}

.authorization-logo-row {
    margin-top: var(--spacing_small); margin-bottom: var(--spacing_small);
}

.authorization-logo {
    display: block; width: clamp(72px, 10vw, 96px);
    height: auto; margin: 0 auto;
}

.authorization-title-row {
    margin-top: var(--spacing_small); margin-bottom: var(--spacing_small);
}

.auth-actions-row {
    display: flex; align-items: center;
    justify-content: center; gap: var(--spacing_small);
    margin: var(--spacing_small) 0;
}

.page_authorization input {
    box-sizing: border-box; margin-top: 4px;
    margin-bottom: var(--spacing_small); border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-2); color: var(--text-1);
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
    outline: none; transition: border-color .18s ease, box-shadow .18s ease;
}

.page_authorization input:focus {
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 3px color-mix(
        in srgb,
        var(--accent-blue) 14%,
        transparent
    );
}

.page_authorization button {
    border-radius: 12px; background: var(--accent-blue);
    color: var(--on-accent); font-family: var(--font_family_interface);
    font-size: var(--font_size_0); font-weight: 650;
    transition: transform .16s ease, box-shadow .16s ease,
        background .16s ease;
}

.page_authorization button:hover {
    background: var(--blue-navy);
    box-shadow: 0 8px 18px color-mix(
        in srgb,
        var(--accent-blue) 20%,
        transparent
    );
}

.page_authorization button:active {
    transform: translateY(1px);
}

.consent-block .pd-policy-link {
    color: var(--accent-blue); text-decoration: underline;
    cursor: pointer;
}

.consent-block .pd-policy-link:hover {
    opacity: 0.7;
}

#button_login:disabled {
    opacity: 0.5; cursor: not-allowed;
}

.consent-block {
    gap: var(--spacing_small); margin: var(--font_size_0);
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    box-sizing: border-box; color: var(--text-2);
    font-size: var(--font_size_0); line-height: 1.4;
    text-align: left;}

.consent-hint {
    padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--accent-yellow-border);
    border-radius: var(--spacing_small); background: var(--accent-orange-bg);
    color: var(--accent-orange-text); font-size: var(--font_size_0);
}

.consent-hint-icon {
    margin-right: 4px; font-weight: 700;
}

.consent-row {
    grid-template-columns: 22px minmax(0, 1fr) auto;
    column-gap: var(--spacing_small);
    align-items: start;}

.consent-row .consent-badge {
    grid-row: 1; grid-column: 3;
}

.consent-row--accepted {
    align-items: center;
}

.consent-accepted-icon {
    grid-row: 1; grid-column: 1;
    display: inline-flex; align-items: center;
    justify-content: center; width: 22px;
    height: 22px; border: 1px solid var(--border);
    border-radius: 50%; background: var(--bg-2);
    color: var(--accent-blue); font-size: var(--font_size_0);
    font-weight: 700; line-height: 1;
}

.consent-checkbox {
    width: 18px; height: 18px;
    margin-top: 4px; cursor: pointer;
}

.consent-text {
    color: var(--text-2); font-size: var(--font_size_0);
}

.consent-text label {
    cursor: pointer;
}

.consent-divider {
    width: 100%; height: 1px;
    background: var(--border);
}

.consent-badge {
    display: inline-block; align-self: start;
    margin-top: 4px; padding: 4px var(--spacing_small);
    border-radius: var(--font_size_0); font-size: var(--font_size_0);
    font-weight: 600; line-height: 1.2;
    white-space: nowrap;
}

.consent-badge--required {
    border: 1px solid var(--accent-red); background: var(--bg-1);
    color: var(--accent-red);
}

.consent-badge--optional {
    border: 1px solid var(--border); background: var(--bg-2);
    color: var(--accent-blue);
}

.auth-pd-side {
    display: none;
}

.auth-pd-inline {
    display: block; box-sizing: border-box;
    margin-top: var(--font_size_0); margin-bottom: var(--font_size_1);
    padding: 0 var(--font_size_0); text-align: center;
}

.auth-pd-inline .consent-block {
    margin-left: auto; margin-right: auto;
}

/* Файл page_authorization_landscape.css */

@media (orientation: landscape) and (min-width: 769px) {
    .page_authorization {
        position: fixed; inset: 0 auto 0 0;
        display: flex; width: 50%;
        height: 100dvh; min-height: 0;
        flex-direction: column; justify-content: center;
        padding: clamp(18px, 3vw, 42px); overflow: hidden;
        background:
            radial-gradient(
                circle at 20% 18%,
                color-mix(in srgb, var(--accent-blue) 12%, transparent),
                transparent 38%
            ),
            linear-gradient(145deg, var(--bg-1), var(--bg-2));
    }

    .authorization-brand {
        width: min(100%, 390px); margin: 0 auto 14px;
    }

    .authorization-logo-row {
        margin: 0 0 12px;
    }

    .authorization-logo {
        width: clamp(88px, 8vw, 112px);
        padding: 10px; border: 1px solid var(--border);
        border-radius: 24px; background: var(--bg-1);
        box-shadow: var(--shadow);
    }

    .authorization-title-row {
        margin: 2px 0;
    }

    .authorization-title-row .label_info_3 {
        font-size: var(
            --authorization_title_landscape_font_size,
            calc(var(--font_size_3) * 1.45)
        );
    }

    .authorization-company-title-row .label_info_3 {
        font-size: var(--authorization_company_landscape_font_size);
    }

    .page_authorization > p, .page_authorization form > p {
        margin-top: 4px; margin-bottom: 4px;
    }

    #form_authorization {
        width: min(100%, 390px); box-sizing: border-box;
        margin: 0 auto; padding: 18px;
        border: 1px solid var(--border); border-radius: 20px;
        background: color-mix(in srgb, var(--bg-1) 94%, transparent);
        box-shadow: var(--shadow);
    }

    #form_authorization > p {
        margin: 0;
    }

    #form_authorization input {
        width: 100%; height: 46px;
        margin: 0 0 10px; padding: 0 14px;
        background: var(--bg-1);
    }

    .auth-actions-row {
        margin: 2px 0 0;
    }

    #button_login {
        min-height: 42px; padding: 0 18px;
    }

    #form_download {
        width: min(100%, 390px); margin: 10px auto 0;
    }

    #form_download p {
        margin: 0;
    }

    #button_load {
        min-height: 38px; padding: 0 14px;
        border: 1px solid var(--border); background: var(--bg-1);
        color: var(--accent-blue); box-shadow: none;
    }

    #button_load:hover {
        border-color: var(--accent-blue); background: var(--bg-2);
        color: var(--blue-navy); box-shadow: none;
    }

    .auth-pd-inline {
        display: none; margin: 0;
        padding: 0;
    }

    .auth-pd-side {
        position: fixed; top: 0; right: 0;
        display: flex; width: 50%; height: 100dvh;
        box-sizing: border-box; align-items: center;
        justify-content: center; padding: clamp(18px, 3vw, 42px);
        overflow: hidden; border-left: 1px solid var(--border);
        background:
            radial-gradient(
                circle at 80% 25%,
                color-mix(in srgb, var(--accent-blue) 8%, transparent),
                transparent 34%
            ),
            var(--bg-1);
    }

    .auth-pd-side .consent-block {
        width: min(100%, 760px);
        max-height: calc(100dvh - 84px); margin: 0;
        padding: 18px; overflow-y: auto;
        border-radius: 18px; box-shadow: var(--shadow);
    }

    #button_register {
        position: fixed; top: var(--font_size_0);
        right: var(--font_size_1); z-index: 5;
        min-height: 40px; margin: 0; padding: 0 14px;
        box-shadow: var(--shadow);
    }
}

/* Файл page_authorization_brand_mobile.css */

.authorization-portrait .authorization-brand {
    position: sticky; top: 0;
    z-index: 4; display: flex;
    width: min(100%, 460px); flex: 0 0 auto;
    flex-direction: column; align-items: center;
    padding: 2px 0 6px;
    background: color-mix(in srgb, var(--bg-1) 92%, transparent);
    backdrop-filter: blur(10px);
}

.authorization-portrait .authorization-title-group {
    display: flex; flex-direction: column;
    align-items: center;
}

.authorization-portrait .authorization-company-title-row
.label_info_3 {
    font-size: var(--font_size_0);
}

.authorization-portrait.authorization-keyboard-open
.authorization-brand {
    flex-direction: row; justify-content: center;
    gap: var(--spacing_small); padding-top: 0;
    padding-bottom: 4px;
}

.authorization-portrait.authorization-keyboard-open
.authorization-logo-row {
    margin: 0;
}

.authorization-portrait.authorization-keyboard-open
.authorization-logo {
    width: 44px; padding: 4px;
    border-radius: 14px;
}

.authorization-portrait.authorization-keyboard-open
.authorization-title-group {
    align-items: flex-start;
}

.authorization-portrait.authorization-keyboard-open
.authorization-title-row {
    text-align: left;
}

.authorization-portrait.authorization-keyboard-open
#form_authorization {
    margin-top: 4px;
}

/* Файл page_authorization_mobile.css */

.authorization-portrait .page_authorization {
    position: relative; inset: auto;
    display: flex; width: 100%;
    height: var(--authorization-viewport-height, 100dvh); min-height: 0;
    box-sizing: border-box; flex-direction: column;
    align-items: center; justify-content: flex-start;
    padding:
        max(10px, env(safe-area-inset-top))
        max(12px, env(safe-area-inset-right))
        max(16px, env(safe-area-inset-bottom))
        max(12px, env(safe-area-inset-left));
    overflow-y: auto;
    background:
        radial-gradient(
            circle at top,
            color-mix(in srgb, var(--accent-blue) 14%, var(--bg-1)),
            var(--bg-1) 48%
        );
    overscroll-behavior-y: contain; scroll-padding-top: 10px;
    scroll-padding-bottom: calc(72px + env(safe-area-inset-bottom));
    -webkit-overflow-scrolling: touch;
}

.authorization-portrait .auth-pd-side {
    display: none;
}

.authorization-portrait .authorization-logo-row {
    margin: 0 0 4px;
}

.authorization-portrait .authorization-logo {
    width: 64px; padding: 8px;
    border: 1px solid var(--border); border-radius: 20px;
    background: var(--card); box-shadow: var(--shadow);
}

.authorization-portrait .authorization-title-row {
    margin: 0; line-height: 1.15;
}

.authorization-portrait .page_authorization .label_info_3 {
    color: var(--blue-navy); font-size: var(--font_size_3);
    font-weight: 750; letter-spacing: -0.02em;
}

.authorization-portrait #form_authorization {
    order: 1; display: flex;
    width: min(100%, 460px); box-sizing: border-box;
    flex-direction: column; align-self: center;
    margin: 10px 0 0; padding: 14px;
    border: 1px solid var(--border); border-radius: 20px;
    background: var(--card); box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
}

.authorization-portrait #form_authorization > p {
    display: grid; width: 100%;
    margin: 0; gap: 10px;
}

.authorization-portrait #form_authorization > p > br {
    display: none;
}

.authorization-portrait #form_authorization input {
    width: 100%; height: 48px;
    margin: 0; padding: 0 14px;
    border: 1px solid var(--border); border-radius: 13px;
    background: var(--bg-1); color: var(--text-1);
    outline: none; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}

.authorization-portrait #form_authorization input:focus {
    border-color: var(--accent-blue); background: var(--bg-1);
    box-shadow: 0 0 0 3px color-mix(
        in srgb,
        var(--accent-blue) 16%,
        transparent
    );
}

.authorization-portrait .auth-actions-row {
    order: 1; display: grid;
    width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px; align-self: center;
    margin: 10px 0 0;
}

.authorization-portrait .auth-actions-row button {
    min-width: 0; min-height: 44px;
    padding: 0 16px; border: 1px solid var(--accent-blue);
    border-radius: 13px; font-weight: 700;
    white-space: nowrap;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}

.authorization-portrait .auth-actions-row button:active {
    transform: translateY(1px);
}

.authorization-portrait .auth-actions-row #button_login {
    width: 100%;
    box-shadow: 0 8px 18px color-mix(
        in srgb,
        var(--accent-blue) 24%,
        transparent
    );
}

.authorization-portrait .auth-actions-row #button_login:only-child {
    grid-column: 1 / -1;
}

.authorization-portrait .auth-actions-row #button_register {
    position: static; top: auto;
    right: auto; z-index: auto;
    justify-self: end; margin: 0;
    background: var(--bg-1); color: var(--accent-blue);
    box-shadow: none;
}

.authorization-portrait .auth-actions-row #button_register:hover {
    background: var(--bg-2); color: var(--blue-navy);
}

.authorization-portrait .auth-pd-inline {
    order: 2; display: block;
    margin: 10px 0 0; padding: 0;
}

.authorization-portrait .auth-pd-inline .consent-block {
    width: 100%; margin: 0 auto;
    padding: 12px; border-radius: 14px;
    background: color-mix(in srgb, var(--bg-2) 56%, var(--bg-1));
    box-shadow: none;
}

.authorization-portrait #form_download {
    order: 2; width: min(100%, 460px);
    margin: 6px 0 0;
}

.authorization-portrait #form_download p {
    margin: 0;
}

.authorization-portrait #button_load {
    border: 0; background: transparent;
    color: var(--accent-blue); text-decoration: underline;
    text-underline-offset: 3px;
}

.authorization-portrait #button_load:hover {
    background: transparent; color: var(--blue-navy);
}

.authorization-portrait #label_RepeatPassword {
    order: 3; width: min(100%, 460px);
    box-sizing: border-box; margin: 8px 0 0;
    padding: 12px; border: 1px solid var(--border);
    border-radius: 14px; background: var(--bg-1);
    color: var(--text-2); line-height: 1.45;
}

.authorization-portrait.authorization-compact .page_authorization {
    padding-top: max(6px, env(safe-area-inset-top));
}

.authorization-portrait.authorization-compact .authorization-logo-row {
    margin-bottom: 2px;
}

.authorization-portrait.authorization-compact .authorization-logo {
    width: 48px; padding: 6px;
    border-radius: 15px;
}

.authorization-portrait.authorization-compact #form_authorization {
    margin-top: 6px; padding: 10px;
    border-radius: 16px;
}

.authorization-portrait.authorization-compact
#form_authorization > p {
    gap: 7px;
}

.authorization-portrait.authorization-compact
#form_authorization input {
    height: 42px;
}

.authorization-portrait.authorization-compact .auth-actions-row,
.authorization-portrait.authorization-compact .auth-pd-inline {
    margin-top: 7px;
}

.authorization-portrait.authorization-compact
.auth-actions-row button {
    min-height: 40px;
}

.authorization-portrait.authorization-compact
.auth-pd-inline .consent-block {
    gap: 4px; padding: 8px;
}

@media (max-width: 390px) {
    .authorization-portrait .auth-actions-row {
        grid-template-columns: minmax(0, 1fr) minmax(132px, auto); gap: 7px;
    }
    .authorization-portrait .auth-actions-row button {
        padding-right: 10px; padding-left: 10px;
        font-size: var(--font_size_caption);
    }
}

/* Файл page_load_mobile_version.css */

.page_load_mobile_version {
    margin: 0; padding: 0;
    box-sizing: border-box; font-family: var(--font_family_interface);
    line-height: 1.6; color: var(--text-1);
    background-color: #f5f5f5; display: flex;
    min-height: 100vh;
    /* Стили для левой секции */
    .left-section {
        flex: 1; padding-left: 40px;
        padding-right: 25px; display: flex;
        flex-direction: column; justify-content: center;
        align-items: center; background-color: var(--on-accent);
    }
    .left-section h1 {
        font-size: var(--font_size_0);
        margin-bottom: calc(var(--font_size_0) * 2); text-align: center;
        color: #2c3e50;
    }
    .app-image {
        margin-left: 50%; width: 80%;
    }
    .app-image img {
        width: 25%;
    }
    .app-description {
        font-size: var(--font_size_1); text-align: justify;
        color: #2c3e50;
    }
    .left-section button {
        background: none; border: none;
        cursor: pointer;
    }
    /* Стили для правой секции */
    .right-section {
        flex: 1; padding: 40px;
        background-color: #f8f9fa; display: flex;
        flex-direction: column;
    }
    /* Контейнер для прокрутки */
    .changelog-container {
        flex: 1; overflow-y: auto;
        max-height: calc(100vh - 80px);  /* Высота с учетом padding */
        padding-right: 10px;  /* Отступ для скроллбара */
    }
    /* Стили для скроллбара */
    .changelog-container::-webkit-scrollbar {
        width: 8px;
    }
    .changelog-container::-webkit-scrollbar-track {
        background: #f1f1f1; border-radius: 4px;
    }
    .changelog-container::-webkit-scrollbar-thumb {
        background: #c1c1c1; border-radius: 4px;
    }
    .changelog-container::-webkit-scrollbar-thumb:hover {
        background: #a8a8a8;
    }
    .changelog {
        max-width: 600px; margin: 0 auto;
    }
    .changelog-item {
        background: white; border-radius: 8px;
        margin-bottom: var(--font_size_3);
        box-shadow: 0 2px 4px rgba(0,0,0,0.1); overflow: hidden;
    }
    .changelog-header {
        display: flex; justify-content: space-between;
        align-items: center; padding: var(--font_size_3);
        cursor: pointer; background-color: var(--on-accent);
        border-bottom: 1px solid #eee;
    }
    .changelog-info {
        display: flex; flex-direction: column;
        gap: 5px;
    }
    .date {
        font-weight: bold; color: '#22c3e50';
        font-size: var(--font_size_button);
    }
    .version {
        color: #3498db; font-weight: bold;
        font-size: var(--font_size_button);
    }
    .toggle-btn {
        background: #3498db; color: white;
        border: none; width: calc(var(--font_size_0) * 2);
        height: calc(var(--font_size_0) * 2); border-radius: 50%;
        font-size: var(--font_size_2); cursor: pointer;
        display: flex; align-items: center;
        justify-content: center; transition: background-color 0.3s ease;
    }
    .toggle-btn:hover {
        background: #2980b9;
    }
    .changelog-details {
        display: none; padding: var(--font_size_3);
        background-color: #f8f9fa; border-top: 1px solid #eee;
    }
    .improvements, .fixes {
        margin-bottom: 15px;
    }
    .improvements strong, .fixes strong {
        color: #2c3e50; display: block;
        margin-bottom: 8px;
    }
    .improvements ul, .fixes ul {
        list-style-type: none; padding-left: 0;
    }
    .improvements li, .fixes li {
        padding: 5px 0; padding-left: 15px;
        position: relative;
    }
    .improvements li::before, .fixes li::before {
        content: "•"; color: #3498db;
        position: absolute; left: 0;
    }
    /* Адаптивность для мобильных устройств */
    @media (max-aspect-ratio: 1/1) {
        &  {
            flex-direction: column;
        }
        .left-section, .right-section {
            width: 100%;
        }
        .left-section {
            min-height: auto;
            padding: calc(var(--font_size_0) * 2) var(--font_size_3);
        }
        .right-section {
            padding: var(--font_size_3);
        }
        .changelog-container {
            max-height: none; overflow-y: visible;
        }
        .left-section h1 {
            font-size: var(--font_size_0);
        }
    }
    /* Дополнительные медиа-запросы для очень маленьких экранов */
    @media (max-width: 480px) {
        .left-section h1 {
            font-size: var(--font_size_3);
        }
        .app-description {
            font-size: var(--font_size_button);
        }
        .changelog-header {
            padding: 15px;
        }
        .changelog-details {
            padding: 15px;
        }
    }
}

/* Файл base.css */

/* base.css */

html, body {
    height: 100%; margin: 0px;
    padding: 0px; font-family: var(--font_family_interface);
}

/* Контейнер виджета */

.tab-widget-container {
    position: relative;
}

/* Кнопка меню */

.menu-button {
    display: none; position: absolute;
    top: 10px; left: 10px;
    z-index: 1000; background: none;
    border: none; cursor: pointer;
    padding: 8px; width: 40px;
       height: 40px;
    flex-direction: column; justify-content: space-between;
    align-items: center;
}

.menu-button span {
    display: block; width: 100%;
    height: 4px; background-color: var(--active-tab-background);
    border-radius: 2px; transition: all 0.3s ease;
}

.menu-button:hover span {
    background-color: var(--active-tab-hover);
}

.menu-button.active span:nth-child(1) {
    transform: rotate(45deg) translate(8px, 8px);
}

.menu-button.active span:nth-child(2) {
    opacity: 0;
}

.menu-button.active span:nth-child(3) {
    transform: rotate(-45deg) translate(8px, -8px);
}

/* Где располагаются виджеты */

.tab-content-item {
    display: none; box-sizing: border-box;
    width: 100%;
}

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

/* Анимации */

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

/* nav-footer не должен растягивать сайдбар — ширину задают вкладки.
   Хак width:0 + min-width:100% заставляет flex-ребёнка занимать
   ширину родителя, а не растягивать его своим содержимым. */

.nav-footer {
    align-self: stretch; width: 0;
    min-width: 100%; box-sizing: border-box;
}

/* Кнопка "Политика обработки персональных данных" в nav-footer — единый стиль
 * для всех тем */

.nav-footer .policy-button {
    display: block; width: 100%;
    padding: 0; border: none;
    background: transparent; font-size: var(--tab-sidebar-font-size);
    color: var(--sidebar-text); cursor: pointer;
    text-decoration: underline; white-space: normal;
    overflow-wrap: anywhere; word-break: break-word;
    line-height: 1.3; text-align: center;
}

.nav-footer .label-info {
    display: block; width: 100%;
    min-width: 0; max-width: 100%;
    white-space: normal; overflow-wrap: anywhere;
    word-break: break-word; box-sizing: border-box;
}

.nav-footer .policy-button:hover {
    opacity: 0.7;
}

.tab-widget-container {
    width: 100%; height: 100%;
    min-height: 0; display: flex;
    flex-direction: column;
}

.tab-content-wrapper.scrollable, .tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content {
    flex: 1 1 auto; min-height: 0;
}

/* Единое ограничение приложения высотой видимой области экрана.
   Внешний body не прокручивается: прокруткой управляет содержимое вкладки. */

html, body, #root {
    width: 100%; height: 100dvh;
    max-height: 100dvh; min-height: 0;
    overflow: hidden; box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: border-box;
}

.tab-widget-container, .tab-container-left, .tab-container-top,
.tab-content-wrapper, .tab-content-item.active {
    min-height: 0; max-height: 100%;
}

.tab-widget-container, .tab-container-left, .tab-container-top {
    overflow: hidden;
}

/* Верхняя конфигурационная панель занимает ровно высоту окна.
   Внутренние экраны получают доступную высоту и создают собственный скролл. */

#tab-container-tab_0 > .tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content {
    overflow: hidden;
}

#tab-container-tab_0 > .tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content > * {
    flex: 1 1 auto; min-height: 0;
    /* max-height: 100%; */
    overflow: auto;
}

/* Файл tabs.css */

/* tabs.css */

.tab-link {
    padding: var(--button-padding-block) var(--button-padding-inline);
    margin-bottom: var(--tab-margin-bottom, 0.5rem); text-decoration: none;
    color: var(--text-2); border: 0;
    border-radius: 0.375rem; background: transparent;
    cursor: pointer; white-space: normal;
    word-wrap: break-word; overflow-wrap: break-word;
    line-height: 1.2; min-height: var(--button-min-height);
    display: flex; align-items: left;
    justify-content: left; text-align: left;
    width: 100%; box-sizing: border-box;
}

.tab-link:hover {
    background-color: color-mix(in srgb, var(--text-1) 6%, transparent);
}

.tab-link.active {
    cursor: default; color: var(--active-tab-text);
    background-color: var(--active-tab-background);
}

.tab-item-wrapper {
    position: relative; display: flex;
    flex-direction: column; margin-bottom: var(--tab-margin-bottom, 0.5rem);
}

.tab-close-button {
    background: none; border: none;
    color: var(--accent-red); cursor: pointer;
    font-size: var(--font_size_button); font-weight: bold;
    padding: 6px; border-radius: 3px;
    display: flex; justify-content: left;
    width: 20px; height: 20px;
    flex-shrink: 0;
}

.tab-close-button:hover {
    background-color: var(--bg-2); color: var(--text-1);
}

/* Файл left-panel.css */

/* Левая панель с вкладками */

.tab-container-left {
    display: flex; position: relative;
    transition: margin-left 0.3s ease;
}

.tab-nav-left {
    display: flex; flex-direction: column;
    flex-shrink: 0; background-color: var(--surface-secondary);
    font-size: var(--tab-sidebar-font-size); padding-top: 0.2rem;
    padding-left: 0.5rem; padding-right: 0.5rem;
    width: var(--left-panel-width, auto);
    min-width: var(--left-panel-width, 200px); box-sizing: border-box;
    transition: transform 0.3s ease; z-index: 100;
    position: relative; min-height: 0;
    overflow: hidden;
}

.tab-nav-left > .nav-header, .tab-nav-left > .nav-footer {
    flex: 0 0 auto;
}

.tab-nav-left > .tab-list {
    display: flex; flex: 1 1 auto;
    min-height: 0; flex-direction: column;
    overflow-x: hidden; overflow-y: auto;
    padding-right: 2px; scrollbar-gutter: stable;
    overscroll-behavior: contain;
}

.tab-nav-left.tab-nav--scrollbar-hidden > .tab-list {
    padding-right: 0; scrollbar-width: none;
    -ms-overflow-style: none; scrollbar-gutter: auto;
}

.tab-nav-left.tab-nav--scrollbar-hidden > .tab-list::-webkit-scrollbar {
    width: 0; height: 0;
}

.tab-content-wrapper {
    display: flex; flex-direction: column;
    flex: 1; min-height: 0;
    transition: margin-left 0.3s ease;
}

.tab-content-left {
    box-sizing: border-box; height: 100%;
}

/* Для левой панели - многострочный текст */

.tab-nav-left .tab-link {
    white-space: normal; word-wrap: break-word;
    overflow-wrap: break-word; line-height: 1.2;
    font-size: var(--tab-sidebar-font-size); min-height: 0rem;
    display: flex; justify-content: left;
    text-align: left;
}

/* Для левой панели - кнопка закрытия под текстом */

.tab-nav-left .tab-item-wrapper {
    flex-direction: column; align-items: stretch;
}

.tab-nav-left .tab-close-button {
    margin-top: 0.25rem; margin-right: 0;
}

/* Класс для скрытия панели */

.tab-container-left.hide-panel .tab-nav-left {
    display: none;
}

.tab-container-left.hide-panel .tab-content-wrapper,
.tab-container-left.fixed-panel {
    margin-left: 0 !important;
}

.tab-container-left.fixed-panel .tab-nav-left {
    transform: translateX(0) !important; position: relative !important;
}

.tab-container-left.fixed-panel .menu-button {
    display: none !important;
}

/* Файл top-panel.css */

/* Контейнер для вкладок сверху */

.tab-container-top {
    display: flex; flex-direction: column;
    border: 1px solid var(--tab-border-color); border-radius: 0.375rem;
    padding: 0.2rem; box-sizing: border-box;
    width: 100%; height: 100%;
    min-height: 0;
    /* Гасим случайный скролл при ещё не завершённой загрузке
       контента (мерцающий скролл вокруг TabWidget). Внутренний
       контент сам управляет своим скроллом. */
    overflow: hidden;
}

/* Оформление вкладки перенесено на .tab-item-wrapper,
   чтобы крестик визуально оказался внутри общей рамки. */

.tab-container-top .tab-nav-top .tab-link:not(.active) {
    background: transparent !important; color: var(--blue-navy) !important;
    border: none !important; opacity: 1 !important;
    visibility: visible !important; text-shadow: none !important;
    box-shadow: none !important;
}

.tab-container-top .tab-nav-top .tab-link:not(.active):hover {
    background: transparent !important; color: var(--accent-blue) !important;
}

.tab-container-top .tab-nav-top .tab-link.active {
    background: transparent !important;
    color: var(--active-tab-text) !important; border: none !important;
    opacity: 1 !important; box-shadow: none !important;
}

.tab-content-top {
    box-sizing: border-box; width: 100%;
    flex: 1; min-height: 0;
    overflow: hidden;
}

/* Wrapper, в котором живут .tab-content-item — также гасит
   паразитный скролл, появляющийся при асинхронной загрузке. */

.tab-container-top > .tab-content-wrapper {
    flex: 1 1 auto; min-height: 0;
    overflow: hidden;
}

/* Для верхней панели - однострочный текст */

.tab-nav-top {
    display: flex; align-items: flex-start;
    margin-bottom: 0.1rem; padding: 0.2rem;
    background-color: var(--surface-secondary); border-radius: 0.375rem;
    flex-shrink: 0;
}

.tab-nav-top > .tab-list {
    display: flex; flex: 1 1 auto;
    min-width: 0; flex-wrap: wrap;
    gap: 0.28rem;
}

.tab-nav-top .tab-link {
    line-height: 1; min-height: auto;
    display: inline-flex; align-items: center;
    justify-content: center; width: auto;
    margin-bottom: 0; padding: 0;
    background: transparent; color: var(--blue-navy);
    border: none; border-radius: 0;
    font-size: var(--font_size_button); font-weight: 600;
    white-space: nowrap; text-decoration: none;
    box-shadow: none;
    transition:
        color 0.15s ease;
}

.tab-nav-top .tab-link:hover {
    background: transparent; color: var(--accent-blue);
    box-shadow: none;
}

.tab-nav-top .tab-link.active {
    background: transparent; color: var(--active-tab-text);
    box-shadow: none;
}

.tab-nav-top .tab-link.active:hover {
    background: transparent; color: var(--active-tab-text);
}

/* Рамка/фон вкладки живут на wrapper'е, крестик и текст — внутри. */

.tab-nav-top .tab-item-wrapper {
    display: inline-flex; align-items: center;
    flex-direction: row; margin-right: 0;
    margin-bottom: 0;
    padding: var(--button-padding-block) var(--button-padding-inline);
    background: var(--surface-primary);
    border: 1px solid var(--tab-border-color); border-radius: 0.42rem;
    box-shadow: var(--shadow);
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.tab-nav-top .tab-item-wrapper:hover {
    background: var(--surface-muted); border-color: var(--accent);
    box-shadow: var(--shadow);
}

.tab-nav-top .tab-item-wrapper:has(.tab-link.active) {
    background: var(--active-tab-background);
    border-color: var(--active-tab-background);
    box-shadow: 0 2px 5px color-mix(
        in srgb,
        var(--active-tab-background) 28%,
        transparent
    );
}

.tab-nav-top .tab-item-wrapper:has(.tab-link.active):hover {
    background: var(--active-tab-hover); border-color: var(--active-tab-hover);
}

/* Крестик */

.tab-nav-top .tab-close-button {
    display: inline-flex; width: 1.05em;
    height: 1.05em; min-width: 1.05em;
    min-height: 1.05em; margin-left: 0.35rem;
    margin-right: 0; padding: 0;
    align-items: center; justify-content: center;
    box-sizing: border-box; border: 1px solid var(--accent-red);
    border-radius: 4px; background: transparent;
    color: var(--accent-red); font-size: var(--font_size_button);
    line-height: 1;
}

.tab-nav-top .tab-close-button:hover {
    background: color-mix(in srgb, var(--accent-red) 12%, transparent);
    color: var(--accent-red); border-color: var(--accent-red);
}

@media (orientation: portrait), (max-width: 680px) {
    .tab-nav-top {
        overflow-x: auto; overflow-y: hidden;
        scrollbar-width: thin;
    }
    .tab-nav-top > .tab-list {
        flex-wrap: nowrap; min-width: max-content;
    }
    .tab-nav-top .tab-item-wrapper {
        flex: 0 0 auto;
    }
}

/* Файл themes.css */

/* Стиль «Синяя панель» использует палитру активной темы. */

.tab-container-left.blue-panel > .tab-nav-left,
.tab-container-top.blue-panel > .tab-nav-top {
    background: var(--sidebar-background);
}

.tab-container-left.blue-panel > .tab-nav-left > .tab-list .tab-link,
.tab-container-top.blue-panel > .tab-nav-top > .tab-list .tab-link {
    color: var(--sidebar-text);
}

.tab-container-left.blue-panel > .tab-nav-left > .tab-list
.tab-link:hover,
.tab-container-top.blue-panel > .tab-nav-top > .tab-list .tab-link:hover {
    background-color: color-mix(
        in srgb,
        var(--active-tab-background) 76%,
        transparent
    );
}

.tab-container-left.blue-panel > .tab-nav-left > .tab-list
.tab-link.active,
.tab-container-top.blue-panel > .tab-nav-top > .tab-list
.tab-link.active {
    background-color: var(--active-tab-background);
    color: var(--active-tab-text);
}

/* Стиль «Вкладки синие» также следует выбранной теме. */

.tab-nav-top.blue-tabs .tab-link, .tab-nav-left.blue-tabs .tab-link {
    background-color: var(--accent); color: var(--active-tab-text);
}

.tab-nav-top.blue-tabs .tab-link:hover,
.tab-nav-left.blue-tabs .tab-link:hover {
    background-color: var(--accent-blue);
}

.tab-nav-top.blue-tabs .tab-link.active,
.tab-nav-left.blue-tabs .tab-link.active {
    background-color: var(--active-tab-background);
    color: var(--active-tab-text);
}

.blue-tabs .tab-close-button {
    color: color-mix(in srgb, var(--active-tab-text) 72%, transparent);
}

.blue-tabs .tab-close-button:hover {
    background-color: color-mix(
        in srgb,
        var(--active-tab-text) 18%,
        transparent
    ); color: var(--active-tab-text);
}

/* Дочерние левые панели используют геометрию и палитру главного меню. */

.tab-container-left.blue-panel:not(#tab-container-tab_0) {
    gap: 8px; background: var(--app-background);
}

.tab-container-left.blue-panel:not(#tab-container-tab_0)
> .tab-nav-left {
    padding: var(--tab-sidebar-edge-padding);
    background: var(--sidebar-background);
    border-right: 1px solid color-mix(
        in srgb,
        var(--sidebar-text) 18%,
        transparent
    );
}

.tab-container-left.blue-panel:not(#tab-container-tab_0) > .tab-nav-left
> .tab-list {
    gap: 0; padding: 2px 0;
}

.tab-container-left.blue-panel:not(#tab-container-tab_0) > .tab-nav-left
> .tab-list .tab-item-wrapper {
    margin-bottom: var(--tab-margin-bottom, 0.5rem);
}

.tab-container-left.blue-panel:not(#tab-container-tab_0) > .tab-nav-left
> .tab-list .tab-link {
    min-height: 2.2rem; margin-bottom: 0;
    padding: 0.35rem 0.5rem; align-items: center;
    justify-content: flex-start; background: transparent;
    border: 1px solid transparent; border-radius: 7px;
    color: var(--sidebar-text); font-size: inherit;
    line-height: 1.2;
}

.tab-container-left.blue-panel:not(#tab-container-tab_0) > .tab-nav-left
> .tab-list .tab-link:hover {
    background: var(--sidebar-tab-hover);
    border-color: var(--sidebar-tab-border);
}

.tab-container-left.blue-panel:not(#tab-container-tab_0) > .tab-nav-left
> .tab-list .tab-link.active {
    background: var(--active-tab-background);
    border-color: var(--active-tab-background); color: var(--active-tab-text);
}

.tab-container-left.blue-panel:not(#tab-container-tab_0)
> .tab-content-wrapper {
    min-width: 0; background: var(--app-background);
}

/* Файл responsive.css */

/* responsive.css */

/* Медиа-запрос для портретной ориентации */

@media (orientation: portrait) {
    .tab-container-left {
        margin-left: 0 !important;
    }
    .tab-nav-left {
        position: absolute; left: 0;
        top: 0; height: 100%;
        transform: translateX(-100%);
    }
    .tab-nav-left.menu-open {
        transform: translateX(0);
    }
    .tab-content-wrapper {
        margin-left: 0 !important;
    }
    .menu-button {
        display: flex;
    }
    .tab-widget-container > .menu-button {
        top: var(--spacing_compact); left: var(--spacing_small);
        width: 36px; height: 36px;
        padding: var(--spacing_dense); border: 1px solid var(--border);
        border-radius: var(--spacing_regular); background: var(--bg-1);
        box-shadow: var(--shadow);
    }
    .tab-widget-container > .menu-button span {
        height: var(--spacing_micro);
    }
    .tab-widget-container > .menu-button + .tab-container-left {
        padding-top: 48px; box-sizing: border-box;
    }
    .tab-widget-container
    > .menu-button
    + .tab-container-left.theme-lk {
        background: var(--table-header-background);
    }
    .tab-widget-container > .menu-button + .tab-container-left >
.tab-nav-left {
        padding-top: 52px;
    }
    .tab-container-left.menu-open .tab-content-wrapper {
        margin-left: var(--left-panel-width, 200px);
    }
}

/* Медиа-запрос для ландшафтной ориентации */

@media (orientation: landscape) {
    .menu-button {
        display: none !important;
    }
    .tab-nav-left {
        transform: translateX(0) !important; position: relative !important;
    }
}

/* Файл button_switch.css */

.config-switch-container {
    display: flex; align-items: center;
    justify-content: flex-end; gap: calc(var(--spacing_small) * .5);
    margin: 0;
    padding: calc(var(--spacing_small) * .25) calc(var(--spacing_small) * .5);
    border-bottom: 1px solid color-mix(in srgb, var(--bg-1) 14%, transparent);
}

.config-switch-button {
    min-height: 28px; padding: 3px var(--spacing_small);
    border: 1px solid var(--border); border-radius: 999px;
    color: var(--blue-navy); background: var(--bg-1);
    font-size: var(--font_size_caption); font-weight: 600;
    box-shadow: none;
}

.config-switch-button:hover:not(:disabled):not(.disabled) {
    color: var(--accent-blue); background: var(--bg-2);
    border-color: var(--accent); box-shadow: none;
    transform: none;
}

.config-switch-button:active:not(:disabled):not(.disabled) {
    transform: none;
}

/* Файл theme-lk.css */

.theme-lk {
    --left-panel-width: min(300px, 92vw);
}

.theme-lk .container {
    width: 100%; height: auto;
    min-height: 100%; max-height: none;
    overflow: visible; padding-left: var(--spacing_section);
    padding-right: 20px; padding-top: 0;
    padding-bottom: 0; scrollbar-width: none;
    -ms-overflow-style: none;
}

.theme-lk .container.lk-content-page {
    padding-top: var(--spacing_section);
}

.theme-lk .container::-webkit-scrollbar {
    width: 0; height: 0;
}

.theme-lk .tab-container-left {
    display: flex; position: relative;
    width: 100%; height: 100%;
    transition: margin-left 0.3s ease;
}

.theme-lk .tab-nav-left {
    display: flex; flex-direction: column;
    flex-shrink: 0; background: var(--sidebar-background);
    color: var(--sidebar-text); padding: 16px 18px;
    width: var(--left-panel-width); min-width: var(--left-panel-width);
    box-sizing: border-box; transition: transform 0.3s ease;
    box-shadow: var(--shadow); height: 100dvh;
    overflow: hidden;
}

/* Только переопределения для theme-lk */

.theme-lk .sidebar-header {
    margin-bottom: 0;
}

.theme-lk .config-switch-container > br {
    display: none;
}

.theme-lk .tab-nav-left .tab-link {
    padding: 8px 38px; margin-bottom: 0;
    background-color: var(--sidebar-tab-background);
    border: 1px solid var(--sidebar-tab-border); border-radius: 8px;
    font-size: inherit; color: var(--sidebar-text);
    justify-content: center; min-height: auto;
    transition: background 0.2s, transform 0.2s;
}

.theme-lk > .tab-nav-left > .tab-list {
    gap: 20px; padding-top: 12px;
}

.theme-lk > .tab-nav-left > .tab-list .tab-item-wrapper {
    margin-bottom: 0;
}

.theme-lk .tab-nav-left .tab-link:hover {
    background-color: var(--sidebar-tab-hover); transform: translateY(-2px);
}

.theme-lk .lk_object_switch_row {
    display: grid; width: 100%;
    min-width: 0; grid-template-columns: auto minmax(0, 1fr);
    align-items: center; gap: 4px;
    margin: 2px 0;
}

.theme-lk .lk_object_switch_label, .theme-lk #house_label,
.theme-lk #apartment_label {
    margin: 0; color: var(--sidebar-text);
    font-size: var(--font_size_1); font-weight: 600;
    white-space: nowrap;
}

.theme-lk .lk_object_switch_select,
.theme-lk #Бокс_переключение_между_домами,
.theme-lk #Бокс_переключение_между_квартирами {
    display: block; width: 100%;
    min-width: 0; height: 28px;
    box-sizing: border-box; margin: 0;
    padding: 0 5px;
    border: 1px solid color-mix(in srgb, var(--sidebar-text) 30%, transparent);
    border-radius: 8px; background-color: transparent;
    color: var(--sidebar-text); font-size: var(--font_size_0);
    line-height: 1.2; cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.theme-lk .lk_object_switch_select:hover,
.theme-lk #Бокс_переключение_между_домами:hover,
.theme-lk #Бокс_переключение_между_квартирами:hover {
    border-color: var(--sidebar-text); box-shadow: var(--shadow);
}

.theme-lk .lk_object_switch_select:focus,
.theme-lk #Бокс_переключение_между_домами:focus,
.theme-lk #Бокс_переключение_между_квартирами:focus {
    border-color: var(--sidebar-text); outline: none;
    box-shadow: 0 0 0 2px color-mix(
        in srgb, var(--sidebar-text) 20%, transparent
    );
}

.theme-lk .lk_object_switch_select:disabled,
.theme-lk #Бокс_переключение_между_домами:disabled,
.theme-lk #Бокс_переключение_между_квартирами:disabled {
    opacity: 1; cursor: default;
}

.theme-lk .lk_object_switch_select option,
.theme-lk #Бокс_переключение_между_домами option,
.theme-lk #Бокс_переключение_между_квартирами option {
    background-color: var(--bg-2); color: var(--text-1);
}

.theme-lk .nav-footer .logout-button {
    width: 100%; padding: 12px;
    border: none; border-radius: 8px;
    background-color: var(--color_3); font-size: var(--font_size_1) !important;
    color: var(--sidebar-text); cursor: pointer;
    transition: background 0.2s, transform 0.2s;
}

.theme-lk .nav-footer .logout-button:hover {
    background-color: var(--sidebar-tab-hover); transform: translateY(-2px);
}

.theme-lk .nav-footer .label-info {
    color: var(--sidebar-text); text-align: center;
    white-space: pre-line; font-size: var(--font_size_0);
    align-self: center;
}

.theme-lk .nav-footer {
    margin-top: auto; gap: 4px;
}

/* Прокрутка содержимого ЛК выполняется активной вкладкой TabWidget.
   Корневые компоненты вкладок сохраняют естественную высоту и
   выравниваются по верхнему краю. */

.config_LK {
    width: 100%; height: 100dvh;
    min-height: 0; overflow: hidden;
}

.config_LK > .tab-widget-container,
.config_LK .tab-container-left.theme-lk,
.config_LK .tab-content-wrapper.scrollable {
    height: 100%; min-height: 0;
    overflow: hidden;
}

.config_LK .tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content {
    min-height: 0; overflow-x: hidden;
    overflow-y: auto; overscroll-behavior: contain;
}

.config_LK .tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content > * {
    width: 100%; height: auto !important;
    min-height: 100%; max-height: none !important;
    flex: 0 0 auto !important; overflow: visible !important;
    box-sizing: border-box;
}

/* Файл theme-bux.css */

#tab-container-tab_0 > .tab-nav-left {
    padding: var(--tab-sidebar-edge-padding);
}

#tab-container-tab_0 > .tab-nav-left > .nav-header {
    margin-bottom: 4px;
}

#tab-container-tab_0 > .tab-nav-left > .tab-list {
    gap: 0; padding: 2px 0;
}

#tab-container-tab_0 > .tab-nav-left > .tab-list
.tab-item-wrapper {
    margin-bottom: var(--tab-margin-bottom, 0.5rem);
}

#tab-container-tab_0 > .tab-nav-left > .tab-list
.tab-link {
    min-height: 2.2rem; margin-bottom: 0;
    padding: 0.35rem 0.5rem; justify-content: flex-start;
    background: transparent; border: 1px solid transparent;
    border-radius: 7px; color: var(--sidebar-text);
    font-size: inherit; line-height: 1.2;
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease;
}

#tab-container-tab_0 > .tab-nav-left > .tab-list
.tab-link:hover {
    background: var(--sidebar-tab-hover);
    border-color: var(--sidebar-tab-border);
}

#tab-container-tab_0 > .tab-nav-left > .tab-list
.tab-link.active {
    background: var(--active-tab-background);
    border-color: var(--active-tab-background); color: var(--active-tab-text);
}

/* Файл scrollable.css */

/* scrollable.css
 * Поведение для пропа <TabWidget scrollable={true}/>.
 *
 * Идея: когда вкладка помечена как scrollable, её активный
 * .tab-content-item растягивается на всю доступную высоту wrapper'а
 * (flex:1; min-height:0; height:100%). Это позволяет содержимому
 * вкладки опираться на height:100% и держать СВОЙ внутренний скролл,
 * не выталкивая его наружу на body.
 *
 * Сам overflow здесь НЕ задаём, чтобы не плодить двойной скролл с
 * контентом, который уже имеет overflow-y:auto. Если содержимое
 * скроллом не управляет, добавьте overflow-y:auto на корень контента
 * вкладки — это правильное место.
 *
 * До этой правки классы .scrollable / .scrollable-content в DOM
 * проставлялись, но никаких CSS-правил за ними не стояло — проп был
 * фактически no-op.
 */

/* Контейнер списка вкладок. Для tabs_position='слева' wrapper уже
   flex:1; min-height:0 (left-panel.css), здесь страхуем верхнюю
   компоновку — у tabs_position='сверху' своих стилей у wrapper'а нет. */

.tab-content-wrapper.scrollable {
    display: flex; flex-direction: column;
    flex: 1 1 auto; min-height: 0;
}

/* Все элементы списка — занимают всю высоту wrapper'а.
   Неактивные скрыты через .tab-content-item { display:none } из base.css,
   поэтому реально растягивается только активная. */

.tab-content-wrapper.scrollable > .tab-content-item.scrollable-content {
    flex: 1 1 auto; min-height: 0;
    height: 100%;
}

/* Активная scrollable-вкладка — собственно flex-колонка с заданной
   высотой; overflow оставляем контенту. */

.tab-content-wrapper.scrollable > .tab-content-item.active.scrollable-content {
    display: flex; flex-direction: column;
    flex: 1 1 auto; min-height: 0;
    overflow: auto; scrollbar-gutter: stable;
}

/* Широкие таблицы прокручиваются внутри содержимого TabWidget,
   не растягивая всю страницу. */

.tab-content-wrapper.scrollable,
.tab-content-wrapper.scrollable > .tab-content-item.scrollable-content {
    min-width: 0; max-width: 100%;
    box-sizing: border-box;
}

.tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content > * {
    min-width: 100%;
}

/* Файл tab-drag.css */

.tab-nav--draggable .tab-item-wrapper:not(.tab-item-wrapper--locked) {
    cursor: grab;
}

.tab-nav--draggable .tab-item-wrapper:not(.tab-item-wrapper--locked):active {
    cursor: grabbing;
}

.tab-item-wrapper[draggable='true'] {
    user-select: none;
}

.tab-item-wrapper--drop-before {
    position: relative;
}

.tab-nav-top .tab-item-wrapper--drop-before::before {
    content: ''; position: absolute;
    top: -2px; bottom: -2px;
    left: -5px; width: 3px;
    border-radius: 3px; background: var(--accent);
}

.tab-nav-left .tab-item-wrapper--drop-before::before {
    content: ''; position: absolute;
    top: -4px; right: 0;
    left: 0; height: 3px;
    border-radius: 3px; background: var(--accent);
}

.tab-item-wrapper--locked {
    cursor: default;
}

.tab-nav-empty-drop {
    margin: var(--spacing_small); padding: var(--font_size_0);
    border: 1px dashed var(--border); border-radius: var(--spacing_small);
    color: var(--text-2); font-size: var(--font_size_0);
    text-align: center;
}

.tab-widget-empty-content {
    flex: 1 1 auto; min-height: 120px;
    justify-content: center; box-sizing: border-box;
    padding: var(--font_size_1); color: var(--text-2);
    font-size: var(--font_size_0);}

/* Файл contextual_panel.css */

.contextual-tab-widget {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
}

.contextual-sidebar-portal {
    position: fixed; display: flex;
    box-sizing: border-box; min-width: 0;
    min-height: 0; flex-direction: column;
    padding: var(--tab-sidebar-edge-padding); overflow: hidden;
    background: var(--sidebar-background); color: var(--sidebar-text);
    font-size: var(--tab-sidebar-font-size);
    border-right: 1px solid color-mix(
        in srgb,
        var(--sidebar-text) 18%,
        transparent
    );
}

.contextual-sidebar__header, .contextual-sidebar__footer {
    display: flex; min-width: 0;
    flex: 0 0 auto; flex-direction: column;
    gap: var(--spacing_small);
}

.contextual-sidebar__header {
    margin-bottom: 4px;
}

.contextual-sidebar__tabs {
    min-height: 0; flex: 1 1 auto;
    gap: var(--tab-sidebar-item-gap); padding: 2px 0;
    overflow-x: hidden;
    overflow-y: auto;}

.contextual-sidebar__tab {
    width: 100%; min-height: 2.2rem;
    margin: 0; padding: 0.35rem 0.5rem;
    border: 1px solid transparent; border-radius: 7px;
    background: transparent; color: var(--sidebar-text);
    font: inherit; font-size: var(--tab-sidebar-font-size);
    line-height: 1.2; text-align: left;
    cursor: pointer;
}

.contextual-sidebar__tab:hover {
    background: var(--sidebar-tab-hover);
    border-color: var(--sidebar-tab-border);
}

.contextual-sidebar__tab.active {
    background: var(--active-tab-background);
    border-color: var(--active-tab-background); color: var(--active-tab-text);
    cursor: default;
}

.contextual-sidebar__footer {
    position: relative; z-index: 2;
    width: 100%; min-width: 100%;
    padding-top: var(--spacing_small);
    padding-bottom: max(var(--spacing_small), env(safe-area-inset-bottom));
    background: var(--sidebar-background);
}

.contextual-sidebar__header .btn, .contextual-sidebar__footer .btn,
.contextual-sidebar__footer .management-object-selector {
    width: 100%; font-size: inherit;
}

.contextual-sidebar-menu-button {
    position: fixed;
}

.contextual-sidebar-host-active
> .tab-container-left
> .tab-nav-left {
    visibility: hidden;
}

.contextual-sidebar-host-active > .tab-container-left >
.tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content {
    scrollbar-gutter: auto;
}

@media (orientation: landscape) {
    .contextual-sidebar-host-active > .tab-container-left >
.tab-content-wrapper {
        width: calc(
            100% - var(--contextual-sidebar-layout-width, 0px)
        );
        max-width: calc(
            100% - var(--contextual-sidebar-layout-width, 0px)
        ); min-width: 0;
        flex: 1 1 auto; margin-left: 0 !important;
    }
}

@media (orientation: portrait) {
    .contextual-sidebar-host-active > .menu-button {
        display: none !important;
    }
    .contextual-sidebar-host-active
    > .tab-container-left
    > .tab-nav-left {
        transform: translateX(-100%) !important;
    }
    .contextual-sidebar-menu-button {
        display: flex !important;
    }
    .contextual-sidebar-portal {
        transform: translateX(-100%); transition: transform 0.3s ease;
    }
    .contextual-sidebar-portal.menu-open {
        transform: translateX(0);
    }
}

/* Файл TabWidget.css */

/* TabWidget.css */

/* Импорт всех стилей */

/* Файл base.css */

/* Контейнер таблицы */

.pivot-table-container {
    overflow: auto; min-width: 0;
    max-width: 100%; box-sizing: border-box;
    scrollbar-gutter: stable; height: 100%;
    border: 1px solid var(--border); border-radius: 12px;
    background: var(--card); box-shadow: var(--shadow);
}

.pivot-table {
    width: 100%; min-width: 100%;
    max-width: 100%; table-layout: fixed;
    border-collapse: separate; border-spacing: 0;
    font-size: var(--font_size_1); color: var(--text-2);
}

.pivot-table-loading, .pivot-table-error, .pivot-table-empty {
    padding: 14px; text-align: center;
    color: var(--text-3);
}

/* Радиобаттон */

.pivot-radio-native {
    position: absolute; opacity: 0;
    cursor: pointer;
}

.pivot-radio-visual {
    display: inline-block; width: 14px;
    height: 14px; margin-bottom: 12px;
    border: 1px solid #888; border-radius: 50%;
    background: white; box-sizing: border-box;
    vertical-align: middle; position: relative;
    pointer-events: none;
}

/* Подсветка активных родительских и листовых узлов */

.radio-button-container--parent:has(.pivot-radio-native:checked)
.pivot-radio-visual,
.radio-button-container--leaf:has(.pivot-radio-native:checked)
.pivot-radio-visual {
    border-color: var(--accent);
}

/* Внутренняя точка */

.pivot-radio-visual--checked::after {
    content: ''; position: absolute;
    top: 50%; left: 50%; width: 8px;
    height: 8px; border-radius: 50%;
    background: #1976D2; transform: translate(-50%, -50%);
}

/* 👨‍🦱 Курсор */

.radio-button-container--leaf {
    cursor: pointer;
}

.node-value {
    margin-bottom: 12px;
}

/* Файл header.css */

/* PivotTable.header.css */

/* Заголовки и ячейки */

.pivot-table th, .pivot-table td {
    padding: 4px 6px; text-align: left;
    vertical-align: top; overflow: hidden;
    text-overflow: ellipsis; border-bottom: 1px solid #eef2f7;
}

.pivot-table th {
    position: sticky; top: 0;
    z-index: 10; background: linear-gradient(180deg, #f8fbff 0%, #f2f6fb 100%);
    color: #172033; font-weight: 600;
    font-size: var(--font_size_caption); line-height: 1.3;
}

.aggregation-header th {
    box-shadow: inset 0 -1px 0 #e6edf6;
}

.empty-header {
    background: linear-gradient(180deg, #f8fbff 0%, #f2f6fb 100%);
}

.hierarchy-header, .value-header {
    min-height: 44px;
}

.header-label {
    display: block; line-height: 1.25;
    font-size: var(--font_size_caption);
}

.agg-label {
    margin-top: 2px; font-size: var(--font_size_caption);
    line-height: 1.2; color: #7b8794;
    font-weight: 500;
}

/* Управляемый перенос заголовков */

.value-header--wrap .header-label,
.hierarchy-header--wrap .header-label {
    white-space: normal; overflow-wrap: anywhere;
    word-break: break-word; hyphens: auto;
}

.value-header--nowrap .header-label,
.hierarchy-header--nowrap .header-label {
    white-space: nowrap; overflow: hidden;
    text-overflow: ellipsis;
}

/* Файл search.css */

.hierarchy-header__content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap_0);
}

.hierarchy-header .header-label {
    min-width: 0;
    font-size: var(--font_size_0);
    font-weight: 400;
    color: var(--text-2);
}

.pivot-search {
    position: relative;
    flex: 0 0 auto;
}

.pivot-search__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35em;
    height: 1.35em;
    min-width: 1.35em;
    min-height: 1.35em;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-2);
    font: inherit;
    font-size: var(--font_size_0);
    line-height: 1;
    cursor: pointer;
    transform: none;
}

.pivot-search__button:hover,
.pivot-search__button:active,
.pivot-search__button:focus-visible {
    width: 1.35em;
    height: 1.35em;
    padding: 0;
    font-size: var(--font_size_0);
    transform: none;
}


.pivot-search__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font_size_3);
    line-height: 1;
}

.pivot-search__popover {
    position: absolute;
    z-index: 30;
    top: calc(100% + var(--gap_0));
    right: 0;
    width: 240px;
    padding: var(--gap_0);
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-1);
    box-shadow: var(--shadow);
}

.pivot-search__popover input {
    width: 100%;
    box-sizing: border-box;
}

/* Файл hierarchy.css */

/* hierarchy.css */

/* Иерархия */

.hierarchy-row {
    cursor: pointer; transition: background-color 0.16s ease;
}

.hierarchy-row:hover {
    background-color: var(--bg-2); /* #edf1f5 */
}

.hierarchy-cell {
    --pivot-indent-step: 12px; --pivot-indent-base: 10px;
    position: relative;
    padding-left: calc(
        var(--pivot-level, 0)
        * var(--pivot-indent-step)
        + var(--pivot-indent-base)
    ) !important;
}

.hierarchy-cell--child {
    border-left: 2px solid var(--border); /* #d7e7f2 */
}

.hierarchy-cell--root {
    border-left: none;
}

.hierarchy-content {
    gap: 4px;
    min-height: 24px;}

.hierarchy-indent {
    width: 18px; height: 18px;
    flex: 0 0 18px;
}

.toggle-button {
    width: 18px; height: 18px;
    display: inline-flex; align-items: center;
    justify-content: center; padding: 0;
    border: none; border-radius: 6px;
    background: transparent; color: var(--text-3);
    cursor: pointer; transition: background-color 0.16s ease, color 0.16s ease;
}

.toggle-button:hover {
    background: var(--bg-2); color: var(--accent-blue);
}

.node-value {
    min-width: 0; font-size: var(--font_size_0);
    line-height: 1.3; color: var(--text-2);
}

.node-stats {
    color: var(--text-3); font-size: var(--font_size_0);
    line-height: 1.3; margin-bottom: 12px;
    white-space: nowrap;
}

.checkbox-cell {
    text-align: center;
}

.empty-value {
    color: var(--text-3);
}

/* Фон уровней */

.level-0 {
    background-color: var(--bg-2); /* #edf1f5 вместо #f8fbff */
}

.level-2 {
    background-color: var(--on-accent); /* #ffff вместо #fbfcfe */
}

/* Файл kind_badge.css */

/* kind_badge.css */

/* Бейдж «Продавец»/«Покупатель» слева от названия
   контрагента в корневой строке сводной таблицы. */

.hierarchy-kind-badge {
    display: inline-flex; align-items: center;
    padding: 5px; border-radius: 6px;
    font-size: var(--font_size_0); white-space: nowrap;
    flex: 0 0 auto;
}

.hierarchy-kind-badge--seller {
    background-color: #ede9fe; color: var(--blue-navy);
}

.hierarchy-kind-badge--buyer {
    background-color: #d1fae5; color: #047857;
}

/* Файл total_row.css */

/* total_row.css */

.pivot-total-row {
    background: var(--bg-2);
}

.pivot-total-cell {
    position: sticky; bottom: 0;
    z-index: 9; padding: 4px 6px;
    background: var(--bg-2); border-top: 2px solid var(--border);
    font-weight: 600; color: var(--text-1);
}

.pivot-total-label {
    text-align: left;
}

.pivot-total-value {
    text-align: right;
}

/* Файл PivotTable.css */

/* PivotTable.css */

.pivot-table-error {
    justify-content: center; gap: 10px;
    min-height: 96px; padding: 16px;
    color: #a01818;}

.pivot-table-error button {
    padding: 7px 14px; border: 0;
    border-radius: 10px; background: #3889c9;
    color: #fff; cursor: pointer;
}

/* Файл Grid.css */

.grid-container {
    display: grid; width: 100%;
    height: 100%; gap: 5px;
    grid-auto-rows: 1fr;
}

.grid-container.scrollable {
    overflow: auto; grid-auto-rows: min-content;
}

.grid-item {
    min-height: 0; min-width: 0;
    overflow: hidden;
}

@media (orientation: portrait) {
    .grid-container--portrait-flow {
        display: flex; width: 100%;
        height: 100%; min-height: 0;
        min-width: 0; flex-direction: column;
        gap: 7px; overflow-x: hidden;
        overflow-y: auto; overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
    .grid-container--portrait-flow > .grid-item {
        min-width: 0; flex: 0 0 auto;
        grid-row: auto !important; grid-column: auto !important;
        overflow: visible;
    }
    .grid-container--portrait-flow > .grid-item:has(.table-widget) {
        height: auto; min-height: 280px;
        max-height: none; flex: 1 1 280px;
        overflow: hidden;
    }
    .grid-container--portrait-flow > .grid-item:has(.table-widget)
.table-widget {
        height: 100%; min-height: 0;
        max-height: 100%;
    }
    .grid-container--portrait-flow > .grid-item:has(.table-widget)
.table-wrapper,
.grid-container--portrait-flow > .grid-item:has(.table-widget)
.portrait-card-table {
        height: 100%; min-height: 0;
        max-height: 100%; overflow-y: auto;
    }
}

/* Файл PaymentApprovalDrawer.css */

.drawer-title .pad-back-btn {
    margin-right: var(--spacing_small); border: 1px solid var(--border);
    background: var(--accent-blue); color: var(--on-accent);
    font-size: var(--font_size_0); font-weight: 600;
}

.pad-approval-content {
    min-height: 0; gap: var(--spacing_small);
    color: var(--text-1);
    font-size: var(--font_size_0);}

.pad-section {
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
}

.pad-section-title {
    margin-bottom: var(--spacing_small); color: var(--text-2);
    font-size: var(--font_size_0); font-weight: 700;
    letter-spacing: normal; text-transform: none;
}

.pad-field label {
    display: block; margin-bottom: 4px;
    color: var(--text-2); font-size: var(--font_size_0);
}

.pad-val {
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 600;
}

.pad-val--accent {
    color: var(--accent-blue); font-size: var(--font_size_1);
}

.pad-status-badge {
    display: inline-block; margin-top: var(--spacing_small);
    padding: 4px var(--font_size_0); background: var(--accent-orange-bg);
    color: var(--accent-orange-text); font-size: var(--font_size_0);
    font-weight: 600;
}

.pad-actions {
    position: sticky; bottom: calc(0px - var(--font_size_0));
    display: flex; gap: var(--spacing_small);
    margin: var(--spacing_small) calc(0px - var(--font_size_0)) calc(0px -
        var(--font_size_0));
    padding: var(--spacing_small); border-top: 1px solid var(--border);
    background: var(--bg-1); z-index: 10;
}

.pad-btn-approve, .pad-btn-reject, .pad-btn-chat {
    min-height: 38px; margin: 0;
    padding: 4px var(--font_size_0); border-radius: var(--spacing_small);
    font-size: var(--font_size_0); cursor: pointer;
}

.pad-btn-approve {
    flex: 1; border: 1px solid var(--accent);
    background: var(--accent); color: var(--on-accent);
    font-weight: 700;
}

.pad-btn-approve:hover:not(:disabled) {
    background: var(--accent-blue); transform: none;
}

.pad-btn-approve:disabled, .pad-btn-chat:disabled,
.pad-btn-reject:disabled {
    opacity: 0.55; cursor: not-allowed;
}

.pad-btn-reject {
    flex: 1; border: 1px solid var(--accent-red);
    background: var(--bg-1); color: var(--accent-red);
}

.pad-btn-reject:hover {
    border-color: var(--accent-red-bright); background: var(--bg-2);
    color: var(--accent-red); transform: none;
}

.pad-btn-chat {
    border: 1px solid var(--accent-blue); background: var(--accent-blue);
    color: var(--on-accent);
}

.pad-btn-chat:hover {
    background: var(--accent); transform: none;
}

.pad-empty {
    color: var(--text-2); font-size: var(--font_size_0);
    text-align: center;
}

.pad-approval-content .block_3 {
    padding: var(--font_size_0) var(--font_size_0)
        calc(var(--font_size_0) + var(--spacing_micro));
}

/* Файл use_confirm_payments.css */

.confirm_payments_content {
    color: var(--text-1); font-size: var(--font_size_0);
}

.confirm_payments_content .content-card__title {
    color: var(--text-1); font-size: var(--font_size_1);
}

.confirm_payments_content .content-card__meta,
.confirm_payments_content .content-card__text,
.confirm_payments_content .no-content {
    color: var(--text-2); font-size: var(--font_size_0);
}

.confirm_payments_content .badge {
    background: var(--bg-2); color: var(--accent);
    font-size: var(--font_size_0);
}

.payment-card {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
    gap: var(--spacing_small);
    align-items: start;}

.payment-card__file {
    display: flex; justify-content: flex-end;
}

.payment-card__footer {
    display: flex; grid-column: 1 / -1;
    justify-content: flex-end; gap: var(--spacing_small);
}

.payment-card__chat-btn, .payment-card__open-btn {
    margin: 0; padding: 4px var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    font-size: var(--font_size_0); cursor: pointer;
}

.payment-card__chat-btn {
    background: var(--bg-1); color: var(--text-1);
}

.payment-card__chat-btn:hover {
    background: var(--bg-2); color: var(--text-1);
    transform: none;
}

.payment-card__open-btn {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.payment-card__open-btn:hover {
    background: var(--accent-blue); color: var(--on-accent);
    transform: none;
}

@media (max-width: 760px) {
    .payment-card {
        grid-template-columns: 1fr;
    }
    .payment-card__file {
        justify-content: flex-start;
    }
    .payment-card__footer {
        flex-wrap: wrap; justify-content: flex-start;
    }
}

/* Файл driver_messenger_base.css */

/* Файл driver_messenger.css */

/* Файл driver_messenger.css */

.driver_messages_button {
    position: fixed; right: var(--font_size_1);
    bottom: var(--font_size_1); width: 54px;
    height: 54px; border: 0;
    border-radius: 50%; background: var(--accent);
    color: var(--on-accent); cursor: pointer;
    z-index: 100;
}

.driver_messages_button:hover {
    background: var(--accent-blue);
}

.driver_messages_button_icon {
    font-size: var(--font_size_2);
}

.driver_messages_button_badge, .driver_messages_badge {
    display: inline-flex; min-width: 22px;
    height: 22px; align-items: center;
    justify-content: center; box-sizing: border-box;
    padding: 0 4px; border-radius: var(--font_size_0);
    background: var(--accent-orange-bg); color: var(--accent-orange-text);
    font-size: var(--font_size_0); font-weight: 700;
}

.driver_messages_button_badge {
    position: absolute; top: -4px;
    right: -4px;
}

.driver_messages_panel {
    max-width: 100vw; height: 100dvh;
}

.driver_messages_panel .drawer-header {
    font-size: var(--font_size_1);
}

.driver_messages_panel .drawer-body {
    display: flex; min-height: 0;
    flex-direction: column;
    overflow: hidden;
}

.driver_messages_wrap {
    display: flex; height: 100%;
    min-height: 0; flex: 1;
    flex-direction: column;
    overflow: hidden;
}

.driver_messages_tabs {
    display: flex; flex-shrink: 0;
    gap: 4px; overflow-x: auto;
    overflow-y: hidden; padding-bottom: 4px;
}

.driver_messages_tab {
    flex-shrink: 0; margin: 0;
    padding: 4px var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1); font-size: var(--font_size_0);
    line-height: 1.2; white-space: nowrap;
    cursor: pointer;
}

.driver_messages_tab:hover {
    background: var(--bg-2); color: var(--text-1);
    transform: none; box-shadow: none;
}

.driver_messages_tab--active, .driver_messages_tab--active:hover {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.driver_messages_toolbar, .driver_messages_room_header {
    display: flex; flex-shrink: 0;
    align-items: center; justify-content: space-between;
    gap: var(--spacing_small);
}

.driver_messages_room_title {
    min-width: 0; margin: 0; overflow: hidden;
    border: 0; background: transparent; text-align: right;
    text-overflow: ellipsis; white-space: nowrap;
    cursor: pointer;
}

.driver_messages_room_title:hover {
    background: var(--bg-1); color: var(--text-1);
    transform: none; box-shadow: none;
}

.driver_messages_room_actions {
    flex-shrink: 0;
    gap: var(--spacing_small);}

.driver_messages_add {
    margin: 0; padding: 0;
    border: 0; border-radius: 50%;
    background: var(--accent); color: var(--on-accent);
    cursor: pointer;
}

.driver_messages_add:hover {
    background: var(--accent-blue); transform: none;
}

.driver_messages_list {
    display: flex; min-height: 0;
    flex: 1; flex-direction: column; overflow-y: auto;
    overflow-x: hidden; padding-right: 4px;
}

.driver_messages_empty {
    color: var(--text-2); text-align: center;
}

.driver_messages_loading {
    display: flex; min-height: 120px;
    align-items: center; justify-content: center;
    flex-direction: column; gap: var(--spacing_small);
    color: var(--text-2); text-align: center;
}

.driver_room_card {
    display: block; width: 100%;
    color: var(--text-1); text-align: left;
    cursor: pointer;
}

.driver_room_card:hover {
    color: var(--text-1);
}

.driver_room_card__header, .driver_room_card__footer {
    display: flex; align-items: center;
    justify-content: space-between;
}

.driver_room_card__title, .driver_message_author {
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 700;
}

.driver_room_card__message { overflow: hidden; font-size: var(--font_size_0);
    text-overflow: ellipsis; white-space: nowrap;
}

.driver_room_card__footer {
    color: var(--text-2); font-size: var(--font_size_0);
}

/* Файл driver_messenger_layout.css */

.driver_messages_back {
    margin: 0;
    border: 1px solid var(--border);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0); cursor: pointer;
}

.driver_messages_back:hover {
    background: var(--bg-2); color: var(--text-1);
    transform: none;
}

.driver_message_row {
    display: flex; width: 100%;
    justify-content: flex-start;
}

.driver_message_row--mine {
    justify-content: flex-end;
}

.driver_message_group {
    display: flex; width: 100%;
    flex-direction: column;
}

.driver_message_day {
    display: flex; align-items: center;
    justify-content: center; width: 100%;
}

.driver_message_day span { line-height: 1.2;
}

.driver_message_card--mine .driver_message_text,
.driver_message_card--mine .driver_message_time {
    color: var(--on-accent);
}

.driver_message_text {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_0); white-space: pre-wrap;
}

.driver_message_time { color: var(--text-2); line-height: 1;
    text-align: right;
}

.driver_messages_form { flex-shrink: 0; margin-top: auto;
    padding-top: var(--spacing_small);
}

.driver_messages_input {
    width: 100%;
    box-sizing: border-box; margin: 0; color: var(--text-1);
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
}

.driver_messages_input:focus { outline: none;
}

.driver_messages_send { margin: 0; border: 0; background: var(--accent);
    color: var(--on-accent); font-size: var(--font_size_0);
    line-height: 1.2; cursor: pointer;
}

.driver_messages_send:hover {
    background: var(--accent-blue); transform: none;
}

.driver_messages_send:disabled {
    opacity: 0.55; cursor: not-allowed;
}

.driver_user_picker {
    height: 100%; gap: var(--spacing_small);
    color: var(--text-1);
    font-size: var(--font_size_0);}

.driver_user_picker__title {
    gap: 4px; color: var(--text-1);
    font-size: var(--font_size_0);}

.driver_user_picker__title input {
    box-sizing: border-box; min-height: 38px;
    margin: 0; padding: 4px var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
}

.driver_user_picker__search {
    grid-template-columns: auto minmax(0, 1fr); align-items: center;
    gap: var(--spacing_small); box-sizing: border-box;
    min-height: 38px; padding: 0 var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1);
    color: var(--text-2);}

.driver_user_picker__search input {
    width: 100%; height: 36px;
    box-sizing: border-box; margin: 0;
    padding: 4px 0; border: 0;
    background: transparent; color: var(--text-1);
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
    outline: none;
}

.driver_user_picker__list {
    gap: var(--spacing_small);
    overflow-y: auto;}

.driver_user_picker__actions { flex-shrink: 0; margin-top: auto;
}

.driver_messages_member button {
    flex-shrink: 0; width: 30px;
    height: 30px; margin: 0;
    padding: 0; border: 1px solid var(--border);
    border-radius: 50%; background: var(--bg-1);
    color: var(--accent-orange-text); font-size: var(--font_size_1);
    line-height: 1; cursor: pointer;
}

.driver_messages_member button:hover {
    background: var(--bg-2); transform: none;
}

/* Файл driver_messenger_rooms.css */

.driver_user_picker__item {
    display: flex; align-items: center;
    gap: var(--spacing_small); cursor: pointer;
}

.driver_user_picker__item span {
    display: flex; flex-direction: column;
    gap: 4px;
}

.driver_user_picker__item small {
    color: var(--text-2); font-size: var(--font_size_0);
}

.confirm_payments_content {
    display: flex; min-height: 0;
    flex: 1; flex-direction: column;
    gap: var(--spacing_small); overflow-y: auto;
    color: var(--text-1); font-size: var(--font_size_0);
}

.driver_messages_wrap .confirm_payments_content .content-toolbar {
    gap: 4px; padding-right: 0;
}

.driver_messages_wrap .confirm_payments_content .search {
    height: 38px; gap: var(--spacing_small);
    border-color: var(--border); background: var(--bg-1);
}

.driver_messages_wrap .confirm_payments_content .search input {
    box-sizing: border-box; height: 36px;
    margin: 0; padding: 4px var(--font_size_0);
    color: var(--text-1); font-size: var(--font_size_0);
}

@media (max-width: 760px) {
    .driver_messages_button {
        right: var(--font_size_0); bottom: var(--font_size_0);
    }
    .driver_messages_form {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
}

/* Управление участниками, сообщениями и вложениями */

.driver_messages_members_view { overflow: hidden;
}

.driver_room_title_editor {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto;
    gap: var(--spacing_small); align-items: stretch;
}

.driver_room_title_editor input {
    min-width: 0; min-height: 36px;
    margin: 0; padding: 4px var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.driver_room_title_editor button, .driver_messages_member_add,
.driver_message_action_bar button, .driver_message_file_button {
    min-height: 36px; margin: 0;
    padding: 4px var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1); font-size: var(--font_size_0);
    cursor: pointer;
}

.driver_messages_member_add {
    align-self: flex-start;
}

.driver_message_action_bar {
    margin-left: auto;
}

.driver_message_card { text-align: left;
    cursor: pointer;
}

.driver_message_card:hover {
    transform: none;
}

.driver_forward_rooms {
    min-height: 0; gap: var(--spacing_small);
    overflow-y: auto;}

@media (max-width: 640px) {
    .driver_room_title_editor {
        grid-template-columns: minmax(0, 1fr);
    }
}

.driver_message_forwarded {
    font-size: var(--font_size_0); font-weight: 600;
}

.driver_message_card--mine .driver_message_forwarded {
    color: var(--on-accent); opacity: 0.8;
}

/* Финальная компоновка мессенджера: действия должны быть заметны,
   а сообщения — компактны по вертикали. */

.driver_message_card {
    max-width: 50%; margin: 0;
    padding: 4px var(--spacing_small) 3px; border-radius: var(--spacing_small);
}

.driver_message_card--selected {
    outline: 2px solid var(--accent-orange-bg); outline-offset: 1px;
}

.driver_message_author {
    margin: 0 0 2px; line-height: 1.15;
}

.driver_message_row--system {
    justify-content: center;
}

.driver_messages_wrap .driver_message_card--system {
    border-color: var(--border);
    text-align: center; cursor: default;
}

.driver_message_card--system .driver_message_text,
.driver_message_card--system .driver_message_time {
    color: var(--text-2); text-align: center;
}

.driver_message_action_bar {
    min-width: 0; flex-wrap: wrap;
    justify-content: flex-end;
}

.driver_message_action_bar button, .driver_message_file_button {
    display: inline-flex; width: 36px;
    min-width: 36px; height: 36px;
    align-items: center; justify-content: center;
    padding: 0; font-size: var(--font_size_1);
    line-height: 1;
}

/* Файл driver_messenger_messages.css */

.driver_room_title_editor {
    flex-shrink: 0;
}

.driver_room_title_editor input {
    width: 100%;
}

.driver_messages_member_add {
    width: 100%; flex-shrink: 0;
    text-align: center;
}

.driver_messages_member span {
    min-width: 0; overflow-wrap: anywhere;
}

@media (orientation: portrait) {
    .driver_message_card {
        max-width: 70%;
    }
}

.driver_message_card--deleted {
    cursor: default; opacity: 0.72;
}

/* Вкладки панели перенесены в синюю шапку DriverPanel. */

.driver_messages_panel .drawer-header { gap: 4px;
}

.driver_messages_panel .drawer-title {
    display: flex;
    flex: 1;
    align-self: stretch;
}

.driver_messages_tabs--header .driver_messages_tab {
    display: inline-flex;
    align-items: center;
}

.driver_messages_panel .drawer-close {
    flex-shrink: 0; padding: 0;
}

.driver_messages_toolbar--chat-list {
    justify-content: stretch;
}

.driver_room_search,
.driver_message_search {
    min-width: 0;
    grid-template-columns: auto minmax(0, 1fr) auto;
    box-sizing: border-box;
    color: var(--text-2);
}

.driver_room_search input, .driver_message_search input {
    width: 100%;
    height: 34px; box-sizing: border-box;
    margin: 0; padding: 2px 0; font-family: var(--font_family_interface);
}

.driver_message_search {
    flex: 0 0 auto;
}

.driver_message_search button, .driver_message_search_toggle {
    display: inline-flex; width: 34px;
    min-width: 34px; height: 34px;
    align-items: center; justify-content: center;
    margin: 0; padding: 0;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_1); cursor: pointer;
}

.driver_message_search button {
    width: 28px; min-width: 28px;
    height: 28px; border: 0;
}

.driver_message_search_toggle:hover,
.driver_message_search_toggle--active {
    border-color: var(--accent); background: var(--bg-2);
    color: var(--accent); transform: none;
}

.driver_messages_room_header > .driver_messages_room_title {
    flex: 1;
}

.driver_message_time {
    display: flex; align-items: center;
    justify-content: flex-end; gap: 4px;
}

.driver_message_ticks {
    color: currentColor; font-weight: 700;
    letter-spacing: -3px; opacity: 0.72;
}

.driver_message_ticks--read {
    opacity: 1;
}

.driver_messages_input { overflow-y: auto;
}

.driver_messages_send {
    display: inline-flex;
    min-width: 38px;
    min-height: 38px; align-items: center;
    justify-content: center; padding: 0;
}

.driver_messages_send svg {
    width: var(--font_size_1); height: var(--font_size_1);
    fill: currentColor;
}

@media (max-width: 760px), (orientation: portrait) {
    .driver_messages_form {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
    .driver_messages_tabs--header .driver_messages_tab {
        min-height: 38px; padding-right: var(--spacing_small);
        padding-left: var(--spacing_small);
    }
}

/* Прикреплённый файл и редактирование в поле ввода */

.driver_messages_form .driver_messages_input {
    max-height: 60vh;
}

.driver_message_edit_context, .driver_message_pending_file {
    min-width: 0;
    color: var(--text-1);
}

/* Ссылка на карточку документа из сообщения согласования. */

.driver_message_document_link {
    display: inline-flex; align-items: center;
    margin: 6px 0 0; padding: 5px 8px;
    border: 1px solid currentColor; border-radius: var(--spacing_small);
    background: transparent; color: var(--accent);
    font-size: var(--font_size_0); font-weight: 700;
    cursor: pointer;
}

.driver_message_document_link:hover {
    background: var(--bg-2); color: var(--accent);
    transform: none;
}

/* Файл driver_messenger_composer.css */

.driver_message_edit_context > div {
    display: flex; min-width: 0;
    flex-direction: column; gap: 2px;
}

.driver_message_edit_context span, .driver_message_pending_file span {
    min-width: 0; overflow: hidden; font-size: var(--font_size_0);
    text-overflow: ellipsis; white-space: nowrap;
}

.driver_message_edit_context button,
.driver_message_pending_file button {
    flex-shrink: 0; min-width: 32px;
    min-height: 32px; margin: 0;
    padding: 2px 8px; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-2);
    color: var(--text-1); cursor: pointer;
}

/* Современный внешний вид мессенджера */

.driver_messages_panel .drawer {
    width: min(1160px, 96vw); border-left: 1px solid rgba(255, 255, 255, 0.15);
}

.driver_messages_panel .drawer-header {
    padding: 0;
}

.driver_messages_tabs--header {
    display: flex; align-items: stretch;
    gap: 0;
}

.driver_messages_tabs--header .driver_messages_tab:hover {
    background: rgba(255, 255, 255, 0.08); color: var(--on-accent);
}

.driver_messages_toolbar--chat-list, .driver_messages_room_header {
    padding: 0 6px;
}

.driver_room_search, .driver_message_search {
    display: flex; align-items: center;
    gap: 8px; flex: 1; padding: 0 14px;
}

.driver_room_search input, .driver_message_search input {
    flex: 1; min-width: 0;
    border: 0; outline: none;
    background: transparent; color: var(--text-1);
    font-size: var(--font_size_0);
}

.driver_messages_add, .driver_messages_back,
.driver_message_search_toggle, .driver_messages_member_add {
    min-height: 42px; border-radius: 14px;
    box-shadow: 0 10px 24px rgba(38, 77, 135, 0.08);
}

.driver_messages_add {
    width: 42px; height: 42px;
}

.driver_room_card:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 36px rgba(38, 77, 135, 0.12);
}

.driver_room_card__header, .driver_room_card__footer {
    gap: 10px;
}

.driver_messages_wrap .driver_message_card--mine {
    border-color: rgba(21, 87, 170, 0.26);
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.98) 0%,
        rgba(232, 240, 253, 0.98) 100%
    ); color: var(--text-1);
}

.driver_messages_form {
    display: grid;
    border: 0; border-radius: 0;
}

.driver_messages_form--editing {
    grid-template-columns: 1fr auto;
}

.driver_message_edit_context, .driver_message_pending_file {
    grid-column: 1 / -1; display: flex;
    align-items: center; justify-content: space-between;
    gap: 10px;
}

.driver_message_edit_context span, .driver_message_pending_file span {
    color: var(--text-2);
}

.driver_message_file_button {
    display: inline-grid; width: 38px;
    height: 38px; place-items: center;
    padding: 0; border-radius: 12px;
}

.driver_message_file_button svg {
    width: 21px; height: 21px;
    fill: none; stroke: var(--bg-1);
    stroke-width: 2; stroke-linecap: round;
    stroke-linejoin: round;
}

.driver_messages_send {
    width: 44px; height: 44px;
    border-radius: 14px;
}

.driver_message_action_bar {
    display: flex; align-items: center;
}

/* Файл driver_messenger_files.css */

.driver_messages_members_list {
    display: grid;
}

.driver_messages_member {
    justify-content: space-between;
}

.drawer-panel.driver_messages_panel {
    width: min(980px, 94vw);
    border-left: 1px solid color-mix(
        in srgb, var(--blue-navy) 8%, var(--border)
    ); background: var(--bg-2);
}

.drawer-panel.driver_messages_panel .drawer-header {
    padding: 0;
    background: linear-gradient(
        180deg,
        var(--bg-1) 0%,
        color-mix(in srgb, var(--accent) 6%, var(--bg-1)) 100%
    ); color: var(--text-1);
}

.drawer-panel.driver_messages_panel .drawer-title {
    display: flex; min-width: 0;
    flex: 1;
}

/* Финальные правки читаемости, компактности и настроек мессенджера. */

.driver_messages_wrap {
    font-size: var(--messenger-font-size, var(--font_size_0));
}

.driver_messages_wrap .driver_room_card__title,
.driver_messages_wrap .driver_room_card__message,
.driver_messages_wrap .driver_room_card__footer,
.driver_messages_wrap .driver_message_author,
.driver_messages_wrap .driver_message_forwarded,
.driver_messages_wrap .driver_message_text,
.driver_messages_wrap .driver_message_time,
.driver_messages_wrap .driver_messages_input,
.driver_messages_wrap .driver_room_search input,
.driver_messages_wrap .driver_message_search input,
.driver_messages_wrap .driver_messages_settings,
.driver_messages_wrap .doc-card__file-name {
    font-size: var(--messenger-font-size, var(--font_size_0));
}

.driver_messages_wrap .driver_message_card--mine,
.driver_messages_wrap .driver_message_card--mine .driver_message_author,
.driver_messages_wrap .driver_message_card--mine
.driver_message_forwarded,
.driver_messages_wrap .driver_message_card--mine .driver_message_text,
.driver_messages_wrap .driver_message_card--mine .driver_message_time,
.driver_messages_wrap .driver_message_card--mine .driver_message_ticks,
.driver_messages_wrap .driver_message_card--mine .doc-card__file-name,
.driver_messages_wrap .driver_message_card--mine
.doc-card__file-download {
    color: var(--text-1);
}

.driver_messages_wrap .driver_message_card--mine .driver_message_forwarded {
    opacity: 1; color: var(--text-2);
}

.driver_messages_wrap .driver_message_card--mine .doc-card__file-item {
    border-color: var(--border); background: var(--bg-1);
}

.driver_messages_wrap .driver_message_card--mine .doc-card__file-item:hover {
    background: var(--bg-2);
}

.driver_message_document_attachment {
    width: 100%;
}

.driver_messages_toolbar_actions {
    flex-shrink: 0;
    gap: 8px;}

.driver_messages_settings_button {
    display: inline-flex; width: 42px;
    height: 42px; align-items: center;
    justify-content: center; margin: 0;
    padding: 0; border: 1px solid var(--border);
    border-radius: 50%; background: var(--bg-1);
    color: var(--text-1); font-size: var(--font_size_0) !important;
    line-height: 1; cursor: pointer;
}

.driver_messages_add {
    font-size: var(--font_size_0) !important; line-height: 1;
}

.driver_messages_settings_button:hover,
.driver_messages_settings_button--active {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent); transform: none;
}

.driver_messages_settings {
    flex-shrink: 0; gap: 8px;
    margin: 0 6px;
    padding: var(--spacing_small);}

.driver_messages_settings__header, .driver_messages_settings__scale {
    display: flex; align-items: center;
    justify-content: space-between; gap: 10px;
}

.driver_messages_settings input[type='range'] {
    width: 100%; accent-color: var(--accent);
}

.driver_messages_settings__scale {
    color: var(--text-2);
}

.driver_messages_settings__scale button {
    margin: 0; padding: 4px var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0); cursor: pointer;
}

.driver_messages_settings__scale button:hover {
    border-color: var(--accent); background: var(--bg-2);
    color: var(--text-1); transform: none;
}

/* Компактная верхняя панель и список чатов. */

.drawer-panel.driver_messages_panel .drawer-header {
    min-height: 44px;
}

.driver_messages_wrap .driver_room_card {
    min-height: 0; padding: 10px 12px;
}

.driver_room_card__header {
    align-items: flex-start;
}

.driver_room_card__title {
    min-width: 0; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}

.driver_room_card__meta {
    display: inline-flex; flex-shrink: 0;
    align-items: center; gap: 8px;
    margin-left: auto;
}

.driver_room_card__date {
    color: var(--text-2);
    font-size: var(--messenger-font-size, var(--font_size_0));
    font-weight: 400; white-space: nowrap;
}

@media (max-width: 760px) {
    .driver_messages_tabs--header .driver_messages_tab {
        height: 42px; padding: 0 12px;
    }
    .drawer-panel.driver_messages_panel .drawer-header {
        min-height: 42px;
    }
    .drawer-panel.driver_messages_panel .drawer-close {
        width: 42px; height: 42px;
    }
}

/* Компактный список участников и полноразмерное поле уведомлений. */

.driver_messages_members_list {
    flex: 0 1 auto;
    align-items: stretch; justify-content: flex-start;
}

.driver_messages_member {
    width: 100%; min-height: 52px;
    box-sizing: border-box; flex: 0 0 auto;
}

.driver_messages_form--notification .driver_messages_input { width: 100%;
}

/* Файл driver_messenger_drawer.css */

/* Финальные исправления панели действий и выбора участников. */

.driver_message_action_bar button {
    border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
    background: var(--bg-1); color: var(--accent-dark);
    opacity: 1;
}

.driver_message_action_bar button:hover,
.driver_message_action_bar button:focus-visible {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.driver_user_picker__actions {
    display: flex; justify-content: flex-end;
}

.driver_user_picker__submit { line-height: 1.2;
}

/* Итоговая видимость действий и кнопки выбора участников. */

.driver_messages_room_header .driver_message_action_bar {
    position: relative; z-index: 2;
    padding: 6px; border: 1px solid var(--border);
    background: var(--bg-1); box-shadow: var(--shadow);
}

.driver_messages_room_header .driver_message_action_bar button {
    border: 1px solid var(--accent); background: var(--bg-1);
    color: var(--accent-dark); opacity: 1;
    box-shadow: none;
}

.driver_messages_room_header .driver_message_action_bar button:hover,
.driver_messages_room_header .driver_message_action_bar
button:focus-visible {
    background: var(--accent); color: var(--on-accent);
}

.driver_user_picker__actions {
    box-sizing: border-box; width: 100%;
    padding: 8px 0 0;
}

.driver_user_picker__submit {
    height: auto; min-height: 42px;
}

.approvals-control-tab {
    min-height: 0;
    height: 100%;}

.approvals-control-tab__tabs {
    display: flex; gap: 6px;
    padding: 5px; border-bottom: 1px solid var(--border);
}

.approvals-control-tab__tabs button {
    min-height: 32px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    cursor: pointer;
}

.approvals-control-tab__tabs button.active {
    background: var(--accent);
}

.late-readings-tab__header {
    display: flex; justify-content: space-between;
    gap: 8px; padding: 8px;
    font-weight: 700;
}

.late-readings-tab__table-wrap {
    overflow: auto;
}

.late-readings-tab__table {
    width: 100%; border-collapse: collapse;
    font-size: var(--messenger-font-size);
}

.late-readings-tab__table th, .late-readings-tab__table td {
    padding: 6px; border-bottom: 1px solid var(--border);
    text-align: left;
}

.late-readings-tab__row--new {
    background: rgba(255, 193, 7, 0.16);
}

.approvals-control-tab__tabs button {
    align-items: center; display: inline-flex;
    gap: 6px;
}

.approvals-count-badge, .driver_messages_tab__approval-badge {
    align-items: center; background: var(--warning, #ff7a00);
    border-radius: 999px; color: #fff;
    display: inline-flex; font-size: var(--font_size_caption);
    font-weight: 700; justify-content: center;
    min-height: 20px; min-width: 20px;
    padding: 0 5px;
}

.profile-photo-approvals {
    gap: 12px;
    min-width: 0;}

.profile-photo-approvals__card {
    border: 1px solid var(--border); gap: 12px;
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
    padding: 14px;}

.profile-photo-approvals__card--new {
    border-color: var(--warning, #ff7a00);
}

.profile-photo-approvals__info h3 {
    margin: 0 0 10px;
}

.profile-photo-approvals__info dl {
    display: grid; gap: 6px;
    margin: 0;
}

.profile-photo-approvals__info dl > div {
    display: grid; gap: 4px;
    grid-template-columns: 140px 1fr;
}

.profile-photo-approvals__info dt {
    color: var(--text-2);
}

.profile-photo-approvals__info dd {
    margin: 0; overflow-wrap: anywhere;
}

.profile-photo-approvals__actions {
    display: flex; flex-wrap: wrap;
    gap: 8px; grid-column: 1 / -1;
}

.profile-photo-approvals__actions button {
    border: 1px solid var(--border); border-radius: 8px;
    cursor: pointer; padding: 8px 12px;
}

.profile-photo-approvals__approve {
    background: var(--success, #2b9b67); color: #fff;
}

.profile-photo-approvals__reject {
    background: var(--danger, #c94040); color: #fff;
}

.profile-photo-approvals__empty {
    padding: 24px; text-align: center;
}

@media (max-width: 760px) {
    .profile-photo-approvals__card {
        grid-template-columns: 1fr;
    }
    .profile-photo-approvals__info dl > div {
        grid-template-columns: 1fr;
    }
}

.approvals-signature-reminder {
    margin: 12px; padding: 16px;
    border: 1px solid var(--border); border-radius: var(--font_size_0);
    background: var(--bg-1); color: var(--text-1);
}

.approvals-signature-reminder h3 {
    margin: 0 0 10px; font-size: var(--font_size_1);
}

.approvals-signature-reminder p {
    margin: 6px 0; font-size: var(--font_size_0);
    line-height: 1.45;
}

/* Файл driver_messenger_forward.css */

.driver_forward_room {
    width: 100%; margin: 0;
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    text-align: left; cursor: pointer;
}

.driver_forward_room:hover, .driver_forward_room:focus-visible {
    border-color: var(--accent); background: var(--bg-2);
    color: var(--text-1); transform: none;
}

.driver_message_forward_preview {
    grid-column: 1 / -1; display: flex;
    align-items: center; justify-content: space-between;
    gap: var(--spacing_small); padding: 7px 10px;
    border: 1px solid var(--border); border-left: 4px solid var(--accent);
    border-radius: 11px; background: var(--bg-1);
    color: var(--text-1);
}

.driver_message_forward_preview > div {
    display: flex; min-width: 0;
    flex-direction: column; gap: 2px;
}

.driver_message_forward_preview strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.driver_message_forward_preview span {
    min-width: 0; overflow: hidden;
    color: var(--text-2); font-size: var(--font_size_0);
    text-overflow: ellipsis; white-space: nowrap;
}

.driver_message_forward_preview button {
    flex-shrink: 0; min-width: 32px;
    min-height: 32px; margin: 0;
    padding: 2px 8px; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-2);
    color: var(--text-1); cursor: pointer;
}

.driver_message_forward_preview_list {
    gap: var(--spacing-xs, 4px);
    min-width: 0;}

.driver_message_forward_preview_list span {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.driver_message_forwarded_cards {
    gap: var(--spacing-xs, 4px);
    margin-top: var(--spacing-xs, 4px);}

.driver_message_forwarded_card {
    border-left: 3px solid var(--color-primary, #2f89c8);
    padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);
    background: rgb(255 255 255 / 28%);
    border-radius: 0 var(--border-radius-sm, 6px) var(--border-radius-sm, 6px)
        0;
}

.driver_message_forwarded_author {
    color: var(--color-primary-dark, #14689f); font-weight: 700;
}

.driver_message_forwarded_text {
    white-space: pre-wrap; overflow-wrap: anywhere;
}

.driver_message_forwarded_date {
    margin-top: 2px; font-size: var(--font_size_caption);
    opacity: 0.65; text-align: right;
}

/* Файл voice_messages.css */

.driver_voice_recorder {
    position: relative; flex: 0 0 auto;
    justify-content: flex-end;}

.driver_voice_recorder__button {
    display: inline-flex; width: 38px;
    height: 38px; align-items: center;
    justify-content: center; padding: 0;
    border: 0; border-radius: 50%;
    background: var(--accent); color: var(--on-accent);
    cursor: pointer; touch-action: none;
    user-select: none;
}

.driver_voice_recorder__button:hover,
.driver_voice_recorder__button:focus-visible {
    background: var(--accent-blue);
}

.driver_voice_recorder__button:disabled {
    cursor: default; opacity: .55;
}

.driver_voice_recorder__button svg, .driver_voice_message__play svg {
    width: 19px; height: 19px;
    fill: currentColor;
}

.driver_voice_recorder--recording {
    position: absolute; right: 6px;
    bottom: 6px; left: 54px;
    z-index: 5; min-height: 48px;
    justify-content: space-between; padding-left: 12px;
    border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
    border-radius: 16px; background: var(--bg-1);
    box-shadow: 0 10px 28px color-mix(in srgb, var(--blue-navy) 12%,
        transparent);
}

.driver_voice_recorder__status {
    min-width: 0; gap: 8px;
    color: var(--text-1);}

.driver_voice_recorder__pulse {
    width: 9px; height: 9px;
    flex: 0 0 auto; border-radius: 50%;
    background: #d83b3b; animation: driver_voice_pulse 1s ease-in-out infinite;
}

.driver_voice_recorder__hint {
    color: var(--text-3);
    font-size: var(--font_size_caption);}

.driver_message_voice_attachment {
    margin-top: 5px;
}

.driver_voice_message {
    display: grid; grid-template-columns: 42px minmax(190px, 1fr) auto;
    align-items: center; gap: 9px;
    width: min(390px, 68vw); min-width: 280px;
    color: var(--text-1);
}

.driver_voice_message audio {
    display: none;
}

.driver_voice_message__play {
    display: inline-flex; width: 42px;
    height: 42px; align-items: center;
    justify-content: center; padding: 0;
    border: 0; border-radius: 50%;
    background: var(--accent); color: var(--on-accent);
    cursor: pointer;
}

.driver_voice_message__play:hover,
.driver_voice_message__play:focus-visible {
    background: var(--accent-blue);
}

.driver_voice_message__play:disabled {
    cursor: wait; opacity: .68;
}

.driver_voice_message__loader {
    width: 18px; height: 18px;
    border: 2px solid color-mix(in srgb, var(--bg-1) 42%, transparent);
    border-top-color: var(--on-accent); border-radius: 50%;
    animation: driver_voice_spin .8s linear infinite;
}

.driver_voice_message__content {
    min-width: 0;
    gap: 3px;}

.driver_voice_message__waveform {
    width: 100%; height: 28px;
    gap: 2px; padding: 0;
    border: 0; background: transparent;
    cursor: pointer;}

.driver_voice_message__bar {
    width: 3px; height: var(--voice-bar-height);
    min-height: 4px; border-radius: 999px;
    background: color-mix(in srgb, var(--text-3) 42%, transparent);
    transition: background-color .12s ease;
}

.driver_voice_message__bar--played {
    background: var(--accent);
}

.driver_voice_message__meta {
    min-width: 0; justify-content: space-between;
    gap: 8px; color: var(--text-3);
    font-size: var(--font_size_caption);}

.driver_voice_message__meta span:last-child {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.driver_voice_message__speed {
    min-width: 38px; height: 28px;
    padding: 0 7px; border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 11%, var(--bg-1));
    color: var(--accent-blue); font-size: var(--font_size_caption);
    font-weight: 700; cursor: pointer;
}

.driver_voice_message__speed:hover,
.driver_voice_message__speed:focus-visible {
    background: color-mix(in srgb, var(--accent) 19%, var(--bg-1));
}

.driver_message_card--mine .driver_voice_message {
    color: var(--text-1);
}

.driver_message_card--mine .driver_voice_message__play {
    background: var(--bg-1); color: var(--accent-blue);
}

.driver_message_card--mine .driver_voice_message__bar {
    background: color-mix(in srgb, var(--blue-navy) 18%, transparent);
}

.driver_message_card--mine .driver_voice_message__bar--played {
    background: var(--accent-blue);
}

.driver_message_card--mine .driver_voice_message__meta {
    color: var(--text-2);
}

.driver_voice_message--error {
    display: block; width: auto;
    min-width: 0; color: var(--danger, #b42318);
}

@keyframes driver_voice_pulse {
    0%, 100% {
        opacity: .45; transform: scale(.85);
    }
    50% {
        opacity: 1; transform: scale(1);
    }
}

@keyframes driver_voice_spin {
    to {
        transform: rotate(360deg);
    }
}

@media (orientation: portrait), (max-width: 760px) {
    .driver_voice_recorder--recording {
        left: 50px;
    }
    .driver_voice_recorder__hint {
        max-width: 145px;
    }
    .driver_voice_message {
        grid-template-columns: 38px minmax(150px, 1fr) auto;
        width: min(330px, 76vw); min-width: 245px;
    }
    .driver_voice_message__play {
        width: 38px; height: 38px;
    }
    .driver_voice_message__waveform {
        gap: 1px;
    }
}

/* Файл driver_messenger_permissions.css */

.driver_messages_member_name {
    gap: 6px; font-weight: 700;
}

.driver_messages_member_owner { border-radius: 999px;
    background: var(--bg-2); color: var(--text-2); font-weight: 600;
}

.driver_participant_permissions {
    display: grid;
}

.driver_participant_permission {
    display: flex; align-items: center; min-width: 0;
    color: var(--text-2);
}

.driver_participant_permission input {
    margin: 0;
}

.driver_messages_delete_room {
    border-color: var(--error-color, #c62828);
    color: var(--error-color, #c62828);
}

@media (max-width: 760px) {
    .driver_messages_member {
        grid-template-columns: 1fr;
    }
    .driver_participant_permissions {
        grid-template-columns: 1fr;
    }
    .driver_messages_member_actions {
        justify-content: flex-end;
    }
}

.driver_room_title_editor--header {
    min-width: 0; flex: 1;
    grid-template-columns: minmax(0, 1fr) auto; align-items: center;
}

.driver_room_title_editor--header input {
    min-width: 0;
}

.driver_room_title_editor--header button {
    white-space: nowrap;
}

@media (max-width: 640px) {
    .driver_room_title_editor--header {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

/* Файл driver_messenger_settings.css */

.driver_messenger_settings_panel .drawer-body {
    background: var(--bg-2);
}

.driver_messenger_settings_content {
    gap: var(--spacing_small);
    padding: var(--spacing_small);}

.driver_messenger_settings_group {
    gap: var(--spacing_small);}

.driver_messenger_settings_group h3 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1);
}

.driver_messenger_font_setting, .driver_messenger_select_setting,
.driver_messenger_setting_toggle {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--spacing_small); align-items: center;
}

.driver_messenger_font_setting > span,
.driver_messenger_select_setting > span,
.driver_messenger_setting_toggle > span {
    display: flex; min-width: 0;
    flex-direction: column; gap: 2px;
}

.driver_messenger_font_setting small,
.driver_messenger_select_setting small,
.driver_messenger_setting_toggle small {
    color: var(--text-2); font-size: var(--font_size_caption);
}

.driver_messenger_select_setting select {
    min-width: 92px; padding: 6px 8px;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.driver_messenger_font_setting input[type='range'] {
    grid-column: 1 / -1; width: 100%;
    accent-color: var(--accent);
}

.driver_messenger_setting_toggle input {
    width: 22px; height: 22px;
    margin: 0; accent-color: var(--accent);
}

.driver_messenger_sound_test, .driver_messenger_settings_actions button {
    margin: 0; padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0); cursor: pointer;
}

.driver_messenger_sound_test {
    align-self: flex-start;
}

.driver_messenger_settings_actions {
    display: flex; justify-content: flex-end;
}

/* Файл header_and_rooms.css */

.driver_messages_panel .drawer {
    background: var(--bg-1);
}

.driver_messages_tabs--header {
    min-width: 0;
}

.driver_messages_tabs--header .driver_messages_tab {
    position: relative;
    transition:
        background-color .16s ease,
        color .16s ease;
}

.driver_messages_tabs--header .driver_messages_tab::after {
    position: absolute; right: 12px;
    bottom: 0; left: 12px;
    height: 3px; border-radius: 3px 3px 0 0;
    background: transparent; content: '';
}

.driver_messages_tabs--header .driver_messages_tab--active,
.driver_messages_tabs--header .driver_messages_tab--active:hover {
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-1));
    color: var(--accent-blue);
}

.driver_messages_panel .drawer-close {
    margin-right: 6px;
}

.driver_messages_panel .drawer-body {
    background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 3%,
        var(--bg-2)) 0%, var(--bg-2) 100%);
}

.driver_messages_wrap { padding: 0;
}

.driver_messages_back, .driver_message_search_toggle,
.driver_messages_add, .driver_messages_member_add {
    border: 1px solid var(--border); background: var(--bg-1);
    color: var(--text-1); box-shadow: none;
    transition:
        border-color .16s ease,
        background-color .16s ease,
        color .16s ease;
}

.driver_messages_back {
    min-height: 38px; padding: 5px 12px;
    border-radius: 12px;
}

.driver_messages_back:hover, .driver_message_search_toggle:hover,
.driver_messages_add:hover, .driver_messages_member_add:hover {
    border-color: color-mix(in srgb, var(--accent) 42%, var(--border));
    background: color-mix(in srgb, var(--accent) 7%, var(--bg-1));
    color: var(--accent-blue);
}

.driver_messages_room_title {
    padding: 6px 9px; border-radius: 10px;
    color: var(--text-1); font-size: var(--font_size_1);
    font-weight: 650;
}

.driver_room_search, .driver_message_search {
    min-height: 40px; border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-1);
    box-shadow: none;
}

.driver_room_search:focus-within, .driver_message_search:focus-within {
    border-color: color-mix(in srgb, var(--accent) 58%, var(--border));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);
}

.driver_messages_list {
    scrollbar-width: thin;
    scrollbar-color:
        color-mix(in srgb, var(--text-3) 40%, transparent)
        transparent;
}

.driver_messages_list::-webkit-scrollbar {
    width: 6px;
}

.driver_messages_list::-webkit-scrollbar-thumb {
    border: 2px solid transparent; border-radius: 999px;
    background: color-mix(in srgb, var(--text-3) 40%, transparent);
    background-clip: padding-box;
}

/* Файл messages.css */

.driver_room_card {
    transition:
        border-color .16s ease,
        background-color .16s ease;
}

.driver_room_card__title {
    color: var(--text-1); font-weight: 650;
}

.driver_room_card__message {
    margin: 4px 0 0; color: var(--text-3);
}

.driver_message_day {
    margin: 5px 0;
}

.driver_message_day span {
    padding: 3px 9px;
    border-radius: 999px;
    color: var(--text-2);
    font-size: var(--font_size_caption);
}

.driver_messages_wrap .driver_message_card {
    cursor: pointer;
    transition:
        border-color .16s ease,
        background-color .16s ease;
}

.driver_messages_wrap .driver_message_card:hover {
    border-color: color-mix(in srgb, var(--accent) 24%, var(--border));
}

.driver_messages_wrap .driver_message_card--mine,
.driver_messages_wrap .driver_message_card--mine:hover {
    border-color: color-mix(in srgb, var(--accent) 38%, var(--border));
}

.driver_message_card--mine .driver_message_author,
.driver_message_card--mine .driver_message_text,
.driver_message_card--mine .driver_message_time,
.driver_message_card--mine .driver_message_forwarded {
    color: var(--on-accent);
}

.driver_message_author {
    margin-bottom: 2px; color: var(--blue-navy);
    font-size: var(--font_size_button); font-weight: 650;
}

.driver_message_text {
    line-height: 1.38; overflow-wrap: anywhere;
}

.driver_message_forwarded {
    margin-bottom: 4px; padding-left: 8px;
    border-left: 2px solid color-mix(in srgb, var(--accent) 54%,
        var(--border));
    color: var(--text-2);
}

.driver_message_time {
    margin-top: 3px; font-size: var(--font_size_caption);
    opacity: .7;
}

.driver_messages_wrap .driver_message_card--system {
    max-width: min(88%, 760px); padding: 5px 10px;
    border: 1px solid var(--border); border-radius: 999px;
    background: var(--bg-1); box-shadow: none;
    color: var(--text-2);
}

.driver_message_attachment,
.driver_message_document_attachment {
    border-radius: 10px;
}

.driver_message_action_bar {
    gap: 4px; padding: 4px;
    border: 1px solid var(--border); border-radius: 12px;
    background: var(--bg-1);
    box-shadow: 0 3px 12px color-mix(in srgb, var(--blue-navy) 8%,
        transparent);
}

.driver_message_action_bar button {
    width: 32px; min-width: 32px;
    height: 32px; border-radius: 9px;
}

/* Файл composer_and_mobile.css */

.driver_messages_form {
    position: sticky; bottom: 0;
    grid-template-columns: 38px minmax(0, 1fr) 38px; align-items: center;
    gap: 7px; min-height: 46px;
    margin: auto 2px 0; padding: 5px 0 2px; z-index: 3;
}

.driver_messages_form--notification {
    grid-template-columns: minmax(0, 1fr) 38px;
}

.driver_messages_form--editing {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
}

.driver_messages_form--editing .driver_message_file_button {
    grid-column: 1;
}

.driver_messages_form--editing .driver_messages_input {
    grid-column: 2;
    min-width: 0;
}

.driver_messages_form--editing .driver_messages_send {
    grid-column: 3;
}

.driver_messages_form--notification .driver_messages_input {
    grid-column: 1; min-width: 0;
}

.driver_messages_form--notification .driver_messages_send {
    grid-column: 2;
}

.driver_messages_input {
    height: 38px; min-height: 38px;
    max-height: 104px; padding: 7px 13px;
    border: 1px solid var(--border); border-radius: 18px;
    background: var(--bg-1); box-shadow: none;
    line-height: 1.3; resize: none;
    transition:
        border-color .16s ease,
        box-shadow .16s ease;
}

.driver_messages_input:focus {
    border-color: color-mix(in srgb, var(--accent) 60%, var(--border));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);
}

.driver_message_file_button, .driver_messages_send {
    display: inline-grid; width: 38px;
    min-width: 38px; height: 38px;
    min-height: 38px; place-items: center;
    margin: 0; padding: 0;
    border: 0; border-radius: 13px;
    background: var(--accent); color: var(--on-accent);
    box-shadow: none;
    transition:
        background-color .16s ease,
        transform .16s ease;
}

.driver_message_file_button:hover, .driver_messages_send:hover {
    background: var(--accent-blue);
}

.driver_message_file_button:active, .driver_messages_send:active {
    transform: scale(.96);
}

.driver_message_file_button svg, .driver_messages_send svg {
    width: 19px; height: 19px;
}

.driver_message_edit_context, .driver_message_pending_file {
    padding: 7px 10px; border: 1px solid var(--border);
    border-radius: 11px; background: var(--bg-1);
    box-shadow: none;
}

@media (max-width: 760px), (orientation: portrait) {
    .driver_messages_wrap .driver_message_card {
        max-width: 86%;
    }
    .driver_messages_toolbar, .driver_messages_room_header {
        min-height: 40px;
    }
    .driver_messages_back {
        min-height: 36px; padding-right: 10px;
        padding-left: 10px;
    }
}

@media (orientation: portrait) {
    .drawer-panel.driver_messages_panel {
        right: 0; left: 0;
        width: 100%; max-width: 100%;
    }
    .drawer-panel.driver_messages_panel .drawer {
        width: 100%; max-width: 100%;
        border-radius: 0;
    }
    .driver_messages_panel .drawer-body {
        padding-right: max(6px, env(safe-area-inset-right));
        padding-left: max(6px, env(safe-area-inset-left));
    }
    .driver_messages_form {
        padding-bottom: max(2px, env(safe-area-inset-bottom));
    }
}

/* Файл light_theme.css */

.driver_messages_panel .drawer, .driver_messages_panel .drawer-body,
.driver_messages_wrap, .driver_messages_list {
    background: var(--bg-2);
}

.driver_messages_wrap {
    color: var(--text-1);
}

.driver_message_card:not(.driver_message_card--mine)
.driver_message_author,
.driver_message_card:not(.driver_message_card--mine)
.driver_message_text,
.driver_message_card:not(.driver_message_card--mine)
.driver_message_time,
.driver_message_card:not(.driver_message_card--mine)
.driver_message_forwarded {
    color: var(--text-1);
}

.driver_message_document_attachment {
    color: var(--text-1);
}

.driver_room_card, .driver_room_search, .driver_message_search,
.driver_messages_form, .driver_messages_input {
    background: var(--bg-1);
}

/* Файл telegram_clean.css */

.drawer-panel.driver_messages_panel, .driver_messages_panel .drawer,
.driver_messages_panel .drawer-body, .driver_messages_wrap {
    background: var(--bg-1);
}

.driver_messages_panel .drawer-header {
    min-height: 40px; align-items: center;
    padding-top: 0; border-bottom: 1px solid var(--border);
    background: var(--bg-1); color: var(--text-1);
    box-shadow: 0 2px 10px color-mix(in srgb, var(--blue-navy) 5%,
        transparent);
}

.driver_messages_panel .drawer-header__main {
    min-width: 0; flex-direction: row;
    align-items: stretch; overflow: hidden;
}

.driver_messages_panel .drawer-title {
    width: 100%; min-width: 0;
    min-height: 40px; align-items: stretch;
    overflow: hidden;
}

.driver_messages_tabs--header {
    width: 100%; max-width: 100%;
    min-height: 40px; flex-wrap: nowrap;
    padding: 0 4px; overflow-x: auto;
    overflow-y: hidden; overscroll-behavior-x: contain;
    scrollbar-width: none;
}

.driver_messages_tabs--header::-webkit-scrollbar {
    display: none;
}

.driver_messages_tabs--header .driver_messages_tab {
    height: 40px; min-height: 40px;
    flex: 0 0 auto; padding: 0 16px;
    border: 0; border-radius: 0;
    background: transparent; color: var(--text-2);
    font-size: var(--font_size_0) !important; white-space: nowrap;
    font-weight: 650;
}

.driver_messages_tabs--header .driver_messages_tab:hover,
.driver_messages_tabs--header .driver_messages_tab:focus-visible {
    background: color-mix(in srgb, var(--accent) 7%, var(--bg-1));
    color: var(--accent-blue);
}

.driver_messages_tabs--header .driver_messages_tab--active,
.driver_messages_tabs--header .driver_messages_tab--active:hover,
.driver_messages_tabs--header .driver_messages_tab--active:focus-visible {
    background: var(--bg-1); color: var(--accent-blue);
}

.driver_messages_tabs--header .driver_messages_tab--active::after {
    right: 12px; left: 12px;
    height: 3px; background: var(--accent);
}

.driver_messages_panel .drawer-close {
    position: relative; z-index: 4;
    display: inline-flex; width: 38px;
    height: 38px; flex: 0 0 auto;
    align-items: center; justify-content: center;
    margin: 1px 7px 1px 4px; border: 1px solid var(--border);
    border-radius: 50%; background: var(--bg-1);
    color: var(--text-1); opacity: 1;
    box-shadow: none;
}

.driver_messages_panel .drawer-close:hover,
.driver_messages_panel .drawer-close:focus-visible {
    border-color: color-mix(in srgb, var(--accent) 48%, var(--border));
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-1));
    color: var(--accent-blue);
}

.driver_messages_panel .drawer-body {
    padding: 4px 8px 7px;
}

.driver_messages_wrap {
    gap: 6px;
}

.driver_messages_toolbar, .driver_messages_room_header {
    min-height: 48px; margin: 0;
    padding: 6px 9px; border: 1px solid var(--border);
    border-radius: 15px; background: var(--bg-1);
    box-shadow: none;
}

.driver_messages_room_identity strong, .driver_messages_room_title {
    font-size: var(--font_size_1);
}

.driver_messages_list {
    gap: calc(var(--spacing_small) * 1.25) !important; padding: 7px 4px;
    border: 0; border-radius: 0;
    background: transparent; box-shadow: none;
}

.driver_messages_list > .driver_room_card:not(:last-child) {
    margin-bottom: calc(var(--spacing_small) / 2);
}

.driver_message_group {
    gap: 5px;
}

.driver_messages_wrap .driver_message_card {
    max-width: min(70%, 720px);
    border: 0; border-radius: 17px 17px 17px 5px;
    background: color-mix(in srgb, var(--blue-navy) 4%, var(--bg-1));
    color: var(--text-1); box-shadow: none;
}

.driver_messages_wrap .driver_message_card:hover {
    border: 0;
    background: color-mix(in srgb, var(--blue-navy) 7%, var(--bg-1));
}

.driver_messages_wrap .driver_message_card--mine,
.driver_messages_wrap .driver_message_card--mine:hover {
    border: 0; box-shadow: none;
}

.driver_message_card--mine .driver_message_author,
.driver_message_card--mine .driver_message_text,
.driver_message_card--mine .driver_message_time,
.driver_message_card--mine .driver_message_forwarded,
.driver_message_card--mine .driver_message_ticks {
    color: var(--text-1);
}

.driver_message_card--mine .driver_message_time,
.driver_message_card--mine .driver_message_ticks {
    color: var(--text-2);
}

.driver_message_day span {
    border: 1px solid var(--border); background: var(--bg-1);
    box-shadow: none;
}

.driver_room_card {
    padding: 10px 12px; border: 1px solid var(--border);
    border-radius: 18px; background: var(--bg-1);
    box-shadow: none;
}

.driver_room_card:hover {
    border-color: color-mix(in srgb, var(--accent) 32%, var(--border));
    background: color-mix(in srgb, var(--accent) 5%, var(--bg-1));
}

.driver_messages_form {
    border-top: 1px solid var(--border); background: var(--bg-1);
    box-shadow: none;
}

@media (orientation: portrait), (max-width: 760px) {
    .drawer-panel.driver_messages_panel {
        top: 0; width: 100%;
        max-width: 100%;
    }
    .driver_messages_panel .drawer-header,
.driver_messages_panel .drawer-title, .driver_messages_tabs--header {
        min-height: 38px;
    }
    .driver_messages_tabs--header .driver_messages_tab {
        height: 38px; min-height: 38px;
        padding: 0 13px;
    }
    .driver_messages_panel .drawer-body {
        padding: 3px 7px 6px;
    }
    .driver_messages_wrap .driver_message_card {
        max-width: 82%;
    }
}

/* Файл driver_messenger_modern.css */

/* Файл 01.css */

/* Создание чатов, presence и компактное управление участниками. */

.driver_chat_creation {
    gap: 10px; padding: 4px;
    overflow: hidden;}

.driver_chat_creation__header {
    grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px;
    align-items: center;}

.driver_chat_creation__header h3 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1); text-align: center;
}

.driver_chat_creation__choices {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
    margin-top: 6px;}

.driver_chat_creation__choice {
    display: grid; grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px; align-items: center;
    min-height: 78px; padding: 12px;
    border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--border));
    border-radius: 16px; background: var(--bg-1);
    color: var(--text-1);
    box-shadow: 0 5px 14px color-mix(in srgb, var(--blue-navy) 6%,
        transparent);
    text-align: left; cursor: pointer;
}

.driver_chat_creation__choice:hover {
    border-color: color-mix(in srgb, var(--accent) 48%, var(--border));
    background: color-mix(in srgb, var(--accent) 4%, var(--bg-1));
}

.driver_chat_creation__choice-icon {
    width: 42px; height: 42px;
    place-items: center; border-radius: 13px;
    background: color-mix(in srgb, var(--accent) 12%, var(--bg-1));
    font-size: var(--font_size_2);}

.driver_chat_creation__choice span:last-child {
    display: flex; min-width: 0;
    flex-direction: column; gap: 3px;
}

.driver_chat_creation__choice small, .driver_chat_creation__hint,
.driver_chat_creation__status {
    color: var(--text-2); font-size: var(--font_size_caption);
}

.driver_chat_creation__title, .driver_chat_creation__search {
    display: flex; gap: 7px;
    align-items: center;
}

.driver_chat_creation__title {
    flex-direction: column; align-items: stretch;
    color: var(--text-2); font-size: var(--font_size_caption);
}

.driver_chat_creation__title input, .driver_chat_creation__search input {
    box-sizing: border-box; width: 100%;
    min-width: 0; height: 40px;
    margin: 0; padding: 7px 11px;
    border: 1px solid var(--border); border-radius: 12px;
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.driver_chat_creation__search {
    padding: 0 10px; border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-1);
}

.driver_chat_creation__search input {
    padding-right: 0; padding-left: 0;
    border: 0; outline: 0;
}

.driver_chat_creation__pivot {
    min-height: 0; flex: 1;
    overflow: auto;
    border: 1px solid color-mix(in srgb, var(--border) 85%, transparent);
    border-radius: 14px; background: var(--bg-1);
}

.driver_chat_creation__pivot .pivot-table-container {
    max-height: none; border: 0;
    box-shadow: none;
}

.driver_chat_creation__pivot .pivot-table th,
.driver_chat_creation__pivot .pivot-table td {
    padding-top: 7px; padding-bottom: 7px;
    font-size: var(--font_size_caption);
}

.driver_chat_creation__actions {
    display: flex; justify-content: flex-end;
}

.driver_chat_creation__actions .driver_messages_send {
    width: auto; min-width: 148px;
    padding: 0 18px; white-space: nowrap;
}

.driver_messages_room_identity {
    display: flex; min-width: 0;
    flex-direction: column; gap: 1px;
    flex: 1; align-items: center;
    overflow: hidden; text-align: center;
}

.driver_room_card__identity {
    display: flex; min-width: 0;
    align-items: center; gap: 8px;
    flex-wrap: wrap;
}

.driver_messages_room_identity strong, .driver_room_card__title {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.driver_room_card__title {
    max-width: 100%;
}

.driver_messages_presence {
    display: inline-flex; align-items: center;
    gap: 6px; flex-shrink: 0;
    color: var(--text-3, var(--text-2)); font-size: var(--font_size_caption);
    font-weight: 500; white-space: nowrap;
}

.driver_messages_presence_dot {
    display: inline-block; width: 8px;
    height: 8px; flex-shrink: 0;
    border-radius: 50%; background: var(--success-color, #20864a);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--success-color, #20864a) 14%,
        transparent);
}

.driver_messages_presence--online {
    color: var(--success-color, #20864a);
}

.driver_messages_members_view {
    gap: 8px;
}

.driver_messages_member_actions {
    display: grid; grid-template-columns: repeat(2, minmax(0, max-content));
    gap: 7px; justify-content: start;
}

.driver_messages_member_add, .driver_messages_delete_room {
    box-sizing: border-box; max-width: 100%;
    min-height: 36px; padding: 6px 11px;
    border-radius: 11px; background: var(--bg-1);
    line-height: 1.15; white-space: normal;
}

.driver_messages_members_list { gap: 8px;
    overflow-y: auto;
}

.driver_messages_member {
    display: grid; grid-template-columns: minmax(0, 1fr) 32px;
    gap: 8px; align-items: start;
    padding: 10px 11px;
    border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
    border-radius: 13px;
    background: color-mix(in srgb, var(--bg-1) 97%, var(--accent));
    box-shadow: 0 3px 9px color-mix(in srgb, var(--blue-navy) 4%, transparent);
}

.driver_messages_member > button {
    display: grid; width: 30px;
    height: 30px; place-items: center;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--error-color, #c62828) 28%,
        var(--border));
    border-radius: 10px; background: transparent;
    color: var(--error-color, #c62828);
}

.driver_messages_member_name {
    flex-wrap: wrap; font-size: var(--font_size_caption);
}

/* Файл 02.css */

.driver_messages_member_owner {
    padding: 1px 6px; font-size: var(--font_size_caption);
}

.driver_participant_permissions {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px;
    margin-top: 7px;
}

.driver_participant_permission {
    gap: 6px; font-size: var(--font_size_caption);
    line-height: 1.2;
}

.driver_participant_permission input {
    width: 16px; height: 16px;
    flex: 0 0 auto;
}

.driver_user_picker__actions {
    position: sticky; bottom: 0;
    padding-top: 7px; background: var(--bg-2);
}

.driver_user_picker__submit {
    width: auto; max-width: 100%;
    min-width: min(100%, 190px); padding: 0 14px;
    white-space: normal;
}

@media (max-width: 640px), (orientation: portrait) {
    .driver_chat_creation__choices {
        grid-template-columns: 1fr;
    }
    .driver_chat_creation__choice {
        min-height: 68px;
    }
    .driver_messages_member_actions {
        grid-template-columns: minmax(0, 1fr) auto; width: 100%;
    }
    .driver_messages_member_add, .driver_messages_delete_room {
        width: 100%;
    }
    .driver_participant_permissions {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 380px) {
    .driver_messages_member_actions {
        grid-template-columns: 1fr;
    }
}

/* Файл driver_messenger_creation.css */

/* Финальные правила направления и цвета сообщений. */

.driver_messages_wrap .driver_message_row--incoming {
    justify-content: flex-start;
}

.driver_messages_wrap .driver_message_row--mine {
    justify-content: flex-end;
}

.driver_messages_wrap .driver_message_card--incoming,
.driver_messages_wrap .driver_message_card--incoming:hover {
    border-radius: 17px 17px 17px 5px; background: var(--bg-1);
    color: var(--text-1);
    box-shadow: 0 1px 5px color-mix(in srgb, var(--blue-navy) 9%, transparent);
}

.driver_messages_wrap .driver_message_card--mine,
.driver_messages_wrap .driver_message_card--mine:hover {
    border-radius: 18px 18px 5px 18px;
    background: color-mix(in srgb, var(--accent) 23%, var(--bg-1));
    color: var(--text-1);
}

/* Файл driver_messenger_final_type_and_header.css */

/*
 * Последний слой стилей мессенджера.
 * Загружается после остальных CSS мессенджера.
 * и фиксирует:
 * - оформление списка чатов;
 * - единое масштабирование текста;
 *   пользователя;
 * - компактную верхнюю панель;
 * - компактность сообщений и прочие настройки.
 *   отображения.
 */

/* ---------- Единый масштаб текста ---------- */

.drawer-panel.driver_messages_panel,
.drawer-panel.driver_messenger_settings_panel {
    --messenger-font-size-small: max(
        11px,
        calc(var(--messenger-font-size, var(--font_size_0)) - 3px)
    );
    --messenger-font-size-large: calc(
        var(--messenger-font-size, var(--font_size_0)) + 1px
    );
    font-size: var(--messenger-font-size, var(--font_size_0));
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

.drawer-panel.driver_messages_panel .drawer-header,
.drawer-panel.driver_messages_panel .drawer-body,
.drawer-panel.driver_messages_panel .driver_messages_wrap,
.drawer-panel.driver_messenger_settings_panel .drawer-header,
.drawer-panel.driver_messenger_settings_panel .drawer-body {
    font-size: var(--messenger-font-size, var(--font_size_0));
}

.drawer-panel.driver_messages_panel .drawer-body :is( input, textarea,
select, label, p, span, strong, small, td, th ),
.drawer-panel.driver_messenger_settings_panel .drawer-body :is( input,
textarea, select, label, p, span, strong, small, td, th ) {
    font-size: var(--messenger-font-size, var(--font_size_0));
}

.drawer-panel.driver_messages_panel .drawer-body button,
.drawer-panel.driver_messenger_settings_panel .drawer-body button {
    font-size: var(--font_size_button) !important;
}

.driver_messages_panel .driver_messages_room_title,
.driver_messages_panel .driver_messages_room_identity strong,
.driver_messages_panel .driver_room_card__title,
.driver_messages_panel .driver_room_card__message,
.driver_messages_panel .driver_message_author,
.driver_messages_panel .driver_message_forwarded,
.driver_messages_panel .driver_message_forward_preview,
.driver_messages_panel .driver_message_forward_preview strong,
.driver_messages_panel .driver_message_forward_preview span,
.driver_messages_panel .driver_message_forwarded_author,
.driver_messages_panel .driver_message_forwarded_text,
.driver_messages_panel .driver_message_text,
.driver_messages_panel .driver_messages_input,
.driver_messages_panel .driver_room_search input,
.driver_messages_panel .driver_message_search input,
.driver_messages_panel .driver_messages_settings,
.driver_messages_panel .driver_messages_member,
.driver_messages_panel .doc-card__file-name {
    font-size: var(--messenger-font-size, var(--font_size_0)) !important;
}

.driver_messages_panel .driver_message_time,
.driver_messages_panel .driver_message_time span,
.driver_messages_panel .driver_message_ticks {
    font-size: var(--messenger-font-size) !important;
}

.driver_messages_panel .driver_messages_presence,
.driver_messages_panel .driver_room_card__date,
.driver_messages_panel .driver_room_card__id,
.driver_messages_panel .driver_message_day span,
.driver_messages_panel .driver_message_forwarded_date,
.driver_messages_panel .driver_messages_tab__approval-badge,
.driver_messages_panel .driver_messages_badge {
    font-size: var(--messenger-font-size-small) !important;
}

/* ---------- Верхняя панель ---------- */

.drawer-panel.driver_messages_panel .drawer-header,
.drawer-panel.driver_messages_panel .drawer-title,
.driver_messages_panel .driver_messages_tabs--header {
    min-height: 41px !important;
}

.driver_messages_panel .driver_messages_tabs--header {
    padding-bottom: 0 !important;
}

.driver_messages_panel .driver_messages_tabs--header .driver_messages_tab {
    height: 41px !important; min-height: 41px !important;
    padding-top: 0 !important; padding-bottom: 0 !important;
    line-height: 1.1;
}

.drawer-panel.driver_messages_panel .drawer-close {
    width: 41px !important; height: 41px !important;
    min-width: 41px; min-height: 41px;
    padding: 0 !important;
    font-size: var(--messenger-font-size-large) !important;
}

/* ---------- Поиск и действия ---------- */

.driver_messages_toolbar--chat-list {
    display: flex; gap: 4px;
    align-items: center; padding: 4px var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); box-shadow: none;
}

.driver_messages_toolbar--chat-list .driver_room_search { padding: 0 4px;
    border: 0; border-radius: 0;
    background: transparent; box-shadow: none;
}

.driver_messages_toolbar--chat-list .driver_room_search:focus-within {
    border: 0; box-shadow: none;
}

.driver_messages_toolbar--chat-list .driver_room_search input {
    border: 0; outline: 0;
    background: transparent; box-shadow: none;
}

.driver_messages_toolbar--chat-list .driver_messages_toolbar_actions {
    gap: 2px;
}

.driver_messages_toolbar--chat-list .driver_messages_add,
.driver_messages_toolbar--chat-list .driver_messages_settings_button {
    width: 38px; height: 38px;
    min-height: 38px; border: 0;
    background: transparent; color: var(--text-1);
    box-shadow: none;
}

.driver_messages_toolbar--chat-list .driver_messages_add:hover,
.driver_messages_toolbar--chat-list
.driver_messages_settings_button:hover,
.driver_messages_toolbar--chat-list
.driver_messages_settings_button:focus-visible {
    border: 0; background: var(--bg-2);
    color: var(--accent-blue); box-shadow: none;
}

.driver_messages_toolbar--chat-list .driver_room_search > span {
    font-size: var(--messenger-list-search-icon-size) !important;
    font-weight: 700 !important;
}

.driver_messages_toolbar--chat-list .driver_messages_add,
.driver_messages_toolbar--chat-list .driver_messages_settings_button {
    font-size: var(--messenger-list-action-icon-size) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

/* Файл driver_messenger_final_rooms.css */

/* ---------- Список чатов как на эталонном скриншоте ---------- */

.driver_messages_wrap .driver_messages_list {
    align-content: flex-start;
    gap: calc(var(--spacing_small) + 2px) !important; padding: 7px 4px;
}

.driver_messages_wrap .driver_messages_list > button.driver_room_card {
    position: relative; display: grid !important;
    width: 100%; min-width: 0;
    min-height: 62px; height: auto !important;
    max-height: none; box-sizing: border-box;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    column-gap: var(--spacing_small) !important; row-gap: 3px !important;
    align-items: start !important; justify-items: stretch !important;
    justify-content: stretch !important; margin: 0 !important;
    padding: 10px 12px !important; overflow: hidden;
    border: 1px solid var(--border); border-radius: 18px;
    background: var(--bg-1); box-shadow: none;
    color: var(--text-1); line-height: 1.25;
    text-align: left !important; white-space: normal;
    contain: layout paint; isolation: isolate;
}

.driver_messages_wrap .driver_messages_list > button.driver_room_card:hover {
    border-color: color-mix(in srgb, var(--accent) 32%, var(--border));
    background: color-mix(in srgb, var(--accent) 5%, var(--bg-1));
}

.driver_messages_wrap .driver_room_card__identity {
    display: flex !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-items: baseline !important;
    justify-content: flex-start !important; gap: 8px !important;
    margin: 0 !important; text-align: left !important;
}

.driver_messages_wrap .driver_room_card__title {
    display: block !important; min-width: 0 !important;
    flex: 0 1 auto; overflow: hidden;
    color: var(--text-1); font-weight: 650;
    text-align: left !important;
}

.driver_messages_wrap .driver_room_card__identity
.driver_messages_presence {
    min-width: 0; flex: 0 1 auto;
    margin: 0 !important; overflow: hidden;
    color: var(--text-2); text-align: left !important;
    text-overflow: ellipsis; white-space: nowrap;
}

.driver_messages_wrap .driver_room_card__message {
    display: block !important; width: 100% !important;
    min-width: 0 !important; min-height: 1.25em;
    grid-column: 1 / -1 !important; grid-row: 2 !important;
    margin: 0 !important; overflow: hidden;
    color: var(--text-3); line-height: 1.25;
    text-align: left !important; text-overflow: ellipsis;
    white-space: nowrap;
}

.driver_messages_wrap .driver_room_card__meta {
    display: inline-flex !important; min-width: 0;
    grid-column: 2 !important; grid-row: 1 !important;
    align-self: start !important; justify-self: end !important;
    align-items: center !important; justify-content: flex-end !important;
    gap: 6px !important; margin: 0 !important;
    text-align: right !important; white-space: nowrap;
}

.driver_messages_wrap .driver_room_card__date,
.driver_messages_wrap .driver_room_card__id {
    color: var(--text-2); font-weight: 400;
    white-space: nowrap;
}

.driver_messages_wrap .driver_room_card--unread {
    border-color: color-mix(in srgb, var(--accent) 34%, var(--border));
    background: color-mix(in srgb, var(--accent) 7%, var(--bg-1));
}

.driver_messages_wrap--compact .driver_messages_list {
    gap: 4px !important;
}

.driver_messages_wrap--compact .driver_messages_list
> button.driver_room_card {
    min-height: 48px; padding: 6px var(--spacing_small) !important;
}

.driver_messages_wrap--hide-timestamps .driver_message_time,
.driver_messages_wrap--hide-timestamps .driver_room_card__date {
    display: none;
}

/* Файл driver_messenger_final_conversation.css */

/* ---------- Активный чат ---------- */

.driver_messages_wrap .driver_messages_room_header {
    min-height: calc(
        var(--messenger-font-size, var(--font_size_0)) + 24px
    ) !important; padding: 3px 8px !important;
}

.driver_messages_wrap .driver_messages_back {
    min-height: calc(
        var(--messenger-font-size, var(--font_size_0)) + 12px
    ) !important; padding: 1px var(--spacing_small) !important;
    line-height: 1.1;
}

.driver_messages_wrap .driver_messages_room_identity strong,
.driver_messages_wrap .driver_messages_room_title {
    line-height: 1.2;
}

/* ---------- Сообщения ---------- */

.driver_messages_wrap .driver_message_group {
    gap: 1px;
}

.driver_messages_wrap .driver_message_card {
    padding: 5px 9px 4px;
}

.driver_messages_wrap .driver_message_author {
    margin-bottom: 1px; line-height: 1.24 !important;
}

.driver_messages_wrap .driver_message_forwarded {
    margin-bottom: 2px; line-height: 1.24;
}

.driver_messages_wrap .driver_message_text {
    line-height: 1.24;
}

.driver_messages_wrap .driver_message_time {
    margin-top: 0; line-height: 1;
}

.driver_messages_wrap .driver_message_day {
    margin: 3px 0;
}

.driver_messages_wrap .driver_message_voice_attachment {
    margin-top: 4px;
}

.driver_messages_wrap .driver_voice_message {
    grid-template-columns: 40px minmax(190px, 1fr) auto; gap: 8px;
}

.driver_messages_wrap .driver_voice_message__play {
    width: 40px; height: 40px;
}

.driver_messages_wrap .driver_voice_message__waveform {
    height: 26px;
}

.driver_messages_wrap .driver_voice_message__speed {
    height: 27px;
}

.driver_messages_wrap--compact-messages .driver_message_group {
    gap: 0 !important;
}

.driver_messages_wrap--compact-messages .driver_message_card {
    padding: 4px 8px 3px !important;
}

.driver_messages_wrap--compact-messages .driver_message_text,
.driver_messages_wrap--compact-messages .driver_message_author,
.driver_messages_wrap--compact-messages .driver_message_forwarded {
    line-height: 1.18 !important;
}

/* ---------- Снижение движения ---------- */

.driver_messages_wrap--reduce-motion *,
.driver_messages_wrap--reduce-motion *::before,
.driver_messages_wrap--reduce-motion *::after {
    animation: none !important; scroll-behavior: auto !important;
    transition: none !important;
}

@media (orientation: portrait), (max-width: 760px) {
    .drawer-panel.driver_messages_panel .drawer-header,
.drawer-panel.driver_messages_panel .drawer-title,
.driver_messages_panel .driver_messages_tabs--header {
        min-height: 39px !important;
    }
    .driver_messages_panel .driver_messages_tabs--header
    .driver_messages_tab {
        height: 39px !important; min-height: 39px !important;
        padding-right: 13px !important; padding-left: 13px !important;
    }
    .drawer-panel.driver_messages_panel .drawer-close {
        width: 39px !important; height: 39px !important;
        min-width: 39px; min-height: 39px;
    }
    .driver_messages_wrap .driver_messages_room_header {
        display: grid !important;
        grid-template-columns: minmax(92px, auto) minmax(0, 1fr) 42px;
    }
    .driver_messages_wrap .driver_messages_room_identity_text strong,
    .driver_messages_wrap .driver_messages_room_title {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* Файл driver_messenger_final.css */

/* Файл driver_messenger_followup.css */

/* Пользовательские расстояния списка чатов. */

.driver_messages_wrap .driver_messages_list,
.driver_messages_wrap--compact .driver_messages_list {
    gap: var(--messenger-room-gap, 18px) !important;
}

.driver_messages_wrap .driver_messages_list
> button.driver_room_card,
.driver_messages_wrap--compact .driver_messages_list >
button.driver_room_card {
    padding-top: var(--messenger-room-padding-y, 12px) !important;
    padding-bottom: var(--messenger-room-padding-y, 12px) !important;
}

/* Панель вкладок и круглые кнопки компактнее на 3 px;
   размер символов внутри не меняется. */

.drawer-panel.driver_messages_panel .drawer-header,
.drawer-panel.driver_messages_panel .drawer-header__main,
.drawer-panel.driver_messages_panel .drawer-title,
.driver_messages_panel .driver_messages_tabs--header {
    min-height: 30px !important; height: 30px !important;
    padding-top: 0 !important; padding-bottom: 0 !important;
}

.driver_messages_panel .driver_messages_tabs--header
.driver_messages_tab {
    display: inline-flex !important; height: 30px !important;
    min-height: 30px !important; box-sizing: border-box;
    align-items: flex-end !important; justify-content: center;
    padding-top: 0 !important; padding-bottom: 8px !important;
    line-height: 1 !important;
}

.drawer-panel.driver_messages_panel .drawer-close {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    display: inline-flex !important;
    flex: 0 0 30px !important;
    box-sizing: border-box;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 4px !important;
    line-height: 1 !important;
}

.drawer-panel.driver_messages_panel .drawer-close,
.driver_messages_toolbar--chat-list .driver_messages_add {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

.driver_messages_toolbar--chat-list .driver_messages_add,
.driver_messages_toolbar--chat-list .driver_messages_settings_button {
    width: var(--messenger-action-size) !important;
    min-width: var(--messenger-action-size) !important;
    max-width: var(--messenger-action-size) !important;
    height: var(--messenger-action-size) !important;
    min-height: var(--messenger-action-size) !important;
    max-height: var(--messenger-action-size) !important;
    display: inline-flex !important;
    flex: 0 0 var(--messenger-action-size) !important;
    box-sizing: border-box;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    line-height: 1 !important;
}

/* Поле поиска: одинаковые компактные отступы сверху и снизу. */

.driver_messages_toolbar--chat-list {
    min-height: calc(
        var(--messenger-action-size) + 4px
    ) !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
}

.driver_messages_toolbar--chat-list .driver_room_search {
    min-height: var(--messenger-action-size) !important;
    height: var(--messenger-action-size) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Названия внутренних вкладок проверок всегда видимы. */

.approvals-control-tab__tabs button {
    color: var(--text-1) !important; opacity: 1 !important;
}

.approvals-control-tab__tabs button.active {
    color: var(--on-accent) !important;
}

/* Файл driver_messenger_resilient_rooms.css */

.driver_messages_wrap .driver_messages_list {
    container-name: messenger-room-list; container-type: inline-size;
}

.driver_messages_wrap .driver_messages_list
> button.driver_room_card {
    min-block-size: fit-content !important; block-size: auto !important;
    grid-auto-rows: minmax(min-content, auto);
    padding-block: var(--messenger-room-padding-y, 12px) !important;
    contain: none !important;
}

.driver_messages_wrap .driver_room_card__content {
    display: contents !important;
}

.driver_messages_wrap .driver_room_card__identity {
    min-width: 0 !important; min-height: 1.25em;
    flex-wrap: wrap !important; align-content: flex-start;
    row-gap: 2px !important;
}

.driver_messages_wrap .driver_room_card__title,
.driver_messages_wrap .driver_room_card__identity
.driver_messages_presence {
    max-width: 100%; line-height: 1.25;
}

.driver_messages_wrap .driver_room_card__title {
    overflow-wrap: anywhere; text-overflow: clip;
    white-space: normal;
}

.driver_messages_wrap .driver_room_card__message {
    align-self: start;
}

@container messenger-room-list (max-width: 560px) {
    .driver_messages_wrap .driver_messages_list
    > button.driver_room_card {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto auto auto !important;
    }
    .driver_messages_wrap .driver_room_card__identity {
        display: flex !important; grid-column: 1 !important;
        grid-row: 1 !important; flex-direction: column;
        align-items: flex-start !important; gap: 1px !important;
    }
    .driver_messages_wrap .driver_room_card__meta {
        width: 100%; grid-column: 1 !important;
        grid-row: 2 !important; justify-self: stretch !important;
        justify-content: flex-end !important;
    }
    .driver_messages_wrap .driver_room_card__message {
        grid-column: 1 !important; grid-row: 3 !important;
    }
}

@media (orientation: portrait), (max-width: 760px) {
    .driver_messages_wrap .driver_messages_list
    > button.driver_room_card {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto auto auto !important;
    }
    .driver_messages_wrap .driver_room_card__identity {
        display: flex !important; grid-column: 1 !important;
        grid-row: 1 !important; flex-direction: column;
        align-items: flex-start !important; gap: 1px !important;
    }
    .driver_messages_wrap .driver_room_card__identity
    .driver_messages_presence {
        width: 100%; min-width: 0;
    }
    .driver_messages_wrap .driver_room_card__meta {
        width: 100%; grid-column: 1 !important;
        grid-row: 2 !important; justify-self: stretch !important;
        justify-content: flex-end !important;
    }
    .driver_messages_wrap .driver_room_card__message {
        grid-column: 1 !important; grid-row: 3 !important;
    }
}

@media (orientation: portrait) {
    .driver_messages_wrap .driver_messages_list
    > button.driver_room_card {
        grid-template-columns: minmax(0, 1fr) auto !important;
        grid-template-rows: auto auto auto !important;
    }

    .driver_messages_wrap .driver_room_card__identity {
        display: contents !important;
    }

    .driver_messages_wrap .driver_room_card__title {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    .driver_messages_wrap .driver_room_card__identity
    .driver_messages_presence {
        width: auto;
        min-width: 0;
        grid-column: 1 !important;
        grid-row: 2 !important;
        align-self: center !important;
        justify-self: start !important;
    }

    .driver_messages_wrap .driver_room_card__meta {
        width: auto;
        grid-column: 2 !important;
        grid-row: 2 !important;
        align-self: center !important;
        justify-self: end !important;
    }

    .driver_messages_wrap .driver_room_card__message {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
    }
}


/* Файл driver_messenger_members_spacing.css */

.driver_messages_panel .driver_messages_members_list {
    gap: var(--spacing_medium);
    padding-bottom: var(--spacing_small);
}

.driver_messages_panel .driver_messages_member {
    padding: var(--spacing_medium) var(--spacing_relaxed);
}

.driver_messages_panel .driver_messages_member_name {
    margin-bottom: var(--spacing_small);
}

.driver_messages_panel .driver_participant_permissions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: calc(var(--spacing_section) + var(--spacing_xs));
    row-gap: var(--spacing_small);
}

.driver_messages_panel .driver_participant_permission {
    gap: var(--spacing_small);
    min-height: var(--spacing_xl);
    line-height: 1.25;
}

@media (max-width: 760px) {
    .driver_messages_panel .driver_participant_permissions {
        grid-template-columns: 1fr;
    }
}

/* Файл driver_messenger_calls.css */

.driver_messages_wrap .driver_message_time,
.driver_messages_wrap .driver_message_time span,
.driver_messages_wrap .driver_message_ticks {
    font-size: var(--font_size_caption) !important;
}

.driver_messages_wrap .driver_message_text,
.driver_messages_wrap textarea.driver_messages_input,
.driver_messages_wrap textarea.driver_messages_input::placeholder {
    font-family: var(--font_family_interface) !important;
    font-size: var(
        --messenger-font-size,
        var(--font_size_0)
    ) !important;
    line-height: 1.24 !important;
}

.driver_messages_wrap textarea.driver_messages_input {
    font-weight: 400 !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
}

.driver_messages_wrap textarea.driver_messages_input::placeholder {
    font-weight: 400 !important;
    opacity: 1;
}

.driver_messages_wrap .driver_messages_room_header {
    display: grid;
    grid-template-columns: calc(
        var(--messenger-action-size) * 0.72
    ) minmax(0, 1fr) auto;
    gap: 2px;
    align-items: center;
    border: 0 !important;
    border-bottom: 1px solid var(--border) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.driver_messages_wrap .driver_messages_back {
    width: calc(
        var(--messenger-action-size) * 0.72
    ) !important;
    min-width: calc(
        var(--messenger-action-size) * 0.72
    ) !important;
    height: var(--messenger-action-size) !important;
    min-height: var(--messenger-action-size) !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--text-1) !important;
    font-size: var(--messenger-back-icon-size) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}


.driver_messages_wrap .driver_messages_room_identity {
    display: flex !important;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: row !important;
    gap: 8px;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: hidden;
    text-align: left !important;
}

.driver_messages_room_identity_text {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
}

.driver_messages_room_identity_text strong,
.driver_messages_room_identity_text span {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.driver_messenger_avatar {
    display: inline-flex;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--bg-2);
}

.driver_messenger_avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.driver_messages_header_buttons {
    display: flex;
    gap: 2px;
    align-items: center;
    justify-content: flex-end;
}

.driver_audio_call_button,
.driver_messages_wrap .driver_message_search_toggle {
    display: inline-flex !important;
    width: var(--messenger-action-size) !important;
    min-width: var(--messenger-action-size) !important;
    height: var(--messenger-action-size) !important;
    min-height: var(--messenger-action-size) !important;
    padding: 0 !important;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--accent-blue) !important;
    opacity: 1 !important;
    visibility: visible !important;
    line-height: 1 !important;
}

.driver_audio_call_button {
    font-size: var(--messenger-call-icon-size) !important;
}

.driver_messages_wrap .driver_message_search_toggle {
    font-size: var(--messenger-action-size) !important;
    font-weight: 700 !important;
}


.driver_audio_call_button:disabled {
    color: var(--text-3) !important;
    opacity: 0.55 !important;
}

.driver_audio_call_button:hover,
.driver_messages_wrap .driver_message_search_toggle:hover {
    background: var(--bg-2) !important;
    color: var(--accent-blue) !important;
}

.driver_audio_call_backdrop {
    position: fixed;
    z-index: 12000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing_medium);
    background: color-mix(
        in srgb,
        var(--text-primary) 35%,
        transparent
    );
}

.driver_audio_call_panel {
    display: flex;
    width: min(92vw, 360px);
    padding: calc(var(--spacing_medium) * 1.5);
    gap: var(--spacing_small);
    align-items: center;
    flex-direction: column;
    border: 1px solid var(--border);
    border-radius: var(--border_radius);
    background: var(--card);
    box-shadow: var(--shadow);
    text-align: center;
}

.driver_audio_call_avatar {
    width: 82px;
    height: 82px;
    flex-basis: 82px;
}

.driver_audio_call_status {
    color: var(--text-2);
}

.driver_audio_call_security {
    font-size: var(--font_size_caption);
    color: var(--text-3);
}

.driver_audio_call_actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing_small);
    justify-content: center;
    margin-top: var(--spacing_small);
}

.driver_audio_call_actions button {
    min-width: 110px;
}

.driver_audio_call_remote_audio {
    display: none;
}

/* Файл driver_messenger_header_actions.css */

.drawer-panel.driver_messages_panel {
    --messenger-action-icon-size: calc(
        var(--messenger-font-size, var(--font_size_0))
        + var(--spacing_regular)
    );
    --messenger-search-icon-size: calc(
        var(--messenger-action-icon-size) * 1.25
    );
    --messenger-back-icon-size: var(--messenger-search-icon-size);
}

.driver_messages_wrap .driver_messages_room_header {
    grid-template-columns: 24px minmax(0, 1fr) auto !important;
    gap: 0 !important;
}

.driver_messages_wrap .driver_messages_back {
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    padding: 0 !important;
    overflow: visible !important;
    font-size: var(--messenger-back-icon-size) !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-shadow: 1px 0 currentColor, -1px 0 currentColor;
}

.driver_audio_call_button,
.driver_audio_call_button > span {
    font-size: var(--messenger-action-icon-size) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.driver_messages_wrap .driver_message_search_toggle,
.driver_messages_toolbar--chat-list .driver_room_search > span,
.driver_messages_toolbar--chat-list .driver_messages_add,
.driver_messages_toolbar--chat-list .driver_messages_settings_button {
    font-size: var(--messenger-search-icon-size) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

/* Файл driver_messenger.css */

/* Файл lk_egrn_preview_panel.css */

.lk-egrn-preview-panel__content {
    min-height: 100%;
    gap: var(--spacing_regular);}

.lk-egrn-preview-panel__file-name {
    color: var(--text-2); font-size: var(--font_size_0);
    overflow-wrap: anywhere;
}

.lk-egrn-preview-panel__document, .lk-egrn-preview-panel__image {
    display: block; width: 100%;
    min-height: 60vh; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
}

.lk-egrn-preview-panel__document {
    flex: 1 1 auto;
}

.lk-egrn-preview-panel__image {
    height: auto; min-height: 0;
    max-height: calc(100dvh - 180px); object-fit: contain;
}

/* Файл LkFontSettings.css */

.lk-font-settings {
    --lk-font-settings-hint-size: calc(var(--lk-user-font-size, 17px) - 2px);
    gap: var(--spacing_small);
    margin-top: var(--spacing_regular);}

.lk-font-settings label {
    font-weight: 600;
}

.lk-font-settings select {
    width: 100%; max-width: 180px;
    min-height: 36px; box-sizing: border-box;
    padding: 4px 10px; border: 1px solid var(--border);
    border-radius: var(--radius_soft); background: var(--bg-1);
    color: var(--text-1); font: inherit;
}

.lk-font-settings__hint {
    color: var(--text-3); font-size: var(--lk-font-settings-hint-size);
}

/* Файл LkThemeSettings.css */

.lk-theme-settings {
    margin-top: var(--font_size_1); padding-top: var(--font_size_0);
    border-top: 1px solid var(--divider-soft);
}

.lk-theme-settings__hint {
    margin: 0 0 var(--font_size_0); color: var(--text-3);
    font-size: var(--font_size_0);
}

.lk-theme-settings__grid {
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: var(--spacing_small);}

.lk-theme-option {
    min-width: 0; gap: var(--spacing_small);
    padding: 7px 9px; border: 1px solid var(--divider-color);
    background: var(--surface-secondary); color: var(--text-1);
    box-shadow: none;
    transform: none;}

.lk-theme-option:hover {
    border-color: var(--primary-color); background: var(--surface-muted);
    box-shadow: none; transform: none;
}

.lk-theme-option--active {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px var(--focus-ring);
}

.lk-theme-option__preview {
    width: 38px; height: 24px;
    flex: 0 0 38px; grid-template-columns: 14px 1fr;
    overflow: hidden; border: 1px solid var(--divider-color);
    border-radius: 5px;
    background: linear-gradient(
        90deg,
        var(--preview-sidebar) 0 37%,
        var(--preview-surface) 37% 100%
    );}

.lk-theme-option__preview i:first-child {
    background: transparent;
}

.lk-theme-option__preview i:last-child {
    margin: 7px 4px; border-radius: 4px;
    background: var(--preview-accent);
}

/* Файл cell_select.css */

.cell_select {
    width: 100%; min-width: 0;
    box-sizing: border-box;
    padding: var(--ui-input-padding-block) var(--ui-input-padding-inline);
    border: 1px solid var(--border); border-radius: var(--radius_small);
    background: var(--input-background); color: var(--text-1);
    font: inherit;
}

/* Файл TableHeader.css */

/* ─── Icon button (sort/filter trigger) ─── */

.th-icon-btn {
    width: 20px; height: 20px;
    border: 1px solid var(--divider-color); border-radius: 4px;
    cursor: pointer; justify-content: center;
    padding: 0;
    flex-shrink: 0;}

.th-icon-btn:hover {
    background: var(--surface-secondary);
}

/* ─── Filter dropdown menu container ─── */

.th-filter-menu {
    width: min(400px, calc(100vw - 16px)); background: var(--surface-elevated);
    border: 1px solid var(--divider-color); border-radius: 8px;
    box-shadow: var(--app-shadow); padding: 6px;
    gap: 4px; z-index: 9999;
    font-size: var(--font_size_caption);
    color: var(--text-1);}

.th-filter-menu * {
    font-size: var(--font_size_0); font-family: var(--font_family_interface);
}

/* ─── Menu buttons ─── */

.th-menu-btn {
    width: 100%; border: none;
    background: var(--surface-elevated); text-align: left;
    padding: 8px 10px; border-radius: 6px;
    cursor: pointer; color: var(--text-1);
    white-space: normal; word-break: break-word;
}

.th-menu-btn:hover {
    background: var(--surface-secondary);
}

.th-menu-btn--apply {
    width: auto; padding: 4px 8px;
    background: var(--info-background); border-radius: 6px;
}

.th-menu-btn--apply:hover {
    background: color-mix(in srgb, var(--primary-color) 22%,
        var(--surface-primary));
}

.th-menu-btn--cancel {
    width: auto; padding: 4px 8px;
}

/* ─── Hint text ─── */

.th-menu-hint {
    margin-top: 4px; color: var(--text-3);
    white-space: normal; word-break: break-word;
}

/* ─── Divider ─── */

.th-divider {
    margin: 4px 0; border: none;
    border-top: 1px solid var(--divider-color);
}

/* ─── Sort order badge ─── */

.th-sort-badge {
    position: absolute; top: -4px;
    right: -4px; min-width: 14px;
    height: 14px; padding: 0 3px;
    border-radius: 999px; background: var(--primary-color);
    color: var(--on-accent); font-size: var(--font_size_caption);
    font-weight: 600; line-height: 14px;
    justify-content: center; pointer-events: none;
    box-shadow: 0 0 0 1px var(--surface-primary);}

/* ─── MultiSortPanel ─── */

.th-multi-panel {
    padding: 4px 2px;
}

.th-multi-panel__title {
    margin-bottom: 4px; color: var(--text-1);
}

.th-multi-panel__footer {
    display: flex; gap: 6px;
    justify-content: flex-end;
}

/* ─── Checkbox list ─── */

.th-checkbox-list {
    max-height: 220px; overflow-y: auto;
    margin-bottom: 8px; padding: 6px;
    border-radius: 6px; border: 1px solid var(--divider-color);
    background: var(--surface-secondary);
}

/* ─── Checkbox row ─── */

.th-checkbox-row {
    gap: 6px; padding: 6px 4px;
    color: var(--text-1);}

.th-checkbox-row--spread {
    justify-content: space-between;
}

/* ─── Checkbox label ─── */

.th-checkbox-label {
    gap: 6px; flex: 1;
    min-width: 0;
    cursor: pointer;}

/* ─── Column name span ─── */

.th-col-name {
    /* overflow: hidden; */
    text-overflow: ellipsis; white-space: nowrap;
}

/* ─── Direction buttons (↑ ↓) ─── */

.th-direction-group {
    display: flex; gap: 4px;
    margin-left: 8px;
}

.th-direction-btn {
    border: 1px solid var(--divider-color);
    background: var(--surface-elevated); color: var(--text-1);
    border-radius: 6px; padding: 2px 8px;
    cursor: pointer; line-height: 1.4;
    flex-shrink: 0;
}

.th-direction-btn:hover {
    background: var(--surface-secondary);
}

.th-direction-btn--active {
    background: var(--info-background); border-color: var(--primary-color);
}

/* ─── Critical fixes for dropdown visibility ─── */

.data-table th.table-header,
.data-table th.table-header .header-content {
    overflow: visible !important;
}

.data-table th.table-header .th-menu-anchor {
    position: relative; overflow: visible !important;
}

/* Файл glass-style.css */

/* Стиль Glass */

.glass-style .table-container {
    background: var(--table-row-background);
}

.glass-style .data-table {
    background: transparent;
}

.glass-style .data-table th {
    background: var(--table-header-background);
    color: var(--table-header-text); font-weight: 600;
}

/* Фиксированные заголовки в glass стиле */

.glass-style .fixed-header, .glass-style .fixed-header-row {
    background: var(--table-header-background) !important;
    color: var(--table-header-text) !important;
}

/* Для фиксиксированных строк в glass стиле */

.glass-style .fixed-row {
    background: var(--table-row-background) !important;
}

.glass-style .fixed-row-cell {
    background: inherit !important;
}

.glass-style .data-table td {
    background: var(--table-row-background) !important;
}

/* Активная строка для фиксированных ячеек */

.glass-style .data-table tr:hover td {
    background: var(--table-row-hover-background) !important;
}

/* Новые правила для нередактируемых ячеек */

.glass-style .data-table td.non-editable-cell {
    background-color: var(--table-row-alt-background) !important;
}

/* Для первой ячейки в строке (если нужно сохранить особый стиль) */

.glass-style .data-table td:first-child {
    background-color: color-mix(
        in srgb,
        var(--primary-color) var(--table-fixed-accent-strength),
        var(--table-row-background)
    ) !important;
}

/* При наведении на строку, нередактируемые ячейки также меняют цвет */

.glass-style .data-table tr:hover td.non-editable-cell {
    background-color: var(--table-row-hover-background) !important;
}

/* Файл modern-style.css */

/* Стиль 1: Современный (Modern) */

.modern-style .table-container {
    border-radius: 8px;
}

.modern-style .data-table th {
    background: var(--table-header-background);
    color: var(--table-header-text); font-weight: 600;
    border-bottom: 1px solid var(--divider-color);
}

/* Фиксированные заголовки в modern стиле */

.modern-style .fixed-header, .modern-style .fixed-header-row {
    background: var(--table-header-background) !important;
    color: var(--table-header-text) !important;
}

/* Для фиксированныхрованных строк в modern стиле */

.modern-style .fixed-row {
    background: var(--table-row-background) !important;
}

.modern-style .fixed-row-cell {
    background: inherit !important;
}

/* Переопределяем для фиксированных ячеек в modern стиле */

.modern-style .fixed-cell {
    background: var(--table-row-background) !important;
}

/* Файл striped-style.css */

/* Стиль Striped с чередующимися строками */

.striped-style
.table-container {
    border: 1px solid var(--divider-color); border-radius: 6px;
}

.striped-style
.data-table th {
    background: var(--table-header-background);
    color: var(--table-header-text); font-weight: 600;
    border-bottom: 1px solid var(--divider-color); position: relative;
}

.striped-style
.data-table th::after {
    content: ''; position: absolute;
    bottom: 0; left: 0;
    right: 0; height: 0px;
    background: linear-gradient(90deg, #3498db, #2ecc71);
}

/* Чередующиеся строки */

.striped-style
.data-table tbody
tr:nth-child(odd) td {
    background-color: var(--table-row-background);
}

.striped-style
.data-table tbody
tr:nth-child(even) td {
    background-color: var(--table-row-alt-background);
}

/* Эффект при наведении */

.striped-style
.data-table tbody tr:hover td {
    background-color: var(--table-row-hover-background) !important;
}

/* Фиксированные заголовки в striped стиле */

.striped-style .fixed-header, .striped-style .fixed-header-row {
    background: var(--table-header-background) !important;
    color: var(--table-header-text) !important;
}

.striped-style
.fixed-header-row th::after {
    content: ''; position: absolute;
    bottom: 0; left: 0;
    right: 0; height: 0px;
    background: linear-gradient(90deg, #3498db, #2ecc71);
}

/* Для фиксированных строк в striped стиле */

.striped-style
.fixed-row {
    background: var(--table-row-background) !important;
}

.striped-style .fixed-row-cell {
    background: inherit !important;
}

/* Для нечетных фиксированных строк */

.striped-style
.fixed-row:nth-child(odd)
.fixed-row-cell {
    background-color: var(--table-row-background) !important;
}

/* Для четных фиксированных строк */

.striped-style
.fixed-row:nth-child(even)
.fixed-row-cell {
    background-color: var(--table-row-alt-background) !important;
}

/* Переопределяем для фиксированных ячеек в striped стиле */

.striped-style
.fixed-cell {
    background: inherit !important;
}

/* Последняя ячейка в строке */

.striped-style
.data-table td:last-child {
    border-right: none;
}

/* Последняя строка */

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

/* Файл highlighting_cell_borders.css */

/* Обновленные стили для выделенных ячеек */

.selected-cell.has-top-neighbor::after {
    border-top: none;
}

.selected-cell.has-bottom-neighbor::after {
    border-bottom: none;
}

.selected-cell.has-left-neighbor::after {
    border-left: none;
}

.selected-cell.has-right-neighbor::after {
    border-right: none;
}

/* Для редактируемой ячейки всегда показываем все границы */

.editing-cell::after {
    border: 2px solid var(--selection-border) !important;
}

/* ── Подсветка скопированного диапазона ──
   Класс copied-range-cell ставится на каждую ячейку
   диапазона (см. keyboard_shortcuts.js); на ячейках,
   лежащих на внешней границе, дополнительно стоят
   copied-range-top / -bottom / -left / -right —
   именно там и рисуется пунктир, чтобы получился
   единый контур вокруг всего диапазона. */

.copied-range-cell {
    position: relative;
}

.copied-range-cell::before {
    content: ''; position: absolute;
    top: 0; left: 0;
    right: 0; bottom: 0;
    pointer-events: none; border: 0 dashed var(--selection-border);
    z-index: 7;
}

.copied-range-cell.copied-range-top::before {
    border-top-width: 2px;
}

.copied-range-cell.copied-range-bottom::before {
    border-bottom-width: 2px;
}

.copied-range-cell.copied-range-left::before {
    border-left-width: 2px;
}

.copied-range-cell.copied-range-right::before {
    border-right-width: 2px;
}

/* Файл add_row_column_buttons.css */

.add_row_column_overlay {
    position: absolute; inset: 0;
    pointer-events: none; z-index: 25;
}

.add_row_column__button {
    position: absolute; width: 20px;
    height: 20px; border-radius: 50%;
    border: none; background: var(--accent-blue);
    color: var(--on-accent); font-size: var(--font_size_caption);
    line-height: 18px; text-align: center;
    cursor: pointer; pointer-events: auto;
    box-shadow: var(--shadow); padding: 0;
    justify-content: center;
    z-index: 30;}

.add_row_column__button:hover {
    background: var(--accent);
}

.add_row_column__row_highlight {
    position: absolute; height: 1px;
    background: var(--accent-blue); pointer-events: none;
    z-index: 24;
}

.add_row_column__column_highlight {
    position: absolute; width: 1px;
    background: var(--accent-blue); pointer-events: none;
    z-index: 24;
}

.table-widget .table-container {
    position: relative;
}

/* Файл portrait_modes.css */

.portrait-card-table {
    width: 100%; min-width: 0;
    gap: 8px; overflow-x: hidden;
    overflow-y: auto; padding: 5px;
    box-sizing: border-box; overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;}

.portrait-table-card {
    width: 100%;
    flex: 0 0 auto; gap: 0;
    margin: 0; padding: 5px 8px;
    cursor: pointer;}

.portrait-table-card__field {
    min-width: 0; grid-template-columns: minmax(105px, 40%) minmax(0, 1fr);
    align-items: start; gap: 8px;
    padding: 7px 2px; border-bottom: 1px solid var(--border);
    box-sizing: border-box;}

.portrait-table-card__field:last-child {
    border-bottom: 0;
}

.portrait-table-card__label {
    min-width: 0; color: var(--text-3);
    font-size: var(--font_size_0); font-weight: 600;
    overflow-wrap: anywhere;
}

.portrait-table-card__value {
    min-width: 0; color: var(--text-2);
    font-size: var(--font_size_0); overflow-wrap: anywhere;
    word-break: break-word;
}

.portrait-column-switcher-wrapper {
    overflow-x: hidden;
}

.portrait-column-navigator {
    width: 100%; min-width: 0;
    flex: 0 0 auto; gap: 6px;
    padding: 4px 5px; border-bottom: 1px solid var(--border);
    background: var(--bg-1);
    box-sizing: border-box;}

.portrait-column-navigator__current {
    min-width: 0; flex: 1 1 auto;
    color: var(--text-3);
    font-size: var(--font_size_button);}

.portrait-column-navigator__search {
    display: inline-flex; width: 34px;
    height: 30px; flex: 0 0 auto;
    align-items: center; justify-content: center;
    padding: 0; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-2); cursor: pointer;
    font-size: var(--font_size_1);
}

.portrait-column-navigator__search:hover {
    background: var(--bg-2);
}

.portrait-column-navigator__actions {
    display: flex; flex: 0 0 auto;
    gap: 5px; margin-left: auto;
}

.portrait-column-navigator__actions button {
    display: inline-flex; width: 34px;
    height: 30px; align-items: center;
    justify-content: center; padding: 0;
    border: 0; border-radius: 8px;
    background: linear-gradient(180deg, #49a9df, #2f83c3);
    color: var(--on-accent); cursor: pointer;
    font-size: var(--font_size_1); font-weight: 700;
}

.portrait-column-navigator__actions button:disabled {
    opacity: .4; cursor: default;
}

@media (orientation: portrait) {
    .portrait-card-table {
        gap: calc(var(--font_size_0) * 2); padding: 4px;
        background: var(--bg-2);
    }
    .portrait-table-card {
        padding: 4px 8px; border: 1px solid var(--border);
        border-radius: 8px; background: var(--bg-1);
        box-shadow: var(--shadow);
    }
    .portrait-column-switcher-wrapper .data-table {
        width: 100%; min-width: 100%;
        max-width: 100%;
    }
    .table-widget:not(.apartment-number-content-width)
.portrait-column-switcher-wrapper .data-table th,
.table-widget:not(.apartment-number-content-width)
.portrait-column-switcher-wrapper .data-table td {
        width: auto !important; min-width: 0 !important;
        max-width: none !important; white-space: normal;
        overflow-wrap: anywhere; word-break: break-word;
    }
    .apartment-number-content-width .portrait-column-switcher-wrapper
.data-table th,
.apartment-number-content-width .portrait-column-switcher-wrapper
.data-table td {
        white-space: normal; overflow-wrap: anywhere;
        word-break: break-word;
    }
    .table-widget:not(.apartment-number-content-width)
.portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column) th:first-child,
.table-widget:not(.apartment-number-content-width)
.portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column) td:first-child {
        width: 40% !important;
    }
    .portrait-column-switcher-wrapper .data-table.has-row-number-column
.row-number-header,
.portrait-column-switcher-wrapper .data-table.has-row-number-column
.row-number-cell {
        width: 44px !important; min-width: 44px !important;
        max-width: 44px !important; overflow: hidden !important;
        white-space: nowrap !important;
    }
    .table-widget:not(.apartment-number-content-width)
.portrait-column-switcher-wrapper .data-table.has-row-number-column
th:nth-child(2), .table-widget:not(.apartment-number-content-width)
.portrait-column-switcher-wrapper .data-table.has-row-number-column
td:nth-child(2) {
        width: 38% !important;
    }
    .portrait-column-switcher-wrapper .data-table th:only-child,
.portrait-column-switcher-wrapper .data-table td:only-child {
        width: 100% !important;
    }
    .portrait-column-switcher-wrapper .header-content,
.portrait-column-switcher-wrapper .cell-content,
.portrait-column-switcher-wrapper .cell-display-value {
        min-width: 0; white-space: normal;
        overflow-wrap: anywhere; word-break: break-word;
    }
    .portrait-column-switcher-wrapper .data-table .fixed-column,
.portrait-column-switcher-wrapper .data-table .fixed-cell {
        overflow: hidden !important; background-clip: border-box !important;
        isolation: isolate;
    }
    .portrait-column-switcher-wrapper .data-table .row-number-cell
.cell-content,
.portrait-column-switcher-wrapper .data-table .row-number-cell
.cell-display-value {
        line-height: 1.15; text-align: center;
        white-space: nowrap;
    }
    .striped-style .portrait-column-switcher-wrapper .data-table tbody
tr:nth-child(odd) .fixed-cell {
        background-color: var(--table-row-background) !important;
    }
    .striped-style .portrait-column-switcher-wrapper .data-table tbody
tr:nth-child(even) .fixed-cell {
        background-color: var(--table-row-alt-background) !important;
    }
    .glass-style .portrait-column-switcher-wrapper
    .data-table td.fixed-cell {
        background-color: var(--table-row-background) !important;
    }
    .glass-style .portrait-column-switcher-wrapper .data-table
td.fixed-cell:first-child {
        background-color: color-mix(
            in srgb,
            var(--primary-color) 24%,
            var(--table-row-background)
        ) !important;
    }
}

/* Файл portrait_fixed_cells.css */

@media (orientation: portrait) {
    .portrait-column-switcher-wrapper .data-table {
        table-layout: fixed !important;
    }
    .portrait-column-switcher-wrapper .data-table tbody tr {
        position: relative;
    }
    .portrait-column-switcher-wrapper
    .data-table tbody td.fixed-cell {
        position: static !important; left: auto !important;
        z-index: auto !important;
    }
    .portrait-column-switcher-wrapper .data-table tbody
td:first-child.fixed-cell {
        overflow: hidden !important; vertical-align: top;
        clip-path: none; isolation: auto;
    }
    .portrait-column-switcher-wrapper .data-table tbody
td:first-child.fixed-cell .cell-content,
.portrait-column-switcher-wrapper .data-table tbody
td:first-child.fixed-cell .cell-display-value {
        display: block; width: 100%;
        max-width: 100%; overflow: hidden !important;
        box-sizing: border-box;
    }
}

/* Файл content_width_columns.css */

.apartment-number-content-width .data-table:not(.has-row-number-column)
th:first-child,
.apartment-number-content-width .data-table:not(.has-row-number-column)
td:first-child,
.apartment-number-content-width .data-table.has-row-number-column
th:nth-child(2),
.apartment-number-content-width .data-table.has-row-number-column
td:nth-child(2) {
    white-space: nowrap !important; overflow-wrap: normal !important;
    word-break: normal !important;
}

.apartment-number-content-width .data-table:not(.has-row-number-column)
th:first-child .header-content,
.apartment-number-content-width .data-table:not(.has-row-number-column)
td:first-child .cell-content,
.apartment-number-content-width .data-table:not(.has-row-number-column)
td:first-child .cell-display-value,
.apartment-number-content-width .data-table.has-row-number-column
th:nth-child(2) .header-content,
.apartment-number-content-width .data-table.has-row-number-column
td:nth-child(2) .cell-content,
.apartment-number-content-width .data-table.has-row-number-column
td:nth-child(2) .cell-display-value {
    min-width: 0 !important; white-space: nowrap !important;
    overflow-wrap: normal !important; word-break: normal !important;
}

@media (orientation: portrait) {
    .apartment-number-content-width .portrait-column-switcher-wrapper
.data-table {
        width: 100% !important; min-width: 100% !important;
        max-width: 100% !important; table-layout: fixed !important;
    }
    .apartment-number-content-width .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column) th:not(:first-child),
.apartment-number-content-width .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column) td:not(:first-child),
.apartment-number-content-width .portrait-column-switcher-wrapper
.data-table.has-row-number-column
th:not(:first-child):not(:nth-child(2)),
.apartment-number-content-width .portrait-column-switcher-wrapper
.data-table.has-row-number-column
td:not(:first-child):not(:nth-child(2)) {
        width: auto !important; min-width: 0 !important;
        max-width: none !important; white-space: normal !important;
        overflow-wrap: anywhere !important; word-break: break-word !important;
    }
    .apartment-number-content-width
    .portrait-column-switcher-wrapper {
        overflow-x: hidden !important;
    }
}

/* Файл fixed_headers.css */

.fixed-header-table th.fixed-header-row {
    z-index: 60 !important;
}

.fixed-header-table th.fixed-header.fixed-header-row {
    z-index: 80 !important;
}

/* Файл table_resize.css */

.table-header--resizable {
    position: relative;
}

.table-header--resizable::before, .table-header--resizable::after {
    position: absolute; top: 0;
    width: 7px; height: 100%;
    content: ''; cursor: col-resize;
    z-index: 80;
}

.table-header--resizable::before {
    left: 0;
}

.table-header--resizable::after {
    right: 0;
}

body.table-widget-resizing {
    user-select: none;
}

/* Файл table_context_menu.css */

.table-context-menu {
    position: fixed; z-index: 2000;
    min-width: 230px; max-width: min(340px, calc(100vw - 16px));
    padding: var(--spacing_xs, 4px); border: 1px solid var(--divider-color);
    border-radius: 6px; background: var(--surface-primary);
    box-shadow: var(--shadow);}

.table-context-menu button {
    width: 100%;
    padding: var(--spacing_compact, 6px) var(--spacing_regular, 10px);
    border: 0; border-radius: 4px;
    background: transparent; color: var(--text-1);
    font: inherit; text-align: left;
    cursor: pointer;
}

.table-context-menu button:hover {
    background: var(--surface-secondary);
}

.table-context-menu__separator {
    height: 1px; margin: var(--spacing_xs, 4px) 0;
    background: var(--divider-color);
}

.table-context-menu button.table-context-menu__danger {
    color: var(--status-error-text);
}

/* Файл TableWidget.css */

.table-widget {
    position: relative; width: 100%;
    max-width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    max-height: calc(100dvh - (var(--font_size_0) * 6)); overflow: hidden;
    font-family: var(--font_family_interface);
    box-sizing: border-box;}

.table-container {
    border: 1px solid var(--divider-color); border-radius: 8px;
    background: var(--surface-primary); box-shadow: var(--shadow);
    overflow: hidden; position: relative;
    height: 100%; min-height: 0;
    max-height: 100%;
}

.table-wrapper {
    position: relative; width: 100%;
    max-width: 100%; height: auto;
    min-width: 0; min-height: 0;
    max-height: 100%; flex: 1 1 auto;
    overflow-x: auto; overflow-y: auto;
    scrollbar-gutter: auto; overscroll-behavior: contain;
    touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}

.data-table {
    width: 100%; border-collapse: collapse;
    border-spacing: 0; table-layout: fixed;
    background: var(--table-row-background); color: var(--text-1);
    position: relative;
}

.data-table th,
.data-table td {
    padding-top: 5px; padding-bottom: 5px;
    text-align: left; border: none;
    white-space: nowrap; text-overflow: ellipsis;
    box-sizing: border-box; position: relative;
    overflow: hidden;
}

.data-table tbody tr,
.data-table tbody td {
    outline: none; box-shadow: none;
}

.editable-cell {
    cursor: cell;
}

.selected-cell {
    position: relative; z-index: 8 !important;
}

.selected-cell::after {
    content: ''; position: absolute;
    top: 0; left: 0;
    right: 0; bottom: 0;
    border: 2px solid var(--selection-border); pointer-events: none;
}

.editing-cell::after {
    content: ''; position: absolute;
    top: 0; left: 0;
    right: 0; bottom: 0;
    border: 2px solid var(--selection-border); background-color: transparent;
    pointer-events: none; z-index: 61;
}

.cell-input {
    display: block;
    width: 100%; height: 100%; min-height: 0;
    border: none !important; outline: none;
    padding: 0 !important; margin: 0 !important;
    font-size: var(--font_size_0); font-family: var(--font_family_interface);
    line-height: inherit;
    background: transparent !important; border-radius: 0 !important;
    box-shadow: none !important; color: inherit;
    box-sizing: border-box; position: relative;
    z-index: 62;
}

.selection-range {
    position: absolute; border: 2px solid var(--selection-border);
    background-color: var(--selection-background); pointer-events: none;
    z-index: 55;
}

.fixed-column {
    position: sticky !important;
    background: var(--table-row-background) !important;
}

/* Фиксированные заголовки столбцов.
   Вертикальное закрепление задаётся только классом fixed-header-row.
   Иначе при горизонтально закреплённых столбцах часть шапки оставалась
   на месте, а остальные заголовки прокручивались вверх. */

.fixed-header {
    z-index: 30 !important; background: inherit !important;
}

.fixed-header.fixed-header-row {
    top: 0;
}

.fixed-cell {
    z-index: 20 !important; background: inherit !important;
}

.fixed-row {
    position: sticky !important;
    background: var(--table-row-background) !important; z-index: 22 !important;
}

.fixed-row-cell {
    background: inherit !important;
}

.fixed-header-row {
    position: sticky !important; top: 0 !important;
    z-index: 25 !important;
}

.fixed-header-table thead {
    position: sticky; top: 0;
    z-index: 25;
}

.header-content, .cell-content {
    width: 100%; overflow: hidden;
    text-overflow: ellipsis;
}

.loading {
    justify-content: center; height: 200px;
    font-size: var(--font_size_1);
    color: var(--text-3);}

.error-message {
    background-color: var(--status-error-background);
    color: var(--status-error-text); border-radius: 4px;
    border: 1px solid var(--status-error-border); margin-bottom: 10px;
}

.no-data {
    justify-content: center; height: 100px;
    color: var(--text-3);
    font-style: italic;}

/* Для ячейек с плейсхолдером */

.cell-placeholder {
    color: var(--text-3); opacity: 0.7;
}

/* Пользовательская заливка ячеек (как в Excel) */

.glass-style .data-table .table-cell-cell.custom-filled-cell,
.striped-style .data-table .table-cell-cell.custom-filled-cell,
.modern-style .data-table .table-cell-cell.custom-filled-cell,
.table-cell-cell.custom-filled-cell {
    background: color-mix(
        in srgb,
        var(--custom_cell_background) var(--table-custom-fill-strength),
        var(--table-row-background)
    ) !important;
}

/* Фантомные строки больше НЕ используются для высоты
   (phantomCount = 0). Стили оставлены на случай возврата,
   они безвредны при отсутствии .phantom-row в DOM. */

.phantom-row {
    pointer-events: none; user-select: none;
}

.phantom-cell {
    background: transparent; border: none;
    cursor: default;
}

.data-table tbody tr.phantom-row:hover td,
.data-table tbody tr.phantom-row:nth-child(odd) td,
.data-table tbody tr.phantom-row:nth-child(even) td {
    background: transparent !important; box-shadow: none !important;
}

.cell-checkbox {
    display: block; margin: 0 auto;
    cursor: pointer;
}

.cell-display-value.wrap-cell {
    white-space: normal; overflow-wrap: anywhere;
    word-break: break-word; line-height: 1.2;
}

.table-widget--auto-height {
    height: auto; max-height: none;
    overflow: visible;
}

.table-widget--auto-height .table-container {
    height: auto; max-height: none;
    overflow: visible;
}

.table-widget--auto-height .table-wrapper {
    height: auto; max-height: none;
    flex: 0 0 auto; overflow-x: auto;
    overflow-y: visible; overscroll-behavior: auto;
}

/* Файл table_search.css */

.table-search-portrait {
    flex: 0 0 auto; gap: 8px;
    padding: 4px 0;}

.table-search-portrait__toggle, .table-search-portrait__field button,
.table-search-panel__footer button {
    display: inline-flex; align-items: center;
    justify-content: center; width: 36px;
    height: 36px; margin: 0;
    padding: 0; border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-1);
    color: var(--accent-dark); font-size: var(--font_size_1);
    cursor: pointer;
}

.table-search-portrait__toggle:hover,
.table-search-portrait__field button:hover,
.table-search-panel__footer button:hover {
    border-color: var(--accent); background: var(--bg-2);
    color: var(--accent);
}

.table-search-portrait__field {
    display: flex; min-width: 0;
    height: 36px; box-sizing: border-box;
    flex: 1; align-items: center;
    gap: 8px; padding: 0 6px 0 12px;
    border: 1px solid var(--border); border-radius: 12px;
    background: var(--bg-1);
}

.table-search-portrait__field input {
    min-width: 0; flex: 1;
    border: 0; outline: 0;
    background: transparent; color: var(--text-1);
    font-size: var(--font_size_0);
}

.table-search-portrait__field span {
    color: var(--text-2); font-size: var(--font_size_0);
    white-space: nowrap;
}

.table-search-panel__content {
    height: 100%; box-sizing: border-box;
    gap: 14px;
    padding: 12px;}

.table-search-panel__field {
    gap: 8px; padding: 0 12px;
    border: 1px solid var(--border); border-radius: 12px;
    background: var(--bg-1);}

.table-search-panel__field input {
    min-width: 0; height: 42px;
    flex: 1; border: 0;
    outline: 0; background: transparent;
    color: var(--text-1); font-size: var(--font_size_0);
}

.table-search-panel__options {
    display: grid; gap: 10px;
    padding: 12px; border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-1);
}

.table-search-panel__options label {
    display: flex; align-items: center;
    gap: 8px; cursor: pointer;
}

.table-search-panel__footer {
    display: flex; align-items: center;
    justify-content: space-between; gap: 12px;
    margin-top: auto;
}

.table-search-panel__footer > div {
    display: flex; gap: 8px;
}

.table-search-panel__footer button:disabled {
    cursor: default; opacity: 0.45;
}

.table-search-current-cell {
    box-shadow: inset 0 0 0 3px var(--accent-orange-bg) !important;
}

/* Файл total_row.css */

/* Строка «Итого» TableWidget. По умолчанию прокручивается
   вместе с таблицей, а при fix_total_row={true} прибивается
   к низу скролл-контейнера. */

.tw-total-row {
    background: var(--bg-2, #edf1f5);
}

.tw-total-cell {
    position: static; bottom: auto;
    z-index: 15; padding: 4px 6px;
    background: var(--bg-2, #edf1f5);
    border-top: 2px solid var(--border, #d0d7de); font-weight: 600;
    color: var(--text-1, #1f2328); box-sizing: border-box;
}

/* Фиксированные слева столбцы в футере должны
   перекрывать обычные ячейки при горизонтальном скролле. */

.tw-total-cell.fixed-column {
    z-index: 25;
}

/* fix_total_row={true} — строка прибивается к низу. */

.tw-total-row:not(.tw-total-row--static) .tw-total-cell {
    position: sticky; bottom: 0;
}

.tw-total-label {
    text-align: left;
}

.tw-total-value {
    text-align: right;
}

/* Стиль glass: заливка строки «Итого» как у шапки.
   Повышенная специфичность + !important, чтобы перебить
   `.glass-style .data-table td { background: #fff !important }`
   и `td:first-child`. */

.glass-style .data-table .tw-total-cell {
    background: var(--table-header-background) !important;
    color: var(--table-header-text); border-top-color: var(--divider-color);
}

/* Файл lk_content_search.css */

.lk-content-search {
    width: 100%; max-width: 100%;
    gap: var(--spacing_small);}

.lk-content-search__field {
    min-width: 0; flex: 1 1 auto;
    gap: var(--spacing_small);}

.lk-content-search__icon {
    flex: 0 0 auto; color: var(--text-3);
}

.lk-content-search__field input {
    width: 100%; min-width: 0;
    margin: 0; border: 0;
    outline: 0; background: transparent;
    color: var(--text-2);
}

.lk-content-loader {
    width: 100%; min-height: calc(var(--font_size_0) * 8);
    justify-content: center; color: var(--text-2);
    text-align: center;}


/* Файл DocumentFilePreview.css */

.document-file-preview {
    min-height: 70dvh; overflow: auto;
    border: 1px solid var(--border); border-radius: 16px;
    background: var(--bg-1);
}

.document-file-preview__pdf {
    display: block; width: 100%;
    min-height: 78dvh; border: 0;
    background: var(--bg-1);
}

.document-file-preview--docx {
    padding: 18px;
}

.document-file-preview--docx .docx-viewer {
    display: flex; flex-direction: column;
    align-items: center; gap: 18px;
}

.document-file-preview__message {
    padding: 24px; color: var(--text-2);
    text-align: center;
}

.document-file-preview__message--error {
    color: var(--accent-red);
}

/* Файл Input.css */

.app-input {
    box-sizing: border-box; margin: 0;
    font-family: var(--font_family_interface);
}

.app-input:not(:is([type='checkbox'], [type='radio'], [type='file'],
[type='hidden'], [type='range'], [type='color'])) {
    width: 100%; min-height: calc(var(--font_size_0) + var(--spacing_small));
    padding: var(--ui-input-padding-block)
        var(--ui-input-padding-inline);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    outline: none; background: var(--input-background);
    color: var(--text-1); font-size: var(--font_size_0);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.app-input:not(:is([type='checkbox'], [type='radio'], [type='file'],
[type='hidden'], [type='range'], [type='color'])):focus {
    border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring);
}

.app-input:not(:is([type='checkbox'], [type='radio'], [type='file'],
[type='hidden'], [type='range'], [type='color'])):disabled,
.app-input:not(:is([type='checkbox'], [type='radio'], [type='file'],
[type='hidden'], [type='range'], [type='color']))[readonly] {
    background: var(--bg-2); color: var(--text-2);
}

.app-input::placeholder {
    color: var(--text-3);
}

.app-input[type='checkbox'], .app-input[type='radio'] {
    width: auto; min-height: 0;
    margin: 0; padding: 0;
}

/* Файл DocumentTemplatesPanel.css */

.document-templates-panel {
    width: 100%; height: 100%;
    min-height: 0;
}

.document-templates-panel > .tab-widget-container,
.document-templates-panel .tab-container-left,
.document-templates-panel .tab-content-wrapper,
.document-templates-panel .tab-content-left,
.document-templates-panel .tab-content-item.active {
    height: 100%; min-height: 0;
}

.document-templates-panel .tab-container-left {
    align-items: stretch;
}

.document-templates-panel .tab-nav-left {
    align-self: stretch; height: 100%;
    min-height: 0; padding-top: 0;
    padding-bottom: 0; background: var(--bg-2);
}

.document-templates-panel .tab-nav-left .tab-item-wrapper {
    flex: 0 0 auto;
}

.document-templates-panel .tab-nav-left .tab-item-wrapper:first-child {
    margin-top: 0;
}

.document-templates-panel .tab-content-left,
.document-templates-panel .tab-content-item.active {
    overflow-y: auto;
}

.document-templates {
    grid-template-columns: minmax(230px, 0.72fr) minmax(360px, 1.28fr);
    align-items: stretch; gap: 8px;
    min-height: 100%; padding: 8px;
    box-sizing: border-box;}

.document-templates__editor, .document-templates__list { height: 100%;
    margin: 0;
}

.document-templates__title {
    margin-bottom: 10px; color: var(--blue-navy);
    font-size: var(--font_size_1); font-weight: 700;
}

.document-templates__field {
    gap: 5px; margin-bottom: 10px;
    color: var(--text-3);}

.document-templates__field input, .document-templates__field textarea {
    width: 100%; margin: 0;
    padding: 8px 10px; border: 1px solid var(--border);
    border-radius: 8px; box-sizing: border-box;
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.document-templates__field textarea {
    resize: vertical; white-space: pre-wrap;
}

.document-templates__actions, .document-templates__item-actions {
    display: flex; flex-wrap: wrap;
    gap: 6px;
}

.document-templates__item {
    display: flex; justify-content: space-between;
    gap: 12px; padding: 10px 0;
    border-bottom: 1px solid var(--border);
}

.document-templates__item-main {
    min-width: 0; flex: 1 1 auto;
    padding: 0; border: 0;
    background: transparent; color: inherit;
    font: inherit; text-align: left;
    cursor: pointer;
}

.document-templates__item-main:hover {
    background: transparent; color: inherit;
    box-shadow: none; transform: none;
}

.document-templates__item-main strong {
    color: var(--blue-navy);
}

.document-templates__item-main span {
    display: block; margin-top: 2px;
    color: var(--text-2); font-size: var(--font_size_0);
}

.document-templates__item-main p {
    max-height: 92px; margin: 6px 0 0;
    overflow: hidden; color: var(--text-1);
    white-space: pre-wrap;
}

.document-templates__item-actions {
    align-content: flex-start; flex: 0 0 auto;
}

.document-templates__item-actions button {
    min-width: 96px; min-height: 32px;
    padding: 5px 10px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-2); cursor: pointer;
}

.document-templates__item-actions button:hover {
    border-color: var(--accent); background: var(--bg-2);
    color: var(--accent-blue);
}

.document-templates__empty {
    color: var(--text-2);
}

@media (max-width: 900px) {
    .document-templates {
        grid-template-columns: 1fr;
    }
}

.document-appearance {
    min-height: calc(100% - 16px);
    margin: calc(var(--spacing_small) / 2) var(--spacing_small)
        var(--spacing_small) calc(var(--spacing_small) / 2);
    padding-top: var(--spacing_small); padding-left: var(--spacing_small);
}

.document-appearance p {
    max-width: 660px; margin: 0 0 18px;
    color: var(--text-2); line-height: 1.5;
}

.document-appearance__fields {
    display: flex; flex-wrap: wrap;
    gap: 14px;
}

.document-appearance__fields .document-templates__field {
    min-width: 220px;
}

.document-appearance__fields select {
    min-height: 36px; border: 1px solid var(--border);
    border-radius: 8px; padding: 0 10px;
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.document-appearance__preview {
    width: min(680px, 100%); margin-top: 18px;
    padding: 20px; border: 1px solid var(--border);
    border-radius: 10px; box-sizing: border-box;
    background: var(--bg-1); color: var(--text-1);
}

/* Файл full_document_editor_layout.css */

.doc-editor {
    --doc-editor-control-font-size: var(--document_editor_control_font_size);
    --doc-editor-control-height: var(--document_editor_control_height);
    display: flex; height: 100%;
    min-height: 0; box-sizing: border-box;
    flex-direction: column;
    font-family: var(--font_family_interface);
    font-size: var(--document_editor_control_font_size);
}

.doc-editor--file-mode {
    gap: 0; padding: 0;
}

.doc-editor--file-mode .doc-editor__topbar--file {
    border-bottom-right-radius: 0; border-bottom-left-radius: 0;
}

.doc-editor--file-mode .document-templates-panel {
    flex: 1 1 auto; min-height: 0;
}

.doc-editor__topbar {
    display: flex; height: 132px;
    min-height: 132px; max-height: 132px;
    flex: 0 0 132px; flex-direction: column;
    padding: 0; overflow: hidden;
    border: 1px solid var(--border);
    background: var(--bg-1);
}

.doc-editor__topbar--file {
    height: 42px; min-height: 38px;
    max-height: 42px; flex-basis: 42px;
}

.doc-editor__tabs-row {
    display: flex; min-width: 0;
    min-height: 38px; flex: 0 0 38px;
    align-items: stretch; justify-content: space-between;
    gap: 8px; border-bottom: 1px solid var(--border);
    background: var(--bg-2);
}

.doc-editor__tabs {
    display: flex; min-width: 0;
    flex: 1 1 auto; gap: 6px;
    padding: 4px 5px 0; overflow-x: auto;
    overflow-y: hidden; scrollbar-width: thin;
}

.doc-editor__tab {
    height: 30px; flex: 0 0 auto;
    padding: 0 8px; border: none;
    border-radius: 10px 10px 0 0; background: transparent;
    color: var(--text-3); font-size: var(--doc-editor-control-font-size);
    font-weight: 600; line-height: 1;
    cursor: pointer; transition: 0.16s ease;
}

.doc-editor__tab:hover {
    background: color-mix(in srgb, var(--accent) 7%, var(--bg-1));
    color: var(--text-1); box-shadow: none;
    transform: none;
}

.doc-editor__tab--active {
    background: var(--bg-1); color: var(--text-1);
    box-shadow: 0 -1px 0 var(--bg-1), 0 0 0 1px var(--border) inset;
}

.doc-editor__topbar-actions {
    flex: 0 0 auto; gap: 6px;
    padding-right: 7px;}

.doc-editor__layout-mode-btn {
    display: inline-flex; width: 34px;
    min-width: 34px; height: 32px;
    align-items: center; justify-content: center;
    padding: 0 !important; border: 1px solid var(--border);
    border-radius: 9px; background: var(--bg-1);
    color: var(--blue-navy); font-size: var(--font_size_2);
    line-height: 1; cursor: pointer;
}

.doc-editor__layout-mode-btn:hover {
    border-color: var(--accent); background: var(--bg-1);
    color: var(--accent); box-shadow: none;
    transform: none;
}

.doc-editor__save-text-btn {
    align-self: center; min-width: 142px;
    min-height: 32px; margin: 0;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: 9px;
    background: var(--accent); color: var(--on-accent);
    font-size: var(--doc-editor-control-font-size); white-space: nowrap;
}

.doc-editor__save-text-btn:hover {
    border-color: var(--accent-blue); background: var(--accent-blue);
    color: var(--on-accent);
}

.doc-editor__tab-panel {
    min-width: 0; min-height: 0;
    flex: 1 1 auto; grid-auto-columns: max-content;
    grid-auto-flow: column; grid-template-rows: repeat(2, minmax(0, 1fr));
    align-items: center; align-content: stretch;
    justify-content: start; gap: 4px 8px;
    padding: 5px 8px; overflow-x: auto;
    overflow-y: hidden; border-bottom: 1px solid var(--border);
    background: var(--bg-1);
    scrollbar-width: thin;}

.doc-editor__tab-panel--formulas {
    display: flex; align-items: stretch;
    gap: 8px; overflow-x: hidden;
}

.doc-editor__tab-panel > .doc-editor__group--column,
.doc-editor__tab-panel > .doc-editor__review-toolbar {
    grid-row: 1 / span 2;
}

.doc-editor__tab-panel > .doc-editor__hint {
    margin-top: 0;
}

.doc-editor__group {
    display: flex; flex: 0 0 auto;
    align-items: center; gap: 4px;
    padding-right: 8px; border-right: 1px solid var(--border);
}

.doc-editor__group:last-child {
    padding-right: 0; border-right: none;
}

.doc-editor__group--column {
    flex-direction: column; align-items: flex-start;
}

.doc-editor__group--grow {
    flex: 1 1 100%;
}

.doc-editor__group--compact {
    gap: 3px; padding-right: 7px;
}

/* Файл full_document_editor_controls.css */

.doc-editor__tool-btn, .doc-editor__select, .doc-editor__color-control,
.doc-editor__mini-field {
    min-height: var(--doc-editor-control-height); border: 1px solid #d9ddea;
    border-radius: 8px; background: #fff;
    color: #44506b; font-family: var(--font_family_interface);
    font-size: var(--doc-editor-control-font-size); font-weight: 600;
    line-height: 1; box-sizing: border-box;
}

.doc-editor__tool-btn {
    display: inline-flex; min-width: var(--doc-editor-control-height);
    align-items: center; justify-content: center;
    gap: 6px; padding: 0 8px;
    cursor: pointer; transition: all 140ms ease;
}

.doc-editor__tool-btn:hover, .doc-editor__select:hover,
.doc-editor__color-control:hover {
    border-color: #bcc4d8; background: #f7f8fc;
}

.doc-editor__tool-btn--wide {
    min-width: 90px;
}

.doc-editor__tool-btn--active {
    border-color: #ff8a1f; background: #fff1e5;
    color: #ff7d12;
}

.doc-editor__select {
    display: inline-flex; max-width: 100%;
    align-items: center; justify-content: center;
    gap: 6px; padding: 0 10px;
    cursor: pointer; transition: all 140ms ease;
}

.doc-editor__select-native {
    appearance: none; padding-right: 28px;
    background: linear-gradient(45deg, transparent 50%, #7f88a0 50%),
        linear-gradient(135deg, #7f88a0 50%, transparent 50%),
        linear-gradient(to right, #fff, #fff);
    background-position: calc(100% - 14px) 11px,
        calc(100% - 9px) 11px,
        0 0;
    background-size: 5px 5px, 5px 5px, 100% 100%; background-repeat: no-repeat;
}

.doc-editor__color-control {
    display: inline-flex; align-items: center;
    gap: 6px; padding: 0 8px;
    cursor: pointer; transition: all 140ms ease;
}

.doc-editor__color-label {
    font-size: var(--doc-editor-control-font-size); white-space: nowrap;
}

.doc-editor__color-control input[type='color'] {
    width: 20px; height: 20px;
    margin: 0; padding: 0;
    border: none; background: transparent;
    cursor: pointer;
}

.doc-editor__switches {
    gap: 4px;}

.doc-editor__switch {
    gap: 5px; color: #42506d;
    font-size: var(--doc-editor-control-font-size);
    line-height: 1.2;}

.doc-editor__switch input {
    width: 16px; height: 16px;
    margin: 0; padding: 0;
}

.doc-editor__hint {
    margin-top: 12px; padding: 8px;
    border-radius: 6px; background: #f8f9fc;
    color: #667085; font-size: var(--doc-editor-control-font-size);
    line-height: 1.25;
}

.doc-editor__status-chip {
    display: inline-flex; height: 30px;
    align-items: center; padding: 0 10px;
    border-radius: 999px; background: #f3f5fa;
    color: #4c5873; font-size: var(--doc-editor-control-font-size);
    font-weight: 600;
}

.doc-editor__layout {
    display: flex; justify-content: center;
}

.doc-editor__workspace {
    display: flex; width: 100%;
    justify-content: center;
}

.doc-editor__page {
    padding: 48px 56px;
}

/* Файл full_document_editor_review.css */

.doc-editor__review-toolbar {
    width: max-content; min-width: 100%;
    height: 100%; grid-template-columns: auto auto minmax(max-content, 1fr);
    grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 4px 10px;
    align-items: center;}

.doc-editor__review-toolbar-modes, .doc-editor__review-toolbar-history,
.doc-editor__review-toolbar-main, .doc-editor__review-toolbar-side {
    display: flex; min-width: 0;
    gap: 6px;
}

.doc-editor__review-toolbar-modes {
    min-width: 280px; grid-column: 1;
    grid-row: 1 / span 2; flex-direction: column;
    align-items: flex-start; justify-content: center;
    padding-right: 10px; border-right: 1px solid var(--border);
}

.doc-editor__review-toolbar-history {
    height: 100%; grid-column: 2;
    grid-row: 1 / span 2; align-items: stretch;
}

.doc-editor__review-toolbar-history .doc-editor__group {
    height: 100%; align-items: flex-start;
}

.doc-editor__review-clear-stack {
    min-width: 145px;
    gap: 4px;}

.doc-editor__review-clear-stack .doc-editor__tool-btn {
    width: 100%;
}

.doc-editor__review-toolbar-main {
    grid-column: 3; grid-row: 1;
    align-items: center;
}

.doc-editor__review-toolbar-side {
    grid-column: 3; grid-row: 2;
    align-items: center; justify-content: flex-end;
    padding-left: 10px; border-left: 1px solid var(--border);
}

.doc-editor__review-toolbar-side .doc-editor__group {
    border-right: 0;
}

.doc-editor__indent-group, .doc-editor__paragraph-spacing-group {
    min-width: max-content;
}

.doc-editor__indent-control {
    display: inline-flex; min-height: var(--doc-editor-control-height);
    align-items: center; gap: 6px;
    color: var(--text-2); font-size: var(--doc-editor-control-font-size);
    font-weight: 600; white-space: nowrap;
}

.doc-editor__indent-control input {
    width: 64px; min-height: var(--doc-editor-control-height);
    box-sizing: border-box; margin: 0;
    padding: 0 7px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-1); font-size: var(--doc-editor-control-font-size);
    font-weight: 600;
}

.doc-editor__indent-control input:focus,
.doc-editor__mini-field input:focus {
    outline: none; border-color: var(--accent);
    background: #fff;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent);
}

.doc-editor__mini-field {
    display: inline-flex; align-items: center;
    gap: 5px; padding: 0 8px;
}

.doc-editor__mini-field span, .doc-editor__mini-field small {
    font-size: var(--doc-editor-control-font-size); font-weight: 600;
    white-space: nowrap;
}

.doc-editor__mini-field small {
    color: #7c879d;
}

.doc-editor__mini-field input {
    width: 64px; min-height: 22px;
    margin: 0; padding: 0 6px;
    border: 1px solid transparent; border-radius: 6px;
    background: #f7f8fc; color: #27324a;
    font-size: var(--doc-editor-control-font-size); font-weight: 600;
    line-height: 1; box-sizing: border-box;
}

.doc-editor__mini-field--indent input {
    width: 82px;
}

/* Файл full_document_editor_base.css */

/* Файл full_document_editor_toolbar.css */

.doc-editor__page-meta {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 16px;
    margin-bottom: 24px;
}

.doc-editor__meta-label {
    font-size: var(--font_size_caption); line-height: 1.4;
    color: #8c95aa; text-transform: uppercase;
    letter-spacing: 0.04em;
}

.doc-editor__meta-value {
    margin-top: 4px; font-size: var(--font_size_button);
    color: #27324a; font-weight: 700;
}

.doc-editor__status {
    padding: 6px 12px; border-radius: 999px;
    background: #fff1e5; color: #ff7d12;
    font-size: var(--font_size_caption); font-weight: 700;
}

.doc-editor__page-title {
    font-size: var(--font_size_2); line-height: 1.35;
    font-weight: 700; color: #1f2b44;
    text-align: center; margin-bottom: 8px;
}

.doc-editor__page-subtitle {
    font-size: var(--font_size_caption); color: #7c879d;
    text-align: center; margin-bottom: 28px;
}

/* HEADER & FOOTER */

.doc-editor__header, .doc-editor__footer-line {
    display: grid; grid-template-columns: 1fr 1fr 1fr;
    gap: 12px; font-size: var(--font_size_caption);
    color: #6b7280;
}

.doc-editor__header {
    padding-bottom: 14px; margin-bottom: 10px;
    border-bottom: 1px solid #e7eaf1;
}

.doc-editor__footer-line {
    padding-top: 14px; margin-top: 22px;
    border-top: 1px solid #e7eaf1;
}

.doc-editor__header > div:nth-child(2),
.doc-editor__footer-line > div:nth-child(2) {
    text-align: center;
}

.doc-editor__header > div:nth-child(3),
.doc-editor__footer-line > div:nth-child(3) {
    text-align: right;
}

.doc-editor__header > div, .doc-editor__footer-line > div {
    cursor: text; padding: 4px;
    border-radius: 2px; transition: background 0.15s ease;
}

.doc-editor__header > div:hover, .doc-editor__footer-line > div:hover {
    background: rgba(123, 97, 214, 0.05);
}

.doc-editor__header--editing, .doc-editor__footer-line--editing {
    outline: 2px solid #7b61d6; outline-offset: -2px;
    border-radius: 4px;
}

.doc-editor__hf-cell--active {
    outline: 2px solid #7b61d6; outline-offset: 2px;
    border-radius: 2px;
}

/* EDITABLE AREA */

.doc-editor__editable {
    outline: none; border: 1px dashed #d9ddea;
    border-radius: 8px; padding: 16px 18px;
    background: #fff;
    font-family: var(--doc-editor-default-font, var(--font_family_interface));
    font-size: var(--doc-editor-default-font-size, var(--font_size_0));
    color: #232a36; line-height: 1.5;
    user-select: text; -webkit-user-select: text;
}

.doc-editor__editable:focus {
    border-color: #7b61d6; box-shadow: 0 0 0 3px rgba(123, 97, 214, 0.08);
}

.doc-editor__editable p {
    margin: 0 0 12px; text-align: justify;
}

.doc-editor__editable ul, .doc-editor__editable ol {
    margin: 0 0 12px 22px;
}

.doc-editor__editable table {
    width: 100%; margin: 12px 0;
}

.doc-editor__editable img {
    max-width: 100%; height: auto;
    display: block; margin: 12px 0;
}

.doc-editor__editable h1 {
    font-size: var(--font_size_0); line-height: 1.2;
    margin: 18px 0 12px;
}

.doc-editor__editable h2 {
    font-size: var(--font_size_3); line-height: 1.25;
    margin: 16px 0 10px;
}

.doc-editor__editable h3 {
    font-size: var(--font_size_3); line-height: 1.3;
    margin: 16px 0 10px;
}

.doc-editor__editable h4 {
    font-size: var(--font_size_2); line-height: 1.35;
    margin: 14px 0 8px;
}

.doc-editor__editable h5 {
    font-size: var(--font_size_0); line-height: 1.4;
    margin: 14px 0 8px;
}

.doc-editor__editable h6 {
    font-size: var(--font_size_button); line-height: 1.4;
    margin: 14px 0 8px;
}

.doc-editor__editable blockquote {
    border-left: 3px solid #7b61d6; padding-left: 16px;
    margin: 12px 0; color: #5a647c;
    font-style: italic;
}

.doc-editor__editable hr {
    border: none; border-top: 2px solid #e4e6ef;
    margin: 20px 0;
}

.doc-editor__inline-blockquote {
    border-left: 3px solid #7b61d6; padding-left: 16px;
    margin: 12px 0; color: #5a647c;
    font-style: italic;
}

.doc-editor__page-break {
    border-top: 2px dashed #c9d2e3; margin: 18px 0;
    height: 0; page-break-after: always;
    break-after: page;
}

/* FOOTER */

.doc-editor__footer {
    display: flex; justify-content: flex-end;
    gap: 12px; padding-top: 2px;
}

/* MODAL */

.doc-editor__modal-overlay {
    position: fixed; top: 0;
    left: 0; right: 0;
    bottom: 0; background: rgba(27, 32, 45, 0.75);
    justify-content: center; z-index: 9999;
    backdrop-filter: blur(4px);}

.doc-editor__modal {
    background: #fff; border-radius: 16px;
    box-shadow: 0 20px 60px rgba(27, 32, 45, 0.25); width: min(480px, 94vw);
    max-height: 90vh; overflow: auto;
}

.doc-editor__modal-header {
    padding: 20px 24px; border-bottom: 1px solid #e4e6ef;
    justify-content: space-between;}

.doc-editor__page, .doc-editor__editable {
    cursor: text;
}

/* Файл full_document_editor_page.css */

.doc-editor__modal-header h3 {
    font-size: var(--font_size_1); font-weight: 700;
    color: #1f2b44; margin: 0;
}

.doc-editor__modal-close {
    width: 32px; height: 32px;
    border-radius: 8px; border: none;
    background: #f4f5f9; color: #5a647c;
    font-size: var(--font_size_3); line-height: 1;
    cursor: pointer; transition: all 140ms ease;
}

.doc-editor__modal-close:hover {
    background: #e9ebf2; color: #1f2b44;
}

.doc-editor__modal-body {
    padding: 24px;
}

.doc-editor__margin-grid {
    grid-template-columns: 1fr 1fr;
    gap: 16px;}

.doc-editor__margin-field {
    gap: 8px;}

.doc-editor__margin-field label {
    font-size: var(--font_size_caption); font-weight: 600;
    color: #5a647c;
}

.doc-editor__margin-field input {
    height: 42px; border: 1px solid #dce1ec;
    border-radius: 10px; padding: 0 14px;
    font-size: var(--font_size_button); color: #27324a;
    transition: all 140ms ease;
}

.doc-editor__margin-field input:focus {
    outline: none; border-color: #7b61d6;
    box-shadow: 0 0 0 3px rgba(123, 97, 214, 0.08);
}

.doc-editor__modal-footer {
    padding: 16px 24px; border-top: 1px solid #e4e6ef;
    display: flex; justify-content: flex-end;
    gap: 12px;
}

.doc-editor__modal-btn {
    height: 42px; padding: 0 20px;
    border-radius: 10px; font-size: var(--font_size_caption);
    font-weight: 700; cursor: pointer;
    transition: all 140ms ease; border: none;
}

.doc-editor__modal-btn--cancel {
    background: #f4f5f9; color: #5a647c;
}

.doc-editor__modal-btn--cancel:hover {
    background: #e9ebf2; color: #27324a;
}

.doc-editor__modal-btn--primary {
    background: #7b61d6; color: #fff;
}

.doc-editor__modal-btn--primary:hover {
    background: #6a4fc4;
}

@media (max-width: 760px) {
    .doc-editor__header, .doc-editor__footer-line {
        grid-template-columns: 1fr; gap: 6px;
    }
    .doc-editor__header > div, .doc-editor__footer-line > div {
        text-align: left !important;
    }
}

/* Режим повторного использования редактора и просмотр исходных файлов. */

.doc-editor__view-switch {
    display: flex; gap: 6px;
    padding: 8px; border-bottom: 1px solid var(--border);
    background: var(--bg-1);
}

.doc-editor__view-switch-btn {
    min-height: 36px; padding: 0 14px;
    border: 1px solid var(--border); border-radius: 10px;
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0); cursor: pointer;
}

.doc-editor__view-switch-btn--active {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.doc-editor--content-mode .doc-editor__page {
    width: min(100%, 980px); min-height: 420px;
}

.doc-editor--content-mode .doc-editor__page--content {
    padding-top: 42px !important; padding-bottom: 42px !important;
}

.doc-editor__editable:empty::before,
.doc-editor__editable:has(> p:only-child > br:only-child)::before {
    color: var(--text-2); content: attr(data-placeholder);
    pointer-events: none;
}

/* Масштабирование, прокрутка и рецензирование документа. */

.doc-editor__layout {
    min-height: 0; overflow: hidden;
}

.doc-editor__viewport {
    width: 100%; max-height: min(68vh, 850px);
    overflow: auto;
    border: 1px solid var(--border);
}

.doc-editor__zoom-stage {
    position: relative; margin: 0 auto;
}

.doc-editor__page { width: 794px;
    min-height: 1123px; border: 1px solid #dfe3ea;
    border-radius: 0; box-shadow: none;
}

.doc-editor__workspace {
    max-width: none; min-height: 0;
    padding: 0; border: 0;
    border-radius: 0; background: transparent;
}

.doc-editor--content-mode .doc-editor__page,
.doc-editor--content-mode .doc-editor__page--content {
    width: 794px;
}

.doc-editor__bottom-panel { display: flex;
    flex: 0 0 26px; align-items: center;
    border: 1px solid var(--border); border-top: 0;
}

.doc-editor__zoom-control {
    display: flex; align-items: center;
}

.doc-editor__zoom-control button {
    border: 1px solid var(--border);
    background: var(--bg-1); color: var(--text-1); line-height: 1;
    cursor: pointer;
}

.doc-editor__zoom-control span { text-align: center;
}

.doc-editor__review-insert {
    background: rgba(63, 160, 90, 0.16); color: inherit;
    text-decoration: underline; text-decoration-color: #2f9a54;
    text-underline-offset: 3px;
}

.doc-editor__review-delete {
    background: rgba(214, 72, 72, 0.13); color: #b53636;
    text-decoration: line-through;
}

.doc-editor__page--hide-review .doc-editor__review-insert {
    background: transparent; text-decoration: none;
}

/* Файл full_document_editor_review.css */

.doc-editor__page--hide-review .doc-editor__review-delete {
    display: none;
}

.doc-editor__editable td {
    min-width: 40px;
}

@media (max-width: 850px) {
    .doc-editor__viewport {
        max-height: 65vh;
    }
}

.doc-editor__layout, .doc-editor__zoom-stage {
    background: transparent;
}

/* Подпись автора исправления при наведении. */

.doc-editor__review-insert, .doc-editor__review-delete {
    position: relative;
}

.doc-editor__review-insert:hover::after,
.doc-editor__review-delete:hover::after {
    position: absolute; left: 0;
    bottom: calc(100% + 4px); z-index: 15;
    min-width: max-content; max-width: 260px;
    padding: 4px 7px; border: 1px solid var(--border);
    border-radius: 5px; background: var(--bg-1);
    box-shadow: 0 3px 10px rgba(31, 43, 68, 0.16); color: var(--text-1);
    content: attr(data-review-user); font-family: var(--font_family_interface);
    font-size: var(--font_size_caption); font-style: normal;
    font-weight: 400; line-height: 1.2;
    text-decoration: none; white-space: nowrap;
}

/* Разметка страниц и компактная панель масштаба. */

.doc-editor__viewport {
    background: var(--bg-2); padding: 12px;
    box-sizing: border-box;
}

.doc-editor__page-stack {
    gap: 18px;}

.doc-editor__page {
    display: flex; flex-direction: column;
    flex: 0 0 auto; overflow: hidden;
    box-sizing: border-box; background: var(--bg-1);
}

.doc-editor__editable {
    flex: 1 1 auto; min-height: 0;
    overflow: hidden; box-sizing: border-box;
}

.doc-editor__bottom-panel {
    width: 100%; height: 23px;
    min-height: 23px; max-height: 23px;
    flex-basis: 23px; box-sizing: border-box;
    justify-content: flex-end; padding: 0 5px;
    background: var(--bg-1);
}

.doc-editor__zoom-control {
    height: 21px; gap: 4px;
}

.doc-editor__zoom-control button {
    width: 19px; height: 19px;
    min-width: 19px; min-height: 19px;
    padding: 0; border-radius: 5px;
    font-size: var(--font_size_caption);
}

.doc-editor__zoom-control input {
    width: 92px; height: 12px;
    margin: 0;
}

.doc-editor__zoom-control span {
    min-width: 38px; font-size: var(--font_size_caption);
}

.doc-editor__layout-field {
    gap: 6px; color: #44506b;
    font-size: var(--doc-editor-control-font-size, var(--font_size_button));
    font-weight: 600;}

.doc-editor__layout-field > span {
    white-space: nowrap;
}

@media (max-width: 850px) {
    .doc-editor__viewport {
        padding: 8px;
    }
}

/* Ссылки, сноски и дополнительные инструменты Word. */

.doc-editor__editable a {
    color: var(--accent-blue); text-decoration: underline;
    cursor: pointer;
}

.doc-editor__note-ref {
    margin-left: 1px; font-size: var(--font_size_caption);
    line-height: 1; vertical-align: super;
}

.doc-editor__note-ref a, .doc-editor__note-backlink {
    text-decoration: none;
}

.doc-editor__notes {
    margin-top: 18px; padding-top: 4px;
    font-size: var(--font_size_caption); line-height: 1.35;
}

.doc-editor__notes hr {
    width: 34%; margin: 0 0 6px;
    border: 0; border-top: 1px solid var(--border);
}

.doc-editor__notes-title {
    margin-bottom: 4px; color: var(--text-2);
    font-weight: 600;
}

.doc-editor__notes ol {
    margin: 0; padding-left: 24px;
}

.doc-editor__notes li {
    margin-bottom: 3px;
}

.doc-editor__bookmark {
    border-bottom: 1px dotted var(--accent);
}

.doc-editor__bookmark--marker {
    display: inline-block; min-width: 16px;
    color: var(--accent); user-select: none;
}

.doc-editor__cross-reference {
    border-bottom: 1px dashed currentColor;
}

.doc-editor__comment {
    padding: 0 2px; border-bottom: 2px solid #f59e0b;
    background: rgba(245, 158, 11, 0.16); cursor: help;
}

.doc-editor__page--show-marks .doc-editor__editable p::after,
.doc-editor__page--show-marks .doc-editor__editable li::after,
.doc-editor__page--show-marks .doc-editor__editable h1::after,
.doc-editor__page--show-marks .doc-editor__editable h2::after,
.doc-editor__page--show-marks .doc-editor__editable h3::after,
.doc-editor__page--show-marks .doc-editor__editable h4::after,
.doc-editor__page--show-marks .doc-editor__editable h5::after,
.doc-editor__page--show-marks .doc-editor__editable h6::after {
    content: ' ¶'; color: var(--accent);
    font-weight: 400; opacity: 0.58;
}

.doc-editor__modal--wide {
    width: min(620px, calc(100vw - 32px));
}

.doc-editor__find-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 12px; margin-bottom: 12px;
}

.doc-editor__find-grid label {
    display: grid; gap: 5px;
    color: var(--text-2); font-size: var(--font_size_0);
}

.doc-editor__find-grid input {
    width: 100%; min-height: 34px;
    box-sizing: border-box; border: 1px solid var(--border);
    border-radius: 8px; padding: 0 10px;
    color: var(--blue-navy); font: inherit;
}

.doc-editor__find-grid input:focus {
    border-color: var(--accent); outline: none;
}

.doc-editor__statistics {
    grid-template-columns: minmax(180px, 1fr) auto; gap: 8px 16px;
    align-items: center;}

/* Файл full_document_editor_modals.css */

.doc-editor__statistics span {
    color: var(--text-2);
}

.doc-editor__statistics strong {
    color: var(--blue-navy); text-align: right;
}

@media (max-width: 620px) {
    .doc-editor__find-grid {
        grid-template-columns: 1fr;
    }
}

/* Компактное соединение панели инструментов, рабочей области и масштаба. */

.doc-editor {
    gap: 0; padding: 0;
}

.doc-editor__topbar {
    margin: 0; border-radius: 12px 12px 0 0;
}

.doc-editor__layout {
    gap: 0; align-items: stretch;
    margin: 0;
}

.doc-editor__viewport {
    flex: 1 1 auto; min-width: 0;
    margin: 0; border-top: 0;
}

.doc-editor__bottom-panel {
    margin: 0; border-radius: 0 0 8px 8px;
}

.doc-editor__footer {
    margin-top: 10px;
}

/* Текст кнопок редактора всегда виден, а не только при наведении. */

.doc-editor .doc-editor__tool-btn {
    color: #44506b !important; -webkit-text-fill-color: #44506b;
    opacity: 1;
}

.doc-editor .doc-editor__tool-btn--active {
    color: #ff7d12 !important; -webkit-text-fill-color: #ff7d12;
}

.doc-editor .doc-editor__tab {
    color: #5d6785 !important; -webkit-text-fill-color: #5d6785;
}

.doc-editor .doc-editor__tab--active {
    color: #1f2b44 !important; -webkit-text-fill-color: #1f2b44;
}

.doc-editor__footer .btn-secondary {
    color: var(--text-2) !important; -webkit-text-fill-color: var(--text-2);
}

.doc-editor__footer .btn-primary {
    color: var(--on-accent) !important;
    -webkit-text-fill-color: var(--on-accent);
}

.doc-editor__reviewer-chip {
    width: 100%; flex: 1 0 100%;
    justify-content: flex-start; box-sizing: border-box;
    margin-top: 4px;
}

/* Боковая панель рецензирования. */

.doc-editor__layout--with-review {
    justify-content: stretch;
}

.doc-editor__review-panel {
    width: 238px; min-width: 238px;
    max-height: min(68vh, 850px); flex: 0 0 238px;
    gap: 8px; overflow: auto;
    padding: 10px; border: 1px solid var(--border);
    border-top: 0; border-left: 0;
    background: var(--bg-1);}

.doc-editor__review-panel-title {
    color: var(--blue-navy); font-size: var(--font_size_1);
    font-weight: 700;
}

.doc-editor__review-panel-current {
    gap: 3px; padding: 8px;
    border: 1px solid var(--border); border-radius: 7px;
    background: var(--bg-2);}

.doc-editor__review-panel-current span, .doc-editor__reviewer-item span {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.doc-editor__review-panel-current strong,
.doc-editor__reviewer-item strong {
    overflow-wrap: anywhere; color: var(--blue-navy);
    font-size: var(--font_size_0);
}

.doc-editor__reviewer-item {
    gap: 4px; width: 100%;
    min-height: 48px; box-sizing: border-box;
    padding: 7px 8px; border: 1px solid var(--border);
    border-radius: 7px; background: var(--bg-1);
    color: var(--blue-navy) !important;
    -webkit-text-fill-color: var(--blue-navy); text-align: left;
    cursor: pointer;}

.doc-editor__reviewer-item:hover, .doc-editor__reviewer-item--active {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, var(--bg-1));
}

.doc-editor__review-panel-empty {
    padding: 10px 4px; color: var(--text-3);
    font-size: var(--font_size_0);
}

.doc-editor__review-change--selected {
    outline: 2px solid var(--accent); outline-offset: 2px;
    background: color-mix(in srgb, var(--accent) 20%, transparent) !important;
}

@media (max-width: 980px) {
    .doc-editor__review-panel {
        width: 210px; min-width: 210px;
        flex-basis: 210px;
    }
}

/* Файл full_document_editor_formulas.css */

.doc-editor__formula-group {
    display: grid; min-width: 0;
    flex: 1 1 auto;
    grid-template-columns: minmax(180px, 0.8fr) minmax(300px, 1.5fr)
        max-content;
    grid-row: auto; align-self: stretch;
    align-items: end; gap: 8px;
    padding: 4px 8px 5px 0;
}

.doc-editor__formula-group label {
    display: grid; min-width: 0;
    align-content: end; gap: 4px;
    color: var(--text-1); font-size: var(--doc-editor-control-font-size);
    font-weight: 600; line-height: 1.15;
}

.doc-editor__formula-group select, .doc-editor__formula-group input {
    width: 100%; min-width: 0;
    min-height: 36px; box-sizing: border-box;
    padding: 5px 10px; border: 1px solid var(--border);
    border-radius: 10px; background: var(--bg-1);
    color: var(--text-1); font: inherit;
}

.doc-editor__formula-group select:focus,
.doc-editor__formula-group input:focus {
    border-color: var(--accent); outline: none;
}

.doc-editor__formula-actions {
    display: flex; align-items: flex-end;
    gap: 5px;
}

.doc-editor__formula-actions .doc-editor__tool-btn {
    min-height: 36px; padding-inline: 10px;
    white-space: nowrap;
}

.doc-editor__formula-help {
    min-width: 180px; max-width: 230px;
    flex: 0 1 230px; grid-row: auto;
    align-self: stretch; align-content: center;
    gap: 4px; padding-left: 10px;
    overflow: hidden;}

.doc-editor__formula-help strong, .doc-editor__formula-help span {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.doc-editor__formula-help span {
    color: var(--text-3);
}

.doc-editor__formula-error {
    color: var(--accent-red) !important;
}

.doc-editor__formula-field {
    display: inline-block; padding: 0 4px;
    border-bottom: 1px dotted currentColor;
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    cursor: help;
}

.doc-editor__formula-field--error {
    color: var(--accent-red);
    background: color-mix(in srgb, var(--accent-red) 8%, transparent);
}

/* Файл full_document_editor_find_replace.css */

.doc-editor-find-replace-panel__fields {
    display: grid; gap: var(--font_size_0);
}

.doc-editor-find-replace-panel__fields label {
    display: grid; gap: var(--spacing_small);
    color: var(--text-2); font-weight: 600;
}

.doc-editor-find-replace-panel__fields input {
    width: 100%; min-height: 38px;
    padding: 0 var(--font_size_0);
}

.doc-editor-find-replace-panel__actions {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_small); padding-top: var(--spacing_small);
    border-top: 1px solid var(--border);
}

/* Файл full_document_editor_mobile.css */

.doc-editor--mobile-layout .doc-editor__tabs {
    padding-right: 2px;
}

.doc-editor--mobile-layout .doc-editor__topbar-actions {
    gap: 4px; padding-right: 5px;
}

.doc-editor--mobile-layout .doc-editor__save-text-btn {
    min-width: auto; max-width: 138px;
    overflow: hidden; text-overflow: ellipsis;
}

.doc-editor--mobile-layout .doc-editor__tab-panel,
.doc-editor--mobile-layout .doc-editor__tab-panel--formulas {
    overflow-x: auto;
}

.doc-editor--mobile-layout .doc-editor__formula-group {
    min-width: 760px;
}

.doc-editor--mobile-layout .doc-editor__formula-help {
    min-width: 190px;
}

.doc-editor--mobile-layout .doc-editor__layout--with-review {
    flex-direction: column;
}

.doc-editor--mobile-layout .doc-editor__review-panel {
    width: 100%; min-width: 0;
    max-height: 220px; flex: 0 0 auto;
    box-sizing: border-box; border-top: 0;
    border-left: 1px solid var(--border);
}

.doc-editor--mobile-layout .doc-editor__viewport {
    width: 100%; min-width: 0;
    padding: 0; border-right: 0;
    border-left: 0; background: var(--bg-1);
}

.doc-editor--mobile-layout .doc-editor__zoom-stage,
.doc-editor--mobile-layout .doc-editor__page-stack {
    width: 100% !important; min-height: 100%;
}

.doc-editor--mobile-layout .doc-editor__page-stack {
    gap: 0; transform: none !important;
}

.doc-editor--mobile-layout .doc-editor__page {
    width: 100% !important; height: auto !important;
    min-height: 0 !important; overflow: visible;
    border: 0; background: var(--bg-1);
}

.doc-editor--mobile-layout .doc-editor__page + .doc-editor__page {
    border-top: 1px solid var(--border);
}

.doc-editor--mobile-layout .doc-editor__editable {
    min-height: 260px; overflow: visible;
    overflow-wrap: anywhere;
}

.doc-editor--mobile-layout .doc-editor__bottom-panel {
    justify-content: center;
}

.doc-editor__zoom-fit-label {
    color: var(--text-3); font-size: var(--doc-editor-control-font-size);
    font-weight: 600;
}

/* Файл full_document_editor_proofreader.css */

.doc-editor__selection-toolbar {
    position: fixed; z-index: 1200;
    display: none; transform: translateX(-50%);
    gap: 4px; padding: 4px;
    border: 1px solid var(--border); border-radius: 7px;
    background: var(--bg-1); box-shadow: var(--shadow);
}

.doc-editor__selection-toolbar--visible {
    display: flex;
}

.doc-editor__selection-toolbar button {
    min-height: 28px; padding: 3px 8px;
    border: 0; border-radius: 5px;
    background: transparent; color: var(--text-1);
    font: inherit; font-size: var(--font_size_caption);
    cursor: pointer;
}

.doc-editor__selection-toolbar button:hover {
    background: var(--bg-2);
}

.doc-editor__proofread-mark {
    text-decoration-line: underline; text-decoration-style: wavy;
    text-decoration-thickness: 1.5px; text-underline-offset: 3px;
}

.doc-editor__proofread-mark--spelling {
    text-decoration-color: var(--error-color, #d32f2f);
}

.doc-editor__proofread-mark--punctuation {
    text-decoration-color: var(--warning-color, #d97706);
}

.doc-editor__proofread-mark--grammar {
    text-decoration-color: var(--accent-blue, #2563eb);
}

.doc-editor__proofread-summary {
    gap: 2px; min-width: 220px;
    color: var(--text-2);
    font-size: var(--font_size_caption);}

.doc-editor__proofread-summary strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.doc-editor__layout--with-proofreader {
    justify-content: stretch;
}

.doc-editor__proofread-panel {
    width: 300px; min-width: 300px;
    max-height: min(68vh, 850px); flex: 0 0 300px;
    gap: 8px; overflow: auto;
    box-sizing: border-box; padding: 10px;
    border: 1px solid var(--border); border-top: 0;
    border-left: 0;
    background: var(--bg-1);}

.doc-editor__proofread-panel-title {
    color: var(--text-1); font-size: var(--font_size_1);
    font-weight: 700;
}

.doc-editor__proofread-empty {
    padding: 8px 2px; color: var(--text-3);
    font-size: var(--font_size_0);
}

.doc-editor__proofread-card {
    gap: 6px; padding: 8px;
    border: 1px solid var(--border); border-left-width: 3px;
    border-radius: 7px;
    background: var(--bg-1);}

.doc-editor__proofread-card--spelling {
    border-left-color: var(--error-color, #d32f2f);
}

.doc-editor__proofread-card--punctuation {
    border-left-color: var(--warning-color, #d97706);
}

.doc-editor__proofread-card--grammar {
    border-left-color: var(--accent-blue, #2563eb);
}

.doc-editor__proofread-card-head {
    display: flex; align-items: baseline;
    justify-content: space-between; gap: 8px;
    font-size: var(--font_size_caption);
}

.doc-editor__proofread-card-head strong {
    overflow-wrap: anywhere; color: var(--text-1);
    font-size: var(--font_size_0);
}

.doc-editor__proofread-replacements {
    display: flex; flex-wrap: wrap;
    gap: 5px;
}

.doc-editor__proofread-replacements button,
.doc-editor__proofread-dictionary {
    min-height: 28px; padding: 3px 7px;
    border: 1px solid var(--border); border-radius: 6px;
    background: var(--bg-2); color: var(--text-1);
    font: inherit; font-size: var(--font_size_caption);
    cursor: pointer;
}

.doc-editor__proofread-dictionary {
    justify-self: start; background: transparent;
}

@media (max-width: 980px) {
    .doc-editor__proofread-panel {
        width: 240px; min-width: 240px;
        flex-basis: 240px;
    }
}

@media (orientation: portrait) {
    .doc-editor__layout--with-proofreader {
        display: block;
    }
    .doc-editor__proofread-panel {
        width: 100%; min-width: 0;
        max-height: 40vh; border-left: 1px solid var(--border);
    }
}

/* Файл FullDocumentEditor.css */

/* Файл tab_news.css */

.news-layout {
    width: 100%; height: 100%;
    min-height: 0; box-sizing: border-box;
    overflow: hidden;}

.news-type-filter {
    width: auto; min-height: 0;
    align-self: stretch;
    gap: var(--spacing_small);}

.news-type-filter__header {
    justify-content: space-between;
    gap: var(--spacing_small);}

.news-type-filter__header button {
    margin: 0; padding: var(--spacing_xs) var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--radius_relaxed);
    background: var(--bg-1); color: var(--accent-dark);
    font-size: var(--font_size_0); cursor: pointer;
}

.news-type-filter__list {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(180px, 1fr)
    ); gap: var(--spacing_dense) var(--spacing_medium);
}

.news-type-filter__list label {
    display: flex; align-items: flex-start;
    gap: var(--spacing_small); cursor: pointer;
}

.news-type-filter__list input {
    flex: 0 0 auto; margin-top: var(--spacing_micro);
}

.news-type-filter__empty {
    color: var(--text-2);
}

.news-list-area {
    min-width: 0; min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;}

.news-list-area > .lk-content-search {
    flex: 0 0 auto;
}

.news-list-area__scroll {
    display: block; overflow-y: auto;
}

@media (max-width: 820px) {
    .news-layout {
        overflow: auto;
    }
    .news-list-area {
        overflow: visible;
    }
    .news-list-area__scroll {
        overflow: visible;
    }
    .news-type-filter__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Файл app_styling.css */

/* app_styling.css */

/* Стиль: Modern Minimal (мягкая версия) — синий */

.container {
    background: var(--app-background);
    font-family: var(--font_family_interface);
}

.lk-content-page {
    width: 100%; min-width: 0;
    box-sizing: border-box;
    padding: var(--spacing_section) var(--spacing_small)
        var(--spacing_small);
}

/* Блок контента оформляется единым классом block_1 в common_layout.css. */

/* Блок информации */

.block_2 {
    border-radius: 8px; padding: 10px;
    background: var(--info-background); border: 2px solid var(--info-border);
    margin-top: 22px; margin-bottom: 22px;
    box-sizing: border-box;}

.block_2 img {
    height: 28px; width: 28px;
}

.block_2__info-icon {
    display: block; flex: 0 0 30px;
    width: 30px; height: 30px;
    margin-right: 8px; object-fit: contain;
}

/* Блок предупреждения */

.block_3 {
    display: flex; align-items: flex-start;
    gap: var(--spacing_small); background: var(--accent-orange-bg);
    border: solid var(--accent-yellow-border); border-radius: 12px;
    margin: 0 0 var(--spacing_small);
    padding: var(--font_size_0) var(--font_size_0)
        calc(var(--font_size_0) + var(--spacing_micro));
    box-shadow: var(--shadow);
}

.block_3__icon {
    flex-shrink: 0; width: 45px;
    height: 45px;
}

.block_3__title {
    font-size: var(--font_size_2); font-weight: 700;
    color: var(--status-warning-title); margin-bottom: 6px;
    line-height: 1.3;
}

.block_3__description {
    font-size: var(--font_size_1); color: var(--status-warning-text);
    line-height: 1.45;
}

.block_3--success {
    background: var(--status-success-background);
    border-color: var(--status-success-border);
}

.block_3--success .block_3__title {
    color: var(--status-success-title);
}

.block_3--success .block_3__description {
    color: var(--status-success-text);
}

/* === Кнопка === */

button {
    font-family: var(--font_family_interface);
    font-size: var(--font_size_button) !important; font-weight: 400 !important;
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    background-color: var(--accent); color: var(--active-tab-text);
    border: none; cursor: pointer;
    transition: background-color 0.2s, transform 0.2s, box-shadow 0.2s;
    border-radius: 10px;
}

button:hover {
    background-color: var(--accent-blue); transform: translateY(-2px);
    box-shadow: var(--shadow);
}

/* Inputs */

input {
    padding: 8px; margin-top: 5px;
    margin-bottom: 15px; font-size: var(--font_size_1);
    border: 1px solid var(--border); border-radius: 8px;
}

input:focus {
    border-color: var(--blue-navy); box-shadow: 0 0 0 3px var(--focus-ring);
    outline: none;
}

.input_text {
    font-size: var(--font_size_0); background: transparent;
    border: none
}

.input-error {
    border: 2px solid var(--accent-red);
}

/* Labels */

.label_info {
    font-size: var(--font_size_0)
}

.label_info_1 {
    color: var(--text-3);
    font-size: var(--font_size_1)
}

label {
    color: var(--text-2); font-size: var(--font_size_2);
}

.label_info_3 {
    font-size: var(--font_size_0)
}

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

/* Профиль сотрудника в ЛК для общедомовых показаний. */

.lk-employee-profile {
    gap: 2px; margin: 8px 0;
    padding: 8px; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1);}

.lk-employee-profile span {
    color: var(--text-2); font-size: var(--font_size_0);
}

/* Пользовательский размер шрифта применяется ко всей типографике ЛК. */

.config_LK {
    --lk-effective-font-size: var(--lk-user-font-size, 17px);
    --font_size_caption: max(
        11px,
        calc(var(--lk-effective-font-size) - 3px)
    );
    --font_size_button: max(
        12px,
        calc(var(--lk-effective-font-size) - 2px)
    ); --font_size_0: var(--lk-effective-font-size);
    --font_size_1: calc(var(--lk-effective-font-size) * 1.1);
    --font_size_2: calc(var(--lk-effective-font-size) * 1.2);
    --font_size_3: calc(var(--lk-effective-font-size) * 1.3);
    --tab-sidebar-font-size: var(--font_size_0);
    --button-min-height: calc(
        var(--font_size_button) + var(--spacing_small)
    ); font-size: var(--font_size_0);
}

@media (orientation: portrait) {
    .config_LK {
        --lk-effective-font-size: max(
            11px,
            calc(var(--lk-user-font-size, 17px) - 3px)
        );
    }
}

/* Файл app_loading.css */

.lk-app-loading {
    width: 100%; min-height: 180px;
    box-sizing: border-box; justify-content: flex-start;
    gap: var(--spacing_medium); padding-top: var(--spacing_xl);
    background: var(--app-background); color: var(--text-2);
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
    text-align: center;}

/* Файл tab_app_settings.css */

legend {
    margin-top: 10px; margin-bottom: 15px;
    color: var(--blue-navy); font-size: var(--font_size_2);
    font-weight: 600;
}

input[type="text_tab_app_settings"] {
    width: 100%;
}

input[type="checkbox"] {
    margin-right: 10px;
}

.lk-profile-contact-grid {
    grid-template-columns: 92px minmax(0, 1fr); gap: var(--font_size_0);
    align-items: start;
    margin-bottom: var(--font_size_0);}

.lk-profile-contact-grid__identity {
    grid-template-columns: minmax(130px, 0.34fr) minmax(180px, 1fr);
    gap: var(--spacing_small) var(--font_size_0); align-items: center;
    min-width: 0;}

.lk-profile-contact-grid__identity input {
    width: 100%; box-sizing: border-box;
}

.lk-profile-photo-field {
    width: 92px; min-width: 92px;
    gap: 4px;}

.lk-profile-photo-field__preview {
    width: 92px; height: 112px;
    min-height: 112px; max-height: 112px;
    justify-content: center; overflow: hidden;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    padding: 0; background: var(--bg-2);
    cursor: pointer;
    box-shadow: none;}

.lk-profile-photo-field__preview:hover {
    border-color: var(--accent); background: var(--bg-2);
    transform: none; box-shadow: none;
}

.lk-profile-photo-field__image {
    display: block; width: 100%;
    height: 100%; object-fit: cover;
    object-position: center;
}

.lk-profile-photo-field__placeholder {
    justify-content: center; gap: 5px;
    padding: 6px; color: var(--text-3);
    font-size: var(--font_size_caption);
    text-align: center;}

.lk-profile-photo-field__placeholder-icon {
    font-size: var(--font_size_3);
}

.lk-profile-photo-field__hint {
    color: var(--text-3); font-size: var(--font_size_caption);
    line-height: 1.2; text-align: center;
}

.egrn_attachments_wrap {
    margin-top: var(--font_size_1); margin-bottom: var(--font_size_1);
}

.egrn_attachments_title {
    margin-bottom: var(--spacing_small); color: var(--text-2);
    font-size: var(--font_size_1); font-weight: 600;
}

.doc-card__file-delete {
    display: flex; flex-shrink: 0;
    align-items: center; border: 0;
    padding: 8px; background: transparent;
    color: var(--text-3); cursor: pointer;
}

.doc-card__file-delete:hover {
    color: var(--color_3);
}

@media (max-width: 700px) {
    .lk-profile-contact-grid {
        grid-template-columns: 82px minmax(0, 1fr);
    }
    .lk-profile-contact-grid__identity {
        grid-template-columns: 1fr; gap: 4px;
    }
    .lk-profile-photo-field, .lk-profile-photo-field__preview {
        width: 82px; min-width: 82px;
    }
    .lk-profile-photo-field__preview {
        height: 104px; min-height: 104px;
        max-height: 104px;
    }
}

.lk-settings-file-input {
    border: 0;
}

/* Файл top_panel.css */

/* ===== Верхняя панель ===== */

.top-panel {
    position: relative; gap: 1px;
    margin: 0 -20px 0 -18px; padding-top: var(--spacing_medium);
    padding-right: var(--font_size_3); padding-bottom: var(--spacing_small);
    padding-left: var(--font_size_3);
    background: var(--table-header-background);
    color: var(--table-header-text);}

.top-panel__title {
    max-width: calc(100% - 230px); padding-right: var(--spacing_small);
    color: var(--table-header-text); font-size: var(--font_size_1);
    font-weight: 700;
}

.top-panel__subtitle {
    flex: 0 0 auto; color: var(--table-header-text);
    font-size: var(--font_size_0); font-weight: 400;
    white-space: nowrap;
}

/* ===== Переключатель периодов ===== */

.top-panel__row {
    display: flex; flex-wrap: nowrap;
    align-items: center; gap: var(--spacing_xs);
    padding-top: var(--spacing_xs); padding-right: var(--spacing_section);
}

.top-panel__period-controls {
    display: inline-flex; flex: 0 0 auto;
    align-items: center; gap: var(--spacing_xs);
    min-width: 0;
}

.top-panel__row .prev, .top-panel__row .next {
    flex: 0 0 auto; padding-left: var(--spacing_tight);
    padding-right: var(--spacing_tight);
    border: 1px solid var(--control-border-on-accent);
    border-radius: var(--radius_compact); background: transparent;
    color: var(--table-header-text); font-size: var(--font_size_0);
    cursor: pointer; transition: background 0.2s;
}

.top-panel__row .prev:hover, .top-panel__row .next:hover {
    background: var(--control-hover-on-accent);
}

.top-panel__row .input_text {
    display: inline-block; flex: 0 0 auto;
    width: auto; min-width: 0;
    max-width: none; margin: 0;
    padding: 0; border: none;
    background: transparent; color: var(--table-header-text);
    font-size: var(--font_size_0); line-height: 1.15;
    text-align: center; white-space: nowrap;
}

/* ===== Скачать мобильную версию ===== */

.btn-download-mobile {
    position: absolute; z-index: 2;
    top: var(--spacing_medium); right: var(--font_size_3);
    margin: 0; padding: var(--spacing_xs) var(--spacing_regular);
    border: 1px solid var(--control-border-on-accent);
    border-radius: var(--font_size_2); background: none;
    color: var(--table-header-text); font-size: var(--font_size_caption);
    line-height: 1.15; white-space: nowrap;
}

@media (max-width: 539px) {
    .top-panel__title {
        max-width: calc(100% - 180px);
    }
    .btn-download-mobile {
        top: var(--spacing_regular); right: var(--font_size_3);
        max-width: 168px; padding: var(--spacing_micro) var(--spacing_dense);
        font-size: var(--font_size_caption);
    }
}

@media (max-width: 360px) {
    .top-panel__title {
        max-width: calc(100% - 154px);
    }
    .btn-download-mobile {
        max-width: 145px; font-size: var(--font_size_caption);
    }
}

@media (orientation: portrait) {
    .config_LK .tab-widget-container > .menu-button +
.tab-container-left.theme-lk:has( > .tab-content-wrapper >
.tab-content-item.active .top-panel ) {
        padding-top: 0;
    }
    .top-panel {
        display: grid; min-height: 50px;
        grid-template-columns: minmax(85px, 1fr) auto;
        column-gap: var(--spacing_small); row-gap: 0;
        margin-top: 0; margin-left: -18px;
        margin-right: -20px; padding-top: var(--spacing_compact);
        padding-right: var(--font_size_3);
        padding-bottom: var(--spacing_dense);
        padding-left: calc(36px + var(--spacing_xl));
    }
    .top-panel__title {
        display: inline-flex; grid-column: 1;
        align-items: center; min-width: 0;
        min-height: 36px; max-width: none;
        padding-right: 0; overflow: hidden;
        color: var(--table-header-text); font-size: var(--font_size_1);
        line-height: 1.15; text-overflow: ellipsis;
        white-space: nowrap;
    }
    .btn-download-mobile {
        position: static; grid-column: 2;
        align-self: center; justify-self: end;
        width: auto; max-width: 46vw;
        min-height: 34px; box-sizing: border-box;
        margin: 0; padding: var(--spacing_micro) var(--spacing_small);
        line-height: 1.15; text-align: center;
        white-space: normal;
    }
    .top-panel__row {
        grid-column: 1 / -1; width: calc(100% + 36px + var(--spacing_large));
        margin-left: calc(-36px - var(--spacing_large));
        padding-top: var(--spacing_xs); padding-right: 0;
    }
}

@media (orientation: portrait) and (max-width: 380px) {
    .top-panel {
        grid-template-columns: minmax(78px, 1fr) auto;
        column-gap: var(--spacing_compact);
        padding-left: calc(36px + var(--spacing_section));
    }
    .btn-download-mobile {
        max-width: 45vw; padding-left: var(--spacing_xs);
        padding-right: var(--spacing_xs);
    }
    .top-panel__row {
        width: calc(100% + 36px + var(--spacing_regular));
        margin-left: calc(-36px - var(--spacing_regular));
    }
}

/* Файл service_fields.css */

.service-card__header {
    margin: 0; padding: 12px;
    border-bottom: 1px solid var(--service-header-border);
    background: var(--service-header-background); color: var(--heading-color);
    font-size: var(--font_size_2); font-weight: 700;
}

.service-card__header label {
    color: var(--heading-color); font-family: var(--font_family_interface);
    font-size: var(--font_size_2); font-weight: 700;
}

.service-card__body {
    padding-top: 10px;
}

.service-card__body .label_info_1, .input-with-icon .meter-input {
    font-family: var(--font_family_interface);
    font-size: var(--font_size_1) !important; line-height: 1.25;
}

.input-with-icon .meter-input::placeholder {
    font: inherit;
}

.service-card__detail {
    margin-top: 4px;
}

.input-with-icon {
    position: relative; display: inline-block;
}

.input-with-icon input.blocked-input[name="var_14"] {
    max-width: 330px;
    background: linear-gradient(
        to right,
        transparent calc(100% - 40px),
        var(--surface-secondary) calc(100% - 40px),
        var(--surface-secondary) 100%
    );
}

.input-icon {
    position: absolute; top: 55%;
    right: 12px; transform: translateY(-75%);
}


#label_only_viewing {
    font-style: italic;
}

#var_15 {
    width: 98%; height: 120px;
    padding: 12px; box-sizing: border-box;
    border: 1px solid var(--divider-color); border-radius: 12px;
    resize: vertical;
}

/* Файл table_history.css */

/* ===== Таблица ===== */

#Таблица_показания_счётчиков table {
    width: 100%; border-collapse: collapse;
    border-radius: var(--font_size_3); overflow: hidden;
}

#Таблица_показания_счётчиков table th,
#Таблица_показания_счётчиков table td {
    border: 1px solid var(--text-1); text-align: center;
    white-space: pre-wrap;
}

#Таблица_показания_счётчиков table td:nth-child(1) {
    background-color: #9BC2E6; color: var(--text-1);
}

#Таблица_показания_счётчиков table td:nth-child(2) {
    background-color: #d4e6f1; color: var(--text-1);
}

#Таблица_показания_счётчиков table thead {
    background: linear-gradient(
        135deg, #3681c7, #a7c7e7);
    color: var(--on-accent);
}

#Таблица_показания_счётчиков table thead th {
    padding: 12px; font-family: var(--font_family_interface);
    font-size: var(--font_size_0); border-bottom: 1px solid #f1f7fa;
}

#Таблица_показания_счётчиков table tbody td {
    padding: 12px; font-family: var(--font_family_interface);
    font-size: var(--font_size_0); color: var(--text-1);
    border-bottom: 1px solid #f1f7fa; transition: background-color 0.2s;
}

/* Таблица истории на основной вкладке растёт по содержимому и не
   создаёт собственную область прокрутки. */

#Таблица_показания_счётчиков .table-widget,
#Таблица_показания_счётчиков .table-container,
#Таблица_показания_счётчиков .table-wrapper {
    height: auto; max-height: none;
    overflow: visible;
}

.meter-readings-drawer-loading {
    min-height: 180px; justify-content: center;
    gap: 12px; color: var(--text-2);
    text-align: center;}


.meter-readings-history-table-wrap {
    width: 100%; margin-top: var(--spacing_small);
    overflow-x: auto;
}

.meter-readings-history-table {
    width: 100%; border-collapse: collapse;
    font-size: var(--font_size_0);
}

.meter-readings-history-table th, .meter-readings-history-table td {
    padding: var(--spacing_small); border: 1px solid var(--border);
    text-align: left; white-space: nowrap;
}

.meter-readings-history-table th {
    background: var(--bg-2); color: var(--blue-navy);
    font-weight: 600;
}

.meter-readings-history-empty {
    margin-top: var(--spacing_small); color: var(--text-2);
    font-size: var(--font_size_0);
}

/* Файл drawer_header.css */

.meter-readings-drawer-header-actions {
    min-width: 0; gap: var(--spacing_small);
    color: var(--on-accent);}

.meter-readings-drawer-header-actions > span {
    white-space: nowrap; font-size: var(--font_size_0);
    font-weight: 600;
}

.meter-readings-drawer-header-actions .prev,
.meter-readings-drawer-header-actions .next {
    min-width: 48px; margin: 0;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: var(--spacing_small); background: rgba(255, 255, 255, 0.1);
    color: var(--on-accent);
}

.meter-readings-drawer-header-actions .prev:disabled,
.meter-readings-drawer-header-actions .next:disabled {
    cursor: default; opacity: 0.45;
}

.meter-readings-drawer-header-actions .input_text {
    width: 150px; min-width: 120px;
    margin: 0; border: 0;
    background: var(--bg-1); color: var(--blue-navy);
    text-align: center;
}

@media (max-width: 762px) {
    .meter-readings-drawer-header-actions {
        width: 100%; flex-wrap: wrap;
    }
    .meter-readings-drawer-header-actions > span {
        width: 100%;
    }
}

/* Файл tab_meter_readings.css */

/* Файл page_receipts.css */

.block_2--paid {
    background: #dcfce7; border: 1px solid #86efac;
    color: #166534;
}

.block_2--unpaid {
    gap: 12px; background: #fef2f2;
    border: 1px solid #fca5a5; color: #991b1b;
}

.block_2__icon {
    justify-content: center; width: 40px;
    height: 40px;
    border-radius: 50%;}

.block_2--paid .block_2__icon {
    background: #166534; color: var(--on-accent);}

.block_2--unpaid .block_2__icon {
    background: #991b1b; color: var(--on-accent);}

/* Ландшафт: ширина > высоты */

@media (orientation: landscape) {
    .qr-code-img {
        width: 20%;
    }
}

/* Портрет: высота > ширины */

@media (orientation: portrait) {
    .qr-code-img {
        width: 80%;
    }
}

/* Файл tab_news.css */

/* Тулбар поиска/фильтров */

.content-toolbar {
    grid-template-columns: 1fr auto auto; gap: 10px;
    padding-right: 14px;}

.search {
    gap: 10px; border-radius: 18px;
    background: var(--card); border: 1px solid var(--border);
    box-shadow: var(--shadow);
    height: 38px;}

.search__icon {
    color: var(--text-3);
}

.search input {
    width: 100%; border: 0;
    outline: 0; background: transparent;
    font-size: var(--font_size_1); color: var(--text-2);
    height: 35px; margin-top: var(--font_size_3);
}

.btn {
    border: 1px solid var(--border); border-radius: 16px;
    cursor: pointer; font-weight: 700;
    background: var(--card); color: var(--text-2);
    box-shadow: var(--shadow);
}

.btn:hover { transform: translateY(-1px); }

.btn:active { transform: translateY(0); }

.btn-ghost {
    background: rgba(255,255,255,.75);
}

.btn-primary {
    background: linear-gradient(
        180deg, #4aa2de, var(--accent));
    border-color: rgba(255,255,255,.25); color: rgba(255,255,255,.96);
}

/* Карточка контента */

.content-card__title {
    gap: 10px; justify-content: space-between;
    margin-top: 0px; margin-bottom: 10px;
    font-size: var(--font_size_1); line-height: 1.2;
    font-weight: 800;
    color: var(--text-1);}

.content-card__actions {
    display: flex; gap: 8px;
}

/* Икон-кнопки */

.icon-btn {
    width: 36px; height: 36px;
    border-radius: 14px; border: 1px solid var(--border);
    background: rgba(255,255,255,.96); color: var(--accent);
    cursor: pointer;
    place-items: center;}

.icon-btn--danger {
    color: var(--accent-2); background: rgba(255,247,240,.9);
}

.icon-btn:hover {
    transform: scale(1.03);
}

/* Мета информация */

.content-card__meta {
    justify-content: space-between; color: var(--text-3);
    font-size: var(--font_size_0);}

.badge {
    display: inline-flex; align-items: center;
    padding: 6px 10px; border-radius: 999px;
    color: var(--accent); background: rgba(61,132,196,.12);
    font-weight: 800;
}

.badge-important {
    color: var(--accent-2); background: rgba(212,112,43,.12);
}

.badge-type {
    color: #1f5fb9; background: rgba(100,116,139,.12);
}

.content-card__text {
    margin: 12px 0 10px; color: var(--text-2);
    line-height: 1.5; font-size: var(--font_size_0);
    display: -webkit-box; -webkit-box-orient: vertical;
    overflow: hidden;
}

.content-card__more {
    border: 0; background: transparent;
    color: var(--accent); font-weight: 800;
    cursor: pointer; padding: 0;
}

/* Сообщение об отсутствии контента */

.no-content {
    text-align: center; padding: 40px;
    color: var(--text-3); font-size: var(--font_size_1);
}

/* Синяя иконка редактирования */

.edit-item img {
    filter:
        invert(39%)
        sepia(57%)
        saturate(748%)
        hue-rotate(183deg)
        brightness(91%)
        contrast(89%);
}

/* Красная иконка удаления */

/* Респект к снижению анимации */

@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; }
}

/* Оплаченная карточка — зелёная полоска слева */

.block_1--paid {
    border-left: 5px solid #22c55e;
}

/* Бейдж "Оплачено" */

.badge-paid {
    color: #166534; background: #dcfce7;
    border: 1px solid #86efac; font-weight: 800;
}

/* Сумма оплаты рядом с начислением */

.receipt__paid-amount {
    color: #16a34a;
}

.receipt__not-paid {
    color: #dc2626;
}

/* Частично оплаченная карточка — жёлтая полоска слева */

.block_1--partial {
    border-left: 5px solid var(--accent-yellow-border);
}

/* Бейдж "Частично оплачено" */

.badge-partial {
    color: #8a5600; background: rgba(240, 165, 0, 0.12);
    border: 1px solid var(--accent-yellow-border); font-weight: 800;
}

/* Сумма частичной оплаты рядом с начислением */

.receipt__partial-amount {
    color: var(--accent-yellow-border);
}

/* Файл page_news.css */

#var_121  /* Поле "Заголовок новости */
{
    width: 98%;
}

#var_122  /*  */
{
    font-size: var(--font_size_1); width: 98%;
    height: 380px;
}

/* Файл DropdownButton.css */

.dropdown-container {
    position: relative; display: inline-block;
    width: 100%;
}

.dropdown-button {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    overflow: hidden; border: 1px solid var(--dropdown-border);
    border-radius: 4px;
    background: linear-gradient(
        135deg,
        var(--primary-color) 0%,
        var(--dropdown-button-secondary) 100%
    ); color: var(--on-accent);
    text-align: left;
    text-overflow: ellipsis; white-space: nowrap;
    cursor: pointer;
}

.dropdown-menu {
    position: absolute; z-index: 1000;
    top: 100%; left: 0;
    min-width: 100%; overflow: visible;
    border: 1px solid var(--dropdown-border); border-radius: 4px;
    background: var(--dropdown-background); color: var(--dropdown-text);
    box-shadow: var(--app-shadow);
}

.dropdown-widget-content {
    background: var(--dropdown-background); color: var(--dropdown-text);
}

.dropdown-item {
    padding: 8px; overflow: visible;
    color: var(--dropdown-text); text-overflow: clip;
    overflow-wrap: break-word; word-wrap: break-word;
    white-space: normal; cursor: pointer;
}

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

.dropdown-item:not(:last-child) {
    border-bottom: 1px solid var(--divider-soft);
}

.measurement-element {
    position: absolute !important; visibility: hidden !important;
    padding: 8px !important;
    font-family: var(--font_family_interface) !important;
    font-size: var(--font_size_caption) !important;
    line-height: normal !important; white-space: nowrap !important;
}

.dropdown-item-image {
    width: 20px; height: 20px;
    margin-right: 8px; flex-shrink: 0;
    object-fit: contain; vertical-align: middle;
}

/* Файл column_settings.css */

.column-settings-list {
    gap: 4px;}

.column-settings-item {
    gap: 8px; padding: 4px 6px;
    border-radius: 8px; font-size: var(--font_size_0);
    color: var(--dropdown-text);
    cursor: pointer;}

.column-settings-item:hover {
    background: var(--dropdown-hover);
}

.column-settings-item input {
    cursor: pointer;
}

.column-settings-empty {
    padding: 6px; font-size: var(--font_size_0);
    color: var(--text-3);
}

/* Файл management_object_selector.css */

.management-object-selector {
    min-width: 0; gap: 3px;
    color: var(--sidebar-text);
    font-size: var(--font_size_0);}

.management-object-selector select {
    width: 100%; min-width: 0;
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: 6px;
    background: var(--surface-primary); color: var(--blue-navy);
    font: inherit;
}

.management-object-selector--floating {
    position: absolute; z-index: 40;
    bottom: var(--spacing_small); left: var(--spacing_small);
    width: min(240px, calc(100% - var(--spacing_small) * 2));
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: 8px; background: var(--sidebar-background);
    box-shadow: var(--shadow);
}

/* Файл management_objects_workspace.css */

.management-workspace {
    position: relative; display: flex;
    width: 100%; height: 100%;
    min-height: 0; flex-direction: column;
}

.management-workspace > .tab-widget-container {
    height: auto; min-height: 0;
    flex: 1 1 auto;
}

.management-workspace__toolbar {
    flex: 0 0 auto; box-sizing: border-box;
}

.management-workspace > .tab-widget-container > .tab-container-top {
    width: 100%; min-height: 0;
    box-sizing: border-box;
}

.management-workspace .tab-content-wrapper,
.management-workspace .tab-content-top,
.management-workspace .tab-content-item.active {
    min-height: 0;
}

.management-workspace .table-widget {
    max-height: 100%;
}

.management-workspace--direct > .tab-widget-container >
.tab-container-top > .tab-nav-top {
    display: none !important;
}

.management-workspace--direct
> .tab-widget-container
> .tab-container-top {
    padding: 0;
}

.management-workspace__direct-placeholder {
    height: 100%; justify-content: center;
    padding: var(--spacing_small);
    color: var(--text-3);}

.management-workspace:has(.contextual-tab-widget) >
.management-object-selector--floating,
.management-workspace:has(.documents-tab-layout--contextual) >
.management-object-selector--floating {
    display: none;
}

/* Файл document_showcase.css */

.document-showcase {
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: var(--spacing_small) var(--font_size_1) var(--font_size_1);
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    background: var(--bg-1);
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.document-showcase__toolbar {
    min-width: 0;
    min-height: 32px;
    gap: var(--spacing_small);
    margin-bottom: 4px;
}

.document-showcase__back {
    padding: 4px var(--document_navigation_button_padding_inline);
    border: 0;
    border-radius: var(--spacing_small);
    background: transparent;
    color: var(--accent);
    font-size: var(--font_size_0);
    cursor: pointer;
}

.document-showcase__back:hover {
    background: var(--card);
}

.document-showcase__view-button {
    padding: 4px var(--font_size_0);
    border: 1px solid var(--border);
    border-radius: var(--spacing_small);
    background: var(--card);
    color: var(--text-3);
    font-size: var(--font_size_0);
    cursor: pointer;
}

.document-showcase__view-button--active {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--on-accent);
}

.document-showcase__sort-setting {
    display: flex;
    flex-direction: column;
    gap: var(--spacing_small);
}

.document-showcase__sort-setting select {
    min-width: 220px;
    padding: var(--spacing_small);
    border: 1px solid var(--border);
    border-radius: var(--spacing_small);
    background: var(--card);
    color: var(--text-3);
    font-size: var(--font_size_0);
}

.document-showcase__settings-button {
    display: inline-flex;
    width: var(--button-min-height);
    min-width: var(--button-min-height);
    height: var(--button-min-height);
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--card);
    color: var(--text-2);
    font-size: var(--font_size_0);
    cursor: pointer;
}

.document-showcase__settings-button:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.document-showcase__grid {
    gap: var(--spacing_small);
}

.document-showcase__grid--tiles {
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
}

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

.document-showcase__folder {
    display: flex;
    align-items: center;
    gap: var(--spacing_small);
    min-height: 46px;
    padding: var(--spacing_small);
    border: 1px solid transparent;
    border-radius: var(--font_size_0);
    background: var(--card);
    color: var(--text-3);
    text-align: left;
    cursor: pointer;
    box-shadow: var(--shadow);
    contain-intrinsic-size: 46px;
    content-visibility: auto;
}

.document-showcase__grid--list .document-showcase__folder {
    width: 100%;
    min-height: 42px;
}

.document-showcase__folder:hover {
    border-color: var(--accent);
    background: var(--bg-1);
}

.document-showcase__folder-icon {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
}

.document-showcase__folder-title {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: var(--font_size_0);
    font-weight: 500;
}

.document-showcase__attachments {
    padding: var(--font_size_1);
    border-radius: var(--font_size_1);
    background: var(--card);
}

.document-showcase__empty {
    padding: var(--font_size_2);
    color: var(--text-2);
    text-align: center;
}

.document-showcase__filters {
    align-items: center;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--font_size_0);
    gap: 6px;
    grid-template-columns: minmax(220px, 1fr) auto auto;
    margin-bottom: 8px;
    padding: 6px 8px;
}

.document-showcase__filters input,
.document-showcase__filters select {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--spacing_small);
    color: var(--text-3);
    font-size: var(--font_size_0);
    min-width: 0;
    padding: var(--spacing_small);
}

.document-showcase__filters span {
    color: var(--text-2);
    font-size: var(--font_size_caption);
    white-space: nowrap;
}

.document-showcase__filters .document-showcase__count {
    min-width: max-content;
    justify-self: end;
    color: var(--text-2);
    font-size: var(--font_size_0);
    font-weight: 500;
}

.document-showcase__load-more {
    background: var(--accent);
    border: 0;
    border-radius: var(--spacing_small);
    color: var(--on-accent);
    cursor: pointer;
    display: block;
    font-size: var(--font_size_0);
    margin: var(--font_size_1) auto 0;
    padding: var(--spacing_small) var(--font_size_2);
}

.document-showcase__navigation,
.document-showcase__inline-navigation {
    display: flex;
    align-items: center;
    gap: calc(var(--spacing_small) / 2);
    min-width: 0;
    flex: 0 0 auto;
}

.document-showcase__tree {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    gap: 6px;
    box-sizing: border-box;
    width: auto;
    min-width: 0;
    min-height: 34px;
    margin: 0;
    padding: 5px 9px;
    border: 1px solid var(--border);
    border-radius: var(--font_size_0);
    background: var(--card);
    color: var(--text-2);
    font-size: var(--font_size_0);
    font-weight: 600;
    line-height: 1.35;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
}

.document-showcase__tree span {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: 0;
}

.document-showcase__tree span:not(:last-child)::after {
    content: '›';
    margin-left: 6px;
    color: var(--text-3);
    font-weight: 700;
}

.document-showcase__inline-navigation {
    margin-bottom: var(--spacing_small);
}

@media (max-width: 900px) {
    .document-showcase__filters {
        grid-template-columns: 1fr;
    }

    .document-showcase__filters span {
        white-space: normal;
    }
}

@media (max-width: 760px) {
    .document-showcase__grid--tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .document-showcase__navigation {
        flex-wrap: nowrap;
    }

    .document-showcase__back {
        white-space: nowrap;
    }
}

/* Файл List.css */

.radio-button-list {
    font-family: var(--font_family_interface);
    color: var(--text-1);}

.radio-button-list--scroll {
    height: 100%; min-height: 0;
}

.radio-list-label {
    margin-bottom: 10px; color: var(--text-1);
    font-weight: bold; flex-shrink: 0;
}

.options-container {
    overflow: visible;}

.options-container--scroll {
    flex: 1; min-height: 0;
    overflow-y: auto;
}

.options-container--scroll::-webkit-scrollbar {
    width: 8px;
}

.options-container--scroll::-webkit-scrollbar-track {
    background: var(--bg-2); border-radius: 4px;
}

.options-container--scroll::-webkit-scrollbar-thumb {
    background: var(--text-3); border-radius: 4px;
}

.options-container--scroll::-webkit-scrollbar-thumb:hover {
    background: var(--text-2);
}

.no-options-message {
    padding: 2px; color: var(--text-3);
    text-align: center; font-style: italic;
}

.error-message {
    padding: 12px; margin: 8px 0;
    border: 1px solid var(--status-error-border); border-radius: 4px;
    background: var(--status-error-background);
    color: var(--status-error-text);
}

/* Файл ListItem.css */

.radio-label {
    position: relative; padding-bottom: 12px;
    border-radius: 4px; cursor: pointer;
    transition: background-color 0.2s;}

.radio-label:hover {
    background-color: var(--bg-2);
}

.radio-label.disabled {
    opacity: 0.5; cursor: not-allowed;
}

.radio-input {
    position: absolute; opacity: 0;
    cursor: pointer;
}

.radio-content {
    min-width: 0;}

.radio-text {
    color: var(--text-1); font-size: var(--font_size_button);
}

.radio-description {
    margin-top: 2px; color: var(--text-3);
    font-size: var(--font_size_caption);
}

/* Файл ListRadio.css */

.radio-custom {
    position: relative; width: 10px;
    height: 10px; margin-right: 10px;
    border: 2px solid var(--border); border-radius: 50%;
    background-color: var(--input-background); flex-shrink: 0;
}

.radio-input:checked ~
.radio-custom:not(.radio-custom-checkbox) {
    border-color: var(--accent); background-color: var(--accent);
}

.radio-input:checked ~
.radio-custom:not(.radio-custom-checkbox)::after {
    content: ''; position: absolute;
    top: 50%; left: 50%;
    width: 8px; height: 8px;
    border-radius: 50%; background: var(--on-accent);
    transform: translate(-50%, -50%);
}

.radio-input:disabled ~ .radio-custom {
    border-color: var(--border); background-color: var(--bg-2);
    cursor: not-allowed;
}

.radio-input:disabled ~ .radio-text {
    color: var(--text-3); cursor: not-allowed;
}

/* Файл ListCheckbox.css */

/* SelectionListCheckbox.css */

.radio-custom-checkbox {
    border-radius: 4px;
}

/* Стили для чекбоксов */

.radio-input:checked ~
.radio-custom-checkbox {
    background-color: #2196F3; border-color: #2196F3;
}

.radio-input:checked ~
.radio-custom-checkbox::after {
    content: '✓'; position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%); color: white;
    font-size: var(--font_size_caption); font-weight: bold;
    line-height: 1;
}

/* Файл ListBorder.css */

.selection-list-border {
    padding: 4px; border: 1px solid var(--border);
    background: var(--selection-list-background, var(--bg-1));
    color: var(--text-1);
}

.selection-list-border-rounded {
    border-radius: 8px;
}

.selection-list-border-shadow {
    border-radius: 8px; box-shadow: var(--shadow);
}

/* Файл PortraitCollapse.css */

.selection-list-shell {
    position: relative; min-width: 0;
}

.selection-list-portrait-toggle {
    display: none;
}

@media (orientation: portrait) {
    .selection-list-shell--portrait-collapse {
        width: 100%; min-width: 0;
        flex: 0 0 auto;
    }
    .selection-list-shell--portrait-collapse
    .selection-list-portrait-toggle {
        display: flex; width: 100%;
        min-width: 0; min-height: 38px;
        align-items: center; justify-content: space-between;
        gap: 8px; padding: 6px 10px;
        border: 1px solid var(--border); border-radius: 9px;
        background: var(--bg-1); color: var(--text-2);
        box-shadow: var(--shadow); box-sizing: border-box;
        cursor: pointer; font-size: var(--font_size_0);
        font-weight: 600; text-align: left;
    }
    .selection-list-shell--portrait-collapse .selection-list-portrait-toggle
span:first-child {
        min-width: 0; overflow: hidden;
        text-overflow: ellipsis; white-space: nowrap;
    }
    .selection-list-shell--portrait-collapse
    .radio-button-list--portrait-popup {
        display: none; position: absolute;
        top: calc(100% + 5px); right: 0;
        left: 0; width: 100% !important;
        max-height: min(62dvh, 520px); min-height: 0 !important;
        overflow: auto; padding: 8px;
        border: 1px solid var(--border); border-radius: 10px;
        background: var(--bg-1); box-shadow: 0 10px 28px rgba(15, 23, 42, .18);
        box-sizing: border-box; z-index: 150;
    }
    .selection-list-shell--portrait-collapse.is-open
.radio-button-list--portrait-popup {
        display: flex;
    }
    .selection-list-shell--portrait-collapse
.radio-button-list--portrait-popup .options-container {
        min-height: 0 !important; max-height: none !important;
        overflow: visible;
    }
}

/* Файл index.css */

/*  */

/* Файл DownloadPanel.css */

.download-panel {
    gap: 16px; padding: 12px;
    box-sizing: border-box;
    min-width: 280px;}

.download-panel__label {
    font-size: var(--font_size_0); color: var(--text-1, #222);
}

.download-panel__select {
    height: 34px; padding: 4px 8px;
    border-radius: 6px; border: 1px solid var(--border, #cfcfcf);
    background: var(--bg-1, #fff); color: var(--text-1, #222);
    font-size: var(--font_size_0); outline: none;
}

.download-panel__select:disabled {
    opacity: 0.65; cursor: not-allowed;
}

.download-panel__actions {
    justify-content: flex-start;}

/* Файл tab_access_to_LC.css */

.access-to-lc-root {
    display: flex; width: 100%;
    height: 100%; min-width: 0;
    min-height: 0; flex-direction: column;
    overflow: hidden;
}

.access-to-lc-root > .grid-container {
    flex: 1 1 auto; min-height: 0;
    grid-template-rows: repeat(4, minmax(0, 1fr));
}

.access-to-lc-root > .grid-container > .grid-item:last-child {
    display: flex; min-height: 0;
    overflow: hidden;
}

.access-to-lc-root
> .grid-container
> .grid-item:last-child
> .table-widget {
    height: 100%; min-height: 0;
    max-height: none; flex: 1 1 auto;
}

.access-to-lc-root
> .grid-container
> .grid-item:last-child
.table-container {
    height: 100%; min-height: 0;
    max-height: none; flex: 1 1 auto;
}

.access-to-lc-root
> .grid-container
> .grid-item:last-child
.table-wrapper {
    height: 100%; min-height: 0;
    max-height: none;
}

#content-1-tab_5.tab-content-item.active {
    display: flex; flex: 1 1 auto;
    height: 100%; min-height: 0;
    overflow: hidden;
}

#content-1-tab_5 > .access-to-lc-root {
    flex: 1 1 auto;
}

.access-to-lc-actions {
    justify-content: flex-end; flex-direction: row;
    flex-wrap: wrap; gap: var(--spacing_small);
    width: 100%;}

.bulk-access-assignment {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: var(--font_size_0); width: 100%;
    min-height: 65vh;}

.bulk-access-assignment__panel {
    min-height: 0;}

.bulk-access-assignment__heading {
    flex: 0 0 auto; gap: calc(var(--spacing_small) / 2);
    margin-bottom: var(--spacing_small);}

.bulk-access-assignment__heading--right {
    flex-direction: row; align-items: center;
    justify-content: space-between; gap: var(--font_size_0);
}

.bulk-access-assignment__heading h3, .bulk-access-assignment__heading p {
    margin: 0;
}

.bulk-access-assignment__heading h3 {
    color: var(--text-2); font-size: var(--font_size_1);
}

.bulk-access-assignment__heading p {
    color: var(--text-3); font-size: var(--font_size_0);
}

.bulk-access-assignment__heading input {
    width: min(240px, 45%); min-width: 120px;
    padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--font_size_0);
    background: var(--bg-1); color: var(--text-2);
    font-size: var(--font_size_0);
}

.bulk-access-assignment__status {
    margin-bottom: var(--spacing_small); color: var(--accent-orange-text);
    font-size: var(--font_size_0);
}

.bulk-access-assignment__empty {
    flex: 1 1 auto; justify-content: center;
    min-height: 240px; color: var(--text-3);
    text-align: center;}

@media (orientation: landscape) {
    .access-to-lc-root > .grid-container {
        grid-template-columns: 15% repeat(4, minmax(0, 1fr));
    }

    .drawer-panel.bulk-access-driver {
        width: 85%;
    }
}

@media (max-width: 900px) {
    .bulk-access-assignment {
        grid-template-columns: minmax(0, 1fr);
    }
    .bulk-access-assignment__panel {
        min-height: 45vh;
    }
}

/* В портретной ориентации обе кнопки занимают одну строку. */

@media (orientation: portrait) {
    .access-to-lc-actions {
        flex-direction: row; align-items: center;
        justify-content: flex-end; flex-wrap: nowrap;
    }
}

/* Убирает артефакты скрытых повторов номера квартиры на телефоне. */

@media (orientation: portrait) {
    .access-residents-table
    .portrait-column-switcher-wrapper {
        overflow-x: hidden;
    }
    .access-residents-table .portrait-column-switcher-wrapper .data-table
.fixed-column,
.access-residents-table .portrait-column-switcher-wrapper .data-table
.fixed-cell {
        position: static !important; left: auto !important;
    }
    .access-residents-table .portrait-column-switcher-wrapper .data-table
.row-number-header,
.access-residents-table .portrait-column-switcher-wrapper .data-table
.row-number-cell {
        display: none !important;
    }
    .access-residents-table .portrait-column-switcher-wrapper .data-table
td:first-child,
.access-residents-table .portrait-column-switcher-wrapper .data-table
td:first-child .cell-content,
.access-residents-table .portrait-column-switcher-wrapper .data-table
td:first-child .cell-display-value {
        overflow: hidden !important; clip-path: inset(0);
    }
}

.access_rights_pivot {
    width: 100%; min-width: 0;
}

.access_rights_pivot > .pivot-table-container {
    width: 100%; max-width: 100%;
}

.access_download_mode_setting {
    width: 100%; margin-top: var(--spacing_small);
}

.access_download_mode_setting label {
    display: grid; gap: calc(var(--spacing_small) / 2);
}

.access_download_mode_setting select {
    width: 100%;
}

.bulk_access_download_mode {
    gap: calc(var(--spacing_small) / 2);
    margin-bottom: var(--spacing_small);}

/* Файл tab_user_actions.css */

.tab-content-item.active:has(> .tab-user-actions) {
    display: flex; height: 100%;
    min-height: 0; overflow: hidden;
}

.tab-user-actions {
    display: flex; width: 100%;
    height: 100%; min-height: 0;
    flex-direction: column;
}

.tab-user-actions__table {
    display: flex; min-height: 0;
    flex: 1 1 auto;
}

.tab-user-actions__table > .table-widget,
.tab-user-actions__table .table-container,
.tab-user-actions__table .table-wrapper {
    height: 100%; min-height: 0;
    max-height: none;
}

.tab-user-actions__table > .table-widget,
.tab-user-actions__table .table-container {
    flex: 1 1 auto;
}

/* Файл OutgoingDocumentDeliverySettings.css */

.outgoing-settings__delivery > p {
    margin: 0; color: var(--text-2);
    font-size: var(--font_size_caption); line-height: 1.45;
}

.outgoing-settings__delivery-row {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
    align-items: center; gap: 12px;
}

.outgoing-settings__delivery-row .outgoing-settings__checkbox-row span {
    display: flex; flex-direction: column;
    gap: 3px;
}

.outgoing-settings__delivery-row small {
    color: var(--text-2); font-size: var(--font_size_caption);
    font-weight: 400;
}

.outgoing-settings__delivery-row select:disabled {
    opacity: 0.55;
}

@media (max-width: 760px) {
    .outgoing-settings__delivery-row {
        grid-template-columns: 1fr;
    }
}

/* Файл OutgoingDocumentSettings.css */

.outgoing-settings {
    align-items: stretch;
}

.outgoing-settings > * {
    min-width: 0; max-width: 100%;
    box-sizing: border-box;
}

.outgoing-settings__header h2 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1);
}

.outgoing-settings__header p {
    margin: 6px 0 0; color: var(--text-2);
    font-size: var(--font_size_0);
}

.outgoing-settings__field {
    margin-top: var(--font_size_1); gap: 6px;
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 700;}

.outgoing-settings__field input, .outgoing-settings__field select {
    width: 100%; min-height: 42px;
    box-sizing: border-box; padding: 8px 12px;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0); outline: none;
}

.outgoing-settings__field input:focus,
.outgoing-settings__field select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(31, 111, 190, 0.12);
}

.outgoing-settings__templates {
    margin-top: var(--font_size_1); gap: 8px;
    color: var(--text-1);
    font-size: var(--font_size_0);}

.outgoing-settings__template-list {
    display: flex; flex-wrap: wrap;
    gap: 8px;
}

.outgoing-settings__template {
    margin: 0; padding: 7px 12px;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0); cursor: pointer;
}

.outgoing-settings__template:hover,
.outgoing-settings__template--active {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.outgoing-settings__actions {
    display: flex; margin-top: var(--font_size_1);
    flex-wrap: wrap; gap: 8px;
}

.outgoing-settings__empty, .outgoing-settings__loading {
    color: var(--text-2); font-size: var(--font_size_0);
}

.outgoing-settings__loading {
    min-height: 56px; justify-content: center;
}

.outgoing-settings__pdf-types {
    display: grid; gap: 8px;
    margin: var(--font_size_1) 0 0; padding: 12px;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
}

.outgoing-settings__pdf-types legend {
    padding: 0 6px; color: var(--text-1);
    font-size: var(--font_size_0); font-weight: 700;
}

.outgoing-settings__pdf-types label {
    display: flex; align-items: flex-start;
    gap: 9px; padding: 10px;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); cursor: pointer;
}

.outgoing-settings__pdf-types input {
    margin-top: 3px;
}

.outgoing-settings__pdf-types span {
    display: flex; flex-direction: column;
    gap: 3px;
}

.outgoing-settings__pdf-types strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.outgoing-settings__pdf-types small {
    color: var(--text-2); font-size: var(--font_size_caption);
    line-height: 1.4;
}

.outgoing-settings__checkbox-row {
    display: flex; align-items: flex-start;
    gap: 9px; color: var(--text-1);
    font-size: var(--font_size_0);
}

.outgoing-settings__checkbox-row input {
    margin-top: 3px;
}

.outgoing-settings__signature-grid {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 12px;}

.outgoing-settings__signature-grid .outgoing-settings__field {
    margin-top: 0;
}

.outgoing-settings__signature-tags,
.outgoing-settings__signature-status {
    display: flex; flex-wrap: wrap;
    align-items: center; gap: 8px;
    color: var(--text-2); font-size: var(--font_size_caption);
}

.outgoing-settings__signature-tags strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.outgoing-settings__signature-tags code,
.outgoing-settings__signature-status code {
    padding: 4px 7px; border: 1px solid var(--border);
    border-radius: 6px; background: var(--bg-2);
    color: var(--text-1); font-family: var(--font_family_monospace);
    font-size: var(--font_size_caption);
}

.outgoing-settings__signature-status {
    flex-direction: column; align-items: flex-start;
}

.outgoing-settings__reminder {
    padding: 10px 12px; border: 1px solid #e2b84c;
    border-radius: var(--spacing_small); background: #fff8df;
    color: #725100; font-size: var(--font_size_0);
    font-weight: 700;
}

.outgoing-settings__reminder--expired {
    border-color: #d86969; background: #fff0f0;
    color: #8a2222;
}

@media (max-width: 760px) {
    .outgoing-settings__signature-grid {
        grid-template-columns: 1fr;
    }
}

.outgoing-settings__template-by-type {
    gap: 10px; margin: var(--font_size_1) 0 0;
    padding: 12px; border: 1px solid var(--border);
    border-radius: var(--spacing_small);}

.outgoing-settings__template-by-type legend {
    padding: 0 6px; color: var(--text-1);
    font-size: var(--font_size_0); font-weight: 700;
}

.outgoing-settings__template-by-type > p {
    margin: 0; color: var(--text-2);
    font-size: var(--font_size_caption);
}

.outgoing-settings__template-by-type-row {
    grid-template-columns: minmax(180px, 0.7fr) minmax(280px, 1.3fr);
    align-items: center; gap: 10px;
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 600;}

.outgoing-settings__template-by-type-row select {
    width: 100%; min-height: 38px;
    box-sizing: border-box; padding: 7px 10px;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0);
}

@media (max-width: 760px) {
    .outgoing-settings__template-by-type-row {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Файл meter_reading_transmission_settings.css */

.meter-transmission-settings {
    gap: var(--spacing_small);
    margin: 0;}

.meter-transmission-settings__header,
.meter-transmission-settings__card-actions {
    display: flex; align-items: center;
    gap: var(--spacing_small);
}

.meter-transmission-settings__header {
    justify-content: space-between;
}

.meter-transmission-settings__header h3,
.meter-transmission-settings__header p {
    margin: 0;
}

.meter-transmission-settings__header p {
    color: var(--text-2);
}

.meter-transmission-settings__grid {
    display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr));
    gap: var(--spacing_small);
}

.meter-transmission-settings__grid label {
    display: grid; gap: calc(var(--spacing_small) / 2);
}

.meter-transmission-settings__grid input,
.meter-transmission-settings__grid select {
    width: 100%; min-height: var(--button-min-height);
    box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.meter-transmission-settings button {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit; cursor: pointer;
}

.meter-transmission-settings button:hover:not(:disabled) {
    border-color: var(--accent);
}

.meter-transmission-settings button.button {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.meter-transmission-settings__delete {
    color: var(--status-danger-text) !important;
}

@media (max-width: 900px) {
    .meter-transmission-settings__grid {
        grid-template-columns: repeat(2, minmax(140px, 1fr));
    }
}

@media (max-width: 620px) {
    .meter-transmission-settings__header,
.meter-transmission-settings__card-actions {
        align-items: stretch; flex-direction: column;
    }
    .meter-transmission-settings__grid {
        grid-template-columns: 1fr;
    }
}

/* Файл meter_reading_sort_settings.css */

.meter-sort-settings {
    gap: var(--spacing_small); padding: 4px;
    font-size: var(--font_size_0);}

.meter-sort-settings h1, .meter-sort-settings h2,
.meter-sort-settings h3, .meter-sort-settings h4,
.meter-sort-settings label, .meter-sort-settings label > span,
.meter-sort-settings .meter-sort-settings__title {
    font-size: var(--font_size_0); line-height: 1.3;
}

.meter-sort-settings__header {
    display: flex; align-items: end;
    gap: var(--font_size_0);
}

.meter-sort-settings__header label {
    display: grid; min-width: 280px;
    gap: calc(var(--spacing_small) / 2);
}

.meter-sort-settings select {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    font: inherit;
}

.meter-sort-settings__header p, .meter-sort-settings__interval p,
.meter-sort-settings__rules-hint {
    margin: 0; color: var(--text-2);
}

.meter-sort-settings__title {
    margin-bottom: var(--spacing_small); font-weight: 700;
}

.meter-sort-settings__rules-hint {
    margin-bottom: var(--spacing_small);
}

.meter-sort-settings__rule {
    grid-template-columns: 30px minmax(220px, 1fr) 180px auto;
    gap: var(--spacing_small); align-items: center;
    margin-bottom: calc(var(--spacing_small) - 1px);}

.meter-sort-settings__rule > span {
    text-align: center; font-weight: 700;
}

.meter-sort-settings__rule button, .meter-sort-settings__actions button {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-2); color: var(--text-1);
    font: inherit; cursor: pointer;
}

.meter-sort-settings__rule button:hover:not(:disabled),
.meter-sort-settings__actions button:hover:not(:disabled) {
    border-color: var(--accent); background: var(--bg-3);
    color: var(--text-1);
}

.meter-sort-settings__rule button:disabled,
.meter-sort-settings__actions button:disabled {
    background: var(--bg-2); color: var(--text-3);
    opacity: .65; cursor: not-allowed;
}

.meter-sort-settings__actions button.button {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.meter-sort-settings__actions button.button:hover:not(:disabled) {
    border-color: var(--accent-blue); background: var(--accent-blue);
    color: var(--on-accent);
}

.meter-sort-settings__actions {
    display: flex; justify-content: flex-end;
    gap: var(--spacing_small);
}

.meter-sort-settings__interval {
    display: flex; align-items: center;
    gap: var(--font_size_0);
}

.meter-sort-settings__interval label {
    display: flex; align-items: center;
    gap: calc(var(--spacing_small) - 1px); font-weight: 700;
}

.meter-sort-settings__interval input {
    width: 82px; min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    font: inherit;
}

@media (max-width: 760px) {
    .meter-sort-settings__header, .meter-sort-settings__interval {
        align-items: flex-start; flex-direction: column;
    }
    .meter-sort-settings__rule {
        grid-template-columns: 30px minmax(0, 1fr);
    }
    .meter-sort-settings__rule select, .meter-sort-settings__rule button {
        grid-column: 2;
    }
}

/* Файл tab_layout_settings.css */

.tab-layout-settings {
    width: 100%; height: 100%;
    min-height: 0; box-sizing: border-box;
    gap: var(--spacing_small); padding: var(--spacing_small);
    overflow-x: hidden; overflow-y: auto;
    background: var(--bg-2); font-family: var(--font_family_interface);
    font-size: var(--font_size_0);}

.tab-layout-settings__header {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: var(--font_size_0);
    margin: 0;
}

.tab-layout-settings__header h3 {
    margin: 0 0 var(--spacing_small); color: var(--blue-navy);
    font-size: var(--font_size_1);
}

.tab-layout-settings__header p {
    max-width: 760px; margin: 0;
    color: var(--text-2); font-size: var(--font_size_0);
}

.tab-layout-settings__board {
    flex: 0 0 auto;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--font_size_0); align-items: start;
    padding-bottom: var(--font_size_1);}

.tab-layout-settings__widget-header {
    grid-template-columns: minmax(0, 1fr) auto; align-items: start;
    gap: var(--spacing_small); margin-bottom: var(--spacing_small);
    color: var(--blue-navy);
    font-size: var(--font_size_0);}

.tab-layout-settings__widget-header strong {
    min-width: 0; overflow-wrap: anywhere;
}

.tab-layout-settings__widget-header span {
    color: var(--text-2); font-size: var(--font_size_caption);
    white-space: nowrap;
}

.tab-layout-settings__tabs {
    min-height: 52px;
    gap: calc(var(--spacing_small) / 2);}

.tab-layout-settings__tab {
    grid-template-columns: auto minmax(0, 1fr) auto; min-width: 0;
    min-height: 34px; box-sizing: border-box;
    align-items: center; gap: var(--spacing_small);
    padding: calc(var(--spacing_small) / 2) var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--blue-navy);
    font-size: var(--font_size_0);
    cursor: grab;}

.tab-layout-settings__tab:active {
    cursor: grabbing;
}

.tab-layout-settings__tab:hover {
    border-color: var(--accent); box-shadow: var(--shadow);
}

.tab-layout-settings__tab--locked {
    cursor: default;
}

.tab-layout-settings__handle {
    color: var(--text-2); font-weight: 700;
    letter-spacing: -2px;
}

.tab-layout-settings__empty {
    min-height: 48px; box-sizing: border-box;
    justify-content: center; padding: var(--spacing_small);
    border: 1px dashed var(--border); border-radius: var(--spacing_small);
    color: var(--text-2);
    font-size: var(--font_size_0);}

.tab-layout-settings__title-input {
    width: 100%; min-width: 0;
    min-height: 28px; box-sizing: border-box;
    margin: 5px 0; padding: 3px 6px;
    border: 1px solid transparent; border-radius: 6px;
    background: transparent; color: var(--blue-navy);
    font: inherit; text-overflow: ellipsis;
}

.tab-layout-settings__title-input:hover,
.tab-layout-settings__title-input:focus {
    border-color: var(--border); background: var(--bg-1);
    outline: none;
}

@media (max-width: 760px) {
    .tab-layout-settings__header {
        flex-direction: column;
    }
    .tab-layout-settings__board {
        grid-template-columns: 1fr;
    }
}

/* Файл management_object_theme_scope.css */

.app-theme-settings__scope {
    gap: var(--font_size_0);}

.app-theme-settings__scope-heading {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: var(--font_size_0);
}

.app-theme-settings__scope h3 {
    margin: 0 0 var(--spacing_small); color: var(--blue-navy);
    font-size: var(--font_size_1);
}

.app-theme-settings__scope p {
    margin: 0; color: var(--text-2);
    font-size: var(--font_size_0); line-height: 1.45;
}

.app-theme-settings__personal-button,
.app-theme-settings__scope-result button {
    flex: 0 0 auto;
    padding: calc(var(--spacing_small) * 0.7) var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-family: var(--font_family_interface);
    font-size: var(--font_size_button); cursor: pointer;
}

.app-theme-settings__personal-button:hover,
.app-theme-settings__scope-result button:hover,
.app-theme-settings__personal-button--active {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 12%, var(--bg-1));
    color: var(--accent);
}

.app-theme-settings__pivot {
    max-height: 360px; overflow: auto;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1);
}

.app-theme-settings__pivot .pivot-table {
    min-width: 100%;
}

.app-theme-settings__pivot .hierarchy-row {
    cursor: default;
}

.app-theme-settings__pivot .hierarchy-cell {
    color: var(--text-1); font-family: var(--font_family_interface);
    font-size: var(--font_size_button);
}

.app-theme-settings__loading {
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-2);
}

.app-theme-settings__scope-result {
    display: flex; align-items: center;
    justify-content: space-between; gap: var(--font_size_0);
    padding-top: var(--spacing_small); border-top: 1px solid var(--border);
    color: var(--text-2); font-size: var(--font_size_0);
}

.app-theme-settings__scope-result strong {
    color: var(--blue-navy);
}

@media (max-width: 680px) {
    .app-theme-settings__scope-heading, .app-theme-settings__scope-result {
        align-items: stretch; flex-direction: column;
    }
    .app-theme-settings__personal-button,
.app-theme-settings__scope-result button {
        width: 100%;
    }
}

/* Файл AppThemeSettings.css */

.app-theme-settings__intro {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: var(--font_size_0);
}

.app-theme-settings__intro h2, .app-theme-settings__note strong {
    margin: 0 0 var(--spacing_small); color: var(--blue-navy);
    font-size: var(--font_size_2);
}

.app-theme-settings__intro p, .app-theme-settings__note p {
    max-width: 780px; margin: 0;
    color: var(--text-2); font-size: var(--font_size_0);
    line-height: 1.45;
}

.app-theme-settings__status {
    flex: 0 0 auto;
    padding: calc(var(--spacing_small) * 0.7) var(--font_size_0);
    border: 1px solid var(--border); border-radius: 999px;
    background: var(--bg-2); color: var(--text-2);
    font-size: var(--font_size_caption); white-space: nowrap;
}

.app-theme-settings__grid {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--font_size_0);}

.app-theme-card {
    align-items: stretch; gap: var(--spacing_small);
    text-align: left; cursor: pointer;
    transform: none;}

.app-theme-preview {
    min-height: 122px; overflow: hidden;
    grid-template-columns: 34% 1fr; border: 1px solid var(--border-color);
    border-radius: var(--spacing_small);
    background: var(--preview-surface-secondary);}

.app-theme-preview__sidebar {
    display: flex; flex-direction: column;
    gap: 9px; padding: 18px 10px;
    background: var(--preview-sidebar);
}

.app-theme-preview__sidebar i {
    display: block; width: 80%;
    height: 8px; border-radius: 999px;
    background: color-mix(in srgb, var(--sidebar-text) 74%, transparent);
}

.app-theme-preview__content {
    display: flex; flex-direction: column;
    gap: 12px; padding: 18px;
    background: var(--preview-surface);
}

.app-theme-preview__content i {
    display: block; border-radius: 999px;
}

.app-theme-preview__heading {
    width: 70%; height: 10px;
    background: var(--heading-color);
}

.app-theme-preview__field {
    width: 100%; height: 28px;
    border: 1px solid var(--border-color); background: var(--input-background);
}

.app-theme-preview__button {
    width: 48%; height: 20px;
    background: var(--preview-accent);
}

.app-theme-card__text {
    min-width: 0;
    gap: 4px;}

.app-theme-card__text strong {
    color: var(--blue-navy); font-size: var(--font_size_1);
}

.app-theme-card__text small {
    color: var(--text-2); font-size: var(--font_size_caption);
    line-height: 1.35;
}

.app-theme-card__mark {
    align-self: flex-start; padding: 4px var(--spacing_small);
    border-radius: 999px; background: var(--bg-2);
    color: var(--accent-blue); font-size: var(--font_size_caption);
    font-weight: 700;
}

.app-theme-card--active .app-theme-card__mark {
    background: color-mix(in srgb, var(--accent) 16%, var(--bg-1));
    color: var(--accent);
}

@media (max-width: 680px) {
    .app-theme-settings__intro {
        flex-direction: column;
    }
    .app-theme-settings__status {
        white-space: normal;
    }
    .app-theme-settings__grid {
        grid-template-columns: 1fr;
    }
}
/* Файл InfoDriverButton.css */

.info-driver-overlay {
    z-index: 2099;
}

.drawer-panel.info-driver-panel {
    z-index: 2100;
}

.info-driver-button {
    display: inline-flex; width: var(--info_button_size);
    height: var(--info_button_size); flex: 0 0 var(--info_button_size);
    align-items: center; justify-content: center;
    padding: 0; border: 1px solid var(--accent);
    border-radius: 50%; background: var(--bg-1);
    color: var(--accent); font: 700 var(--font_size_0)/1 serif;
    cursor: pointer;
}

.info-driver-button:hover, .info-driver-button:focus-visible {
    background: var(--accent); color: var(--on-accent);
    outline: none; box-shadow: 0 0 0 3px rgba(61, 132, 196, 0.16);
}

.info-driver-section {
    margin: 0 !important;
}

.info-driver-section h3, .info-driver-section p,
.info-driver-section ul {
    margin-top: 0;
}

.info-driver-section p, .info-driver-section li {
    color: var(--text-1); line-height: 1.45;
}

.info-driver-section ul {
    padding-left: calc(var(--font_size_1) + var(--spacing_small));
    margin-bottom: 0;
}

/* Файл UpdFormatSettings.css */

.upd-format-settings {
    display: flex; width: 100%;
    max-width: none; height: 100%;
    min-width: 0; min-height: 0;
    flex: 1 1 auto; align-self: stretch;
    flex-direction: column; gap: var(--spacing_small);
    box-sizing: border-box;
    padding: var(--spacing_small) 0 var(--spacing_small) var(--spacing_small);
    overflow: auto; scrollbar-gutter: auto;
    background: var(--bg-2); container-name: upd-format-page;
    container-type: inline-size; font-family: var(--font_family_interface);
    font-size: var(--font_size_0);
}

.upd-format-settings h2, .upd-format-settings h3 {
    font-size: var(--font_size_1);
}

.upd-format-settings label, .upd-format-settings input,
.upd-format-settings select, .upd-format-settings textarea,
.upd-format-settings button {
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
    line-height: 1.35;
}

.upd-format-settings > .block_1 {
    width: 100%; max-width: none;
    min-width: 0; box-sizing: border-box;
    overflow: hidden;
}

.upd-format-settings__form {
    flex: 0 0 auto;
    gap: var(--font_size_0);}

.upd-format-settings .upd-format-settings__fields.workspace-form-grid--three {
    display: grid; width: 100%;
    min-width: 0; max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        'document-type'
        'effective-from'
        'xml-file'
        'xsd-file'
        'actions';
    gap: var(--font_size_0); box-sizing: border-box;
}

.upd-format-settings__field, .upd-format-settings__actions {
    width: 100%; min-width: 0;
    max-width: 100%; box-sizing: border-box;
}

.upd-format-settings__field--document-type {
    grid-area: document-type;
}

.upd-format-settings__field--effective-from {
    grid-area: effective-from;
}

.upd-format-settings__field--xml {
    grid-area: xml-file;
}

.upd-format-settings__field--xsd {
    grid-area: xsd-file;
}

.upd-format-settings__actions {
    grid-area: actions; justify-content: flex-start;
}

.upd-format-settings__field input, .upd-format-settings__field select {
    display: block; width: 100%;
    min-width: 0; max-width: 100%;
    box-sizing: border-box;
}

.upd-format-settings__field input[type='file'] {
    inline-size: 100%; min-inline-size: 0;
    max-inline-size: 100%; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}

.upd-format-settings__actions .btn {
    width: auto; max-width: 100%;
    white-space: normal;
}

.upd-format-settings__list {
    overflow: visible; flex: 0 0 auto;
    min-height: 0;
}

.upd-format-settings__table-wrap {
    width: 100%; min-width: 0;
    max-width: 100%; overflow: hidden;
    box-sizing: border-box;
}

.upd-format-settings__table-widget {
    width: 100%; height: auto;
    min-height: 0; max-height: none;
    overflow: visible; font-family: var(--font_family_interface);
}

.upd-format-settings__table-widget .table-wrapper {
    width: 100%; height: auto;
    min-height: 0; max-height: none;
    overflow-x: auto; overflow-y: visible;
    border-radius: 0; box-shadow: none;
}

.upd-format-settings__table-widget .data-table {
    width: 100%; min-width: 0;
    max-width: 100%; border-collapse: separate;
    border-spacing: 0; table-layout: fixed;
    font-size: var(--font_size_0);
}

.upd-format-settings__table-widget .data-table th,
.upd-format-settings__table-widget .data-table td {
    min-width: 0 !important; max-width: none !important;
    padding: 8px 6px; border-bottom: 1px solid var(--border);
    background: var(--bg-1); color: var(--blue-navy);
    text-align: left; vertical-align: top;
    white-space: normal; overflow: hidden;
    overflow-wrap: anywhere; word-break: break-word;
    text-overflow: clip;
}

.upd-format-settings__table-widget .data-table th,
.upd-format-settings__table-widget .fixed-header,
.upd-format-settings__table-widget .fixed-header-row {
    background: var(--bg-2) !important; color: var(--blue-navy) !important;
    font-weight: 700;
}

.upd-format-settings__table-widget .header-content,
.upd-format-settings__table-widget .cell-content,
.upd-format-settings__table-widget .cell-display-value {
    min-width: 0; white-space: normal;
    overflow-wrap: anywhere; word-break: break-word;
    text-overflow: clip;
}

.upd-format-settings__table-widget .data-table th:nth-child(1),
.upd-format-settings__table-widget .data-table td:nth-child(1) {
    width: 11%;
}

.upd-format-settings__table-widget .data-table th:nth-child(2),
.upd-format-settings__table-widget .data-table td:nth-child(2) {
    width: 8%;
}

.upd-format-settings__table-widget .data-table th:nth-child(3),
.upd-format-settings__table-widget .data-table td:nth-child(3) {
    width: 11%;
}

.upd-format-settings__table-widget .data-table th:nth-child(4),
.upd-format-settings__table-widget .data-table td:nth-child(4) {
    width: 14%;
}

.upd-format-settings__table-widget .data-table th:nth-child(5),
.upd-format-settings__table-widget .data-table td:nth-child(5) {
    width: 12%;
}

.upd-format-settings__table-widget .data-table th:nth-child(6),
.upd-format-settings__table-widget .data-table td:nth-child(6) {
    width: 19%;
}

.upd-format-settings__table-widget .data-table th:nth-child(7),
.upd-format-settings__table-widget .data-table td:nth-child(7) {
    width: 25%;
}

.upd-format-settings__empty {
    padding: var(--font_size_0); border: 1px dashed var(--border);
    border-radius: var(--spacing_small); color: var(--text-2);
}

@container upd-format-page (min-width: 700px) {
    .upd-format-settings
.upd-format-settings__fields.workspace-form-grid--three {
        grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
        grid-template-areas:
            'document-type effective-from'
            'xml-file xsd-file'
            'actions actions';
    }
}

@container upd-format-page (max-width: 699px) {
    .upd-format-settings__actions .btn {
        width: 100%;
    }
}

@media (orientation: portrait) {
    .upd-format-settings__table-widget.table-widget--auto-height,
.upd-format-settings__table-widget.table-widget--auto-height
.portrait-card-table {
        height: auto; max-height: none;
        overflow: visible;
    }
    .upd-format-settings__table-widget .portrait-card-table {
        gap: var(--spacing_small); padding: 0;
        background: transparent;
    }
    .upd-format-settings__table-widget .portrait-table-card {
        margin: 0; padding: var(--spacing_small) var(--font_size_0);
        border: 1px solid var(--border); border-radius: var(--spacing_small);
        background: var(--bg-1); box-shadow: var(--shadow);
        cursor: default;
    }
    .upd-format-settings__table-widget .portrait-table-card__field {
        grid-template-columns: minmax(110px, 42%) minmax(0, 1fr);
        gap: var(--spacing_small); padding: 6px 0;
    }
    .upd-format-settings__table-widget .portrait-table-card__label,
.upd-format-settings__table-widget .portrait-table-card__value {
        font-size: var(--font_size_0);
    }
}

/* Файл potale_local_agent_card.css */

.potale-agent-card__title-row, .potale-agent-card__status,
.potale-agent-card__version, .potale-agent-card__actions {
    grid-column: 1 / -1;
}

.potale-agent-card__title-row {
    justify-content: flex-start;
    gap: var(--spacing_small);}

.potale-agent-card__title-row h3 {
    margin: 0;
}

.potale-agent-card__status {
    padding: calc(var(--spacing_small) - 2px); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-2);
}

.potale-agent-card__status--ready {
    border-color: var(--accent);
}

.potale-agent-card__status--missing, .potale-agent-card__version {
    color: var(--text-2);
}

.potale-agent-card__actions {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_small);
}

/* Файл gis_import_report_panel.css */

.gis-import-report .drawer-body {
    display: block;
}

.gis-import-report__summary {
    flex: 0 0 auto;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--spacing_small);}

.gis-import-report__metric {
    min-width: 0; padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1);}

.gis-import-report__metric strong {
    color: var(--accent); font-size: var(--font_size_2);
}

.gis-import-report__metric span, .gis-import-report__hint {
    color: var(--text-3);
}

.gis-import-report__hint {
    margin: 0;
}

.gis-import-report__errors {
    padding: var(--spacing_small); border: 1px solid var(--error, #c92a2a);
    border-radius: var(--spacing_small); color: var(--text-2);
    background: var(--bg-1);
}

.gis-import-report__errors summary {
    color: var(--error, #c92a2a); cursor: pointer;
    font-weight: 600;
}

.gis-import-report__errors ul {
    margin: var(--spacing_small) 0 0;
    padding-left: calc(2 * var(--spacing_small));
}

.gis-import-report__errors li {
    overflow-wrap: anywhere;
}

.gis-import-report__errors li + li {
    margin-top: var(--spacing_small);
}

.gis-import-report .gis-import-report__pivot {
    height: auto; min-height: 96px;
    overflow: visible; scrollbar-gutter: auto;
}

.gis-import-report__pivot .node-value {
    white-space: normal;
}

@media (max-width: 900px) {
    .gis-import-report__summary {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }
}

/* Файл external_integrations_settings_base.css */

.external-integrations-settings {
    display: flex; flex-direction: column;
    gap: var(--spacing_small); overflow: auto;
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
}

.integrations-house-card {
    max-width: none;
}

.integrations-house-card label, .integration-card label {
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
    line-height: 1.35; display: flex;
    min-width: 0; flex-direction: column;
    gap: calc(var(--spacing_small) / 2);
}

.settings-workspace.external-integrations-settings
> .integration-card {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small); align-items: start;
}

.integration-card h3, .integration-card > .integration-check,
.integration-card > .integration-status,
.integration-card > .integration-error,
.integration-card > .integration-certificate-upload,
.integration-card > button {
    grid-column: 1 / -1;
}

.integration-card h3 {
    margin: 0; color: var(--blue-navy);
    font-size: var(--font_size_1);
}

.integration-card .integration-check {
    flex-direction: row; align-items: center;
}

.integration-card .integration-check input {
    width: auto; min-height: auto;
    padding: 0;
}

.integration-help {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.integration-status {
    padding: calc(var(--spacing_small) - 2px);
    border-radius: var(--spacing_small); background: var(--bg-2);
}

.integration-credential-actions {
    display: flex; grid-column: 1 / -1;
    justify-content: flex-end;
}

.integration-error {
    color: var(--accent-red); white-space: pre-wrap;
}

.integration-warning {
    grid-column: 1 / -1; padding: calc(var(--spacing_small) - 2px);
    border: 1px solid var(--warning, #d88700);
    border-radius: var(--spacing_small);
    background: color-mix(
        in srgb,
        var(--warning, #d88700) 10%,
        var(--bg-1)
    ); color: var(--text-1);
    line-height: 1.4;
}

.integration-certificate-upload {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small); padding-top: var(--spacing_small);
    border-top: 1px solid var(--border);}

.integration-certificate-upload > strong,
.integration-certificate-upload > .integration-file-status,
.integration-certificate-upload > .integration-help,
.integration-certificate-upload > button {
    grid-column: 1 / -1;
}

.integration-main-actions {
    display: flex; justify-content: flex-end;
}

.integration-main-actions button, .integration-card > button,
.integration-certificate-upload button {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: var(--spacing_small);
    background: var(--accent); color: var(--on-accent);
    font: inherit; cursor: pointer;
}

.integration-main-actions button:disabled,
.integration-card > button:disabled,
.integration-certificate-upload button:disabled {
    opacity: .55; cursor: not-allowed;
}

@media (orientation: portrait), (max-width: 900px) {
    .settings-workspace.external-integrations-settings > .integration-card,
.integration-certificate-upload {
        grid-template-columns: 1fr;
    }
}

.integration-card__heading {
    grid-column: 1 / -1;
    gap: calc(var(--spacing_small) / 2);}

.integration-label-row { align-items: center;
    gap: calc(var(--spacing_small) / 2);
}

.integration-info-button {
    display: inline-flex; width: var(--info_button_size);
    min-width: var(--info_button_size); height: var(--info_button_size);
    min-height: var(--info_button_size); align-items: center;
    justify-content: center; padding: 0;
    border: 1px solid var(--accent); border-radius: 50%;
    background: var(--bg-1); color: var(--accent);
    font: inherit; font-size: var(--font_size_caption);
    font-weight: 700; line-height: 1;
    cursor: pointer;
}

.integration-info-button:hover {
    background: var(--accent); color: var(--on-accent);
}

.integration-readonly {
    background: var(--bg-2) !important; color: var(--text-2) !important;
    cursor: default;
}

.gis-integration-help {
    gap: var(--spacing_small);}

.gis-integration-help p, .gis-integration-help ol {
    margin: 0; color: var(--text-2);
    line-height: 1.5;
}

.gis-integration-help ol {
    padding-left: calc(var(--font_size_2) + var(--spacing_small));
}

.gis-integration-help li + li, .gis-integration-help p + p {
    margin-top: var(--spacing_small);
}

/* Файл external_integrations_settings_responsive.css */

/* Узкий портретный экран: карточки не выходят за границы рабочей области. */

.external-integrations-settings, .external-integrations-settings * {
    box-sizing: border-box;
}

.external-integrations-settings {
    width: 100%; min-width: 0;
    max-width: 100%; overflow-x: hidden;
}

.external-integrations-settings > *, .integration-card > *,
.integrations-house-card > *, .integration-certificate-upload > * {
    min-width: 0; max-width: 100%;
}

.integration-card h3, .integration-label-row, .integration-help,
.integration-status, .integration-error, .integration-warning,
.integration-file-status {
    overflow-wrap: anywhere; word-break: break-word;
}

.integration-label-row {
    display: flex; width: 100%;
    min-width: 0; flex-wrap: wrap;
}

.integration-card input, .integration-card select,
.integration-card button, .integrations-house-card select,
.integration-certificate-upload input,
.integration-certificate-upload button {
    max-width: 100%;
}

@media (orientation: portrait), (max-width: 900px) {
    .external-integrations-settings {
        gap: calc(var(--spacing_small) / 2);
        padding: calc(var(--spacing_small) / 2);
    }
    .settings-workspace.external-integrations-settings
.settings-workspace.external-integrations-settings > .integration-card,
.integration-certificate-upload {
        width: 100%; grid-template-columns: minmax(0, 1fr);
    }
    .integration-main-actions {
        width: 100%; justify-content: stretch;
    }
    .integration-main-actions button, .integration-card > button,
.integration-certificate-upload button {
        width: 100%; white-space: normal;
    }
    .integration-info-button {
        flex: 0 0 var(--info_button_size);
    }
}

/* Файл external_integrations_settings.css */

/* Файл tab_settings_layout.css */

#tab-container-tab_0 > .tab-content-wrapper.scrollable >
.tab-content-item.active:has( > .tab-widget-container >
#tab-container-tab_5 ) {
    min-width: 0; padding: 0 0 0 4px !important;
    overflow: hidden !important; scrollbar-gutter: auto;
}

#tab-container-tab_0 > .tab-content-wrapper.scrollable >
.tab-content-item.active > .tab-widget-container:has(>
#tab-container-tab_5) {
    width: 100%; min-width: 0;
    height: 100%; overflow: hidden !important;
}

#tab-container-tab_5, #tab-container-tab_5 > .tab-content-wrapper,
#tab-container-tab_5 > .tab-content-wrapper > .tab-content-item {
    width: 100%; min-width: 0;
}

#tab-container-tab_5 > .tab-content-wrapper >
.tab-content-item.active:has(> .settings-workspace) {
    min-height: 0; overflow: hidden;
}

#tab-container-tab_5 > .tab-content-wrapper > .tab-content-item.active >
.settings-workspace {
    flex: 1 1 auto; min-height: 0;
}

/* Файл settings_workspace.css */

.settings-workspace {
    display: flex; width: 100%;
    max-width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    flex: 1 1 auto; flex-direction: column;
    gap: 0; box-sizing: border-box;
    padding: var(--spacing_small); overflow-x: hidden;
    overflow-y: auto; background: var(--bg-2);
    font-size: var(--font_size_0); scrollbar-gutter: auto;
}

.settings-workspace > .block_1 {
    width: 100%; max-width: none;
    flex: 0 0 auto;
}

/* Общие внутренние раскладки настроек. Внешний белый блок всегда
   оформляет block_1. */

.settings-title-row {
    gap: var(--spacing_small);}

.settings-title-row h1, .settings-title-row h2, .settings-title-row h3,
.settings-title-row h4 {
    margin: 0;
}

.settings-description {
    margin: 0; color: var(--text-3);
    font-size: inherit; line-height: 1.45;
}

.settings-grid--two {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
}

.settings-grid__separator {
    width: 100%; height: 1px;
    grid-column: 1 / -1; margin: var(--spacing_xs) 0;
    background: var(--divider-soft);
}

.settings-inline-field, .settings-inline-check {
    display: flex; min-width: 0;
    align-items: center; gap: var(--spacing_small);
    font-size: var(--font_size_0);
}

.settings-inline-field {
    justify-content: space-between;
}

.settings-inline-field input, .settings-inline-field select {
    width: min(210px, 48%); min-width: 120px;
    box-sizing: border-box; font-size: inherit;
}

.settings-inline-check {
    justify-content: flex-start;
}

.settings-inline-check input {
    flex: 0 0 auto;
}

.settings-actions {
    display: flex; flex-wrap: wrap;
    justify-content: flex-end; gap: var(--spacing_small);
}

.settings-warning {
    padding: var(--spacing_small); border-radius: var(--spacing_small);
    background: var(--accent-orange-bg); color: var(--accent-orange-text);
}

.settings-error {
    color: var(--danger, #a01818);
}

.settings-disabled-preview {
    opacity: .78;
}

.settings-pivot {
    width: 100%; min-width: 0;
}

.settings-pivot .pivot-table-container {
    width: 100%; height: auto;
    max-height: min(440px, 48vh); box-sizing: border-box;
    box-shadow: none; font-size: inherit;
}

.settings-pivot .pivot-table, .settings-pivot .pivot-table th,
.settings-pivot .pivot-table td, .settings-pivot .header-label,
.settings-pivot .agg-label, .settings-pivot .node-value,
.settings-pivot .node-stats {
    font-size: inherit;
}

.settings-pivot .node-value, .settings-pivot .node-stats {
    margin: 0;
}

.settings-pivot .hierarchy-content {
    min-height: var(--button-min-height);
}

.settings-pivot .hierarchy-cell {
    vertical-align: middle;
}

@media (orientation: portrait), (max-width: 820px) {
    .settings-grid--two {
        grid-template-columns: 1fr;
    }
    .settings-inline-field {
        align-items: stretch; flex-direction: column;
    }
    .settings-inline-field input, .settings-inline-field select {
        width: 100%;
    }
}

/* Файл import_1c_settings_layout.css */

/* Внутренняя раскладка импорта 1С; сама белая карточка оформляется
   только block_1. */

.import-1c-settings {
    gap: var(--font_size_0); padding-left: var(--font_size_0);
}

.import-1c-settings__header p {
    max-width: 850px; margin: var(--spacing_small) 0 0;
    color: var(--text-3);
}

.import-1c-settings__upload, .import-1c-settings__apply-footer,
.import-1c-settings__status-title {
    display: flex; flex-wrap: wrap;
    align-items: center; justify-content: space-between;
    gap: var(--font_size_0);
}

.import-1c-settings__file {
    min-width: min(100%, 420px); gap: var(--spacing_small);
    color: var(--text-1);
    font-weight: 600;}

.import-1c-settings__file input {
    width: 100%; box-sizing: border-box;
    margin: 0; padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.import-1c-settings__button {
    min-height: calc((var(--font_size_0) * 2) + var(--spacing_small));
    padding: 0 var(--font_size_1); border-radius: var(--spacing_small);
}

.import-1c-settings__button_primary {
    background: var(--accent); color: var(--on-accent);
    box-shadow: var(--shadow);
}

.import-1c-settings__button:disabled {
    opacity: .55; cursor: not-allowed;
}

.import-1c-settings__error {
    padding: var(--font_size_0); border: 1px solid var(--accent-red);
    border-radius: var(--spacing_small); background: var(--bg-2);
    color: var(--accent-red);
}

.import-1c-settings__progress {
    width: 100%; height: var(--font_size_0);
}

.import-1c-settings__progress-caption {
    color: var(--text-3); text-align: right;
}

.import-1c-settings__report {
    display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr));
    gap: var(--spacing_small);
}

.import-1c-settings__report > div {
    display: flex; flex-direction: column;
    gap: calc(var(--spacing_small) / 2); padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-2);
}

.import-1c-settings__report strong {
    color: var(--blue-navy); font-size: var(--font_size_0);
}

.import-1c-settings__report span,
.import-1c-settings__apply-footer > span {
    color: var(--text-3);
}

.import-1c-settings__details {
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--spacing_small);
}

.import-1c-settings__details summary {
    color: var(--blue-navy); font-weight: 600;
    cursor: pointer;
}

.import-1c-settings__tables {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_small); margin-top: var(--font_size_0);
}

.import-1c-settings__tables code {
    padding: calc(var(--spacing_small) / 2) var(--spacing_small);
    border-radius: calc(var(--spacing_small) / 2); background: var(--bg-2);
}

.import-1c-settings__report-table-wrap {
    width: 100%; margin-top: var(--font_size_0);
    overflow-x: auto;
}

.import-1c-settings__report-table {
    width: 100%; min-width: 980px;
    border-collapse: collapse; background: var(--bg-1);
}

.import-1c-settings__report-table th,
.import-1c-settings__report-table td {
    padding: var(--spacing_small); border: 1px solid var(--border);
    color: var(--text-2); text-align: left;
    vertical-align: top;
}

.import-1c-settings__report-table th {
    background: var(--bg-2); color: var(--blue-navy);
}

.import-1c-settings__log {
    max-height: 320px; margin: var(--font_size_0) 0 0;
    overflow: auto; padding: var(--font_size_0);
    background: var(--text-1); color: var(--on-accent);
    white-space: pre-wrap; word-break: break-word;
}

.import-1c-settings__modes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--font_size_0);}

.import-1c-settings__mode {
    display: flex; align-items: flex-start;
    gap: var(--spacing_small); padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); cursor: pointer;
}

.import-1c-settings__mode > span {
    display: flex; flex-direction: column;
    gap: calc(var(--spacing_small) / 2);
}

.import-1c-settings__mode small {
    color: var(--text-3);
}

.import-1c-settings__success {
    border-color: var(--accent-success);
}

@media (orientation: portrait), (max-width: 900px) {
    .import-1c-settings {
        padding-left: var(--spacing_small);
    }
    .import-1c-settings__report, .import-1c-settings__modes {
        grid-template-columns: 1fr;
    }
    .import-1c-settings__button, .import-1c-settings__upload > *,
.import-1c-settings__apply-footer > * {
        width: 100%;
    }
}

/* Файл PhotoUpload.css */

/*  */

.photo-upload-container {
position: relative;
margin: 10px 0;
}

.photo-upload-frame {
width: 100%;
height: 100%;
border: 2px dashed #ddd;
border-radius: 8px;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
background-color: #f9f9f9;}

.photo-upload-frame:hover {
border-color: #007bff;
background-color: #f0f8ff;
}

.photo-upload-disabled .photo-upload-frame {
cursor: not-allowed;
opacity: 0.6;
background-color: #f5f5f5;
}

.photo-upload-disabled .photo-upload-frame:hover {
border-color: #ddd;
background-color: #f5f5f5;
}

.photo-upload-preview {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 6px;
}

.photo-upload-placeholder {
justify-content: center;
color: #666;}

.photo-upload-plus {
font-size: var(--font_size_0);
font-weight: 300;
color: #999;
margin-bottom: 8px;
}

.photo-upload-text {
font-size: var(--font_size_caption);
text-align: center;
max-width: 80%;
}

.photo-upload-remove {
position: absolute;
top: 5px;
right: 5px;
width: 24px;
height: 24px;
border-radius: 50%;
background-color: rgba(255, 107, 107, 0.9);
color: white;
border: none;
font-size: var(--font_size_1);
cursor: pointer;
justify-content: center;
transition: background-color 0.2s;}

.photo-upload-remove:hover {
background-color: #ff6b6b;
}

/* Файл FormField.css */

/* components/FormField/FormField.css */

.form-field-photo-with-rows {
    display: flex; flex-wrap: wrap;
    gap: 10px;
}

.form-field-photo-container {
    flex-shrink: 0;
}

.form-field-photo-rows-container {
    flex: 1;
    gap: 5px;}

.form-field-photo-row {
    flex-direction: row; /* Изменено с column на row */
    gap: 10px;
    /* Расстояние между надписью и полем */
    width: 100%;}

/* Текст в строке с фото. */

.form-field-photo-row .form-field-text {
    min-width: 120px;
    /* Фиксированная ширина для надписей */
    white-space: nowrap; margin: 0;
}

/* Поле ввода в строке с фото. */

.form-field-photo-row .form-field-textarea,
.form-field-photo-row .form-field-select {
    flex: 1; min-width: 150px;
}

/* Остальные стили остаются без изменений */

.form-field-container {
    gap: 16px; margin: 0 auto;
    padding: 5px;}

.form-field-row {
    display: flex; flex-wrap: wrap;
    gap: 2px; align-items: flex-start;
}

.form-field-item {
    flex: 1; min-width: 200px;
}

.form-field-new-row {
    flex-basis: 100%;
}

.form-field-layout-right {
    flex: 1;
}

.form-field-layout-top, .form-field-layout-bottom {
    flex-basis: 100%;
}

.form-field-content {
    display: flex; gap: 10px;
}

.form-field-vertical {
    gap: 5px;
    width: 100%;}

.form-field-left .form-field-content,
.form-field-right .form-field-content {
    flex-direction: row;
}

.form-field-top .form-field-content {
    flex-direction: column; align-items: flex-start;
}

.form-field-bottom .form-field-content {
    flex-direction: column-reverse; align-items: flex-start;
}

.form-field-text {
    font-weight: 500; color: #333;
    min-width: 150px; white-space: nowrap;
    display: block;
}

.form-field-input, .form-field-textarea, .form-field-select {
    border: 1px solid #ddd; font-size: var(--font_size_button);
    flex-grow: 1; padding: 5px;
    border-radius: 4px; min-width: 200px;
}

.form-field-input:focus, .form-field-textarea:focus,
.form-field-select:focus {
    outline: none; border-color: #007bff;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

.form-field-required {
    border-left: 3px solid #ff6b6b;
}

.form-field-disabled {
    background-color: #f5f5f5; cursor: not-allowed;
    opacity: 0.7;
}

.field-disabled .form-field-text {
    color: #585555;
}

.required-asterisk {
    color: #ff6b6b; font-weight: bold;
    margin-left: 4px;
}

.form-field-error {
    font-size: var(--font_size_caption); color: #ff6b6b;
    margin-top: 4px;
}

/* Стили для checkbox и radio */

.form-field-checkbox-wrapper {
    display: flex; align-items: center center;
    gap: 8px;
}

.form-field-checkbox {
    margin: 0;
}

.form-field-checkbox-text {
    color: #333;
    font-weight: 500;
}

/* Стили для textarea */

.form-field-textarea {
    resize: vertical; min-height: 60px;
}

/* Стили для select */

.form-field-select {
    background-color: white; cursor: pointer;
}

/* Файл window_operation_details.css */

.window-operation-details {
    width: 100%; padding: 18px 20px 20px;
    box-sizing: border-box; color: #1f2937;
    background: linear-gradient(180deg, #f7f9fc 0%, #eef3f9 100%);
}

.window-operation-details *, .window-operation-details *::before,
.window-operation-details *::after {
    box-sizing: border-box;
}

.window-operation-details .operation-grid {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) 160px minmax(360px, 1.1fr);
    gap: 18px; align-items: start;
    min-height: 0;
}

.window-operation-details .house-details-files {
    margin-top: calc(var(--font_size_0) * 2);
    background: rgba(255, 255, 255, 0.94); border: 1px solid #d8e2ef;
    border-radius: 18px; padding: 18px;
    box-shadow: 0 10px 28px rgba(32, 70, 117, 0.08);
}

.window-operation-details .house-details-subtitle {
    display: block; font-weight: 700;
    color: #24496f; margin-bottom: 2px;
}

.window-operation-details label {
    color: #37516d; font-weight: 600;
}

.window-operation-details input, .window-operation-details select,
.window-operation-details textarea {
    width: 100%; border: 1px solid #c8d5e6;
    border-radius: 12px; background: #fff;
    color: #1f2937; line-height: 1.3;
    padding: 10px 12px; outline: none;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.window-operation-details input:hover,
.window-operation-details select:hover,
.window-operation-details textarea:hover {
    border-color: #9eb6d1;
}

.window-operation-details input:focus,
.window-operation-details select:focus,
.window-operation-details textarea:focus {
    border-color: #4a90e2; box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.14);
}

.window-operation-details button {
    border: none; border-radius: 999px;
    cursor: pointer; font-weight: 700;
    transition:
        transform 0.16s ease,
        box-shadow 0.16s ease,
        opacity 0.16s ease;
}

.window-operation-details button:hover {
    transform: translateY(-1px);
}

.window-operation-details .house-details-upload {
    display: flex; align-items: center;
    justify-content: center; padding: 14px 16px;
    border: 1.5px dashed #87a9cf; border-radius: 16px;
    background: linear-gradient(180deg, #fafdff 0%, #f2f7fc 100%);
    color: #3f6a92; font-weight: 600;
    text-align: center; cursor: pointer;
    user-select: none;
    transition:
        border-color 0.18s ease,
        background 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.window-operation-details .house-details-upload:hover {
    border-color: #4a90e2;
    background: linear-gradient(180deg, #ffffff 0%, #edf5fc 100%);
    box-shadow: 0 10px 18px rgba(74, 144, 226, 0.12);
    transform: translateY(-1px);
}

.window-operation-details .house-details-upload input[type="file"] {
    display: none;
}

.window-operation-details .empty-text,
.window-operation-details .attachments-empty {
    color: #8a97a8; font-style: italic;
    padding: 10px 2px;
}

@media (max-width: 1200px) {
    .window-operation-details .operation-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .window-operation-details {
        padding: 12px;
    }
    .window-operation-details .house-details-files {
        padding: 14px; border-radius: 14px;
    }
    .window-operation-details input, .window-operation-details select,
.window-operation-details textarea {
        padding: 9px 11px;
    }
    .window-operation-details .attachment-item {
        flex-direction: column; align-items: flex-start;
    }
}

/* Файл auto_payment_orders_panel.css */

.auto-payment-orders-panel .drawer-body {
    padding: var(--spacing_small);
}

.auto-payment-orders-panel__content {
    width: 100%; height: 100%;
    min-height: 0; gap: var(--spacing_small);
    overflow: auto;}

.auto-payment-orders-panel__settings,
.auto-payment-orders-panel__history {
    padding: var(--font_size_0);
}

.auto-payment-orders-panel__header {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: var(--font_size_0);
    flex-wrap: wrap;
}

.auto-payment-orders-panel__header h3,
.auto-payment-orders-panel__history h3 {
    margin: 0;
}

.auto-payment-orders-panel__title {
    display: flex;
    align-items: center;
    gap: var(--spacing_small);
}

.auto-payment-orders-panel__actions {
    display: flex; gap: var(--spacing_small);
    flex-wrap: wrap;
}

.auto-payment-orders-panel__settings-table {
    width: 100%; height: min(42vh, 430px);
    min-height: 240px; margin-top: var(--spacing_small);
}

.auto-payment-orders-panel__settings-pivot {
    height: 100%;
}

.auto-payment-orders-panel__table-wrap {
    width: 100%; max-width: 100%;
    margin-top: var(--spacing_small); overflow: auto;
}

.auto-payment-orders-panel__table {
    width: 100%; min-width: 1180px;
    border-collapse: collapse;
}

.auto-payment-orders-panel__table th,
.auto-payment-orders-panel__table td {
    padding: 6px; border-bottom: 1px solid var(--border);
    text-align: left; vertical-align: middle;
}

.auto-payment-orders-panel__table th {
    position: sticky; top: 0;
    z-index: 2; background: var(--bg-2);
}

.auto-payment-orders-panel__table input:not([type='checkbox']),
.auto-payment-orders-panel__table select {
    width: 100%; min-width: 90px;
    min-height: 32px; box-sizing: border-box;
    padding: 4px 6px; border: 1px solid var(--border);
    border-radius: 6px; background: var(--bg-1);
    color: var(--text-1); font: inherit;
}

.auto-payment-orders-panel__table td:nth-child(5) input {
    min-width: 360px;
}

@media (orientation: portrait), (max-width: 850px) {
    .auto-payment-orders-panel__actions,
.auto-payment-orders-panel__actions > * {
        width: 100%;
    }
}

/* Файл 01_styles.css */

/* Файл purchases_and_sales.css */

.purchases-and-sales-root, .purchases-and-sales-table-page,
.sales-tab-page, .sale-invoice-page, .reconciliation-page {
    display: flex; width: 100%;
    height: 100%; min-width: 0;
    min-height: 0; box-sizing: border-box;
    flex-direction: column; overflow: hidden;
    font-size: var(--font_size_0);
}

.purchases-and-sales-table-page, .sales-tab-page__table {
    flex: 1;
}

.sales-tab-page__toolbar { flex: 0 0 auto; justify-content: flex-end;
}

.sale-invoice-page {
    background: var(--bg-2);
}

.sale-invoice-page__scroll {
    flex: 1;
    gap: 8px; overflow: auto;
}

.sale-invoice-page__actions {
    display: flex; flex: 0 0 auto;
    justify-content: flex-end;
    border-top: 1px solid var(--border); background: var(--bg-1);
}

.sale-invoice-header, .sale-invoice-items {
    padding: 10px;
}

.sale-invoice-header__title, .sale-invoice-items__toolbar,
.sale-invoice-items__totals, .reconciliation-page__summary {
    display: flex; align-items: center;
    justify-content: space-between; gap: 10px;
}

.sale-invoice-header__title h2, .sale-invoice-items__toolbar h3,
.sale-products-panel h3 {
    margin: 0; font-size: var(--font_size_0);
}

.sale-invoice-header__title > div {
    display: flex; gap: 8px;
}

.sale-invoice-header__title label, .sale-invoice-header__grid label,
.sale-products-panel__form-grid label,
.reconciliation-page__toolbar label {
    display: flex; flex-direction: column;
    gap: 3px; min-width: 0;
}

.sale-invoice-header__title label {
    flex-direction: row; align-items: center;
}

.sale-invoice-header__grid, .sale-products-panel__form-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px 10px; margin-top: 9px;
}

.sale-invoice-header input, .sale-invoice-header select,
.sale-products-panel input, .sale-products-panel select,
.reconciliation-page input, .reconciliation-page select,
.sale-invoice-items input, .sale-invoice-items select {
    min-height: 30px; box-sizing: border-box;
    padding: 4px 7px; border: 1px solid var(--border);
    border-radius: 7px; background: var(--bg-1);
    color: var(--text-1); font: inherit;
}

.sale-invoice-items__table-wrap, .reconciliation-page__table-wrap {
    width: 100%; min-height: 0;
    overflow: auto; margin-top: 8px;
}

.sale-invoice-items__table, .reconciliation-page__table {
    width: 100%; border-collapse: collapse;
    background: var(--bg-1);
}

/* Файл 02_styles.css */

.sale-invoice-items__table th, .sale-invoice-items__table td,
.reconciliation-page__table th, .reconciliation-page__table td {
    padding: 5px; border: 1px solid var(--border);
    vertical-align: middle;
}

.sale-invoice-items__table th, .reconciliation-page__table th {
    position: sticky; top: 0;
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_caption); text-align: center;
    z-index: 2;
}

.sale-invoice-items__number, .reconciliation-page__number {
    text-align: right; white-space: nowrap;
}

.sale-invoice-items__remove {
    margin: 0; padding: 3px 7px;
    border: 1px solid var(--accent-red); border-radius: 6px;
    background: var(--bg-1); color: var(--accent-red);
    cursor: pointer;
}

.sale-invoice-items__totals {
    justify-content: flex-end;
}

.sale-products-panel .drawer-body {
    padding: 7px;
}

.sale-products-panel__content {
    width: 100%; height: 100%;
    min-height: 0;
    grid-template-columns: minmax(260px, .8fr) minmax(360px, 1.2fr);
    gap: 8px;}

.sale-products-panel__list, .sale-products-panel__form {
    display: flex; min-height: 0;
    flex-direction: column; gap: 8px;
    padding: 9px; overflow: hidden;
}

.sale-products-panel__items {
    gap: 5px;
    overflow: auto;}

.sale-products-panel__item {
    display: flex; align-items: flex-start;
    gap: 7px; padding: 7px;
    border: 1px solid var(--border); border-radius: 7px;
    background: var(--bg-1); cursor: pointer;
}

.sale-products-panel__item > span {
    display: flex; flex-direction: column;
    gap: 2px;
}

.sale-products-panel__item small {
    color: var(--text-3);
}

.reconciliation-page__toolbar {
    display: flex; flex: 0 0 auto;
    align-items: flex-end; gap: 8px;
    padding: 8px; flex-wrap: wrap;
}

.reconciliation-page__toolbar label:first-child {
    min-width: 280px; flex: 1;
}

.reconciliation-page__actions {
    display: flex; gap: 6px;
    margin-left: auto;
}

.reconciliation-page__content {
    min-height: 0; flex: 1;
    gap: 8px; padding: 9px;
    overflow: hidden;}

.reconciliation-page__summary {
    justify-content: flex-start; flex-wrap: wrap;
}

/* Файл 03_styles.css */

.reconciliation-page__summary span {
    padding: 5px 8px; border-radius: 7px;
    background: var(--bg-2);
}

@media (max-width: 900px) {
    .sale-invoice-header__grid, .sale-products-panel__form-grid,
.sale-products-panel__content {
        grid-template-columns: 1fr;
    }
    .sale-products-panel__content {
        overflow: auto;
    }
    .sale-products-panel__list, .sale-products-panel__form {
        overflow: visible;
    }
    .reconciliation-page__actions {
        width: 100%; margin-left: 0;
        flex-wrap: wrap;
    }
}

/* Компактная форма счёта-фактуры в виде единого документа. */

.sale-invoice-page {
    font-size: var(--font_size_caption);
}

.sale-invoice-page__scroll {
    padding: 6px;
}

.sale-invoice-document {
    display: flex;
    flex-direction: column; padding: 10px;
    border: 1px solid var(--border); background: var(--bg-1);
}

.sale-invoice-header__title {
    padding-bottom: 7px; border-bottom: 2px solid var(--text-1);
}

.sale-invoice-header__title h2 {
    font-size: var(--font_size_1);
}

.sale-invoice-header__title label, .sale-invoice-header__grid label {
    font-size: var(--font_size_caption);
}

.sale-invoice-header__grid { margin-top: 7px;
    padding-bottom: 8px;
}

.sale-invoice-header input, .sale-invoice-header select,
.sale-invoice-document input, .sale-invoice-document select {
    min-height: 26px; padding: 2px 5px;
    border-radius: 4px; font-size: var(--font_size_caption);
}

.sale-invoice-items__toolbar {
    position: relative; padding: 7px 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.sale-invoice-items__toolbar h3 {
    font-size: var(--font_size_button);
}

.sale-invoice-items__table-wrap {
    margin-top: 7px;
}

.sale-invoice-items__table {
    table-layout: auto;
}

.sale-invoice-items__table th, .sale-invoice-items__table td {
    padding: 3px 4px; font-size: var(--font_size_caption);
}

.sale-invoice-items__table th {
    min-width: 76px; white-space: normal;
}

.sale-invoice-items__table th:first-child,
.sale-invoice-items__table td:first-child {
    min-width: 220px;
}

.sale-invoice-items__table input,
.sale-invoice-items__table select {
    min-height: 24px;
    padding: 1px 4px; font-size: var(--font_size_0);
}

.sale-invoice-items__table td:first-child input {
    min-width: 210px;
}

.sale-invoice-items__totals {
    margin-top: 7px; padding-top: 7px;
    border-top: 2px solid var(--text-1); font-size: var(--font_size_caption);
}

.sale-invoice-page__actions { padding: 6px;
}

/* Файл 04_styles.css */

.sale-invoice-columns__toggle {
    min-height: 28px; margin: 0;
    padding: 4px 9px; border: 1px solid var(--border);
    border-radius: 7px; background: var(--bg-1);
    color: var(--accent-dark); font: inherit;
    font-weight: 700; cursor: pointer;
}

.sale-invoice-columns__panel {
    position: absolute; top: calc(100% + 5px);
    right: 0; width: min(390px, 78vw);
    padding: 8px; border: 1px solid var(--border);
    background: var(--bg-1);
    z-index: 20;
}

.sale-invoice-columns__header {
    justify-content: space-between; gap: 8px;
    margin-bottom: 6px;}

.sale-invoice-columns__header button {
    margin: 0; padding: 2px 6px;
    border: 0; background: transparent;
    color: var(--text-1); cursor: pointer;
}

.sale-invoice-columns__list {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px 8px;
}

.sale-invoice-columns__list label {
    display: flex; min-width: 0;
    align-items: flex-start; gap: 5px;
    font-size: var(--font_size_caption);
}

.sale-invoice-columns__list input {
    min-height: 0; margin-top: 2px;
}

@media (max-width: 720px) {
    .sale-invoice-columns__list {
        grid-template-columns: 1fr;
    }
}

/* Компактное расположение кнопки и таблицы списка реализаций. */

.sales-tab-page {
    gap: 2px; padding: 0 6px 6px;
}

.sales-tab-page__toolbar {
    min-height: 0; margin: 0;
    padding: 0 0 4px; border: 0;
    border-radius: 0; background: transparent;
    box-shadow: none;
}

.sales-tab-page__table { margin: 0;
}

/* Реквизиты счёта-фактуры располагаются одним столбцом. */

.sale-invoice-header__grid { justify-content: start;
}

.sale-invoice-header__wide {
    grid-column: auto;
}

/* Таблица счёта-фактуры использует общий размер шрифта приложения. */

.sale-invoice-items__table th, .sale-invoice-items__table td,
.sale-invoice-items__table input, .sale-invoice-items__table select {
    font-size: var(--font_size_0);
}

.sale-invoice-page--loading {
    align-items: center; justify-content: center;
    color: var(--text-3); font-size: var(--font_size_0);
}

/* Компактные поля акта сверки и обычный размер шрифта таблицы. */

.reconciliation-page__toolbar label,
.reconciliation-page__toolbar input,
.reconciliation-page__toolbar select {
    font-size: var(--font_size_caption);
}

.reconciliation-page__toolbar input,
.reconciliation-page__toolbar select {
    min-height: 28px; padding: 3px 6px;
}

.reconciliation-page__table th, .reconciliation-page__table td {
    font-size: var(--font_size_0);
}

@media (orientation: portrait), (max-width: 900px) {
    .sale-invoice-header__grid {
        grid-template-columns: 1fr;
    }
}

/* Заголовок счёта-фактуры: номер и дата находятся слева и равны заголовку по
 * размеру. */

.sale-invoice-header__title > div {
    align-items: center; justify-content: flex-start;
    margin-left: 0;
}

/* Файл 05_styles.css */

.sale-invoice-header__title h2, .sale-invoice-header__title label,
.sale-invoice-header__title input {
    font-size: var(--font_size_1); font-weight: 700;
}

.sale-invoice-header__title input {
    min-height: 34px;
}

.sale-invoice-header__title label:first-child input {
    width: 220px;
}

.sale-invoice-header__title label:last-child input {
    width: 185px;
}

/* В альбомном режиме поле располагается справа от наименования реквизита. */

.sale-invoice-header__grid label {
    font-size: var(--font_size_0);
}

.sale-invoice-header__grid input,
.sale-invoice-header__grid select {
    font-size: var(--font_size_0);
}

@media (orientation: portrait), (max-width: 900px) {
    .sale-invoice-header__grid {
        width: 100%; min-width: 0;
    }
    .sale-invoice-header__grid label {
        display: flex; align-items: stretch;
        flex-direction: column; gap: 3px;
    }
    .sale-invoice-header__title > div {
        width: 100%; flex-wrap: wrap;
    }
}

/* Акт сверки без лишних вертикальных промежутков. */

.reconciliation-page {
    gap: 3px; padding: 0 6px 6px;
}

.reconciliation-page__toolbar label:first-child,
.reconciliation-page__toolbar label:nth-child(2) {
    min-width: 230px; flex: 1 1 260px;
}

.reconciliation-page__content.block_1 {
    gap: 4px;
}

.reconciliation-page__table-wrap {
    flex: 1 1 auto; margin-top: 0;
}

/* Счёт-фактура полностью помещается в контейнер вкладки. */

.sale-invoice-document {
    max-width: 100%;
}

.sale-invoice-columns__section-title {
    display: block; margin: 9px 0 5px;
    padding-top: 7px; border-top: 1px solid var(--border);
    font-size: var(--font_size_caption);
}

@media (max-width: 1050px) {
    .sale-invoice-header__grid {
        grid-template-columns: 1fr;
    }
}

/* Файл 06_styles.css */

/* Форма реализации повторяет компоновку бумажного счёта-фактуры. */

.sale-invoice-page__scroll {
    display: block;
    overflow-x: hidden;
    overscroll-behavior: contain;
}

.sale-invoice-document {
    width: 100%; flex: 0 0 auto;
    overflow: visible;
}

.sale-invoice-header__title {
    display: flex; align-items: center;
    justify-content: space-between; flex-wrap: nowrap;
    gap: 12px;
}

.sale-invoice-header__identity {
    display: flex; min-width: 0;
    align-items: center; flex-wrap: wrap;
    gap: 8px;
}

.sale-invoice-header__identity h2 {
    margin: 0; white-space: nowrap;
}

.sale-invoice-header__identity label {
    display: flex; align-items: center;
    flex-direction: row; gap: 5px;
    font-size: var(--font_size_0); font-weight: 600;
}

.sale-invoice-header__identity label:first-of-type input {
    width: 190px;
}

.sale-invoice-header__identity label:last-of-type input {
    width: 155px;
}

.sale-invoice-header__grid {
    display: grid; width: 100%;
    min-width: 0; max-width: 100%;
    grid-template-columns: 1fr; gap: 4px;
}

.sale-invoice-header__grid label {
    display: grid; width: 100%;
    grid-template-columns: minmax(260px, 34%) minmax(0, 1fr);
    align-items: center; gap: 8px;
}

.sale-invoice-header__grid input, .sale-invoice-header__grid select {
    width: 100%; min-width: 0;
}

.sale-invoice-items__table-wrap {
    min-height: 120px; overflow-x: auto;
    overflow-y: visible; scrollbar-gutter: stable;
}

.sale-invoice-items__table {
    width: max-content; min-width: 100%;
    max-width: none;
}

@media (max-width: 900px), (orientation: portrait) {
    .sale-invoice-header__title {
        align-items: flex-start; flex-wrap: wrap;
    }
    .sale-invoice-header__identity {
        width: 100%;
    }
    .sale-invoice-header__grid label {
        display: flex; align-items: stretch;
        flex-direction: column; gap: 3px;
    }
}

/* Прокрутка охватывает всю форму реализации, включая таблицу товаров. */

.sale-invoice-page__scroll {
    height: 100%; max-height: 100%;
    overflow-y: auto;
}

.sale-invoice-document {
    min-height: auto; margin: 0;
}

.sale-invoice-items__toolbar, .sale-invoice-items__table-wrap,
.sale-invoice-items__totals {
    flex: 0 0 auto;
}

.reconciliation-page__mode {
    flex: 0 0 170px;
}

/* Панель продаж и действия сформированной реализации. */

.sales-tab-page__toolbar {
    gap: var(--spacing_small); flex-wrap: wrap;
}

.sale-invoice-page__actions {
    align-items: center; gap: var(--spacing_small);
    flex-wrap: wrap;
}

.sale-invoice-page__format {
    gap: var(--spacing_small);}

/* Файл 07_styles.css */

.sale-invoice-page__format select {
    min-height: 32px; box-sizing: border-box;
    padding: 3px var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1);
}

/* Компактные столбцы строк реализации и адаптивное карточное представление. */

.sale-invoice-items__table-wrap {
    width: calc(100% + 8px); max-width: calc(100% + 8px);
    margin-right: -8px;
}

.sale-invoice-items__table th, .sale-invoice-items__table td {
    box-sizing: border-box;
}

.sale-invoice-items__table input, .sale-invoice-items__table select {
    width: 100%; min-width: 0;
    box-sizing: border-box;
}

.sale-invoice-items__column--name {
    width: 240px; min-width: 240px !important;
}

.sale-invoice-items__column--article {
    width: 90px; min-width: 90px !important;
}

.sale-invoice-items__column--product-code {
    width: 110px; min-width: 110px !important;
}

.sale-invoice-items__column--unit-code {
    width: 76px; min-width: 76px !important;
}

.sale-invoice-items__column--unit {
    width: 78px; min-width: 78px !important;
}

.sale-invoice-items__column--quantity {
    width: 94px; min-width: 94px !important;
}

.sale-invoice-items__column--price {
    width: 102px; min-width: 102px !important;
}

.sale-invoice-items__column--excise,
.sale-invoice-items__column--vat-rate,
.sale-invoice-items__column--country-code {
    width: 96px; min-width: 96px !important;
}

.sale-invoice-items__column--amount {
    width: 128px; min-width: 128px !important;
}

.sale-invoice-items__column--country,
.sale-invoice-items__column--customs {
    width: 170px; min-width: 170px !important;
}

.sale-invoice-items__column--actions {
    width: 42px; min-width: 42px !important;
    text-align: center;
}

@media (orientation: portrait), (max-width: 760px) {
    .sale-invoice-items__table-wrap {
        width: 100%; max-width: 100%;
        margin-right: 0; overflow: visible;
    }
    .sale-invoice-items__table, .sale-invoice-items__table tbody {
        display: block; width: 100%;
        min-width: 0;
    }
    .sale-invoice-items__table thead {
        display: none;
    }
    .sale-invoice-items__table tbody tr:not(.sale-invoice-items__empty-row) {
        display: grid; width: 100%;
        box-sizing: border-box; grid-template-columns: 1fr;
        gap: 5px; margin-bottom: var(--spacing_small);
        padding: var(--spacing_small); border: 1px solid var(--border);
        border-radius: var(--spacing_small); background: var(--bg-1);
    }
    .sale-invoice-items__table tbody td {
        display: grid; width: 100% !important;
        min-width: 0 !important;
        grid-template-columns: minmax(120px, 38%) minmax(0, 1fr);
        align-items: center; gap: var(--spacing_small);
        padding: 3px 0; border: 0;
        text-align: left;
    }
    .sale-invoice-items__table tbody td::before {
        content: attr(data-label); color: var(--text-3);
        font-weight: 700;
    }
    .sale-invoice-items__table tbody td.sale-invoice-items__column--actions {
        display: flex; justify-content: flex-end;
    }
    .sale-invoice-items__table tbody
td.sale-invoice-items__column--actions::before {
        display: none;
    }
    .sale-invoice-items__empty-row, .sale-invoice-items__empty-row td {
        display: block; width: 100%;
    }
    .sale-invoice-items__empty-row td::before {
        display: none;
    }
}

/* Файл 08_styles.css */

.purchases-and-sales-table-page__toolbar { flex: 0 0 auto;
    justify-content: flex-end; padding: var(--spacing_small);
}

/* Файл purchases_and_sales.css */

.purchases_and_sales_house_download {
    display: flex; justify-content: flex-end;
    padding: 0 0 var(--spacing_small);
}

/* Файл 01_styles.css */

/* Файл accounting.css */

/* Файл accounting.css */

.accounting-report-page {
    gap: 6px; padding: 2px 6px 6px;
    font-size: var(--font_size_button);
}

.accounting-report-page__toolbar {
    display: flex; flex: 0 0 auto;
    align-items: center; justify-content: space-between;
    gap: 8px; padding: 6px 10px;
}

.accounting-report-page__toolbar label {
    display: flex; align-items: center;
    gap: 8px; font-size: var(--font_size_0);
}

.accounting-report-page__toolbar > div {
    display: flex; flex-wrap: wrap;
    justify-content: flex-end; gap: 8px;
}

.accounting-report-page__status {
    display: flex; min-height: 30px;
    box-sizing: border-box; flex: 0 0 auto;
    flex-wrap: wrap; align-items: center;
    gap: 4px 16px; padding: 5px 10px;
    border: 1px solid var(--border); border-radius: 10px;
    background: var(--bg-1); font-size: var(--font_size_caption);
}

.accounting-report-page__status--ok {
    border-color: var(--accent);
}

.accounting-report-page__status--warning {
    border-color: var(--accent-yellow-border);
}

.accounting-report-page__status span:first-child {
    font-weight: 700;
}

.accounting-report-page__warnings {
    flex: 0 0 auto; gap: 4px;
    padding: 7px 10px; border-color: var(--accent-yellow-border);
    font-size: var(--font_size_caption);}

.accounting-report-page__scroll {
    overflow-y: auto; padding-right: 4px;
}

.accounting-report {
    padding: 10px;
}

.accounting-report h2, .accounting-report h3 {
    margin: 0;
}

.accounting-report h2 {
    margin-bottom: 10px; font-size: var(--font_size_1);
}

.accounting-report h3 {
    padding: 8px 10px; border-radius: 10px 10px 0 0;
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_0); text-align: center;
}

/* Файл 02_styles.css */

.accounting-report__balance-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;}

.accounting-report__columns {
    min-height: 32px; grid-template-columns: minmax(0, 1fr) 70px 130px;
    align-items: center; gap: 8px;
    padding: 5px 10px; border: 1px solid var(--border);
    border-top: 0; background: var(--bg-2);
    color: var(--accent-dark); font-size: var(--font_size_caption);
    font-weight: 700;}

.accounting-report__columns span:nth-child(2) {
    text-align: center;
}

.accounting-report__columns span:last-child {
    text-align: right;
}

.accounting-report__section {
    overflow: hidden; margin-bottom: 8px;
    border: 1px solid var(--border); border-radius: 10px;
}

.accounting-report__section-title {
    padding: 7px 10px; background: var(--bg-2);
    color: var(--accent-dark); font-weight: 700;
}

.accounting-report__row {
    width: 100%; min-height: 38px;
    grid-template-columns: minmax(0, 1fr) 70px 130px; align-items: center;
    gap: 8px; margin: 0;
    padding: 6px 10px; border: 0;
    border-top: 1px solid var(--border); border-radius: 0;
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_caption); text-align: left;
    cursor: pointer;}

.accounting-report__row:hover {
    background: var(--bg-2); color: var(--text-1);
    transform: none;
}

.accounting-report__row--total {
    background: rgba(47, 117, 181, 0.1); font-weight: 700;
}

.accounting-report__row--subsection {
    padding-left: 22px; font-style: italic;
}

.accounting-report__name {
    min-width: 0; overflow-wrap: anywhere;
}

.accounting-report__code {
    min-width: 0; color: var(--text-2);
    text-align: center;
}

.accounting-report__value {
    min-width: 0; text-align: right;
    white-space: nowrap;
}

.accounting-entries {
    gap: 4px; padding: 4px 6px 6px;
}

.accounting-entries__header {
    display: flex; min-height: 30px;
    flex: 0 0 auto;
    gap: 8px 18px; padding: 4px 8px;
    font-size: var(--font_size_caption);
}

.accounting-entries__header span:first-child {
    font-weight: 700;
}

.accounting-entries__header span:last-child {
    color: var(--text-2);
}

.accounting-line-editor-panel .drawer-body,
.accounting-chart-panel .drawer-body,
.accounting-entry-source-panel .drawer-body {
    padding: 8px;
}

/* Файл 03_styles.css */

.accounting-line-editor {
    width: 100%; height: 100%;
    min-height: 0; grid-template-columns: 280px minmax(0, 1fr);
    gap: 7px;
    overflow: hidden;}

.accounting-line-editor__tools {
    display: flex; min-height: 0;
    flex-direction: column; gap: 6px;
    padding: 7px; overflow-y: auto;
    font-size: var(--font_size_caption);
}

.accounting-line-editor__standard {
    gap: 4px; padding-bottom: 4px;
    border-bottom: 1px solid var(--border);}

.accounting-line-editor__standard small {
    color: var(--text-2); line-height: 1.25;
}

.accounting-line-editor__switch, .accounting-line-editor__form-actions {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.accounting-line-editor__tools button {
    min-height: 30px; margin: 0;
    padding: 4px 7px; border: 1px solid var(--border);
    border-radius: 7px; background: var(--bg-1);
    color: var(--accent-dark); font-size: var(--font_size_caption);
    cursor: pointer;
}

.accounting-line-editor__tools button.active,
.accounting-line-editor__tools button.primary {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.accounting-line-editor__tools label {
    display: flex; flex-direction: column;
    gap: 4px;
}

.accounting-line-editor__tools input,
.accounting-line-editor__tools select,
.accounting-line-editor__tools textarea {
    width: 100%; min-height: 29px;
    box-sizing: border-box; padding: 4px 6px;
    border: 1px solid var(--border); border-radius: 7px;
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_caption);
}

.accounting-line-editor__tools textarea {
    min-height: 56px; resize: vertical;
}

.accounting-line-editor__canvas {
    min-width: 0; min-height: 0;
    overflow: auto; padding: 2px;
}

.accounting-line-editor__balance {
    grid-template-columns: repeat(2, minmax(330px, 1fr));
    gap: 7px;}

.accounting-line-editor__column {
    min-width: 0;
}

.accounting-line-editor__column > h3 {
    margin: 0 0 8px; padding: 5px 7px;
    border-radius: 7px; background: var(--accent);
    color: var(--on-accent); font-size: var(--font_size_caption);
    text-align: center;
}

.accounting-line-editor__section {
    overflow: hidden; margin-bottom: 5px;
    border: 1px solid var(--border); border-radius: 7px;
    background: var(--bg-1);
}

.accounting-line-editor__section-title {
    width: 100%; justify-content: space-between;
    gap: 8px; margin: 0;
    padding: 5px 7px; border: 0;
    border-radius: 0; background: var(--bg-2);
    color: var(--accent-dark); font-size: var(--font_size_caption);
    font-weight: 700; text-align: left;
    cursor: pointer;}

/* Файл 04_styles.css */

.accounting-line-editor__line {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; gap: 8px;
    border-top: 1px solid var(--border); background: var(--bg-1);
}

.accounting-line-editor__line--active {
    background: rgba(47, 117, 181, 0.12);
}

.accounting-line-editor__line > button {
    display: flex; width: 100%;
    min-width: 0; align-items: center;
    justify-content: space-between; gap: 8px;
    margin: 0; padding: 5px 7px;
    border: 0; border-radius: 0;
    background: transparent; color: var(--text-1);
    font-size: var(--font_size_caption); text-align: left;
    cursor: pointer;
}

.accounting-line-editor__line:hover {
    background: rgba(47, 117, 181, 0.08);
}

.accounting-line-editor__line small {
    flex: 0 0 auto; color: var(--text-2);
}

.accounting-line-editor__visibility {
    gap: 4px; padding-right: 7px;
    color: var(--text-2); font-size: var(--font_size_caption);
    white-space: nowrap;}

.accounting-line-editor__visibility input,
.accounting-line-editor__form-visibility input {
    width: auto; min-height: 0;
    margin: 0;
}

.accounting-line-editor__form-visibility {
    flex-direction: row !important;
    gap: 7px !important;}

.accounting-chart {
    width: 100%; height: 100%;
    min-height: 0;
    gap: 6px;}

.accounting-chart__notice {
    flex: 0 0 auto; padding: 8px 10px; font-weight: 700;
}

.accounting-journal {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    box-sizing: border-box; align-content: flex-start;
    gap: 6px; overflow-x: hidden;
    overflow-y: auto;
    padding: 2px 6px 6px;}

.accounting-journal__form {
    flex: 0 0 auto; padding: 6px 8px;
}

.accounting-journal__form-header {
    display: flex; align-items: center;
    justify-content: space-between; gap: 8px;
    margin-bottom: 4px;
}

.accounting-journal__form-header > div {
    display: flex; min-width: 0;
    flex-direction: column; gap: 2px;
}

.accounting-journal__form-header strong {
    font-size: var(--font_size_button);
}

.accounting-journal__form-header span {
    color: var(--text-2); font-size: var(--font_size_caption);
}

/* Файл 05_styles.css */

.accounting-journal__fields {
    display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr));
    gap: 4px 7px;
}

.accounting-journal__fields label {
    display: flex; min-width: 0;
    flex-direction: column; gap: 2px;
    font-size: var(--font_size_caption);
}

.accounting-journal__fields input, .accounting-journal__fields select {
    width: 100%; min-height: 27px;
    box-sizing: border-box; padding: 2px 6px;
    border: 1px solid var(--border); border-radius: 6px;
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_caption);
}

.accounting-journal__wide {
    grid-column: span 2;
}

.accounting-journal__table {
    width: 100%; height: clamp(400px, 58vh, 620px);
    min-height: 400px; flex: 0 0 auto;
}

.accounting-entry-source {
    padding: 8px;
}

.accounting-entry-source__notice {
    margin-bottom: 7px; color: var(--text-2);
}

.accounting-entry-source__grid {
    overflow: hidden; border: 1px solid var(--border);
    border-radius: 8px;}

.accounting-entry-source__row {
    grid-template-columns: minmax(170px, 34%) minmax(0, 1fr); gap: 8px;
    padding: 6px 8px;
    border-bottom: 1px solid var(--border);}

.accounting-entry-source__row:last-child {
    border-bottom: 0;
}

.accounting-entry-source__row strong {
    color: var(--accent-dark);
}

.accounting-entry-source__row span {
    min-width: 0; overflow-wrap: anywhere;
}

.accounting-entry-source__empty {
    padding: 20px; color: var(--text-2);
    text-align: center;
}

.accounting-entry-source-panel--sale .drawer-body {
    overflow: hidden;
}

@media (max-width: 1250px) {
    .accounting-journal__fields {
        grid-template-columns: repeat(3, minmax(150px, 1fr));
    }
}

@media (max-width: 960px) {
    .accounting-report__balance-grid, .accounting-line-editor__balance {
        grid-template-columns: 1fr;
    }
    .accounting-line-editor {
        grid-template-columns: 1fr; overflow: auto;
    }
    .accounting-line-editor__tools, .accounting-line-editor__canvas {
        overflow: visible;
    }
}

@media (orientation: portrait), (max-width: 720px) {
    .accounting-report-page__toolbar {
        align-items: stretch; flex-direction: column;
    }
    .accounting-report-page__toolbar > div {
        justify-content: flex-start;
    }
    .accounting-report__columns, .accounting-report__row {
        grid-template-columns: minmax(0, 1fr) 60px 92px;
    }
    .accounting-entries__header {
        align-items: flex-start; flex-direction: column;
        gap: 2px;
    }
    .accounting-journal__fields {
        grid-template-columns: 1fr;
    }
    .accounting-journal__wide {
        grid-column: auto;
    }
    .accounting-journal__table {
        height: 60vh; min-height: 360px;
    }
    .accounting-entry-source__row {
        grid-template-columns: 1fr; gap: 2px;
    }
}

/* Файл 06_styles.css */

/* Настройка столбцов проводок и задолженность поставщикам. */

.accounting-journal__table-toolbar {
    display: flex; flex: 0 0 auto;
    justify-content: flex-end; padding: 0 4px 4px;
}

.accounting-entries__header {
    align-items: center;
}

.accounting-entries__header > :last-child {
    margin-left: auto;
}

.accounting-supplier-debts {
    height: 100%;
}

/* Раскрытие детализации кредиторской задолженности. */

.accounting-report__expand-marker {
    display: inline-block; width: 16px;
    margin-right: 3px; color: var(--accent);
    font-weight: 700;
}

/* Файл 07_styles.css */

.accounting-report-page__status {
    width: 100%; margin: 0;
    color: var(--text-1); font-family: var(--font_family_interface);
    line-height: 1.35; text-align: left;
    cursor: pointer;
}

.accounting-report-page__status:hover {
    background: var(--bg-2); color: var(--text-1);
    transform: none;
}

.accounting-opening-balances { width: 100%;
    height: 100%; min-width: 0;
    min-height: 0; box-sizing: border-box; gap: var(--spacing_small);
    overflow: hidden; padding: 2px 6px 6px;
    color: var(--text-1); font-family: var(--font_family_interface);
    font-size: var(--font_size_caption);
}

.accounting-opening-balances__toolbar {
    display: flex; flex: 0 0 auto;
    flex-wrap: wrap; align-items: flex-end;
    justify-content: space-between; gap: var(--spacing_small);
    margin: 0; padding: var(--spacing_small);
}

.accounting-opening-balances__settings,
.accounting-opening-balances__actions {
    display: flex; flex-wrap: wrap;
    align-items: flex-end; gap: var(--spacing_small);
}

.accounting-opening-balances__settings label {
    display: flex; min-width: 180px;
    flex-direction: column; gap: calc(var(--spacing_small) / 2);
    color: var(--text-2);
}

.accounting-opening-balances__settings input,
.accounting-opening-balances__settings select {
    width: 100%; min-height: var(--button-min-height);
    box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-family: var(--font_family_interface);
    font-size: var(--font_size_caption);
}

.accounting-opening-balances__summary {
    width: 100%; min-height: var(--button-min-height);
    box-sizing: border-box; flex: 0 0 auto;
    flex-wrap: wrap;
    gap: calc(var(--spacing_small) / 2) calc(var(--spacing_small) * 2);
    margin: 0;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-family: var(--font_family_interface);
    font-size: var(--font_size_caption); text-align: left;
    cursor: pointer;}

.accounting-opening-balances__summary:hover {
    background: var(--bg-2); color: var(--text-1);
    transform: none;
}

.accounting-opening-balances__summary--ok {
    border-color: var(--accent);
}

.accounting-opening-balances__summary--warning {
    border-color: var(--accent-yellow-border);
}

.accounting-opening-balances__table-wrap { margin: 0;
    overflow: auto; padding: 0;
}

.accounting-opening-balances__table {
    width: max-content; min-width: 100%;
    border-collapse: collapse; background: var(--bg-1);
}

.accounting-opening-balances__table th,
.accounting-opening-balances__table td {
    min-width: 112px; box-sizing: border-box;
    padding: calc(var(--spacing_small) / 2);
    border-bottom: 1px solid var(--border); text-align: left;
    vertical-align: top;
}

.accounting-opening-balances__table th {
    position: sticky; z-index: 2;
    top: 0; background: var(--table-header-background);
    color: var(--table-header-text); font-size: var(--font_size_caption);
    white-space: nowrap;
}

.accounting-opening-balances__table input,
.accounting-opening-balances__table select {
    width: 100%; min-height: var(--button-min-height);
    box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-family: var(--font_family_interface);
    font-size: var(--font_size_caption);
}

.accounting-opening-balances__table small {
    display: block; margin-top: calc(var(--spacing_small) / 2);
    color: var(--accent-orange-text); line-height: 1.25;
}

.accounting-opening-balances__table td:last-child,
.accounting-opening-balances__table th:last-child,
.accounting-opening-balances__check {
    min-width: 48px; width: 48px;
    text-align: center;
}

.accounting-opening-balances__check input {
    width: auto; min-height: 0;
    margin: calc(var(--spacing_small) / 2) 0 0;
}

.accounting-opening-balances__table td:last-child button {
    min-width: var(--button-min-height); min-height: var(--button-min-height);
    margin: 0; padding: var(--button-padding-block);
}

@media (orientation: portrait), (max-width: 720px) {
    .accounting-opening-balances {
        height: auto; min-height: 100%;
        overflow: visible;
    }
    .accounting-opening-balances__toolbar,
.accounting-opening-balances__settings,
.accounting-opening-balances__actions {
        align-items: stretch; flex-direction: column;
    }
    .accounting-opening-balances__settings label {
        min-width: 0;
    }
    .accounting-opening-balances__table-wrap {
        min-height: 55vh;
    }
}

/* Внутренние вкладки бухучёта начинаются сразу под строкой вкладок. */

[id^='tab-container-accounting_house_'] >
    .tab-content-wrapper > .tab-content-item.active {
    align-items: stretch; justify-content: flex-start;
}

.accounting-report-page, .accounting-entries, .accounting-journal,
.accounting-opening-balances {
    padding-top: 0;
}

.accounting-report-page__scroll {
    gap: var(--spacing_small);
}

.accounting-journal__form-actions {
    flex: 0 0 auto; flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--spacing_small);}

/* Файл accounting.css */

/* Файл data_export_panel.css */

.drawer-panel.data-export-driver-panel > .drawer-body {
    padding: var(--tab-sidebar-edge-padding);
}

.data_export_panel {
    display: flex; flex-direction: column;
    gap: var(--spacing_small);
    min-width: 0; min-height: 0;
}

.data_export_panel__tabs {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
}

.data_export_panel__tabs > .tab-widget-container
> .tab-container-left > .tab-nav-left {
    padding-left: var(--tab-sidebar-edge-padding);
    padding-right: var(--tab-sidebar-edge-padding);
}

.data_export_panel__source {
    display: flex; align-items: center;
    gap: var(--spacing_small); margin-bottom: 0;
}

.data_export_panel__source input {
    flex: 0 0 auto; margin: 0;
}

.data_export_panel__source .block_1__title {
    margin: 0;
}

.data_export_panel__config {
    overflow: auto;
}

@media (orientation: landscape) {
    .drawer-panel.data-export-driver-panel {
        width: 92%;
    }
}

.data_export_feature_item {
    display: flex; flex-direction: column;
    gap: var(--spacing_small); cursor: pointer;
}

.data_export_rule_row,
.data_export_computed_row,
.data_export_join_row,
.data_export_template_row,
.data_export_preview_counts {
    display: flex; align-items: center;
    gap: var(--spacing_small); flex-wrap: wrap;
}

.data_export_rule_row > select,
.data_export_computed_row > input,
.data_export_computed_row > select,
.data_export_join_row > select,
.data_export_template_row > input,
.data_export_template_row > select {
    flex: 1 1 auto; min-width: 0;
}

.data_export_rule_value {
    display: flex; flex: 1 1 auto;
    align-items: center; gap: var(--spacing_small);
    min-width: 0;
}

.data_export_rule_value input,
.data_export_rule_value select {
    flex: 1 1 auto; min-width: 0;
}

.data_export_panel__config tr[draggable="true"] {
    cursor: grab;
}

.data_export_panel__config tr[draggable="true"]:active {
    cursor: grabbing;
}

/* Файл tab_accruals_and_payments.css */

.accruals-workspace {
    grid-template-columns: 126px minmax(0, 1fr); gap: 8px;
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    overflow: hidden;
    box-sizing: border-box;}

.accruals_left_panel {
    gap: 10px; width: 126px;
    max-width: 126px; height: 100%;
    min-height: 0;
    overflow: hidden;}

.accruals_left_dropdowns {
    display: flex; flex: 0 0 auto;
    flex-direction: row; gap: 5px;
}

.accruals_left_dropdowns > * {
    flex: 1; min-width: 0;
}

.accruals_left_filter {
    min-width: 0;
}

.accruals-table-area {
    min-width: 0; min-height: 0;
    overflow: hidden;}

.accruals-table-area > * {
    flex: 1 1 auto; min-width: 0;
    min-height: 0;
}

@media (orientation: portrait) {
    .accruals-workspace {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(0, 1fr); gap: 5px;
    }
    .accruals_left_panel {
        display: grid;
        grid-template-columns: auto minmax(105px, 0.7fr) minmax(125px, 1fr);
        align-items: start; gap: 5px;
        width: 100%; max-width: none;
        height: auto; overflow: visible;
    }
    .accruals_left_dropdowns {
        align-self: start; white-space: nowrap;
    }
    .accruals_left_filter {
        width: 100%; min-width: 0;
    }
    .accruals_left_filter > * {
        width: 100% !important;
    }
}

@media (max-width: 560px) and (orientation: portrait) {
    .accruals_left_panel {
        grid-template-columns: auto minmax(90px, 0.8fr) minmax(105px, 1fr);
    }
}

@media (min-width: 2200px) {
    .accruals-workspace {
        grid-template-columns: 150px minmax(0, 1fr);
    }
    .accruals_left_panel {
        width: 150px; max-width: 150px;
    }
}

/* Файл universal_chart.css */

.universal-chart--empty {
    min-height: 180px; place-items: center;
    color: var(--text-3);}

.universal-chart--donut {
    display: grid; grid-template-columns: minmax(170px, 220px) 1fr;
    gap: 22px; align-items: center;
}

.universal-chart__donut-wrap {
    position: relative; width: min(220px, 100%);
    aspect-ratio: 1;
}

.universal-chart__donut-svg {
    width: 100%; height: 100%;
    overflow: visible; filter: drop-shadow(0 10px 22px rgba(31, 53, 84, 0.08));
}

.universal-chart__donut-track {
    stroke: var(--bg-2);
}

.universal-chart__donut-segment {
    cursor: pointer; transition: opacity .18s ease, stroke-width .18s ease;
}

.universal-chart__donut-segment:hover {
    opacity: .86; stroke-width: 18;
}

.universal-chart__donut-hole {
    position: absolute; inset: 23%;
    place-items: center; align-content: center;
    border: 1px solid var(--border); border-radius: 50%;
    background: var(--bg-1); color: var(--text-1);
    cursor: pointer;}

.universal-chart__donut-hole:disabled {
    cursor: default;
}

.universal-chart__donut-hole strong {
    font-size: var(--font_size_3); line-height: 1;
}

.universal-chart__donut-hole small {
    color: var(--text-3);
}

.universal-chart__legend {
    display: grid; gap: 12px;
}

.universal-chart__legend-item {
    display: grid; grid-template-columns: 18px 1fr;
    gap: 12px; align-items: center;
    padding: 0; border: 0;
    background: transparent; color: inherit;
    text-align: left; cursor: pointer;
}

.universal-chart__legend-item:disabled {
    cursor: default;
}

.universal-chart__legend-dot {
    width: 16px; height: 16px;
    border-radius: 50%; box-shadow: 0 0 0 2px var(--bg-1);
}

.universal-chart__legend-item b, .universal-chart__legend-item small {
    display: block;
}

.universal-chart__legend-item small {
    color: var(--text-3);
}

.universal-chart--area {
    min-height: 220px;
}

.universal-chart--area svg {
    width: 100%; height: 220px;
    overflow: visible;
}

.universal-chart--area polygon {
    opacity: .22;
}

.universal-chart--area polyline {
    fill: none; stroke-width: 2.5;
    vector-effect: non-scaling-stroke;
}

.universal-chart__area-point {
    fill: var(--bg-1); stroke: var(--text-2);
    stroke-width: .35; cursor: pointer;
}

.universal-chart__bar-scroll {
    overflow-x: auto; padding-bottom: 6px;
}

.universal-chart__bar-stage {
    position: relative; grid-auto-columns: minmax(78px, 1fr);
    grid-auto-flow: column; min-height: 240px;
    align-items: end; gap: 14px;
    padding: 0 4px;}

.universal-chart__bar-grid {
    position: absolute; inset: 0 0 55px;
    pointer-events: none;
}

.universal-chart__bar-grid span {
    position: absolute; right: 0;
    left: 0; border-top: 1px solid var(--border);
    opacity: .55;
}

.universal-chart__bar-group {
    position: relative; z-index: 1;
    min-width: 70px; min-height: 235px;
    align-content: end; gap: 8px;
    padding: 0; border: 0;
    background: transparent; color: inherit;
    cursor: pointer;}

.universal-chart__bar-group:disabled {
    cursor: default;
}

.universal-chart__bar-columns {
    display: flex; height: 170px;
    align-items: end; justify-content: center;
    gap: 6px;
}

.universal-chart__bar {
    width: 22px; min-height: 0;
    border-radius: 10px 10px 3px 3px;
    box-shadow: 0 8px 22px rgba(31, 53, 84, 0.13);
    transition: height .18s ease, transform .18s ease;
}

.universal-chart__bar-group:not(:disabled):hover .universal-chart__bar {
    transform: translateY(-2px);
}

.universal-chart__bar-group strong, .universal-chart__bar-group small {
    overflow: hidden; text-align: center;
    text-overflow: ellipsis; white-space: nowrap;
}

.universal-chart__bar-group small {
    color: var(--text-3);
}

@media (max-width: 760px) {
    .universal-chart--donut {
        grid-template-columns: 1fr;
    }
}

/* Файл bank_account_page.css */

.bank-account-page {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    box-sizing: border-box; gap: var(--spacing_small);
    overflow-x: hidden; overflow-y: auto;
    overscroll-behavior: contain;
    font-size: var(--font_size_0);}

.bank-account-page__dashboard, .bank-account-page__table {
    min-width: 0; min-height: 0;
    flex: 0 0 auto;
}

.bank-account-page__statement-toolbar,
.bank-account-page__table-toolbar {
    display: flex; flex: 0 0 auto;
    flex-wrap: wrap; align-items: center;
    justify-content: flex-start; gap: var(--spacing_small);
}

.bank-account-page__statement-toolbar {
    margin-top: var(--spacing_small);
}

.bank-account-page__table {
    min-height: 420px; margin-bottom: var(--font_size_0);
}

.bank-account-page__table .table-widget,
.bank-account-page__table .table-container,
.bank-account-page__table .table-wrapper {
    max-height: none;
}

.bank-account-page__table .table-widget--auto-height,
.bank-account-page__table .table-widget--auto-height .table-container,
.bank-account-page__table .table-widget--auto-height .table-wrapper {
    height: auto !important; max-height: none !important;
    overflow-y: visible !important;
}

.bank-account-page__table .table-widget--auto-height .table-wrapper {
    overflow-x: auto !important;
}

.bank-account-details-panel {
    min-height: 0; gap: var(--font_size_0);
    overflow: auto;}

.bank-account-details-panel__actions {
    display: flex; justify-content: flex-end;
}

.bank-account-details-panel .table-widget,
.bank-account-details-panel .data-table,
.bank-account-details-panel .data-table th,
.bank-account-details-panel .data-table td,
.bank-account-page__table .table-widget,
.bank-account-page__table .data-table,
.bank-account-page__table .data-table th,
.bank-account-page__table .data-table td {
    font-size: var(--font_size_0);
}

.bank-account-documents__toolbar {
    justify-content: space-between;
    gap: var(--spacing_small);}

.bank-account-documents__toolbar .btn {
    border-color: var(--accent); background: var(--bg-1);
    color: var(--accent-blue);
}

.bank-account-details-panel__table {
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--border-radius, 12px);}

.bank-account-details-panel__head, .bank-account-details-panel__row {
    display: grid;
    grid-template-columns: minmax(180px, .75fr) minmax(260px, 1.25fr);
    align-items: center; gap: var(--font_size_0);
    padding: 8px 10px;
}

.bank-account-details-panel__head {
    background: var(--primary-color, #5b6fc7);
    color: var(--button-text-color, #fff);
}

.bank-account-details-panel__row {
    border-top: 1px solid var(--border);
}

.bank-account-details-panel__row > span {
    color: var(--text-2);
}

.bank-account-details-panel__row > input {
    width: 100%; min-width: 0;
    box-sizing: border-box; padding: 7px 9px;
    border: 1px solid var(--border); border-radius: 7px;
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.bank-account-details-panel__empty {
    padding: var(--font_size_1); color: var(--text-3);
    text-align: center;
}

@media (orientation: portrait), (max-width: 760px) {
    .bank-account-details-panel__head {
        display: none;
    }
    .bank-account-details-panel__row {
        grid-template-columns: 1fr; gap: 4px;
    }
}

@media (orientation: portrait) {
    .bank-statement-table .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column):has( th:first-child
.header-content > span[title="Дата"] ):has( th:nth-child(2)
.header-content > span[title="Назначение платежа"] ) th:first-child,
.bank-statement-table .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column):has( th:first-child
.header-content > span[title="Дата"] ):has( th:nth-child(2)
.header-content > span[title="Назначение платежа"] ) td:first-child {
        width: 20% !important; min-width: 20% !important;
        max-width: 20% !important; white-space: nowrap;
    }
    .bank-statement-table .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column):has( th:first-child
.header-content > span[title="Дата"] ):has( th:nth-child(2)
.header-content > span[title="Назначение платежа"] ) th:nth-child(2),
.bank-statement-table .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column):has( th:first-child
.header-content > span[title="Дата"] ):has( th:nth-child(2)
.header-content > span[title="Назначение платежа"] ) td:nth-child(2) {
        width: 80% !important; min-width: 80% !important;
        max-width: 80% !important;
    }
}

/* Файл bank_dashboard_layout.css */

.bank-dashboard__header {
    min-width: 0; align-items: stretch;
    gap: 4px;}

.bank-dashboard__header > h3 {
    width: 100%; margin: 0;
    color: var(--text-1); font-size: var(--font_size_1);
}

.bank-dashboard__header-meta {
    min-width: 0; flex-wrap: wrap;
    justify-content: flex-start;
    gap: 6px 10px;}

.bank-dashboard__header-meta > span {
    flex: 0 0 auto; color: var(--text-3);
    font-size: var(--font_size_0); white-space: nowrap;
}

.bank-dashboard__header-controls, .bank-dashboard__header-actions {
    display: flex; min-width: 0;
    flex-wrap: wrap; align-items: center;
    justify-content: flex-end; gap: 6px;
}

.bank-dashboard__header-controls {
    flex: 0 1 auto; margin-left: auto;
}

.bank-dashboard__header-actions {
    flex: 0 1 auto;
}

.bank-dashboard__header-actions > *,
.bank-dashboard__header-actions .dropdown-button-container,
.bank-dashboard__header-actions .dropdown-container,
.bank-dashboard__header-actions .dropdown-button {
    width: auto !important; max-width: none;
    flex: 0 0 auto;
}

.bank-dashboard__header-actions .dropdown-button {
    white-space: nowrap;
}

.bank-dashboard__settings-wrap {
    position: relative; flex: 0 0 auto;
}

.bank-dashboard__settings {
    position: absolute; z-index: 80;
    top: calc(100% + 6px); right: 0;
    display: flex; width: min(320px, 80vw);
    flex-direction: column; gap: 8px;
    padding: 12px;
}

.bank-dashboard__settings label {
    display: flex; align-items: center;
    gap: 8px; cursor: pointer;
}

.bank-dashboard__widgets {
    min-width: 0;
    grid-template-columns: minmax(320px, 1.2fr) minmax(220px, .8fr);
    gap: 8px;}

.bank-dashboard__widgets--single {
    grid-template-columns: 1fr;
}

.bank-dashboard__widget {
    min-width: 0; padding: 10px 12px;
}

.bank-dashboard__widget-title {
    justify-content: space-between;
    gap: 12px;}

.bank-dashboard__widget-title h4 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1);
}

.bank-dashboard__widget-title span {
    color: var(--text-3); font-size: var(--font_size_0);
}

.bank-dashboard__documents {
    min-height: 120px; justify-content: flex-start;
    gap: 8px;
    margin-top: 8px;}

.bank-dashboard__documents .btn,
.bank-dashboard__documents .dropdown-button-container {
    width: 100%;
}

.bank-dashboard__metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;}

.bank-dashboard__metrics--above-chart {
    margin: 2px 0;
}

.bank-dashboard__metric {
    min-height: 88px; justify-content: center;
    gap: 4px;
    padding: 10px 12px;}

.bank-dashboard__metric span, .bank-dashboard__metric small {
    color: var(--text-3); font-size: var(--font_size_0);
}

.bank-dashboard__metric strong {
    color: var(--text-1); font-size: var(--font_size_2);
}

.bank-dashboard__metric--inflow strong {
    color: var(--success, #2e7d32);
}

.bank-dashboard__metric--outflow strong {
    color: var(--error, #c62828);
}

.bank-dashboard__empty, .bank-dashboard__loading {
    display: grid; min-height: 120px;
    place-items: center; color: var(--text-3);
}

@media (max-width: 1000px) {
    .bank-dashboard__metrics, .bank-dashboard__widgets {
        grid-template-columns: 1fr;
    }
}

@media (orientation: portrait), (max-width: 900px) {
    .bank-dashboard__header-meta {
        align-items: flex-start; justify-content: flex-start;
        gap: 6px;
    }
    .bank-dashboard__header-meta > span {
        width: 100%;
    }
    .bank-dashboard__header-controls {
        width: 100%; flex: 0 0 auto;
        justify-content: flex-start; gap: 6px;
        margin-left: 0;
    }
    .bank-dashboard__header-actions {
        width: auto; flex: 1 1 auto;
        justify-content: flex-start; gap: 6px;
    }
    .bank-dashboard__header-actions > * {
        flex: 0 1 auto;
    }
}

/* Файл bank_dashboard_chart.css */

.bank-dashboard__widget--chart {
    padding-bottom: 12px;
}

.bank-dashboard__legend {
    display: flex; gap: 16px;
    margin: 8px 0 4px; color: var(--text-3);
    font-size: var(--font_size_0);
}

.bank-dashboard__legend span {
    display: inline-flex; align-items: center;
    gap: 6px;
}

.bank-dashboard__legend-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
}

.bank-dashboard__legend-dot--inflow {
    background: var(--success, #2e7d32);
}

.bank-dashboard__legend-dot--outflow {
    background: var(--error, #c62828);
}

.bank-dashboard__widget--chart .universal-chart__bar-stage {
    min-height: 260px;
}

.bank-dashboard__widget--chart .universal-chart__bar {
    width: 24px; border-radius: 12px 12px 4px 4px;
}

/* Файл bank_accounts_dashboard.css */

/* Файл payment_order_templates.css */

.payment-order-templates .driver-panel-content {
    overflow: hidden;
}

.payment-order-templates__layout {
    height: 100%;
    min-height: 0;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 10px;
}

.payment-order-templates__list,
.payment-order-templates__form,
.payment-order-templates__history {
    padding: 12px;
}

.payment-order-templates__list,
.payment-order-templates__editor {
    min-height: 0;
    overflow: auto;
}

.payment-order-templates__section-header,
.payment-order-templates__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.payment-order-templates__section-header h3,
.payment-order-templates__history h3 {
    margin: 0;
}

.payment-order-templates__items {
    gap: 7px;
    margin-top: 10px;
}

.payment-order-templates__item {
    width: 100%;
    gap: 4px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--border_radius);
    background: var(--bg-1);
    color: var(--text-1);
    text-align: left;
    cursor: pointer;
}

.payment-order-templates__item.is-active {
    border-color: var(--primary-color);
    background: var(--bg-2);
}

.payment-order-templates__item span,
.payment-order-templates__section-header span,
.payment-order-templates__counterparty span {
    color: var(--text-3);
    font-size: var(--font_size_caption);
}

.payment-order-templates__editor {
    gap: 10px;
}

.payment-order-templates__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.payment-order-templates__grid label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.payment-order-templates__grid input,
.payment-order-templates__grid select,
.payment-order-templates__grid textarea {
    width: 100%;
    min-width: 0;
}

.payment-order-templates__grid input[readonly] {
    background: var(--bg-2);
}

.payment-order-templates__grid textarea {
    min-height: 86px;
    resize: vertical;
}

.payment-order-templates__wide {
    grid-column: 1 / -1;
}

.payment-order-templates__weekdays {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.payment-order-templates__weekdays label {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 5px;
}

.payment-order-templates__tax {
    margin-top: 12px;
    padding: 10px;
}

.payment-order-templates__counterparty {
    gap: 4px;
    margin-top: 12px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--border_radius);
}

.payment-order-templates__history-scroll {
    overflow: auto;
    max-height: 260px;
}

.payment-order-templates__history table {
    width: 100%;
    border-collapse: collapse;
}

.payment-order-templates__history th,
.payment-order-templates__history td {
    padding: 7px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}

.payment-order-templates__empty {
    padding: 14px;
    color: var(--text-3);
    text-align: center;
}

@media (orientation: portrait), (max-width: 900px) {
    .payment-order-templates__layout {
        display: flex;
        flex-direction: column;
    }

    .payment-order-templates__list {
        max-height: 220px;
    }

    .payment-order-templates__grid {
        grid-template-columns: 1fr;
    }

    .payment-order-templates__wide {
        grid-column: auto;
    }
}

/* Файл cash_receipt_panel.css */

.cash-receipt-panel {
    height: 100%;
    min-height: 0;}

.cash-receipt-panel__body {
    grid-template-columns: minmax(420px, 1fr) minmax(320px, 0.9fr);
    gap: var(--font_size_0);
    padding-right: calc(var(--spacing_small) / 2);}

.cash-receipt-panel__footer {
    display: flex; flex-shrink: 0;
    justify-content: flex-end; gap: var(--spacing_small);
    padding-top: var(--spacing_small); border-top: 1px solid var(--border);
}

.cash-receipt-form {
    display: flex; min-width: 0;
    flex-direction: column; gap: var(--font_size_0);
}

.cash-receipt-form__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small);}

.cash-receipt-form label > span {
    display: flex; flex-wrap: wrap;
    align-items: center; gap: calc(var(--spacing_small) / 2);
}

.cash-receipt-form label small {
    color: var(--status-success-text); font-size: var(--font_size_caption);
    font-weight: 400;
}

.cash-receipt-form label.is-low-confidence input {
    border-color: var(--status-warning-text);
    background: var(--status-warning-background);
}

.cash-receipt-form__file {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: end; gap: var(--spacing_small);
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-2);
}

.cash-receipt-form__file-name {
    grid-column: 1 / -1; color: var(--text-2);
    overflow-wrap: anywhere;
}

.cash-receipt-form__warning {
    padding: var(--spacing_small);
    border: 1px solid var(--status-warning-text);
    border-radius: var(--spacing_small);
    background: var(--status-warning-background);
    color: var(--status-warning-text);
}

.cash-receipt-items__header {
    justify-content: space-between;
    gap: var(--spacing_small);}

.cash-receipt-items__header h4 {
    margin: 0;
}

.cash-receipt-items__tablewrap {
    min-width: 0; overflow-x: auto;
}

.cash-receipt-items__table {
    width: 100%; min-width: 720px;
    border-collapse: collapse;
}

.cash-receipt-items__table th, .cash-receipt-items__table td {
    padding: calc(var(--spacing_small) / 2);
    border-bottom: 1px solid var(--border); text-align: left;
}

.cash-receipt-items__table th {
    background: var(--accent); color: var(--on-accent);
}

.cash-receipt-items__remove {
    border: 0; background: transparent;
    color: var(--status-danger-text); cursor: pointer;
}

.cash-receipt-preview {
    min-width: 0; min-height: 460px;
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
}

.cash-receipt-preview__frame, .cash-receipt-preview__image {
    width: 100%; height: 100%;
    min-height: 460px; border: 0;
    object-fit: contain;
}

@media (orientation: landscape) {
    .drawer-panel.cash-receipt-driver-panel {
        width: 80%;
    }
}

@media (max-width: 1250px) {
    .cash-receipt-panel__body {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .cash-receipt-form__fields {
        grid-template-columns: 1fr;
    }
    .cash-receipt-panel__body {
        display: block;
    }
    .cash-receipt-preview {
        margin-top: var(--font_size_0);
    }
}

/* Файл cash_receipt_batch.css */

.cash-receipt-batch {
    height: 100%; min-height: 0;
    gap: var(--spacing_small);}

.cash-receipt-batch__toolbar, .cash-receipt-batch__footer {
    display: flex; flex-shrink: 0;
    align-items: center; gap: var(--spacing_small);
}

.cash-receipt-batch__toolbar {
    justify-content: space-between;
}

.cash-receipt-batch__footer {
    justify-content: flex-end; padding-top: var(--spacing_small);
    border-top: 1px solid var(--border);
}

.cash-receipt-batch__file-button {
    display: inline-flex; align-items: center;
    min-height: var(--button-min-height); padding: 0 var(--spacing_small);
    border-radius: var(--spacing_small); background: var(--accent);
    color: var(--on-accent); cursor: pointer;
}

.cash-receipt-batch__file-button input {
    display: none;
}

.cash-receipt-batch__cards-wrap {
    position: relative; overflow-x: hidden;
    overflow-y: auto; padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-2);
}

.cash-receipt-batch__cards {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--spacing_small);
    align-items: start;}

.cash-receipt-batch__card {
    min-width: 0; padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--font_size_1);
    background: var(--bg-1); box-shadow: var(--shadow);
}

.cash-receipt-batch__card-header {
    gap: var(--spacing_small);
}

.cash-receipt-batch__card-header {
    justify-content: space-between; margin-bottom: var(--spacing_small);
}

.cash-receipt-batch__file-name {
    min-width: 0; color: var(--blue-navy);
    font-weight: 700;}

.cash-receipt-batch__status {
    font-weight: 600; white-space: nowrap;
}

.cash-receipt-batch__status.is-ready,
.cash-receipt-batch__status.is-saved {
    color: var(--status-success-text);
}

.cash-receipt-batch__status.is-error,
.cash-receipt-batch__status.is-needs_data {
    color: var(--status-danger-text);
}


.cash-receipt-batch__body {
    grid-template-columns: minmax(220px, .7fr) minmax(320px, 1fr);
    gap: var(--spacing_small);
}

.cash-receipt-batch__preview {
    min-width: 0; height: 360px; overflow: hidden;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-2);
}

.cash-receipt-batch__preview .cash-receipt-preview__frame,
.cash-receipt-batch__preview .cash-receipt-preview__image {
    width: 100%; height: 100%; min-height: 0; object-fit: contain;
}

.cash-receipt-batch__message {
    margin-bottom: var(--spacing_small); color: var(--text-3);
    font-size: var(--font_size_caption); overflow-wrap: anywhere;
}

.cash-receipt-batch__field {
    grid-template-columns: minmax(130px, 38%) minmax(0, 1fr);
    align-items: center; gap: var(--spacing_small);
    color: var(--text-2);}

.cash-receipt-batch__field input, .cash-receipt-batch__field select,
.cash-receipt-batch__field textarea {
    width: 100%; min-width: 0;
    min-height: var(--button-min-height); box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.cash-receipt-batch__field textarea {
    resize: vertical;
}

.cash-receipt-batch__items-count {
    color: var(--text-3); font-size: var(--font_size_caption);
    text-align: right;
}

.cash-receipt-batch__remove {
    border: 0; background: transparent;
    color: var(--status-danger-text); cursor: pointer;
}

.cash-receipt-batch__remove:disabled {
    opacity: .5; cursor: default;
}

@media (max-width: 760px) {
    .cash-receipt-batch__toolbar {
        align-items: flex-start; flex-direction: column;
    }
    .cash-receipt-batch__cards {
        grid-template-columns: 1fr;
    }
    .cash-receipt-batch__body, .cash-receipt-batch__field {
        grid-template-columns: 1fr;
    }
    .cash-receipt-batch__field {
        gap: calc(var(--spacing_small) / 2);
    }
}

/* Файл cash_receipts.css */

.cash-receipts-root, .cash-receipts-house {
    width: 100%; min-width: 0;
    height: 100%; box-sizing: border-box;
}

.cash-receipts-house {
    padding: var(--spacing_small); overflow: hidden;
}

.cash-receipts__toolbar {
    flex-wrap: wrap; gap: var(--spacing_small);
    margin-bottom: var(--spacing_small);}

.cash-receipts__toolbar > .dropdown-container {
    width: auto; max-width: min(100%, 320px);
}

.cash-receipts__pivot-filters {
    position: sticky; z-index: 3;
    top: 0; margin-bottom: var(--spacing_small);
    padding-bottom: var(--spacing_small);
    border-bottom: 1px solid var(--border); background: var(--bg-1);
}

.cash-receipts__pivot-filter-toolbar {
    display: flex; align-items: flex-end;
    gap: var(--spacing_small);
}

.cash-receipts__search-field {
    min-width: min(100%, 360px); gap: calc(var(--spacing_small) / 2);
    color: var(--text-2);
    font-size: var(--font_size_caption);}

.cash-receipts__filter-toggle, .cash-receipts__filter-reset {
    min-height: var(--button-min-height); align-self: flex-end;
    margin: 0;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--blue-navy);
    font: inherit; cursor: pointer;
}

.cash-receipts__filter-toggle {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.cash-receipts__filters {
    display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr));
    gap: var(--spacing_small); margin-top: var(--spacing_small);
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-2);
}

.cash-receipts__filters label, .cash-receipt-form label,
.cash-receipt-form__file label {
    display: flex; min-width: 0;
    flex-direction: column; gap: calc(var(--spacing_small) / 2);
    color: var(--text-2); font-size: var(--font_size_caption);
}

.cash-receipts__filters input, .cash-receipts__filters select,
.cash-receipts__search-field input, .cash-receipt-form input,
.cash-receipt-form select, .cash-receipt-form textarea,
.cash-receipt-items__table input {
    width: 100%; min-height: var(--button-min-height);
    box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.cash-receipts__content {
    grid-template-columns: minmax(0, 1fr) minmax(190px, 250px);
    gap: var(--font_size_0);}

.cash-receipts__table-card {
    position: relative; min-width: 0;
    min-height: 0; padding: var(--spacing_small);
    overflow: auto; border: 1px solid var(--border);
    border-radius: var(--font_size_1); background: var(--bg-1);
    box-shadow: var(--shadow);
}

.cash-receipts__table-card .pivot-table-container {
    min-width: 100%; height: auto !important;
    max-height: none !important; overflow: visible !important;
}

.cash-receipts__table-card .pivot-table-body {
    height: auto !important; max-height: none !important;
    overflow: visible !important;
}

.cash-receipts__loading {
    position: absolute; z-index: 2;
    top: var(--spacing_small); right: var(--spacing_small);
    padding: calc(var(--spacing_small) / 2) var(--spacing_small);
    border-radius: var(--spacing_small); background: var(--bg-2);
    color: var(--text-2);
}

.cash-receipts__summary {
    min-height: 0; gap: var(--font_size_0);
    overflow: auto;
    align-self: stretch;}

.cash-receipts__summary-card {
    min-height: 88px; box-sizing: border-box;
    justify-content: center; padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--font_size_1);
    background: var(--bg-1);
    box-shadow: var(--shadow);}

.cash-receipts__summary-card span {
    color: var(--text-2);
}

.cash-receipts__summary-card strong {
    color: var(--blue-navy); font-size: var(--font_size_1);
}

@media (max-width: 1100px) {
    .cash-receipts__filters {
        grid-template-columns: repeat(2, minmax(130px, 1fr));
    }
}

@media (max-width: 760px) {
    .cash-receipts__filters, .cash-receipts__content {
        grid-template-columns: 1fr;
    }
    .cash-receipts__pivot-filter-toolbar {
        align-items: stretch; flex-direction: column;
    }
    .cash-receipts__search-field {
        min-width: 0;
    }
    .cash-receipts__summary {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (orientation: portrait) {
    .cash-receipts-root > .tab-widget-container > .tab-container-top
        > .tab-content-wrapper {
        overflow-x: hidden; overflow-y: auto;
        overscroll-behavior: contain;
    }
    .cash-receipts-root .tab-content-item.active {
        max-height: none;
    }
    .cash-receipts-house {
        height: auto; min-height: 100%;
        overflow: visible;
    }
    .cash-receipts__content {
        min-height: min(62dvh, 560px); flex: 0 0 auto;
    }
    .cash-receipts__table-card {
        min-height: 320px;
    }
    .cash-receipts__summary {
        overflow: visible;
    }
}

/* Файл AttachmentUploadButton.css */

.document-upload-button {
    display: inline-flex; width: fit-content;
    min-height: var(--button-min-height); align-items: center;
    justify-content: center; box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--accent-blue);
    font-size: var(--font_size_button); font-weight: 500;
    line-height: 1.2; white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.document-upload-button:hover {
    background: var(--bg-2);
}

.document-upload-button:focus-within {
    outline: 2px solid color-mix(in srgb, var(--accent-blue) 40%, transparent);
    outline-offset: 2px;
}

/* Файл company_information.css */

.company-information-root, .company-information__page {
    background: var(--bg-2);
}

.company-information-toolbar {
    flex: 0 0 auto; flex-wrap: wrap;
}

.company-information__page { min-height: 100%; gap: 0;
    box-sizing: border-box; padding: var(--spacing_small);
}

.company-information__fields {
    grid-template-columns: repeat(3, minmax(200px, 1fr));
    gap: var(--spacing_small);
    margin-bottom: var(--spacing_small);}

.company-information__field {
    gap: calc(var(--spacing_small) / 2); min-width: 0;
    color: var(--blue-navy);
    font-size: var(--font_size_0);}

.company-information__field textarea {
    width: 100%; min-width: 0;
    min-height: calc(var(--font_size_0) * 4); box-sizing: border-box;
    margin: 0; padding: var(--spacing_small) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--blue-navy);
    font: inherit; font-size: var(--font_size_0);
    resize: vertical;
}

.company-information__row-actions button {
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); cursor: pointer;
}

@media (max-width: 1050px) {
    .company-information__fields {
        grid-template-columns: repeat(2, minmax(200px, 1fr));
    }
}

@media (max-width: 760px) {
    .company-information__fields {
        grid-template-columns: minmax(0, 1fr);
    }
}

.company-information__card-header {
    justify-content: space-between; gap: var(--spacing_small);
    margin-bottom: var(--font_size_0);}

.company-information__card-header h3 {
    margin: 0;
}

.company-information__download-panel {
    gap: var(--spacing_small);}

.company-information__download-panel p {
    margin: 0; color: var(--text-2);
}

.company-information__download-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing_small);}

@media (max-width: 620px) {
    .company-information__download-actions {
        grid-template-columns: 1fr;
    }
}

/* Файл email_content.css */

.incoming-email-content {
    overflow: visible; border: 0;
    background: transparent;
}

.incoming-email-content__header {
    min-height: 42px; justify-content: space-between;
    gap: 12px; padding: 8px 4px;
    border-bottom: 1px solid #edf0f4;
    background: transparent;}

.incoming-email-content__title {
    margin: 0; font-size: var(--font_size_0);
    line-height: 1.45;
}

.incoming-email-content__switch {
    display: inline-flex; flex-shrink: 0;
    padding: 2px; border: 1px solid var(--border);
    border-radius: 9px; background: var(--bg-1);
}

.incoming-email-content__switch button {
    min-height: 30px; padding: 4px 10px;
    border: 0; border-radius: 7px;
    background: transparent; color: var(--text-2);
    font-size: var(--font_size_caption); cursor: pointer;
}

.incoming-email-content__switch button.is-active {
    background: var(--accent); color: #ffffff;
}

.incoming-email-content__frame {
    display: block; width: 100%;
    min-height: 180px; border: 1px solid var(--border);
    border-radius: 10px; overflow: hidden;
    background: #ffffff; box-sizing: border-box;
}

.incoming-email-content__plain {
    box-sizing: border-box; min-height: 180px;
    margin: 0; padding: 14px;
    border: 1px solid var(--border); border-radius: 10px;
    overflow: visible; background: #ffffff;
    color: #1f2937; font: inherit;
    line-height: 1.45; overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.incoming-email-content__security-note {
    padding: 6px 4px; color: var(--text-2);
    font-size: var(--font_size_caption);
}

@media (max-width: 680px) {
    .incoming-email-content__header {
        align-items: flex-start; flex-direction: column;
    }
}

@media (orientation: portrait) {
    .incoming-email-content__header {
        flex-direction: row; align-items: center;
        justify-content: space-between; gap: 8px;
    }
    .incoming-email-content__title {
        min-width: 0; flex: 1 1 auto;
    }
    .incoming-email-content__switch {
        flex: 0 0 auto; margin-left: auto;
    }
}

/* Файл OutgoingDeliveryAttachmentsSettings.css */

.outgoing-attachments-card {
    gap: 0;}

.outgoing-delivery-attachments {
    gap: 0; padding: 0;
    border: 0; border-radius: 0;
    background: transparent;
    box-sizing: border-box;}

.outgoing-delivery-attachments__title {
    padding: 0 4px 8px; border-bottom: 1px solid var(--divider-soft);
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 700;
}

.outgoing-delivery-attachments__row {
    display: grid; width: calc(70% - 10px);
    min-width: 0; grid-template-columns: minmax(150px, 32%) minmax(260px, 68%);
    align-items: center; gap: 10px;
    padding: 8px 4px; border: 0;
    border-bottom: 1px solid var(--divider-soft); border-radius: 0;
    background: transparent; box-sizing: border-box;
}

.outgoing-delivery-attachments__row label {
    display: flex; align-items: center;
    gap: 8px; color: var(--text-1);
    font-size: var(--font_size_0);
}

.outgoing-delivery-attachments__row select {
    width: 100%; min-height: 30px;
    padding: 4px 8px; border: 1px solid var(--divider-color);
    border-radius: 6px; background: var(--input-background);
    color: var(--text-1); font-family: var(--font_family_interface);
    font-size: var(--font_size_caption); line-height: 1.3;
    box-sizing: border-box;
}

.outgoing-delivery-attachments__row select:focus {
    outline: none; border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--focus-ring);
}

.outgoing-delivery-attachments__row select:disabled,
.outgoing-delivery-attachments__row input:disabled {
    opacity: 0.55;
}

.outgoing-delivery-attachments__hint {
    padding: 8px 4px 12px; color: var(--text-2);
    font-size: var(--font_size_caption); line-height: 1.4;
}

.outgoing-attachments-card .doc-card__attachments-tab {
    margin-top: 0; padding: 12px 0 0;
    border: 0; border-top: 2px solid var(--surface-primary);
    border-radius: 0; background: transparent;
}

@media (max-width: 760px) {
    .outgoing-delivery-attachments__row {
        width: 100%; grid-template-columns: 1fr;
    }
}

.outgoing-delivery-attachments__title {
    color: var(--text-1);
}

.outgoing-delivery-attachments__row label {
    color: var(--text-2); font-size: var(--font_size_0);
    font-weight: 400;
}

.outgoing-delivery-attachments__row select {
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 500;
}

.outgoing-attachments-card .doc-card__attachments-tab {
    padding-top: var(--spacing_small);
    border-top: 1px solid var(--surface-primary);
}

.outgoing-attachments-card .doc-card__related-row-head {
    border-bottom: 0;
}

/* Файл DocumentCardRecipientDirectory.css */

.doc-card__recipient-directory {
    gap: 8px; padding: 10px 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--border_radius_1);
    background: var(--background);}

.doc-card__recipient-directory-controls {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 220px);
    gap: 8px;}

@media (max-width: 720px) {
    .doc-card__recipient-directory-controls {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Файл DocumentCardInternalDistribution.css */

.doc-card__internal-toggle {
    display: flex; align-items: flex-start;
    gap: 10px; padding: 12px;
    border: 1px solid var(--border); border-radius: var(--border_radius_1);
    background: var(--bg-1); color: var(--text-1);
    cursor: pointer;
}

.doc-card__internal-toggle input, .doc-card__internal-employee input {
    margin-top: 3px; accent-color: var(--accent);
}

.doc-card__internal-toggle span {
    display: flex; min-width: 0;
    flex-direction: column; gap: 3px;
}

.doc-card__internal-toggle strong,
.doc-card__internal-employee-content strong {
    font-size: var(--font_size_0);
}

.doc-card__internal-toggle small,
.doc-card__internal-employee-content small {
    color: var(--text-2); font-size: var(--font_size_0);
}

.doc-card__internal-employees {
    gap: 8px; padding: 10px;
    border: 1px solid var(--border); border-radius: var(--border_radius_1);
    background: var(--background);}

.doc-card__internal-employees-header {
    display: flex; align-items: center;
    justify-content: space-between; gap: 10px;
    flex-wrap: wrap;
}

.doc-card__internal-employees-header > div:first-child {
    display: flex; flex-direction: column;
    gap: 2px;
}

.doc-card__internal-employees-header span {
    color: var(--text-2); font-size: var(--font_size_0);
}

.doc-card__internal-employees-list {
    grid-template-columns: minmax(0, 1fr); gap: 6px;
    max-height: 320px;
    overflow-y: auto;}

.doc-card__internal-employee {
    display: flex; min-width: 0;
    align-items: flex-start; gap: 8px;
    padding: 8px 10px; border: 1px solid var(--border);
    border-radius: var(--border_radius_1); background: var(--bg-1);
    cursor: pointer;
}

.doc-card__internal-employee-content {
    width: 100%; min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto; align-items: start;
    gap: 4px 12px;}

.doc-card__internal-employee-content strong,
.doc-card__internal-employee-content small {
    min-width: 0;
}

.doc-card__internal-employee-content small {
    text-align: right;
}

.doc-card__internal-employee--active {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 7%, var(--bg-1));
}

.doc-card__distribution-guard {
    flex: 1 1 100%; color: var(--error-color, #d84a4a);
    font-size: var(--font_size_0); text-align: right;
}

@media (orientation: portrait) {
    .doc-card__internal-employee-content {
        grid-template-columns: minmax(0, 1fr);
    }
    .doc-card__internal-employee-content small {
        text-align: left;
    }
}

/* Файл DocumentCardDistributionValidation.css */

.doc-card__distribution-value {
    gap: calc(var(--spacing_small) / 2);}

.doc-card__distribution-input--invalid {
    border-color: var(--status-error-border);
}

.doc-card__distribution-validation {
    color: var(--status-error-text); font-size: var(--font_size_caption);
}

/* Файл GenerateDocumentButton.css */

.generate-document-button {
    position: relative;
}

.generate-document-button__tooltip {
    background: var(--background_color, #ffffff);
    border: var(--border_width, 1px) solid var(--border_color, #d6e3ef);
    border-radius: var(--border_radius, 10px);
    bottom: calc(100% + var(--spacing_small, 8px));
    box-shadow: var(--box_shadow, 0 4px 16px rgba(0, 0, 0, 0.16));
    display: none; left: 50%;
    min-width: 360px; padding: var(--spacing_small, 8px);
    position: absolute; transform: translateX(-50%);
    z-index: 20;
}

.generate-document-button:hover .generate-document-button__tooltip,
.generate-document-button:focus-within
.generate-document-button__tooltip {
    display: block;
}

.generate-document-button__title {
    font-weight: 600; margin-bottom: var(--spacing_small, 8px);
}

.generate-document-button__row {
    gap: var(--spacing_small, 8px);
    line-height: 1.5;}

.generate-document-button__icon {
    font-weight: 700;
}

.generate-document-button__icon--ready {
    color: var(--success_color, #198754);
}

.generate-document-button__icon--missing {
    color: var(--error_color, #d32f2f);
}

/* Файл DocumentCardBase.css */

.doc-card {
    display: flex; flex-direction: column;
    height: 100%; min-height: 0;
    padding-top: var(--font_size_0); padding-bottom: var(--font_size_0);
    padding-left: var(--font_size_0); padding-right: var(--font_size_0);
    box-sizing: border-box; font-family: var(--font_family_interface);
    font-size: var(--font_size_caption); background: transparent;
    overflow: hidden;
}

.doc-card__header {
    flex: 0 0 auto; display: flex;
    align-items: baseline; gap: 12px; padding-left: 2px;
    flex-wrap: wrap;
}

.doc-card__title {
    font-weight: 700; font-size: var(--font_size_1);
    color: var(--text-1); line-height: 1.2;
}

.doc-card__meta {
    color: var(--text-3); font-size: var(--font_size_caption);
    line-height: 1.2; gap: 8px;
    flex-wrap: wrap;}

.doc-card__meta-sep {
    color: var(--divider-color);
}

.doc-card__body {
    flex: 1 1 auto; min-height: 0;
    overflow-y: auto; overflow-x: hidden;
}

.doc-card__body::-webkit-scrollbar {
    width: 10px;
}

.doc-card__body::-webkit-scrollbar-track {
    background: transparent;
}

.doc-card__body::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb); border-radius: 999px;
    border: 2px solid transparent; background-clip: padding-box;
}

.doc-card__body::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--scrollbar-thumb) 82%, var(--text-2));
    border: 2px solid transparent; background-clip: padding-box;
}

.doc-card__empty {
    padding: 22px 8px 40px 8px; color: var(--text-3);
    font-style: italic; font-size: var(--font_size_caption);
}

.doc-card__footer {
    flex: 0 0 auto;
    background: transparent;
}

.doc-card__footer {
    display: flex; align-items: center;
    justify-content: flex-end; gap: 8px;
    flex-wrap: wrap;
}

/* Одинаковые компактные отступы карточки со всех сторон. */

.doc-card {
    padding: 7px;
}

.doc-card__header {
    margin-bottom: 7px; padding: 0;
}

.doc-card__body {
    padding-right: 0;
}

.doc-card__footer {
    margin-top: 6px; padding-top: 6px;
}

.doc-card__heading-line {
    display: flex; min-width: 0;
    align-items: baseline; gap: 10px;
    flex-wrap: nowrap; white-space: nowrap;
}

.doc-card__meta--heading {
    color: var(--text-1); font-size: var(--font_size_1);
    font-weight: 700;
}

.doc-card__meta--heading .doc-card__meta-sep {
    color: var(--text-1);
}

/* Файл DocumentCardRequisites.css */

.doc-card__requisites {
    display: flex; align-items: flex-start;
    gap: 20px; padding-top: 10px;
    padding-left: 0; padding-right: 0; box-sizing: border-box;
}

.doc-card__fields {
    flex: 1 1 auto; min-width: 0;
}

.doc-card__table {
    border-collapse: collapse; table-layout: fixed;
    width: 100%;
}

.doc-card__table tr:last-child {
    border-bottom: none;
}

.doc-card__table td {
    padding-top: 8px; padding-bottom: 8px;
    padding-left: 4px; padding-right: 4px;
    vertical-align: top; line-height: 1.45;
    word-break: break-word;
}

.doc-card__fields > .doc-card__table td.doc-card__label {
    width: 32%; padding-right: 14px;
    white-space: normal;
}

.doc-card__fields > .doc-card__table td.doc-card__value {
    width: 68%;
}

.doc-card__label {
    color: var(--text-2); font-size: var(--font_size_0);
}

.doc-card__value {
    color: var(--text-1) !important; font-size: var(--font_size_0);
    font-weight: 500;
}

.doc-card__value > input, .doc-card__value > select,
.doc-card__value > textarea {
    width: 100%; max-width: 100%;
}

.doc-card__value--dash {
    color: var(--text-3); font-weight: 400;
}

.doc-card__value--badge {
    display: inline-block; padding: 3px 10px;
    border-radius: 999px; font-size: var(--font_size_caption);
    font-weight: 600; line-height: 1.2;
}

.doc-card__value--overdue {
    background: var(--status-error-background);
    color: var(--status-error-text);
    border: 1px solid var(--status-error-border);
}

.doc-card__value--done {
    background: var(--status-success-background);
    color: var(--status-success-title);
    border: 1px solid var(--status-success-border);
}

.doc-card__value--in-progress {
    background: var(--accent-orange-bg); color: var(--status-warning-title);
    border: 1px solid var(--accent-yellow-border);
}

.doc-card__field-textarea {
    width: 100%; border: none;
    font-family: var(--font_family_interface);
    font-size: var(--font_size_caption); font-weight: 500;
    line-height: 1.45; resize: vertical;
    outline: none; box-sizing: border-box;
    background: transparent; color: var(--text-1);
    padding: 0; margin: 0;
}

.doc-card__field-number {
    width: 100%; min-height: 34px;
    margin: 0; padding: 5px 8px;
    box-sizing: border-box; border: 1px solid var(--divider-color);
    border-radius: 7px; outline: none;
    background-color: var(--input-background) !important; color: var(--text-1);
    font-family: var(--font_family_interface); font-size: var(--font_size_0);
    font-weight: 500; line-height: 1.35;
}

.doc-card__field-number:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px color-mix(
        in srgb,
        var(--accent) 15%,
        transparent
    );
}

.doc-card__field-number::-webkit-outer-spin-button,
.doc-card__field-number::-webkit-inner-spin-button {
    margin: 0;
}

.doc-card__field-select {
    width: 100%; min-height: 34px;
    padding: 5px 8px; border: 1px solid var(--divider-color);
    border-radius: 6px; background-color: var(--input-background) !important;
    font-size: var(--font_size_caption); color: var(--text-1) !important;
    box-sizing: border-box;
}

.doc-card__field-select:focus {
    outline: none; border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--focus-ring);
}

.doc-card__field-input {
    box-sizing: border-box; width: 100%;
    min-height: 34px; margin: 0;
    padding: 5px 8px; border: 1px solid var(--divider-color);
    border-radius: 7px; outline: 0;
    background-color: var(--input-background) !important;
    color: var(--text-1) !important; font: inherit;
    font-size: var(--font_size_0); line-height: 1.35;
}

.doc-card__field-input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent);
}

.doc-card__field-input--textarea {
    min-height: 72px; resize: vertical;
}

.doc-card__field-input--subject {
    min-height: calc(72px + 1.35em);
}

.doc-card__field-select option {
    background-color: var(--input-background); color: var(--text-1);
}

.doc-card__requisites {
    padding-bottom: 0;
}

/* Файл DocumentCardRelated.css */

.doc-card__related {
    width: 30%; min-width: 260px;
    max-width: 360px; flex: 0 0 30%;
    background: var(--surface-secondary) !important; border-radius: 10px;
    padding: 16px; align-self: flex-start; box-sizing: border-box;
}

.doc-card__related-title {
    font-weight: 700; font-size: var(--font_size_caption);
    color: var(--text-1); margin-bottom: 14px;
}

.doc-card__related-row {
    margin-bottom: 14px;
}

.doc-card__related-row:last-child {
    margin-bottom: 0;
}

.doc-card__related-label {
    color: var(--text-3); font-size: var(--font_size_0);
    margin-bottom: 4px;
}

.doc-card__related-link {
    color: var(--accent); font-size: var(--font_size_caption);
    cursor: pointer; text-decoration: none;
    font-weight: 600; display: inline-block;
    line-height: 1.35;
}

.doc-card__related-link:hover {
    text-decoration: underline;
}

.doc-card__related-hint {
    margin-top: 4px; color: var(--text-3);
    font-size: var(--font_size_caption); line-height: 1.35;
}

.doc-card__related-row-head {
    display: flex; align-items: center;
    justify-content: space-between; gap: 10px;
    flex-wrap: wrap;
}

.doc-card__related-add-btn {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--accent-blue);
    font-size: var(--font_size_button); font-weight: 600;
    line-height: 1.2; cursor: pointer;
    transition: all 0.2s ease;
}

.doc-card__related-add-btn:hover {
    background: var(--surface-muted); border-color: var(--accent);
}

.doc-card__related-item {
    border: 1px solid var(--divider-soft); background: var(--surface-primary);
    border-radius: 10px; padding: 8px 10px;
}

.doc-card__related-remove-btn {
    width: 24px; height: 24px;
    border: 1px solid var(--divider-color);
    background: var(--input-background); color: var(--text-3);
    border-radius: 8px; font-size: var(--font_size_button);
    line-height: 1; cursor: pointer;
    flex: 0 0 24px; transition: all 0.2s ease;
}

.doc-card__related-remove-btn:hover {
    background: var(--surface-muted); color: var(--text-2);
    border-color: var(--accent);
}

.doc-card__related-add-btn:disabled {
    background: var(--surface-muted); border-color: var(--divider-soft);
    color: var(--text-3); cursor: not-allowed;
    opacity: 0.72;
}

/* Файл DocumentCardDistribution.css */

.doc-card__distribution {
    gap: 14px;}

.doc-card__distribution-header {
    justify-content: space-between; gap: 12px;
    flex-wrap: wrap;
}

.doc-card__distribution-title {
    font-size: var(--font_size_button); font-weight: 600;
    color: #25324a;
}

.doc-card__distribution-btn {
    border: 1px solid #d8deea; background: var(--bg-1);
    color: #42526b; border-radius: 8px;
    padding: 8px 12px; font-size: var(--font_size_caption);
    font-weight: 600; line-height: 1.2;
    cursor: pointer; transition: all 0.2s ease;
}

.doc-card__distribution-btn:hover {
    background: #f6f8fc; border-color: #c7d1e1;
}

.doc-card__distribution-btn--small {
    padding: 6px 10px; font-size: var(--font_size_caption);
}

.doc-card__distribution-empty {
    border: 1px dashed #d7deea; background: #fafbfd;
    color: #7b8798; border-radius: 10px;
    padding: 18px; text-align: center;
    font-size: var(--font_size_caption);
}

.doc-card__distribution-list {
    gap: 12px;}

.doc-card__recipient-card {
    background: var(--bg-1); border: 1px solid #e1e6ef;
    border-radius: 12px; padding: 14px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.doc-card__recipient-card-header {
    justify-content: space-between; gap: 12px;
    margin-bottom: 12px;
}

.doc-card__recipient-card-title-wrap {
    gap: 10px; flex: 1 1 auto;
    min-width: 0;}

.doc-card__recipient-card-number {
    width: 24px; height: 24px;
    border-radius: 999px; background: #eef2f8;
    color: #5e6c84; justify-content: center;
    font-size: var(--font_size_caption); font-weight: 700;
    flex: 0 0 24px;}

.doc-card__recipient-card-menu {
    border: 1px solid #d8deea; background: #f8fafc;
    color: #667085; border-radius: 8px;
    padding: 6px 10px; font-size: var(--font_size_caption);
    line-height: 1.2; cursor: pointer;
    transition: all 0.2s ease;
}

.doc-card__recipient-card-menu:hover {
    background: #f1f5f9; border-color: #c8d2e1;
}

.doc-card__recipient-columns {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px;
    align-items: start;}

.doc-card__recipient-section-header {
    justify-content: space-between; gap: 10px;
    background: #f3f5f9; border: 1px solid #e1e6ef;
    border-radius: 10px;
}

.doc-card__recipient-section-title {
    font-size: var(--font_size_caption); font-weight: 600;
    color: #4d5b75;
}

.doc-card__distribution-line {
    gap: 8px;}

.doc-card__distribution-input {
    width: 100%; min-width: 0;
    border: 1px solid #d8deea; background: var(--bg-1);
    color: #25324a; border-radius: 8px;
    padding: 9px 12px; font-size: var(--font_size_caption);
    line-height: 1.35; outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.doc-card__distribution-input::placeholder {
    color: #98a2b3;
}

.doc-card__distribution-input:focus {
    border-color: #9bb2d1; box-shadow: 0 0 0 3px rgba(58, 123, 213, 0.08);
}

.doc-card__distribution-input--recipient {
    font-weight: 600;
}

.doc-card__distribution-icon-btn {
    width: 32px; height: 32px;
    border: 1px solid #d8deea; background: var(--bg-1);
    color: #7a869a; border-radius: 8px;
    flex: 0 0 32px; justify-content: center;
    font-size: var(--font_size_1); line-height: 1;
    cursor: pointer;
    transition: all 0.2s ease;}

.doc-card__distribution-icon-btn:hover {
    background: #f8fafc; color: #42526b;
    border-color: #c7d1e1;
}

.doc-card__distribution-mode-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;}

.doc-card__distribution-mode {
    display: flex; min-width: 0;
    align-items: flex-start; gap: 8px;
    padding: 10px 12px; border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-1);
    color: var(--text-1); cursor: pointer;
}

.doc-card__distribution-mode--active {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-1));
}

.doc-card__distribution-mode input {
    margin-top: 3px; accent-color: var(--accent);
}

.doc-card__distribution-mode span {
    display: flex; min-width: 0;
    flex-direction: column; gap: 3px;
}

.doc-card__distribution-mode strong {
    font-size: var(--font_size_0);
}

.doc-card__distribution-mode small {
    color: var(--text-2); font-size: var(--font_size_0);
}

@media (max-width: 900px) {
    .doc-card__distribution-mode-list {
        grid-template-columns: 1fr;
    }
}

/* Файл DocumentCardModal.css */

.doc-card__modal-backdrop {
    position: absolute; inset: 0;
    z-index: 1000; display: flex;
    align-items: flex-start; justify-content: center;
    padding-top: 80px; background: rgba(15, 23, 42, 0.28);
}

.doc-card__modal {
    width: min(420px, calc(100% - 32px)); background: #ffffff;
    border: 1px solid #dce3ec; border-radius: 14px;
    padding: 18px; box-shadow: 0 18px 45px rgba(15, 23, 42, 0.22);
}

.doc-card__modal-title {
    font-size: var(--font_size_0); font-weight: 700;
    color: #1f2937; margin-bottom: 8px;
}

.doc-card__modal-text {
    font-size: var(--font_size_caption); line-height: 1.45;
    color: #4b5563; margin-bottom: 16px;
}

.doc-card__modal-actions {
    gap: 10px;}

.doc-card__modal-cancel-btn {
    border: 1px solid #d8deea; background: #ffffff;
    color: #42526b; border-radius: 8px;
    padding: 6px 10px; font-size: var(--font_size_caption);
    font-weight: 600; line-height: 1.2;
    cursor: pointer; transition: all 0.2s ease;
}

.doc-card__modal-cancel-btn:hover {
    background: #f6f8fc; border-color: #c7d1e1;
}

/* Файл DocumentCardEmployeePicker.css */

.doc-card__employee-picker {
    width: 100%; height: 100%;
    min-height: 0; max-width: 100%;
    gap: 10px; box-sizing: border-box;
    color: var(--text-1);}

.doc-card__employee-picker-hint {
    display: flex; align-items: center;
    gap: 8px; margin: 0;
    padding: 8px 12px; border: 1px solid var(--border);
    border-radius: 999px; background: var(--bg-2);
    color: var(--text-3); font-size: var(--font_size_0);
    line-height: 1.35; box-sizing: border-box;
}

.doc-card__employee-picker-hint::before {
    display: inline-flex; align-items: center;
    justify-content: center; width: 22px;
    height: 22px; flex: 0 0 22px;
    border-radius: 50%; background: var(--accent);
    color: var(--on-accent); content: "👤";
    font-size: var(--font_size_caption); line-height: 1;
}

.doc-card__employee-picker-search {
    gap: 8px; min-height: 42px;
    padding: 0 12px; border: 1px solid var(--border);
    border-radius: 14px; background: var(--bg-1);
    box-shadow: var(--shadow);}

.doc-card__employee-picker-search span {
    flex: 0 0 auto; color: var(--text-3);
    font-size: var(--font_size_1);
}

.doc-card__employee-picker-search input {
    width: 100%; min-width: 0;
    height: 40px; margin: 0;
    padding: 0; border: 0;
    border-radius: 0; background: transparent;
    color: var(--text-1); font: inherit;
    box-shadow: none; outline: 0;
}

.doc-card__employee-picker-list {
    gap: 8px; padding: 2px;
    overflow-y: auto;}

.doc-card__employee-picker-item {
    grid-template-columns: 46px minmax(0, 1fr); gap: 11px;
    align-items: center; width: 100%;
    min-height: 70px; padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--accent) 14%, var(--border));
    border-radius: 16px;
    background: color-mix(in srgb, var(--bg-1) 97%, var(--accent));
    color: var(--text-1);
    box-shadow: 0 6px 18px color-mix(in srgb, var(--blue-navy) 7%,
        transparent);
    text-align: left; cursor: pointer;
    transition:
        border-color .16s ease,
        background-color .16s ease,
        box-shadow .16s ease,
        transform .16s ease;}

.doc-card__employee-picker-item:hover {
    border-color: color-mix(in srgb, var(--accent) 46%, var(--border));
    background: var(--bg-1); color: var(--text-1);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--blue-navy) 11%,
        transparent);
    transform: translateY(-1px);
}

.doc-card__employee-picker-avatar {
    width: 44px; height: 44px;
    place-items: center; border-radius: 50%;
    background: color-mix(in srgb, var(--accent) 16%, var(--bg-1));
    color: var(--blue-navy); font-size: var(--font_size_0);
    font-weight: 700;}

.doc-card__employee-picker-person {
    min-width: 0;
    gap: 3px;}

.doc-card__employee-picker-person strong {
    overflow: hidden; color: var(--text-1);
    font-size: var(--font_size_0); text-overflow: ellipsis;
    white-space: nowrap;
}

.doc-card__employee-picker-person span,
.doc-card__employee-picker-person small {
    overflow: hidden; color: var(--text-3);
    font-size: var(--font_size_caption); text-overflow: ellipsis;
    white-space: nowrap;
}

.doc-card__employee-picker-empty {
    padding: 28px 16px; border: 1px dashed var(--border);
    border-radius: 14px; background: var(--bg-1);
    color: var(--text-3); text-align: center;
}

/* Файл DocumentCardAdaptive.css */

@media (max-width: 768px) {
    .doc-card__distribution-header, .doc-card__recipient-card-header,
.doc-card__recipient-section-header {
        flex-direction: column; align-items: stretch;
    }
    .doc-card__recipient-card-title-wrap {
        width: 100%;
    }
    .doc-card__recipient-columns {
        grid-template-columns: 1fr;
    }
    .doc-card__distribution-line {
        align-items: stretch;
    }
    .doc-card__distribution-icon-btn {
        width: 100%; height: 36px;
        flex-basis: auto;
    }
    .doc-card__employee-picker-hint {
        width: 100%; border-radius: 10px;
    }
    .doc-card__employee-picker .table-container {
        min-height: 300px; max-height: calc(100vh - 190px);
    }
}

@media (max-width: 760px) {
    .doc-card {
        padding-left: var(--font_size_0); padding-right: var(--font_size_0);
    }
    .doc-card__header {
        gap: 8px;
    }
    .doc-card__title {
        font-size: var(--font_size_button);
    }
    .doc-card__meta {
        font-size: var(--font_size_caption);
    }
    .doc-card__requisites {
        flex-direction: column; gap: 14px;
    }
    .doc-card__fields {
        width: 100%;
    }
    .doc-card__related {
        width: 100%; min-width: 0;
        max-width: none; flex: 0 0 auto;
        align-self: stretch;
    }
    .doc-card__fields > .doc-card__table,
.doc-card__fields > .doc-card__table tbody,
.doc-card__fields > .doc-card__table tr,
.doc-card__fields > .doc-card__table td {
        display: block; width: 100%;
    }
    .doc-card__fields > .doc-card__table tr {
        padding-top: 6px; padding-bottom: 6px;
    }
    .doc-card__fields > .doc-card__table td.doc-card__label {
        width: auto; min-width: 0;
        max-width: none; padding-right: 0;
        padding-bottom: 2px; white-space: normal;
    }
    .doc-card__fields > .doc-card__table td.doc-card__value {
        width: 100%;
    }
}

/* Файл DocumentCardResolutionsLayout.css */

.incoming-resolutions {
    width: 100%; height: 100%;
    min-height: 0; overflow: hidden;
    box-sizing: border-box; color: var(--text-2);
    font-size: var(--font_size_0);}

.incoming-resolutions__content {
    overflow: hidden;}

.incoming-resolutions__resolution {
    position: relative; flex: 0 0 auto;
    box-sizing: border-box; margin-bottom: 8px;
    border: 1px solid #8bc9f4; border-radius: 9px;
    padding: 9px 11px 8px; background: #eaf7ff;
}

.incoming-resolutions__resolution-head {
    justify-content: space-between; min-height: 18px;
    margin-bottom: 2px;}

.incoming-resolutions__resolution-title {
    color: #00679a; font-size: var(--font_size_button);
    font-weight: 800; line-height: 1.2;
}

.incoming-resolutions__resolution-actions {
    position: absolute; top: 7px;
    right: 9px; display: flex;
    gap: 5px; opacity: 1;
    pointer-events: auto;
}

.incoming-resolutions__mini-btn {
    border: 1px solid #b9d7eb; border-radius: 6px;
    padding: 3px 7px; background: #ffffff;
    color: #126596; font-size: var(--font_size_caption);
    font-weight: 700; line-height: 1;
    cursor: pointer; box-shadow: none;
}

.incoming-resolutions__mini-btn:hover {
    background: #f7fbff; transform: none;
    box-shadow: none;
}

.incoming-resolutions__mini-btn--danger {
    color: #a23434;
}

.incoming-resolutions__resolution-textarea {
    display: block; width: 100%;
    min-height: 39px; max-height: 110px;
    margin: 0; border: 0;
    outline: 0; resize: none;
    overflow-y: auto; padding: 0 120px 0 0;
    background: transparent; color: #26364c;
    font: inherit; font-size: var(--font_size_button);
    font-weight: 500; line-height: 1.38;
    box-sizing: border-box;
}

.incoming-resolutions__resolution-textarea::placeholder {
    color: #8a99ab;
}

.incoming-resolutions__resolution-meta,
.incoming-resolutions__assignment-meta {
    color: #5d7189; font-size: var(--font_size_caption);
    line-height: 1.32;
}

.incoming-resolutions__resolution-meta {
    gap: 1px;
    margin-top: 2px;}

.incoming-resolutions__resolution-meta b,
.incoming-resolutions__assignment-meta b {
    color: #27384f; font-weight: 800;
}

.incoming-resolutions__meta-row {
    gap: 9px; min-width: 0;
    flex-wrap: wrap;}

.incoming-resolutions__meta-row--resolution {
    gap: 20px;
}

.incoming-resolutions__resolution-date {
    margin-left: 3px;
}

.incoming-resolutions__section-title {
    flex: 0 0 auto; gap: 8px;
    margin: 2px 0 8px; color: #202a3b;
    font-size: var(--font_size_0); font-weight: 800;
    line-height: 1.2;}

.incoming-resolutions__section-title::after {
    content: ""; flex: 1 1 auto;
    height: 1px; background: #d9e1ea;
}

.incoming-resolutions__tree-scroll {
    overflow-x: hidden; overflow-y: auto;
    padding: 0 7px 12px 0; scrollbar-gutter: stable;
}

.incoming-resolutions__empty {
    padding: 8px 2px; color: #52647a;
    font-size: var(--font_size_button);
}

.incoming-resolutions__actions {
    position: relative; z-index: 3;
    flex: 0 0 auto; gap: 10px;
    border-top: 1px solid #d9e1ea; padding: 12px 0 2px;
    background: var(--bg-2);}

.incoming-resolutions__create-btn, .incoming-resolutions__add-btn,
.incoming-resolutions__save-resolution-btn {
    border-radius: 8px; padding: 10px 14px;
    font-size: var(--font_size_button); font-weight: 800;
    line-height: 1; cursor: pointer;
    box-shadow: none;
}

.incoming-resolutions__create-btn,
.incoming-resolutions__save-resolution-btn {
    min-width: 170px; border: 0;
    background: #2f6fdd; color: #ffffff;
}

.incoming-resolutions__add-btn {
    border: 1px solid #d4e2ef; background: #ffffff;
    color: #2f6fdd;
}

.incoming-resolutions__create-btn:hover,
.incoming-resolutions__add-btn:hover,
.incoming-resolutions__save-resolution-btn:hover {
    transform: none; box-shadow: none;
}

.incoming-resolutions__create-btn:disabled,
.incoming-resolutions__add-btn:disabled,
.incoming-resolutions__save-resolution-btn:disabled {
    cursor: default; opacity: 0.58;
}

@media (max-width: 768px) {
    .incoming-resolutions__resolution-actions {
        opacity: 1; pointer-events: auto;
    }
    .incoming-resolutions__resolution-textarea {
        padding-right: 0;
    }
    .incoming-resolutions__meta-row {
        align-items: flex-start; flex-direction: column;
        gap: 2px;
    }
    .incoming-resolutions__actions {
        flex-wrap: wrap;
    }
    .incoming-resolutions__create-btn, .incoming-resolutions__add-btn,
.incoming-resolutions__save-resolution-btn {
        flex: 1 1 180px;
    }
}

.incoming-resolutions__save-order-btn {
    min-width: 170px; border: 0;
    border-radius: 8px; padding: 10px 14px;
    background: #16845b; color: #ffffff;
    font-size: var(--font_size_button); font-weight: 800;
    line-height: 1; cursor: pointer;
    box-shadow: none;
}

.incoming-resolutions__save-order-btn:hover:not(:disabled) {
    background: #126e4c; transform: none;
    box-shadow: none;
}

.incoming-resolutions__save-order-btn:disabled {
    cursor: default; opacity: .58;
}

@media (max-width: 768px) {
    .incoming-resolutions__save-order-btn {
        flex: 1 1 180px;
    }
}

/* Файл DocumentCardResolutionsTreeLayout.css */

.incoming-resolutions__tree {
    position: relative;
    gap: 8px;}

.incoming-resolutions__assignment {
    --assignment-indent: 36px; position: relative;
    display: flex; align-items: flex-start;
    gap: 8px;
    padding-left: calc(var(--assignment-level) * var(--assignment-indent));
    box-sizing: border-box;
}

.incoming-resolutions__tree-line-vertical {
    position: absolute; top: -9px;
    bottom: 50%;
    left: calc((var(--assignment-level) * var(--assignment-indent)) - 18px);
    width: 1px; background: #b7c7d8;
}

.incoming-resolutions__tree-line-horizontal {
    position: absolute; top: 20px;
    left: calc((var(--assignment-level) * var(--assignment-indent)) - 18px);
    width: 18px; height: 1px;
    background: #b7c7d8;
}

.incoming-resolutions__assignment-number {
    position: relative; z-index: 2;
    display: inline-flex; align-items: center;
    justify-content: center; flex: 0 0 23px;
    width: 23px; height: 23px;
    margin-top: 7px; border: 0;
    border-radius: 50%; padding: 0;
    background: #2f6fdd; color: #ffffff;
    font-size: var(--font_size_caption); font-weight: 800;
    line-height: 1; cursor: pointer;
    box-shadow: none;
}

.incoming-resolutions__assignment-number:hover {
    background: #245cc2; transform: none;
    box-shadow: none;
}

.incoming-resolutions__assignment-number--child {
    background: #728198;
}

.incoming-resolutions__assignment-card {
    flex: 1 1 auto; min-width: 0;
    border: 1px solid #d7e0ea; border-radius: 8px;
    background: #ffffff; box-sizing: border-box;
}

.incoming-resolutions__assignment-main {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 12px;
    min-height: 78px; padding: 7px 8px 6px;
    box-sizing: border-box;
}

.incoming-resolutions__assignment-content {
    flex: 1 1 auto; min-width: 0;
}

.incoming-resolutions__assignment-title-input {
    display: block; width: 100%;
    min-height: 30px; margin: 0 0 3px;
    border: 1px solid transparent; border-radius: 4px;
    outline: 0; padding: 0 2px;
    background: transparent; color: #202a3b;
    font: inherit; font-size: var(--font_size_caption);
    font-weight: 800; line-height: 1.3;
    box-sizing: border-box; resize: none;
    overflow: hidden; overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.incoming-resolutions__assignment-title-input:hover,
.incoming-resolutions__assignment-title-input:focus {
    border-color: #dfe7ef; background: #ffffff;
}

.incoming-resolutions__assignment-meta {
    gap: 1px;}

.incoming-resolutions__phone {
    display: inline-grid; grid-template-columns: 16px minmax(0, max-content);
    gap: 5px; align-items: center;
    min-width: 0; color: #63758c;
    white-space: nowrap;
}

/* Файл DocumentCardResolutionsTreeControls.css */

.incoming-resolutions__phone-icon {
    display: inline-flex; width: 16px;
    height: 16px; align-items: center;
    justify-content: center; overflow: hidden;
    color: #63758c; font-size: var(--font_size_caption);
    line-height: 1;
}

.incoming-resolutions__phone-text {
    min-width: 0; line-height: 1.2;
}

.incoming-resolutions__deadline {
    display: inline-flex; align-items: center;
    gap: 3px; width: max-content;
}

.incoming-resolutions__deadline-input {
    width: 168px; min-width: 168px;
    height: 24px; border: 1px solid transparent;
    border-radius: 4px; outline: 0;
    padding: 1px 38px 1px 6px; background: transparent;
    color: #63758c; font: inherit;
    font-size: var(--font_size_0); box-sizing: border-box;
}

.incoming-resolutions__deadline-input::-webkit-calendar-picker-indicator {
    flex: 0 0 auto; margin: 0;
    padding: 3px; cursor: pointer;
}

.incoming-resolutions__deadline-input:hover,
.incoming-resolutions__deadline-input:focus {
    border-color: #dfe7ef; background: #ffffff;
}

.incoming-resolutions__assignment-actions {
    gap: 6px; flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;}

.incoming-resolutions__assignment-save-btn {
    min-width: 86px; border: 1px solid #2f6fdd;
    border-radius: 6px; padding: 5px 8px;
    background: #2f6fdd; color: #ffffff;
    font-size: var(--font_size_caption); font-weight: 800;
    cursor: pointer; box-shadow: none;
}

.incoming-resolutions__assignment-save-btn:hover {
    background: #245cc2; transform: none;
    box-shadow: none;
}

.incoming-resolutions__assignment-save-btn:disabled {
    border-color: #cbd5e1; background: #eef2f7;
    color: #77869a; cursor: default;
}

.incoming-resolutions__status-btn {
    border: 0; padding: 0;
    background: transparent; cursor: pointer;
}

.incoming-resolutions__status-btn:hover {
    background: transparent; transform: none;
    box-shadow: none;
}

.incoming-resolutions__status {
    display: inline-flex; align-items: center;
    justify-content: center; min-width: 78px;
    border-radius: 6px; padding: 5px 9px;
    font-size: var(--font_size_caption); font-weight: 800;
    line-height: 1; white-space: nowrap;
}

.incoming-resolutions__status--progress {
    background: #fff1c8; color: #9a5600;
}

.incoming-resolutions__status--done {
    background: #d4f7e6; color: #126b45;
}

.incoming-resolutions__status--not-started {
    background: #ffe0e0; color: #ad2f2f;
}

.incoming-resolutions__delete-btn {
    display: inline-flex; align-items: center;
    justify-content: center; width: 24px;
    height: 24px; border: 0;
    border-radius: 50%; padding: 0;
    background: #3478b7; color: #ffffff;
    cursor: pointer; opacity: 1;
}

.incoming-resolutions__delete-btn:hover {
    background: #2c689f;
}

/* Файл DocumentCardResolutionsTreeDrag.css */

@media (max-width: 900px) {
    .incoming-resolutions__assignment-main {
        flex-direction: column;
    }
    .incoming-resolutions__assignment-actions {
        width: 100%; justify-content: flex-start;
    }
}

@media (max-width: 768px) {
    .incoming-resolutions__assignment {
        --assignment-indent: 22px;
    }
}

.incoming-resolutions__drag-handle {
    display: inline-flex; width: 22px;
    height: 32px; flex: 0 0 22px;
    align-items: center; justify-content: center;
    margin-top: 2px; padding: 0;
    border: 0; border-radius: 6px;
    background: transparent; color: #7b8ca2;
    font-size: var(--font_size_0); line-height: 1;
    cursor: grab;
}

.incoming-resolutions__drag-handle:hover:not(:disabled) {
    background: #edf4fb; color: #2f6fdd;
    box-shadow: none; transform: none;
}

.incoming-resolutions__drag-handle:active:not(:disabled) {
    cursor: grabbing;
}

.incoming-resolutions__drag-handle:disabled {
    opacity: .3; cursor: default;
}

.incoming-resolutions__assignment--dragging {
    opacity: .45;
}

.incoming-resolutions__assignment--drop-target::after {
    content: ""; position: absolute;
    right: 0; bottom: -4px;
    left: calc(var(--assignment-level) * var(--assignment-indent));
    height: 3px; border-radius: 999px;
    background: #2f6fdd;
}

.incoming-resolutions__assignment input:disabled,
.incoming-resolutions__assignment textarea:disabled,
.incoming-resolutions__assignment button:disabled {
    cursor: default;
}

@media (orientation: portrait) {
    .incoming-resolutions__assignment-main {
        flex-direction: column;
    }
    .incoming-resolutions__assignment-title-input {
        white-space: pre-wrap; overflow-wrap: anywhere;
        word-break: break-word;
    }
    .incoming-resolutions__meta-row {
        flex-wrap: wrap;
    }
    .incoming-resolutions__assignment-actions {
        width: 100%; justify-content: flex-start;
    }
}

/* Файл DocumentCardResolutionsPicker.css */

.drawer-panel--employee-picker {
    z-index: 1100;
}

.incoming-resolutions__employee-picker {
    gap: 12px;
    min-height: 100%;}

.incoming-resolutions__employee-picker-hint,
.incoming-resolutions__employee-picker-state {
    border: 1px solid #d7e7f2; border-radius: 12px;
    padding: 12px 14px; background: #f8fbff;
    color: var(--text-3);
}

.incoming-resolutions__employee-picker-state--error {
    border-color: #f0b9b9; background: #fff5f5;
    color: #b42318;
}

.incoming-resolutions__employee-card {
    gap: 10px; width: 100%;
    border: 1px solid #d7e7f2; border-radius: 12px;
    padding: 10px 12px; background: #ffffff;
    color: var(--text-2); text-align: left;
    box-sizing: border-box;}

.incoming-resolutions__employee-card:hover {
    border-color: #b9d9ed; background: #f8fbff;
}

.incoming-resolutions__employee-avatar {
    display: inline-flex; align-items: center;
    justify-content: center; flex: 0 0 34px;
    width: 34px; height: 34px;
    overflow: hidden; border-radius: 50%;
    background: #eaf4ff;
}

.incoming-resolutions__employee-avatar-image {
    display: block; width: 100%;
    height: 100%; object-fit: cover;
    object-position: center;
}

.incoming-resolutions__employee-avatar-placeholder {
    display: inline-flex; align-items: center;
    justify-content: center; width: 100%;
    height: 100%;
}

.incoming-resolutions__employee-info {
    flex: 1 1 auto; min-width: 0;
    gap: 2px;}

.incoming-resolutions__employee-name-btn {
    width: max-content; max-width: 100%;
    border: 0; padding: 0;
    background: transparent; color: #334155;
    font: inherit; font-weight: 800;
    text-align: left; cursor: pointer;
    box-shadow: none;
}

.incoming-resolutions__employee-name-btn:hover {
    background: transparent; color: var(--accent);
    text-decoration: underline; transform: none;
    box-shadow: none;
}

.incoming-resolutions__employee-phone {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.incoming-resolutions__employee-phone::before {
    content: "☎"; margin-right: 4px;
    color: #63758c; font-size: var(--font_size_button);
}

.incoming-resolutions__employee-select-btn {
    flex: 0 0 auto; border: 1px solid var(--accent);
    border-radius: 7px; padding: 6px 10px;
    background: var(--accent); color: #ffffff;
    font-size: var(--font_size_caption); font-weight: 700;
    cursor: pointer; box-shadow: none;
}

.incoming-resolutions__employee-select-btn:hover {
    background: #2d75b8; transform: none;
    box-shadow: none;
}

@media (max-width: 768px) {
    .drawer-panel--employee-picker {
        width: 98% !important;
    }
    .incoming-resolutions__employee-card {
        align-items: flex-start; flex-wrap: wrap;
    }
    .incoming-resolutions__employee-select-btn {
        margin-left: 44px;
    }
}

/* Файл DocumentCardPersonProfile.css */

.drawer-panel--person-card {
    z-index: 1200;
}

.person-card-drawer {
    gap: 16px;
    min-height: 100%;}

.person-card-drawer__state {
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    padding: var(--font_size_0); background: var(--bg-1);
    color: var(--text-3);
}

.person-card-drawer__header {
    display: flex; align-items: flex-start;
    gap: 16px; border: 1px solid var(--border);
    border-radius: var(--font_size_0); padding: var(--font_size_0);
    background: var(--bg-1);
}

.person-card-drawer__photo-button {
    flex: 0 0 126px; width: 126px;
    height: 158px; justify-content: center;
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--spacing_small); padding: 0;
    background: var(--bg-2); cursor: pointer;
    box-shadow: none;}

.person-card-drawer__photo-button:hover {
    border-color: var(--accent); background: var(--bg-2);
    transform: none; box-shadow: none;
}

.person-card-drawer__photo-button:disabled {
    cursor: wait; opacity: 0.7;
}

.person-card-drawer__photo {
    display: block; width: 100%;
    height: 100%; object-fit: cover;
    object-position: center;
}

.person-card-drawer__photo-placeholder {
    color: var(--text-3); font-size: var(--font_size_0);
}

.person-card-drawer__identity {
    flex: 1 1 auto; min-width: 0;
    align-items: flex-start;
    gap: 6px;}

.person-card-drawer__identity h3 {
    margin: 0; color: var(--blue-navy);
    font-size: var(--font_size_1);
}

.person-card-drawer__identity p {
    margin: 0; color: var(--text-3);
}

.person-card-drawer__upload-btn {
    margin-top: auto; border: 1px solid var(--accent);
    border-radius: var(--spacing_small); padding: 7px 12px;
    background: var(--bg-1); color: var(--accent);
    cursor: pointer; box-shadow: none;
}

.person-card-drawer__upload-btn:hover {
    background: var(--bg-2); transform: none;
    box-shadow: none;
}

.person-card-drawer__fields {
    grid-template-columns: minmax(130px, 0.42fr) minmax(0, 1fr);
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--font_size_0);
    background: var(--bg-1);}

.person-card-drawer__field {
    display: contents;
}

.person-card-drawer__label, .person-card-drawer__value {
    border-bottom: 1px solid var(--border); padding: 10px 12px;
}

.person-card-drawer__label {
    background: var(--bg-2); color: var(--text-3);
    font-weight: 600;
}

.person-card-drawer__value {
    min-width: 0; color: var(--text-2);
    overflow-wrap: anywhere;
}

.person-card-drawer__field:last-child .person-card-drawer__label,
.person-card-drawer__field:last-child .person-card-drawer__value {
    border-bottom: 0;
}

.incoming-resolutions__person-link {
    display: inline; border: 0;
    padding: 0; background: transparent;
    color: inherit; font: inherit;
    font-weight: 800; text-align: left;
    cursor: pointer; box-shadow: none;
}

.incoming-resolutions__person-link:hover {
    background: transparent; color: var(--accent);
    text-decoration: underline; transform: none;
    box-shadow: none;
}

@media (max-width: 700px) {
    .drawer-panel--person-card {
        width: 98% !important;
    }
    .person-card-drawer__header {
        flex-direction: column;
    }
    .person-card-drawer__photo-button {
        width: 108px; height: 136px;
        flex-basis: 136px;
    }
    .person-card-drawer__fields {
        grid-template-columns: 1fr;
    }
    .person-card-drawer__field {
        display: flex; flex-direction: column;
    }
}

/* Файл DocumentCardResolutions.css */

/* Файл DocumentCardDownload.css */

.document-download-panel {
    display: flex; flex-direction: column;
    gap: 18px; padding: 4px;
}

.document-download-panel__section {
    gap: 10px;}

.document-download-panel__section h3 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1);
}

.document-download-panel__formats {
    display: grid; gap: 8px;
}

.document-download-panel__formats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.document-download-panel label {
    display: flex; min-height: 42px;
    align-items: center; gap: 9px;
    padding: 9px 11px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-1); cursor: pointer;
}

.document-download-panel label:has(input:checked) {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-1));
}

.document-download-panel label:has(input:disabled) {
    opacity: 0.55; cursor: not-allowed;
}

.document-download-panel__hint {
    margin: 0; color: var(--text-2);
    font-size: var(--font_size_caption); line-height: 1.35;
}

.document-download-panel__actions {
    display: flex; justify-content: flex-end;
    gap: 8px; padding-top: 12px;
    border-top: 1px solid var(--border);
}

@media (max-width: 600px) {
    .document-download-panel__formats {
        grid-template-columns: 1fr;
    }
}

/* Файл base_and_create.css */

.approval-sheet-panel {
    gap: 20px;}

.approval-sheet-create, .approval-sheet-history {
    display: flex; flex-direction: column;
    gap: 12px;
}

.approval-sheet-create h3, .approval-sheet-history h3 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1);
}

.approval-sheet-create__heading {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 12px;
}

.approval-sheet-create__heading p {
    margin: 4px 0 0; color: var(--text-3);
    font-size: var(--font_size_0);
}

.approval-sheet-create__heading > span {
    padding: 5px 8px; border-radius: 999px;
    background: var(--bg-2); color: var(--text-2);
    font-size: var(--font_size_0);
}

.approval-sheet-mode {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.approval-sheet-mode label, .approval-sheet-employee {
    display: flex; align-items: flex-start;
    gap: 9px; padding: 10px;
    border: 1px solid var(--border); border-radius: 9px;
    background: var(--bg-1); cursor: pointer;
}

.approval-sheet-mode label:has(input:checked),
.approval-sheet-employee:has(input:checked) {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-1));
}

.approval-sheet-mode span, .approval-sheet-employee > span {
    display: flex; min-width: 0;
    flex: 1 1 auto; flex-direction: column;
    gap: 2px;
}

.approval-sheet-mode strong, .approval-sheet-employee strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.approval-sheet-mode small, .approval-sheet-employee small {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.approval-sheet-employees {
    max-height: 340px; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    overflow: auto;}

.approval-sheet-employee {
    position: relative; align-items: center;
}

.approval-sheet-employee--disabled {
    cursor: not-allowed; opacity: 0.62;
}

.approval-sheet-employee__order {
    display: inline-flex; min-width: 30px;
    align-items: center; justify-content: center;
    padding: 3px 6px; border-radius: 999px;
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_caption); font-weight: 700;
}

.approval-sheet-employee em {
    color: var(--danger, #b54b4b); font-size: var(--font_size_caption);
    font-style: normal;
}

.approval-sheet-create__actions, .approval-review-panel__actions {
    display: flex; justify-content: flex-end;
    gap: 8px;
}

.approval-sheet-employee-picker {
    min-height: 260px; gap: 8px;
    padding: 10px; border: 1px solid var(--border);
    border-radius: 9px;
    background: var(--bg-1);}

/* Файл picker_and_order.css */

.approval-sheet-employee-picker__header {
    display: flex; align-items: center;
    justify-content: space-between; gap: 12px;
}

.approval-sheet-employee-picker__header > div {
    display: flex; min-width: 0;
    flex-direction: column; gap: 2px;
}

.approval-sheet-employee-picker__header strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.approval-sheet-employee-picker__header small {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.approval-sheet-employee-picker__header input {
    width: min(300px, 44%); min-height: 34px;
    padding: 0 10px;
}

.approval-sheet-employee-pivot {
    max-height: 360px; overflow: auto;
    border: 1px solid var(--border); border-radius: 8px;
}

.approval-sheet-employee-pivot .pivot-table {
    min-width: 100%;
}

.approval-sheet-selected-order {
    display: flex; flex-direction: column;
    gap: 7px; padding: 9px 10px;
    border: 1px solid var(--border); border-radius: 9px;
    background: var(--bg-2);
}

.approval-sheet-selected-order > strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.approval-sheet-selected-order > div {
    display: flex; flex-wrap: wrap;
    gap: 6px;
}

.approval-sheet-selected-order span {
    display: inline-flex; align-items: center;
    gap: 6px; padding: 5px 8px;
    border: 1px solid var(--border); border-radius: 999px;
    background: var(--bg-1); color: var(--text-2);
    font-size: var(--font_size_caption);
}

.approval-sheet-selected-order b {
    display: inline-flex; width: 20px;
    height: 20px; align-items: center;
    justify-content: center; border-radius: 50%;
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_caption);
}

/* Файл versions_and_reviewers.css */

.approval-sheet-version {
    overflow: hidden; border: 1px solid var(--border);
    border-radius: 10px; background: var(--bg-1);
}

.approval-sheet-version__header {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 12px;
    padding: 10px 12px; border-bottom: 1px solid var(--border);
    background: var(--bg-2);
}

.approval-sheet-version__header > div, .approval-sheet-reviewer > div,
.approval-sheet-reviewer__result {
    display: flex; min-width: 0;
    flex-direction: column; gap: 2px;
}

.approval-sheet-version__header strong, .approval-sheet-reviewer strong {
    color: var(--text-1); font-size: var(--font_size_0);
}

.approval-sheet-version__header small, .approval-sheet-reviewer small {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.approval-sheet-status {
    flex: 0 0 auto; padding: 4px 7px;
    border-radius: 999px; font-size: var(--font_size_caption);
    font-weight: 700;
}

.approval-sheet-status--pending {
    background: #fff2cf; color: #755900;
}

.approval-sheet-status--approved {
    background: #dff4e7; color: #176137;
}

.approval-sheet-status--rejected {
    background: #f9dddd; color: #8c2525;
}

.approval-sheet-reviewer {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 0.8fr);
    gap: 12px; padding: 9px 12px;
    border-bottom: 1px solid var(--border);
}

.approval-sheet-reviewer:last-child {
    border-bottom: 0;
}

.approval-sheet-reviewer__result {
    align-items: flex-end; text-align: right;
}

.approval-sheet-reviewer__result > span {
    color: var(--text-2); font-size: var(--font_size_0);
    font-weight: 700;
}

.approval-sheet-empty {
    padding: 18px; border: 1px dashed var(--border);
    border-radius: 9px; color: var(--text-3);
    text-align: center;
}

/* Файл review_and_mobile.css */

.approval-review-panel {
    display: flex; flex-direction: column;
    gap: 14px;
}

.approval-review-panel p {
    margin: 0; color: var(--text-2);
    line-height: 1.45;
}

.approval-review-panel label {
    display: flex; flex-direction: column;
    gap: 6px; color: var(--text-1);
    font-size: var(--font_size_0); font-weight: 700;
}

.approval-review-panel textarea {
    min-height: 150px; resize: vertical;
    padding: 10px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-1); font: inherit;
    font-weight: 400;
}

@media (max-width: 720px) {
    .approval-sheet-mode, .approval-sheet-employees {
        grid-template-columns: 1fr;
    }
    .approval-sheet-employee-picker__header {
        align-items: stretch; flex-direction: column;
    }
    .approval-sheet-employee-picker__header input {
        width: 100%;
    }
    .approval-sheet-reviewer {
        grid-template-columns: 1fr;
    }
    .approval-sheet-reviewer__result {
        align-items: flex-start; text-align: left;
    }
}

/* Файл DocumentCardApproval.css */

/* Файл 01.css */

/* Файл DocumentCard.css */

/* Базовая оболочка карточки: .doc-card, шапка, номер/дата,
центральная прокручиваемая область, скроллбар, пустое
состояние и нижняя панель с кнопкой. */

/* Вкладка Реквизиты: layout левой части, таблица реквизитов,
левая колонка под ширину текста, значения, бейджи статуса
и поля редактирования (textarea, number, select). */

/* Правый блок "Связанные документы": карточка справа,
заголовок, строки, кнопка Добавить, список связанных
документов, ссылки и кнопка удаления связи. */

/* Вкладка "Лист рассылки": карточки получателей, секции,
поля ввода, кнопки действий и двухколоночная сетка получателей. */

/* Модальное окно подтверждения связи входящего с исходящим:
затемнение, окно, заголовок, текст, кнопки. */

/* Оформление панели выбора исполнителя через TableWidget:
подсказка, контейнер таблицы, hover/active строк, курсор на строках. */

/* Весь адаптив: на мобильной версии "Связанные документы"
уезжают вниз, таблица реквизитов становится вертикальной,
лист рассылки и выбор исполнителя подстраиваются под узкий экран. */

/* Просмотр локально выбранных вложений до отправки. */

.doc-card__attachment-local-open {
    flex: 1; min-width: 0;
    padding: 0; border: 0;
    background: transparent; color: var(--blue-navy);
    font-size: var(--font_size_0); text-align: left;
    cursor: pointer;}

.doc-card__attachment-local-open:hover {
    background: transparent; color: var(--accent);
    box-shadow: none; transform: none;
}

/* Компактная шапка исходящего документа и панели редактирования. */

.doc-card__header--outgoing {
    align-items: center; justify-content: space-between;
}

.doc-card__header-actions {
    flex-wrap: wrap;
    gap: 8px;}

.doc-card__delivery-status {
    padding-left: 10px; border-left: 1px solid var(--border);
    color: var(--text-2); font-size: var(--font_size_0);
}

.doc-card__editor-panel {
    height: 100%; min-height: 0;
    overflow: hidden;
}

.doc-card__editor-panel .doc-editor {
    height: 100%; min-height: 0;
}

.doc-card__related-table-panel {
    height: 100%; min-height: 420px;
    gap: 8px;
    overflow: hidden;}

.doc-card__related-table-content {
    flex: 1 1 auto; min-height: 0;
    overflow: hidden;
}

.doc-card__related-table-content .table-widget,
.doc-card__related-table-content .table-container,
.doc-card__related-table-content .table-wrapper {
    height: 100%; min-height: 0;
    max-height: 100%;
}

/* Реквизиты и вложения карточки располагаются на одном уровне. */

.doc-card__body--sections {
    display: flex; flex-direction: column; padding-right: 0;
}

.doc-card__section {
    flex: 0 0 auto; min-width: 0;
}

.doc-card__section-title {
    margin: 0 0 6px; color: var(--text-1);
    font-size: var(--font_size_0);
}

/* Компактная панель редактора текста документа. */

.document-text-drawer .drawer-body { height: 100%;
}

.document-text-drawer .doc-card__editor-panel {
    display: flex; height: 100%;
    min-height: 0; flex: 1 1 auto;
    flex-direction: column; overflow: hidden;
}

.document-text-drawer .doc-card__editor-panel .doc-editor {
    display: flex; height: 100%;
    min-height: 0; flex: 1 1 auto;
    flex-direction: column; overflow: hidden;
}

.document-text-drawer .doc-editor__topbar,
.document-text-drawer .doc-editor__view-switch {
    flex: 0 0 auto;
}

/* Таблицы входящих и исходящих занимают всю ширину вкладки. */

.documents-table-full-width, .documents-table-full-width .table-widget,
.documents-table-full-width .table-container,
.documents-table-full-width .table-wrapper,
.documents-table-full-width .data-table {
    width: 100%; max-width: 100%;
}

.documents-table-full-width {
    height: 100%; min-height: 0;
    overflow: hidden;
}

/* Редактор текста документа занимает всю высоту DriverPanel. */

.document-text-drawer {
    height: 100dvh;
}

.document-text-drawer .drawer-body {
    display: flex; min-height: 0;
    flex: 1 1 auto; flex-direction: column;
    padding: 0; overflow: hidden;
}

.document-text-drawer .doc-card__editor-panel,
.document-text-drawer .doc-card__editor-panel > * {
    display: flex; width: 100%;
    min-height: 0; flex: 1 1 auto;
    flex-direction: column; overflow: hidden;
}

.document-text-drawer .doc-editor {
    width: 100%; height: 100%;
    min-height: 0; flex: 1 1 auto;
}

.document-text-drawer .doc-editor__topbar {
    flex: 0 0 auto;
}

.document-text-drawer .doc-editor__view-switch {
    flex: 0 0 auto;
}

.document-text-drawer .doc-editor__viewport {
    height: auto; min-height: 0;
    max-height: none; flex: 1 1 auto;
}

.document-text-drawer .doc-editor__review-panel {
    height: auto; min-height: 0;
    max-height: none;
}

/* Файл 02.css */

/* Дополнительное растягивание редактора текста документа
 * внутри DriverPanel. */

.document-text-drawer.drawer-panel {
    height: 100dvh; max-height: 100dvh;
}

.document-text-drawer .drawer-body,
.document-text-drawer .drawer-body--fixed,
.document-text-drawer .drawer-body--scrollable {
    display: flex; height: calc(100dvh - 50px);
    min-height: 0; flex: 1 1 auto;
    flex-direction: column; padding: 0;
    overflow: hidden;
}

.document-text-drawer .doc-card__editor-panel,
.document-text-drawer .doc-card__editor-panel > div,
.document-text-drawer .doc-editor {
    display: flex; width: 100%;
    height: 100%; min-height: 0;
    flex: 1 1 auto; flex-direction: column;
    overflow: hidden;
}

.document-text-drawer .doc-editor__layout {
    display: flex; height: auto;
    min-height: 0; flex: 1 1 0;
    align-items: stretch; overflow: hidden;
}

.document-text-drawer .doc-editor__viewport,
.document-text-drawer .doc-editor__review-panel {
    height: auto; min-height: 0;
    max-height: none; flex: 1 1 auto;
}

.document-text-drawer .doc-editor__review-panel {
    flex: 0 0 238px;
}

.document-text-drawer .doc-editor__bottom-panel {
    flex: 0 0 26px;
}

/* Входящая карточка: разделитель между реквизитами и письмом
   совпадает с разлиновкой строк реквизитов. */

.doc-card__body--incoming {
    gap: 0;
}

.doc-card__body--incoming .doc-card__section--attachments {
    margin-top: 8px;
}

.document-text-drawer .document-templates-panel {
    min-height: 0; flex: 1 1 auto;
}

/* Файл DocumentCardVisualRefinements.css */

.doc-card, .doc-card__distribution, .approval-sheet-panel,
.document-download-panel {
    font-family: var(--font_family_interface);
}

.doc-card :is(button, input, select, textarea):not(.doc-editor *),
.doc-card__distribution :is(button, input, select, textarea),
.approval-sheet-panel :is(button, input, select, textarea),
.document-download-panel :is(button, input, select, textarea) {
    font-family: var(--font_family_interface);
}

.doc-card__header {
    padding-bottom: var(--spacing_small);
    border-bottom: 2px solid var(--surface-primary);
}

.doc-card__footer {
    border-top: 2px solid var(--surface-primary);
}

.doc-card__section, .approval-sheet-panel section,
.document-download-panel__section {
    padding: 12px; border: 2px solid var(--surface-primary);
    border-radius: 10px;
    background: color-mix(
        in srgb,
        var(--surface-primary) 10%,
        transparent
    ); box-sizing: border-box;
}

.doc-card__section + .doc-card__section,
.approval-sheet-panel section + section,
.document-download-panel__section + .document-download-panel__section {
    margin-top: 10px; padding-top: 12px;
    border-top: 2px solid var(--surface-primary);
}

.doc-card__table tr {
    border-bottom: 1px solid var(--surface-primary);
}

.doc-card__body--incoming .doc-card__section--email {
    border-top: 2px solid var(--surface-primary);
}

.doc-card__related {
    border: 2px solid var(--surface-primary) !important;
    box-shadow: 0 0 0 1px var(--divider-soft);
}

.doc-card__related-row-head {
    padding-bottom: var(--spacing_small);
    border-bottom: 1px solid var(--surface-primary);
}

.doc-card__related-item, .doc-card__recipient-card,
.doc-card__recipient-section-header, .doc-card__distribution-empty,
.doc-card__distribution-mode, .document-download-panel label {
    border-color: var(--surface-primary);
    box-shadow: 0 0 0 1px var(--divider-soft);
}

.doc-card__distribution-header, .doc-card__recipient-card-header,
.document-download-panel__actions {
    padding-bottom: var(--spacing_small);
    border-bottom: 1px solid var(--surface-primary);
}

.doc-card__field-input, .doc-card__field-select,
.doc-card__distribution-input {
    font-family: var(--font_family_interface);
}

.doc-card__body--sections {
    gap: 0; padding: 12px;
    border: 2px solid var(--surface-primary); border-radius: 10px;
    background: color-mix(
        in srgb,
        var(--surface-primary) 10%,
        transparent
    ); box-sizing: border-box;
}

.doc-card__body--sections > .doc-card__section {
    padding: 0; border: 0;
    border-radius: 0; background: transparent;
}

.doc-card__body--sections > .doc-card__section + .doc-card__section {
    margin-top: 0; padding-top: 12px;
    border-top: 2px solid var(--surface-primary);
}

.doc-card__body--sections > .doc-card__section:last-child {
    margin-top: 0; padding-top: var(--spacing_small);
    border-top: 1px solid var(--surface-primary);
}

.doc-card__body--incoming > .doc-card__section--email:empty {
    display: none;
}

.doc-card__section--attachments .doc-card__related-row-head {
    border-bottom: 0 !important; box-shadow: none !important;
}

/* Файл DocumentCardHistory.css */

.document-history {
    height: 100%; min-height: 0;
    gap: var(--spacing_small);}

.document-history__compact-filter {
    display: flex; flex: 0 0 auto;
    align-items: flex-end; gap: var(--spacing_small);
    padding: var(--spacing_small);
}

.document-history__search {
    min-width: min(360px, 100%); flex: 1 1 320px;
    gap: calc(var(--spacing_small) / 2);}

.document-history__compact-filter input,
.document-history__compact-filter select,
.document-history__filters input, .document-history__filters select {
    min-height: var(--button-min-height); box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.document-history__filters {
    display: grid; flex: 0 0 auto;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: var(--spacing_small); padding: var(--spacing_small);
}

.document-history__filters label {
    display: grid; gap: calc(var(--spacing_small) / 2);
}

.document-history__tablewrap {
    min-height: 0; flex: 1 1 auto;
    overflow: hidden;
}

.document-history__tablewrap .table-widget-container {
    min-width: 1180px;
}

@media (orientation: landscape) {
    .document-history-driver-panel {
        width: 85vw !important; max-width: 85vw !important;
    }
}

@media (max-width: 900px) {
    .document-history__compact-filter, .document-history__filters {
        grid-template-columns: 1fr; align-items: stretch;
    }
    .document-history__compact-filter {
        display: grid;
    }
}

/* Файл DocumentCard.css */

/* Файл document_office_selector.css */

.document-office-selector {
    position: relative; gap: 6px;
    min-width: 0; width: 100%;
    padding: 10px 12px; border: 1px solid var(--border);
    border-radius: 12px;
    background: linear-gradient(180deg, var(--bg-1), var(--bg-2));
    box-sizing: border-box;}

.document-office-selector::after {
    content: '▾'; position: absolute;
    right: 24px; bottom: 19px;
    color: var(--accent-blue); font-size: var(--font_size_caption);
    pointer-events: none;
}

.document-office-selector__label-row {
    justify-content: space-between;
    gap: var(--spacing_xs);}

.document-office-selector__label {
    font-size: var(--font_size_caption); font-weight: 600;
    color: var(--text-1); opacity: 0.92;
}

.document-office-selector__count {
    display: inline-flex; align-items: center;
    justify-content: center; min-width: 24px;
    height: 24px; padding: 0 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    color: var(--accent-blue); font-size: var(--font_size_caption);
    font-weight: 600; box-sizing: border-box;
}

.document-office-selector__control, .document-office-selector select {
    appearance: none; box-sizing: border-box;
    min-height: var(--button-min-height); max-width: 100%;
    width: 100%; padding-right: 34px;
    border: 1px solid var(--border); border-radius: 10px;
    background: var(--bg-1); color: var(--text-1);
    transition:
        border-color .16s ease,
        box-shadow .16s ease,
        background-color .16s ease;
}

.document-office-selector__control:hover:not(:disabled),
.document-office-selector select:hover:not(:disabled) {
    border-color: var(--accent);
}

.document-office-selector__control:focus,
.document-office-selector__control:focus-visible,
.document-office-selector select:focus,
.document-office-selector select:focus-visible {
    outline: none; border-color: var(--accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}

.document-office-selector__control:disabled,
.document-office-selector select:disabled {
    opacity: 0.8; cursor: not-allowed;
    background: var(--bg-2);
}

/* Файл documents_tab_mobile_scroll.css */

.documents-tab-layout {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
}

@media (orientation: portrait) {
    .documents-tab-layout {
        overflow-x: hidden; overflow-y: auto;
        overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    }
    .documents-tab-layout > .grid-container--portrait-flow {
        height: auto; min-height: 0;
        overflow: visible;
    }
    .documents-tab-layout > .grid-container--portrait-flow >
.grid-item:has(.tab-content-item.active .doc-card) {
        min-height: 0; height: auto;
        flex: 0 0 auto; overflow: visible;
    }
    .documents-tab-layout .tab-widget-container:has(.tab-content-item.active
.doc-card),
.documents-tab-layout .tab-container-top:has(.tab-content-item.active
.doc-card),
.documents-tab-layout .tab-content-wrapper:has(.tab-content-item.active
.doc-card),
.documents-tab-layout
    .tab-content-item.active:has(.doc-card) {
        height: auto; min-height: 0;
        max-height: none; overflow: visible;
    }
    .documents-tab-layout .tab-content-item.active .doc-card {
        height: auto; min-height: 0;
        max-height: none; overflow: visible;
    }
    .documents-tab-layout .tab-content-item.active .doc-card__body {
        min-height: 0; max-height: none;
        overflow-x: hidden; overflow-y: visible;
    }
    .documents-tab-layout .tab-content-item.active .doc-card__footer {
        position: static;
    }
}

@media (orientation: portrait) {
    .documents-tab-layout > .grid-container--portrait-flow {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-flow: row; grid-auto-rows: min-content;
        align-content: start; align-items: start;
        gap: var(--spacing_small);
    }
    .documents-tab-layout > .grid-container--portrait-flow
        > .grid-item:nth-child(-n + 4) {
        min-width: 0;
    }
    .documents-tab-layout > .grid-container--portrait-flow
        > .grid-item:nth-child(-n + 4) > .btn {
        width: 100%;
    }
    .documents-tab-layout > .grid-container--portrait-flow
        > .grid-item:nth-child(n + 5) {
        grid-column: 1 / -1 !important;
    }
}

/* Файл documents_context_panel.css */

.documents-tab-layout--contextual {
    position: relative; width: 100%;
    height: 100%; min-width: 0;
    min-height: 0;
}

.documents-context-sidebar__body {
    min-height: 0; flex: 1 1 auto;
    gap: var(--tab-sidebar-item-gap); overflow-x: hidden;
    overflow-y: auto;}

.documents-context-sidebar__body > .contextual-sidebar__tabs {
    flex: 0 0 auto; overflow: visible;
}

.documents-context-view {
    flex: 0 0 auto; min-width: 0;
    color: var(--sidebar-text);
    font-size: var(--font_size_0);}

.documents-context-view .radio-button-list,
.documents-context-view .radio-label,
.documents-context-view .radio-content,
.documents-context-view .radio-text,
.documents-context-view .radio-list-label {
    color: var(--sidebar-text); font-size: var(--font_size_0) !important;
    line-height: 1.2;
}

.documents-context-view .radio-list-label {
    margin-bottom: var(--tab-sidebar-item-gap); font-weight: 400;
}

.documents-context-view .options-container {
    gap: var(--tab-sidebar-item-gap);
}

.documents-context-view .radio-label {
    min-height: 2.2rem; padding: 0.35rem 0.5rem;
    border: 1px solid transparent; border-radius: 7px;
}

.documents-context-view .radio-label:hover {
    background: var(--sidebar-tab-hover);
    border-color: var(--sidebar-tab-border);
}

.documents-context-view .radio-custom {
    border-color: color-mix(
        in srgb,
        var(--sidebar-text) 65%,
        transparent
    );
}

.documents-context-view .radio-input:checked ~ .radio-custom {
    border-color: var(--active-tab-background);
    background: var(--active-tab-background);
}

.documents-context-actions {
    flex: 0 0 auto; gap: var(--tab-sidebar-item-gap);
    margin-top: auto;}

.documents-context-actions .btn {
    width: 100%; font-size: var(--tab-sidebar-font-size);
}

.documents-table-full-width {
    width: 100%; height: calc(100% + var(--table-workspace-edge-gap));
    min-width: 0; min-height: 0;
    margin-bottom: calc(0px - var(--table-workspace-edge-gap));
}

.documents-table-full-width > .table-widget,
.documents-table-full-width > .pivot-table-container {
    width: 100%; height: 100%;
    max-height: 100%; min-width: 0;
    min-height: 0; margin: 0;
}

/* Файл court_cases.css */

.court-cases-list,
.court-case-card {
    display: flex;
    flex-direction: column;
    gap: var(--spacing_medium);
    min-height: 0;
}

.court-cases-toolbar,
.court-case-card__toolbar,
.court-case-actions,
.court-case-documents-title {
    gap: var(--spacing_small);
    flex-wrap: wrap;
}

.court-case-card {
    overflow: auto;
    padding: var(--spacing_medium);
}

.court-case-section {
    border: 1px solid var(--border-color);
    border-radius: var(--radius_large);
    background: var(--surface-primary);
    padding: var(--spacing_medium);
}

.court-case-section__title {
    margin-bottom: var(--spacing_small);
    font-weight: 700;
}

.court-case-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(220px, 1fr)
    );
    gap: var(--spacing_small);
}

.court-case-grid--two {
    grid-template-columns: repeat(
        auto-fit,
        minmax(260px, 1fr)
    );
}

.court-case-section label {
    display: flex;
    flex-direction: column;
    gap: var(--spacing_xs);
}

.court-case-section input,
.court-case-section select,
.court-case-section textarea {
    width: 100%;
    box-sizing: border-box;
}

.court-case-section textarea {
    min-height: 88px;
    resize: vertical;
}

.court-case-selected,
.court-case-legal-note,
.court-case-warning,
.court-case-help {
    margin-bottom: var(--spacing_small);
}

.court-case-warning,
.court-case-reminder {
    border-left: 4px solid var(--accent-2);
}

.court-case-check {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 180px;
    gap: var(--spacing_small);
    align-items: center;
    margin-bottom: var(--spacing_small);
}

.court-case-check label {
    flex-direction: row;
}

.court-case-check input[type="checkbox"] {
    width: auto;
}

.court-case-balance {
    display: flex;
    gap: var(--spacing_medium);
    flex-wrap: wrap;
    margin-top: var(--spacing_medium);
}

.court-case-balance > div {
    display: flex;
    gap: var(--spacing_small);
}

.court-case-loading {
    padding: var(--spacing_large);
}

@media (max-width: 700px) {
    .court-case-card {
        padding: var(--spacing_small);
    }

    .court-case-check {
        grid-template-columns: 1fr;
    }
}

/* Файл window_add_service.css */

.add-service-form {
    gap: 16px;
    padding: 8px 4px;}

.add-service-actions {
    display: flex; justify-content: flex-end;
    margin-top: 8px;
}

/* Файл 01.css */

/* Файл window_service.css */

/* ─── Layout ─────────────────────────────────────────────── */

.service-layout {
    display: grid; margin-right: 0px;
    grid-template-columns: 340px minmax(0, 1fr); height: 100%;
    min-height: 0; overflow: hidden;
}

.service-layout--wide {
    grid-template-columns: 55% minmax(0, 1fr);
}

.service-card--sidebar, .service-card--content {
    display: flex; flex-direction: column;
    min-height: 0; overflow: hidden;
}

/* ─── Внутренняя структура карточки ─────────────────────── */

.service-layout .service-card__header {
    display: flex; margin-bottom: 10px;
    align-items: flex-start; justify-content: space-between;
    gap: 16px;
}

.service-card__title {
    margin: 0; font-size: var(--font_size_button);
    font-weight: 700; line-height: 1.2;
    color: #172033;
}

.service-card__subtitle {
    margin: 5px 0 0 0; font-size: var(--font_size_caption);
    line-height: 1.4; color: #6b7280;
}

.service-card__body {
    flex: 1; min-height: 0;
    overflow: hidden;
}

/* Если внутри PivotTable / TableWidget нужно занять всё место */

.service-card__body--pivot {
    min-height: 0;}

.service-card__body--pivot > * {
    flex: 1; min-height: 0;
}

/* ─── Toolbar ────────────────────────────────────────────── */

.service-toolbar {
    gap: 8px; flex-wrap: wrap;
    flex-shrink: 0;}

.service-toolbar--stack {
    flex-direction: column; align-items: stretch;
}

/* ─── Empty state ────────────────────────────────────────── */

/* ─── Badges ─────────────────────────────────────────────── */

.badge-current, .badge-planned, .badge-archive {
    display: inline-flex; align-items: center;
    border-radius: 999px; padding: 3px 10px;
    font-size: var(--font_size_caption); font-weight: 700;
    line-height: 1.4; white-space: nowrap;
}

.badge-current {
    background: #dcfce7; color: #166534;
}

.badge-planned {
    background: #ffedd5; color: #9a3412;
}

.badge-archive {
    background: #e5e7eb; color: #475569;
}

/* ─── Detail panel ───────────────────────────────────────── */

.service-card--detail {
    position: relative; border: 1px solid #bfdbfe;
    box-shadow: inset 0 0 0 1px #dbeafe;
}

.service-card__header--detail {
    position: relative;
    background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
    border-bottom: 1px solid #dbeafe;
}

.service-card__header--detail::before {
    content: ""; position: absolute;
    left: 0; top: 0;
    bottom: 0; width: 4px;
    background: linear-gradient(180deg, #3b82f6 0%, #60a5fa 100%);
    border-radius: 0 4px 4px 0;
}

.service-detail-badge {
    display: inline-flex; align-items: center;
    padding: 4px 10px; margin-bottom: 8px;
    border-radius: 999px; background: #dbeafe;
    color: #1d4ed8; font-size: var(--font_size_caption);
    font-weight: 700; line-height: 1;
    letter-spacing: 0.02em;
}

.service-card--sidebar .service-toolbar--stack {
    align-items: stretch;
}

/* ─── Отступы внутри окна услуги ────────────────────────── */

.drawer-panel--service .drawer-body {
    padding-top: 0px;
}

.service-layout {
    padding-bottom: 0px
}

/* ─── Значение по нормативу под левой таблицей ───────────── */

.norm-value-wrap {
    gap: 6px; margin-top: 12px;
    flex-shrink: 0;}

.norm-value-label {
    font-size: var(--font_size_caption); line-height: 1.4;
    color: #6b7280;
}

.norm-value-input {
    width: 100%; box-sizing: border-box;
    padding: 8px 10px; border: 1px solid #cfd8e6;
    border-radius: 8px; background: #ffffff;
    font-size: var(--font_size_caption); line-height: 1.4;
    color: #172033; outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

@media (max-aspect-ratio: 1 / 1) {
    /* Контейнер услуги перестаёт «обрезать» содержимое
       и растёт по сумме высот двух карточек */
    .service-layout, .service-layout--wide {
        grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto;
        height: auto; min-height: 100%;
        overflow: visible;
    }
    /* Карточки больше не обрезают себя по высоте */
    .service-card--sidebar, .service-card--content {
        min-height: 0; overflow: visible;
    }
    .service-card__body {
        overflow: visible;
    }
    /* В портретном режиме прокручивается всё содержимое окна услуги,
       а не отдельные таблицы внутри вкладки. */
    .drawer-panel--service .drawer-body {
        overflow-y: auto; overscroll-behavior-y: contain;
    }
    .drawer-panel--service .tab-widget-container,
.drawer-panel--service .tab-container-top,
.drawer-panel--service .tab-content-wrapper,
.drawer-panel--service .tab-content-item.active {
        height: auto !important; max-height: none !important;
        min-height: 0; overflow: visible !important;
    }
    .drawer-panel--service .service-layout .table-widget,
.drawer-panel--service .service-layout .table-container,
.drawer-panel--service .service-layout .table-wrapper,
.drawer-panel--service .service-layout .pivot-table-container {
        height: auto !important; max-height: none !important;
        overflow: visible !important;
    }
}

.service-card__heading-row {
    min-width: 0;
    gap: var(--spacing_small);}

.service-card__heading-row .info-driver-button {
    width: 24px; height: 24px;
    flex-basis: 24px;
}

.service-card--sidebar .service-toolbar {
    justify-content: flex-end;
}

@media (max-width: 760px) {
    .service-layout .service-card__header {
        flex-direction: column;
    }
    .service-card--sidebar .service-toolbar {
        width: 100%; justify-content: stretch;
    }
    .service-card--sidebar .service-toolbar .btn {
        flex: 1 1 150px;
    }
}

/* Файл 02.css */

@media (max-aspect-ratio: 1 / 1) {
    .drawer-panel--service {
        width: 100% !important; max-width: 100vw;
    }
    .drawer-panel--service .drawer-body {
        max-width: 100%; padding: var(--spacing_small);
        overflow-x: hidden;
    }
    .drawer-panel--service .tab-widget-container,
.drawer-panel--service .tab-container-top,
.drawer-panel--service .tab-content-wrapper,
.drawer-panel--service .tab-content-item.active,
.drawer-panel--service .add-service-form,
.drawer-panel--service .form-field-container,
.drawer-panel--service .form-field-row,
.drawer-panel--service .form-field-item,
.drawer-panel--service .form-field-content {
        width: 100%; max-width: 100%;
        min-width: 0; box-sizing: border-box;
    }
    .drawer-panel--service .form-field-row {
        display: block;
    }
    .drawer-panel--service .form-field-item {
        margin-bottom: var(--font_size_0);
    }
    .drawer-panel--service .form-field-content,
.drawer-panel--service .form-field-left .form-field-content,
.drawer-panel--service .form-field-right .form-field-content {
        align-items: stretch; flex-direction: column;
        gap: calc(var(--spacing_small) * .5);
    }
    .drawer-panel--service .form-field-text {
        min-width: 0; white-space: normal;
    }
    .drawer-panel--service .form-field-input,
.drawer-panel--service .form-field-textarea,
.drawer-panel--service .form-field-select {
        width: 100%; max-width: 100%;
        min-width: 0; box-sizing: border-box;
    }
    .drawer-panel--service .add-service-actions {
        width: 100%; justify-content: flex-end;
    }
}

.service-detail-heading-row {
    gap: var(--spacing_small);}

.service-detail-heading-row .service-detail-badge {
    margin-bottom: 0;
}

.service-detail-heading-row .info-driver-button {
    width: 24px; height: 24px;
    flex-basis: 24px;
}

.service-period-pivot .header-label {
    white-space: nowrap;
}

/* Файл window_service.css */

/* Файл tab_tarif_and_servises.css */

.services-table-layout {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    grid-template-columns: minmax(0, 1fr) 118px; gap: 4px;
    box-sizing: border-box;}

.services-table-layout__table {
    min-width: 0; min-height: 0;
    overflow: hidden;
}

.services-table-layout__actions {
    min-width: 0; align-items: flex-end;
    justify-content: flex-start;
    gap: 8px;}

.services-table-layout__actions > * {
    max-width: 100%;
}

@media (orientation: portrait) {
    .services-table-layout {
        height: auto; min-height: 100%;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: minmax(56dvh, 1fr) auto; gap: 6px;
    }
    .services-table-layout__table {
        min-height: 56dvh;
    }
    .services-table-layout__actions {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }
}

/* Файл CalendarModal.css */

.calendar-modal-overlay {
    position: fixed; top: 0;
    left: 0; right: 0;
    bottom: 0; background-color: rgba(0, 0, 0, 0.5);
    justify-content: center;
    z-index: 1000;}

.calendar-modal {
    background-color: white; border-radius: 8px;
    padding: 20px; width: 400px;
    box-shadow: 0  4px 20px rgba(0, 0, 0, 0.2);
}

.calendar-header {
    justify-content: space-between; margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e0e0e0;}

.calendar-year {
    font-size: var(--font_size_3); font-weight: bold;
    color: #333;
}

.calendar-nav-button {
    background: none; border: 1px solid #ddd;
    border-radius: 4px; width: 40px;
    height: 40px; font-size: var(--font_size_1);
    cursor: pointer; display: flex;
    align-items: center; justify-content: center;
    transition: all 0.2s;
    /* Глобальный селектор button {color: #ffff} в app_styling.css
       красит весь текст кнопок в белый. Возвращаем читаемый цвет
       стрелкам < и >. */
    color: #333; background-color: white;
}

.calendar-nav-button:hover {
    background-color: #f5f5f5; border-color: #999;
}

.calendar-months-grid {
    grid-template-columns: repeat(3, 1fr); gap: 10px;
    margin-bottom: 20px;}

.calendar-month-button {
    padding: 12px 8px; border: 1px solid #ddd;
    border-radius: 4px; background-color: white;
    cursor: pointer; font-size: var(--font_size_caption);
    transition: all 0.2s;
    /* Без явного color глобальное правило button {color: #ffff}
       делает текст невидимым (белым на белом фоне). */
    color: #333;
}

.calendar-month-button:hover {
    background-color: #f0f0f0; border-color: #999;
}

.calendar-month-button.selected {
    background-color: #007bff; color: white;
    border-color: #0056b3;
}

.calendar-footer {
    display: flex; justify-content: flex-end;
    padding-top: 10px; border-top: 1px solid #e0e0e0;
    gap: var(--spacing_small);
}

.calendar-close-button {
    padding: 8px 16px; background-color: #6c757d;
    color: white; border: none;
    border-radius: 4px; cursor: pointer;
    font-size: var(--font_size_caption); transition: background-color 0.2s;
}

.calendar-close-button:hover {
    background-color: #5a6268;
}

.calendar-date-title {
    margin-bottom: var(--font_size_0); color: var(--text-1);
    font-size: var(--font_size_1); font-weight: 700;
}

.calendar-date-input {
    width: 100%; min-height: calc(var(--font_size_0) * 2.4);
    box-sizing: border-box; margin-bottom: var(--font_size_0);
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1); font-family: var(--font_family_interface);
    font-size: var(--font_size_0);
}

.calendar-select-button {
    padding: var(--spacing_small) var(--font_size_0); border: 0;
    border-radius: var(--spacing_small); background: var(--accent);
    color: var(--on-accent); font-size: var(--font_size_0);
    cursor: pointer;
}

.calendar-select-button:hover {
    background: var(--accent-blue); transform: none;
}

/* Файл tab_counters.css */

.counters-page {
    --counters-catalog-width: 30%;
    --counters-heading-padding: calc(var(--font_size_0) / 2);
    --counters-heading-gap: calc(var(--spacing_small) / 2); width: 100%;
    height: 100%; min-width: 0;
    min-height: 0; box-sizing: border-box;
    gap: var(--spacing_small); overflow: hidden;
    color: var(--text-1);}

.counters-page__intro {
    flex: 0 0 auto; justify-content: space-between;
    gap: var(--spacing_small); margin: 0;
    padding: var(--counters-heading-padding); border: 1px solid var(--border);
    border-radius: var(--font_size_1); background: var(--bg-1);}

.counters-page__intro h2, .counters-card__header h3 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_0); line-height: 1.2;
}

.counters-page__intro p, .counters-card__header p,
.counters-card__empty p {
    margin: var(--counters-heading-gap) 0 0; color: var(--text-3);
    font-size: var(--font_size_0); line-height: 1.35;
}

.counters-toolbar {
    flex: 0 0 auto; flex-wrap: wrap;
    justify-content: flex-end; gap: var(--spacing_small);
    min-width: 0;}

.counters-toolbar .btn {
    margin: 0;
}

.counters-page__workspace {
    min-width: 0;
    grid-template-columns:
        minmax(0, var(--counters-catalog-width)) minmax(0, 1fr);
    gap: var(--spacing_small);
    align-items: stretch;}

.counters-card { min-height: 0;
    margin: 0; padding: 0;
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--font_size_1); background: var(--bg-1);}

.counters-card--catalog, .counters-card--details {
    margin-top: 0;
}

.counters-card__header {
    display: flex; flex: 0 0 auto;
    align-items: flex-start; justify-content: space-between;
    gap: var(--counters-heading-gap); padding: var(--counters-heading-padding);
    border-bottom: 1px solid var(--border); background: var(--bg-2);
}

.counters-card__header > div {
    min-width: 0;
}

.counters-card__badge {
    display: inline-flex; flex: 0 0 auto;
    align-items: center; max-width: 45%;
    box-sizing: border-box; padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--font_size_1);
    background: var(--bg-1); color: var(--text-3);
    font-size: var(--font_size_caption); white-space: normal;
}

.counters-card__badge--active {
    border-color: var(--accent); color: var(--accent-blue);
}

.counters-card__table {
    position: relative; display: flex;
    min-width: 0; min-height: 0;
    flex: 1 1 auto; overflow: hidden;
}

.counters-card__table > .table-widget {
    flex: 1 1 auto; max-height: none;
}

.counters-card__table .table-container {
    border: 0; border-radius: 0;
    box-shadow: none;
}

.counters-card__empty {
    width: 100%; min-height: 220px;
    box-sizing: border-box; justify-content: center;
    padding: var(--font_size_1);
    text-align: center;}

.counters-card__empty-mark {
    display: inline-flex; width: calc(var(--font_size_0) * 4);
    height: calc(var(--font_size_0) * 4); align-items: center;
    justify-content: center; margin-bottom: var(--spacing_small);
    border: 1px solid var(--border); border-radius: 50%;
    background: var(--bg-2); color: var(--accent-blue);
    font-size: var(--font_size_0);
}

.counters-card__empty strong {
    color: var(--text-1); font-size: var(--font_size_1);
}

.counters-import-panel__content, .counters-import-report {
    display: flex; flex-direction: column;
    gap: var(--font_size_0); margin: 0;
}

.counters-import-panel__file, .counters-import-panel__modes {
    display: flex; flex-direction: column;
    gap: var(--spacing_small);
}

.counters-import-panel__file, .counters-import-panel__modes label {
    color: var(--text-1); font-size: var(--font_size_0);
}

.counters-import-panel__modes label {
    display: flex; align-items: center;
}

.counters-import-panel__file input {
    width: 100%; max-width: 100%;
    box-sizing: border-box;
}

.counters-import-panel__modes input {
    margin: 0 var(--spacing_small) 0 0;
}

.counters-import-panel__submit {
    align-self: flex-end; margin: 0;
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_button);
}

.counters-import-panel__submit:disabled {
    opacity: 0.55; cursor: not-allowed;
}

.counters-import-report {
    margin-top: var(--spacing_small);
}

.counters-import-report h3, .counters-import-report h4 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1);
}

.counters-import-report__summary {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: var(--spacing_small);}

.counters-import-report__summary span {
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-2);
    color: var(--text-1); font-size: var(--font_size_0);
}

.counters-import-report__table {
    height: auto; max-height: none;
}

.counters-import-report__table .table-container,
.counters-import-report__table .table-wrapper {
    max-height: none; overflow-y: visible;
}

@media (orientation: portrait), (max-width: 900px) {
    .counters-page {
        height: 100%; overflow-x: hidden;
        overflow-y: auto; overscroll-behavior: contain;
        scrollbar-gutter: stable;
    }
    .counters-page__intro {
        align-items: stretch; flex-direction: column;
    }
    .counters-toolbar {
        justify-content: stretch;
    }
    .counters-toolbar .btn {
        flex: 1 1 100%; width: 100%;
    }
    .counters-page__workspace {
        display: flex; flex: 0 0 auto;
        flex-direction: column;
    }
    .counters-card {
        flex: 0 0 auto; min-height: min(62dvh, 560px);
    }
    .counters-card__header {
        flex-direction: column;
    }
    .counters-card__badge {
        max-width: 100%;
    }
}

.counters-card__title-row {
    min-width: 0;
    gap: var(--spacing_small);}

.counters-card__title-row .info-driver-button {
    width: 24px; height: 24px;
    flex-basis: 24px;
}

/* Файл meter_reading_year_selector.css */

.meter-reading-year-selector {
    min-width: 0;
    gap: var(--spacing_small);}

.meter-reading-year-selector__add {
    min-width: 0; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: calc(var(--spacing_small) / 2);}

.meter-reading-year-selector__add input {
    width: 100%; min-width: 0;
    min-height: var(--meter-readings-control-height, var(--button-min-height));
    box-sizing: border-box; margin: 0;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--radius_relaxed);
    background: var(--bg-1); color: var(--text-1);
    font-size: var(--font_size_0); text-align: center;
    box-shadow: var(--shadow-soft, none);
}

.meter-reading-year-selector__add input::placeholder {
    color: var(--text-3);
}

.meter-reading-year-selector__add input:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
    outline-offset: 2px;
}

@media (orientation: portrait), (max-width: 680px) {
    .meter-reading-year-selector {
        gap: var(--spacing_xs);
    }
    .meter-reading-year-selector .selection-list-shell--portrait-collapse
.selection-list-portrait-toggle {
        min-height: 36px;
        padding: var(--button-padding-block) var(--button-padding-inline);
        border-radius: var(--radius_xl); font-size: var(--font_size_0);
    }
    .meter-reading-year-selector__add {
        gap: var(--spacing_compact);
    }
}

/* Файл meter_readings_navigation.css */

.meter-readings-navigation {
    --meter-readings-control-height: var(--button-min-height); min-width: 0;
    width: max-content; max-width: 100%;
    grid-template-columns: 52px 52px;
    grid-template-rows: auto minmax(0, 1fr) auto auto; align-items: start;
    gap: var(--spacing_dense); height: auto;
    overflow: visible;}

.meter-readings-navigation > .dropdown-container,
.meter-readings-navigation > .btn {
    min-height: var(--meter-readings-control-height); align-self: start;
}

.meter-readings-navigation > .dropdown-container {
    width: 52px;
}

.meter-readings-navigation > .dropdown-container .dropdown-button {
    width: 100%; min-width: 0;
}

.meter-readings-navigation__years {
    min-width: 0; min-height: 0;
    grid-column: 1 / -1; grid-row: 2;
    overflow: auto;
}

.meter-readings-navigation__years .selection-list {
    height: 100%; margin: 0;
}

.meter-readings-left-actions {
    min-width: 0; grid-column: 1 / -1;
    grid-row: 3; flex-direction: row;
    gap: var(--spacing_dense);}

.meter-readings-left-actions > .btn {
    flex: 1 1 auto; max-width: 260px;
}

.meter-readings-navigation__bottom-action {
    display: flex; min-width: 0;
    grid-column: 1 / -1; grid-row: 4;
    align-items: flex-start;
}

.meter-readings-settings {
    gap: var(--spacing_regular);}

.meter-readings-settings__item {
    gap: var(--spacing_small); padding: var(--spacing_regular);
    border: 1px solid var(--border); border-radius: var(--radius_relaxed);
    background: var(--bg-1);}

.meter-readings-settings__item h4, .meter-readings-settings__item p {
    margin: 0;
}

.meter-readings-settings__item p {
    margin-top: var(--spacing_xs); color: var(--text-3);
}

@media (orientation: landscape) {
    .meter-readings-left-actions {
        flex-direction: column; align-items: stretch;
    }
    .meter-readings-left-actions > .btn {
        flex: 0 0 auto; height: auto;
    }
    .meter-readings-left-actions > .btn:not(.btn-square) {
        width: 100%; max-width: none;
        white-space: nowrap; overflow-wrap: normal;
    }
    .meter-readings-left-actions > .btn.btn-square {
        align-self: center;
    }
}

@media (orientation: portrait), (max-width: 680px) {
    .meter-readings-navigation {
        width: 100%; grid-template-columns: 36px 36px minmax(0, 1fr);
        grid-template-rows: auto auto auto; gap: var(--spacing_compact);
    }
    .meter-readings-navigation > .dropdown-container {
        width: 36px;
    }
    .meter-readings-navigation__years {
        min-height: auto; grid-column: 3;
        grid-row: 1; overflow: visible;
    }
    .meter-readings-left-actions {
        grid-column: 1 / -1; grid-row: 2;
        gap: var(--spacing_compact);
    }
    .meter-readings-left-actions > .btn {
        max-width: none;
    }
    .meter-readings-navigation__bottom-action {
        grid-column: 1 / -1; grid-row: 3;
    }
    .meter-readings-navigation__bottom-action
.common-house-readings__save-button,
.meter-readings-navigation__bottom-action .btn {
        width: 100%;
    }
}

/* Файл window_to_share.css */

.meter_readings_export_scroll_area {
    gap: var(--spacing_small);
    padding-right: 2px;
    scrollbar-gutter: stable;}

.meter_readings_export_options {
    flex: 0 0 auto;
    gap: var(--spacing_small);}

.meter_readings_export_option {
    display: flex; align-items: flex-start;
    gap: var(--spacing_small);
    padding: var(--spacing_small) var(--font_size_0, 12px);
    border: 1px solid var(--border, #d7e7f2);
    border-radius: var(--spacing_small); background: var(--bg-1, #fff);
    color: var(--text-2, #334155); cursor: pointer;
    user-select: none;
}

.meter_readings_export_option:hover {
    border-color: var(--accent, #3d84c4);
}

.meter_readings_export_option input {
    flex: 0 0 auto; width: 16px;
    height: 16px; margin: 2px 0 0;
    accent-color: var(--accent, #3d84c4);
}

.meter_readings_export_option input:disabled {
    cursor: wait;
}

.meter_readings_export_option_text {
    min-width: 0;
    gap: 2px;}

.meter_readings_export_option_title {
    font-size: var(--font_size_caption); font-weight: 600;
    line-height: 1.3;
}

.meter_readings_export_option_hint {
    color: var(--text-3, #64748b); font-size: var(--font_size_caption);
    line-height: 1.35;
}

.meter_readings_export_tree_wrapper {
    flex: 0 0 auto; min-height: 0;
}

.meter_readings_export_pivot.pivot-table-container {
    height: auto; min-height: 0;
    overflow: visible; scrollbar-gutter: auto;
}

/* Файл check_window.css */

.check_window_root {
    display: flex; flex-direction: row;
    height: 100%; min-height: 0;
    gap: var(--spacing-sm, 8px); padding: var(--spacing-sm, 8px);
    box-sizing: border-box;
}

.check_window_months {
    flex: 0 0 150px; min-height: 0;
    overflow: auto;
    gap: 4px;}

.check_window_months_title {
    font-weight: 600; font-size: var(--font_size_caption);
    margin-bottom: 4px;
}

.check_window_month_item {
    gap: 6px;
    cursor: pointer;}

.check_window_table {
    width: 100%; border-collapse: collapse;
}

.check_window_table th, .check_window_table td {
    border: 1px solid var(--color-border, #ccc); padding: 4px 8px;
    text-align: left;
}

.check_window_table th {
    background: var(--color-bg-muted, #eef); position: sticky;
    top: 0;
}

.check_window_diff {
    color: var(--color-danger, #d32f2f); font-weight: 600;
}

.check_window_hint {
    padding: var(--spacing-md, 12px); color: var(--color-text-muted, #555);
}

.check_window_format {
    height: 30px; padding: 0 8px;
    border-radius: 6px; border: 1px solid #ccc;
    background: white; font-size: var(--font_size_caption);
}

.check_window_sort_button {
    width: 100%; justify-content: space-between;
    gap: var(--spacing_small); margin: 0;
    padding: 0; border: 0;
    background: transparent; color: inherit;
    font: inherit; font-weight: 600;
    text-align: left;
    cursor: pointer;}

.check_window_sort_button:hover {
    background: transparent; color: var(--accent);
    transform: none; box-shadow: none;
}

/* Файл meter_readings_import_panel.css */

.meter_readings_import_panel {
    gap: var(--spacing_small);}

.meter_readings_import_panel__description {
    gap: var(--spacing_xsmall);
    color: var(--text-2);}

.meter_readings_import_panel__description p {
    margin: 0;
}

.meter_readings_import_panel__rules {
    gap: var(--spacing_xsmall); margin: 0;
    padding-left: calc(var(--spacing_small) * 2);}

.meter_readings_import_panel__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small);}

.meter_readings_import_panel__cancel {
    grid-column: 1 / -1;
}

.meter_readings_import_progress {
    position: fixed; right: var(--spacing_small);
    bottom: var(--spacing_small); z-index: 1100;
    min-height: auto; padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); box-shadow: var(--shadow);
    flex-direction: row; pointer-events: none;
}


@media (orientation: portrait), (max-width: 680px) {
    .meter_readings_import_panel__actions {
        grid-template-columns: minmax(0, 1fr);
    }
    .meter_readings_import_panel__cancel {
        grid-column: auto;
    }
}

/* Файл meter_readings_compare_panel.css */

.meter_readings_compare_panel {
    grid-template-rows: auto minmax(0, 1fr); gap: var(--spacing_small);
    min-height: min(68vh, 720px);}

.meter_readings_compare_panel__summary {
    gap: var(--spacing_xsmall); padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1);
    color: var(--text-2);}

.meter_readings_compare_panel__empty {
    place-items: center; min-height: 240px;
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-2);}

@media (orientation: portrait), (max-width: 760px) {
    .meter_readings_compare_panel {
        min-height: 72vh;
    }
}

/* Файл create_tab_.css */

/* Ширины столбцов показаний не зависят от fullscreen и размера окна. */

.meter-readings-fixed-widths .data-table {
    width: max-content; min-width: max-content;
}

.meter-readings-fixed-widths .table-wrapper {
    scrollbar-gutter: stable;
}

/* Линия ставится после последней услуги каждой квартиры. */

.meter-readings-fixed-widths .data-table tbody
    .table-row.row-group-end .table-cell-cell {
    border-bottom: 1px solid #000080 !important;
}

/* Таблица использует свободное место до правой и нижней границы вкладки. */

.meter-readings-fixed-widths {
    width: calc(100% + var(--table-workspace-edge-gap));
    height: calc(100% + var(--table-workspace-edge-gap));
    margin-right: calc(0px - var(--table-workspace-edge-gap));
    margin-bottom: calc(0px - var(--table-workspace-edge-gap));
}

/* Файл common_house_meter_readings.css */

.common-house-readings {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    overflow: hidden;
}

.common-house-readings .grid-container {
    grid-template-columns: max-content minmax(0, 1fr) !important;
    grid-template-rows: minmax(0, 1fr) !important; height: 100%;
    min-height: 0; overflow: hidden;
}

.common-house-readings__save-button {
    align-self: flex-start;
}

.common-house-readings__save-button-text {
    display: inline-block; line-height: 1.15;
    text-align: center;
}

.common-house-readings .table-widget-container {
    height: 100%; min-height: 0;
}

@media (orientation: portrait), (max-width: 680px) {
    .common-house-readings .grid-container {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* Файл tab_meter_readings.css */

.meter-readings-scope-container {
    --meter-readings-scope-inset: 6px;
    width: calc(
        100% + var(--meter-readings-scope-inset)
        + var(--meter-readings-scope-inset)
    );
    height: calc(
        100% + var(--meter-readings-scope-inset)
        + var(--meter-readings-scope-inset)
    ); min-width: 0;
    min-height: 0; margin: calc(0px - var(--meter-readings-scope-inset));
    overflow: hidden;
}

/* Файл tab_receipt.css */

.tab_receipt_root {
    gap: 8px; width: 100%;
    height: 100%; min-width: 0;
    min-height: 0; overflow: hidden;
    box-sizing: border-box;}

.tab_receipt_top_bar {
    flex: 0 0 auto; flex-direction: row;
    gap: 8px;
    flex-wrap: wrap;}

.tab_receipt_body {
    display: flex;
    flex-direction: row; gap: 8px;
    min-width: 0;
}

.tab_receipt_periods {
    display: flex; flex: 0 0 200px;
    width: 200px; min-width: 200px;
    min-height: 0;
}

.tab_receipt_viewer {
    display: flex; flex: 1 1 0;
    min-width: 0; min-height: 0;
    overflow: hidden;
}

.tab_receipt_viewer_empty {
    justify-content: center; width: 100%;
    height: 100%; border: 1px solid var(--border);
    border-radius: var(--spacing_small); color: var(--text-3);
    font-size: var(--font_size_caption);}

@media (orientation: portrait) {
    .tab_receipt_root {
        height: 100%; padding-right: 2px;
        overflow-x: hidden; overflow-y: auto;
        scrollbar-gutter: stable;
    }
    .tab_receipt_body {
        flex: 0 0 auto; flex-direction: column;
    }
    .tab_receipt_periods {
        flex: 0 0 auto; width: 100%;
        height: clamp(220px, 36dvh, 340px); min-width: 0;
        min-height: 220px;
    }
    .tab_receipt_viewer {
        flex: 0 0 auto; width: 100%;
        min-height: 720px; overflow: visible;
    }
    .tab_receipt_viewer .PDFViewer-container {
        height: auto; min-height: 720px;
        overflow: visible;
    }
    .tab_receipt_viewer_empty {
        min-height: 360px;
    }
}

.receipt_generation_panel_section {
    --frp-text: var(--text-2); --frp-text-muted: var(--text-3);
    --frp-accent: var(--accent); --frp-accent-soft: var(--bg-2);
    --frp-accent-strong: var(--accent-blue); --frp-radius: 10px;
    --frp-radius-sm: 8px; box-sizing: border-box;
    color: var(--frp-text);
    font-family: var(--font_family_interface);}

.receipt_generation_panel_title {
    display: flex; align-items: center;
    font-size: var(--font_size_0); font-weight: 600;
    color: var(--frp-text-muted);
}

.receipt_generation_panel_title::before {
    content: ""; display: inline-block;
    width: 4px; height: 14px;
    border-radius: 2px; background: var(--frp-accent);
}

.receipt_generation_panel_summary {
    display: flex; flex-direction: row;
    flex-wrap: wrap; gap: 8px 10px;
    font-size: var(--font_size_0); color: var(--frp-text-muted);
}

.receipt_generation_panel_summary > span {
    display: inline-flex; align-items: center;
    gap: 6px; border-radius: 999px;
    /* line-height: 1; */
}

.receipt_generation_panel_summary > span b {
    font-weight: 600; color: var(--frp-accent);
    font-variant-numeric: tabular-nums;
}

.receipt_generation_panel_actions {
    display: flex; justify-content: flex-end;
    gap: 8px;
}

.receipt_generation_panel_actions button {
    border-radius: var(--frp-radius-sm) !important;
    transition:
        background-color 0.15s ease,
        box-shadow 0.15s ease,
        transform 0.05s ease;
}

.receipt_generation_panel_actions button:hover {
    box-shadow:
        0 1px 2px rgba(79, 70, 229, 0.15),
        0 4px 12px rgba(79, 70, 229, 0.18);
}

.receipt_generation_panel_actions button:active {
    transform: translateY(1px);
}

.receipt_generation_panel_field {
    gap: 5px;}

.receipt_generation_panel_label {
    font-size: var(--font_size_0); color: var(--frp-text-muted);
    font-weight: 500;
}

.receipt_generation_panel_select {
    width: 100%; min-height: 36px;
    border: 1px solid var(--border); border-radius: var(--frp-radius-sm);
    background: transparent; color: var(--frp-text);
    outline: none; box-sizing: border-box;
}

.receipt_generation_panel_select:focus {
    border-color: var(--frp-accent);
}

.receipt_generation_panel_checkbox {
    display: flex; align-items: flex-start;
    gap: 10px; cursor: pointer;
    user-select: none; color: var(--frp-text);
    line-height: 1.35;
}

.receipt_generation_panel_hint {
    font-size: var(--font_size_button); color: var(--frp-text-muted);
    line-height: 1.4;
}

@media (max-width: 720px) {
    .receipt_generation_panel_section {
        padding: 12px;
    }
    .receipt_generation_panel_summary {
        padding: 8px 10px;
    }
    .receipt_generation_panel_actions {
        justify-content: stretch;
    }
    .receipt_generation_panel_actions button {
        width: 100%;
    }
}

/* Файл receipt_upload_panel.css */

.receipt_upload_panel {
    gap: var(--spacing_medium);
    min-width: 0;}

.receipt_upload_mode {
    display: flex; align-items: flex-start;
    gap: var(--spacing_small); padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    cursor: pointer;
}

.receipt_upload_mode input {
    margin-top: 3px;
}

.receipt_upload_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small);}

.receipt_upload_field {
    gap: 5px; min-width: 0;
    color: var(--text-2);}

.receipt_upload_field input, .receipt_upload_field select {
    width: 100%; min-height: 38px;
    padding: 6px 10px; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1); box-sizing: border-box;
}

.receipt_upload_file_row {
    gap: var(--spacing_small); min-width: 0;
    flex-wrap: wrap;}

.receipt_upload_file_name {
    min-width: 0; color: var(--text-3);
    overflow-wrap: anywhere;
}

.receipt_upload_hint {
    padding: var(--spacing_small); border-radius: var(--spacing_small);
    background: var(--bg-2); color: var(--text-3);
    line-height: 1.4;
}

.receipt_upload_actions {
    display: flex; justify-content: flex-end;
    gap: var(--spacing_small);
}

@media (max-width: 720px) {
    .receipt_upload_grid {
        grid-template-columns: 1fr;
    }
    .receipt_upload_actions {
        flex-direction: column-reverse;
    }
    .receipt_upload_actions button {
        width: 100%;
    }
}

/* Файл receipt_download_panel.css */

.download-panel__options {
    margin-bottom: 16px;
}

.download-panel__option-label {
    display: block; margin-bottom: 8px;
}

.download-panel__section-title {
    font-weight: 500; margin-bottom: 8px;
}

.download-panel__status-info {
    margin-bottom: 12px;
    color: var(--text-3); /* Соответствует цвету из исходного кода */
}

/* Стили для группировки элементов управления */

.download-panel__controls > div {
    margin-bottom: 16px;
}

/* Файл tariff_benefit_documents.css */

.drawer-panel--tariff-benefits .tariff-benefits__editor-panel {
    max-height: calc(100dvh - 92px); overflow-x: hidden;
    overflow-y: auto; scrollbar-gutter: stable;
}

.tariff-benefits__field textarea {
    width: 100%; min-height: 82px;
    padding: 7px 9px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-2); font: inherit;
    resize: vertical; box-sizing: border-box;
}

.tariff-benefits__field textarea:focus {
    outline: 2px solid color-mix(in srgb, var(--accent) 30%, transparent);
    border-color: var(--accent);
}

.tariff-benefits__documents {
    min-width: 0; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; gap: var(--spacing_small);
    margin-top: var(--font_size_0); padding-top: var(--font_size_caption);
    border-top: 1px solid var(--border);}

.tariff-benefits__documents h4 {
    margin: 0; color: var(--text-1);
    font-size: var(--font_size_1);
}

.tariff-benefits__upload {
    display: inline-flex; min-height: var(--button-min-height);
    align-items: center; justify-content: center;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: 8px;
    background: var(--bg-1); color: var(--accent-blue);
    font-size: var(--font_size_button); text-align: center;
    white-space: nowrap; cursor: pointer;
    box-sizing: border-box;
}

.tariff-benefits__upload:hover {
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-2));
}

.tariff-benefits__upload.is-disabled {
    border-color: var(--border); color: var(--text-3);
    cursor: default;
}

.tariff-benefits__upload input {
    position: absolute; width: 1px;
    height: 1px; overflow: hidden;
    opacity: 0; pointer-events: none;
}

.tariff-benefits__documents .doc-card__attachments {
    min-width: 0;
}

@media (max-width: 1100px) {
    .drawer-panel--tariff-benefits .tariff-benefits__editor-panel {
        max-height: none; overflow-y: visible;
    }
}

.tariff-benefits__documents > .doc-card__file-list,
.tariff-benefits__documents > .doc-card__empty,
.tariff-benefits__documents > .doc-card__attachments-footer {
    grid-column: 1 / -1;
}

/* Файл tariff_benefits.css */

.tariff-benefits {
    display: block; height: 100%;
    min-height: 0; box-sizing: border-box;
    color: var(--text-2);
}

.tariff-benefits__list-panel, .tariff-benefits__editor-panel,
.tariff-benefits__pivot-panel {
    min-height: 0; padding: 12px;
    border: 1px solid var(--border); border-radius: 12px;
    background: var(--card); box-shadow: var(--shadow);
    box-sizing: border-box;
}

.tariff-benefits__list-panel, .tariff-benefits__pivot-panel {
    display: flex; flex-direction: column;
}

.tariff-benefits__list-panel {
    height: 100%;
}

.tariff-benefits__pivots {
    grid-template-columns: minmax(240px, 1fr) minmax(320px, 1.4fr); gap: 12px;
    min-height: 0;}

.tariff-benefits__panel-heading {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 12px;
    margin-bottom: 10px;
}

.tariff-benefits__heading-row {
    justify-content: space-between;
    gap: 12px;}

.tariff-benefits__list-heading {
    display: block;
}

.tariff-benefits__list-heading .btn {
    width: auto; min-width: 150px;
    flex: 0 0 auto;
}

.tariff-benefits__panel-heading h3 {
    margin: 0 0 3px; color: var(--text-1);
    font-size: var(--font_size_1);
}

.tariff-benefits__panel-heading p {
    margin: 0; color: var(--text-3);
    font-size: var(--font_size_button);
}

.tariff-benefits__table-wrap { border: 1px solid var(--border);
    border-radius: 8px;
}

.tariff-benefits__table {
    width: 100%; border-collapse: collapse;
    font-size: var(--font_size_button);
}

.tariff-benefits__table th, .tariff-benefits__table td {
    padding: 8px 10px; border-bottom: 1px solid var(--border);
    text-align: left; vertical-align: top;
}

.tariff-benefits__table th {
    position: sticky; top: 0;
    z-index: 1; background: var(--bg-2);
    color: var(--text-1);
}

.tariff-benefits__table tbody tr {
    cursor: pointer;
}

.tariff-benefits__table tbody tr:hover,
.tariff-benefits__table tbody tr.is-selected {
    background: var(--accent-orange-bg);
}

.tariff-benefits__empty, .tariff-benefits__loading {
    padding: 24px; text-align: center;
    color: var(--text-3);
}

.tariff-benefits__form-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px;}

.tariff-benefits__field {
    gap: 5px; color: var(--text-3);
    font-size: var(--font_size_button);}

.tariff-benefits__field input, .tariff-benefits__field select {
    width: 100%; min-height: 36px;
    padding: 7px 9px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-2); font: inherit;
    box-sizing: border-box;
}

.tariff-benefits__field input:focus,
.tariff-benefits__field select:focus {
    outline: 2px solid color-mix(in srgb, var(--accent) 30%, transparent);
    border-color: var(--accent);
}

.tariff-benefits__actions {
    display: flex; gap: 8px;
    margin-top: 14px;
}

.tariff-benefits__pivot-panel .pivot-table-container {
    min-height: 0; overflow: auto;
}

@media (max-width: 1100px) {
    .tariff-benefits {
        height: auto;
    }
    .tariff-benefits__pivots {
        grid-template-columns: 1fr;
    }
}

@media (orientation: portrait) {
    .tariff-benefits {
        height: 100%; min-height: 0;
        padding: 7px; overflow-x: hidden;
        overflow-y: auto;
    }
    .tariff-benefits__list-panel {
        height: auto; min-height: 100%;
    }
    .tariff-benefits__panel-heading {
        align-items: stretch; flex-direction: column;
    }
    .tariff-benefits__panel-heading .btn {
        width: 100%;
    }
    .tariff-benefits__list-heading {
        display: block;
    }
    .tariff-benefits__list-heading .btn {
        width: auto; min-width: 132px;
    }
    .tariff-benefits__list-heading p {
        margin-top: 5px;
    }
    .tariff-benefits__table-wrap {
        flex: 0 0 auto; overflow-x: hidden;
        overflow-y: visible; border: 0;
        border-radius: 0;
    }
    .tariff-benefits__table, .tariff-benefits__table tbody,
.tariff-benefits__table tr, .tariff-benefits__table td {
        display: block; width: 100%;
    }
    .tariff-benefits__table thead {
        display: none;
    }
    .tariff-benefits__table tbody {
        display: flex; min-width: 0;
        flex-direction: column; gap: 8px;
    }
    .tariff-benefits__table tbody tr {
        min-width: 0; overflow: hidden;
        border: 1px solid var(--border); border-radius: 8px;
        background: var(--bg-1); box-shadow: var(--shadow);
    }
    .tariff-benefits__table tbody td {
        display: grid; min-width: 0;
        grid-template-columns: minmax(100px, 34%) minmax(0, 1fr); gap: 8px;
        padding: 8px; border-bottom: 1px solid var(--border);
        white-space: normal; overflow-wrap: anywhere;
        word-break: break-word;
    }
    .tariff-benefits__table tbody td:last-child {
        border-bottom: 0;
    }
    .tariff-benefits__table tbody td::before {
        content: attr(data-label); color: var(--text-3);
        font-weight: 600;
    }
    .tariff-benefits__table tbody td.tariff-benefits__empty {
        display: block; text-align: center;
    }
    .tariff-benefits__table tbody td.tariff-benefits__empty::before {
        content: none;
    }
}

/* Файл tariff_benefit_assignments.css */

.drawer-panel--tariff-benefits .drawer-body {
    background: var(--bg-2);
}

.tariff-benefits__drawer-loading {
    padding: 32px; color: var(--text-3);
    text-align: center;
}

.tariff-benefits__drawer-workspace {
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 12px;
    min-width: 0;
    min-height: 0;}

.tariff-benefits__assignment-panel {
    grid-column: 1 / -1; min-width: 0;
    min-height: 0; padding: 12px;
    border: 1px solid var(--border); border-radius: 12px;
    background: var(--card); box-shadow: var(--shadow);
    box-sizing: border-box; overflow: hidden;
}

.tariff-benefits__assignment-empty {
    padding: 18px; border: 1px dashed var(--border);
    border-radius: 8px; color: var(--text-3);
    text-align: center;
}

.tariff-benefits__assignment-widget {
    width: 100%; height: min(360px, 45dvh);
    min-width: 0; min-height: 220px;
}

.tariff-benefits__assignment-widget .table-container,
.tariff-benefits__assignment-widget .table-wrapper {
    width: 100%; min-width: 0;
    max-width: 100%;
}

@media (max-width: 1100px) {
    .tariff-benefits__drawer-workspace {
        grid-template-columns: 1fr;
    }
    .tariff-benefits__assignment-panel {
        grid-column: auto;
    }
}

@media (max-width: 700px) {
    .tariff-benefits__assignment-widget {
        height: min(320px, 42dvh); min-height: 200px;
    }
}

@media (orientation: portrait) {
    .tariff-benefits__assignment-widget {
        height: clamp(220px, 44dvh, 360px); min-height: 0;
        max-height: clamp(220px, 44dvh, 360px);
    }
    .tariff-benefits__assignment-widget .table-wrapper,
.tariff-benefits__assignment-widget .portrait-column-switcher-wrapper {
        height: 100%; min-height: 0;
        max-height: 100%; overflow-x: hidden;
        overflow-y: auto;
    }
}

/* Файл debtor_card.css */

.debtor-card-page__layout {
    grid-template-columns: minmax(0, 1.6fr) minmax(250px, .72fr);
    gap: var(--spacing_small); width: 100%;
    height: 100%; min-width: 0;
    min-height: 0; padding: 0;
    box-sizing: border-box;}

.debtor-card-page__apartments, .debtor-card-page__settings {
    display: flex; flex-direction: column; min-height: 0;
    overflow: hidden;
}

.debtor-card-page__settings {
    overflow: auto;
}

.debtor-card-page__title {
    margin-bottom: var(--spacing_small); color: var(--blue-navy);
    font-size: var(--font_size_1); font-weight: 700;
}

.debtor-card-page__field {
    grid-template-columns: minmax(0, 1fr) minmax(130px, .9fr);
    align-items: center; gap: var(--spacing_small);
    margin-bottom: var(--spacing_small); color: var(--text-1);
    font-size: var(--font_size_0);}

.debtor-card-page__format-value {
    width: 100%; min-width: 0;
    min-height: var(--button-min-height); box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
}

.debtor-card-page__summary, .debtor-card-page__note {
    margin-top: var(--spacing_small); color: var(--text-1);
    font-size: var(--font_size_0); line-height: 1.3;
}

.debtor-card-page__note {
    color: var(--text-3);
}

.debtor-card-page__actions {
    display: flex; justify-content: flex-end;
    margin-top: auto; padding-top: var(--spacing_small);
}

@media (orientation: portrait), (max-width: 760px) {
    .debtor-card-page {
        overflow: auto;
    }
    .debtor-card-page__layout {
        grid-template-columns: minmax(0, 1fr); height: auto;
        min-height: 100%;
    }
    .debtor-card-page__field {
        grid-template-columns: minmax(0, 1fr);
    }
    .debtor-card-page__apartments {
        min-height: 48dvh;
    }
}

.debtor-card-page__report-type-button {
    width: 100%; min-width: 0;
    min-height: calc((var(--font_size_0) * 2) + var(--spacing_small));
    padding: 0 var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--blue-navy); font: inherit;
    cursor: pointer;
}

.debtor-card-page__report-type-button:hover {
    border-color: var(--accent);
}

.debtor-card-report-types__item {
    display: flex; width: 100%;
    align-items: flex-start; gap: var(--spacing_small);
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1); text-align: left;
    cursor: pointer; box-sizing: border-box;
}

.debtor-card-report-types__item input {
    flex: 0 0 auto; margin-top: calc(var(--spacing_small) / 2);
    accent-color: var(--accent);
}

.debtor-card-report-types__content {
    min-width: 0; flex: 1 1 auto;
    gap: var(--spacing_small);}

.debtor-card-report-types__item:hover,
.debtor-card-report-types__item.active {
    border-color: var(--accent);
}

.debtor-card-report-types__title {
    color: var(--blue-navy); font-size: var(--font_size_1);
    font-weight: 700;
}

.debtor-card-report-types__description {
    color: var(--text-3); font-size: var(--font_size_0);
    line-height: 1.35;
}

.debtor-card-page__report-type-button {
    text-align: left; white-space: normal;
    line-height: 1.25;
}

.debtor-card-report-types__actions {
    display: flex; justify-content: flex-end;
    padding-top: var(--spacing_small);
}

/* Файл counterparty_download_panel.css */

.counterparty-download-panel {
    gap: 18px;
    padding: 20px;}

.counterparty-download-title {
    color: var(--font_color_2); font-size: var(--font_size_2);
    font-weight: 700;
}

.counterparty-download-options {
    display: flex; flex-wrap: wrap;
    gap: 10px;
}

.counterparty-download-option, .counterparty-download-switch {
    display: flex; align-items: center;
    gap: 8px; color: var(--font_color_1);
    font-size: var(--font_size_1);
}

.counterparty-download-option {
    padding: 9px 14px; border: 1px solid var(--border_color_1);
    border-radius: var(--border_radius_1);
    background: var(--background_color_1);
}

.counterparty-download-switch {
    padding: 12px; border: 1px solid var(--border_color_1);
    border-radius: var(--border_radius_1);
}

.counterparty-download-hint {
    margin: -10px 0 0; color: var(--font_color_3);
    font-size: var(--font_size_0);
}

.counterparty-download-pivot {
    max-height: 52vh; overflow: auto;
}

/* Файл info_blocks.css */

.info_blocks {
    gap: var(--spacing_small);}

.info_blocks__card {
    width: 100%; box-sizing: border-box;
    margin: 0; border-color: var(--border);
    background: var(--bg-1);
}

.info_blocks__card--clickable {
    cursor: pointer;
}

.info_blocks__card--clickable:hover {
    border-color: var(--accent); background: var(--bg-2);
}

.info_blocks__card--clickable:focus-visible {
    outline: none; box-shadow: 0 0 0 3px rgba(61, 132, 196, 0.18);
}

.info_blocks__card--active {
    border-color: var(--accent);
    box-shadow:
        0 0 0 2px var(--accent),
        var(--shadow);
}

.info_blocks__value {
    color: var(--blue-navy); font-size: var(--font_size_2);
    font-weight: 700; line-height: 1;
}

.info_blocks__card--success .info_blocks__value {
    color: var(--success, #22a35a);
}

.info_blocks__card--warning .info_blocks__value {
    color: var(--warning, #f39a1e);
}

.info_blocks__card--danger .info_blocks__value {
    color: var(--danger, #e34f4f);
}

@media (orientation: portrait), (max-width: 980px) {
    .info_blocks {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .info_blocks {
        grid-template-columns: 1fr;
    }
}

/* Файл management_object_contacts.css */

.management-contacts { gap: var(--font_size_0);
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--font_size_1); background: var(--bg-1);}

.management-contacts__header {
    display: flex; min-width: 0;
    align-items: flex-start; justify-content: space-between;
    gap: var(--font_size_0);
}

.management-contacts .counterparty-toolbarbtn_primary:disabled {
    opacity: 0.5; box-shadow: none;
    cursor: not-allowed;
}

.management-contacts__filter {
    min-height: var(--button-min-height); box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    outline: none; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--blue-navy); font-size: var(--font_size_0);
    font-weight: 600; cursor: pointer;
}

.management-contacts__filter:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(61, 132, 196, 0.14);
}

.management-contacts__tablewrap {
    min-width: 0; overflow-x: auto;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1);
}

.management-contacts__table {
    width: 100%; min-width: 840px;
    border-collapse: collapse; color: var(--blue-navy);
    font-size: var(--font_size_0);
}

.management-contacts__table th, .management-contacts__table td {
    padding: calc(var(--spacing_small) * 0.75) var(--spacing_small);
    border-bottom: 1px solid var(--border); text-align: left;
    vertical-align: middle;
}

.management-contacts__table th {
    position: sticky; z-index: 1;
    top: 0; background: var(--accent);
    color: var(--on-accent); font-weight: 600;
}

.management-contacts__table tbody tr {
    cursor: pointer; transition: background 0.15s ease;
}

.management-contacts__table tbody tr:nth-child(even) {
    background: var(--bg-2);
}

.management-contacts__table tbody tr:hover,
.management-contacts__table tbody tr.is-selected {
    background: var(--selection-background);
}

.management-contacts__table tbody tr.is-dismissed td {
    color: var(--text-3);
}

.management-contacts__table .management-contacts__indicator-cell {
    width: 32px; min-width: 32px;
    max-width: 32px; box-sizing: border-box;
    padding-right: calc(var(--spacing_small) / 2);
    padding-left: calc(var(--spacing_small) / 2); text-align: center;
}

.management-contacts__indicator {
    display: inline-flex; width: 20px;
    height: 20px; align-items: center;
    justify-content: center; box-sizing: border-box;
    border: 1px solid currentColor; border-radius: 50%;
    font-size: var(--font_size_caption); font-weight: 700;
    line-height: 1;
}

.management-contacts__indicator.is-active {
    background: var(--status-success-background);
    color: var(--status-success-text);
}

.management-contacts__indicator.is-dismissed {
    background: var(--bg-2); color: var(--text-3);
}

.management-contacts__empty {
    padding: calc(var(--font_size_0) * 2); color: var(--text-3);
    font-size: var(--font_size_0); text-align: center;
}

.management-contacts__form {
    gap: var(--font_size_0);}

.management-contacts__form textarea {
    width: 100%; resize: vertical;
}

@media (max-width: 768px) {
    .management-contacts__header {
        flex-direction: column;
    }
    .management-contacts__header .counterparty-toolbar {
        width: 100%;
    }
}

/* Файл house_download_panel.css */

.house-download-panel {
    gap: var(--spacing_small); padding: var(--spacing_small);
    background: var(--bg-2);}

.house-download-card {
    gap: var(--spacing_small); padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    background: var(--bg-1);
    box-shadow: var(--shadow);}

.house-download-card.is-disabled {
    opacity: .58;
}

.house-download-title {
    color: var(--text-2); font-size: var(--font_size_1);
    font-weight: 600;
}

.house-download-mode-grid {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_small);
}

.house-download-option, .house-download-check, .house-download-mode {
    display: flex; align-items: center;
    gap: var(--spacing_small); color: var(--text-2);
    font-size: var(--font_size_0);
}

.house-download-option {
    min-width: 88px; padding: var(--spacing_compact) var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    background: var(--bg-1);
}

.house-download-check {
    width: fit-content;
}

.house-download-hint {
    margin: 0; color: var(--text-3);
    font-size: var(--font_size_0);
}

.house-download-mode-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
}

.house-download-mode {
    align-items: flex-start; padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    background: var(--bg-1);
}

.house-download-mode > span {
    display: flex; min-width: 0;
    flex-direction: column; gap: var(--spacing_compact);
}

.house-download-mode strong {
    font-size: var(--font_size_0); font-weight: 600;
}

.house-download-mode small {
    color: var(--text-3); font-size: var(--font_size_0);
    line-height: 1.25;
}

.house-download-footer {
    display: flex; justify-content: flex-end;
    gap: var(--spacing_small); padding: var(--spacing_small);
}

@media (max-width: 680px) {
    .house-download-mode-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Файл house_details.css */

.house-details-body {
    min-width: 0; max-width: 100%;
    grid-template-columns: minmax(0, 1.6fr) 2px minmax(0, 1fr);
    grid-template-areas:
        "params divider apartments"
        "files  files   files";
    gap: var(--font_size_0); align-items: stretch;
    box-sizing: border-box;}

.house-details-divider {
    grid-area: divider; width: 2px;
    height: calc(100% - (var(--font_size_0) * 2)); align-self: start;
    background: var(--accent); border-radius: var(--spacing_small);
}

.house-details-subtitle {
    display: block; margin-bottom: var(--spacing_small);
    color: var(--blue-navy); font-size: var(--font_size_1);
    font-weight: 600;
}

.house-details-params {
    grid-area: params; max-width: 100%;
}

.house-details-paramrow {
    display: flex; width: 100%;
    min-width: 0; max-width: 100%;
    align-items: center; justify-content: space-between;
    gap: var(--font_size_0); box-sizing: border-box;
}

.house-details-paramrow > span {
    min-width: 0; max-width: 42%;
    flex: 0 1 auto; overflow-wrap: anywhere;
}

.house-details-paramrow + .house-details-paramrow {
    margin-top: var(--spacing_xs);
}

.house-details-paramrow .app-input {
    max-width: 100%; flex: 1 1 0;
}

.house-details-savebtn {
    align-self: flex-start; min-height: var(--button-min-height);
    margin-top: var(--spacing_small);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: none; border-radius: var(--spacing_small);
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_0); font-weight: 600;
    cursor: pointer; transition: 0.15s ease;
}

.house-details-apartments {
    grid-area: apartments; position: relative;
    min-width: 0; min-height: 0;
    height: calc(100% - (var(--font_size_0) * 2)); align-self: start;
}

.house-details-apartments-inner {
    position: absolute; min-width: 0;
    min-height: 0; inset: 0;
    gap: var(--spacing_small);}

.house-details-apartmentshead, .house-details-apartmentrow {
    display: grid; min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing_small); align-items: center;
}

.house-details-apartmentshead {
    position: sticky; z-index: 2;
    top: 0; padding: var(--spacing_xs) 0;
    background: var(--bg-1);
}

.house-details-apartmentshead > span {
    color: var(--text-3); font-size: var(--font_size_0);
    font-weight: 600;
}

.house-details-apartmentnum {
    color: var(--blue-navy); font-size: var(--font_size_0);
}

.house-details-apartmentsbody {
    gap: calc(var(--spacing_small) / 2); padding-right: var(--spacing_xs);
    overflow-x: hidden; overflow-y: auto;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;}

.house-details-files {
    display: grid; grid-area: files;
    min-width: 0; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; gap: var(--spacing_small);
}

.house-details-files > .house-details-subtitle {
    margin-bottom: 0;
}

.house-details-files > .doc-card__file-list,
.house-details-files > .doc-card__empty,
.house-details-files > .doc-card__attachments-footer {
    grid-column: 1 / -1;
}

.house-details-upload {
    display: inline-flex; min-width: 0;
    min-height: var(--button-min-height); align-items: center;
    justify-content: center; box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--accent-blue);
    font-size: var(--font_size_button); text-align: center;
    white-space: nowrap; cursor: pointer;
}

.house-details-upload:hover {
    background: var(--bg-2);
}

@media (max-aspect-ratio: 1 / 1), (max-width: 768px) {
    .house-details-body {
        width: 100%; grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "params"
            "apartments"
            "files";
    }
    .house-details-divider {
        display: none;
    }
    .house-details-paramrow {
        flex-direction: column; align-items: stretch;
        gap: calc(var(--spacing_small) / 2); padding-right: 0;
    }
    .house-details-paramrow > span, .house-details-paramrow .app-input {
        width: 100%; min-width: 100%;
        max-width: 100%;
    }
    .house-details-paramrow .app-input {
        display: block; flex: 0 0 auto;
    }
    .house-details-apartments {
        position: static; height: auto;
        min-height: calc(var(--font_size_0) * 14);
    }
    .house-details-apartments-inner {
        position: static; max-height: 430px;
        inset: auto;
    }
    .house-details-apartmentsbody {
        max-height: 360px;
    }
}

.house-details-sectionhead {
    flex-wrap: wrap; justify-content: space-between;
    gap: var(--spacing_small);
    margin-bottom: var(--spacing_small);}

.house-details-sectionhead > .house-details-subtitle {
    margin-bottom: 0;
}

/* Файл layout_and_toolbar.css */

.counterparty-page {
    display: flex; width: 100%;
    gap: var(--font_size_0); box-sizing: border-box;
    padding: var(--font_size_0); overflow-x: hidden; background: var(--bg-2);
}

.counterparty-pagemain {
    min-width: 0; flex: 1 1 auto;
    overflow: visible;}

.counterparty-pageside {
    flex: 0 0 210px;
}

.counterparty-pagemain .grid-container,
.counterparty-pagemain .grid-container.scrollable,
.counterparty-pagemain .grid-item {
    height: auto !important; max-height: none !important;
    overflow: visible !important;
}

.counterparty-sectiontitle {
    margin: 0; color: var(--blue-navy);
    font-size: var(--font_size_3); font-weight: 700;
    line-height: 1.15;
}

.counterparty-sectionsubtitle {
    display: block; margin: calc(var(--spacing_small) / 2) 0 0;
    color: var(--text-2); font-size: var(--font_size_1);
    font-weight: 600;
}

.counterparty-toolbar {
    flex: 0 0 auto; flex-wrap: wrap;
    gap: var(--spacing_small);}

.counterparty-toolbarbtn {
    display: inline-flex; min-height: var(--button-min-height);
    align-items: center; gap: var(--spacing_small);
    box-sizing: border-box;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid transparent; border-radius: var(--spacing_small);
    font-size: var(--font_size_0); font-weight: 600;
    line-height: 1; white-space: nowrap;
    cursor: pointer; transition: 0.15s ease;
}

.counterparty-toolbarbtn_primary {
    background: var(--accent); color: var(--on-accent);
    box-shadow: var(--shadow);
}

.counterparty-toolbarbtn_primary:hover {
    background: var(--accent-blue);
}

.counterparty-toolbarbtn_secondary {
    border-color: var(--border); background: var(--bg-1);
    color: var(--blue-navy);
}

.counterparty-toolbarbtn_secondary:hover:not(:disabled):not(.is-disabled) {
    border-color: var(--accent); background: var(--bg-2);
    color: var(--accent-blue);
}

.counterparty-toolbarbtn_secondary.is-disabled,
.counterparty-toolbarbtn_secondary:disabled,
.counterparty-toolbarbtn_danger.is-disabled,
.counterparty-toolbarbtn_danger:disabled {
    opacity: 0.5; box-shadow: none;
    cursor: not-allowed;
}

.counterparty-toolbarbtn_danger {
    border-color: var(--accent-red); background: var(--bg-1);
    color: var(--accent-red);
}

.counterparty-toolbarbtn_danger:hover:not(:disabled):not(.is-disabled) {
    background: var(--bg-2);
}

.counterparty-toolbaricon {
    font-size: var(--font_size_0); line-height: 1;
}

.counterparty-tablehint {
    margin-top: var(--spacing_small); color: var(--text-3);
    font-size: var(--font_size_0); text-align: right;
    user-select: none;
}

.counterparty-pivot .hierarchy-row.is-clickable {
    cursor: pointer;
}

.counterparty-pivot .hierarchy-row.is-clickable:hover {
    background: var(--bg-2);
}

/* Файл driver_and_loading.css */

.counterparty-driverbody {
    gap: var(--font_size_0);
    padding: calc(var(--spacing_small) / 2)
        calc(var(--spacing_small) / 2) var(--font_size_1);}

.counterparty-driversubtitle {
    margin: 0; color: var(--text-2);
    font-size: var(--font_size_0);
}

.counterparty-driverfield {
    gap: var(--spacing_small);}

.counterparty-driverfield > span {
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 600;
}

.counterparty-driverfield select, .counterparty-driverfield textarea {
    width: 100%;
    min-height: calc((var(--font_size_0) * 2) + var(--spacing_small));
    box-sizing: border-box; padding: 0 var(--font_size_0);
    outline: none; border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1); font-size: var(--font_size_0);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.counterparty-driverfield textarea {
    height: auto; padding: var(--spacing_small) var(--font_size_0);
    resize: vertical; line-height: 1.35;
}

.counterparty-driverfield textarea::placeholder {
    color: var(--text-3);
}

.counterparty-driverfield select:focus,
.counterparty-driverfield textarea:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(61, 132, 196, 0.14);
}

.counterparty-driverfooter {
    position: sticky; bottom: 0;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--spacing_small); margin-top: var(--spacing_small);
    padding: var(--font_size_0) calc(var(--spacing_small) / 2)
        var(--spacing_small);
    border-top: 1px solid var(--border); background: var(--bg-1);
}

.counterparty-driverbtn {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: none; border-radius: var(--spacing_small);
    font-size: var(--font_size_0); font-weight: 600;
    cursor: pointer; transition: 0.15s ease;
}

.counterparty-driverbtn:disabled {
    opacity: 0.55; cursor: not-allowed;
}

.counterparty-driverbtn_secondary {
    background: var(--bg-2); color: var(--text-1);
}

.counterparty-driverbtn_secondary:hover:not(:disabled) {
    background: var(--border);
}

.counterparty-driverbtn_primary {
    background: var(--accent); color: var(--on-accent);
    box-shadow: var(--shadow);
}

.counterparty-driverbtn_primary:hover:not(:disabled) {
    background: var(--accent-blue);
}

.counterparty-driver .counterparty-driverfield > span {
    color: var(--text-3);
}

.counterparty-driver .counterparty-driverfooter {
    display: flex; align-items: center;
    justify-content: flex-start; gap: var(--spacing_small);
    padding: var(--spacing_small) calc(var(--spacing_small) / 2);
    border-top: 0; background: transparent;
}

.counterparty-driver .counterparty-driverbtn {
    width: auto; min-width: calc(var(--font_size_0) * 6);
}

.counterparty-page_loading {
    justify-content: center;
    overflow: hidden;}


.contract_files {
    width: 100%; min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    box-sizing: border-box;
    align-items: center;
    gap: var(--spacing_small);}

.contract_files > .doc-card__file-list,
.contract_files > .doc-card__empty,
.contract_files > .doc-card__attachments-footer {
    width: 100%; min-width: 0;
    grid-column: 1 / -1;
    box-sizing: border-box;
}

/* Файл contracts_and_responsive.css */

.counterparty-contracttitle {
    color: var(--text-3); font-size: var(--font_size_0);
    font-weight: 600;
}

@media (orientation: portrait), (max-width: 980px) {
    .counterparty-page {
        flex-direction: column;
    }
    .counterparty-pagemain, .counterparty-pageside {
        width: 100%; min-width: 100%;
        max-width: 100%; flex: 0 0 auto;
        overflow: visible;
    }
    .counterparty-pageside {
        margin-top: var(--font_size_0);
    }
}

/* Единственная вертикальная прокрутка находится у всей страницы объекта. */

.counterparty-pagemain .grid-container {
    grid-auto-rows: min-content;
}

.counterparty-page .counterparty-pivot {
    height: auto; max-height: none;
    overflow: visible; scrollbar-gutter: auto;
}

.counterparty-page .table-widget, .counterparty-page .table-container {
    height: auto; max-height: none;
    overflow: visible;
}

.counterparty-page .table-wrapper {
    height: auto; max-height: none;
    overflow-x: auto; overflow-y: visible;
    overscroll-behavior: auto;
}

/* Открытый объект: общая страница прокручивается, статистика остаётся на
 * месте. */

.counterparty-page {
    height: 100%; min-height: 0;
    align-items: flex-start; overflow-y: auto;
    scrollbar-gutter: stable;
}

.counterparty-pageside {
    position: sticky; top: 0;
    align-self: flex-start; max-height: calc(100dvh - 150px);
    overflow: visible;
}

@media (orientation: portrait), (max-width: 980px) {
    .counterparty-pageside {
        position: static; max-height: none;
    }
}

.counterparty-contractgrid, .counterparty-contractrequisites__grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--font_size_0);
}

.counterparty-contractgrid {
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--font_size_0); background: var(--bg-1);
    box-shadow: var(--shadow);
}

.counterparty-contractgrid__wide {
    grid-column: 1 / -1;
}

.counterparty-contractrequisites {
    gap: var(--font_size_0); padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--font_size_0);
    background: var(--bg-1);
    box-shadow: var(--shadow);}

.counterparty-contractrequisites__title {
    color: var(--text-3); font-size: var(--font_size_0);
    font-weight: 700;
}

@media (orientation: portrait), (max-width: 680px) {
    .counterparty-contractgrid, .counterparty-contractrequisites__grid {
        grid-template-columns: 1fr;
    }
    .counterparty-contractgrid__wide {
        grid-column: auto;
    }
}

/* Файл open_tab.css */

/* Файл tab.css */

.management-objects-root {
    width: 100%; max-width: 100%;
}

.management-house-status-filter {
    height: 36px; box-sizing: border-box;
    border: 1px solid var(--border); border-radius: 10px;
    background: var(--bg-1); color: var(--blue-navy);
    padding: 0 10px; font-size: var(--font_size_0);
    outline: none;
}

.management-house-status-filter:focus {
    border-color: var(--accent);
}

@media (max-width: 768px) {
    .management-objects-root .management-workspace__toolbar {
        gap: 6px;
    }
}

/* Файл meetings_and_votings.css */

.meetings-root, .meeting-card {
    background: transparent; color: inherit;
}

.meetings-table-shell, .meetings-list-shell {
    display: flex; height: 100%;
    min-height: 0; flex-direction: column;
}

.meetings-list-shell {
    gap: var(--spacing_small);
}

.meetings-toolbar {
    flex: 0 0 auto;
}

.meetings-style .table-container {
    border-radius: 0; background: var(--bg-1);
    box-shadow: none;
}

.meetings-style .data-table th, .meetings-style .fixed-header,
.meetings-style .fixed-header-row {
    background: var(--accent-blue) !important;
    color: var(--on-accent) !important; font-weight: 600;
}

.meetings-style .data-table tbody td, .meetings-style .fixed-row,
.meetings-style .fixed-row-cell, .meetings-style .fixed-cell {
    background: var(--bg-1) !important; color: inherit !important;
}

.meetings-style .data-table tbody tr:hover td {
    background: #fffce6 !important;
}

.meeting-card { min-height: 100%; gap: var(--spacing_small);
    box-sizing: border-box; padding: var(--font_size_0);
    overflow: auto;
}

.meeting-section {
    margin-top: 0; margin-right: 0;
}

.meeting-form-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing_small);}

.meeting-field textarea {
    width: 100%; min-height: calc(var(--font_size_0) * 5);
    box-sizing: border-box; padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: inherit;
    font: inherit; font-size: var(--font_size_0);
    resize: vertical;
}

.meetings-empty {
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: var(--spacing_small);
}

.meeting-attachments-header {
    justify-content: space-between; gap: var(--spacing_small);
    margin-top: var(--spacing_small);}

.meeting-checkbox-row {
    gap: var(--spacing_small);
    color: inherit;}

.meeting-question-list {
    margin-top: var(--spacing_small);
}

.meeting-question-item {
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--font_size_0); background: var(--bg-1);
}

.meeting-question-title {
    margin-bottom: var(--spacing_small); color: inherit;
    font-weight: 600;
}

.meeting-answer-row input {
    flex: 1;
}

.meeting-question-head {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: var(--spacing_small);
}

.meeting-question-actions {
    flex: 0 0 auto; flex-wrap: nowrap;
}

.meeting-question-actions button {
    min-width: 30px; min-height: 28px;
    padding: 3px 7px; border: 1px solid var(--border);
    border-radius: 7px; background: var(--bg-1);
    color: inherit; cursor: pointer;
}

.meeting-protocol-options {
    display: flex; flex-direction: column;
    gap: var(--font_size_0);
}

.meeting-protocol-options label {
    display: flex; align-items: center;
    gap: var(--spacing_small);
}

@media (orientation: portrait) {
    .meeting-form-grid {
        grid-template-columns: 1fr;
    }
    .meeting-field-date, .meeting-field-period {
        grid-column: 1 / -1;
    }
}

/* Файл PaymentPeriodDriver.css */

.payment-period-driver__content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing_regular);
    min-height: 0;
}

.payment-period-driver__content .pivot-table-container {
    max-height: 60vh;
    overflow: auto;
}

.payment-period-driver__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing_regular);
    padding-top: var(--spacing_regular);
    border-top: 1px solid var(--divider-soft);
}

.payment-period-driver__buttons {
    display: flex;
    gap: var(--spacing_small);
}

.payment-period-driver__empty {
    padding: var(--spacing_regular);
    background: var(--surface-muted);
    border-radius: var(--radius_medium);
}

@media (max-width: 680px) {
    .payment-period-driver__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .payment-period-driver__buttons {
        justify-content: flex-end;
    }
}

/* Файл employee_panel.css */

.employee-panel__payment-details .form-field-container {
    align-items: flex-start;
    width: 100%;
    margin: 0;
}

.employee-panel__payment-details .form-field-row {
    width: 100%;
    justify-content: flex-start;
}

.employee-panel__payment-details .form-field-item {
    flex: 0 1 760px;
    width: 100%;
}

.employee-panel__payment-details .form-field-content {
    justify-content: flex-start;
}

.employee-panel__payment-details .form-field-text {
    min-width: 210px;
    text-align: left;
}

.employee-panel__payment-details .form-field-input {
    flex: 0 1 360px;
}

.employee-position-field {
    display: flex;
    align-items: center;
    gap: var(--spacing_regular);
    padding: var(--spacing_tight);
}

.employee-position-field__label {
    min-width: 150px;
    font-weight: 500;
    color: var(--text-1);
}

.employee-position-field__button {
    flex: 1;
    min-width: 200px;
    min-height: var(--button-min-height);
    padding: var(--spacing_tight);
    border: 1px solid var(--border);
    border-radius: var(--radius_xs);
    background: var(--input-background);
    color: var(--text-2);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.employee-position-field__button:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 var(--spacing_2xs) var(--focus-ring);
}

/* Файл tab_personnel_and_salary.css */

.personnel-entities-root {
    width: 100%; max-width: 100%;
}

.staff-revisions-tab, .tab-personnel-and-salary {
    display: flex; flex-direction: column;
    min-width: 0; min-height: 0;
    height: 100%;
}

.staff-revisions-tab__toolbar, .tab-personnel-and-salary__buttons {
    position: relative; z-index: 5;
    display: flex; flex: 0 0 auto;
    align-items: center; flex-wrap: wrap;
    gap: 8px; min-height: 42px;
    padding: 8px 4px; background: var(--bg-1);
}

.tab-personnel-and-salary > :not(.tab-personnel-and-salary__buttons),
.staff-revisions-tab > :not(.staff-revisions-tab__toolbar) {
    min-height: 0;
}

.personnel-hires__table-wrap {
    max-width: 100%; overflow: auto;
}

.personnel-hires__table {
    width: 100%; border-collapse: collapse;
}

.personnel-hires__table th, .personnel-hires__table td {
    padding: 8px; border-bottom: 1px solid var(--border);
    text-align: left;
}

.personnel-hires__table th {
    background: var(--bg-2);
}

.personnel-hires__table tbody tr {
    cursor: pointer;
}

.personnel-hires__table tbody tr:hover {
    background: var(--bg-2);
}

.personnel-hires__toolbar {
    flex-wrap: wrap;
}

.personnel-hires__toolbar button, .personnel-hires__order-link,
.personnel-hires__document-link, .personnel-hires__order-card-link,
.personnel-hires__document-form button {
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: 8px;
    background: var(--bg-1); color: var(--text-1);
    cursor: pointer;
}

.personnel-hires__panel {
    display: grid; gap: 9px;
}

.personnel-hires__panel > label {
    display: grid; gap: 4px;
}

.personnel-hires__panel input, .personnel-hires__panel textarea,
.personnel-hires__document-form select {
    box-sizing: border-box; width: 100%;
    border: 1px solid var(--border); border-radius: 7px;
    padding: 7px 9px; font: inherit;
}

.personnel-hires__panel-actions, .personnel-hires__document-form {
    display: flex; flex-wrap: wrap;
    gap: 7px;
}

.personnel-hires__order-card-link {
    width: fit-content; padding: var(--spacing_small) var(--font_size_0);
    border-color: var(--accent); color: var(--accent-blue);
    text-decoration: underline; text-underline-offset: 3px;
}

.personnel-hires__documents h4 {
    margin: 0;
}

.personnel-hires__document-form > div {
    display: inline-flex;
}

.personnel-hires__documents {
    margin: 0; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--spacing_small);}

.personnel-hires__documents > .doc-card__file-list,
.personnel-hires__documents > .doc-card__empty,
.personnel-hires__documents > .doc-card__attachments-footer {
    grid-column: 1 / -1;
}

.personnel-hires__document-link {
    display: block; width: 100%;
    margin-top: 5px; text-align: left;
}


.employee-panel__payment-details {
    display: grid;
    gap: var(--spacing_small);
}

.employee-panel__payment-details h3 {
    margin: 0;
}

.employee-panel__actions {
    display: flex;
    justify-content: flex-end;
}

/* Файл auto_payment_order_details.css */

.counterparty-payment-details {
    gap: 1rem;
}

.counterparty-payment-details__contract-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.counterparty-payment-details__contract-card > h3,
.counterparty-payment-details__subsection h4 {
    margin: 0;
}

.counterparty-payment-details__subsection {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    padding: var(--spacing_regular);
}

.counterparty-payment-details__payee {
    background: var(--surface-primary);
}

.counterparty-payment-details__section-title {
    display: flex;
    align-items: center;
    gap: var(--spacing_small);
}

.counterparty-payment-details__subsection > label,
.counterparty-payment-details__grid label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.counterparty-payment-details__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem 1rem;
}

.counterparty-payment-details__wide {
    grid-column: 1 / -1;
}

.counterparty-payment-details input:not([type='checkbox']),
.counterparty-payment-details select,
.counterparty-payment-details textarea {
    width: 100%;
    box-sizing: border-box;
}

.counterparty-payment-details textarea {
    min-height: 6.5rem;
    resize: vertical;
}

.counterparty-payment-details__subsection >
.counterparty-payment-details__checkbox {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    gap: var(--spacing_small);
}

.counterparty-payment-details__checkbox input {
    flex: 0 0 auto;
    margin: 0;
}

.counterparty-payment-details__actions {
    display: flex;
    justify-content: flex-end;
}

.counterparty-payment-details__empty {
    padding: var(--spacing_regular);
}

.auto-payment-orders-panel__history-toolbar {
    justify-content: space-between;
    gap: 0.55rem;
    flex-wrap: nowrap;
    min-width: 0;
}

.auto-payment-orders-panel__history-toolbar h3 {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.auto-payment-orders-panel__selection {
    min-width: 0;
    flex: 0 1 auto;
    gap: 0.45rem;
    margin-left: auto;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.auto-payment-orders-panel__selection-count {
    flex: 0 0 auto;
    white-space: nowrap;
}

.auto-payment-orders-panel__batch-send {
    flex: 0 0 auto;
    white-space: nowrap;
}

.auto-payment-orders-panel__history-table-widget {
    height: min(48vh, 520px);
    min-height: 260px;
    font-family: inherit;
}

.auto-payment-orders-panel__history-table-widget .table-header {
    font-family: inherit;
}

.auto-payment-orders-panel__history-table-widget select {
    width: 100%;
    min-width: 90px;
}

.auto-payment-orders-panel__columns-list {
    gap: var(--spacing_small);
    padding: var(--spacing_regular);
    background: var(--surface-primary);
}

.auto-payment-orders-panel__column-option {
    gap: var(--spacing_small);
}

.auto-payment-orders-panel__repeat-cell {
    width: 4rem;
    min-width: 4rem;
    max-width: 4rem;
    text-align: center;
}

.auto-payment-orders-panel__repeat-button {
    width: 2.25rem;
    min-width: 2.25rem;
    padding-inline: 0;
}

@media (orientation: portrait) {
    .counterparty-payment-details__grid {
        grid-template-columns: 1fr;
    }

    .counterparty-payment-details__wide {
        grid-column: auto;
    }

    .auto-payment-orders-panel__history-toolbar {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .auto-payment-orders-panel__history-toolbar h3 {
        flex: 1 1 100%;
    }

    .auto-payment-orders-panel__history-toolbar
    .auto-payment-orders-panel__selection {
        display: grid;
        grid-template-columns: auto 1fr;
        width: 100%;
        flex: 1 1 100%;
        margin-left: 0;
    }

    .auto-payment-orders-panel__selection-count {
        justify-self: end;
    }

    .auto-payment-orders-panel__batch-send {
        grid-column: 1 / -1;
        justify-self: end;
    }
}

/* Файл sale_templates_panel.css */

.sale-templates-panel .drawer-body {
    padding: var(--spacing_small);
}

.sale-templates-panel__layout {
    width: 100%; height: 100%;
    min-height: 0;
    grid-template-columns: minmax(230px, 0.55fr) minmax(560px, 1.9fr);
    gap: var(--spacing_small);}

.sale-templates-panel__list, .sale-templates-panel__editor,
.sale-templates-panel__form, .sale-templates-panel__items,
.sale-templates-panel__history {
    min-width: 0; min-height: 0;
}

.sale-templates-panel__list {
    overflow: hidden;}

.sale-templates-panel__editor {
    gap: var(--spacing_small);
    overflow: auto;}

.sale-templates-panel__section-header, .sale-templates-panel__actions,
.sale-templates-panel__item-title, .sale-templates-panel__weekdays {
    display: flex; align-items: center;
    gap: var(--spacing_small);
}

.sale-templates-panel__section-header,
.sale-templates-panel__item-title {
    justify-content: space-between;
}

.sale-templates-panel__section-header h3,
.sale-templates-panel__history h3 {
    margin: 0;
}

.sale-templates-panel__actions {
    flex-wrap: wrap; justify-content: flex-end;
}

.sale-templates-panel__template-list, .sale-templates-panel__items-list {
    display: flex; min-height: 0;
    flex: 1; flex-direction: column;
    gap: var(--spacing_small); overflow: auto;
    margin-top: var(--spacing_small);
}

.sale-templates-panel__template {
    width: 100%; box-sizing: border-box;
    align-items: flex-start; gap: 3px;
    margin: 0; padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    text-align: left;
    cursor: pointer;}

.sale-templates-panel__template.is-active {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(61, 132, 196, 0.12);
}

.sale-templates-panel__template span, .sale-templates-panel__buyer-info {
    color: var(--text-3);
}

.sale-templates-panel__grid {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing_small); margin-top: var(--spacing_small);
}

.sale-templates-panel__grid label {
    display: flex; min-width: 0;
    flex-direction: column; gap: 4px;
}

.sale-templates-panel__grid input:not([type="checkbox"]),
.sale-templates-panel__grid select {
    width: 100%; min-height: 34px;
    box-sizing: border-box;
}

.sale-templates-panel__grid select[multiple] {
    min-height: 110px;
}

.sale-templates-panel__wide {
    grid-column: 1 / -1;
}

.sale-templates-panel__check, .sale-templates-panel__weekdays label {
    flex-direction: row !important; align-items: center;
}

.sale-templates-panel__weekdays {
    flex-wrap: wrap;
}

.sale-templates-panel__item {
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
}

.sale-templates-panel__item-title button {
    border: none; background: transparent;
    color: var(--accent-red); cursor: pointer;
}

.sale-templates-panel__history-scroll {
    width: 100%; overflow: auto;
    margin-top: var(--spacing_small);
}

.sale-templates-panel__history table {
    width: 100%; border-collapse: collapse;
}

.sale-templates-panel__history th, .sale-templates-panel__history td {
    padding: var(--spacing_small); border: 1px solid var(--border);
    text-align: left; vertical-align: top;
}

.sale-templates-panel__history th {
    background: var(--bg-2);
}

@media (max-width: 1050px) {
    .sale-templates-panel__layout {
        grid-template-columns: 1fr; overflow: auto;
    }
    .sale-templates-panel__list {
        max-height: 260px;
    }
    .sale-templates-panel__editor {
        overflow: visible;
    }
    .sale-templates-panel__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .sale-templates-panel__grid {
        grid-template-columns: 1fr;
    }
    .sale-templates-panel__wide {
        grid-column: auto;
    }
}

.sale-templates-panel__attachments {
    display: flex; flex-wrap: wrap;
    align-items: center; gap: 10px 18px;
    padding: 10px 12px; border: 1px solid var(--border);
    border-radius: var(--border_radius); background: var(--bg-2);
}

.sale-templates-panel__attachments strong {
    width: 100%;
}

.sale-templates-panel__attachments label {
    display: inline-flex; align-items: center;
    gap: 7px;
}

/* Файл purchases_table.css */

.purchases-and-sales-table-page {
    gap: 4px; padding: 0 6px 6px;
}

.purchases-and-sales-table-page__toolbar { min-height: 0;
    flex: 0 0 auto;
    justify-content: flex-end; margin: 0;
    padding: 0;
}

.purchases-and-sales-table-page__table {
    margin: 0;
}

/* Файл download_residents.css */

.download-residents__root {
    height: 100%; box-sizing: border-box;
    color: var(--text-1);
    font-size: var(--font_size_0);}

.download-residents__block {
    flex-shrink: 0;}

.download-residents__label {
    font-size: var(--font_size_0); color: var(--text-3);
    margin-bottom: 10px; display: block;
}

.download-residents__select {
    width: 100%; height: calc(var(--font_size_0) * 2);
    padding: 4px 8px; border-radius: 6px;
    border: 1px solid var(--border); background: var(--bg-1);
    font-size: var(--font_size_0); color: var(--text-1);
    box-sizing: border-box;
}

.download-residents__select:focus {
    outline: none; border-color: var(--accent-blue);
    box-shadow: 0 0 0 2px rgba(47, 117, 181, 0.15);
}

.download-residents__radio-group {
    gap: 6px;
    padding: 4px 2px;}

.download-residents__radio-row {
    gap: 8px; font-size: var(--font_size_0);
    color: var(--text-2);
    cursor: pointer;}

.download-residents__radio-row input[type="radio"] {
    accent-color: var(--accent-blue); cursor: pointer;
}

.download-residents__house {
    font-size: var(--font_size_1); color: var(--text-1);
}

.download-residents__button-row {
    margin-top: 20px; display: flex;
    flex-shrink: 0;
}

/* Файл tab_residents.css */

.residents-actions {
    width: 100%; height: auto;
    min-width: 0; align-items: start;
    gap: var(--spacing_small);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, min-content);
    padding-top: var(--table-workspace-edge-gap);}

.residents-actions__add {
    min-width: 0; grid-column: 1 / -1;
}

.residents-actions__download, .residents-actions__export {
    min-width: 0;
}

.residents-actions__add .btn,
.residents-actions__download .dropdown-container,
.residents-actions__download .dropdown-button,
.residents-actions__export .btn {
    width: 100%; height: auto;
    min-height: var(--button-min-height);
}

@media (orientation: portrait) {
    .residents-actions {
        height: auto; align-items: stretch;
        grid-template-columns: minmax(0, 1fr) 40px 40px;
        grid-template-rows: minmax(var(--button-min-height), auto);
    }
    .residents-actions__add {
        grid-column: auto;
    }
    .residents-table .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column) th:first-child,
.residents-table .portrait-column-switcher-wrapper
.data-table:not(.has-row-number-column) td:first-child {
        width: 25% !important;
    }
}

/* Файл tax_payment_templates.css */

.tax-payment-templates__account {
    flex: 0 0 auto;
    padding: var(--spacing_medium);
}

.tax-payment-templates__account label {
    display: grid;
    width: min(100%, 720px);
    gap: var(--spacing_small);
}

.tax-payment-templates__account select {
    width: 100%;
    min-height: 36px;
}

/* Файл usn.css */

.usn-page {
    display: flex; flex-direction: column;
}

.usn-page > .block_1 {
    min-width: 0;
}

.usn-page__grid--small {
    margin-top: var(--spacing_small);
}

.usn-page__calculation {
    min-height: 0; flex: 0 0 auto;
    gap: var(--spacing_small);}

.usn-page__period-wrap {
    width: 100%; min-height: 0;
    overflow-x: auto; overflow-y: visible;
    scrollbar-gutter: stable;
}

.usn-page__period-table {
    width: 100%; min-width: 760px;
    border-collapse: separate; border-spacing: 0;
    font-size: var(--font_size_0);
}

.usn-page__period-table thead {
    position: sticky; top: 0;
    z-index: 2;
}

.usn-page__period-table th, .usn-page__period-table td {
    padding: 8px 10px; border-bottom: 1px solid var(--border);
    text-align: left; vertical-align: top;
}

.usn-page__period-table th {
    background: var(--bg-2); color: var(--blue-navy);
    font-weight: 700; box-shadow: inset 0 -1px 0 var(--border);
}

.usn-page__period-table td {
    background: var(--bg-1);
}

.usn-page__period-table td input {
    width: 100%; min-width: 110px;
}

.usn-page__actions {
    margin-top: 0; justify-content: flex-end;
}

@media (max-aspect-ratio: 1 / 1), (max-width: 900px) {
    .usn-page__actions {
        flex-direction: column;
    }
    .usn-page__actions .btn {
        width: 100%;
    }
    .usn-page__period-table {
        min-width: 680px;
    }
}

/* Файл taxes_and_tax_reporting.css */

.taxes-and-reporting-root, .tax-object-tabs,
.tax-object-tabs > .tab-widget-container,
.tax-object-tabs .tab-container-left,
.tax-object-tabs .tab-content-wrapper {
    width: 100%; height: 100%;
    min-height: 0;
}

.tax-object-tabs {
    display: flex; overflow: hidden;
}

.tax-object-tabs .tab-content-wrapper.scrollable >
.tab-content-item.active.scrollable-content {
    min-height: 0; overflow: hidden;
}

.taxes-and-reporting-root .tab-content-item {
    min-height: 0;
}

.ndfl-page, .usn-page {
    display: flex; width: 100%;
    height: 100%; min-height: 0;
    flex: 1 1 auto; flex-direction: column;
    gap: calc(var(--spacing_small) / 2); box-sizing: border-box;
    padding: calc(var(--spacing_small) / 2) var(--spacing_small);
    overflow-x: hidden; overflow-y: auto;
    scrollbar-gutter: stable; overscroll-behavior: contain;
    background: var(--bg-2);
}

.ndfl-page > .block_1, .usn-page > .block_1 {
    width: 100%; min-width: 0;
    box-sizing: border-box;
}

.ndfl-page__card {
    background: var(--bg-2); color: var(--blue-navy);
}

.ndfl-page__object, .ndfl-page__settings, .ndfl-page__table-wrap,
.usn-page__general, .usn-page__calculation, .usn-page__signer {
    width: 100%;
}

.ndfl-page__object {
    color: var(--text-2);
    line-height: 1.4;
}

.ndfl-page__settings {
    display: flex; align-items: end;
    flex-wrap: wrap; gap: var(--spacing_small);
}

.ndfl-page__settings-title {
    min-width: min(260px, 100%); flex: 1 1 260px;
    gap: calc(var(--spacing_small) / 2);}

.ndfl-page__settings-title h2, .ndfl-page__settings-title p {
    margin: 0;
}

.ndfl-page__settings-title p {
    color: var(--text-2); font-size: var(--font_size_0);
}

.ndfl-page__settings label {
    display: flex; min-width: 180px;
    flex: 1 1 180px; flex-direction: column;
    gap: var(--spacing_small);
}

.ndfl-page__settings label > span {
    color: var(--text-3); font-size: var(--font_size_0);
    font-weight: 600;
}

.ndfl-page__settings select, .ndfl-page__settings input {
    width: 100%; min-width: 0;
    height: calc((var(--font_size_0) * 2) + var(--spacing_small));
    padding: 0 var(--font_size_0); border: 1px solid var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--blue-navy); font: inherit;
    font-size: var(--font_size_0); box-sizing: border-box;
}

.ndfl-page__table-wrap {
    min-height: 360px; flex: 0 0 auto;
    gap: var(--spacing_small);}

.ndfl-page__table-widget {
    min-height: clamp(320px, 52dvh, 680px);
}

.ndfl-page__table-widget-content {
    min-height: 280px; flex: 1 1 auto;
}

.tax-reference-page__table {
    width: 100%; min-width: 1180px;
    border-collapse: separate; border-spacing: 0;
    table-layout: fixed; font-size: var(--font_size_0);
}

.tax-reference-page__table thead {
    position: sticky; top: 0;
    z-index: 4;
}

.tax-reference-page__table th, .tax-reference-page__table td {
    padding: 8px 10px; border-bottom: 1px solid var(--border);
    vertical-align: top; background-clip: padding-box;
}

.tax-reference-page__table th {
    background: var(--bg-2); color: var(--blue-navy);
    font-size: var(--font_size_0); font-weight: 700;
    line-height: 1.2; overflow-wrap: anywhere;
    white-space: normal; box-shadow: inset 0 -1px 0 var(--border);
}

.tax-reference-page__table td {
    background: var(--bg-1);
}

.tax-reference-page__table th:nth-child(1),
.tax-reference-page__table td:nth-child(1) {
    width: 110px;
}

.tax-reference-page__table th:nth-child(2),
.tax-reference-page__table td:nth-child(2),
.tax-reference-page__table th:nth-child(3),
.tax-reference-page__table td:nth-child(3) {
    width: 150px;
}

.tax-reference-page__table th:nth-child(4),
.tax-reference-page__table td:nth-child(4) {
    width: 125px;
}

.tax-reference-page__table th:nth-child(5),
.tax-reference-page__table td:nth-child(5),
.tax-reference-page__table th:nth-child(6),
.tax-reference-page__table td:nth-child(6) {
    width: 180px;
}

.tax-reference-page__table th:nth-child(7),
.tax-reference-page__table td:nth-child(7) {
    width: 115px;
}

.tax-reference-page__table th:nth-child(8),
.tax-reference-page__table td:nth-child(8) {
    width: 110px;
}

.tax-reference-page__table input, .tax-reference-page__table select {
    width: 100%; min-width: 0;
    height: calc((var(--font_size_0) * 2) + var(--spacing_small));
    box-sizing: border-box; font-size: var(--font_size_0);
}

.tax-reference-page__table td:last-child .btn {
    width: 100%;
}

@media (max-aspect-ratio: 1 / 1), (max-width: 980px) {
    .ndfl-page, .usn-page {
        padding-right: calc(var(--font_size_0) + 4px);
    }
    .ndfl-page__settings {
        align-items: stretch;
    }
    .ndfl-page__settings > .btn {
        width: 100%;
    }
    .ndfl-page__table-widget {
        min-height: clamp(300px, 46dvh, 600px);
    }
}

/* Файл warehouse_accounting.css */

.warehouse-accounting, .warehouse-accounting__table-page {
    display: flex; width: 100%;
    min-height: 0; height: 100%;
    flex-direction: column;
}

.warehouse-accounting__table-page {
    gap: 6px; padding-top: 2px;
}

.warehouse-accounting__description {
    display: flex; min-height: 52px;
    flex: 0 0 auto; align-items: center;
    justify-content: space-between; gap: 12px;
    margin: 0 4px; padding: 7px 12px;
}

.warehouse-accounting__description-text {
    display: flex; min-width: 0;
    align-items: baseline; gap: 18px;
}

.warehouse-accounting__description strong {
    flex: 0 0 auto; color: var(--text-1);
    font-size: var(--font_size_1);
}

.warehouse-accounting__description span {
    overflow: hidden; color: var(--text-3);
    font-size: var(--font_size_button); text-overflow: ellipsis;
    white-space: nowrap;
}

.warehouse-accounting__table {
    min-height: 320px; flex: 1 1 auto;
}

.warehouse-entry-form {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px;
    padding: 4px;}

.warehouse-entry-form__field {
    min-width: 0;
    gap: 6px;}

.warehouse-entry-form__notice, .warehouse-entry-form__actions {
    grid-column: 1 / -1;
}

.warehouse-entry-form__field > span {
    color: var(--text-2); font-weight: 600;
}

.warehouse-entry-form__field input, .warehouse-entry-form__field select,
.warehouse-entry-form__field textarea {
    width: 100%; box-sizing: border-box;
}

.warehouse-entry-form__field textarea {
    min-height: 96px; resize: vertical;
}

.warehouse-entry-form__notice {
    padding: 10px 12px; color: var(--text-3);
}

.warehouse-entry-form__actions {
    display: flex; justify-content: flex-end;
    gap: 10px; padding-top: 6px;
}

@media (max-width: 900px) {
    .warehouse-accounting__description,
.warehouse-accounting__description-text {
        align-items: flex-start; flex-direction: column;
    }
    .warehouse-accounting__description span {
        white-space: normal;
    }
    .warehouse-entry-form {
        grid-template-columns: 1fr;
    }
}

/* Файл scheduler_control.css */

.developer-scheduler-control {
    gap: 10px;}

.developer-scheduler-control__button {
    background: var(--main-color, #2f80c9);
    border: 1px solid var(--main-color, #2f80c9); border-radius: 8px;
    color: #fff; cursor: pointer;
    font-size: var(--font_size_caption); font-weight: 500;
    line-height: 1.2; padding: 6px 10px;
}

.developer-scheduler-control__button--stop {
    background: transparent; color: var(--main-color, #2f80c9);
}

.developer-scheduler-control__button:disabled {
    cursor: wait; opacity: 0.6;
}

/* Файл pages_dev_base.css */

/* Файл pages_dev.css */

.developer-settings-root, .developer-database, .developer-storage {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    box-sizing: border-box;
}

.developer-settings-root {
    overflow: hidden;
}

.developer-database, .developer-storage {
    display: flex; flex-direction: column;
    gap: var(--spacing_small); padding: var(--spacing_small);
    overflow: hidden; background: var(--page_background);
    color: var(--text-2); font-size: var(--font_size_0);
}

.developer-loading, .developer-empty {
    display: flex; align-items: center;
    justify-content: center; min-height: 140px;
    color: var(--text-3); font-size: var(--font_size_0);
}

.developer-toolbar, .developer-storage__toolbar {
    display: flex; align-items: center;
    gap: var(--spacing_small); flex: 0 0 auto;
    padding: var(--spacing_small);
}

.developer-toolbar__modes {
    gap: 6px;}

.developer-search {
    flex: 1 1 300px; min-width: 160px;
    min-height: 34px; box-sizing: border-box;
    border: 1px solid var(--border); border-radius: 8px;
    padding: 6px 10px; background: var(--bg-1);
    color: var(--text-2); font: inherit;
    outline: none;
}

.developer-search:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);
}

.developer-summary-grid {
    grid-template-columns: repeat(5, minmax(120px, 1fr));
    gap: var(--spacing_small);
    flex: 0 0 auto;}

.developer-summary-card {
    justify-content: space-between; gap: var(--spacing_small);
    min-height: calc((var(--font_size_0) * 2) + var(--spacing_small));
    padding: calc(var(--spacing_small) * .75) var(--font_size_0);}

.developer-summary-card span, .developer-storage__metric span,
.developer-storage__toolbar span {
    color: var(--text-3);
}

.developer-summary-card b, .developer-storage__metric strong {
    color: var(--text-1); font-size: var(--font_size_2);
}

.developer-table-list { gap: calc(var(--spacing_small) * .5);
    padding-right: calc(var(--spacing_small) * .25);}

.developer-table-card {
    flex: 0 0 auto; overflow: hidden;
    padding: 0;
}

.developer-table-card > summary {
    display: flex; align-items: center;
    justify-content: space-between; gap: 12px;
    padding: calc(var(--spacing_small) * .75) var(--font_size_0);
    cursor: pointer; list-style: none;
    background: var(--bg-1);
}

.developer-table-card > summary::-webkit-details-marker {
    display: none;
}

.developer-table-card > summary::before {
    content: '›'; flex: 0 0 auto;
    color: var(--accent); font-size: var(--font_size_2);
    transition: transform .16s ease;
}

.developer-table-card[open] > summary::before {
    transform: rotate(90deg);
}

.developer-table-card > summary > div:first-of-type {
    display: flex; flex-direction: column;
    flex: 1 1 auto; min-width: 0;
}

.developer-table-card > summary strong {
    color: var(--text-1);
}

.developer-table-card > summary span {
    color: var(--text-3);
}

.developer-table-card__stats {
    display: flex; align-items: center;
    gap: calc(var(--spacing_small) * .75); flex-wrap: wrap;
    justify-content: flex-end;
}

.developer-table-card__stats span {
    display: inline-flex; border: 1px solid var(--border);
    border-radius: 999px; padding: 2px calc(var(--spacing_small) * .75);
    background: var(--bg-2); white-space: nowrap;
}

.developer-column-list {
    border-top: 1px solid var(--border);
}

.developer-column-row {
    grid-template-columns:
        minmax(220px, 1.6fr)
        minmax(90px, .6fr)
        minmax(90px, .5fr)
        minmax(180px, 1fr);
    align-items: center; gap: 8px;
    min-height: 34px; padding: 4px 12px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-1);}

.developer-column-row:nth-child(even) {
    background: color-mix(in srgb, var(--bg-2) 55%, var(--bg-1));
}

.developer-column-name {
    gap: 7px;
    min-width: 0;}

.developer-column-name strong, .developer-column-reference {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-column-type, .developer-column-nullable,
.developer-column-reference {
    color: var(--text-3);
}

.developer-key {
    display: inline-flex; align-items: center;
    justify-content: center; min-width: 28px;
    min-height: 20px; border-radius: 5px;
    padding: 0 4px; color: var(--on-accent);
    font-size: var(--font_size_caption); font-weight: 700;
}

.developer-key--pk {
    background: var(--accent-orange-text);
}

.developer-key--fk {
    background: var(--accent-blue);
}

.developer-table-card__actions {
    display: flex; justify-content: flex-end;
    padding: 8px 12px; background: var(--bg-1);
}

.developer-table-error {
    padding: 8px 12px; color: var(--accent-red);
    background: color-mix(in srgb, var(--accent-red) 8%, var(--bg-1));
}

.developer-diagram-shell {
    position: relative;
    min-height: 500px;
    background:
        linear-gradient(
            to right,
            color-mix(in srgb, var(--border) 55%, transparent) 1px,
            transparent 1px
        ),
        linear-gradient(
            to bottom,
            color-mix(in srgb, var(--border) 55%, transparent) 1px,
            transparent 1px
        ),
        var(--bg-2);
    background-size: 24px 24px;
}

/* Файл pages_dev_navigation.css */

.developer-diagram-tools {
    position: absolute; z-index: 20;
    top: 10px; right: 10px;
    gap: 6px; padding: 5px;
    border: 1px solid var(--border); border-radius: 10px;
    background: var(--card);
    box-shadow: var(--shadow);}

.developer-diagram-viewport {
    width: 100%; height: 100%;
}

.developer-diagram-viewport::after {
    content: ''; display: block;
    width: var(--diagram-width); height: var(--diagram-height);
    pointer-events: none;
}

.developer-diagram-canvas {
    position: absolute; left: 0;
    top: 0; transform-origin: 0 0;
}

.developer-relations {
    position: absolute; inset: 0;
    z-index: 1; overflow: visible;
    pointer-events: none;
}

.developer-relations path {
    fill: none; stroke: color-mix(in srgb, var(--accent) 75%, var(--text-3));
}

.developer-relations marker path {
    fill: var(--accent); stroke: none;
}

.developer-schema-table {
    position: absolute; z-index: 2;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border));
    background: var(--bg-1);
    box-shadow: var(--shadow);
}

.developer-schema-table > header {
    display: flex; align-items: center;
    justify-content: space-between; box-sizing: border-box;
    color: var(--on-accent);
    background: linear-gradient(135deg, var(--accent-blue), var(--blue-navy));
    cursor: grab; user-select: none;
}

.developer-schema-table > header:active {
    cursor: grabbing;
}

.developer-schema-table > header > div {
    display: flex; flex-direction: column;
    min-width: 0;
}

.developer-schema-table > header strong,
.developer-schema-table > header span {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-schema-table > header span {
    opacity: .8;
}

.developer-schema-table > header button {
    display: inline-flex; align-items: center;
    justify-content: center; width: 28px;
    height: 28px; flex: 0 0 28px;
    border: 1px solid rgba(255,255,255,.35); border-radius: 7px;
    color: var(--on-accent); background: rgba(255,255,255,.13);
    cursor: pointer;
}

.developer-schema-column {
    display: grid;
    align-items: center;
    box-sizing: border-box;
    border-bottom: 1px solid var(--border);
}

.developer-schema-column:last-child {
    border-bottom: none;
}

.developer-schema-column:nth-child(even) {
    background: color-mix(in srgb, var(--bg-2) 55%, var(--bg-1));
}

.developer-schema-column__key {
    color: var(--accent-orange-text); font-weight: 700;
}

.developer-schema-column__type {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-schema-column__type {
    color: var(--text-3); text-align: right;
}

.developer-preview {
    position: relative; flex: 0 0 min(42vh, 430px);
    min-height: 220px;
    overflow: hidden;}

.developer-preview__header {
    display: flex; align-items: center;
    justify-content: space-between; gap: 10px;
    padding: 8px 10px; border-bottom: 1px solid var(--border);
}

.developer-preview__header > div {
    display: flex; flex-direction: column;
}

.developer-preview__header span {
    color: var(--text-3);
}

.developer-preview table {
    width: max-content; min-width: 100%;
    border-collapse: collapse; background: var(--bg-1);
}

.developer-preview th, .developer-preview td {
    max-width: 360px; padding: 6px 8px;
    border: 1px solid var(--border); text-align: left;
    white-space: nowrap; overflow: hidden;
    text-overflow: ellipsis;
}

.developer-preview th {
    position: sticky; top: 0;
    z-index: 1; color: var(--on-accent);
    background: var(--text-2);
}

.developer-storage__toolbar {
    justify-content: space-between;
}

.developer-storage__toolbar > div {
    display: flex; flex-direction: column;
}

.developer-storage__main {
    grid-template-columns: minmax(280px, 1fr) minmax(260px, 1fr);
    flex: 0 0 min(30vh, 260px); gap: var(--spacing_small);
    min-height: 0;}

.developer-storage__donut-card {
    justify-content: center;
}

.developer-storage__donut {
    display: grid; place-items: center;
    flex: 0 0 168px; border-radius: 50%;
    background: conic-gradient(
        var(--accent) 0 var(--storage-used),
        var(--bg-2) var(--storage-used) 100%
    ); box-shadow: inset 0 0 0 1px var(--border);
}

.developer-storage__donut::before {
    content: ''; grid-area: 1 / 1;
    width: 112px; height: 112px;
    border-radius: 50%; background: var(--bg-1);
    box-shadow: 0 0 0 1px var(--border);
}

/* Файл pages_dev_dashboard.css */

.developer-storage__donut > div {
    position: relative; grid-area: 1 / 1;
    display: flex; flex-direction: column;
    align-items: center;
}

.developer-storage__donut strong {
    color: var(--text-1); font-size: var(--font_size_3);
}

.developer-storage__donut span {
    color: var(--text-3);
}

.developer-storage__legend {
    display: flex; flex-direction: column;
    gap: var(--spacing_small);
}

.developer-storage__legend > div {
    display: flex; align-items: center;
    gap: 10px;
}

.developer-storage__legend > div > div {
    display: flex; flex-direction: column;
}

.developer-storage__legend small {
    color: var(--text-3);
}

.developer-storage__dot {
    width: 13px; height: 13px;
    border-radius: 50%;
}

.developer-storage__dot--used {
    background: var(--accent);
}

.developer-storage__dot--free {
    background: var(--bg-2); border: 1px solid var(--border);
}

.developer-storage__cards {
    grid-template-columns: 1fr; gap: var(--spacing_small);
    min-height: 0;}

.developer-storage__metric {
    display: flex; flex-direction: column;
    justify-content: center;
}

.developer-storage__breakdown {
    flex: 1 1 auto; min-height: 0;
    overflow: auto; padding: var(--font_size_0);
}

.developer-storage__breakdown h3 {
    margin: 0 0 var(--spacing_small); color: var(--text-1);
}

.developer-storage__row {
    display: grid; grid-template-columns: minmax(180px, 280px) 1fr;
    align-items: center; gap: var(--font_size_0);
    margin-bottom: var(--spacing_small);
}

.developer-storage__row:last-child {
    margin-bottom: 0;
}

.developer-storage__row > div:first-child {
    display: flex; justify-content: space-between;
    gap: 10px;
}

.developer-storage__row span {
    color: var(--text-3);
}

.developer-storage__bar {
    height: 10px; overflow: hidden;
    border-radius: 999px; background: var(--bg-2);
}

.developer-storage__bar span {
    display: block; height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--accent), var(--accent-blue));
}

@media (max-width: 1000px) {
    .developer-summary-grid {
        grid-template-columns: repeat(3, minmax(120px, 1fr));
    }
    .developer-column-row {
        grid-template-columns: minmax(190px, 1.4fr) 90px 90px;
    }
    .developer-column-reference {
        grid-column: 1 / -1;
    }
    .developer-storage__main {
        grid-template-columns: 1fr; flex-basis: auto;
        overflow: auto;
    }
}

@media (orientation: portrait), (max-width: 720px) {
    .developer-database, .developer-storage {
        padding: calc(var(--spacing_small) * .75);
    }
    .developer-toolbar {
        align-items: stretch; flex-direction: column;
    }
    .developer-search {
        width: 100%; flex: 0 0 auto;
    }
    .developer-toolbar__modes {
        display: grid; grid-template-columns: 1fr 1fr;
    }
    .developer-summary-grid {
        grid-template-columns: repeat(2, minmax(100px, 1fr));
    }
    .developer-table-card > summary {
        align-items: flex-start; flex-direction: column;
    }
    .developer-table-card__stats {
        justify-content: flex-start;
    }
    .developer-column-row {
        grid-template-columns: minmax(0, 1fr) 80px;
    }
    .developer-column-nullable, .developer-column-reference {
        grid-column: 1 / -1;
    }
    .developer-storage__donut-card {
        flex-direction: column;
    }
    .developer-storage__row {
        grid-template-columns: 1fr; gap: 6px;
    }
}

@media (orientation: portrait) {
    .developer-database {
        height: 100%; min-height: 0;
        overflow-x: hidden; overflow-y: auto;
        overscroll-behavior-y: contain; scrollbar-gutter: stable;
    }

    .developer-database .developer-toolbar,
    .developer-database .developer-summary-grid,
    .developer-database .developer-table-list,
    .developer-database .developer-diagram-shell {
        flex: 0 0 auto;
    }

    .developer-database .developer-table-list.flex-scroll {
        max-height: none; overflow: visible;
    }

    .developer-database .developer-diagram-shell {
        min-height: 0; overflow: visible;
    }

    .developer-database .developer-diagram-viewport {
        height: var(--diagram-height); min-height: 700px;
        flex: 0 0 auto; overflow-x: auto; overflow-y: hidden;
        overscroll-behavior: auto; scrollbar-gutter: auto;
    }
}

/* Компактная верхняя навигация только внутри конфигурации Developer. */

.developer-settings-root .tab-nav-top { margin-bottom: 0;
}

.developer-settings-root .tab-nav-top .tab-item-wrapper {
    padding: calc(var(--spacing_small) * .55) var(--font_size_0);
}

/* Основные параметры сервера и история нагрузки. */

.developer-server {
    width: 100%; height: 100%;
    min-width: 0; min-height: 0;
    box-sizing: border-box; gap: var(--spacing_small);
    padding: var(--spacing_small); overflow: hidden;
    background: var(--page_background); color: var(--text-2);
    font-size: var(--font_size_0);}

.developer-server__toolbar {
    display: flex; flex: 0 0 auto;
    align-items: center; justify-content: space-between;
    gap: var(--font_size_0);
}

.developer-server__toolbar {
    padding: var(--spacing_small) var(--font_size_0);
}

.developer-server__toolbar > div, .developer-server__metric {
    display: flex; flex-direction: column;
    gap: 4px;
}

.developer-server__toolbar span, .developer-server__metric span,
.developer-server__metric small {
    color: var(--text-3);
}

.developer-server__cards {
    flex: 0 0 auto; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing_small);}

.developer-server__metric {
    min-height: 116px; justify-content: center;
    padding: var(--font_size_0);
}

/* Файл pages_dev_cards.css */

.developer-server__metric strong {
    color: var(--text-1); font-size: var(--font_size_3);
}

.developer-server__progress {
    width: 100%; height: var(--spacing_small);
    overflow: hidden; border-radius: var(--font_size_0);
    background: var(--bg-2);
}

.developer-server__progress span {
    display: block; height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--accent), var(--accent-blue));
}

.developer-server__chart {
    min-height: 0; flex: 1 1 auto;
    gap: var(--spacing_small); overflow: hidden;
    padding: var(--font_size_0);}

.developer-server__legend {
    gap: var(--font_size_0);}

.developer-server__legend span {
    position: relative; padding-left: var(--font_size_0);
}

.developer-server__legend span::before {
    position: absolute; top: 50%;
    left: 0; width: var(--spacing_small);
    height: var(--spacing_small); border-radius: 50%;
    content: ''; transform: translateY(-50%);
}

.developer-server__line {
    fill: none; stroke-width: 3;
    vector-effect: non-scaling-stroke;
}

.developer-server__axis {
    display: flex; justify-content: space-between;
    color: var(--text-3); font-size: var(--font_size_0);
}

@media (orientation: portrait), (max-width: 800px) {
    .developer-server__cards {
        grid-template-columns: 1fr; overflow: auto;
    }
    .developer-server__metric {
        min-height: 86px;
    }
}

/* Современный дашборд Developer */

.developer-settings-root {
    background: var(--bg-2);
}

.developer-settings-root .tab-nav-top {
    gap: 8px; padding: 8px 10px 0;
    background: transparent;
}

.developer-settings-root .tab-nav-top .tab-item-wrapper {
    border-radius: 14px 14px 0 0; overflow: hidden;
}

.developer-settings-root .tab-nav-top .tab-btn {
    min-height: 42px; border-radius: 14px 14px 0 0;
}

.developer-storage__dashboard {
    display: grid;
    grid-template-columns: minmax(320px, 1.4fr) minmax(260px, 1fr);
}

.developer-storage__hero {
    grid-column: 1 / -1;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%,
        rgba(247,250,255,0.98) 100%);
}

.developer-storage__hero-main {
    display: grid;
    grid-template-columns: minmax(340px, 1fr) minmax(380px, 1.2fr);
    align-items: stretch;
}

.developer-storage__cards--compact {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
}

.developer-storage__cards--compact .developer-storage__metric,
.developer-storage__server-card, .developer-storage__breakdown,
.developer-storage__chart-card, .developer-storage__toolbar {
    border-radius: 18px;
}

.developer-storage__server-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-column: 1 / -1;
}

.developer-storage__server-card {
    display: flex;
    flex-direction: column;
}

.developer-storage__server-card span,
.developer-storage__section-title span {
    color: var(--text-2); font-size: var(--font_size_0);
}

.developer-storage__server-card strong {
    color: var(--blue-navy); font-size: var(--font_size_2);
}

.developer-storage__section-title {
    display: flex; align-items: center;
    justify-content: space-between; gap: 12px;
}

.developer-storage__section-title h3 {
    margin: 0;
}

.developer-storage__area-chart {
    display: flex;
    flex-direction: column;
}

.developer-storage__area-chart svg {
    width: 100%;
    overflow: visible;
}

.developer-storage__chart-grid {
    stroke: rgba(21, 87, 170, 0.14); stroke-width: 1;
}

.developer-storage__chart-label {
    fill: var(--text-2); font-size: var(--font_size_0);
}

.developer-storage__chart-fill {
    fill: rgba(232, 72, 85, 0.68);
}

.developer-storage__chart-line {
    fill: none; stroke: #ff2c33;
    stroke-width: 5; stroke-linejoin: round;
    stroke-linecap: round;
}

/* Файл pages_dev_charts.css */

.developer-storage__chart-axis {
    display: flex; justify-content: space-between;
    color: var(--text-2); font-size: var(--font_size_0);
}

.developer-storage__breakdown {
    grid-column: 1 / 2;
}

.developer-storage__chart-card {
    grid-column: 2 / 3;
}

.developer-storage__metric {
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,1) 0%,
        rgba(246,249,254,1) 100%);
}

@media (max-width: 1200px) {
    .developer-storage__dashboard, .developer-storage__hero-main,
.developer-storage__server-summary {
        grid-template-columns: 1fr;
    }
    .developer-storage__breakdown, .developer-storage__chart-card {
        grid-column: 1 / -1;
    }
    .developer-storage__cards--compact {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 800px) {
    .developer-storage__cards--compact {
        grid-template-columns: 1fr;
    }
    .developer-storage__donut-card {
        flex-direction: column; align-items: flex-start;
    }
}

/* Компактная компоновка второй вкладки Developer. */

.developer-storage--rich {
    padding: 6px 8px 8px;
}

.developer-storage__dashboard {
    gap: 8px;
}

.developer-storage__hero {
    padding: 10px;
}

.developer-storage__hero-main {
    gap: 10px;
}

.developer-storage__donut-card {
    min-height: 190px; gap: 12px;
    padding: 2px;
}

.developer-storage__donut {
    width: 185px; height: 185px;
}

.developer-storage__cards--compact {
    gap: 8px;
}

.developer-storage__metric {
    min-height: 82px; padding: 10px 12px;
}

.developer-storage__server-summary {
    gap: 8px;
}

.developer-storage__server-card {
    min-height: 98px; gap: 6px;
    padding: 10px 12px;
}

.developer-storage__chart-card, .developer-storage__breakdown {
    padding: 10px 12px;
}

.developer-storage__section-title {
    margin-bottom: 6px;
}

.developer-storage__area-chart {
    min-height: 215px; gap: 4px;
}

.developer-storage__area-chart svg {
    height: 190px;
}

.developer-storage__row {
    padding-top: 3px; padding-bottom: 3px;
}

/* Нижняя строка дашборда: состав проекта и две компактные диаграммы. */

.developer-storage__bottom-grid {
    grid-column: 1 / -1;
    grid-template-columns: minmax(300px, 1.15fr) repeat(2, minmax(260px, 1fr));
    gap: 8px;
    align-items: stretch;}

.developer-storage__bottom-grid .developer-storage__breakdown,
.developer-storage__bottom-grid .developer-storage__chart-card {
    min-width: 0; grid-column: auto;
}

.developer-storage__bottom-grid .developer-storage__section-title {
    align-items: flex-start; flex-direction: column;
    gap: 2px;
}

.developer-storage__bottom-grid .developer-storage__chart-card {
    min-height: 245px;
}

.developer-storage__chart-canvas {
    position: relative; min-height: 0;
    flex: 1 1 auto;
}

.developer-storage__chart-canvas svg {
    display: block;
}

.developer-storage__chart-hit {
    fill: transparent; stroke: transparent;
    cursor: crosshair; pointer-events: all;
}

.developer-storage__chart-tooltip {
    position: absolute; z-index: 4;
    min-width: 82px; gap: 2px;
    padding: 6px 8px; border: 1px solid var(--border);
    border-radius: 8px; background: var(--bg-1);
    color: var(--text-1); font-size: var(--font_size_0);
    box-shadow: var(--shadow); pointer-events: none;
    transform: translate(-50%, calc(-100% - 10px));
    white-space: nowrap;}

.developer-storage__chart-tooltip span {
    color: var(--text-2);
}

.developer-storage__area-chart--users .developer-storage__chart-fill {
    fill: color-mix(in srgb, var(--accent) 42%, transparent);
}

.developer-storage__area-chart--users .developer-storage__chart-line {
    stroke: var(--accent-blue);
}

@media (max-width: 1450px) {
    .developer-storage__bottom-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .developer-storage__bottom-grid .developer-storage__breakdown {
        grid-column: 1 / -1;
    }
}

@media (max-width: 900px) {
    .developer-storage__bottom-grid {
        grid-template-columns: 1fr;
    }
    .developer-storage__bottom-grid .developer-storage__breakdown {
        grid-column: auto;
    }
}

/* Компактная и понятная схема связей по одинаковым ID-столбцам. */

.developer-diagram-shell {
    display: flex; overflow: hidden;
}

.developer-diagram-viewport {
    position: relative; min-width: 0;
    min-height: 0; flex: 1 1 auto;
    overflow: auto; scrollbar-gutter: stable both-edges;
    overscroll-behavior: contain;
}

.developer-diagram-canvas {
    min-width: 100%; min-height: 100%;
}

.developer-relations path {
    stroke-width: 1.35; opacity: 0.82;
}

.developer-schema-table {
    border-radius: 8px; font-size: var(--font_size_0);
}

.developer-schema-table > header {
    min-height: 42px; padding: 5px 8px;
    font-size: var(--font_size_0);
}

.developer-storage__area-chart--temperature .developer-storage__chart-fill {
    fill: color-mix(
        in srgb,
        var(--accent-orange-bg) 58%,
        transparent
    );
}

.developer-storage__area-chart--temperature .developer-storage__chart-line {
    stroke: var(--accent-orange-text);
}

/* Файл pages_dev_tables.css */

.developer-schema-table > header strong {
    font-size: var(--font_size_0);
}

.developer-schema-table > header span {
    font-size: var(--font_size_caption);
}

.developer-schema-column {
    height: 26px; grid-template-columns: 25px minmax(0, 1fr) 62px;
    gap: 4px; padding: 0 7px;
    font-size: var(--font_size_button);
}

.developer-schema-column__key {
    font-size: var(--font_size_caption);
}

.developer-schema-column__type {
    font-size: var(--font_size_caption);
}

/* Переключаемый Developer-дашборд. */

.developer-dashboard__toolbar {
    justify-content: space-between; gap: 12px;
    padding: 10px 12px;
    border-radius: 16px;}

.developer-dashboard__switcher {
    min-width: 0; gap: 6px;
    overflow-x: auto;
    padding: 2px;}

.developer-dashboard__switch {
    flex: 0 0 auto; min-height: 36px;
    padding: 6px 12px; border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-1);
    color: var(--text-1); font-size: var(--font_size_0);
    font-weight: 700; cursor: pointer;
}

.developer-dashboard__switch:hover {
    border-color: var(--accent); background: var(--bg-2);
    color: var(--accent-dark);
}

.developer-dashboard__switch--active,
.developer-dashboard__switch--active:hover {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.developer-dashboard__content, .developer-dashboard__section {
    display: flex; min-height: 0;
    flex: 1 1 auto; flex-direction: column;
    gap: 8px;
}

.developer-dashboard__storage-hero {
    grid-template-columns: minmax(310px, 0.9fr) minmax(420px, 1.4fr);
    gap: 10px; padding: 10px 12px;
    border-radius: 18px;}

.developer-dashboard__storage-hero .developer-storage__donut-card {
    min-height: 174px;
}

.developer-dashboard__composition {
    min-width: 0; padding-left: 8px;
    border-left: 1px solid var(--border);
}

.developer-dashboard__composition .developer-storage__section-title {
    margin-bottom: 4px;
}

.developer-dashboard__composition .developer-storage__row {
    padding: 3px 0;
}

.developer-dashboard__metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;}

.developer-dashboard__metrics--six {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.developer-dashboard__metric {
    min-width: 0; min-height: 78px;
    justify-content: center; gap: 3px;
    padding: 10px 12px; border: 1px solid var(--border);
    border-radius: 15px; background: var(--bg-1);
    box-shadow: var(--shadow);}

.developer-dashboard__metric span, .developer-dashboard__metric small {
    color: var(--text-2); font-size: var(--font_size_0);
}

.developer-dashboard__metric strong {
    overflow: hidden; color: var(--accent-dark);
    font-size: var(--font_size_1); text-overflow: ellipsis;
}

.developer-dashboard__metric--success strong {
    color: var(--success, #16864b);
}

.developer-dashboard__metric--warning strong {
    color: var(--accent-orange-text);
}

.developer-dashboard__metric--danger strong {
    color: var(--danger, #c73535);
}

.developer-dashboard__overview-grid, .developer-dashboard__two-columns {
    display: grid; min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
}

.developer-dashboard__overview-grid {
    grid-template-columns: minmax(280px, 0.85fr) minmax(420px, 1.35fr);
}

.developer-dashboard__panel {
    min-width: 0; min-height: 0;
    padding: 10px 12px; border-radius: 16px;
}

.developer-dashboard__panel .developer-storage__area-chart {
    min-height: 205px;
}

.developer-dashboard__panel .developer-storage__area-chart svg {
    height: 180px;
}

.developer-dashboard__integration-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;}

.developer-dashboard__integration-mini,
.developer-dashboard__integration-card {
    display: flex; min-width: 0;
    flex-direction: column; gap: 7px;
    padding: 10px 12px; border: 1px solid var(--border);
    border-radius: 15px; background: var(--bg-1);
    box-shadow: var(--shadow);
}

.developer-dashboard__integration-card-header {
    display: grid; min-width: 0;
    align-items: start; grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.developer-dashboard__integration-card-header > div:first-child {
    display: flex; min-width: 0;
    align-items: center; gap: var(--spacing_compact);
}

.developer-dashboard__integration-card-header > div:first-child strong {
    min-width: 0; overflow-wrap: anywhere;
}

.developer-dashboard__integration-card-header .developer-scheduler-control {
    min-width: 0; justify-content: flex-end;
    gap: var(--spacing_compact);
}

.developer-dashboard__integration-card-header
.developer-scheduler-control > span {
    min-width: 0; overflow-wrap: anywhere;
}

.developer-dashboard__integration-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;}

.developer-dashboard__integration-details {
    min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 4px 10px; color: var(--text-2);
    font-size: var(--font_size_0);}

.developer-dashboard__integration-details > * {
    min-width: 0;
}

.developer-dashboard__integration-error {
    overflow-wrap: anywhere; color: var(--danger, #c73535);
    font-size: var(--font_size_0);
}

.developer-dashboard__status {
    display: inline-flex; align-items: center;
    justify-content: center; padding: 3px 8px;
    border-radius: 999px; background: var(--bg-2);
    color: var(--text-2); font-size: var(--font_size_0);
    font-weight: 700;
}

.developer-dashboard__status--ok, .developer-dashboard__status--running,
.developer-dashboard__status--enabled {
    background: color-mix(in srgb, #16864b 13%, var(--bg-1)); color: #16864b;
}

.developer-dashboard__status--error {
    background: color-mix(in srgb, #c73535 13%, var(--bg-1)); color: #c73535;
}

.developer-dashboard__status--disabled,
.developer-dashboard__status--never {
    background: var(--bg-2); color: var(--text-2);
}

.developer-dashboard__ranked-list, .developer-dashboard__routes {
    display: flex; flex-direction: column;
    gap: 5px;
}

/* Файл pages_dev_integration_errors.css */

.developer-dashboard__integration-error-button {
    display: inline-flex; width: calc(var(--font_size_1) * 1.7);
    height: calc(var(--font_size_1) * 1.7); align-self: flex-end;
    align-items: center; justify-content: center;
    padding: 0; border: 1px solid var(--danger);
    border-radius: 50%; background: var(--bg-1);
    color: var(--danger); font-size: var(--font_size_1);
    font-weight: 700; line-height: 1;
    cursor: pointer;
}

.developer-dashboard__integration-error-button:hover,
.developer-dashboard__integration-error-button:focus-visible {
    background: var(--danger); color: var(--on-accent);
}

.developer-integration-error-panel__notice {
    gap: var(--spacing_small); padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--font_size_0);
    background: var(--bg-1);
    color: var(--text-2);}

.developer-integration-error-panel__icon {
    display: inline-flex; width: calc(var(--font_size_1) * 1.8);
    height: calc(var(--font_size_1) * 1.8); flex: 0 0 auto;
    align-items: center; justify-content: center;
    border-radius: 50%; background: var(--danger);
    color: var(--on-accent); font-size: var(--font_size_1);
    font-weight: 700;
}

.developer-integration-error-panel__text {
    min-height: 240px; max-height: calc(100dvh - 190px);
    box-sizing: border-box; margin: 0;
    padding: var(--font_size_0); overflow: auto;
    border: 1px solid var(--border); border-radius: var(--font_size_0);
    background: var(--bg-1); color: var(--danger);
    font-family: var(--font_family_monospace); font-size: var(--font_size_0);
    line-height: 1.45; overflow-wrap: normal;
    tab-size: 4; user-select: text;
    white-space: pre-wrap; word-break: normal;
}

.developer-integration-error-panel__copy {
    min-width: 120px; padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--bg-1); border-radius: var(--spacing_small);
    background: transparent; color: var(--on-accent);
    cursor: pointer;
}

.developer-integration-error-panel__copy:disabled {
    cursor: default; opacity: .55;
}

.developer-dashboard__integration-info-button {
    display: inline-flex; width: var(--info_button_size);
    height: var(--info_button_size); flex: 0 0 var(--info_button_size);
    align-items: center; justify-content: center;
    padding: 0; border: 1px solid var(--accent);
    border-radius: 50%; background: var(--bg-1);
    color: var(--accent); font-size: var(--font_size_0);
    font-weight: 700; line-height: 1;
    cursor: pointer;
}

.developer-dashboard__integration-info-button:hover,
.developer-dashboard__integration-info-button:focus-visible {
    background: var(--accent); color: var(--on-accent);
}

.developer-integration-history {
    min-height: 0;
    gap: var(--spacing_regular);}

.developer-integration-history__toolbar {
    justify-content: space-between;
    gap: var(--spacing_small);}

.developer-integration-history__toolbar button,
.developer-integration-history__status-cell button {
    padding: var(--spacing_compact) var(--spacing_regular);
    border: 1px solid var(--accent); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--accent);
    cursor: pointer;
}

.developer-integration-history__toolbar button:disabled {
    cursor: default; opacity: .55;
}

.developer-integration-history__load-error {
    padding: var(--spacing_small); border: 1px solid var(--danger);
    border-radius: var(--spacing_small); color: var(--danger);
}

.developer-integration-history__table-wrap {
    min-height: 0; overflow: auto;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
}

.developer-integration-history__table {
    width: 100%; border-collapse: collapse;
    table-layout: fixed; background: var(--bg-1);
}

.developer-integration-history__table th,
.developer-integration-history__table td {
    padding: var(--spacing_small); border-bottom: 1px solid var(--border);
    text-align: left; vertical-align: top;
}

.developer-integration-history__table th {
    position: sticky; z-index: 1;
    top: 0; background: var(--bg-2);
}

.developer-integration-history__table th:nth-child(1),
.developer-integration-history__table td:nth-child(1) {
    width: 16%;
}

.developer-integration-history__table th:nth-child(2),
.developer-integration-history__table td:nth-child(2) {
    width: 9%;
}

.developer-integration-history__table th:nth-child(3),
.developer-integration-history__table td:nth-child(3) {
    width: 18%;
}

.developer-integration-history__table th:nth-child(4),
.developer-integration-history__table td:nth-child(4) {
    width: 57%;
}

.developer-integration-history__status-cell,
.developer-integration-history__detail-cell {
    display: flex; min-width: 0;
    flex-direction: column; gap: var(--spacing_xs);
}

.developer-integration-history__status-cell button {
    align-self: flex-start;
}

.developer-integration-history__detail-cell span {
    color: var(--danger); overflow-wrap: anywhere;
}

/* Файл pages_dev_application_logs.css */

.developer-log-summaries {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--font_size_0);}

.developer-log-summary {
    min-height: 120px; box-sizing: border-box;
    gap: calc(var(--spacing_small) * .45); padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--font_size_0);
    background: var(--bg-1); color: var(--text-2);
    text-align: left;
    cursor: pointer;}

.developer-log-summary:hover, .developer-log-summary:focus-visible,
.developer-log-summary--active {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent);
}

.developer-log-summary strong {
    color: var(--accent-red); font-size: var(--font_size_3);
}

.developer-log-summary small {
    color: var(--text-3);
}

.developer-log-toolbar {
    grid-template-columns:
        auto minmax(130px, 180px) minmax(240px, 1fr) auto auto;
    align-items: center; gap: var(--font_size_0);
    padding: var(--spacing_small);}

.developer-log-toolbar__modes {
    display: inline-flex; padding: calc(var(--spacing_small) * .25);
    border-radius: var(--font_size_0); background: var(--bg-2);
}

.developer-log-toolbar__modes button {
    padding: var(--spacing_small) var(--font_size_0); border: 0;
    border-radius: calc(var(--font_size_0) * .8); background: transparent;
    color: var(--text-2); cursor: pointer;
}

.developer-log-toolbar__modes button.active {
    background: var(--accent); color: var(--on-accent);
}

.developer-log-toolbar select, .developer-log-toolbar input {
    min-height: 40px; box-sizing: border-box;
    padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
}

.developer-log-toolbar > span {
    color: var(--text-3); white-space: nowrap;
}

.developer-log-list {
    min-height: 0; gap: var(--font_size_0);
    overflow: auto;}

.developer-log-item {
    padding: var(--font_size_0); border: 1px solid var(--border);
    border-left: calc(var(--spacing_small) * .55) solid var(--accent);
    border-radius: var(--font_size_0); background: var(--bg-1);
}

.developer-log-item--error, .developer-log-item--critical {
    border-color: var(--status-error-border);
    border-left-color: var(--accent-red);
    background: var(--status-error-background);
}

.developer-log-item--error .developer-log-item__header strong,
.developer-log-item--critical .developer-log-item__header strong,
.developer-log-item--error .developer-log-item__source,
.developer-log-item--critical .developer-log-item__source,
.developer-log-item--error pre, .developer-log-item--critical pre {
    color: var(--accent-red);
}

.developer-log-item--warning {
    border-left-color: var(--accent-orange-text);
}

.developer-log-item--warning .developer-log-item__header strong,
.developer-log-item--warning .developer-log-item__source {
    color: var(--accent-orange-text);
}

.developer-log-item__header {
    grid-template-columns: auto minmax(0, 1fr) auto; align-items: start;
    gap: var(--font_size_0);}

.developer-log-item__header strong {
    color: var(--text-1); overflow-wrap: anywhere;
}

.developer-log-item__header time, .developer-log-item__source {
    color: var(--text-3); font-size: var(--font_size_0);
}

.developer-log-level {
    display: inline-flex; align-items: center;
    justify-content: center; min-width: 72px;
    padding: calc(var(--spacing_small) * .35) var(--spacing_small);
    border-radius: 999px; background: var(--bg-2);
    color: var(--accent); font-size: var(--font_size_caption);
    font-weight: 700;
}

.developer-log-level--error, .developer-log-level--critical {
    background: var(--status-error-background); color: var(--accent-red);
}

.developer-log-level--warning {
    background: color-mix(in srgb, var(--accent-orange-text) 14%, var(--bg-1));
    color: var(--accent-orange-text);
}

.developer-log-item__context {
    display: flex; flex-wrap: wrap;
    gap: calc(var(--spacing_small) * .5); margin-top: var(--spacing_small);
}

.developer-log-item__context span {
    padding: calc(var(--spacing_small) * .3) var(--spacing_small);
    border-radius: 999px; background: var(--bg-2);
    color: var(--text-2); font-family: var(--font_family_monospace);
    font-size: var(--font_size_caption);
}

.developer-log-item__footer {
    justify-content: space-between; gap: var(--spacing_small);
    margin-top: var(--spacing_small);}

.developer-log-item__source {
    min-width: 0; overflow-wrap: anywhere;
}

.developer-log-item__actions {
    display: flex; flex: 0 0 auto;
    gap: calc(var(--spacing_small) * .5);
}

.developer-log-item__actions button, .developer-log-toolbar__download {
    min-height: 34px;
    padding: calc(var(--spacing_small) * .55) var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--accent);
    cursor: pointer;
}

.developer-log-item__actions button:hover,
.developer-log-toolbar__download:hover {
    border-color: var(--accent); background: var(--bg-2);
}

.developer-log-load-more {
    align-self: center; margin: 0 auto;
}

.developer-log-toolbar__download:disabled {
    cursor: wait; opacity: .65;
}

.developer-log-item details {
    margin-top: var(--spacing_small);
}

.developer-log-item summary {
    color: var(--accent); cursor: pointer;
}

.developer-log-item pre, .developer-log-raw {
    box-sizing: border-box; margin: var(--spacing_small) 0 0;
    padding: var(--font_size_0); overflow: auto;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-2); color: var(--text-1);
    font-family: var(--font_family_monospace); font-size: var(--font_size_0);
    line-height: 1.45; tab-size: 4;
    user-select: text; white-space: pre-wrap;
    word-break: break-word;
}

.developer-log-raw {
    min-height: 420px; max-height: calc(100dvh - 260px);
    margin: 0;
}

@media (orientation: portrait), (max-width: 800px) {
    .developer-log-summaries {
        grid-template-columns: 1fr;
    }
    .developer-log-toolbar {
        grid-template-columns: 1fr;
    }
    .developer-log-item__header {
        grid-template-columns: auto 1fr;
    }
    .developer-log-item__header time {
        grid-column: 1 / -1;
    }
    .developer-log-item__footer {
        align-items: stretch; flex-direction: column;
    }
    .developer-log-item__actions {
        width: 100%;
    }
    .developer-log-item__actions button {
        flex: 1 1 0;
    }
}

/* Файл 01.css */

/* Файл pages_dev_schema.css */

.developer-dashboard__ranked-row, .developer-dashboard__route-row {
    display: grid; min-width: 0;
    align-items: center; gap: 8px;
    padding: 5px 0; border-bottom: 1px solid var(--border);
}

.developer-dashboard__route-row {
    grid-template-columns: minmax(0, 1fr) repeat(3, auto);
}

.developer-dashboard__ranked-row:last-child,
.developer-dashboard__route-row:last-child {
    border-bottom: 0;
}

.developer-dashboard__ranked-row strong,
.developer-dashboard__route-row strong {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-dashboard__ranked-row span,
.developer-dashboard__route-row span {
    color: var(--text-2); font-size: var(--font_size_0);
    white-space: nowrap;
}

.developer-dashboard__note {
    padding: 8px 10px; border: 1px solid var(--border);
    border-radius: 12px; background: var(--bg-2);
    color: var(--text-2);
}

@media (max-width: 1300px) {
    .developer-dashboard__metrics--six {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .developer-dashboard__integration-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1000px) {
    .developer-dashboard__storage-hero, .developer-dashboard__overview-grid,
.developer-dashboard__two-columns {
        grid-template-columns: 1fr;
    }
    .developer-dashboard__composition {
        padding-top: 8px; padding-left: 0;
        border-top: 1px solid var(--border); border-left: 0;
    }
    .developer-dashboard__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .developer-dashboard__integration-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .developer-dashboard__toolbar {
        align-items: stretch; flex-direction: column;
    }
    .developer-dashboard__metrics, .developer-dashboard__metrics--six,
.developer-dashboard__integration-grid {
        grid-template-columns: 1fr;
    }
}

.developer-dashboard__metric--green strong {
    color: #16864b;
}

.developer-dashboard__metric--orange strong {
    color: var(--accent-orange-text);
}

.developer-dashboard__metric--red strong {
    color: #c73535;
}

.developer-storage__area-chart--requests .developer-storage__chart-fill {
    fill: color-mix(in srgb, var(--accent) 30%, transparent);
}

.developer-storage__area-chart--requests .developer-storage__chart-line,
.developer-storage__area-chart--storage .developer-storage__chart-line {
    stroke: var(--accent-blue);
}

.developer-dashboard__content {
    overflow: auto; padding-right: 2px;
    scrollbar-gutter: stable;
}

.developer-dashboard__section {
    flex: 0 0 auto;
}

/* Компактная конфигурация Developer без боковой панели */

.developer-app-shell {
    width: 100%; height: 100dvh;
    min-width: 0; min-height: 0;
    overflow: hidden;
    background: var(--page_background);}

.developer-app-toolbar {
    min-height: 42px; flex: 0 0 auto;
    justify-content: space-between; gap: var(--spacing_small);
    padding: 4px var(--font_size_0); border-bottom: 1px solid var(--border);
    background: var(--bg-1);}

.developer-app-toolbar__switches {
    gap: 6px;}

.developer-app-toolbar__policy {
    border: 0; background: transparent;
    color: var(--accent); font-size: var(--font_size_0);
    text-decoration: underline; cursor: pointer;
}

.developer-app-content {
    min-width: 0; overflow: hidden;
}

.developer-settings-root .tab-nav-top {
    justify-content: flex-start;
}

.developer-settings-root .tab-link {
    white-space: nowrap;
}

/* Компактные блоки вкладки «Производительность». */

.developer-dashboard__metrics--performance {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.developer-dashboard__section--performance .developer-dashboard__metric {
    min-height: 58px; gap: 1px;
    padding: 6px 9px;
}

.developer-dashboard__section--performance .developer-dashboard__metric
span,
.developer-dashboard__section--performance .developer-dashboard__metric
small {
    font-size: var(--font_size_caption);
}

.developer-dashboard__section--performance .developer-dashboard__metric
strong {
    font-size: var(--font_size_0);
}

.developer-dashboard__two-columns--performance .developer-dashboard__panel {
    padding: 7px 9px;
}

.developer-dashboard__two-columns--performance .developer-storage__area-chart {
    min-height: 142px;
}

.developer-dashboard__two-columns--performance
.developer-storage__area-chart svg {
    height: 118px;
}

.developer-dashboard__routes-panel {
    flex: 0 0 auto; max-height: 150px;
    padding: 7px 9px; overflow: hidden;
}

.developer-dashboard__routes-panel .developer-dashboard__routes {
    max-height: 96px; overflow-y: auto;
}

.developer-dashboard__routes-panel .developer-dashboard__route-row {
    padding: 3px 0;
}

.developer-dashboard__integration-list--details {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.developer-dashboard__integration-list--details
.developer-dashboard__integration-mini {
    gap: 4px; padding: 7px 9px;
    box-shadow: none;
}

.developer-dashboard__integration-list--details
.developer-dashboard__integration-details {
    gap: 2px 7px; font-size: var(--font_size_caption);
}

.developer-dashboard__integration-list--details
.developer-dashboard__integration-time {
    align-items: flex-end; flex-direction: column;
    gap: 0; white-space: normal;
}

.developer-dashboard__integration-note {
    margin-top: 6px; color: var(--text-2);
    font-size: var(--font_size_caption);
}

@media (max-width: 1200px) {
    .developer-dashboard__metrics--performance {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 750px) {
    .developer-dashboard__metrics--performance,
.developer-dashboard__integration-list--details {
        grid-template-columns: 1fr;
    }
}

/* Разделение названия и веса в детализации диска. */

.developer-dashboard__ranked-row {
    grid-template-columns: minmax(0, 1fr) minmax(140px, 34%);
}

/* Файл 02.css */

.developer-dashboard__ranked-label {
    display: flex; min-width: 0;
    align-items: baseline; justify-content: space-between;
    gap: 14px;
}

.developer-dashboard__ranked-label strong {
    min-width: 0;
}

.developer-dashboard__ranked-label span {
    flex: 0 0 auto;
}

.developer-dashboard__integration-time {
    display: flex; min-width: 0;
    align-items: baseline; justify-content: flex-end;
    gap: 6px; white-space: nowrap;
}

.developer-dashboard__integration-time span {
    color: inherit; font-size: var(--font_size_0);
}

@media (max-width: 750px) {
    .developer-dashboard__ranked-row {
        grid-template-columns: minmax(0, 1fr);
    }
    .developer-dashboard__ranked-label {
        align-items: flex-start; flex-direction: column;
        gap: 3px;
    }
    .developer-dashboard__integration-time {
        align-items: flex-end; flex-direction: column;
        gap: 1px;
    }
}

/* Файл pages_dev_schema.css */

/* Файл pages_dev_storage_layout.css */

/* Растягивание таблицы медленных маршрутов до нижней границы экрана. */

.developer-dashboard__section--performance {
    min-height: 0; flex: 1 1 auto;
}

.developer-dashboard__section--performance .developer-dashboard__routes-panel {
    display: flex; min-height: 140px;
    max-height: none; flex: 1 1 0;
    flex-direction: column;
}

.developer-dashboard__section--performance .developer-dashboard__routes {
    min-height: 0; max-height: none;
    flex: 1 1 auto; overflow-y: auto;
}

/* Левая навигация конфигурации Developer. */

.developer-settings-root > .tab-widget-container,
.developer-settings-root .tab-container-left,
.developer-settings-root .tab-content-wrapper,
.developer-settings-root .tab-content-left,
.developer-settings-root .tab-content-item.active {
    height: 100%; min-height: 0;
}

.developer-settings-root .tab-nav-left {
    height: 100%; min-height: 0;
    padding: 6px; border-right: 1px solid var(--border);
    background: var(--bg-1);
}

.developer-side-navigation {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px;
    margin-bottom: 8px;}

.developer-side-navigation .btn {
    width: 100%;
}

.developer-side-dashboard {
    width: 100%; min-width: 0;
    gap: 6px; margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--border);}

.developer-side-dashboard strong {
    color: var(--blue-navy); font-size: var(--font_size_0);
}

.developer-side-dashboard > span {
    color: var(--text-3); font-size: var(--font_size_caption);
    line-height: 1.3;
}

.developer-side-dashboard__server-selector {
    width: 100%; min-width: 0;
    gap: 3px;}

.developer-side-dashboard__server-selector label {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.developer-side-dashboard__server-selector select {
    width: 100%; min-width: 0;
    margin: 0; padding: 6px 28px 6px 9px;
    border: 1px solid var(--border); border-radius: 9px;
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.developer-side-dashboard .btn {
    width: 100%;
}

.developer-side-dashboard__policy {
    width: 100%; padding: 3px 0;
    border: 0; background: transparent;
    color: var(--accent); font-size: var(--font_size_caption);
    line-height: 1.3; text-align: left;
    text-decoration: underline; cursor: pointer;
}

.developer-app-content {
    height: 100%;
}

/* Внутренняя прокрутка состава проекта на невысоких экранах. */

.developer-dashboard__composition {
    max-height: clamp(220px, 42dvh, 430px); overflow-x: hidden;
    overflow-y: auto; padding-right: var(--spacing_small);
    scrollbar-gutter: stable;
}

/* Файл pages_dev_storage_metrics.css */

/* Верхние показатели Developer: четыре карточки в каждой строке. */

.developer-dashboard__overview-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px;
    align-items: stretch;}

.developer-dashboard__metrics--performance {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.developer-dashboard__metrics--storage {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.developer-storage--rich {
    gap: 6px; padding-top: 6px;
}

.developer-storage__dot--total {
    background: var(--text-2);
}

.developer-dashboard__chart-stack {
    min-width: 0; min-height: 0;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 8px;}

.developer-dashboard__chart-panel {
    min-height: 0;}

.developer-dashboard__chart-panel .developer-storage__section-title {
    flex: 0 0 auto;
}

.developer-dashboard__chart-panel .developer-storage__area-chart {
    min-height: 0; flex: 1 1 auto;
}

.developer-dashboard__chart-panel .developer-storage__chart-canvas svg {
    height: 100%; min-height: 120px;
}

@media (max-width: 1180px) {
    .developer-dashboard__overview-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (orientation: portrait) and (max-width: 560px) {
    .developer-dashboard__overview-metrics,
.developer-dashboard__metrics--performance,
.developer-dashboard__metrics--storage {
        grid-template-columns: minmax(0, 1fr);
    }
    .developer-dashboard__chart-stack {
        grid-template-rows: none;
    }
}

.developer-dashboard__metric[type="button"] {
    border: 0; text-align: left;
    cursor: pointer;
}

.developer-dashboard__drill-head {
    display: flex; align-items: center;
    gap: 12px; padding: 12px;
}

.developer-dashboard__drill-head h3 {
    margin: 0;
}

.developer-dashboard__drill-head label {
    display: grid; gap: 3px;
    color: var(--text-3); font-size: var(--font_size_caption);
}

.developer-dashboard__drill-head input {
    min-height: 34px; padding: 4px 8px;
    border: 1px solid var(--border); border-radius: 10px;
}

.developer-storage__donut-card .universal-chart--donut {
    grid-template-columns: minmax(190px, 220px) 1fr;
}

@media (orientation: portrait) and (max-width: 900px) {
    .developer-dashboard__drill-head {
        display: grid; grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }
    .developer-dashboard__drill-head > div {
        min-width: 0;
    }
    .developer-dashboard__drill-head label {
        display: grid; width: 100%;
        grid-template-columns: auto minmax(0, 1fr); align-items: center;
        gap: 8px;
    }
    .developer-dashboard__drill-head input {
        width: 100%; min-width: 0;
        box-sizing: border-box;
    }
    .developer-dashboard__route-row {
        grid-template-columns: minmax(0, 1fr); gap: 4px;
    }
    .developer-dashboard__route-row strong,
.developer-dashboard__route-row span {
        overflow: visible; text-overflow: clip;
        white-space: normal; word-break: break-word;
    }
}

.developer-storage__disk-dot--project {
    background: var(--success, #2b9b67);
}

.developer-storage__disk-dot--outside {
    background: var(--warning, #ef8b24);
}

.developer-dashboard__runtime-grid {
    display: grid; gap: var(--font_size_0);
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.developer-dashboard__runtime-grid > div {
    background: var(--bg-1); border: 1px solid var(--border);
    border-radius: var(--spacing_small); display: flex;
    flex-direction: column; gap: var(--spacing_small);
    min-width: 0; padding: var(--font_size_0);
}

.developer-dashboard__runtime-grid span {
    color: var(--text-2); font-size: var(--font_size_caption);
}

.developer-dashboard__runtime-grid strong {
    color: var(--text-3); overflow-wrap: anywhere;
}

.developer-dashboard__metric--code-split strong {
    display: flex; flex-wrap: wrap;
    gap: 4px 12px;
}

.developer-dashboard__metric--code-split strong span {
    white-space: nowrap;
}

.developer-dashboard__chart-panel--clickable {
    cursor: pointer; transition: transform .16s ease;
}

.developer-dashboard__chart-panel--clickable:hover {
    border-color: var(--accent); box-shadow: var(--shadow);
    transform: translateY(-1px);
}

.developer-dashboard__chart-panel--clickable:focus-visible {
    outline: 2px solid var(--accent); outline-offset: 2px;
}

.developer-cpu-drill__layout {
    min-width: 0; min-height: 0;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: var(--spacing_small);}

.developer-cpu-drill__chart-panel {
    display: flex; min-width: 0;
    min-height: 0; flex-direction: column;
}

.developer-cpu-drill__chart-panel .developer-storage__area-chart {
    min-height: 280px; flex: 1 1 auto;
}

.developer-cpu-drill__history {
    min-height: 0; max-height: 410px;
    gap: 2px; overflow-y: auto;
    scrollbar-gutter: stable;}

.developer-cpu-drill__history-row {
    grid-template-columns: minmax(100px, auto) minmax(80px, 1fr) 58px;
    align-items: center; gap: var(--spacing_small);
    padding: 5px 0;
    border-bottom: 1px solid var(--border);}

.developer-cpu-drill__history-row > span {
    color: var(--text-2); font-size: var(--font_size_caption);
    white-space: nowrap;
}

.developer-cpu-drill__history-row > strong {
    color: var(--accent-dark); text-align: right;
}

.developer-cpu-drill__history-bar {
    height: 8px; overflow: hidden;
    border-radius: 999px; background: var(--bg-3);
}

.developer-cpu-drill__history-bar span {
    display: block; height: 100%;
    border-radius: inherit; background: var(--accent);
}

@media (max-width: 900px) {
    .developer-cpu-drill__layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Круг использования диска увеличен на 10%, легенда сдвинута вправо. */

.developer-dashboard__storage-hero .developer-storage__donut-card {
    grid-template-columns: minmax(215px, 253px) minmax(180px, 1fr);
    column-gap: 8px;
}

.developer-dashboard__storage-hero .developer-storage__disk-chart {
    transform: scale(1.1); transform-origin: center;
}

.developer-storage__section-title--integrations {
    align-items: center;
}

.developer-auth-errors {
    min-height: 0;
}

.developer-auth-errors__list {
    display: flex;
    min-height: 0;
    flex-direction: column;
    gap: var(--spacing_small);
    overflow-y: auto;
}

.developer-auth-errors__row {
    display: grid;
    grid-template-columns: minmax(150px, auto) minmax(180px, 1fr)
        minmax(160px, auto) auto;
    align-items: center;
    gap: var(--spacing_medium);
    padding: var(--spacing_small) 0;
    border-bottom: 1px solid var(--border);
}

.developer-auth-errors__row:last-child {
    border-bottom: 0;
}

.developer-auth-errors__row > span {
    color: var(--text-2);
    font-size: var(--font_size_caption);
}

@media (max-width: 1180px) {
    .developer-dashboard__metrics--storage {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .developer-auth-errors__row {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--spacing_xs);
    }
}


/* Файл pages_dev_storage_detail.css */

.developer-dashboard__drill > .developer-dashboard__panel {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    overflow: hidden;
}

.developer-storage-detail__summary {
    display: grid;
    gap: var(--spacing_small);
    padding: var(--font_size_0);
}

.developer-storage-detail__guidance {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-self: stretch;
    flex-wrap: wrap;
    gap: var(--spacing_small);
}

.developer-storage-detail__guidance > span:last-child {
    min-width: 0;
    color: var(--text-2);
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.developer-storage-detail__badge {
    flex: 0 0 auto;
    padding: 3px 8px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--bg-2);
    font-size: var(--font_size_caption);
    font-weight: 700;
}

.developer-storage-detail__badge--protected {
    color: var(--danger);
}

.developer-storage-detail__badge--cleanup {
    color: var(--success);
}

.developer-storage-detail__badge--review {
    color: var(--accent-orange-text);
}

.developer-storage-detail__measurement {
    display: flex;
    min-width: 0;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing_small);
    color: var(--text-3);
    font-size: var(--font_size_caption);
}

.developer-storage-detail__warning {
    color: var(--danger);
    overflow-wrap: anywhere;
}

.developer-storage-detail__list {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.developer-storage-detail__row {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 7px;
    padding: 10px 0 12px;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    color: inherit;
    text-align: left;
}

button.developer-storage-detail__row {
    font: inherit;
}

.developer-storage-detail__row:last-child {
    border-bottom: 0;
}

.developer-storage-detail__row--clickable {
    cursor: pointer;
}

.developer-storage-detail__row--clickable:hover {
    background: var(--bg-2);
}

.developer-storage-detail__row--clickable:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.developer-storage-detail__row-main {
    display: grid;
    min-width: 0;
    grid-template-areas:
        'name size'
        'guidance guidance';
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: var(--spacing_small);
}

.developer-storage-detail__row-name {
    display: flex;
    min-width: 0;
    grid-area: name;
    flex-direction: column;
    gap: 2px;
}

.developer-storage-detail__row-name strong {
    min-width: 0;
    color: var(--accent-dark);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.developer-storage-detail__row-name span {
    color: var(--text-3);
    font-size: var(--font_size_caption);
    line-height: 1.4;
}

.developer-storage-detail__size {
    grid-area: size;
    align-self: start;
    white-space: nowrap;
    color: var(--text-2);
}

.developer-storage-detail__row-main
.developer-storage-detail__guidance {
    grid-area: guidance;
}

@media (orientation: portrait) and (max-width: 640px) {
    .developer-storage-detail__row-main {
        grid-template-areas:
            'name'
            'size'
            'guidance';
        grid-template-columns: minmax(0, 1fr);
    }

    .developer-storage-detail__size {
        white-space: normal;
    }
}

/* Файл pages_dev_storage_code.css */

/* Единая карточка количества строк кода и детализация по разделам. */

.developer-dashboard__metric-column--code {
    grid-template-rows: minmax(0, 1fr);
}

.developer-dashboard__metric--code-total {
    height: 100%; justify-content: center;
}

.developer-dashboard__metric--code-total strong {
    font-size: var(--font_size_3);
}

.developer-code-drill__head {
    grid-template-columns: auto minmax(0, 1fr);
}

.developer-code-drill__head span, .developer-code-drill__note {
    color: var(--text-3); font-size: var(--font_size_0);
}

.developer-code-drill__panel {
    min-height: 0; overflow: hidden;
    padding: var(--font_size_0);
}

.developer-dashboard__drill {
    min-height: 0; overflow: hidden;
}

.developer-code-drill__columns, .developer-code-drill__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(110px, 150px) minmax(110px,
        150px);
    align-items: center; gap: 12px;
    font-size: var(--font_size_0);
}

.developer-code-drill__columns {
    flex: 0 0 auto; padding: 0 12px 8px;
    color: var(--text-3);
}

.developer-code-drill__columns span:not(:first-child) {
    text-align: right;
}

.developer-code-drill__rows {
    min-height: 0; flex: 1 1 auto;
    overflow-x: hidden; overflow-y: auto;
    overscroll-behavior: contain; scrollbar-gutter: stable;
    border: 1px solid var(--border); border-radius: var(--spacing_small);
}

.developer-code-drill__row {
    min-height: 44px; padding: 8px 12px;
    border-bottom: 1px solid var(--border); background: var(--bg-1);
}

.developer-code-drill__row:last-child {
    border-bottom: 0;
}

.developer-code-drill__row > span {
    min-width: 0; padding-left: calc(var(--developer-code-level, 0) * 22px);
    overflow-wrap: anywhere;
}

.developer-code-drill__row strong {
    color: var(--text-2); font-size: var(--font_size_0);
    text-align: right;
}

.developer-code-drill__row--emphasis {
    background: var(--bg-2);
}

.developer-code-drill__row--emphasis > span,
.developer-code-drill__row--emphasis strong {
    color: var(--blue-navy); font-weight: 700;
}

.developer-code-drill__note {
    flex: 0 0 auto; margin: 12px 0 0;
    line-height: 1.45;
}

@media (max-width: 680px) {
    .developer-code-drill__columns, .developer-code-drill__row {
        grid-template-columns: minmax(0, 1fr) 82px 82px; gap: 6px;
    }
    .developer-code-drill__row > span {
        padding-left: calc(var(--developer-code-level, 0) * 12px);
    }
}

/* Файл 01.css */

/* Файл pages_dev_servers.css */

.developer-dashboard__header {
    justify-content: space-between; gap: 10px;
    flex: 0 0 auto;}

.developer-dashboard__header .developer-dashboard__switcher {
    min-width: 0; flex: 1 1 auto;
}

.developer-dashboard__metric[type="button"],
.developer-dashboard__metric[type="button"]:hover,
.developer-dashboard__metric[type="button"]:focus,
.developer-dashboard__metric[type="button"]:active {
    border: 1px solid var(--border); background: var(--bg-1);
    color: var(--text-1);
}

.developer-dashboard__metric[type="button"] span,
.developer-dashboard__metric[type="button"] small {
    color: var(--text-2);
}

.developer-dashboard__metric[type="button"] strong {
    color: var(--accent-dark); opacity: 1;
    visibility: visible;
}

.developer-dashboard__metric[type="button"]:hover {
    border-color: var(--accent); box-shadow: var(--shadow);
    transform: translateY(-1px);
}

.developer-storage__donut-card {
    display: grid;
    grid-template-columns: minmax(185px, 230px) minmax(185px, 1fr);
    align-items: center;
}

.developer-storage__disk-chart.universal-chart--donut {
    display: block;
}

.developer-storage__disk-chart .universal-chart__legend {
    display: none;
}

.developer-storage__disk-chart .universal-chart__donut-wrap {
    margin: 0 auto;
}

.developer-storage__disk-legend {
    gap: 10px;
    align-content: center;}

.developer-storage__disk-legend-row {
    display: grid; grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px; align-items: center;
    width: 100%; margin: 0;
    padding: 0; border: 0;
    background: transparent; color: var(--text-1);
    text-align: left;
}

button.developer-storage__disk-legend-row:hover {
    background: transparent; color: var(--text-1);
    transform: none; box-shadow: none;
}

.developer-storage__disk-legend-row b,
.developer-storage__disk-legend-row small {
    display: block; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}

.developer-storage__disk-legend-row b {
    color: var(--text-1); font-size: var(--font_size_1);
}

.developer-storage__disk-legend-row small {
    color: var(--text-3);
}

.developer-storage__disk-dot {
    width: 14px; height: 14px;
    border-radius: 50%;
}

.developer-storage__disk-dot--total {
    background: var(--text-2);
}

.developer-storage__disk-dot--used {
    background: var(--accent, #3b86c8);
}

.developer-storage__disk-dot--free {
    border: 1px solid var(--border); background: var(--bg-3, #e8f0f7);
}

@media (max-width: 1080px) {
    .developer-dashboard__header {
        align-items: stretch; flex-direction: column;
    }
}

@media (max-width: 700px) {
    .developer-storage__donut-card {
        grid-template-columns: 1fr;
    }
}

.developer-storage__disk-chart .universal-chart__donut-hole strong {
    font-size: var(--font_size_0);
}

/* Файл 02.css */

@media (orientation: portrait) {
    .developer-settings-root,
.developer-settings-root .tab-widget-container,
.developer-settings-root .tab-container-left,
.developer-settings-root .tab-content-wrapper,
.developer-settings-root .tab-content-left,
.developer-settings-root .tab-content-item.active, .developer-storage,
.developer-dashboard__content, .developer-dashboard__section {
        width: 100%; max-width: 100%;
        min-width: 0; box-sizing: border-box;
    }
    .developer-storage {
        overflow-x: hidden; overflow-y: auto;
    }
    .developer-dashboard__header {
        align-items: stretch; flex-direction: column;
    }
    .developer-dashboard__switcher {
        display: flex; width: 100%;
        flex-wrap: nowrap; overflow-x: auto;
        overflow-y: hidden; scrollbar-gutter: auto;
        -webkit-overflow-scrolling: touch;
    }
    .developer-dashboard__switch {
        width: auto; min-width: max-content;
        min-height: 32px; flex: 0 0 auto;
        padding: calc(var(--spacing_small) * .75) var(--font_size_0);
        font-size: var(--font_size_0); font-weight: 400;
        white-space: nowrap;
    }
    .developer-dashboard__storage-hero, .developer-dashboard__overview-grid,
.developer-dashboard__two-columns,
.developer-dashboard__integration-grid,
.developer-dashboard__integration-list,
.developer-dashboard__integration-list--details {
        grid-template-columns: minmax(0, 1fr);
    }
    .developer-storage__donut-card .universal-chart--donut {
        grid-template-columns: minmax(0, 1fr);
    }
    .developer-dashboard__panel, .developer-dashboard__metric,
.developer-dashboard__integration-mini,
.developer-dashboard__integration-card {
        max-width: 100%; box-sizing: border-box;
    }
}

@media (orientation: portrait) and (max-width: 560px) {
    .developer-dashboard__metrics--overview,
.developer-dashboard__metrics--performance,
.developer-dashboard__metrics--storage,
.developer-dashboard__user-stack {
        grid-template-columns: minmax(0, 1fr);
    }
}

button.developer-storage__disk-legend-row {
    cursor: pointer;
}

button.developer-storage__disk-legend-row:focus-visible {
    outline: 2px solid var(--accent); outline-offset: 4px;
}

/* Файл pages_dev_servers.css */

/* Файл pages_dev_overview_compact.css */

.developer-dashboard__overview-metrics .developer-dashboard__metric {
    min-height: 60px; gap: 1px;
    padding: 6px 10px;
}

.developer-dashboard__overview-metrics .developer-dashboard__metric span,
.developer-dashboard__overview-metrics .developer-dashboard__metric
small {
    font-size: var(--font_size_caption);
}

.developer-dashboard__overview-metrics .developer-dashboard__metric strong {
    font-size: var(--font_size_0);
}

.developer-user-activity__chart {
    min-height: 360px;}

.developer-user-activity__chart .developer-storage__area-chart {
    min-height: 280px; flex: 1 1 auto;
}

@media (orientation: portrait), (max-width: 720px) {
    .developer-dashboard__overview-metrics .developer-dashboard__metric {
        min-height: 58px;
    }
}

/* Файл pages_dev_cpu_detail.css */

.developer-cpu-drill__head {
    grid-template-columns: auto minmax(0, 1fr) auto;}

.developer-cpu-drill__head select {
    min-width: 125px; min-height: 34px;
    padding: 4px 28px 4px 8px; border: 1px solid var(--border);
    border-radius: 10px; background: var(--bg-1);
    color: var(--text-1);
}

.developer-cpu-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.developer-cpu-trend {
    min-height: 350px;}

.developer-cpu-trend .developer-storage__area-chart {
    min-height: 275px; flex: 1 1 auto;
}

.developer-cpu-trend__legend {
    display: flex; flex-wrap: wrap;
    gap: 5px 12px; margin-bottom: 4px;
}

.developer-cpu-trend__legend label {
    display: inline-flex; align-items: center;
    gap: 5px; color: var(--text-2);
    font-size: var(--font_size_caption); cursor: pointer;
}

.developer-cpu-trend__dot {
    width: 9px; height: 9px;
    border-radius: 50%; background: var(--accent);
}

.developer-cpu-trend__dot--user {
    background: var(--success, #2b9b67);
}

.developer-cpu-trend__dot--system {
    background: var(--accent-orange-text);
}

.developer-cpu-trend__dot--iowait {
    background: var(--danger, #c73535);
}

.developer-cpu-trend__dot--steal {
    background: var(--text-2);
}

.developer-cpu-chart__line {
    fill: none; stroke: var(--accent);
    stroke-width: 4; vector-effect: non-scaling-stroke;
}

.developer-cpu-chart__line--user {
    stroke: var(--success, #2b9b67);
}

.developer-cpu-chart__line--system {
    stroke: var(--accent-orange-text);
}

.developer-cpu-chart__line--iowait {
    stroke: var(--danger, #c73535);
}

.developer-cpu-chart__line--steal {
    stroke: var(--text-2);
}

.developer-cpu-chart__threshold {
    stroke: var(--danger, #c73535); stroke-width: 2;
    stroke-dasharray: 8 7; vector-effect: non-scaling-stroke;
}

.developer-cpu-detail__grid, .developer-cpu-causes__grid {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing_small);
}

.developer-cpu-detail__rows {
    gap: 3px;}

.developer-cpu-detail__row {
    grid-template-columns: minmax(120px, 1fr) minmax(70px, 1fr) 52px;
    align-items: center; gap: 7px;
    min-height: 25px;}

.developer-cpu-detail__row > span {
    overflow: hidden; color: var(--text-2);
    font-size: var(--font_size_caption); text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-cpu-detail__row > strong {
    color: var(--accent-dark); font-size: var(--font_size_caption);
    text-align: right;
}

.developer-cpu-detail__bar {
    height: 7px; overflow: hidden;
    border-radius: 999px; background: var(--bg-3);
}

.developer-cpu-detail__bar span {
    display: block; height: 100%;
    border-radius: inherit; background: var(--accent);
}

.developer-cpu-detail__cores {
    grid-template-columns: repeat(auto-fit, minmax(54px, 1fr)); gap: 6px;
    max-height: 270px;
    overflow-y: auto;}

.developer-cpu-detail__core {
    display: grid; grid-template-rows: auto auto auto 70px;
    gap: 3px; padding: 5px;
    border: 1px solid var(--border); border-radius: 9px;
    color: var(--text-2); font-size: var(--font_size_caption);
    text-align: center;
}

.developer-cpu-detail__core > div {
    display: flex; align-items: flex-end;
    overflow: hidden; border-radius: 6px;
    background: var(--bg-3);
}

.developer-cpu-detail__core > div span {
    width: 100%; background: var(--accent);
}

.developer-cpu-detail__core > small {
    color: var(--text-3); font-size: var(--font_size_caption);
}

/* Файл pages_dev_cpu_processes.css */

.developer-cpu-processes {
    max-height: 520px;
    overflow-y: auto;}

.developer-cpu-processes__details {
    border-bottom: 1px solid var(--border);
}

.developer-cpu-processes__details summary {
    display: grid; grid-template-columns: minmax(0, 1fr) 90px 70px;
    align-items: center; gap: 8px;
    padding: 7px 2px; cursor: pointer;
}

.developer-cpu-processes__details summary span:first-child {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-cpu-processes__details summary strong {
    color: var(--accent-dark); text-align: right;
}

.developer-cpu-processes__details > div {
    display: grid; grid-template-columns: minmax(120px, auto) minmax(0, 1fr);
    gap: 4px 9px; padding: 5px 12px 10px;
    color: var(--text-2); font-size: var(--font_size_caption);
}

.developer-cpu-processes__command {
    overflow-wrap: anywhere;
}

.developer-cpu-causes__current {
    padding: 8px; border-left: 3px solid var(--accent);
    background: var(--bg-2); color: var(--text-1);
}

.developer-cpu-causes__overloads, .developer-cpu-causes__events {
    display: grid; max-height: 300px;
    overflow-y: auto;
}

.developer-cpu-causes__overloads > div {
    display: flex; justify-content: space-between;
    gap: 8px; padding: 5px 0;
    border-bottom: 1px solid var(--border);
}

.developer-cpu-causes__events-panel {
    grid-column: 1 / -1;
}

.developer-cpu-causes__events details {
    border-bottom: 1px solid var(--border);
}

.developer-cpu-causes__events summary {
    display: grid; grid-template-columns: 120px 70px minmax(0, 1fr);
    gap: 8px; padding: 6px 0;
    cursor: pointer;
}

.developer-cpu-causes__events summary small {
    overflow: hidden; color: var(--text-2);
    text-overflow: ellipsis; white-space: nowrap;
}

.developer-cpu-causes__events details > div {
    display: grid; gap: 4px;
    padding: 4px 10px 9px; color: var(--text-2);
    font-size: var(--font_size_caption);
}

@media (max-width: 1100px) {
    .developer-cpu-summary, .developer-cpu-detail__grid,
.developer-cpu-causes__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (orientation: portrait), (max-width: 720px) {
    .developer-cpu-drill__head, .developer-cpu-summary,
.developer-cpu-detail__grid, .developer-cpu-causes__grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .developer-cpu-causes__events-panel {
        grid-column: auto;
    }
    .developer-cpu-processes__details summary,
.developer-cpu-causes__events summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .developer-cpu-causes__events summary small {
        grid-column: 1 / -1; white-space: normal;
    }
}

/* Файл pages_dev_memory_detail.css */

.developer-memory__summary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--spacing_small);
}

.developer-memory__summary .developer-dashboard__metric {
    min-height: 92px;
}

.developer-memory__categories {
    display: grid;
    gap: var(--spacing_small);
}

.developer-memory__category-head {
    display: flex;
    min-width: 0;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing_small);
}

.developer-memory__category-head strong {
    min-width: 0;
    color: var(--accent-dark);
    overflow-wrap: anywhere;
}

.developer-memory__category-head span {
    flex: 0 0 auto;
    color: var(--text-2);
}

.developer-memory__processes {
    display: grid;
    max-height: 480px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.developer-memory__process {
    border-bottom: 1px solid var(--border);
}

.developer-memory__process:last-child {
    border-bottom: 0;
}

.developer-memory__process summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 90px 110px;
    align-items: center;
    gap: var(--spacing_small);
    padding: 7px 2px;
    cursor: pointer;
}

.developer-memory__process summary span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-memory__process summary strong {
    color: var(--accent-dark);
    text-align: right;
}

.developer-memory__process > div {
    display: grid;
    grid-template-columns: minmax(130px, auto) minmax(0, 1fr);
    gap: 4px 9px;
    padding: 5px 12px 10px;
    color: var(--text-2);
    font-size: var(--font_size_caption);
}

.developer-memory__command {
    overflow-wrap: anywhere;
}

.developer-memory__note {
    padding: var(--spacing_small) var(--font_size_0);
    color: var(--text-2);
    line-height: 1.45;
}

@media (max-width: 1180px) {
    .developer-memory__summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (orientation: portrait), (max-width: 720px) {
    .developer-memory__summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .developer-memory__process summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .developer-memory__process summary strong {
        grid-column: 1 / -1;
        text-align: left;
    }
}

/* Файл pages_dev_compact_spacing.css */

.developer-settings-root .block_1 {
    margin-bottom: 0;
}

.developer-auth-errors__identity {
    display: contents;
}

.developer-auth-errors__identity > span {
    color: var(--text-2);
    font-size: var(--font_size_caption);
}

@media (orientation: portrait) {
    .developer-auth-errors__row {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--spacing_xs);
    }

    .developer-auth-errors__identity {
        display: flex;
        flex-wrap: wrap;
        gap: var(--spacing_xs) var(--spacing_medium);
    }
}

/* Файл pages_dev_performance_report.css */

.developer-performance-report {
    min-width: 0;
}

.developer-performance-report__pivot {
    max-height: 330px;
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: var(--spacing_medium);
}

.developer-performance-summary {
    display: grid;
    flex: 0 0 auto;
    grid-template-columns: repeat(7, minmax(110px, 1fr));
    align-items: start;
    gap: var(--spacing_small);
}

.developer-performance-summary__item {
    display: flex;
    min-width: 0;
    min-height: 58px;
    align-self: start;
    flex-direction: column;
    justify-content: center;
    padding: var(--spacing_compact) var(--spacing_regular);
    border: 1px solid var(--border);
    border-radius: var(--spacing_medium);
    background: var(--bg-1);
}

.developer-performance-summary__item span {
    overflow: hidden;
    color: var(--text-2);
    font-size: var(--font_size_caption);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.developer-performance-summary__item strong {
    display: block;
    margin-top: var(--spacing_2xs);
    overflow-wrap: anywhere;
    color: var(--text-1);
    font-size: var(--font_size_0);
    line-height: 1.2;
}

.developer-performance-subgrid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(380px, 0.9fr);
    align-items: start;
    gap: var(--spacing_regular);
}

.developer-performance-api-panel {
    min-width: 0;
    align-self: start;
}

.developer-performance-api-panel--routes {
    display: flex;
    max-height: 430px;
    flex-direction: column;
    overflow: hidden;
}

.developer-performance-api-panel--routes
.developer-dashboard__routes {
    min-height: 0;
    overflow-y: auto;
    padding-right: var(--spacing_xs);
    scrollbar-gutter: stable;
}

.developer-performance-api-panel--chart {
    min-width: 0;
    min-height: 330px;
}

.developer-performance-api-panel .developer-storage__section-title {
    align-items: flex-start;
    flex-wrap: wrap;
    margin-bottom: var(--spacing_small);
}

.developer-performance-api-panel .developer-storage__section-title span {
    min-width: 0;
    max-width: 100%;
    margin-left: auto;
    text-align: right;
    overflow-wrap: anywhere;
}

.developer-performance-api-panel__route {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.developer-performance-route-button,
.developer-performance-route-row,
.developer-performance-datalake-row {
    display: flex !important;
    min-width: 0;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--spacing_xs) var(--spacing_medium) !important;
}

.developer-performance-route-button {
    width: 100%;
    padding: var(--spacing_compact) var(--spacing_small) !important;
    border: 0;
    border-radius: var(--spacing_small);
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.developer-performance-route-button:hover,
.developer-performance-route-button--active {
    background: var(--bg-2);
}

.developer-performance-route__path,
.developer-performance-datalake-row > strong {
    min-width: 0;
    max-width: 100%;
    flex: 0 1 auto;
    overflow: visible;
    color: var(--text-1);
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}

.developer-performance-route__metrics {
    display: flex;
    min-width: 0;
    flex: 1 1 360px;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--spacing_xs) var(--spacing_medium);
}

.developer-performance-route__metrics > span {
    color: var(--text-2);
    font-size: var(--font_size_caption);
    white-space: nowrap;
}

.developer-performance-chart-legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--spacing_xs) var(--spacing_medium);
    margin-top: var(--spacing_xs);
    color: var(--text-2);
    font-size: var(--font_size_caption);
}

.developer-performance-resource-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing_small) var(--spacing_large);
    margin-top: var(--spacing_small);
    color: var(--text-2);
    font-size: var(--font_size_0);
}

@media (max-width: 1280px) {
    .developer-performance-summary {
        grid-template-columns: repeat(4, minmax(120px, 1fr));
    }

    .developer-performance-api-panel--routes {
        max-height: 390px;
    }
}

@media (orientation: landscape) {
    .developer-performance-subgrid {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
    }
}

@media (orientation: portrait) {
    .developer-performance-subgrid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 760px) {
    .developer-performance-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .developer-performance-api-panel .developer-storage__section-title {
        align-items: stretch;
        flex-direction: column;
    }

    .developer-performance-api-panel .developer-storage__section-title span {
        margin-left: 0;
        text-align: left;
    }

    .developer-performance-route__metrics {
        flex-basis: 100%;
    }
}

.developer-performance-api-panel--routes
.developer-dashboard__route-row {
    height: auto !important;
    min-height: 54px;
    flex: 0 0 auto;
    align-content: flex-start;
    line-height: 1.25;
}

.developer-performance-api-panel--routes
.developer-performance-route__content {
    display: flex;
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--spacing_xs) var(--spacing_medium);
}

.developer-performance-api-panel--routes
.developer-performance-route__path {
    flex: 0 1 auto;
    line-height: 1.25;
}

.developer-performance-api-panel--routes
.developer-performance-route__metrics {
    flex: 1 1 360px;
    line-height: 1.25;
}

.developer-performance-api-panel--chart
.universal-chart__bar-stage {
    grid-auto-columns: minmax(138px, 1fr);
    gap: var(--spacing_small);
}

.developer-performance-api-panel--chart
.universal-chart__bar-group {
    min-width: 132px;
}

.developer-performance-api-panel--chart
.universal-chart__bar-group strong {
    min-height: 34px;
    overflow: visible;
    line-height: 1.15;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .developer-performance-api-panel--routes
    .developer-performance-route__metrics {
        flex-basis: 100%;
    }
}

/* Файл pages_dev.css */

/* Файл dashboard_analytics_panel.css */

.office-dashboard-analytics-panel .drawer-body {
    display: flex; flex-direction: column;
    gap: var(--spacing_big);
}

.office-dashboard-analytics-panel section {
    display: flex; flex-direction: column;
    gap: var(--spacing_small);
}

.office-dashboard-analytics-panel h3,
.office-dashboard-analytics-panel p {
    margin: 0;
}

.office-dashboard-analytics-panel__row {
    display: flex; flex-wrap: wrap;
    align-items: center; gap: var(--spacing_small);
}

.office-dashboard-analytics-panel__row {
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--spacing_small);
}

.office-dashboard-analytics-panel__row > :first-child {
    margin-right: auto;
}

.office-dashboard-kpi em {
    font-style: normal; font-weight: 600;
}

.office-dashboard-kpi__comparison--up {
    color: var(--accent-success);
}

.office-dashboard-kpi__comparison--down {
    color: var(--accent-red);
}

/* Файл dashboard_charts_advanced.css */

.office-dashboard-area-fill {
    fill: currentColor; opacity: 0.18;
}

.office-dashboard-scatter, .office-dashboard-combo,
.office-dashboard-waterfall, .office-dashboard-gauge,
.office-dashboard-funnel, .office-dashboard-heatmap,
.office-dashboard-treemap {
    width: 100%; height: 100%;
}

.office-dashboard-scatter {
    position: relative; border-left: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.office-dashboard-scatter__point {
    position: absolute; inset: 0;
    border: 0; background: transparent;
    pointer-events: none;
}

.office-dashboard-scatter__point span {
    position: absolute; min-width: 16px;
    min-height: 16px; padding: var(--spacing_2xs);
    border-radius: 50%; background: currentColor;
    color: var(--bg-1); pointer-events: auto;
}

.office-dashboard-combo {
    position: relative;
}

.office-dashboard-combo__bars {
    position: absolute; inset: 0;
    display: flex; align-items: flex-end;
    gap: var(--spacing_tight);
}

.office-dashboard-combo__bar, .office-dashboard-waterfall__item {
    flex: 1; height: 100%;
    display: flex; flex-direction: column;
    justify-content: flex-end; align-items: center;
    border: 0; background: transparent;
}

.office-dashboard-combo__bar i, .office-dashboard-waterfall__item i {
    width: 70%; min-height: 2px;
    background: currentColor; opacity: 0.45;
}

.office-dashboard-combo svg {
    position: absolute; inset: 0;
    pointer-events: none;
}

.office-dashboard-waterfall {
    display: flex; align-items: stretch;
    gap: var(--spacing_xs);
}

.office-dashboard-waterfall__item small {
    max-width: 80px; overflow: hidden;
    text-overflow: ellipsis;
}

.office-dashboard-treemap {
    display: flex; flex-wrap: wrap;
    align-content: stretch; gap: var(--spacing_micro);
}

.office-dashboard-treemap__item {
    display: flex; flex: 1 1 22%;
    min-width: 70px; border: 0;
    padding: 0; background: transparent;
}

.office-dashboard-treemap__item span {
    min-height: 54px; display: grid;
    place-items: center; padding: var(--spacing_compact);
    background: currentColor; color: var(--bg-1);
}

.office-dashboard-gauge {
    place-items: center; align-content: center;
    gap: var(--spacing_tight);}

.office-dashboard-gauge__ring {
    width: 150px; height: 75px;
    border-radius: 150px 150px 0 0;
    background: conic-gradient(from 270deg, currentColor 0
        var(--dashboard-gauge-percent), var(--border)
        var(--dashboard-gauge-percent) 180deg, transparent 180deg);
}

.office-dashboard-funnel {
    gap: var(--spacing_xs);}

.office-dashboard-funnel__item {
    width: 100%; border: 0;
    background: transparent;
}

.office-dashboard-funnel__item span {
    display: block; margin: 0 auto;
    padding: var(--spacing_tight); background: currentColor;
    color: var(--bg-1); text-align: center;
}

.office-dashboard-heatmap {
    grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
    gap: var(--spacing_xs);}

.office-dashboard-heatmap__cell {
    border: 0; padding: 0;
    background: transparent;
}

.office-dashboard-heatmap__cell span {
    height: 100%; min-height: 42px;
    display: flex; flex-direction: column;
    justify-content: center; padding: var(--spacing_tight);
    background: currentColor; color: var(--bg-1);
}

/* Файл dataflow_query_combine_panel.css */

.office-dataflow-combine-panel .drawer-body {
    display: flex; flex-direction: column;
    gap: var(--font_size_0);
}

.office-dataflow-combine-panel__base {
    gap: var(--spacing_small);}

.office-dataflow-combine-panel__base strong,
.office-dataflow-combine-panel__base span {
    color: var(--blue-navy); font-size: var(--font_size_0);
}

.office-dataflow-combine-panel__base small {
    color: var(--text-3); font-size: var(--font_size_button);
    line-height: 1.4;
}

.office-dataflow-combine-panel__queries {
    gap: var(--spacing_small);}

.office-dataflow-combine-panel__queries h3 {
    margin: 0; font-size: var(--font_size_0);
}

.office-dataflow-combine-panel__query {
    gap: var(--font_size_0); padding: var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1);}

.office-dataflow-combine-panel__query--selected {
    border-color: var(--accent);
}

.office-dataflow-combine-panel__query-title {
    display: flex; align-items: flex-start;
    gap: var(--spacing_small); cursor: pointer;
}

.office-dataflow-combine-panel__query-title input {
    width: var(--font_size_0); height: var(--font_size_0);
    flex: 0 0 auto; margin: var(--spacing_2xs) 0 0;
}

.office-dataflow-combine-panel__query-title > span {
    min-width: 0; display: flex;
    flex-direction: column; gap: var(--spacing_xs);
}

.office-dataflow-combine-panel__query-title strong {
    overflow-wrap: anywhere; color: var(--blue-navy);
    font-size: var(--font_size_0);
}

.office-dataflow-combine-panel__query-title small {
    color: var(--text-3); font-size: var(--font_size_button);
}

.office-dataflow-combine-panel__keys {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--font_size_0);
}

.office-dataflow-combine-panel__keys label {
    min-width: 0; display: flex;
    flex-direction: column; gap: var(--spacing_small);
}

.office-dataflow-combine-panel__keys label > span {
    color: var(--text-2); font-size: var(--font_size_button);
}

.office-dataflow-combine-panel__keys select {
    width: 100%; min-height: 38px;
    padding: 0 var(--spacing_small); font-size: var(--font_size_button);
}

.office-dataflow-combine-panel__empty {
    padding: var(--font_size_0); border: 1px dashed var(--border);
    border-radius: var(--spacing_small); background: var(--bg-1);
    color: var(--text-3); font-size: var(--font_size_button);
    text-align: center;
}

.office-dataflow-combine-panel__actions {
    display: flex; justify-content: flex-end;
    gap: var(--spacing_small); margin-top: auto;
    padding-top: var(--spacing_small);
}

.office-dataflow-combine-panel__actions button {
    min-height: 38px; padding: 0 var(--font_size_0);
    font-size: var(--font_size_button);
}

@media (max-width: 680px) {
    .office-dataflow-combine-panel__keys {
        grid-template-columns: 1fr;
    }
    .office-dataflow-combine-panel__actions {
        flex-direction: column-reverse;
    }
    .office-dataflow-combine-panel__actions button {
        width: 100%;
    }
}

.office-dataflow-combine-panel__merge-settings {
    display: flex; flex-direction: column;
    gap: var(--spacing_small);
}

.office-dataflow-combine-panel__merge-settings > label {
    display: flex; flex-direction: column;
    gap: var(--spacing_small);
}

.office-dataflow-combine-panel__merge-settings select {
    min-height: 38px;
}

.office-dataflow-combine-panel__stats {
    padding: var(--spacing_small); border-radius: var(--spacing_small);
    background: var(--bg-2); color: var(--text-2);
    font-size: var(--font_size_button);
}

/* Файл dataflow_model_panel.css */

.office-dataflow-model-panel .drawer-body {
    display: flex; flex-direction: column;
    gap: var(--spacing_big);
}

.office-dataflow-model-panel__section {
    gap: var(--spacing_small);}

.office-dataflow-model-panel__section h3,
.office-dataflow-model-panel__section p {
    margin: 0;
}

.office-dataflow-model-panel__graph {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: var(--spacing_small);}

.office-dataflow-model-panel__node,
.office-dataflow-model-panel__parameters > div {
    display: flex; flex-direction: column;
    gap: var(--spacing_xs); padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1);
}

.office-dataflow-model-panel__node small {
    color: var(--text-3);
}

.office-dataflow-model-panel__parameters {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--spacing_small);
}

.office-dataflow-model-panel__profile-wrap {
    overflow: auto; border: 1px solid var(--border);
}

.office-dataflow-model-panel__profile-wrap table {
    width: 100%; border-collapse: collapse;
    white-space: nowrap;
}

.office-dataflow-model-panel__profile-wrap th,
.office-dataflow-model-panel__profile-wrap td {
    padding: var(--spacing_small); border-bottom: 1px solid var(--border);
    text-align: left;
}

/* Файл data_flow_list_transform_panel.css */

.office-dataflow-list-panel .drawer-body {
    display: flex; flex-direction: column;
    gap: var(--font_size_0);
}

.office-dataflow-list-panel__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--font_size_0);}

.office-dataflow-list-panel label {
    display: flex; min-width: 0;
    flex-direction: column; gap: var(--spacing_small);
}

.office-dataflow-list-panel label > span {
    color: var(--text-2); font-size: var(--font_size_button);
}

.office-dataflow-list-panel input, .office-dataflow-list-panel select,
.office-dataflow-list-panel textarea {
    width: 100%; min-width: 0;
    min-height: 38px; padding: var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font-family: var(--font_family_interface);
    font-size: var(--font_size_button);
}

.office-dataflow-list-panel textarea {
    min-height: 150px; resize: vertical;
}

.office-dataflow-list-panel__source-head,
.office-dataflow-list-panel__actions {
    display: flex; align-items: center;
    justify-content: space-between; gap: var(--spacing_small);
}

.office-dataflow-list-panel__source-head strong {
    color: var(--blue-navy); font-size: var(--font_size_0);
}

.office-dataflow-list-panel__source-head span {
    color: var(--text-3); font-size: var(--font_size_button);
}

.office-dataflow-list-panel__switches,
.office-dataflow-list-panel__options {
    display: flex; flex-wrap: wrap;
    gap: var(--font_size_0);
}

.office-dataflow-list-panel__switches label,
.office-dataflow-list-panel__options label {
    width: auto; flex-direction: row;
    align-items: center; color: var(--text-2);
    font-size: var(--font_size_button); cursor: pointer;
}

.office-dataflow-list-panel__switches input,
.office-dataflow-list-panel__options input {
    width: var(--font_size_0); min-height: var(--font_size_0);
    height: var(--font_size_0); padding: 0;
    flex: 0 0 auto;
}

.office-dataflow-list-panel__actions {
    justify-content: flex-end; margin-top: auto;
    padding-top: var(--spacing_small);
}

.office-dataflow-list-panel__actions button {
    min-height: 38px; padding: 0 var(--font_size_0);
    font-size: var(--font_size_button);
}

@media (max-width: 680px) {
    .office-dataflow-list-panel__grid {
        grid-template-columns: 1fr;
    }
    .office-dataflow-list-panel__actions {
        flex-direction: column-reverse;
    }
    .office-dataflow-list-panel__actions button {
        width: 100%;
    }
}

/* Файл office_dataflow_queries.css */

.office-query__workspace.office-query__workspace--queries {
    grid-template-columns:
        minmax(160px, calc(var(--dataflow-left-panel-width, 17.5%) - 3px))
        6px
        minmax(320px, calc(var(--dataflow-center-panel-width, 65%) - 6px))
        6px
        minmax(180px, calc(var(--dataflow-right-panel-width, 17.5%) - 3px));
    gap: 0;
}

.office-dataflow-resizer {
    position: relative; z-index: 4;
    min-width: 6px; min-height: 0;
    cursor: col-resize; touch-action: none;
    outline: none;
}

.office-dataflow-resizer::before {
    content: ''; position: absolute;
    top: 8px; bottom: 8px;
    left: 2px; width: 2px;
    border-radius: var(--radius_2xs); background: var(--border);
    transition: background .15s ease;
}

.office-dataflow-resizer:hover::before,
.office-dataflow-resizer:focus-visible::before,
.office-dataflow-resizer--active::before {
    background: var(--accent);
}

.office-dataflow-queries {
    min-width: 0; min-height: 0;
    overflow: hidden; background: var(--bg-1);
    border: 1px solid var(--border); border-radius: var(--radius_large);
    box-shadow: var(--shadow);}

.office-dataflow-queries__header {
    flex: 0 0 auto; justify-content: space-between;
    gap: var(--spacing_small);
    padding: var(--spacing_regular) calc(var(--spacing_small) * 1.375);
    border-bottom: 1px solid var(--border); color: var(--text-2);
    font-size: var(--font_size_button);}

.office-dataflow-queries__header button {
    width: 26px; height: 26px;
    padding: 0; border: 1px solid var(--border);
    border-radius: var(--radius_dense); background: var(--bg-2);
    color: var(--accent-blue); cursor: pointer;
    font-size: var(--font_size_1); line-height: 1;
}

.office-dataflow-queries__item {
    width: 100%; min-width: 0;
    align-items: flex-start; gap: var(--spacing_2xs);
    padding: var(--spacing_small); border: 1px solid transparent;
    border-radius: var(--radius_medium); background: transparent;
    color: var(--text-2); text-align: left;
    cursor: pointer;}

.office-dataflow-queries__item:hover {
    background: var(--bg-2);
}

.office-dataflow-queries__item--active {
    border-color: var(--accent); background: var(--bg-2);
}

.office-dataflow-queries__item strong,
.office-dataflow-queries__item small,
.office-dataflow-queries__item span {
    max-width: 100%; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}

.office-dataflow-queries__item strong {
    font-size: var(--font_size_button);
}

.office-dataflow-queries__item small,
.office-dataflow-queries__item span {
    color: var(--text-3); font-size: var(--font_size_button);
    line-height: 1.25;
}

.office-dataflow-queries__actions {
    flex: 0 0 auto; display: grid;
    grid-template-columns: repeat(2, 34px); justify-content: end;
    gap: var(--spacing_compact); padding: var(--spacing_dense);
    border-top: 1px solid var(--border);
}

.office-dataflow-queries__actions button {
    width: 34px; height: 34px;
    min-width: 0; padding: 0;
    border: 1px solid var(--border); border-radius: var(--radius_dense);
    background: var(--bg-1); color: var(--text-2);
    cursor: pointer; font-size: var(--font_size_button);
    line-height: 1;
}

.office-dataflow-queries__actions button span {
    display: inline-flex; align-items: center;
    justify-content: center;
}

.office-query__workspace--queries .office-query-steps__empty,
.office-query__workspace--queries .office-query__empty-preview {
    font-size: var(--font_size_button);
}

@media (max-width: 1100px) {
    .office-query__workspace.office-query__workspace--queries {
        grid-template-columns:
            minmax(140px, calc(var(--dataflow-left-panel-width, 17.5%) - 3px))
            6px
            minmax(240px, calc(var(--dataflow-center-panel-width, 65%) - 6px))
            6px
            minmax(
                160px,
                calc(var(--dataflow-right-panel-width, 17.5%) - 3px)
            );
    }
}

@media (max-width: 760px) {
    .office-query__workspace.office-query__workspace--queries {
        grid-template-columns: 1fr; gap: var(--spacing_small);
        overflow-y: auto;
    }
    .office-dataflow-resizer {
        display: none;
    }
    .office-dataflow-queries, .office-query__preview, .office-query-steps {
        min-height: 180px;
    }
}

/* Файл office_dataflow_import.css */

.office-postgres-import {
    gap: var(--spacing_section);}

.office-postgres-import__grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_relaxed);
}

.office-postgres-import__grid label {
    display: grid; gap: var(--spacing_compact);
    font-weight: 600;
}

.office-postgres-import__grid input,
.office-postgres-import__grid textarea {
    width: 100%; padding: var(--spacing_regular) var(--spacing_medium);
    border: 1px solid var(--border-color); border-radius: var(--radius_large);
    font: inherit;
}

.office-postgres-import__grid textarea {
    min-height: 180px; resize: vertical;
    font-family: var(--font_family_monospace);
}

.office-postgres-import__wide {
    grid-column: 1 / -1;
}

.office-postgres-import__actions {
    display: flex; justify-content: flex-end;
    gap: var(--spacing_regular);
}

.office-workspace--portrait .office-postgres-import__grid {
    grid-template-columns: 1fr;
}

.office-workspace--portrait .office-postgres-import__wide {
    grid-column: auto;
}

@media (max-width: 760px) {
    .office-postgres-import__grid {
        grid-template-columns: 1fr;
    }
    .office-postgres-import__wide {
        grid-column: auto;
    }
}

/* Файл office_extended_tools.css */

.office-ribbon-extensions {
    display: flex; min-width: 0;
    flex: 0 1 auto; align-items: stretch;
    gap: var(--spacing_2xs); order: 2;
    overflow-x: auto; overflow-y: hidden;
    scrollbar-width: none;
}

.office-ribbon__tabs-actions {
    order: 10;
}

.office-ribbon-menu {
    position: relative; flex: 0 0 auto;
}

.office-ribbon-menu__summary {
    display: flex; align-items: center;
    gap: var(--spacing_xs); list-style: none;
    white-space: nowrap;
}

.office-ribbon-menu__summary::-webkit-details-marker {
    display: none;
}

.office-ribbon-menu[open] .office-ribbon-menu__summary {
    background: var(--bg-1); color: var(--text-1);
    box-shadow: 0 -1px 0 var(--bg-1), 0 0 0 1px var(--border) inset;
}

.office-ribbon-menu__list {
    position: fixed; z-index: 900;
    width: min(360px, calc(100vw - 24px));
    max-height: min(520px, calc(100dvh - 90px));
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spacing_xs);
    margin-top: var(--spacing_2xs); padding: var(--spacing_small);
    overflow: auto; border: 1px solid var(--border);
    border-radius: var(--radius_large); background: var(--bg-1);
    box-shadow: var(--box-shadow);}

.office-ribbon-menu__list button {
    min-width: 0; min-height: 34px;
    padding: var(--spacing_compact) var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--radius_dense);
    background: var(--bg-1); color: var(--text-1);
    font: inherit; text-align: left;
    cursor: pointer;
}

.office-ribbon-menu__list button:hover {
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-1));
}

.office-extended-tools__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small);}

.office-extended-tools__grid > * {
    width: 100%;
}

.office-sheet__objects .office-card--table-object,
.office-sheet__objects .office-card--pivot-object {
    display: none;
}

.office-workspace--portrait .office-ribbon-extensions {
    max-width: 42vw; scrollbar-width: thin;
}

.office-workspace--portrait .office-ribbon-menu__list {
    left: 8px; grid-template-columns: 1fr;
}

.office-workspace--portrait .office-extended-tools__grid {
    grid-template-columns: 1fr;
}

@media (max-width: 900px) {
    .office-ribbon-extensions {
        max-width: 42vw; scrollbar-width: thin;
    }
    .office-ribbon-menu__list {
        left: 8px; grid-template-columns: 1fr;
    }
    .office-extended-tools__grid {
        grid-template-columns: 1fr;
    }
}

.office-ribbon-menu__summary--active {
    background: var(--bg-1); color: var(--text-1);
    box-shadow: 0 -1px 0 var(--bg-1), 0 0 0 1px var(--border) inset;
}

.office-command-panel .drawer-body {
    padding: var(--font_size_0);
}

.office-command-panel__group {
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--font_size_0); background: var(--bg-1);
}

.office-command-panel__group summary {
    padding: var(--font_size_0); color: var(--text-1);
    font-size: var(--font_size_0); font-weight: 700;
    cursor: pointer; list-style-position: inside;
}

.office-command-panel__group[open] summary {
    border-bottom: 1px solid var(--border); background: var(--bg-2);
}

.office-command-panel__commands {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small);
    padding: var(--font_size_0);}

.office-command-panel__commands button {
    min-width: 0; min-height: 40px;
    padding: var(--spacing_small) var(--font_size_0);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--bg-1); color: var(--text-1);
    font: inherit; text-align: left;
    overflow-wrap: anywhere; cursor: pointer;
}

.office-command-panel__commands button:hover {
    background: color-mix(in srgb, var(--accent) 8%, var(--bg-1));
}

@media (max-width: 762px) {
    .office-command-panel__commands {
        grid-template-columns: 1fr;
    }
}

/* Файл office_sheet_model_tools.css */

.office-card--sheet-slicer {
    min-width: 280px;
}

.office-sheet-slicer__values {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_compact); padding: var(--spacing_regular);
}

.office-sheet-slicer__values button {
    border: 1px solid var(--border-color); border-radius: var(--radius_medium);
    background: var(--surface-color);
    padding: var(--spacing_compact) var(--spacing_regular); cursor: pointer;
}

.office-sheet-slicer__values button.active {
    background: var(--accent-weak); border-color: var(--accent-color);
}

/* Файл office_sheet_formula_picker.css */

.office-formula-picker {
    min-height: 0; gap: var(--spacing_medium);
    padding: var(--spacing_relaxed);}

.office-formula-picker__search {
    gap: var(--spacing_compact); color: var(--text-2);
    font-weight: 600;}

.office-formula-picker__search input {
    width: 100%; min-width: 0;
    padding: var(--spacing_regular) var(--spacing_medium);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    background: var(--bg-1); color: var(--text-1);
    box-sizing: border-box;
}

.office-formula-picker__groups {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_dense);
}

.office-formula-picker__group {
    padding: var(--spacing_dense) calc(var(--spacing_small) * 1.375);
    border: 1px solid var(--border); border-radius: var(--radius_pill);
    background: var(--bg-1); color: var(--text-2);
    cursor: pointer;
}

.office-formula-picker__group--active {
    border-color: var(--accent); background: var(--accent);
    color: var(--on-accent);
}

.office-formula-picker__summary {
    color: var(--text-3); font-size: var(--font_size_0);
}

.office-formula-picker__item {
    gap: var(--spacing_xs); width: 100%;
    padding: var(--spacing_regular) var(--spacing_medium);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    background: var(--bg-1); color: var(--text-1);
    text-align: left;
    cursor: pointer;}

.office-formula-picker__item:hover,
.office-formula-picker__item:focus-visible {
    border-color: var(--accent); background: var(--bg-2);
    outline: none;
}

.office-formula-picker__item strong {
    color: var(--accent);
}

.office-formula-picker__item span {
    color: var(--text-2); font-size: var(--font_size_0);
}

.office-formula-picker__item small {
    color: var(--text-3); font-size: var(--font_size_caption);
    line-height: 1.45; white-space: pre-line;
}

.office-formula-picker__load-more {
    width: 100%; height: 1px;
}

.office-formula-picker__info-button {
    display: inline-flex; width: 30px;
    height: 30px; min-height: 30px;
    align-items: center; justify-content: center;
    padding: 0; border: 1px solid currentColor !important;
    border-radius: 50% !important; font-family: var(--font_family_interface);
    font-size: var(--font_size_0) !important; font-weight: 700 !important;
    line-height: 1;
}

.office-formula-help-overlay {
    z-index: 1010;
}

.office-formula-help-panel {
    z-index: 1020; width: min(46%, 720px);
}

.office-formula-help {
    display: grid; gap: var(--spacing_small);
}

.office-formula-help .block_1 {
    display: grid; gap: var(--spacing_small);
}

.office-formula-help p {
    margin: 0; color: var(--text-2);
    line-height: 1.5;
}

.office-formula-help code {
    display: block; overflow-x: auto;
    padding: var(--spacing_small); border-radius: var(--radius_medium);
    background: var(--bg-2); color: var(--text-1);
    font-family: var(--font_family_monospace); white-space: nowrap;
}

@media (orientation: portrait), (max-width: 900px) {
    .office-formula-help-panel {
        width: 98%;
    }
}

/* Файл office_variables.css */

:root {
    /* Токены Office, сохраняющие текущую визуальную палитру. */
    --office_border_default: #dfe5f2; --office_border_soft: #e3e8f2;
    --office_border_subtle: #e0e6f1; --office_border_medium: #d6ddeb;
    --office_border_input: #d2dceb; --office_surface_muted: #f3f6fb;
    --office_text_strong: #20304d; --office_text_body: #263750;
    --office_text_heading: #20385f; --office_text_heading_alt: #243b60;
    --office_text_deep: #1f2f4a; --office_text_muted: #66748e;
    --office_focus_accent: #2f80d4; --office_chart_accent: #3e84cf;
    --office_grid_line_faint: rgba(54, 91, 142, 0.025);
    --office_grid_line: rgba(54, 91, 142, 0.035);
    --office_grid_line_strong: rgba(54, 91, 142, 0.055);
    --office_overlay_control_border: rgba(255, 255, 255, 0.34);
    --office_overlay_control_background: rgba(0, 0, 0, 0.35);
    --office_overlay_scrim: rgba(0, 0, 0, 0.68);
    --office_surface_translucent: rgba(255, 255, 255, 0.7);
    --office_navigation_active_background: rgba(30, 50, 82, 0.08);
    --office_shadow_card: 0 12px 34px rgba(34, 55, 91, 0.14);
    --office_shadow_control: 0 6px 18px rgba(38, 60, 105, 0.08);
    --office_shadow_popup: 0 12px 30px rgba(28, 50, 82, 0.18);
    --office_shadow_canvas: 0 14px 40px rgba(34, 55, 91, 0.18);
    --office_shadow_soft: 0 6px 18px rgba(38, 60, 105, 0.04);
    --office_shadow_inset: inset 0 0 0 1px rgba(0, 0, 0, 0.04);
    --office_font_size_micro: 11px; --office_font_size_small: 12px;
    --office_font_size_compact: 13px; --office_font_size_regular: 14px;
    --office_font_size_medium: 15px;
    --office_brand_title_font_size: min(var(--font_size_button),
        var(--office_font_size_regular));
    --office_brand_subtitle_font_size: min(var(--font_size_caption),
        var(--office_font_size_micro));
    --office_brand_logo_font_size: min(var(--font_size_1),
        var(--office_font_size_medium));
    --office_sidebar_button_font_size: min(var(--font_size_button),
        var(--office_font_size_regular));
    --office_sidebar_secondary_font_size: min(var(--font_size_caption),
        var(--office_font_size_small));
    --office_settings_label_font_size: min(var(--font_size_button),
        var(--office_font_size_compact));
    --surface-color: var(--surface-primary); --accent-weak: #e6f0ff;
    --accent-color: #5a84c8;
}

/* Файл workspace_base.css */

.office-workspace {
    --office-sidebar-width: 125px; display: flex;
    height: 100dvh; min-height: 100dvh;
    overflow: hidden; background: var(--app-background);
    font-family: var(--font_family_interface);
}

.office-workspace__sidebar {
    width: var(--office-sidebar-width); min-width: var(--office-sidebar-width);
    height: 100dvh; box-sizing: border-box;
    overflow-x: hidden; overflow-y: auto;
    background: var(--sidebar-background); color: var(--sidebar-text);
    padding: var(--spacing_medium) var(--spacing_relaxed); display: flex;
    flex-direction: column; gap: var(--spacing_regular);
}

.office-workspace__brand-row {
    display: block; min-width: 0;
    padding: var(--spacing_2xs) var(--spacing_2xs) var(--spacing_medium);
    border-bottom: 1px solid var(--sidebar-tab-border);
}

.office-workspace__brand {
    display: flex; min-width: 0;
    flex-direction: column; align-items: center;
    gap: var(--spacing_dense); text-align: center;
}

.office-workspace__brand > div:last-child {
    width: 100%; min-width: 0;
    text-align: center;
}

.office-workspace__brand strong {
    display: block; font-size: var(--office_sidebar_button_font_size);
    line-height: 1.2; white-space: nowrap;
}

.office-workspace__brand span {
    display: block; margin-top: var(--spacing_micro);
    color: var(--sidebar-text-muted);
    font-size: var(--office_brand_subtitle_font_size); line-height: 1.25;
    white-space: normal;
}

.office-workspace__logo {
    width: 38px; height: 38px;
    flex: 0 0 38px; padding: 0;
    border: 1px solid var(--sidebar-tab-border);
    border-radius: var(--radius_large);
    background: var(--sidebar-tab-background); color: var(--sidebar-text);
    justify-content: center; font: inherit;
    font-size: var(--office_brand_logo_font_size); font-weight: 700;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;}

.office-workspace__logo:hover, .office-workspace__logo--active {
    background: var(--sidebar-tab-hover);
}

.office-workspace__switches, .office-workspace__links {
    display: flex; flex-direction: column;
    gap: var(--spacing_dense);
}

.office-workspace__links {
    margin-top: var(--spacing_2xs); padding-top: var(--spacing_medium);
    border-top: 1px solid var(--sidebar-tab-border);
}

.office-workspace__switch, .office-workspace__links button,
.office-workspace__policy, .office-ribbon__tab,
.office-toolbar-buttons button, .office-query__header-cell button {
    border: 1px solid var(--sidebar-tab-border);
    background: var(--sidebar-tab-background); color: inherit;
    border-radius: var(--spacing_small); cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.office-workspace__switch, .office-workspace__links button {
    min-height: 40px; box-sizing: border-box;
    color: var(--sidebar-text);
    padding: var(--spacing_dense) var(--spacing_medium);
    font-size: var(--office_sidebar_button_font_size); line-height: 1.2;
    text-align: center; white-space: nowrap;
}

.office-workspace__links button {
    min-height: 36px; background: transparent;
    color: var(--sidebar-text-muted);
    font-size: var(--office_sidebar_secondary_font_size); white-space: normal;
    overflow-wrap: normal; word-break: normal;
}

.office-workspace__switch:hover, .office-workspace__links button:hover,
.office-workspace__policy:hover {
    background: var(--sidebar-tab-hover);
}

.office-workspace__switch--active {
    border-color: var(--active-tab-background);
    background: var(--active-tab-background); color: var(--active-tab-text);
    font-weight: 700;
}

.office-workspace__footer {
    align-items: stretch; gap: var(--spacing_small);
    margin-top: auto; padding-top: var(--spacing_medium);
    border-top: 1px solid var(--sidebar-tab-border);}

.office-workspace__policy {
    min-width: 0; padding: var(--spacing_small) var(--spacing_regular);
    background: transparent; color: var(--sidebar-text-muted);
    font-size: var(--office_brand_subtitle_font_size); line-height: 1.3;
    overflow-wrap: normal; word-break: normal;
    white-space: normal;
}

.office-workspace__save {
    border: 1px solid color-mix(in srgb, var(--sidebar-text) 24%, transparent);
    background: color-mix(in srgb, var(--sidebar-text) 16%, transparent);
    color: var(--sidebar-text); border-radius: var(--radius_large);
    padding: var(--spacing_small) var(--spacing_dense);
    font-size: var(--font_size_caption); font-weight: 700;
    cursor: pointer;
}

.office-workspace__save:disabled {
    cursor: wait; opacity: 0.65;
}

.office-workspace__content {
    flex: 1 1 auto; min-width: 0;
    min-height: 0; height: 100dvh;
    overflow: hidden;
    padding: 0;}

.office-workspace__panel {
    flex: 1 1 auto; min-width: 0;
    min-height: 0; height: auto;
    gap: var(--spacing_small);
    font-family: var(--office-interface-font-family,
        var(--font_family_interface));
    font-size: var(--office-interface-font-size, var(--font_size_button));}

.office-workspace__panel--writer {
    overflow: hidden;
}

.office-workspace__panel--sheet, .office-workspace__panel--dataflow {
    overflow: hidden;
}

.office-workspace__content:has(> .office-workspace__panel--writer) {
    padding: 0;
}

.office-workspace__content > .office-workspace__panel {
    flex: 1 1 auto; min-height: 0;
}

.office-workspace__content > .office-workspace__panel--writer {
    height: auto; gap: 0;
}

.office-workspace__content > .office-settings {
    flex: 1 1 auto; min-height: 0;
    height: auto;
}

.office-workspace__content > .office-workspace__favorites {
    flex: 0 0 auto;
}

@media (orientation: portrait) {
    .office-workspace {
        --office-sidebar-width: 80vw;
    }
}

/* Файл ribbon.css */

.office-ribbon__content--file {
    align-items: center;
}

.office-ribbon__group--wide {
    min-width: 260px;
}

.office-ribbon__group--save {
    margin-left: auto;
}

.office-ribbon__group-row {
    gap: var(--spacing_tight);}

.office-ribbon__formula-help, .office-ribbon__hint {
    color: var(--office_text_muted); font-size: var(--font_size_caption);
    line-height: 1.35;
}

.office-field {
    display: inline-flex; flex-direction: column;
    gap: var(--spacing_micro); min-width: 132px;
}

.office-field--small {
    min-width: 66px;
}

.office-field span {
    color: #687892; font-size: var(--font_size_caption);
    font-weight: 600;
}

.office-field select {
    height: 29px; min-height: 29px;
    border: 1px solid var(--office_border_medium);
    border-radius: var(--radius_medium); padding: 0 var(--spacing_small);
    background: var(--surface-primary); color: var(--office_text_strong);
    font-size: var(--font_size_caption);
}

.office-toolbar-buttons {
    gap: var(--spacing_compact);
    flex-wrap: wrap;}

.office-toolbar-buttons--compact {
    flex-wrap: nowrap;
}

.office-toolbar-buttons button, .office-query__header-cell button {
    padding: var(--button-padding-block) var(--button-padding-inline);
    font-size: var(--font_size_caption); font-weight: 600;
    white-space: nowrap;
}

.office-primary-button:disabled {
    cursor: wait; opacity: 0.65;
}

.office-dataflow-source-select {
    width: 100%; min-width: 180px;
    min-height: var(--button-min-height);
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--border); border-radius: var(--spacing_small);
    background: var(--surface-primary); color: var(--text-1);
    font-family: var(--font_family_interface);
    font-size: var(--font_size_caption);
}

/* Файл sheet_grid.css */

.office-formula-bar {
    flex: 0 0 30px; min-width: 0;
    height: 30px; position: relative;
    z-index: 60; grid-template-columns: 92px 34px minmax(0, 1fr);
    align-items: stretch; background: var(--surface-primary);
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_medium);}

.office-formula-bar__address, .office-formula-bar__fx {
    min-width: 0; min-height: 0;
    margin: 0; display: flex;
    align-items: center; justify-content: center;
    border-right: 1px solid var(--office_border_subtle); color: #304363;
    font-size: var(--font_size_caption); font-weight: 700;
}

.office-formula-bar__fx {
    width: 100%; height: 100%;
    min-height: 0; margin: 0;
    padding: 0; border: 0;
    border-right: 1px solid var(--office_border_subtle); border-radius: 0;
    background: transparent; box-shadow: none;
    color: #58729c; font-style: italic;
    cursor: pointer; transform: none;
}

.office-formula-bar__fx:hover, .office-formula-bar__fx:focus-visible {
    background: var(--bg-2); color: var(--accent);
    outline: none; transform: none;
    box-shadow: none;
}

.office-formula-bar input {
    box-sizing: border-box; width: 100%;
    min-width: 0; height: 100%;
    min-height: 0; margin: 0;
    padding: 0 8px; border: 0;
    border-radius: 0; outline: none;
    background: var(--surface-primary); box-shadow: none;
    color: var(--office_text_deep); font-size: var(--font_size_caption);
    font-family: var(--font_family_interface);
}

.office-formula-bar input:focus {
    border: 0; box-shadow: none;
}

.office-workspace__panel--sheet {
    gap: 4px;
}

.office-sheet-grid { position: relative;
    background: var(--surface-primary);
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_large); outline: none;
}

.office-sheet-grid__column-header-layer,
.office-sheet-grid__row-header-layer, .office-sheet-grid__corner-layer {
    position: absolute; inset: 0;
    pointer-events: none;
}

.office-sheet-grid__column-header-layer {
    z-index: 20;
}

.office-sheet-grid__row-header-layer {
    z-index: 21;
}

.office-sheet-grid__corner-layer {
    z-index: 24;
}

.office-sheet-grid__column-header-sticky {
    position: sticky; top: 0;
    width: 100%;
}

.office-sheet-grid__row-header-sticky {
    position: sticky; left: 0;
    height: 100%;
}

.office-sheet-grid__corner-sticky {
    position: sticky; top: 0;
    left: 0;
}

.office-sheet-grid__corner, .office-sheet-grid__column-header,
.office-sheet-grid__row-header, .office-sheet-grid__cell {
    position: absolute; box-sizing: border-box;
    border-right: 1px solid var(--office_border_soft);
    border-bottom: 1px solid var(--office_border_soft);
}

.office-sheet-grid__corner, .office-sheet-grid__column-header,
.office-sheet-grid__row-header {
    display: flex; align-items: center;
    justify-content: center; background: var(--office_surface_muted);
    color: #42516b; font-size: var(--font_size_caption);
    font-weight: 600; z-index: 5;
}

.office-sheet-grid__corner {
    z-index: 24;
}

.office-sheet-grid__corner, .office-sheet-grid__column-header {
    border-top: 1px solid var(--divider-soft);
}

.office-sheet-grid__corner, .office-sheet-grid__row-header {
    border-left: 1px solid var(--divider-soft);
}

.office-sheet-grid__column-header {
    z-index: 20;
}

.office-sheet-grid__row-header {
    z-index: 21;
}

.office-sheet-grid__cell {
    padding: var(--spacing_tight) var(--spacing_dense); overflow: hidden;
    text-overflow: ellipsis; background: var(--surface-primary);
    color: var(--office_text_body); font-size: var(--font_size_caption);
    line-height: 18px; cursor: cell;
    z-index: 1;
}

.office-sheet-grid__cell:hover {
    background: #f8fbff;
}

.office-sheet-grid__cell--active {
    outline: 2px solid var(--office_focus_accent); outline-offset: -2px;
    z-index: 3;
}

.office-sheet-grid__cell-editor-frame {
    position: absolute; box-sizing: border-box;
    overflow: visible; outline: 2px solid var(--office_focus_accent);
    outline-offset: -2px; z-index: 30;
}

.office-sheet-grid__cell-input {
    position: relative; display: block;
    min-width: 100%; max-width: none;
    box-sizing: border-box; margin: 0;
    padding: var(--spacing_micro) var(--spacing_compact); outline: 0;
    border: 0; background: var(--surface-primary);
    color: var(--office_text_deep); font-size: var(--font_size_caption);
    font-family: var(--font_family_interface); z-index: 1;
}

.office-sheet-grid__cell-input--formula {
    box-shadow: 1px 0 0 var(--office_border_soft);
}

.office-sheet__addons {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--spacing_regular);}

.office-sheet__objects {
    flex: 0 0 auto; max-height: 260px;
    overflow: auto; display: flex;
    flex-direction: column; gap: var(--spacing_small);
}

.office-sheet__objects h3 {
    margin: 0; color: var(--office_text_heading);
    font-size: var(--font_size_caption);
}

.office-card {
    background: var(--surface-primary);
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_large); padding: var(--spacing_regular);
    gap: var(--spacing_small);}

.office-card__header {
    justify-content: space-between;
    gap: var(--spacing_small);}

.office-card__header strong {
    color: #1f3457; font-size: var(--font_size_caption);
}

.office-card__header span {
    color: #6a7a93; font-size: var(--font_size_caption);
}

.office-card--table-object, .office-card--pivot-object {
    min-width: 0; overflow: auto;
}

.office-card--table-object .table-widget,
.office-card--pivot-object .pivot-table-container {
    min-height: 170px;
}

.office-sheet-grid__cell--formula-reference {
    background: color-mix(
        in srgb,
        var(--primary-color) 16%,
        var(--surface-primary)
    ); box-shadow: inset 0 0 0 2px var(--primary-color);
}

.office-sheet-grid__cell, .office-sheet-grid__cell-input {
    font-family: var(--office-interface-font-family,
        var(--font_family_interface));
}

.office-sheet-grid__column-header, .office-sheet-grid__row-header,
.office-sheet-grid__corner {
    pointer-events: none;
    font-family: var(--office-interface-font-family,
        var(--font_family_interface));
    font-size: var(--office-interface-font-size, var(--font_size_button));
}

/* Файл sheet_hidden_markers.css */

.office-sheet-grid__column-header--hidden-before {
    border-left: 3px double var(--office_border_default);
}

.office-sheet-grid__column-header--hidden-after {
    border-right: 3px double var(--office_border_default);
}

.office-sheet-grid__row-header--hidden-before {
    border-top: 3px double var(--office_border_default);
}

.office-sheet-grid__row-header--hidden-after {
    border-bottom: 3px double var(--office_border_default);
}

/* Файл sheet_resize.css */

.office-sheet-grid__column-header, .office-sheet-grid__row-header {
    position: absolute;
}

.office-sheet-grid__column-resizer {
    position: absolute; top: 0;
    right: -3px; width: 7px;
    height: 100%; cursor: col-resize;
    z-index: 15; pointer-events: auto;
}

.office-sheet-grid__row-resizer {
    position: absolute; left: 0;
    bottom: -3px; width: 100%;
    height: 7px; cursor: row-resize;
    z-index: 15; pointer-events: auto;
}

body.office-sheet-resizing {
    user-select: none;
}

/* Файл sheet_context_menu.css */

.office-sheet-grid__cell--range-selected {
    box-shadow: inset 0 0 0 1px var(--office_focus_accent);
}

.office-sheet-grid__cell-link {
    color: var(--accent); text-decoration: underline;
}

.office-sheet-grid__column-header, .office-sheet-grid__row-header {
    pointer-events: auto;
}

.office-sheet-context-menu {
    position: fixed; z-index: 2200;
    min-width: 240px; padding: var(--spacing_xs, 4px);
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_medium); background: var(--surface-primary);
    box-shadow: var(--shadow);}

.office-sheet-context-menu button {
    padding: var(--spacing_compact, 6px) var(--spacing_regular, 10px);
    border: 0; border-radius: var(--radius_small);
    background: transparent; color: var(--text-1);
    font: inherit; text-align: left;
    cursor: pointer;
}

.office-sheet-context-menu button:hover {
    background: var(--surface-secondary);
}

.office-sheet-context-menu__separator {
    height: 1px; margin: var(--spacing_xs, 4px) 0;
    background: var(--divider-color);
}

/* Файл query_preview.css */

.office-query__status {
    flex: 0 0 auto; display: flex;
    flex-wrap: wrap; gap: var(--spacing_medium);
    color: #5d6a80; font-size: var(--font_size_caption);
}

.office-query__workspace {
    flex: 1 1 auto; min-height: 0;
    grid-template-columns: minmax(0, 1fr) 270px; gap: var(--spacing_small);
    overflow: hidden;}

.office-query__preview {
    min-width: 0; min-height: 0;
    overflow: auto; background: var(--surface-primary);
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_large); box-shadow: var(--office_shadow_soft);
}

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

.office-query__table th, .office-query__table td {
    border-right: 1px solid var(--office_border_soft);
    border-bottom: 1px solid var(--office_border_soft);
    padding: var(--spacing_xs) var(--spacing_compact); height: 28px;
    max-width: 260px; color: var(--office_text_body);
    vertical-align: middle;
    font-family: var(--office-interface-font-family,
        var(--font_family_interface));
    font-size: var(--office-interface-font-size, var(--font_size_button));
    line-height: 1.25; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
}

.office-query__table th {
    position: sticky; top: 0;
    z-index: 3; box-sizing: border-box;
    height: 28px; min-height: 28px;
    max-height: 28px; padding-top: var(--spacing_micro);
    padding-bottom: var(--spacing_micro);
    background: var(--office_surface_muted); color: #253957;
    font-weight: 700; text-align: left;
}

.office-query__checkbox-cell {
    position: sticky; left: 0;
    z-index: 2; width: 54px;
    min-width: 54px; max-width: 54px;
    background: #f8faff; text-align: center;
}

.office-query__table th.office-query__checkbox-cell {
    z-index: 5;
}

.office-query__checkbox-cell label {
    display: inline-flex; align-items: center;
    justify-content: center; gap: var(--spacing_tight);
    font-family: var(--office-interface-font-family,
        var(--font_family_interface));
    font-size: var(--office-interface-font-size, var(--font_size_button));
    font-weight: 400;
}

.office-query__checkbox-cell input {
    width: 13px; height: 13px;
    margin: 0;
}

.office-query__header-cell {
    justify-content: space-between; gap: var(--spacing_compact);
    min-width: 120px; height: 20px;
    min-height: 20px;
    max-height: 20px;}

.office-query__header-cell input {
    box-sizing: border-box; width: 100%;
    min-width: 90px; height: 20px;
    min-height: 20px; max-height: 20px;
    padding: 0 var(--spacing_tight); border: 1px solid #8fb1df;
    border-radius: var(--radius_compact); outline: none;
    background: var(--surface-primary); color: inherit;
    font: inherit; line-height: 18px;
}

.office-query__header-cell button {
    flex: 0 0 auto; padding: var(--spacing_micro) var(--spacing_compact);
    font-size: var(--font_size_caption);
}

/* Файл query_steps.css */

.office-query-steps {
    min-width: 0; min-height: 0;
    overflow: hidden; background: var(--surface-primary);
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_large);}

.office-query-steps__header {
    flex: 0 0 auto; display: flex;
    align-items: center; justify-content: space-between;
    gap: var(--spacing_small);
    padding: var(--spacing_regular) calc(var(--spacing_small) * 1.375);
    border-bottom: 1px solid var(--office_border_soft); color: #233a60;
    font-size: var(--font_size_caption);
}

.office-query-steps__header span {
    min-width: 24px; height: 24px;
    border-radius: var(--radius_xl); display: inline-flex;
    align-items: center; justify-content: center;
    background: #edf3fc; color: #557096;
    font-size: var(--font_size_caption);
}

.office-query-steps__empty {
    min-height: 120px; flex: 1 1 auto;
    justify-content: center; padding: var(--spacing_section);
    color: var(--office_text_muted); text-align: center;
    font-size: var(--font_size_caption);
    line-height: 1.4;}

.office-query__empty-preview {
    min-width: 0;
}

.office-query-steps__item {
    width: 100%; border: 1px solid transparent;
    border-radius: var(--radius_medium); background: transparent;
    color: #2d4262; padding: var(--spacing_dense);
    display: grid; grid-template-columns: 24px minmax(0, 1fr);
    gap: var(--spacing_dense); text-align: left;
    cursor: pointer;
}

.office-query-steps__item:hover {
    background: #f5f8fd;
}

.office-query-steps__item--active {
    border-color: #9ab9e5; background: #edf5ff;
}

.office-query-steps__index {
    width: 22px; height: 22px;
    border-radius: var(--radius_extended); justify-content: center;
    background: #e4edf9; color: #48658e;
    font-size: var(--font_size_caption);
    font-weight: 700;}

.office-query-steps__item > span:last-child {
    min-width: 0; display: flex;
    flex-direction: column; gap: var(--spacing_2xs);
}

.office-query-steps__item strong {
    overflow: hidden; text-overflow: ellipsis;
    color: #293e5e; font-size: var(--font_size_caption);
    white-space: nowrap;
}

.office-query-steps__item small {
    color: #8290a6; font-size: var(--font_size_caption);
    opacity: 0.72;
}

.office-empty-state {
    justify-content: center; background: var(--surface-primary);
    border: 1px dashed #cad6ed; border-radius: var(--radius_large);
    color: var(--office_text_muted); text-align: center;
    padding: var(--spacing_xl);
    font-size: var(--font_size_caption);}

.office-query-steps, .office-query-steps__header,
.office-query-steps__header span, .office-query-steps__item,
.office-query-steps__index, .office-query-steps__item strong,
.office-query-steps__item small {
    font-family: var(--office-interface-font-family,
        var(--font_family_interface));
    font-size: var(--office-interface-font-size, var(--font_size_button));
}

/* Файл file_panel.css */

.office-file-panel {
    flex: 1 1 auto; min-height: 0;
    display: flex; background: #f7f9fd;
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_large); overflow: hidden;
}

.office-file-panel__sidebar {
    width: 150px; min-width: 150px;
    padding: var(--spacing_medium);
    border-right: 1px solid var(--office_border_default); background: #edf2fb;
    gap: var(--spacing_small);}

.office-file-panel__tab {
    border: 1px solid transparent; border-radius: var(--radius_medium);
    background: transparent; color: #29466f;
    padding: calc(var(--spacing_small) * 1.125) calc(var(--spacing_small) *
        1.375);
    text-align: left; font-size: var(--font_size_caption);
    font-weight: 600; cursor: pointer;
}

.office-file-panel__tab:hover {
    background: var(--office_surface_translucent);
}

.office-file-panel__tab--active {
    background: var(--surface-primary); border-color: #d4deef;
}

.office-file-panel__content {
    flex: 1; min-width: 0;
    overflow: auto; padding: var(--spacing_relaxed);
}

.office-file-panel__section {
    max-width: 620px; align-items: flex-start;
    gap: var(--spacing_relaxed);}

.office-file-panel__section h3 {
    margin: 0; color: var(--office_text_heading);
    font-size: var(--font_size_1);
}

.office-file-panel__section p, .office-file-panel__section small {
    margin: 0; color: #67758d;
    font-size: var(--font_size_caption); line-height: 1.5;
}

.office-file-panel__fields {
    display: flex; gap: var(--spacing_relaxed);
    flex-wrap: wrap;
}

.office-file-panel__fields label, .office-file-panel__name-field {
    display: flex; flex-direction: column;
    gap: var(--spacing_compact);
}

.office-file-panel__fields label span,
.office-file-panel__name-field span {
    color: #5a6880; font-size: var(--font_size_caption);
    font-weight: 700;
}

.office-file-panel__fields input, .office-file-panel__name-field input {
    min-height: 36px; border: 1px solid var(--office_border_input);
    border-radius: var(--radius_medium);
    padding: 0 calc(var(--spacing_small) * 1.375);
    background: var(--surface-primary); color: var(--office_text_strong);
    font-size: var(--font_size_caption);
}

.office-file-panel__fields input {
    width: 160px;
}

.office-file-panel__name-field {
    width: min(100%, 420px);
}

@media (max-width: 1000px) {
    .office-query__workspace {
        grid-template-columns: minmax(0, 1fr) 230px;
    }
}

@media (max-width: 760px) {
    .office-query__workspace {
        grid-template-columns: 1fr;
    }
    .office-query-steps {
        min-height: 180px;
    }
    .office-file-panel {
        flex-direction: column;
    }
    .office-file-panel__sidebar {
        width: 100%; min-width: 0;
        flex-direction: row; flex-wrap: wrap;
        border-right: 0; border-bottom: 1px solid var(--office_border_default);
    }
}

.office-file-panel__fields select {
    min-width: 160px; min-height: 36px;
    padding: 0 var(--spacing_regular);
    border: 1px solid var(--office_border_input);
    border-radius: var(--radius_medium); background: var(--surface-primary);
    color: var(--office_text_strong); font-family: inherit;
    font-size: var(--font_size_caption); line-height: 1.2;
}

.office-workspace__panel--file-view {
    gap: 0;
}

.office-workspace__panel--file-view .office-ribbon--file-only {
    border-bottom-right-radius: 0; border-bottom-left-radius: 0;
}

.office-workspace__panel--file-view .office-file-panel {
    border-top: 0; border-top-left-radius: 0;
    border-top-right-radius: 0;
}

/* Файл writer_overrides.css */

.office-workspace__panel--writer .doc-editor {
    flex: 1 1 auto; min-height: 0;
    height: 100%; gap: 0;
    padding: 0;
}

.office-workspace__panel--writer .doc-editor__layout {
    flex: 1 1 auto; min-height: 0;
    overflow: hidden;
}

.office-workspace__panel--writer .doc-editor__viewport {
    height: 100%; min-height: 0;
    max-height: none;
}

.office-workspace__panel--writer .doc-editor__review-panel {
    height: 100%; min-height: 0;
}

.office-workspace__panel--writer .doc-editor__bottom-panel {
    flex: 0 0 26px;
}

.office-workspace__panel--writer .doc-editor__save-text-btn {
    width: max-content; min-width: 0;
}

/* Файл dashboard_charts_core.css */

.office-workspace__panel--dashboard {
    overflow: hidden;
}

.office-ribbon__group--dashboard-source {
    min-width: 290px;
}

.office-dashboard-title-input {
    width: 190px; height: 29px;
    box-sizing: border-box; border: 1px solid var(--office_border_medium);
    border-radius: var(--radius_medium); padding: 0 var(--spacing_small);
    color: var(--office_text_strong); font-size: var(--font_size_caption);
    outline: none;
}

.office-dashboard-stage {
    flex: 1 1 auto; min-height: 0;
    overflow: auto; display: flex;
    justify-content: center; align-items: flex-start;
    padding: var(--spacing_relaxed); background: #e9edf5;
    border: 1px solid var(--office_border_default);
    border-radius: var(--radius_large);
}

.office-dashboard-slide {
    position: relative; width: 1000px;
    height: 562px; flex: 0 0 1000px;
    overflow: hidden; background: var(--surface-primary);
    border: 1px solid #d7deeb; transition: background-color 0.18s ease;
    box-shadow: var(--office_shadow_card);
}

.office-dashboard-empty {
    position: absolute; inset: 0;
    justify-content: center; padding: calc(var(--spacing_small) * 5);
    color: #7b879a; font-size: var(--font_size_caption);
    text-align: center;
}

.office-dashboard-object {
    position: absolute; box-sizing: border-box;
    overflow: hidden; border: 1px solid #d8dfec;
    background: var(--surface-primary); color: var(--office_text_heading_alt);
    box-shadow: var(--office_shadow_control); cursor: move;
    user-select: none;}

.office-dashboard-object--selected {
    outline: 2px solid var(--office_focus_accent); outline-offset: 2px;
}

.office-dashboard-object__title {
    flex: 0 0 34px; padding: 0 var(--spacing_medium);
    border-bottom: 1px solid #e6ebf4; color: var(--office_text_heading_alt);
    font-size: var(--font_size_caption);
    font-weight: 700;}

.office-dashboard-object__content {
    padding: var(--spacing_regular);
}

.office-dashboard-chart {
    width: 100%; height: 100%;
}

.office-dashboard-chart--bar {
    overflow: auto; justify-content: center;
    gap: var(--spacing_tight);}

.office-dashboard-bar-row {
    display: grid; grid-template-columns: 90px minmax(80px, 1fr) 55px;
    align-items: center; gap: var(--spacing_dense);
    min-height: 18px; color: #344a6e;
    font-size: var(--font_size_caption);
}

.office-dashboard-bar-row > span {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.office-dashboard-bar-row > div {
    height: 11px; overflow: hidden;
    border-radius: var(--radius_xs); background: #edf2fa;
}

.office-dashboard-bar-row i {
    display: block; height: 100%;
    min-width: 2px; background: var(--office_chart_accent);
}

.office-dashboard-bar-row strong {
    text-align: right;
}

.office-dashboard-stage, .office-dashboard-slide,
.office-dashboard-object, .office-dashboard-object__title,
.office-dashboard-object__content, .office-dashboard-empty {
    font-family: var(--office-interface-font-family,
        var(--font_family_interface));
    font-size: var(--office-interface-font-size, var(--font_size_button));
}

/* Файл dashboard_charts_extra.css */

.office-dashboard-chart--line {
    color: var(--office_chart_accent);}

.office-dashboard-chart--line svg {
    flex: 1 1 auto; min-height: 0;
    width: 100%;
}

.office-dashboard-line-labels {
    flex: 0 0 24px; display: flex;
    justify-content: space-between; gap: var(--spacing_micro);
    color: var(--office_text_muted); font-size: var(--font_size_caption);
}

.office-dashboard-line-labels span {
    max-width: 70px; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}

.office-dashboard-chart--pie {
    justify-content: center;
    gap: var(--spacing_section);}

.office-dashboard-pie {
    width: min(190px, 45%); aspect-ratio: 1;
    border-radius: 50%; box-shadow: var(--office_shadow_inset);
}

.office-dashboard-legend {
    min-width: 0; max-height: 100%;
    overflow: auto; display: flex;
    flex-direction: column; gap: var(--spacing_tight);
    color: #42526c; font-size: var(--font_size_caption);
}

.office-dashboard-legend > div {
    display: grid; grid-template-columns: 10px minmax(70px, 1fr) auto;
    align-items: center; gap: var(--spacing_tight);
}

.office-dashboard-legend i {
    width: 9px; height: 9px;
    border-radius: var(--radius_2xs);
}

.office-dashboard-legend span {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

/* Файл ribbon_theme.css */

.office-ribbon {
    height: 132px; min-height: 132px;
    max-height: 132px; flex: 0 0 132px;
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--radius_xl); background: var(--bg-1);
}

.office-ribbon--sheet, .office-ribbon--dataflow,
.office-ribbon--dashboard {
    height: 132px; min-height: 132px;
    max-height: 132px;
}

.office-ribbon__tabs {
    display: flex; min-width: 0;
    min-height: 38px; height: 38px;
    flex: 0 0 38px; align-items: stretch;
    gap: var(--spacing_compact);
    padding: var(--spacing_xs) var(--spacing_tight) 0; overflow: hidden;
    border-bottom: 1px solid var(--border); background: var(--bg-2);
}

.office-ribbon__tab {
    height: 30px; flex: 0 0 auto;
    padding: 0 var(--spacing_small); border: 0;
    border-radius: var(--radius_large) var(--radius_large) 0 0;
    background: transparent; color: var(--text-3);
    font-size: var(--font_size_caption); font-weight: 600;
    line-height: 1; cursor: pointer;
    transition: 0.16s ease;
}

.office-ribbon__tab:hover {
    border: 0; background: color-mix(in srgb, var(--accent) 7%, var(--bg-1));
    color: var(--text-1); box-shadow: none;
    transform: none;
}

.office-ribbon__tab--active {
    border: 0; background: var(--bg-1);
    color: var(--text-1);
    box-shadow: 0 -1px 0 var(--bg-1), 0 0 0 1px var(--border) inset;
}

.office-ribbon__content, .office-ribbon__content--sheet,
.office-ribbon__content--dataflow, .office-ribbon__content--dashboard {
    display: grid; min-width: 0;
    min-height: 0; height: 94px;
    max-height: 94px; grid-auto-columns: max-content;
    grid-auto-flow: column; grid-template-rows: repeat(2, minmax(0, 1fr));
    align-items: center; align-content: stretch;
    justify-content: start; gap: var(--spacing_xs) var(--spacing_small);
    padding: var(--spacing_tight) var(--spacing_small); overflow-x: auto;
    overflow-y: hidden; border-bottom: 1px solid var(--border);
    background: var(--bg-1); scrollbar-width: thin;
}

.office-ribbon__group {
    min-width: max-content; grid-row: 1 / span 2;
    justify-content: center; gap: var(--spacing_xs);
    padding: 0 var(--spacing_small) 0 0;
    border-right: 1px solid var(--border);}

.office-ribbon__group-title {
    color: var(--text-3); font-size: var(--font_size_caption);
    font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.02em;
}

.office-toolbar-buttons button, .office-query__header-cell button,
.office-field select, .office-dashboard-title-input {
    border-color: var(--border); background: var(--bg-1);
    color: var(--text-1);
}

.office-toolbar-buttons button:hover,
.office-query__header-cell button:hover {
    background: color-mix(in srgb, var(--accent) 7%, var(--bg-1));
}

.office-primary-button {
    min-width: 142px; min-height: 32px;
    margin: 0 var(--spacing_2xs) 0 0;
    padding: var(--button-padding-block) var(--button-padding-inline);
    border: 1px solid var(--accent); border-radius: var(--radius_relaxed);
    background: var(--accent); color: var(--on-accent);
    font-size: var(--font_size_caption); font-weight: 700;
    white-space: nowrap; cursor: pointer;
}

.office-ribbon__tabs-actions .office-primary-button {
    width: max-content; min-width: 0;
    min-height: 30px;
}

.office-primary-button:hover {
    border-color: var(--accent-blue); background: var(--accent-blue);
    color: var(--on-accent);
}

.office-ribbon__tabs-actions {
    display: flex; flex: 0 0 auto;
    align-items: center; margin-left: auto;
    padding: 0 var(--spacing_2xs) var(--spacing_xs) var(--spacing_small);
}

.office-ribbon--file-only {
    height: 38px; min-height: 38px;
    max-height: 38px; flex-basis: 38px;
}

/* Файл dashboard_navigation.css */

.office-dashboard-workspace {
    display: flex; overflow: hidden;
}

.office-dashboard-slide--presentation {
    box-shadow: var(--office_shadow_canvas);
}

.office-dashboard-slide--dashboard {
    background-image:
        linear-gradient(var(--office_grid_line) 1px, transparent 1px),
        linear-gradient(90deg, var(--office_grid_line) 1px, transparent 1px);
    background-size: 20px 20px;
}

.office-dashboard-slide__mode {
    position: absolute; right: 12px;
    bottom: 10px; z-index: 2;
    padding: var(--spacing_xs) var(--spacing_small);
    border-radius: var(--radius_pill);
    background: var(--office_navigation_active_background); color: #64728a;
    font-size: var(--font_size_caption); pointer-events: none;
}

.office-dashboard-object--text {
    border-color: transparent; box-shadow: none;
}

.office-dashboard-object--shape {
    align-items: stretch; justify-content: stretch;
}

.office-dashboard-text-object, .office-dashboard-shape-object {
    display: flex; width: 100%;
    height: 100%; box-sizing: border-box;
    align-items: center;
    padding: var(--spacing_relaxed) var(--spacing_section);
    white-space: pre-wrap; word-break: break-word;
}

.office-dashboard-text-object {
    align-items: flex-start;
}

.office-dashboard-shape-object {
    justify-content: center;
}

.office-dashboard-navigator {
    min-height: 72px; flex: 0 0 72px;
    gap: var(--spacing_compact); padding: var(--spacing_compact);
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--radius_large);
    background: var(--bg-1);}

.office-dashboard-navigator > button {
    width: 34px; min-width: 34px;
    height: 34px; border: 1px solid var(--border);
    border-radius: var(--radius_medium); background: var(--bg-1);
    color: var(--text-1); cursor: pointer;
}

.office-dashboard-navigator > button:disabled {
    cursor: default; opacity: 0.4;
}

.office-dashboard-navigator__slides {
    display: flex; min-width: 0;
    flex: 1 1 auto; align-items: stretch;
    gap: var(--spacing_compact); overflow-x: auto;
    overflow-y: hidden; scrollbar-width: thin;
}

.office-dashboard-thumbnail {
    display: grid; min-width: 150px;
    max-width: 190px; grid-template-columns: 24px minmax(0, 1fr);
    grid-template-rows: 1fr auto; gap: var(--spacing_2xs) var(--spacing_dense);
    padding: var(--spacing_dense) calc(var(--spacing_small) * 1.125);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    background: var(--bg-2); color: var(--text-1);
    text-align: left; cursor: pointer;
}

.office-dashboard-thumbnail > span {
    grid-row: 1 / span 2; align-self: center;
    color: var(--text-3); font-size: var(--font_size_caption);
    font-weight: 700;
}

.office-dashboard-thumbnail strong, .office-dashboard-thumbnail small {
    overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap;
}

.office-dashboard-thumbnail strong {
    font-size: var(--font_size_caption);
}

.office-dashboard-thumbnail small {
    color: var(--text-3); font-size: var(--font_size_caption);
}

.office-dashboard-thumbnail--active {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 9%, var(--bg-1));
    box-shadow: 0 0 0 1px var(--accent) inset;
}

.office-color-field {
    display: inline-flex; align-items: center;
    gap: var(--spacing_compact); color: var(--text-3);
    font-size: var(--font_size_caption); font-weight: 700;
}

.office-color-field input[type='color'] {
    width: 34px; height: 28px;
    padding: var(--spacing_2xs); border: 1px solid var(--border);
    border-radius: var(--radius_dense); background: var(--bg-1);
    cursor: pointer;
}

.office-color-field input[type='color']:disabled {
    cursor: default; opacity: 0.45;
}

/* Панель подсказок формул. */

/* Файл formula_and_dashboard_ribbon.css */

.office-formula-suggestions {
    position: absolute; top: 100%;
    left: 0; z-index: 90;
    width: min(380px, calc(100vw - 32px)); max-height: 220px;
    overflow: auto; border: 1px solid var(--border);
    border-radius: var(--radius_medium); background: var(--bg-1);
    box-shadow: var(--office_shadow_popup);}

.office-formula-suggestions--bar {
    left: 126px;
}

.office-formula-suggestions--cell {
    top: calc(100% + 2px); left: 0;
    min-width: 280px; max-width: min(360px, calc(100vw - 32px));
}

.office-formula-suggestion {
    gap: calc(var(--spacing_small) / 8);
    padding: var(--spacing_tight) var(--spacing_small); border: 0;
    border-bottom: 1px solid var(--border); border-radius: 0;
    background: var(--bg-1); color: var(--text-1);
    text-align: left;
    cursor: pointer;}

.office-formula-suggestion:last-child {
    border-bottom: 0;
}

.office-formula-suggestion:hover, .office-formula-suggestion--active {
    background: var(--bg-2);
}

.office-formula-suggestion strong {
    color: var(--accent); font-size: var(--font_size_caption);
}

.office-formula-suggestion span {
    color: var(--text-2); font-size: var(--font_size_caption);
}

.office-formula-suggestion small {
    overflow: hidden; color: var(--text-3);
    font-size: var(--font_size_caption); text-overflow: ellipsis;
    white-space: nowrap;
}

.office-formula-suggestion__parameter {
    font-style: normal;
}

.office-formula-suggestion__parameter--active {
    color: var(--accent); font-weight: 700;
    text-decoration: underline;
}

/* Адаптивная лента и вертикальная панель слайдов. */

.office-ribbon--dashboard {
    height: 132px; min-height: 132px;
    max-height: 132px; flex: 0 0 132px;
}

.office-ribbon--dashboard .office-ribbon__content--dashboard {
    display: flex; height: 94px;
    min-height: 94px; max-height: 94px;
    flex-wrap: nowrap; align-items: stretch;
    align-content: stretch; overflow-x: auto;
    overflow-y: hidden;
}

.office-formula-suggestion small.office-formula-suggestion__input-hint {
    color: var(--blue-navy); font-weight: 600;
    text-overflow: clip; white-space: normal;
}

/* Файл dashboard_slide_pane.css */

.office-ribbon--dashboard .office-ribbon__group {
    min-height: 0;
}

.office-dashboard-workspace {
    flex-direction: row; gap: var(--spacing_small);
}

.office-dashboard-slide-pane {
    display: flex; width: 214px;
    min-width: 180px; flex: 0 0 214px;
    min-height: 0; flex-direction: column;
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--radius_large); background: var(--bg-1);
}

.office-dashboard-slide-pane__header {
    min-height: 38px; justify-content: space-between;
    gap: var(--spacing_small);
    padding: var(--spacing_compact) var(--spacing_small);
    border-bottom: 1px solid var(--border);}

.office-dashboard-slide-pane__header strong {
    color: var(--text-1); font-size: var(--font_size_caption);
}

.office-dashboard-slide-pane__header button {
    width: 28px; height: 26px;
    padding: 0; border: 1px solid var(--border);
    border-radius: var(--radius_dense); background: var(--bg-1);
    color: var(--text-1); cursor: pointer;
}

.office-dashboard-slide-pane__list {
    gap: var(--spacing_small); padding: var(--spacing_small);
    overflow-x: hidden; overflow-y: auto;
    scrollbar-width: thin;}

.office-dashboard-slide-pane .office-dashboard-thumbnail {
    display: grid; width: 100%;
    min-width: 0; max-width: none;
    grid-template-columns: 20px minmax(0, 1fr); grid-template-rows: auto auto;
    gap: var(--spacing_micro) var(--spacing_compact);
    padding: var(--spacing_compact);
}

.office-dashboard-slide-pane .office-dashboard-thumbnail__number {
    grid-row: 1 / span 2; align-self: start;
    padding-top: var(--spacing_2xs);
}

.office-dashboard-thumbnail__preview {
    position: relative; display: block;
    width: 100%; aspect-ratio: 1000 / 562;
    overflow: hidden; border: 1px solid var(--border);
    border-radius: var(--radius_xs);
    background-image:
        linear-gradient(var(--office_grid_line_faint) 1px, transparent 1px),
        linear-gradient(
            90deg,
            var(--office_grid_line_faint) 1px,
            transparent 1px
        );
    background-size: 8px 8px;
}

.office-dashboard-thumbnail__preview i {
    position: absolute; display: block;
    box-sizing: border-box; min-width: 2px;
    min-height: 2px; border: 1px solid;
    opacity: 0.85;
}

.office-dashboard-slide-pane .office-dashboard-thumbnail strong {
    grid-column: 2;
}

.office-dashboard-main {
    display: flex; min-width: 0;
    min-height: 0; flex: 1 1 auto;
    overflow: hidden;
}

.office-dashboard-main .office-dashboard-stage {
    width: 100%;
}

.office-dashboard-object--read-only {
    pointer-events: none;
}

/* Полноэкранный показ слайдов. */

.office-slide-show {
    position: fixed; inset: 0;
    z-index: 2000; justify-content: center;
    overflow: hidden;
    background: #111722;}

.office-slide-show__canvas {
    position: relative; flex: 0 0 auto;
}

.office-slide-show__slide {
    position: absolute; top: 0;
    left: 0; width: 1000px;
    height: 562px; transform-origin: top left;
}

.office-slide-show__close {
    position: absolute; top: 16px;
    right: 18px; z-index: 3;
    width: 38px; height: 38px;
    border: 1px solid var(--office_overlay_control_border); border-radius: 50%;
    background: var(--office_overlay_control_background);
    color: var(--on-accent); cursor: pointer;
}

.office-slide-show__controls {
    position: absolute; bottom: 16px;
    left: 50%; z-index: 3;
    gap: var(--spacing_medium); transform: translateX(-50%);
    color: var(--on-accent);}

.office-slide-show__controls button {
    width: 38px; height: 32px;
    border: 1px solid var(--office_overlay_control_border);
    border-radius: var(--radius_medium);
    background: var(--office_overlay_control_background);
    color: var(--on-accent); cursor: pointer;
}

.office-slide-show__controls button:disabled {
    cursor: default; opacity: 0.35;
}

/* Файл dashboard_slide_responsive.css */

@media (max-width: 900px) {
    .office-dashboard-slide-pane {
        width: 174px; min-width: 150px;
        flex-basis: 174px;
    }
    .office-formula-suggestions--cell {
        min-width: 300px;
    }
}

/* Файл sheet_tools.css */

.office-dashboard-slide-pane .office-dashboard-thumbnail__preview {
    grid-column: 2; grid-row: 1;
    align-self: stretch; color: inherit;
}

/* Расширенные инструменты Sheets. */

.office-sheet-tool-form {
    display: flex; flex-direction: column;
    gap: var(--spacing_relaxed);
}

.office-sheet-tool-form > label, .office-sheet-tool-form__row > label {
    display: flex; flex: 1 1 0;
    flex-direction: column; gap: var(--spacing_compact);
    color: var(--text-2); font-weight: 600;
}

.office-sheet-tool-form input, .office-sheet-tool-form select,
.office-sheet-tool-form textarea {
    width: 100%; min-height: 38px;
    box-sizing: border-box; border: 1px solid var(--border);
    border-radius: var(--radius_medium); background: var(--bg-1);
    color: var(--text-1); padding: var(--spacing_small) var(--spacing_regular);
}

.office-sheet-tool-form textarea {
    min-height: 90px; resize: vertical;
}

.office-sheet-tool-form__row {
    display: flex; gap: var(--spacing_medium);
}

.office-sheet-tool-form__reference {
    padding: var(--spacing_regular) var(--spacing_medium);
    border-radius: var(--radius_medium); background: var(--bg-2);
    color: var(--text-2);
}

.office-sheet-tool-form__actions {
    display: flex; justify-content: flex-end;
    gap: var(--spacing_regular);
}

.office-card--sheet-chart {
    min-height: 280px;
}

.office-sheet-chart {
    display: flex; height: 220px;
    align-items: flex-end; gap: var(--spacing_small);
    padding: var(--spacing_medium); overflow-x: auto;
}

.office-sheet-chart__point {
    min-width: 54px; height: 100%;
    grid-template-rows: 1fr auto auto; align-items: end;
    gap: var(--spacing_micro); color: var(--text-2);
    text-align: center;}

.office-sheet-chart__bar {
    width: 70%; min-height: 3px;
    justify-self: center;
    border-radius: var(--radius_tight) var(--radius_tight) 0 0;
    background: var(--accent);
}

.office-sheet-chart--line .office-sheet-chart__bar {
    width: 10px; border-radius: 50% 50% 0 0;
}

.office-sheet-chart__point span, .office-sheet-chart__point small {
    max-width: 70px; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}

/* Расширенные визуалы Power BI и функции презентаций. */

.office-dashboard-main {
    flex-direction: column; gap: var(--spacing_small);
}

.office-dashboard-main .office-dashboard-stage {
    flex: 1 1 auto;
}

/* Файл conditional_formatting.css */

.office-conditional-formatting {
    grid-template-columns: minmax(190px, 240px) minmax(0, 1fr);
    gap: var(--spacing_medium);
    min-height: 420px;}

.office-conditional-formatting__categories {
    gap: var(--spacing_xs); padding-right: var(--spacing_small);
    border-right: 1px solid var(--divider-color);}

.office-conditional-formatting__categories button,
.office-conditional-formatting__manager-toolbar button,
.office-conditional-formatting__actions button {
    min-height: var(--button-min-height); border: 1px solid var(--border);
    border-radius: var(--radius_medium); background: var(--surface-primary);
    color: var(--text-1); font: inherit;
    cursor: pointer;
}

.office-conditional-formatting__categories button {
    padding: var(--spacing_compact) var(--spacing_regular); text-align: left;
}

.office-conditional-formatting__categories button:hover,
.office-conditional-formatting__manager-toolbar button:hover,
.office-conditional-formatting__actions button:hover {
    background: var(--surface-secondary);
}

.office-conditional-formatting__content,
.office-conditional-formatting__editor,
.office-conditional-formatting__manager {
    display: flex; min-width: 0;
    flex-direction: column; gap: var(--spacing_regular);
}

.office-conditional-formatting__reference {
    padding: var(--spacing_small) var(--spacing_regular);
    border-radius: var(--radius_medium); background: var(--bg-2);
    color: var(--text-2);
}

.office-conditional-formatting__editor > label,
.office-conditional-formatting__row > label {
    display: flex; min-width: 0;
    flex: 1 1 0; flex-direction: column;
    gap: var(--spacing_xs); color: var(--text-2);
    font-weight: 600;
}

.office-conditional-formatting__editor input,
.office-conditional-formatting__editor select {
    width: 100%; min-height: var(--button-min-height);
    box-sizing: border-box;
    padding: var(--spacing_compact) var(--spacing_regular);
    border: 1px solid var(--border); border-radius: var(--radius_medium);
    background: var(--surface-primary); color: var(--text-1);
}

.office-conditional-formatting__editor input[type='color'] {
    min-height: 38px; padding: var(--spacing_xs);
}

.office-conditional-formatting__row,
.office-conditional-formatting__actions,
.office-conditional-formatting__manager-toolbar {
    display: flex; align-items: center;
    gap: var(--spacing_small);
}

.office-conditional-formatting__checkbox {
    flex-direction: row !important; align-items: center;
    padding-top: var(--spacing_medium);
}

.office-conditional-formatting__checkbox input {
    width: auto; min-height: 0;
}

.office-conditional-formatting__actions {
    justify-content: flex-end;
}

.office-conditional-formatting__actions button,
.office-conditional-formatting__manager-toolbar button {
    padding: var(--spacing_compact) var(--spacing_regular);
}

.office-conditional-formatting__presets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_small);}

.office-conditional-formatting__preset {
    grid-template-columns: 76px minmax(0, 1fr); align-items: center;
    gap: var(--spacing_small); min-height: 52px;
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--radius_medium); background: var(--surface-primary);
    color: var(--text-1); text-align: left;
    cursor: pointer;}

.office-conditional-formatting__preset:hover {
    background: var(--surface-secondary);
}

.office-conditional-formatting__preset-preview {
    display: block; width: 76px;
    height: 26px; border: 1px solid var(--divider-color);
}

.office-conditional-formatting__rule-table {
    min-width: 0; border: 1px solid var(--border);
    border-radius: var(--radius_medium);
    overflow: hidden;}

.office-conditional-formatting__rule-head,
.office-conditional-formatting__rule-row {
    display: grid;
    grid-template-columns: minmax(150px, 1.5fr) 90px minmax(130px, 1fr) 90px;
    align-items: center; gap: var(--spacing_small);
}

.office-conditional-formatting__rule-head {
    padding: var(--spacing_small); background: var(--surface-secondary);
    color: var(--text-2); font-weight: 700;
}

.office-conditional-formatting__rule-row {
    width: 100%; padding: var(--spacing_small);
    border: 0; border-top: 1px solid var(--divider-color);
    border-radius: 0; background: var(--surface-primary);
    color: var(--text-1); text-align: left;
    cursor: pointer;
}

.office-conditional-formatting__rule-row--selected {
    background: var(--surface-secondary);
}

.office-conditional-formatting__format-preview {
    display: block; width: 78px;
    height: 24px; border: 1px solid var(--divider-color);
}

.office-conditional-formatting__empty {
    padding: var(--spacing_medium); color: var(--text-3);
}

@media (max-width: 760px) {
    .office-conditional-formatting {
        grid-template-columns: 1fr;
    }
    .office-conditional-formatting__categories {
        padding-right: 0; padding-bottom: var(--spacing_small);
        border-right: 0; border-bottom: 1px solid var(--divider-color);
    }
    .office-conditional-formatting__presets {
        grid-template-columns: 1fr;
    }
    .office-conditional-formatting__rule-head,
.office-conditional-formatting__rule-row {
        grid-template-columns: minmax(120px, 1fr) 70px minmax(110px, 1fr) 70px;
    }
}

/* Файл dashboard_objects_core.css */

.office-dashboard-slide--grid {
    background-image:
        linear-gradient(var(--office_grid_line_strong) 1px, transparent 1px),
        linear-gradient(
            90deg,
            var(--office_grid_line_strong) 1px,
            transparent 1px
        );
    background-size: 20px 20px;
}

.office-dashboard-kpi {
    width: 100%; height: 100%;
    box-sizing: border-box; justify-content: center;
    gap: var(--spacing_small); padding: var(--spacing_section);
    text-align: center;}

.office-dashboard-kpi span {
    color: inherit; font-weight: 700;
}

.office-dashboard-kpi strong {
    color: var(--accent); font-size: var(--font_size_0);
    line-height: 1;
}

.office-dashboard-kpi small {
    color: var(--text-3);
}

.office-dashboard-table-object, .office-dashboard-slicer {
    display: flex; width: 100%;
    height: 100%; min-height: 0;
    box-sizing: border-box; flex-direction: column;
    padding: var(--spacing_regular);
}

.office-dashboard-table-object table {
    width: 100%; border-collapse: collapse;
    font-size: var(--font_size_caption);
}

.office-dashboard-table-object th, .office-dashboard-table-object td {
    padding: var(--spacing_tight) var(--spacing_dense);
    border: 1px solid var(--border); text-align: left;
    white-space: nowrap;
}

.office-dashboard-table-object th {
    position: sticky; top: 0;
    z-index: 1; background: var(--bg-2);
}

.office-dashboard-slicer {
    align-content: flex-start; flex-direction: row;
    flex-wrap: wrap; align-items: flex-start;
    gap: var(--spacing_compact); overflow: auto;
}

.office-dashboard-slicer .office-dashboard-object__title {
    width: 100%;
}

.office-dashboard-slicer > button {
    padding: var(--spacing_compact) calc(var(--spacing_small) * 1.125);
    border: 1px solid var(--border); border-radius: var(--radius_dense);
    background: var(--bg-1); color: var(--text-2);
    cursor: pointer;
}

.office-dashboard-slicer > button.active {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 12%, var(--bg-1));
    color: var(--accent);
}

.office-dashboard-bar-row, .office-dashboard-legend button {
    border: 0; background: transparent;
    color: inherit; cursor: pointer;
    font: inherit;
}

/* Файл dashboard_objects_extra.css */

.office-dashboard-bar-row {
    width: 100%;
}

.office-dashboard-legend button {
    display: grid; width: 100%;
    grid-template-columns: 12px minmax(0, 1fr) auto; align-items: center;
    gap: var(--spacing_compact); text-align: left;
}

.office-dashboard-line-point {
    cursor: pointer;
}

.office-dashboard-drill-controls {
    display: inline-flex; gap: var(--spacing_micro);
    margin-left: auto;
}

.office-dashboard-drill-controls button {
    width: 24px; height: 22px;
    padding: 0; border: 1px solid var(--border);
    border-radius: var(--radius_tight); background: var(--bg-1);
    cursor: pointer;
}

.office-dashboard-checkbox {
    display: inline-flex; align-items: center;
    gap: var(--spacing_compact); color: var(--text-2);
    font-size: var(--font_size_caption);
}

.office-dashboard-notes {
    min-height: 92px; flex: 0 0 92px;
    gap: var(--spacing_xs);
    padding: var(--spacing_small) var(--spacing_medium);
    border: 1px solid var(--border); border-radius: var(--radius_relaxed);
    background: var(--bg-1); color: var(--text-2);
    font-size: var(--font_size_caption);
    font-weight: 700;}

.office-dashboard-notes textarea {
    min-height: 54px; flex: 1 1 auto;
    resize: none; border: 0;
    outline: none; background: transparent;
    color: var(--text-1); font: inherit;
    font-weight: 400;
}

.office-slide-show__notes {
    position: absolute; right: 18px;
    bottom: 62px; z-index: 4;
    max-width: min(440px, 44vw); max-height: 24vh;
    overflow: auto; padding: var(--spacing_regular) var(--spacing_relaxed);
    border-radius: var(--radius_relaxed);
    background: var(--office_overlay_scrim); color: var(--on-accent);
    white-space: pre-wrap;
}

.office-slide-show__slide--fade {
    animation-name: office-slide-fade; animation-timing-function: ease;
}

.office-slide-show__slide--slide {
    animation-name: office-slide-shift; animation-timing-function: ease-out;
}

.office-slide-show__slide--zoom {
    animation-name: office-slide-zoom; animation-timing-function: ease-out;
}

/* Файл dashboard_animations.css */

@keyframes office-slide-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes office-slide-shift {
    from { opacity: 0; translate: 10% 0; }
    to { opacity: 1; translate: 0 0; }
}

@keyframes office-slide-zoom {
    from { opacity: 0; scale: 0.94; }
    to { opacity: 1; scale: 1; }
}

@media (max-width: 900px) {
    .office-sheet-tool-form__row {
        flex-direction: column;
    }
    .office-dashboard-notes {
        min-height: 78px; flex-basis: 78px;
    }
}

/* Компактный режим вкладки «Файл» дашборда без пустой ленты. */

.office-workspace__panel--dashboard.office-workspace__panel--file-view >
.office-ribbon.office-ribbon--file-only {
    height: 38px !important; min-height: 38px !important;
    max-height: 38px !important; flex: 0 0 38px !important;
    overflow: hidden;
}

.office-workspace__panel--dashboard.office-workspace__panel--file-view
.office-ribbon__content {
    display: none;
}

.office-workspace__panel--dashboard.office-workspace__panel--file-view >
.office-file-panel {
    min-height: 0; flex: 1 1 auto;
    margin-top: 0;
}

.office-dashboard-source-actions {
    align-items: stretch;
    gap: var(--spacing_xs);}

.office-dashboard-source-actions button {
    width: 100%;
}

/* Дополнительные команды презентации: визуальное состояние блокировки. */

.office-dashboard-object--locked {
    outline: 2px dashed var(--border); cursor: not-allowed;
}

.office-dashboard-object--locked::after {
    position: absolute; z-index: 5;
    top: 4px; right: 6px;
    content: '🔒'; font-size: var(--font_size_caption);
    pointer-events: none;
}

/* Файл workspace_mobile.css */

.office-workspace__menu-button {
    position: fixed; z-index: 45;
    top: max(10px, env(safe-area-inset-top));
    left: max(10px, env(safe-area-inset-left)); display: none;
    width: 44px; height: 44px;
    box-sizing: border-box; flex-direction: column;
    align-items: center; justify-content: center;
    gap: var(--spacing_tight); padding: 0;
    border: 1px solid var(--border); border-radius: var(--radius_xl);
    background: var(--card); box-shadow: var(--shadow);
    cursor: pointer;
}

.office-workspace__menu-button span {
    width: 20px; height: 2px;
    border-radius: var(--radius_2xs); background: var(--blue-navy);
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.office-workspace__menu-button--active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.office-workspace__menu-button--active span:nth-child(2) {
    opacity: 0;
}

.office-workspace__menu-button--active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.office-workspace--portrait .office-workspace__menu-button {
    display: flex;
}

.office-workspace__sidebar-overlay {
    display: none;
}

.office-workspace--portrait:not(.office-workspace--sidebar-open)
.office-workspace__sidebar {
    display: none;
}

.office-workspace--portrait .office-workspace__sidebar {
    position: fixed; z-index: 43;
    top: 0; bottom: 0;
    left: 0; width: var(--office-sidebar-width);
    min-width: var(--office-sidebar-width); height: 100dvh;
    box-sizing: border-box; flex: none;
    flex-direction: column; align-items: stretch;
    flex-wrap: nowrap;
    padding: calc(var(--spacing_small) * 8) var(--spacing_relaxed)
        var(--spacing_medium);
    overflow-x: hidden; overflow-y: auto;
    box-shadow: var(--shadow);
}

.office-workspace--portrait.office-workspace--sidebar-open
.office-workspace__sidebar-overlay {
    position: fixed; z-index: 42;
    inset: 0; display: block;
    padding: 0; border: 0;
    background: transparent; cursor: default;
}

.office-workspace--portrait {
    --office-sidebar-width: 80vw; position: relative;
    height: 100dvh; min-height: 100dvh;
    overflow: hidden;
}

.office-workspace--portrait .office-workspace__content {
    flex: 1 1 100%; width: 100%;
    min-width: 0; max-width: 100%;
    height: 100dvh; padding: 0;
}

.office-workspace--portrait .office-workspace__panel {
    --office-interface-font-size: var(--font_size_0) !important;
    flex: 1 1 auto; min-height: 0;
    height: auto;
}

/* Файл workspace_settings.css */

.office-workspace__favorites {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_tight); padding: var(--spacing_tight);
    border-bottom: 1px solid var(--border); background: var(--bg-1);
}

.office-workspace__favorites button {
    min-height: 28px; padding: var(--spacing_micro) var(--spacing_small);
    border: 1px solid var(--border); border-radius: var(--radius_compact);
    background: var(--bg-2); color: var(--text-1);
    font: inherit; font-size: var(--font_size_caption);
    cursor: pointer;
}

.office-workspace__settings-button {
    display: inline-flex; width: 100%;
    min-height: 38px; box-sizing: border-box;
    align-items: center; justify-content: flex-start;
    gap: var(--spacing_small);
    padding: var(--spacing_small) var(--spacing_medium);
    border: 1px solid var(--sidebar-tab-border);
    border-radius: var(--spacing_small);
    background: var(--sidebar-tab-background); color: var(--sidebar-text);
    font: inherit; font-size: var(--office_settings_label_font_size);
    cursor: pointer;
}

.office-workspace__settings-button span {
    font-size: var(--office_sidebar_button_font_size); line-height: 1;
}

.office-workspace__settings-button--active,
.office-workspace__settings-button:hover {
    background: var(--sidebar-tab-hover);
}

.office-settings {
    width: 100%; height: 100%;
    overflow: auto; box-sizing: border-box;
    padding: var(--spacing_small); background: var(--bg-1);
    color: var(--text-1);
}

.office-settings__header {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: var(--spacing_small);
    margin-bottom: var(--spacing_small);
}

.office-settings__header h2, .office-settings__section h3 {
    margin: 0; font-size: var(--font_size_0);
}

.office-settings__header p, .office-settings__section p {
    margin: var(--spacing_xs) 0 0; color: var(--text-2);
    font-size: var(--font_size_caption);
}

.office-settings__header button {
    min-height: 34px; padding: var(--spacing_tight) var(--spacing_medium);
    border: 1px solid var(--accent); border-radius: var(--radius_dense);
    background: var(--accent); color: var(--on-accent);
    font: inherit; cursor: pointer;
}

.office-settings__section {
    gap: var(--spacing_small); margin-bottom: var(--spacing_small);
    padding: var(--spacing_small); border: 1px solid var(--border);
    border-radius: var(--radius_medium);
    background: var(--bg-2);}

.office-settings__radio-row, .office-settings__checks {
    display: flex; flex-wrap: wrap;
    gap: var(--spacing_small) var(--spacing_relaxed);
}

.office-settings__radio-row label, .office-settings__checks label {
    display: inline-flex; align-items: center;
    gap: var(--spacing_compact); font-size: var(--font_size_caption);
}

.office-settings__grid {
    display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr));
    gap: var(--spacing_small);
}

.office-settings__grid label {
    display: grid; gap: var(--spacing_xs);
    font-size: var(--font_size_caption);
}

.office-settings__grid input, .office-settings__grid select {
    min-height: 32px; box-sizing: border-box;
    padding: var(--spacing_xs) var(--spacing_dense);
    border: 1px solid var(--border); border-radius: var(--radius_compact);
    background: var(--bg-1); color: var(--text-1);
    font: inherit;
}

.office-settings__documents {
    display: grid; gap: var(--spacing_tight);
}

.office-settings__documents > div {
    display: grid; grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center; gap: var(--spacing_compact);
    min-height: 32px;
}

.office-settings__star {
    width: 28px; height: 28px;
    padding: 0; border: 0;
    background: transparent; color: var(--accent);
    font-size: var(--font_size_1); cursor: pointer;
}

.office-settings__documents small {
    color: var(--text-3); font-size: var(--font_size_caption);
}

@media (max-width: 900px) {
    .office-settings__grid {
        grid-template-columns: 1fr 1fr;
    }
}

.office-workspace--portrait .office-settings__header {
    flex-direction: column;
}

.office-workspace--portrait .office-settings__grid {
    grid-template-columns: 1fr;
}

.office-settings--compact {
    max-width: 760px;
}

.office-file-settings {
    gap: var(--spacing_relaxed);
    width: min(100%, 900px);}

.office-file-settings__header {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: var(--spacing_medium);
}

.office-file-settings__header h3, .office-file-settings__group h4 {
    margin: 0; color: var(--blue-navy);
}

.office-file-settings__header p {
    margin: var(--spacing_xs) 0 0; color: var(--text-2);
    font-size: var(--font_size_caption);
}

.office-file-settings__group {
    gap: var(--spacing_small); padding: var(--spacing_medium);
    border: 1px solid var(--border); border-radius: var(--radius_relaxed);
    background: var(--bg-2);}

.office-file-settings__checks {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing_dense) var(--spacing_relaxed);
}

.office-file-settings__checks label {
    display: flex; min-width: 0;
    align-items: flex-start; gap: var(--spacing_dense);
    font-size: var(--font_size_caption);
}

.office-workspace--portrait .office-file-settings__header {
    flex-direction: column;
}

.office-workspace--portrait .office-file-settings__checks {
    grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 760px) {
    .office-file-settings__header {
        flex-direction: column;
    }
    .office-file-settings__checks {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Файл OfficeWorkspace.css */


/*# sourceMappingURL=main.46e933ad.css.map*/