*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --color-bg: #f4f1ec;
    --color-surface: #ffffff;
    --color-primary: #c45c26;
    --color-primary-dark: #9a4518;
    --color-borux-green: #3ddc97;
    --color-borux-green-hover: #2db87d;
    --color-text: #2c2a28;
    --color-text-muted: #5c5854;
    --color-border: #ddd6cc;
    --color-notice-bg: #fff8e8;
    --color-notice-border: #f0d58b;
    --color-notice-text: #6a4f00;
    --color-header-bg: #2f3a45;
    --color-header-text: #f8f6f3;
    --color-footer-bg: #252d35;
    --color-footer-text: #c8cdd2;
    --shadow-sm: 0 1px 3px rgba(44, 42, 40, 0.08);
    --shadow-md: 0 4px 16px rgba(44, 42, 40, 0.1);
    --radius: 8px;
    --font-sans: "Segoe UI", system-ui, -apple-system, sans-serif;
}

html {
    height: 100%;
}

body {
    min-height: 100%;
    font-family: var(--font-sans);
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text);
    background: var(--color-bg);
}

.page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ── Header ── */

.header {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 0;
    padding: 0.75rem 2rem;
    overflow: visible;
    background: var(--color-header-bg);
    color: var(--color-header-text);
    box-shadow: var(--shadow-sm);
}

body.chrome-header-fixed .header {
    position: sticky;
    top: 0;
    z-index: 110;
}

.header__brand {
    display: flex;
    align-items: center;
    align-self: center;
    flex-shrink: 0;
    overflow: visible;
    line-height: 0;
    text-decoration: none;
    color: inherit;
}

.header__logo {
    display: flex;
    align-items: center;
    align-self: center;
    flex-shrink: 0;
    text-decoration: none;
    color: inherit;
}

.header__logo-emblem,
.header__logo-icon {
    width: auto;
    height: 64px;
    max-height: none;
    margin: 0;
    padding: 0;
    color: var(--color-primary);
    flex-shrink: 0;
    display: block;
}

.header__logo-wordmark {
    height: 72px;
    width: auto;
    flex-shrink: 0;
    display: block;
    object-fit: contain;
    object-position: left center;
}

svg.header__logo-icon {
    aspect-ratio: 1;
}

.header__logo-image {
    width: auto;
    height: 120px;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: left center;
    flex-shrink: 0;
    display: block;
}

.header__login:hover,
.header__login:focus-visible {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.6);
    outline: none;
}

.header__menu {
    position: relative;
}

.header__actions {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-left: auto;
    align-self: center;
    justify-content: flex-end;
}

.header__company {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
    font-size: 0.75rem;
    line-height: 1.35;
    color: rgba(248, 246, 243, 0.92);
    max-width: min(320px, 36vw);
}

.header__company-line {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.header__company-line--name {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-header-text);
}

a.header__company--link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: opacity 0.2s;
}

a.header__company--link:hover,
a.header__company--link:focus-visible {
    opacity: 0.92;
    outline: none;
}

a.header__company--link:focus-visible {
    outline: 1px solid rgba(255, 255, 255, 0.55);
    outline-offset: 2px;
}

a.header__company--link .header__company-line {
    text-decoration: none;
}

a.header__company--link:hover .header__company-line,
a.header__company--link:focus-visible .header__company-line {
    text-decoration: underline;
}

.header__menu-btn,
.header__login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: max-content;
    white-space: nowrap;
    flex-shrink: 0;
    padding: 0.5rem 1.125rem;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: var(--radius);
    color: var(--color-header-text);
    font-size: 0.9rem;
    font-family: inherit;
    background: transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s;
}

.header__menu-btn:hover,
.header__menu-btn:focus-visible {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.6);
    outline: none;
}

.header__menu-btn--workspace {
    font-weight: 600;
    color: var(--color-primary-dark);
    background: #fff;
    border-color: transparent;
}

.header__menu-btn--workspace:hover,
.header__menu-btn--workspace:focus-visible {
    color: var(--color-primary-dark);
    background: #fff;
    border-color: transparent;
    outline: none;
}

.header__menu-dropdown {
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    min-width: 240px;
    max-width: min(360px, calc(100vw - 2rem));
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
    z-index: 100;
}

.header__menu-dropdown--open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.header__menu-list {
    list-style: none;
    padding: 0.375rem 0;
    margin: 0;
}

.header__menu-group {
    margin: 0;
}

.header__menu-group-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    padding: 0.625rem 1.125rem;
    border: 0;
    background: transparent;
    color: var(--color-text);
    font-size: 0.9rem;
    font-weight: 600;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.header__menu-group-toggle:hover,
.header__menu-group-toggle:focus-visible {
    background: var(--color-bg);
    color: var(--color-primary-dark);
    outline: none;
}

.header__menu-group-title {
    flex: 1;
    min-width: 0;
}

.header__menu-group-chevron {
    flex-shrink: 0;
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    opacity: 0.7;
}

.header__menu-group--expanded .header__menu-group-chevron {
    transform: rotate(-135deg) translateY(0.125rem);
}

.header__menu-sublist {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0 0 0.25rem;
}

.header__menu-group--expanded > .header__menu-sublist {
    display: block;
}

.header__menu-sublist .header__menu-link {
    padding-left: 1.75rem;
    font-weight: 400;
}

.header__menu-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.625rem 1.125rem;
    color: var(--color-text);
    text-decoration: none;
    font-size: 0.9rem;
    transition: background 0.15s, color 0.15s;
}

.header__menu-link:hover,
.header__menu-link:focus-visible {
    background: var(--color-bg);
    color: var(--color-primary-dark);
    outline: none;
}

.header__menu-link--active {
    font-weight: 600;
    color: var(--color-primary-dark);
    background: rgba(196, 92, 38, 0.08);
}

.header__menu-link--logout {
    border-top: 1px solid var(--color-border);
    margin-top: 0.25rem;
    padding-top: 0.75rem;
    color: #8a2a22;
}

.header__menu-link--logout:hover,
.header__menu-link--logout:focus-visible {
    background: #fdecea;
    color: #8a2a22;
}

.header__menu-workspace-item {
    margin-bottom: 0.25rem;
}

.header__menu-workspace {
    display: block;
    padding: 0.75rem 1.125rem;
    background: linear-gradient(
        135deg,
        rgba(196, 92, 38, 0.14) 0%,
        rgba(196, 92, 38, 0.06) 100%
    );
    border-bottom: 1px solid rgba(196, 92, 38, 0.2);
    color: var(--color-text);
}

.header__menu-workspace-caption {
    display: block;
    margin-bottom: 0.2rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    opacity: 0.85;
}

.header__menu-workspace-name {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-primary-dark);
    cursor: default;
}

.header__workspace-switch {
    display: block;
    padding: 0.5rem 1.125rem 0.75rem;
}

.header__workspace-select {
    width: 100%;
    margin-top: 0.25rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid rgba(196, 92, 38, 0.25);
    border-radius: 4px;
    background: #fff;
    color: var(--color-text);
    font-size: 0.875rem;
}

/* ── Main ── */

.main {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
}

.main--content {
    align-items: flex-start;
    justify-content: center;
    padding-top: 2rem;
    padding-bottom: 2.5rem;
}

.welcome {
    max-width: 860px;
    width: 100%;
    text-align: center;
}

.welcome__greeting {
    display: inline-block;
    margin-bottom: 0.75rem;
    padding: 0.35rem 1rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: 0.9rem;
    color: var(--color-primary-dark);
    box-shadow: var(--shadow-sm);
    transition: opacity 0.4s;
}

.welcome__title {
    font-size: clamp(1.5rem, 4vw, 2.125rem);
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--color-text);
}

.welcome__lead {
    font-size: 1.05rem;
    color: var(--color-text-muted);
    max-width: 640px;
    margin: 0 auto 2.5rem;
}

.welcome__features {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.25rem;
    margin-bottom: 2.5rem;
    text-align: left;
}

.feature-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.5rem 1.25rem;
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s, box-shadow 0.2s;
}

.feature-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.feature-card__icon {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 0.75rem;
}

.feature-card__title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.feature-card__text {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    line-height: 1.5;
}

.welcome__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    border-radius: var(--radius);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    border: 2px solid transparent;
    transition: background 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s;
    font-family: inherit;
}

.btn:disabled,
.btn[disabled],
.btn[aria-disabled="true"] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
    pointer-events: none;
}

.btn--primary {
    background: var(--color-primary);
    color: #fff;
}

.btn--primary:hover:not(:disabled):not([disabled]):not([aria-disabled="true"]),
.btn--primary:focus-visible:not(:disabled):not([disabled]):not([aria-disabled="true"]) {
    background: var(--color-primary-dark);
    outline: none;
}

.btn--secondary {
    background: transparent;
    color: var(--color-primary-dark);
    border-color: var(--color-primary);
}

.btn--secondary:hover,
.btn--secondary:focus-visible {
    background: rgba(196, 92, 38, 0.08);
    outline: none;
}

.btn--danger {
    font-weight: 700;
    color: #c62828;
    border-color: #c62828;
    background: transparent;
}

.btn--danger:hover,
.btn--danger:focus-visible {
    color: #b71c1c;
    border-color: #b71c1c;
    background: rgba(198, 40, 40, 0.08);
    outline: none;
}

/* ── Footer ── */

.footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    column-gap: 1.5rem;
    row-gap: 0.5rem;
    min-height: var(--chrome-header-height, 5.5rem);
    background: var(--color-footer-bg);
    color: var(--color-footer-text);
    padding: 0.75rem 2rem;
    text-align: left;
    box-sizing: border-box;
}

body.chrome-footer-fixed .footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 110;
}

body.chrome-footer-fixed .page {
    padding-bottom: var(--chrome-footer-height, var(--chrome-header-height, 5.5rem));
}

.footer__nav {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 1.25rem;
    margin: 0;
    max-width: 100%;
}

.footer__link {
    color: var(--color-footer-text);
    text-decoration: none;
    font-size: 0.875rem;
    transition: color 0.2s;
}

.footer__link:hover,
.footer__link:focus-visible {
    color: #fff;
    outline: none;
}

.footer__copy {
    grid-column: 3;
    justify-self: end;
    margin: 0;
    font-size: 0.8rem;
    opacity: 0.75;
    white-space: nowrap;
}

body.cookie-consent-open {
    padding-bottom: 0;
}

.cookie-consent {
    position: fixed;
    inset: auto 0 0;
    z-index: 200;
    padding: 1rem;
    pointer-events: none;
}

.cookie-consent__panel {
    pointer-events: auto;
    max-width: 56rem;
    margin: 0 auto;
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--color-notice-border, #f0d58b);
    border-radius: var(--radius);
    background: var(--color-notice-bg, #fff8e8);
    color: var(--color-notice-text, #6a4f00);
    box-shadow: var(--shadow-md);
}

.cookie-consent__title {
    margin: 0 0 0.5rem;
    font-size: 1.0625rem;
    color: var(--color-notice-text, #6a4f00);
}

.cookie-consent__text {
    margin: 0 0 1rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-notice-text, #6a4f00);
}

.cookie-consent__text a {
    color: var(--color-primary-dark, #1f57e6);
}

.cookie-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
}

.cookie-consent__form {
    margin: 0;
}

.cookie-consent__btn {
    min-width: 9rem;
}

@media (max-width: 640px) {
    .cookie-consent {
        padding: 0.75rem;
    }

    .cookie-consent__panel {
        padding: 1rem;
    }

    .cookie-consent__actions {
        flex-direction: column;
    }

    .cookie-consent__btn {
        width: 100%;
    }
}

.legal-docs-notice {
    position: fixed;
    inset: 0;
    z-index: 210;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.45);
}

.legal-docs-notice__panel {
    width: 100%;
    max-width: 36rem;
    padding: 1.5rem;
    border: 1px solid var(--color-notice-border, #f0d58b);
    border-radius: var(--radius);
    background: var(--color-notice-bg, #fff8e8);
    color: var(--color-notice-text, #6a4f00);
    box-shadow: var(--shadow-md);
}

.legal-docs-notice__title {
    margin: 0 0 0.75rem;
    font-size: 1.125rem;
    color: var(--color-notice-text, #6a4f00);
}

.legal-docs-notice__text {
    margin: 0 0 1rem;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--color-notice-text, #6a4f00);
}

.legal-docs-notice__links {
    margin: 0 0 1.25rem;
    padding-left: 1.25rem;
}

.legal-docs-notice__links a {
    color: var(--color-primary-dark);
}

.legal-docs-notice__form {
    margin: 0;
}

.legal-docs-notice__btn {
    min-width: 10rem;
}

.legal-page__db-content p {
    margin: 0 0 1rem;
}

.admin-legal-publish {
    margin-bottom: 1rem;
}

.admin-legal-form__textarea {
    min-height: 18rem;
    font-family: inherit;
    line-height: 1.5;
}

.admin-legal-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.admin-legal-placeholders {
    margin: 1rem 0 1.25rem;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg, #fafafa);
}

.admin-legal-placeholders__title {
    margin: 0 0 0.75rem;
    font-size: 0.9375rem;
}

.admin-legal-placeholders__list {
    margin: 0;
}

.admin-legal-placeholders__row {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) 2fr;
    gap: 0.5rem 1rem;
    margin-bottom: 0.35rem;
    font-size: 0.8125rem;
}

.admin-legal-placeholders__row dt {
    margin: 0;
}

.admin-legal-placeholders__row dd {
    margin: 0;
    color: var(--color-text-muted, #64748b);
}

.admin-legal-history {
    margin-bottom: 1rem;
}

.admin-legal-history__active {
    color: var(--color-primary-dark);
    font-weight: 600;
}

@media (max-width: 640px) {
    .admin-legal-placeholders__row {
        grid-template-columns: 1fr;
    }

    .legal-docs-notice__panel {
        padding: 1.125rem;
    }
}

/* ── Auth forms ── */

.auth,
.cabinet {
    width: 100%;
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
}

.cabinet--wide {
    max-width: 960px;
}

.auth__card,
.cabinet__card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 2rem 1.75rem;
    box-shadow: var(--shadow-md);
}

.auth__title,
.cabinet__title {
    font-size: 1.375rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    text-align: center;
}

.auth__subtitle,
.cabinet__text {
    font-size: 0.925rem;
    color: var(--color-text-muted);
    text-align: center;
    margin-bottom: 1.5rem;
}

.auth__form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.form-field__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text);
}

.form-field__input {
    padding: 0.6875rem 0.875rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 1rem;
    font-family: inherit;
    color: var(--color-text);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.form-field__input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(196, 92, 38, 0.15);
}

.form-field__input::placeholder {
    color: #9a9590;
}

.btn--block {
    width: 100%;
    margin-top: 0.25rem;
}

.auth__links {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}

.auth__links--single {
    justify-content: center;
}

.auth__link {
    font-size: 0.875rem;
    color: var(--color-primary-dark);
    text-decoration: none;
    font-weight: 600;
}

.auth__link:hover,
.auth__link:focus-visible {
    color: var(--color-primary);
    text-decoration: underline;
    outline: none;
}

.auth__link--inline {
    font-weight: 600;
}

.alert {
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    font-size: 0.875rem;
    margin-bottom: 1rem;
    line-height: 1.45;
}

.alert--error {
    background: #fdecea;
    color: #8a2a22;
    border: 1px solid #f5c2be;
}

.alert--success {
    background: #e8f5ea;
    color: #256029;
    border: 1px solid #b8dfc0;
}

.alert--info {
    background: #eef4fb;
    color: #2a4a6b;
    border: 1px solid #c5d9ef;
}

.cabinet__welcome {
    text-align: center;
    margin-bottom: 0.75rem;
}

.cabinet__meta {
    text-align: center;
    font-size: 0.875rem;
    color: var(--color-text-muted);
    margin-bottom: 1rem;
}

.cabinet__meta code {
    font-size: 0.8125rem;
    background: var(--color-bg);
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
}

.cabinet__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 1.5rem;
}

.data-table-wrap {
    overflow-x: auto;
    margin-top: 0.5rem;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    text-align: left;
}

.data-table th,
.data-table td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-border);
    vertical-align: top;
}

.data-table th {
    font-weight: 600;
    color: var(--color-text-muted);
    background: var(--color-bg);
}

.data-table th.data-table__sortable {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.data-table th.data-table__sortable:hover,
.data-table th.data-table__sortable:focus-visible {
    color: var(--color-text);
}

.data-table th.data-table__sortable::after {
    content: '';
    display: inline-block;
    width: 0.55em;
    margin-left: 0.35em;
    opacity: 0.35;
    font-weight: 700;
}

.data-table th.data-table__sortable.is-sorted-asc::after {
    content: '↑';
    opacity: 1;
}

.data-table th.data-table__sortable.is-sorted-desc::after {
    content: '↓';
    opacity: 1;
}

.data-table tbody tr:hover {
    background: rgba(196, 92, 38, 0.04);
}

.data-table__guid {
    font-size: 0.75rem;
    word-break: break-all;
    background: var(--color-bg);
    padding: 0.15rem 0.35rem;
    border-radius: 4px;
}

.cabinet--wide .cabinet__title {
    text-align: left;
}

.cabinet--wide .cabinet__text {
    text-align: left;
}

.cabinet-search {
    margin-bottom: 1.5rem;
}

.cabinet-search__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.cabinet-search__row {
    display: flex;
    gap: 0.75rem;
    align-items: stretch;
}

.cabinet-search__input {
    flex: 1;
    min-width: 0;
    padding: 0.6875rem 0.875rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 1rem;
    font-family: inherit;
    color: var(--color-text);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.cabinet-search__input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(196, 92, 38, 0.15);
}

.cabinet-search__input::placeholder {
    color: #9a9590;
}

.cabinet-search__btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.cabinet-search__row--suggest {
    align-items: stretch;
}

.cabinet-search__field {
    position: relative;
    flex: 1;
    min-width: 0;
    display: flex;
}

.cabinet-search__field .cabinet-search__input {
    flex: 1;
    width: 100%;
    min-width: 0;
}

.search-suggestions {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 0;
    right: 0;
    z-index: 30;
    margin: 0;
    padding: 0.25rem 0;
    list-style: none;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
    max-height: 280px;
    overflow-y: auto;
}

.search-suggestions__item {
    display: block;
    width: 100%;
    padding: 0.625rem 0.875rem;
    border: none;
    background: transparent;
    text-align: left;
    font-size: 0.9375rem;
    font-family: inherit;
    color: var(--color-text);
    cursor: pointer;
}

.search-suggestions__item:hover,
.search-suggestions__item:focus-visible,
.search-suggestions__item--active {
    background: rgba(196, 92, 38, 0.08);
    outline: none;
}

.kontragent-section {
    display: grid;
}

.kontragent-overlay,
.kontragent-list {
    grid-area: 1 / 1;
}

.kontragent-overlay {
    position: relative;
    z-index: 20;
    align-self: start;
    width: 100%;
    box-sizing: border-box;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
}

/* Hidden overlay must never paint over the list (author display:flex can beat [hidden]). */
.kontragent-overlay[hidden],
.kontragent-overlay__panel[hidden] {
    display: none !important;
}

.cabinet-content {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.kontragent-section:has(.kontragent-overlay .entity-card-tabs) {
    width: 100%;
}

.kontragent-section:has(.kontragent-overlay .entity-card-tabs) .kontragent-overlay {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 36rem;
}

.kontragent-section:has(.kontragent-overlay .entity-card-tabs) .kontragent-overlay__panel {
    flex: 1 1 auto;
    min-height: 28rem;
}

.cabinet.cabinet--wide.cabinet--kontragenti:has(.kontragent-overlay .entity-card-tabs),
.cabinet.cabinet--proekti.cabinet--wide:has(.kontragent-overlay .entity-card-tabs) {
    width: 100%;
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
}

.cabinet.cabinet--wide.cabinet--kontragenti:has(.kontragent-overlay .entity-card-tabs) .cabinet__card,
.cabinet.cabinet--proekti.cabinet--wide:has(.kontragent-overlay .entity-card-tabs) .cabinet__card {
    width: 100%;
    box-sizing: border-box;
}

.kontragent-list {
    z-index: 1;
    padding-top: 4.75rem;
    align-self: stretch;
    min-width: 0;
}

.kontragenti-section > .kontragent-list {
    padding-top: 0;
}

.kontragenti-section .kontragent-list__search {
    margin-bottom: 1rem;
}

.kontragent-overlay__search {
    margin-bottom: 0;
    padding: 0.875rem 1rem 0.75rem;
}

/* Список проектов/документов/контактных лиц: поиск как у контрагентов — без вложенной рамки */
.kontragent-section:not(:has(.kontragent-overlay .entity-card-tabs)) > .kontragent-overlay {
    border: none;
    box-shadow: none;
    background: transparent;
}

.kontragent-section:not(:has(.kontragent-overlay .entity-card-tabs)) .kontragent-overlay__search {
    margin-bottom: 1rem;
    padding-left: 0;
    padding-right: 0;
}

.kontragent-overlay__toolbar {
    padding: 0.875rem 1rem 0.75rem;
}

.kontragent-overlay__toolbar--actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
}

.kontragent-overlay__toolbar--header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.kontragent-overlay__heading {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-text);
    text-align: left;
}

.cabinet__card:has(.kontragent-overlay__heading) > .cabinet__title {
    display: none;
}

.cabinet__card:has(.kontragent-overlay__heading) .kontragent-overlay {
    border: none;
    box-shadow: none;
    background: var(--color-surface);
}

.kontragent-section:has(.kontragent-overlay .entity-card-tabs) > .kontragent-list {
    display: none !important;
}

.cabinet__card:has(.kontragent-overlay__heading) .kontragent-overlay__toolbar--header {
    padding-left: 0;
    padding-right: 0;
}

.cabinet__card:has(.kontragent-overlay__heading) .entity-card-tabs {
    margin-left: 0;
    margin-right: 0;
}

.cabinet__card:has(.kontragent-overlay__heading) .kontragent-overlay__panel,
.cabinet__card:has(.kontragent-overlay__heading) .kontragent-overlay__search {
    padding-left: 0;
    padding-right: 0;
}

.entity-card-tabs,
.kontragenti-tabs,
.sotrudniki-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 0 1rem 0.75rem;
    padding: 0;
    border-bottom: 1px solid var(--color-border);
}

.entity-card-tabs__tab,
.kontragenti-tabs .entity-card-tabs__tab,
.sotrudniki-tabs .entity-card-tabs__tab {
    display: inline-flex;
    align-items: center;
    padding: 0.65rem 1rem;
    margin-bottom: -1px;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: var(--radius) var(--radius) 0 0;
    background: transparent;
    color: var(--color-text-muted);
    font: inherit;
    font-size: 0.9375rem;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.entity-card-tabs__tab:hover,
.entity-card-tabs__tab:focus-visible,
.kontragenti-tabs .entity-card-tabs__tab:hover,
.kontragenti-tabs .entity-card-tabs__tab:focus-visible,
.sotrudniki-tabs .entity-card-tabs__tab:hover,
.sotrudniki-tabs .entity-card-tabs__tab:focus-visible {
    color: var(--color-text);
    background: color-mix(in srgb, var(--color-bg) 70%, transparent);
    outline: none;
}

.entity-card-tabs__tab--active,
.kontragenti-tabs .entity-card-tabs__tab--active,
.sotrudniki-tabs .entity-card-tabs__tab--active {
    color: var(--color-text);
    background: var(--color-surface);
    border-color: var(--color-border);
    font-weight: 600;
}

.kontragent-actions__btn--my-company {
    background: var(--color-borux-green);
    border-color: var(--color-borux-green);
    color: #fff;
}

.kontragent-actions__btn--my-company:hover,
.kontragent-actions__btn--my-company:focus-visible {
    background: var(--color-borux-green-hover);
    border-color: var(--color-borux-green-hover);
    color: #fff;
}

.kontragent-overlay__link {
    display: inline-flex;
    max-width: 100%;
    text-decoration: none;
}

.kontragent-overlay__toolbar--back .kontragent-overlay__link {
    border-color: transparent;
}

.kontragent-overlay__toolbar--back .kontragent-overlay__link:hover,
.kontragent-overlay__toolbar--back .kontragent-overlay__link:focus-visible {
    border-color: transparent;
    background: transparent;
}

.kontragent-overlay__panel {
    padding: 0 1rem 1rem;
}

.kontragent-overlay__panel .alert:first-child,
.kontragent-overlay__panel .kontragent-overlay__empty:first-child,
.kontragent-overlay__panel .kontragent-result:first-child {
    margin-top: 0;
}

.kontragent-overlay__empty {
    margin-bottom: 0;
}

.kontragent-overlay__filter-title {
    margin: 0 0 0.75rem;
}

.kontragent-overlay__filter-table {
    margin-bottom: 0;
}

.kontragent-overlay__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: #fff;
    color: var(--color-text-muted);
    text-decoration: none;
    box-sizing: border-box;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.kontragent-overlay__close:hover,
.kontragent-overlay__close:focus-visible {
    background: var(--color-bg);
    color: var(--color-text);
    border-color: var(--color-primary);
    outline: none;
}

.kontragent-list__header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 0.75rem;
}

.kontragent-list__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text);
}

.kontragent-list__meta {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.kontragent-list__row--clickable {
    cursor: pointer;
}

.kontragent-list__row--clickable:hover,
.kontragent-list__row--clickable:focus-visible {
    background: rgba(196, 92, 38, 0.08);
    outline: none;
}

.moi-kompanii-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.moi-kompanii-section .moi-kompanii-list {
    padding-top: 0;
}

.moi-kompanii-section:has(.kontragent-overlay:not([hidden])) .moi-kompanii-list {
    padding-top: 4.75rem;
}

.moi-kompanii-section .kontragent-overlay__toolbar--actions {
    justify-content: flex-end;
    padding-top: 0.875rem;
}

.moi-kompanii-toolbar__btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.moi-kompanii-table__check-col {
    width: 2.25rem;
    text-align: center;
    vertical-align: middle;
}

.moi-kompanii-list__row--clickable {
    cursor: pointer;
}

.moi-kompanii-list__row--clickable:hover,
.moi-kompanii-list__row--clickable:focus-visible {
    background: rgba(196, 92, 38, 0.08);
    outline: none;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem 1.25rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.pagination__link {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-primary-dark);
    text-decoration: none;
}

.pagination__link:hover,
.pagination__link:focus-visible {
    color: var(--color-primary);
    text-decoration: underline;
    outline: none;
}

.pagination__status {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.main:has(.cabinet--kontragenti),
.main:has(.cabinet--proekti),
.main:has(.cabinet--istoriya),
.main:has(.cabinet--sotrudniki),
.main:has(.cabinet--tendery) {
    align-items: flex-start;
    padding-top: 2rem;
}

.cabinet--istoriya,
.cabinet--sotrudniki,
.cabinet--tendery,
.cabinet--proekti,
.cabinet--kontragenti {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
}

.cabinet--proekti.cabinet--wide,
.cabinet--kontragenti.cabinet--wide {
    max-width: 1920px;
}

.kontragent-result {
    margin-top: 0.5rem;
}

.kontragent-result__form {
    margin: 0;
}

.search-suggestions--field {
    z-index: 40;
}

.kontragent-result__value .cabinet-search__field {
    position: relative;
    width: 100%;
}

.kontragent-result__row,
.kontragent-result__info,
.kontragent-overlay__panel {
    overflow: visible;
}

.dokumenti-section__intro,
.proekti-section__intro,
.dokument-result__hint,
.proekt-result__hint {
    margin: 0 0 1rem;
}

.dokument-result__clear-parent,
.proekt-result__clear-field {
    margin-top: 0.5rem;
    padding: 0;
    border: none;
    background: none;
    color: var(--color-primary-dark);
    font-size: 0.875rem;
    font-family: inherit;
    cursor: pointer;
    text-decoration: underline;
}

.proekt-upload-rows {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.proekt-upload-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.proekt-upload-row__picker {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.proekt-upload-row__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.proekt-upload-row__choose {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--color-border, #ccc);
    border-radius: 0.25rem;
    background: var(--color-surface, #fff);
    color: inherit;
    font-size: 0.875rem;
    font-family: inherit;
    cursor: pointer;
}

.proekt-upload-row__choose:hover,
.proekt-upload-row__choose:focus-visible {
    border-color: var(--color-primary-dark);
}

.proekt-upload-row__filename {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.proekt-upload-row__remove {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    border-radius: 0.25rem;
    background: none;
    color: var(--color-text-muted);
    font-size: 1.25rem;
    line-height: 1;
    font-family: inherit;
    cursor: pointer;
}

.proekt-upload-row__remove:hover,
.proekt-upload-row__remove:focus-visible {
    color: var(--color-primary-dark);
    background: rgba(0, 0, 0, 0.05);
}

.proekt-upload-rows__hint {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.proekt-uploads-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.proekt-uploads-list__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.proekt-uploads-list__name,
.proekt-uploads-list__open {
    flex: 1;
    min-width: 0;
    word-break: break-word;
}

.proekt-uploads-list__open {
    padding: 0;
    border: none;
    background: none;
    color: var(--color-primary-dark);
    font-size: inherit;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    text-decoration: underline;
}

.proekt-uploads-list__open:hover,
.proekt-uploads-list__open:focus-visible {
    color: var(--color-primary);
}

.proekt-uploads-list__actions {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.75rem;
}

.proekt-uploads-list__download,
.proekt-uploads-list__delete {
    flex-shrink: 0;
    padding: 0;
    border: none;
    background: none;
    color: var(--color-primary-dark);
    font-size: 0.875rem;
    font-family: inherit;
    cursor: pointer;
    text-decoration: underline;
}

.proekt-uploads-list__download:hover,
.proekt-uploads-list__download:focus-visible,
.proekt-uploads-list__delete:hover,
.proekt-uploads-list__delete:focus-visible {
    color: var(--color-primary);
}

body.proekt-viewer-open {
    overflow: hidden;
}

.proekt-viewer {
    position: fixed;
    inset: 0;
    z-index: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.proekt-viewer[hidden] {
    display: none;
}

.proekt-viewer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.72);
}

.proekt-viewer__dialog {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(96vw, 1200px);
    height: min(92vh, 900px);
    overflow: hidden;
    border-radius: 0.75rem;
    background: var(--color-surface, #fff);
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
}

.proekt-viewer__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-border, #d9dee7);
    background: var(--color-surface, #fff);
}

.proekt-viewer__title {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.95rem;
    font-weight: 600;
}

.proekt-viewer__controls {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.35rem;
}

.proekt-viewer__btn {
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.5rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.375rem;
    background: var(--color-surface, #fff);
    color: inherit;
    font-size: 0.95rem;
    font-family: inherit;
    cursor: pointer;
}

.proekt-viewer__btn:hover:not(:disabled),
.proekt-viewer__btn:focus-visible:not(:disabled) {
    border-color: var(--color-primary-dark);
}

.proekt-viewer__btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.proekt-viewer__btn--status {
    min-width: 4.25rem;
    font-size: 0.8125rem;
}

.proekt-viewer__btn--close {
    font-size: 1.25rem;
    line-height: 1;
}

.proekt-viewer__divider {
    width: 1px;
    height: 1.5rem;
    margin: 0 0.25rem;
    background: var(--color-border, #d9dee7);
}

.proekt-viewer__status {
    min-width: 7rem;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    text-align: center;
}

.proekt-viewer__stage {
    position: relative;
    flex: 1;
    min-height: 0;
    background: #eef1f5;
}

.proekt-viewer__stage--download {
    display: flex;
    align-items: center;
    justify-content: center;
}

.proekt-viewer__viewport {
    width: 100%;
    height: 100%;
    overflow: hidden;
    cursor: grab;
    touch-action: none;
}

.proekt-viewer__viewport--dragging {
    cursor: grabbing;
}

.proekt-viewer__content {
    display: inline-block;
    transform-origin: center center;
    will-change: transform;
}

.proekt-viewer__canvas,
.proekt-viewer__image {
    display: block;
    max-width: none;
    margin: 0 auto;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
    background: #fff;
}

.proekt-viewer__viewport {
    display: flex;
    align-items: center;
    justify-content: center;
}

.proekt-viewer__fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    width: 100%;
    height: 100%;
    padding: 2rem;
    text-align: center;
}

.proekt-viewer__fallback-text {
    max-width: 28rem;
    margin: 0;
    color: var(--color-text-muted);
}

.dokumenti-list__row--clickable,
.proekti-list__row--clickable {
    cursor: pointer;
}

.dokumenti-list__row--clickable:hover,
.dokumenti-list__row--clickable:focus-visible,
.proekti-list__row--clickable:hover,
.proekti-list__row--clickable:focus-visible {
    background: rgba(196, 92, 38, 0.06);
}

.kontragent-result__fieldset {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.kontragent-result__input {
    width: 100%;
    padding: 0.5625rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.95rem;
    font-family: inherit;
    color: var(--color-text);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.kontragent-result__fieldset:disabled .kontragent-result__input,
.kontragent-result__input:read-only {
    background: #f5f5f4;
    cursor: default;
}

.kontragent-result__input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(196, 92, 38, 0.15);
}

.kontragent-result__fieldset:disabled .kontragent-result__input:focus,
.kontragent-result__input:read-only:focus {
    border-color: var(--color-border);
    box-shadow: none;
}

.kontragent-result__input--textarea {
    min-height: 4.5rem;
    resize: vertical;
}

.kontragent-result__label label {
    cursor: pointer;
}

.kontragent-result__fieldset:disabled .kontragent-result__label label {
    cursor: default;
}

.kontragent-result__row--readonly .kontragent-result__value {
    padding-top: 0.125rem;
}

.kontragent-result__errors {
    margin-bottom: 1rem;
}

.kontragent-result__errors-title {
    margin: 0 0 0.5rem;
    font-weight: 600;
}

.kontragent-result__errors-list {
    margin: 0;
    padding-left: 1.25rem;
}

.kontragent-result__errors-list li + li {
    margin-top: 0.35rem;
}

.kontragent-result__info {
    margin: 0 0 1.75rem;
    padding: 1.25rem 1.5rem;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.kontragent-result__row {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 0.75rem 1rem;
    align-items: start;
}

.kontragent-result__row[hidden] {
    display: none !important;
}

.kontragent-result__row + .kontragent-result__row {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.kontragent-result__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.kontragent-result__value {
    margin: 0;
    font-size: 1rem;
    color: var(--color-text);
    word-break: break-word;
}

.kontragent-result__guid {
    font-size: 0.8125rem;
    word-break: break-all;
    background: var(--color-surface);
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
    border: 1px solid var(--color-border);
}

.kontragent-result__row--graphics .kontragent-result__value--graphics {
    padding-top: 0.125rem;
}

.kontragent-graphics__empty {
    margin: 0;
    font-size: 0.9375rem;
    font-style: italic;
    font-weight: 400;
    color: #c62828;
}

.kontragent-graphics__preview {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem 1.25rem;
}

.kontragent-graphics__item {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    min-width: 5rem;
}

.kontragent-graphics__image,
.kontragent-graphics__placeholder {
    display: block;
    height: 72px;
    width: auto;
    max-width: 140px;
    object-fit: contain;
}

.kontragent-graphics__placeholder {
    width: 72px;
    border: 1px dashed var(--color-border);
    border-radius: 4px;
    background: var(--color-surface);
}

.kontragent-graphics__caption {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    text-align: center;
}

.kontragent-actions__upload {
    display: contents;
}

.kontragent-actions__title {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 0.875rem;
    color: var(--color-text);
}

.kontragent-actions__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.kontragent-result .kontragent-actions__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fizlica-section__intro {
    margin: 0 0 1rem;
}

.fizlica-list__row--clickable {
    cursor: pointer;
}

.fizlica-list__row--clickable:hover,
.fizlica-list__row--clickable:focus-visible {
    background: rgba(196, 92, 38, 0.06);
}

.fizlico-result__hint {
    margin: 0 0 1rem;
}

.kontragent-result__required {
    color: #c62828;
}

.kontragent-actions__btn {
    min-width: 180px;
    box-sizing: border-box;
}

.kontragent-result .kontragent-actions__btn {
    width: 100%;
    min-width: 0;
}

.kontragent-actions__btn--actualize {
    font-weight: 700;
    color: #c62828;
    border-color: #c62828;
}

.kontragent-actions__btn--actualize:hover,
.kontragent-actions__btn--actualize:focus-visible {
    color: #b71c1c;
    border-color: #b71c1c;
    background: rgba(198, 40, 40, 0.08);
    outline: none;
}

.cabinet--proekt-work {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
}

.proekt-work__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 1.5rem;
}

.proekt-work__back {
    align-self: flex-start;
    display: inline-block;
    margin-bottom: 0.75rem;
    color: var(--color-primary-dark);
    text-decoration: none;
}

.proekt-work__back:hover,
.proekt-work__back:focus-visible {
    text-decoration: underline;
}

.proekt-work__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    margin: 0 auto 0.35rem;
    text-align: center;
}

.proekt-work__title-line {
    display: block;
}

.proekt-work__title-line--customer {
    font-size: 0.92em;
    font-weight: 500;
    color: var(--color-text-muted);
}

.proekt-work__subtitle {
    margin: 0;
    max-width: 52rem;
    text-align: center;
    color: var(--color-text-muted);
}

.proekt-work__panel {
    margin-bottom: 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.75rem;
    background: var(--color-surface, #fff);
}

.proekt-work__templates-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
    align-items: stretch;
}

.proekt-work__templates-row .proekt-work__panel {
    margin-bottom: 0;
    height: 100%;
}

.proekt-work__panel--template {
    display: flex;
    flex-direction: column;
}

.proekt-work__panel-title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.proekt-work__hint-area {
    flex: 1 1 auto;
    margin-bottom: 1rem;
}

.proekt-work__hint {
    margin: 0;
}

.proekt-work__upload-row {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75rem 1rem;
}

.proekt-work__template-btn-group {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
    max-width: none;
}

.proekt-work__template-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
}

span.proekt-work__template-btn[aria-disabled="true"],
span.kontragent-actions__btn[aria-disabled="true"] {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

.proekt-work__upload-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
    margin: 0;
}

.proekt-work__upload-divider {
    width: 100%;
    height: 1px;
    margin: 0.25rem 0 0.5rem;
    background: #c8beb2;
}

.proekt-work__file-label {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
}

.proekt-work__file-label input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.proekt-work__file-name {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.proekt-work__meta {
    flex: 0 0 auto;
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.proekt-work__badge {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
    background: rgba(196, 92, 38, 0.12);
    color: var(--color-primary-dark);
    font-size: 0.75rem;
}

.proekt-work__badge--success {
    background: rgba(46, 125, 50, 0.12);
    color: #2e7d32;
}

.proekt-work__smeta-actions {
    margin-bottom: 1rem;
}

.proekt-work__templates-row--locked {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.proekt-work__templates-row--locked .proekt-work__panel--template {
    grid-column: 1;
}

.proekt-work__smeta-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
}

.proekt-work__panel-title--inline {
    margin: 0;
}

.proekt-smeta__structure-toolbar,
.proekt-akt__toolbar-panel {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.proekt-smeta__toolbar-btn--save,
.proekt-smeta__toolbar-btn--sign {
    box-sizing: border-box;
    position: relative;
    width: 1.75rem;
    min-width: 1.75rem;
    height: 1.75rem;
    min-height: 1.75rem;
    padding: 0;
    font-size: 0;
    line-height: 0;
    color: transparent;
    overflow: hidden;
}

.proekt-smeta__toolbar-btn--save::before,
.proekt-smeta__toolbar-btn--sign::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.125rem;
    height: 1.125rem;
    transform: translate(-50%, -50%);
    background-color: var(--color-primary-dark, #8a4518);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.proekt-smeta__toolbar-btn--save::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M2.25 1.5h5.1l1.65 1.65V10.5H2.25V1.5zm1.2 1.2v6.6h5.1V3.9H7.35V2.7H3.45zm2.1 4.05h1.2V8.1H5.55v1.35z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M2.25 1.5h5.1l1.65 1.65V10.5H2.25V1.5zm1.2 1.2v6.6h5.1V3.9H7.35V2.7H3.45zm2.1 4.05h1.2V8.1H5.55v1.35z'/%3E%3C/svg%3E");
}

.proekt-smeta__toolbar-btn--save:hover:not(:disabled)::before,
.proekt-smeta__toolbar-btn--save:focus-visible:not(:disabled)::before {
    background-color: var(--color-primary, #c45c26);
}

.proekt-smeta__toolbar-btn--sign {
    border-color: #81c784;
    background: #f1f8f2;
}

.proekt-smeta__toolbar-btn--sign::before {
    background-color: #2e7d32;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' d='M2.4 6.2 4.9 8.7 9.6 3.3'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' d='M2.4 6.2 4.9 8.7 9.6 3.3'/%3E%3C/svg%3E");
}

.proekt-smeta__toolbar-btn--sign:hover:not(:disabled),
.proekt-smeta__toolbar-btn--sign:focus-visible:not(:disabled) {
    border-color: #2e7d32;
    background: #e8f5e9;
}

.proekt-smeta__toolbar-btn--sign.proekt-smeta__toolbar-btn--signed {
    opacity: 0.55;
    cursor: default;
}

.proekt-akt__signed-badge {
    background: #e8f5e9;
    color: #2e7d32;
}

.proekt-smeta__toolbar-btn--ks2 {
    min-width: 2.5rem;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-primary-dark, #8a4518);
    text-decoration: none;
    border: none;
    background: transparent;
    font-family: inherit;
}

.proekt-smeta__toolbar-btn--ks2.proekt-akt__toolbar-btn--disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.proekt-smeta__toolbar-btn--remainders {
    box-sizing: border-box;
    position: relative;
    width: 1.75rem;
    min-width: 1.75rem;
    height: 1.75rem;
    min-height: 1.75rem;
    padding: 0;
    font-size: 0;
    line-height: 0;
    color: transparent;
    overflow: hidden;
    border: 1px solid var(--color-border, #d9dee7);
    background: #fff;
}

.proekt-smeta__toolbar-btn--remainders::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.125rem;
    height: 1.125rem;
    transform: translate(-50%, -50%);
    background-color: var(--color-primary-dark, #8a4518);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='1.7' y='2.15' width='1.61' height='7.7' rx='0.81' fill='%23000'/%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.23' stroke-linecap='round' stroke-linejoin='round' d='M5.25 6H9.94M8.31 4.25 10.56 6 8.31 7.75'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='1.7' y='2.15' width='1.61' height='7.7' rx='0.81' fill='%23000'/%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.23' stroke-linecap='round' stroke-linejoin='round' d='M5.25 6H9.94M8.31 4.25 10.56 6 8.31 7.75'/%3E%3C/svg%3E");
}

.proekt-smeta__toolbar-btn--remainders:hover:not(:disabled)::before,
.proekt-smeta__toolbar-btn--remainders:focus-visible:not(:disabled)::before {
    background-color: var(--color-primary, #c45c26);
}

.proekt-smeta__toolbar-btn--remainders.proekt-akt__toolbar-btn--disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.proekt-smeta__toolbar-btn--clear-akt {
    min-width: 2.5rem;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-primary-dark, #8a4518);
    white-space: nowrap;
    border: none;
    background: transparent;
    font-family: inherit;
}

.proekt-smeta__toolbar-btn--clear-akt.proekt-akt__toolbar-btn--disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.proekt-akt__header-select {
    cursor: pointer;
    user-select: none;
}

.proekt-akt__header-select:hover:not(.proekt-akt--selected),
.proekt-akt__header-select:focus-visible:not(.proekt-akt--selected) {
    background: #dce6f2;
    outline: none;
}

.proekt-smeta--akt-toolbar .proekt-akt--selected {
    background: rgba(196, 92, 38, 0.16) !important;
    background-color: rgba(196, 92, 38, 0.16) !important;
}

.proekt-smeta--akt-toolbar thead .proekt-akt--selected,
.proekt-smeta--akt-toolbar tfoot .proekt-akt--selected {
    background: #f8ece4 !important;
    background-color: #f8ece4 !important;
}

.proekt-smeta__toolbar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.75rem;
    margin: 0;
    padding: 0.2rem 0.55rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.35rem;
    background: #fff;
    color: var(--color-primary-dark, #8a4518);
    font: inherit;
    font-size: 0.8125rem;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
}

.proekt-smeta__toolbar-btn--up,
.proekt-smeta__toolbar-btn--down,
.proekt-smeta__toolbar-btn--add,
.proekt-smeta__toolbar-btn--remove {
    box-sizing: border-box;
    position: relative;
    width: 1.75rem;
    min-width: 1.75rem;
    height: 1.75rem;
    min-height: 1.75rem;
    padding: 0;
    font-size: 0;
    line-height: 0;
    color: transparent;
    overflow: hidden;
}

.proekt-smeta__toolbar-btn--up::before,
.proekt-smeta__toolbar-btn--down::before,
.proekt-smeta__toolbar-btn--add::before,
.proekt-smeta__toolbar-btn--remove::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.125rem;
    height: 1.125rem;
    transform: translate(-50%, -50%);
    background-color: var(--color-primary-dark, #8a4518);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.proekt-smeta__toolbar-btn--up::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M6 3.25 2.75 7.5h6.5L6 3.25z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M6 3.25 2.75 7.5h6.5L6 3.25z'/%3E%3C/svg%3E");
}

.proekt-smeta__toolbar-btn--down::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M6 8.75 9.25 4.5h-6.5L6 8.75z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M6 8.75 9.25 4.5h-6.5L6 8.75z'/%3E%3C/svg%3E");
}

.proekt-smeta__toolbar-btn--add::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M5.25 2.25h1.5v7.5h-1.5z M2.25 5.25h7.5v1.5h-7.5z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M5.25 2.25h1.5v7.5h-1.5z M2.25 5.25h7.5v1.5h-7.5z'/%3E%3C/svg%3E");
}

.proekt-smeta__toolbar-btn--up:hover::before,
.proekt-smeta__toolbar-btn--up:focus-visible::before,
.proekt-smeta__toolbar-btn--down:hover::before,
.proekt-smeta__toolbar-btn--down:focus-visible::before,
.proekt-smeta__toolbar-btn--add:hover::before,
.proekt-smeta__toolbar-btn--add:focus-visible::before {
    background-color: var(--color-primary, #c45c26);
}

.proekt-smeta__toolbar-btn:hover,
.proekt-smeta__toolbar-btn:focus-visible {
    border-color: var(--color-primary, #c45c26);
    background: rgba(196, 92, 38, 0.08);
}

.proekt-smeta__toolbar-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.proekt-smeta__toolbar-btn--remove {
    border-color: #e57373;
    background: #fff5f5;
}

.proekt-smeta__toolbar-btn--remove::before {
    background-color: #c62828;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' d='M3.1 3.1l5.8 5.8M8.9 3.1l-5.8 5.8'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' d='M3.1 3.1l5.8 5.8M8.9 3.1l-5.8 5.8'/%3E%3C/svg%3E");
}

.proekt-smeta__toolbar-btn--remove:hover,
.proekt-smeta__toolbar-btn--remove:focus-visible {
    border-color: #c62828;
    background: #ffebee;
}

.proekt-smeta__toolbar-btn--remove:hover::before,
.proekt-smeta__toolbar-btn--remove:focus-visible::before {
    background-color: #b71c1c;
}

.proekt-smeta__toolbar-btn--group.proekt-smeta__toolbar-btn--mode-active,
.proekt-smeta__toolbar-btn--ungroup.proekt-smeta__toolbar-btn--mode-active,
.proekt-smeta__toolbar-btn--move.proekt-smeta__toolbar-btn--mode-active,
.proekt-smeta__toolbar-btn--copy.proekt-smeta__toolbar-btn--mode-active {
    border-color: var(--color-primary, #c45c26);
    background: rgba(196, 92, 38, 0.18);
    color: var(--color-primary-dark, #8a4518);
}

.proekt-smeta--move-mode tbody .proekt-smeta__row--position td,
.proekt-smeta--move-mode tbody .proekt-smeta__row--subgroup td,
.proekt-smeta--move-mode tbody .proekt-smeta__row--group td,
.proekt-smeta--copy-mode tbody .proekt-smeta__row--position td,
.proekt-smeta--copy-mode tbody .proekt-smeta__row--subgroup td,
.proekt-smeta--copy-mode tbody .proekt-smeta__row--group td {
    cursor: pointer;
}

.proekt-smeta--move-mode .proekt-smeta__number-label-row,
.proekt-smeta--copy-mode .proekt-smeta__number-label-row {
    width: 100%;
}

.proekt-smeta__structure-checkbox {
    margin-left: auto;
    flex-shrink: 0;
}

.proekt-smeta__row--root-move-target td {
    background: #fff8ef;
    border-top: 1px dashed var(--color-primary, #c45c26);
    border-bottom: 1px dashed var(--color-primary, #c45c26);
    position: sticky;
    top: 0;
    z-index: 6;
}

.proekt-smeta__root-move-target-cell {
    padding: 0.45rem 0.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-primary-dark, #8a4518);
    text-align: left;
}

.proekt-smeta__row--structure-target td {
    cursor: pointer;
}

body.proekt-smeta-confirm-open {
    overflow: hidden;
}

.proekt-smeta-confirm {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.proekt-smeta-confirm[hidden] {
    display: none;
}

.proekt-smeta-confirm__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
}

.proekt-smeta-confirm__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 26rem);
    padding: 1.25rem 1.35rem 1.1rem;
    border: 1px solid var(--color-notice-border, #f0d58b);
    border-radius: 0.65rem;
    background: var(--color-notice-bg, #fff8e8);
    color: var(--color-notice-text, #6a4f00);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22);
}

.proekt-smeta-confirm__title {
    margin: 0 0 0.65rem;
    font-size: 1.125rem;
    color: var(--color-notice-text, #6a4f00);
}

.proekt-smeta-confirm__text {
    margin: 0 0 1.1rem;
    color: var(--color-notice-text, #6a4f00);
    line-height: 1.45;
}

.proekt-smeta-confirm__footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
}

.proekt-smeta-confirm__footer .btn[hidden] {
    display: none !important;
}

.btn--upgrade-plan {
    background: var(--color-borux-green);
    border-color: var(--color-borux-green);
    color: #fff;
}

.btn--upgrade-plan:hover,
.btn--upgrade-plan:focus-visible {
    background: var(--color-borux-green-hover);
    border-color: var(--color-borux-green-hover);
    color: #fff;
}

.proekt-smeta__row--subgroup,
.proekt-smeta__row--group {
    cursor: pointer;
}

.proekt-work__table-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.proekt-smeta-variants {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0 0 1rem;
}

.proekt-smeta-variants__group {
    display: inline-flex;
    align-items: stretch;
    max-width: 100%;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.35rem;
    overflow: hidden;
    background: #fff;
}

.proekt-smeta-variants__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    padding: 0.4rem 0.9rem;
    border: none;
    border-right: 1px solid var(--color-border, #d9dee7);
    background: #f5f7fa;
    color: inherit;
    text-decoration: none;
    font-size: 0.875rem;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
}

.proekt-smeta-variants__tab-label {
    font-weight: 400;
}

.proekt-smeta-variants__tab-label--primary {
    font-weight: 700;
}

.proekt-smeta-variants__tab-mark {
    font-weight: 700;
}

.proekt-smeta-variants__tab:hover,
.proekt-smeta-variants__tab:focus-visible {
    background: #eef2f7;
    outline: none;
}

.proekt-smeta-variants__tab--active {
    background: var(--color-primary, #c45c26);
    color: #fff;
    cursor: default;
}

.proekt-smeta-variants__tab--active:hover,
.proekt-smeta-variants__tab--active:focus-visible {
    background: var(--color-primary-dark, #9a4518);
    color: #fff;
}

.proekt-smeta-variants__tab--active .proekt-smeta-variants__tab-label {
    font-weight: 400;
}

.proekt-smeta-variants__tab--active .proekt-smeta-variants__tab-label--primary {
    font-weight: 700;
}

.proekt-smeta-variants__add-form {
    margin: 0;
    display: flex;
}

.proekt-smeta-variants__add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-sizing: border-box;
    flex: 0 0 auto;
    align-self: stretch;
    width: 2.5rem;
    min-width: 2.5rem;
    padding: 0;
    border: none;
    background: #f5f7fa;
    font-size: 0;
    line-height: 0;
    color: transparent;
    overflow: hidden;
    cursor: pointer;
}

.proekt-smeta-variants__add::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.125rem;
    height: 1.125rem;
    transform: translate(-50%, -50%);
    background-color: var(--color-primary, #c45c26);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M5.25 2.25h1.5v7.5h-1.5z M2.25 5.25h7.5v1.5h-7.5z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M5.25 2.25h1.5v7.5h-1.5z M2.25 5.25h7.5v1.5h-7.5z'/%3E%3C/svg%3E");
}

.proekt-smeta-variants__add:hover,
.proekt-smeta-variants__add:focus-visible {
    background: #eef2f7;
    outline: none;
}

.proekt-smeta-variants__add--disabled {
    cursor: default;
    pointer-events: none;
}

.proekt-smeta-variants__add--disabled::before {
    background-color: var(--color-text-muted, #6b7280);
}

.proekt-smeta-variants__primary-form {
    margin: 0;
    display: flex;
}

.proekt-smeta-variants__primary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-sizing: border-box;
    flex: 0 0 auto;
    align-self: stretch;
    width: 2.5rem;
    min-width: 2.5rem;
    padding: 0;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.35rem;
    background: #fff;
    font-size: 0;
    line-height: 0;
    color: transparent;
    overflow: hidden;
    cursor: pointer;
}

.proekt-smeta-variants__primary-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.2rem;
    height: 1.2rem;
    transform: translate(-50%, -50%);
    background-color: var(--color-text-muted, #6b7280);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M6 2.25 7.38 4.55 10.05 4.72 8.02 6.62 8.65 9.75 6 8.25 3.35 9.75 3.98 6.62 1.95 4.72 4.62 4.55z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M6 2.25 7.38 4.55 10.05 4.72 8.02 6.62 8.65 9.75 6 8.25 3.35 9.75 3.98 6.62 1.95 4.72 4.62 4.55z'/%3E%3C/svg%3E");
}

.proekt-smeta-variants__primary-btn:hover,
.proekt-smeta-variants__primary-btn:focus-visible {
    background: #f5f7fa;
    outline: none;
}

.proekt-smeta-variants__primary-btn:hover::before,
.proekt-smeta-variants__primary-btn:focus-visible::before {
    background-color: var(--color-primary, #c45c26);
}

.proekt-smeta-variants__primary-btn--active {
    background: #fff8ef;
    border-color: rgba(196, 92, 38, 0.35);
    cursor: default;
    pointer-events: none;
}

.proekt-smeta-variants__primary-btn--active::before {
    background-color: var(--color-primary, #c45c26);
}

.proekt-smeta-variants__copy-form {
    margin: 0;
    display: flex;
}

.proekt-smeta-variants__copy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-sizing: border-box;
    flex: 0 0 auto;
    align-self: stretch;
    width: 2.5rem;
    min-width: 2.5rem;
    padding: 0;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.35rem;
    background: #fff;
    font-size: 0;
    line-height: 0;
    color: transparent;
    overflow: hidden;
    cursor: pointer;
}

.proekt-smeta-variants__copy-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.2rem;
    height: 1.2rem;
    transform: translate(-50%, -50%);
    background-color: var(--color-text-muted, #6b7280);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.2' d='M4.25 4.25h5.5v5.5h-5.5z'/%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.2' d='M2.25 7.75V2.25h5.5'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.2' d='M4.25 4.25h5.5v5.5h-5.5z'/%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.2' d='M2.25 7.75V2.25h5.5'/%3E%3C/svg%3E");
}

.proekt-smeta-variants__copy-btn:hover,
.proekt-smeta-variants__copy-btn:focus-visible {
    background: #f5f7fa;
    outline: none;
}

.proekt-smeta-variants__copy-btn:hover::before,
.proekt-smeta-variants__copy-btn:focus-visible::before {
    background-color: var(--color-primary, #c45c26);
}

.proekti-podgruppy__toolbar {
    margin: 0 0 0.75rem;
}

.proekti-podgruppy__name-cell {
    padding-left: 0.75rem;
}

.proekti-podgruppy__name-wrap {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding-left: calc(var(--proekti-tree-depth, 0) * 1.25rem);
}

.proekti-podgruppy__collapse-btn {
    flex: 0 0 auto;
    width: 1.25rem;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--color-text-muted);
    font-size: 0.75rem;
    line-height: 1;
    cursor: pointer;
}

.proekti-podgruppy__collapse-btn:hover,
.proekti-podgruppy__collapse-btn:focus-visible {
    color: var(--color-text);
    outline: none;
}

.proekti-podgruppy__collapse-btn--leaf {
    visibility: hidden;
    pointer-events: none;
}

.proekti-podgruppy__project-label {
    display: block;
    padding-left: calc(1.6rem + (var(--proekti-tree-depth, 0) * 1.25rem));
}

.proekti-podgruppy__subgroup-label {
    font-weight: 600;
    font-style: italic;
}

.proekti-podgruppy__row--tree-hidden {
    display: none;
}

.proekti-podgruppy__row--selected td {
    background: #fff8ef;
}

.proekti-podgruppy__row--group-pending td {
    background: #eef6ff;
}

.proekti-podgruppy__row--subgroup {
    cursor: pointer;
}

.proekti-podgruppy__btn--edit:disabled {
    opacity: 0.45;
    cursor: default;
}

.proekti-list__money-col {
    text-align: right;
    white-space: nowrap;
}

.proekti-list__row--negative-positions td {
    background: rgba(198, 40, 40, 0.1);
}

.proekti-list__row--negative-positions.proekti-podgruppy__row--selected td {
    background: rgba(198, 40, 40, 0.16);
}

.proekti-list__money-col--negative {
    background: rgba(198, 40, 40, 0.12);
    color: #b71c1c;
    font-weight: 600;
}

.proekti-podgruppy__rename-input {
    width: 100%;
    max-width: 28rem;
    margin-left: calc(var(--proekti-tree-depth, 0) * 1.25rem);
}

.proekt-work__smeta-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.proekt-work__smeta-toolbar-actions .proekt-smeta__toolbar-action-btn {
    box-sizing: border-box;
    min-width: 10.75rem;
    justify-content: center;
}

.proekt-work__smeta-toolbar-actions .proekt-smeta__toolbar-action-btn--delete {
    font-weight: 700;
    color: #c62828;
    border-color: #c62828;
}

.proekt-work__smeta-toolbar-actions .proekt-smeta__toolbar-action-btn--delete:hover,
.proekt-work__smeta-toolbar-actions .proekt-smeta__toolbar-action-btn--delete:focus-visible {
    color: #b71c1c;
    border-color: #b71c1c;
    background: rgba(198, 40, 40, 0.08);
    outline: none;
}

.proekt-work__smeta-locked-actions {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.proekt-work__smeta-locked-actions > .btn,
.proekt-work__smeta-locked-actions .proekt-smeta__delete-form .btn {
    box-sizing: border-box;
    height: 2.75rem;
    padding: 0 1.25rem;
    line-height: 1;
    white-space: nowrap;
}

.proekt-work__smeta-locked-actions .kontragent-actions__btn {
    min-width: 0;
}

.proekt-smeta__delete-form {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.proekt-smeta__delete-variant-form,
.proekt-smeta__agree-form {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.proekt-smeta-builder-form {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0;
}

.proekt-smeta__number-cell {
    vertical-align: top;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    line-height: 1.2;
}

.proekt-smeta__number-stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    min-width: max-content;
}

.proekt-smeta__number-label-row {
    display: flex;
    align-items: flex-start;
    gap: 0.15rem;
    padding-left: calc(var(--proekt-smeta-tree-depth, 0) * var(--proekt-smeta-tree-indent));
}

.proekt-smeta__collapse-btn {
    flex: 0 0 auto;
    width: 1.1rem;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    font-size: 0.75rem;
    line-height: 1.25;
    cursor: pointer;
    font-style: normal;
    font-weight: 400;
}

.proekt-smeta__collapse-btn:hover,
.proekt-smeta__collapse-btn:focus-visible {
    color: var(--color-primary-dark);
    outline: none;
}

.proekt-smeta__number-label {
    display: block;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
    word-break: break-word;
}

.proekt-smeta__row--group .proekt-smeta__number-label,
.proekt-smeta__row--subgroup .proekt-smeta__number-label {
    font-weight: 700;
    font-style: italic;
}

.proekt-smeta {
    --proekt-smeta-tree-indent: 0.55rem;
    --proekt-smeta-tree-collapse-duration: 0.34s;
    --proekt-smeta-tree-collapse-ease: cubic-bezier(0.45, 0, 0.55, 1);
}

.proekt-smeta.proekt-smeta--tree-collapse-active tbody tr.proekt-smeta__row--tree-slide > td {
    overflow: hidden;
    vertical-align: top;
    transition-property: padding-top, padding-bottom, opacity, border-top-width, border-bottom-width;
    transition-duration: var(--proekt-smeta-tree-collapse-duration);
    transition-timing-function: var(--proekt-smeta-tree-collapse-ease);
}

.proekt-smeta.proekt-smeta--tree-collapse-active tbody tr.proekt-smeta__row--tree-slide.proekt-smeta__row--tree-slide-closed > td {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    opacity: 0;
    border-top-width: 0 !important;
    border-bottom-width: 0 !important;
    line-height: 0 !important;
    font-size: 0 !important;
}

.proekt-smeta__row--collapsed-by-tree {
    display: none;
}

.proekt-smeta tbody tr.proekt-smeta__row--collapsed-by-tree > td {
    display: none !important;
    height: 0;
    padding: 0;
    border: 0;
    line-height: 0;
    overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
    .proekt-smeta.proekt-smeta--tree-collapse-active tbody tr.proekt-smeta__row--tree-slide > td {
        transition: none !important;
    }
}

.proekt-smeta__builder-field {
    display: none;
    width: 100%;
    box-sizing: border-box;
    padding: 0.25rem 0.35rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.25rem;
    font: inherit;
}

.proekt-smeta--edit-mode .proekt-smeta__builder-field {
    display: block;
}

.proekt-smeta--edit-mode .proekt-smeta__view-value,
.proekt-smeta--edit-mode td[data-col="name"] .proekt-smeta__view-value {
    display: none;
}

.proekt-smeta--edit-mode td[data-col="sum_work"],
.proekt-smeta--edit-mode td[data-col="sum_material"],
.proekt-smeta--edit-mode td[data-col="sum_total"] {
    opacity: 0.85;
}

.proekt-smeta__row--group .proekt-smeta__builder-field--name,
.proekt-smeta__row--subgroup .proekt-smeta__builder-field--name {
    font-weight: 700;
    font-style: italic;
}

.proekt-smeta__row--group td[data-col="name"] .proekt-smeta__view-value,
.proekt-smeta__row--subgroup td[data-col="name"] .proekt-smeta__view-value {
    font-style: italic;
}

.proekt-smeta td[data-col="name"] {
    vertical-align: top;
}

.proekt-smeta:not(.proekt-smeta--edit-mode) td[data-col="name"] .proekt-smeta__view-value {
    display: block;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.35;
}

.proekt-smeta__builder-field--name {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
}

.proekt-smeta__wrap {
    overflow: auto;
    max-width: 100%;
    max-height: min(68vh, calc(100dvh - 14rem));
    padding-bottom: 0.5rem;
    -webkit-overflow-scrolling: touch;
}

.proekt-smeta__tfoot td {
    vertical-align: middle;
}

.proekt-smeta__filtered-note {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-muted);
}

/* Цена — фиксированная ширина */
.proekt-smeta td[data-col="price_work"],
.proekt-smeta td[data-col="price_material"],
.proekt-smeta__head-row--sub > th:nth-child(1),
.proekt-smeta__head-row--sub > th:nth-child(3),
.proekt-smeta__filter-row th:has([data-filter-column="price_work"]),
.proekt-smeta__filter-row th:has([data-filter-column="price_material"]) {
    width: var(--ps-smeta-money-col);
    min-width: var(--ps-smeta-money-col);
    max-width: var(--ps-smeta-money-col);
    box-sizing: border-box;
    text-align: right;
    white-space: nowrap;
}

/* Стоимость и итоги — минимум как сейчас, ширина по содержимому */
.proekt-smeta__money,
.proekt-smeta td[data-col="sum_work"],
.proekt-smeta td[data-col="sum_material"],
.proekt-smeta td[data-col="sum_total"],
.proekt-smeta td[data-col="akt_sum"],
.proekt-smeta td[data-col="summary_done_sum"],
.proekt-smeta td[data-col="summary_remain_sum"],
.proekt-smeta__head-row--sub > th:nth-child(2),
.proekt-smeta__head-row--sub > th:nth-child(4),
.proekt-smeta__filter-row th:has([data-filter-column="sum_work"]),
.proekt-smeta__filter-row th:has([data-filter-column="sum_material"]),
.proekt-smeta__filter-row th:has([data-filter-column="sum_total"]),
.proekt-akt__col-head--sum {
    min-width: var(--ps-smeta-money-col);
    width: auto;
    max-width: none;
    box-sizing: border-box;
    text-align: right;
    white-space: nowrap;
}

.proekt-smeta {
    --proekt-smeta-group-bg: rgba(196, 92, 38, 0.08);
    --proekt-smeta-subgroup-bg: rgba(196, 92, 38, 0.04);
    /* Непрозрачные эквиваленты rgba на #fff — для sticky-ячеек при горизонтальном скролле */
    --proekt-smeta-group-bg-solid: #faf2ee;
    --proekt-smeta-subgroup-bg-solid: #fcf8f6;
    /* До измерения JS — приблизительные значения; proektSmetaSyncStickyHeadOffsets задаёт точные */
    --ps-head-sticky-top-sub: 2.35rem;
    --ps-head-sticky-top-akt: 4.7rem;
    --ps-head-sticky-top-filter: 4.7rem;
    --ps-head-sticky-top-filter-akty: 7.05rem;
    --ps-sticky-col-number-min: 3.5rem;
    --ps-sticky-col-number: max-content;
    --ps-sticky-col-name-min: 18rem;
    --ps-sticky-col-name: 18rem;
    --ps-sticky-col-unit: 6rem;
    --ps-sticky-col-qty: 7.5rem;
    --ps-smeta-money-col: 6.5rem;
    --ps-sticky-left-number: 0;
    --ps-sticky-left-name: var(--ps-sticky-col-number);
    --ps-sticky-left-unit: calc(var(--ps-sticky-col-number) + var(--ps-sticky-col-name));
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.875rem;
}

.proekt-smeta td[data-col="number"],
.proekt-smeta td[data-col="name"],
.proekt-smeta td[data-col="unit"],
.proekt-smeta thead > tr:first-child > th:nth-child(-n+3),
.proekt-smeta thead > tr.proekt-smeta__filter-row > th:nth-child(-n+3),
.proekt-smeta__sticky-col {
    position: sticky;
    z-index: 12;
}

.proekt-smeta__tfoot .proekt-smeta__sticky-col {
    z-index: 20;
    isolation: isolate;
}

.proekt-smeta tbody td:not([data-col="number"]):not([data-col="name"]):not([data-col="unit"]) {
    position: relative;
    z-index: 0;
}

.proekt-smeta__tfoot td:not(.proekt-smeta__sticky-col) {
    position: relative;
    z-index: 1;
    background-color: #f9fafb;
}

.proekt-smeta td[data-col="number"],
.proekt-smeta thead > tr:first-child > th:nth-child(1),
.proekt-smeta thead > tr.proekt-smeta__filter-row > th:nth-child(1),
.proekt-smeta__sticky-col--number {
    left: var(--ps-sticky-left-number);
    box-sizing: border-box;
    width: max-content;
    min-width: max(var(--ps-sticky-col-number-min), max-content);
    max-width: none;
}

.proekt-smeta.proekt-smeta--number-col-sized td[data-col="number"],
.proekt-smeta.proekt-smeta--number-col-sized thead > tr:first-child > th:nth-child(1),
.proekt-smeta.proekt-smeta--number-col-sized thead > tr.proekt-smeta__filter-row > th:nth-child(1),
.proekt-smeta.proekt-smeta--number-col-sized .proekt-smeta__sticky-col--number {
    width: var(--ps-sticky-col-number);
    min-width: var(--ps-sticky-col-number);
    max-width: var(--ps-sticky-col-number);
}

.proekt-smeta td[data-col="name"],
.proekt-smeta thead > tr:first-child > th:nth-child(2),
.proekt-smeta thead > tr.proekt-smeta__filter-row > th:nth-child(2),
.proekt-smeta__sticky-col--name {
    left: var(--ps-sticky-left-name);
    box-sizing: border-box;
    width: max-content;
    min-width: max(var(--ps-sticky-col-name-min), max-content);
    max-width: none;
}

.proekt-smeta.proekt-smeta--name-col-sized td[data-col="name"],
.proekt-smeta.proekt-smeta--name-col-sized thead > tr:first-child > th:nth-child(2),
.proekt-smeta.proekt-smeta--name-col-sized thead > tr.proekt-smeta__filter-row > th:nth-child(2),
.proekt-smeta.proekt-smeta--name-col-sized .proekt-smeta__sticky-col--name {
    width: var(--ps-sticky-col-name);
    min-width: var(--ps-sticky-col-name);
    max-width: var(--ps-sticky-col-name);
}

.proekt-smeta td[data-col="unit"],
.proekt-smeta thead > tr:first-child > th:nth-child(3),
.proekt-smeta thead > tr.proekt-smeta__filter-row > th:nth-child(3),
.proekt-smeta__sticky-col--unit {
    left: var(--ps-sticky-left-unit);
    min-width: var(--ps-sticky-col-unit);
    max-width: var(--ps-sticky-col-unit);
    width: var(--ps-sticky-col-unit);
    box-shadow: 2px 0 5px rgba(15, 23, 42, 0.08);
}

/* Шапка актов/цен — только вертикальный sticky, при горизонтальном скролле уходят под фикс. столбцы */
.proekt-smeta__head-row--sub th,
.proekt-smeta__head-row--akt-cols th:not(.proekt-smeta__sticky-col),
.proekt-smeta thead > tr.proekt-smeta__filter-row > th:nth-child(n+4) {
    left: auto;
    width: auto;
    min-width: unset;
    max-width: none;
    box-shadow: none;
    z-index: 1;
}

.proekt-smeta thead > tr:first-child > th:nth-child(-n+3),
.proekt-smeta thead > tr.proekt-smeta__filter-row > th:nth-child(-n+3) {
    z-index: 25;
}

/* Непрозрачный фон только у позиций — иначе перекрывает подсветку групп/подгрупп */
.proekt-smeta tbody .proekt-smeta__row--position td[data-col="number"],
.proekt-smeta tbody .proekt-smeta__row--position td[data-col="name"],
.proekt-smeta tbody .proekt-smeta__row--position td[data-col="unit"] {
    background-color: #fff;
    isolation: isolate;
}

.proekt-smeta tbody .proekt-smeta__row--group td[data-col="number"],
.proekt-smeta tbody .proekt-smeta__row--group td[data-col="name"],
.proekt-smeta tbody .proekt-smeta__row--group td[data-col="unit"] {
    background-color: var(--proekt-smeta-group-bg-solid);
    background-clip: padding-box;
    isolation: isolate;
}

.proekt-smeta tbody .proekt-smeta__row--subgroup td[data-col="number"],
.proekt-smeta tbody .proekt-smeta__row--subgroup td[data-col="name"],
.proekt-smeta tbody .proekt-smeta__row--subgroup td[data-col="unit"] {
    background-color: var(--proekt-smeta-subgroup-bg-solid);
    background-clip: padding-box;
    isolation: isolate;
}

/* Конструктор сметы: без актов горизонтальный скролл не нужен — отключаем только горизонтальный sticky в tbody */
.proekt-smeta--structure-edit td[data-col="number"],
.proekt-smeta--structure-edit td[data-col="name"],
.proekt-smeta--structure-edit td[data-col="unit"],
.proekt-smeta--structure-edit .proekt-smeta__sticky-col {
    position: static;
    left: auto;
    box-shadow: none;
    z-index: auto;
    isolation: auto;
}

.proekt-smeta--structure-edit tbody td:not([data-col="number"]):not([data-col="name"]):not([data-col="unit"]) {
    position: static;
    z-index: auto;
}

.proekt-smeta__tfoot .proekt-smeta__sticky-col {
    background-color: #f9fafb;
    background-clip: padding-box;
}

.proekt-smeta__tfoot .proekt-smeta__sticky-col--number,
.proekt-smeta__tfoot .proekt-smeta__sticky-col--name {
    box-shadow: none;
}

.proekt-smeta__tfoot .proekt-smeta__sticky-col--unit {
    box-shadow: 4px 0 10px -3px rgba(15, 23, 42, 0.18);
}

.proekt-smeta__tfoot .proekt-smeta__row--total-all .proekt-smeta__sticky-col {
    background-color: #faefe8;
}

.proekt-smeta__tfoot .proekt-smeta__sticky-col--name {
    white-space: normal;
    text-align: left;
}

.proekt-smeta__tfoot .proekt-smeta__sticky-col--unit.proekt-smeta__vat-control {
    text-align: center;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.proekt-smeta td[data-col="unit"],
.proekt-smeta thead > tr:first-child > th:nth-child(3),
.proekt-smeta thead > tr.proekt-smeta__filter-row > th:nth-child(3) {
    padding-left: 0.45rem;
    padding-right: 0.45rem;
}

.proekt-smeta th,
.proekt-smeta td {
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--color-border, #d9dee7);
    vertical-align: top;
    white-space: nowrap;
}

.proekt-smeta th {
    background: #f5f7fa;
    font-weight: 600;
    text-align: left;
}

.proekt-smeta thead th {
    vertical-align: middle;
    text-align: center;
    background-color: #f5f7fa;
    background-clip: padding-box;
}

.proekt-smeta thead tr:not(:first-child) th {
    border-top: none;
}

.proekt-smeta thead tr th {
    vertical-align: middle;
}

.proekt-smeta thead .proekt-smeta__akt-align-pad {
    vertical-align: middle;
    padding: 0.55rem 0.75rem;
}

.proekt-smeta__head-row th {
    position: sticky;
    top: 0;
    z-index: 22;
}

.proekt-smeta__head-row--sub th {
    top: var(--ps-head-sticky-top-sub);
    z-index: 21;
}

.proekt-smeta__filter-row th {
    position: sticky;
    top: calc(var(--ps-head-sticky-top-filter) - 1px);
    z-index: 30;
    background-color: #eef1f5;
    box-shadow: 0 -2px 0 0 #eef1f5;
}

/* Конструктор: шапка и фильтры липнут по вертикали целиком, без фиксации слева */
.proekt-smeta--structure-edit thead > tr.proekt-smeta__head-row > th:nth-child(-n+3) {
    left: auto;
    box-shadow: none;
    width: auto;
    min-width: unset;
    max-width: none;
}

.proekt-smeta--structure-edit thead > tr.proekt-smeta__filter-row > th:nth-child(-n+3) {
    left: auto;
    box-shadow: 0 -2px 0 0 #eef1f5;
    z-index: 30;
    width: auto;
    min-width: unset;
    max-width: none;
}

.proekt-smeta__thead--with-akty .proekt-smeta__head-row th {
    top: 0;
}

.proekt-smeta__thead--with-akty .proekt-smeta__head-row--sub th {
    top: var(--ps-head-sticky-top-sub);
}

.proekt-smeta__thead--with-akty .proekt-smeta__head-row--akt-cols th {
    position: sticky;
    top: var(--ps-head-sticky-top-akt);
    z-index: 21;
    background-color: #e8eef5;
}

.proekt-smeta__thead--with-akty .proekt-smeta__filter-row th {
    top: calc(var(--ps-head-sticky-top-filter-akty) - 1px);
    box-shadow: 0 -2px 0 0 #eef1f5;
}

/* Любой задействованный фильтр — сиреневая полоса на всю ширину строки (видна при горизонтальном скролле) */
.proekt-smeta thead > tr.proekt-smeta__filter-row--any-active > th,
.proekt-smeta__thead--with-akty tr.proekt-smeta__filter-row.proekt-smeta__filter-row--any-active > th {
    --_ps-filter-row-active: var(--proekt-smeta-filter-row-active-bg, #ebe6f7);
    background-color: var(--_ps-filter-row-active);
    background-clip: padding-box;
    box-shadow: 0 -2px 0 0 var(--_ps-filter-row-active);
}

.proekt-smeta td[data-col="unit"] {
    min-width: var(--ps-sticky-col-unit);
    text-align: right;
}

.proekt-smeta td[data-col="unit"] .proekt-smeta__builder-field,
.proekt-smeta td[data-col="unit"] .proekt-smeta__view-value {
    text-align: right;
}

.proekt-smeta td[data-col="qty"] {
    min-width: var(--ps-sticky-col-qty);
    max-width: var(--ps-sticky-col-qty);
    width: var(--ps-sticky-col-qty);
    text-align: right;
}

.proekt-smeta td[data-col="qty"] .proekt-smeta__builder-field,
.proekt-smeta td[data-col="qty"] .proekt-smeta__view-value {
    text-align: right;
}

.proekt-smeta td[data-col="price_work"] .proekt-smeta__builder-field,
.proekt-smeta td[data-col="price_material"] .proekt-smeta__builder-field {
    min-width: 0;
    max-width: 100%;
    text-align: right;
}

.proekt-smeta__row--group td {
    background: var(--proekt-smeta-group-bg);
    font-weight: 700;
}

.proekt-smeta__row--subgroup td {
    /* One shared color for any subgroup nesting depth */
    background: var(--proekt-smeta-subgroup-bg);
    font-weight: 700;
}

.proekt-smeta__row--group td[data-col="qty"],
.proekt-smeta__row--group td[data-col="sum_work"],
.proekt-smeta__row--group td[data-col="sum_material"],
.proekt-smeta__row--group td[data-col="sum_total"],
.proekt-smeta__row--group td[data-col="akt_qty"],
.proekt-smeta__row--group td[data-col="akt_sum"],
.proekt-smeta__row--group td[data-col="summary_done_qty"],
.proekt-smeta__row--group td[data-col="summary_done_sum"],
.proekt-smeta__row--group td[data-col="summary_remain_qty"],
.proekt-smeta__row--group td[data-col="summary_remain_sum"] {
    font-style: italic;
    font-weight: 700;
}

.proekt-smeta__row--subgroup td[data-col="qty"],
.proekt-smeta__row--subgroup td[data-col="sum_work"],
.proekt-smeta__row--subgroup td[data-col="sum_material"],
.proekt-smeta__row--subgroup td[data-col="sum_total"],
.proekt-smeta__row--subgroup td[data-col="akt_qty"],
.proekt-smeta__row--subgroup td[data-col="akt_sum"],
.proekt-smeta__row--subgroup td[data-col="summary_done_qty"],
.proekt-smeta__row--subgroup td[data-col="summary_done_sum"],
.proekt-smeta__row--subgroup td[data-col="summary_remain_qty"],
.proekt-smeta__row--subgroup td[data-col="summary_remain_sum"] {
    font-style: italic;
    font-weight: 400;
}

.proekt-smeta__row--position td {
    font-weight: 400;
    background-color: #fff;
    background-clip: padding-box;
}

.proekt-smeta__row--position td[data-col="name"] {
    padding-left: 1.25rem;
}

/* Выделение в конструкторе — после правил фона № / наименования / ед. изм. */
.proekt-smeta--structure-edit tbody .proekt-smeta__row--selected.proekt-smeta__row--position td,
.proekt-smeta--structure-edit tbody .proekt-smeta__row--selected.proekt-smeta__row--subgroup td,
.proekt-smeta--structure-edit tbody .proekt-smeta__row--selected.proekt-smeta__row--group td {
    background-color: rgba(196, 92, 38, 0.12);
}

.proekt-smeta--structure-edit tbody .proekt-smeta__row--group-pending.proekt-smeta__row--position td,
.proekt-smeta--structure-edit tbody .proekt-smeta__row--group-pending.proekt-smeta__row--subgroup td,
.proekt-smeta--structure-edit tbody .proekt-smeta__row--group-pending.proekt-smeta__row--group td {
    background-color: rgba(196, 92, 38, 0.18);
}

.proekt-smeta--structure-edit tbody .proekt-smeta__row--selected td[data-col="number"],
.proekt-smeta--structure-edit tbody .proekt-smeta__row--group-pending td[data-col="number"] {
    box-shadow: inset 4px 0 0 var(--color-primary, #c45c26);
}

.proekt-smeta-unit-suggestions {
    margin: 0;
    max-height: 240px;
}

.proekt-smeta__row--totals td {
    font-weight: 700;
    background: #f9fafb;
}

.proekt-smeta__row--vat-setting td,
.proekt-smeta__row--vat-totals td {
    background: #f9fafb;
}

.proekt-smeta__row--vat-setting td[data-col="name"],
.proekt-smeta__row--vat-totals td[data-col="name"],
.proekt-smeta__row--vat-setting td:nth-child(2),
.proekt-smeta__row--vat-totals td:nth-child(2) {
    font-weight: 600;
}

.proekt-smeta__vat-control {
    text-align: center;
}

.proekt-smeta__vat-checkbox {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.proekt-smeta__vat-checkbox input {
    width: 1rem;
    height: 1rem;
    cursor: pointer;
}

.proekt-smeta__vat-change-banner {
    margin: 0 0 1rem;
}

.proekt-smeta__vat-rate {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.25rem 2rem 0.25rem 0.35rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.25rem;
    background: #fff;
    font-size: 0.8125rem;
    cursor: pointer;
}

.proekt-smeta td[data-vat-cell] {
    text-align: right;
    font-weight: 700;
}

.proekt-smeta__tfoot .proekt-smeta__row--total-all td:not(.proekt-smeta__sticky-col) {
    background-color: #faefe8;
}

.proekt-smeta-filter {
    position: relative;
}

.proekt-smeta-filter__toggle {
    width: 100%;
    padding: 0.25rem 0.5rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.25rem;
    background: #fff;
    font-size: 0.75rem;
    cursor: pointer;
}

.proekt-smeta-filter__toggle--active {
    border-color: #7c4dff;
    background: var(--proekt-smeta-filter-active-bg, rgba(124, 77, 255, 0.16));
    color: #4b2ea7;
    font-weight: 600;
}

.proekt-smeta-filter__panel {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 0;
    z-index: 20;
    min-width: 12rem;
    max-width: 18rem;
    max-height: 14rem;
    overflow: auto;
    padding: 0.5rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.375rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

.proekt-smeta-filter__actions {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.proekt-smeta-filter__actions button {
    padding: 0;
    border: none;
    background: none;
    color: var(--color-primary-dark);
    font-size: 0.75rem;
    cursor: pointer;
    text-decoration: underline;
}

.proekt-smeta-filter__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.proekt-smeta-filter__item + .proekt-smeta-filter__item {
    margin-top: 0.35rem;
}

.proekt-smeta-filter__label {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    font-weight: 400;
    white-space: normal;
}

.proekt-smeta__thead--with-akty .proekt-akt__toolbar,
.proekt-smeta__thead--with-akty .proekt-akt__date-cell,
.proekt-smeta__thead--with-akty .proekt-akt__avans-cell,
.proekt-smeta__thead--with-akty .proekt-akt__col-head {
    background: #e8eef5;
}

.proekt-smeta__head-row--akt-cols .proekt-smeta__akt-align-pad.proekt-smeta__sticky-col {
    background: #e8eef5;
    z-index: 25;
}

.proekt-akt__toolbar-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 100%;
}

.proekt-akt__title-row {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.5rem;
    max-width: 100%;
}

.proekt-akt__pending-badge {
    flex-shrink: 0;
}

.proekt-akt__date-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    width: 100%;
    height: 100%;
    margin: 0;
    font-weight: 400;
    font-size: 0.75rem;
}

.proekt-akt__avans-cell {
    vertical-align: middle;
    padding: 0.25rem 0.35rem;
    font-weight: 400;
    font-size: 0.75rem;
}

.proekt-akt__avans-cell--label {
    text-align: right;
    white-space: nowrap;
}

.proekt-akt__avans-cell--value {
    text-align: left;
    overflow: hidden;
}

.proekt-akt__avans-value {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.2rem;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.proekt-akt__avans-caption {
    white-space: nowrap;
}

.proekt-akt__avans-input {
    box-sizing: border-box;
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    max-width: none;
    padding: 0.2rem 0.35rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.25rem;
    background: #fff;
    font-size: 0.8125rem;
    line-height: 1.2;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.proekt-akt__avans-input:focus-visible {
    outline: 2px solid rgba(196, 92, 38, 0.35);
    outline-offset: 1px;
}

.proekt-akt__avans-readonly {
    flex: 1 1 0;
    min-width: 0;
    font-size: 0.8125rem;
    line-height: 1.2;
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.proekt-akt__avans-suffix {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.6875rem;
    line-height: 1.1;
    text-align: center;
}

.proekt-akt__avans-suffix-line {
    display: block;
}

.proekt-akt__avans-cell--summary {
    padding: 0.25rem 0.35rem;
}

.proekt-smeta__thead--with-akty .proekt-smeta__head-row--akt-avans .proekt-akt__avans-cell--summary {
    background: #f5f7fa;
}

.proekt-akt__avans-cell--remain {
    padding: 0 !important;
}

.proekt-smeta__head-row--akt-avans .proekt-akt__avans-cell--remain {
    border-left-width: 2px;
    border-left-color: #b8b8b8;
}

.proekt-akt__avans-total {
    display: block;
    width: 100%;
}

.proekt-smeta thead .proekt-smeta-filter {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 1.75rem;
}

.proekt-smeta thead .proekt-smeta-filter__toggle {
    width: auto;
}

.proekt-akt__number {
    font-size: 1.05rem;
    font-weight: 700;
    white-space: nowrap;
}

.proekt-akt__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}

.proekt-akt__actions .kontragent-actions__btn {
    width: auto;
    min-width: 100px;
}

.proekt-akt__save-form,
.proekt-akt__delete-form,
.proekt-akt__clear-form {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
}

.proekt-smeta__akt-align-pad {
    background: #eef1f5;
}

.proekt-akt__footer-hidden {
    padding: 0 !important;
    height: 0;
    line-height: 0;
    font-size: 0;
    border-top: none !important;
    border-bottom: none !important;
    background: #f9fafb;
    overflow: hidden;
}

.proekt-smeta__row--vat-setting:has(.proekt-akt__footer-hidden) td:nth-child(2),
.proekt-smeta__row--vat-setting:has(.proekt-akt__footer-hidden) td:nth-child(3) {
    border-bottom: none;
}

.proekt-akt__col-head {
    font-weight: 700;
}

.proekt-akt__dash {
    color: #6b7280;
}

.proekt-akt__footer-label {
    font-weight: 600;
    text-align: left;
    vertical-align: middle;
}

.proekt-akt__footer-caption {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.proekt-smeta .proekt-akt__total-base,
.proekt-smeta .proekt-akt__vat-amount,
.proekt-smeta .proekt-akt__total-with-vat {
    font-weight: 700;
}

.proekt-akt__date-input {
    width: 100%;
    min-width: 8.5rem;
    padding: 0.25rem 0.35rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.25rem;
    font: inherit;
}

.proekt-akt__cols-title {
    text-align: center;
}

.proekt-akt__qty {
    text-align: right;
    vertical-align: middle;
}

.proekt-akt__qty-input {
    width: 100%;
    min-width: 4.5rem;
    max-width: 7rem;
    padding: 0.25rem 0.35rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.25rem;
    font: inherit;
    text-align: right;
}

.proekt-akt__sum {
    white-space: nowrap;
}

.proekt-smeta td[data-col="akt_qty"],
.proekt-smeta td[data-col="akt_sum"] {
    background: #fff;
}

.proekt-smeta__row--group td[data-col="akt_qty"],
.proekt-smeta__row--group td[data-col="akt_sum"] {
    background: var(--proekt-smeta-group-bg);
}

.proekt-smeta__row--subgroup td[data-col="akt_qty"],
.proekt-smeta__row--subgroup td[data-col="akt_sum"] {
    background: var(--proekt-smeta-subgroup-bg);
}

/* Section separators: smeta | act N | totals | remainder */
.proekt-smeta th.proekt-akt__toolbar,
.proekt-smeta td[data-col="akt_qty"],
.proekt-smeta tfoot .proekt-akt__footer-label {
    border-left-width: 2px;
    border-left-color: #b8b8b8;
}

.proekt-smeta__head-row--sub .proekt-akt__date-cell:nth-child(odd),
.proekt-smeta__head-row--akt-avans .proekt-akt__avans-cell--label,
.proekt-smeta__head-row--akt-cols .proekt-akt__col-head--qty {
    border-left-width: 2px;
    border-left-color: #b8b8b8;
}

.proekt-smeta__row--vat-setting .proekt-akt__footer-hidden {
    border-left-width: 2px;
    border-left-color: #b8b8b8;
}

.proekt-smeta__head-row > .proekt-smeta__summary-head,
.proekt-smeta td[data-col="summary_done_qty"],
.proekt-smeta td[data-col="summary_remain_qty"] {
    border-left-width: 2px;
    border-left-color: #b8b8b8;
}

.proekt-smeta__head-row--akt-cols .proekt-smeta__summary-head {
    border-left-width: 1px;
    border-left-color: var(--color-border, #d9dee7);
}

.proekt-smeta__head-row--akt-cols .proekt-smeta__summary-head:nth-last-child(4),
.proekt-smeta__head-row--akt-cols .proekt-smeta__summary-head:nth-last-child(2) {
    border-left-width: 2px;
    border-left-color: #b8b8b8;
}

.proekt-smeta__filter-row th:has(.proekt-smeta-filter[data-filter-column="akt_qty"]),
.proekt-smeta__filter-row th:has(.proekt-smeta-filter[data-filter-column="summary_done_qty"]),
.proekt-smeta__filter-row th:has(.proekt-smeta-filter[data-filter-column="summary_remain_qty"]) {
    border-left-width: 2px;
    border-left-color: #b8b8b8;
}

.proekt-smeta__summary-head,
.proekt-smeta__summary-pad {
    background: #f5f7fa;
    vertical-align: middle;
}

.proekt-smeta__thead--with-akty .proekt-smeta__head-row--akt-cols .proekt-smeta__summary-head {
    background: #f5f7fa;
}

.proekt-smeta td.proekt-smeta__summary-cell {
    text-align: right;
    white-space: nowrap;
}

.proekt-smeta td.proekt-smeta__summary-cell--negative {
    background: rgba(198, 40, 40, 0.12);
    color: #b71c1c;
    font-weight: 600;
}

.proekt-smeta__row--group td.proekt-smeta__summary-cell--negative,
.proekt-smeta__row--subgroup td.proekt-smeta__summary-cell--negative {
    background: rgba(198, 40, 40, 0.12);
}

.proekt-smeta__row--collapsed-warning td[data-col="summary_remain_qty"],
.proekt-smeta__row--collapsed-warning td[data-col="summary_remain_sum"] {
    color: #c62828;
    font-weight: 700;
}

.proekt-smeta .proekt-smeta__summary-total-done,
.proekt-smeta .proekt-smeta__summary-total-remain {
    text-align: right;
}

.btn--small {
    padding: 0.35rem 0.75rem;
    font-size: 0.875rem;
}

/* ── Responsive ── */

@media (max-width: 960px) {
    .proekt-work__templates-row {
        grid-template-columns: 1fr;
    }

    .kontragent-result .kontragent-actions__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .header {
        flex-wrap: wrap;
        text-align: center;
        padding: 0.5rem 1rem;
    }

    .header__brand {
        justify-content: center;
        width: 100%;
    }

    .header__logo-emblem,
    .header__logo-icon,
    .header__logo-image {
        height: 48px;
    }

    .header__actions {
        flex-direction: column;
        align-items: flex-end;
        gap: 0.75rem;
        width: 100%;
        margin-left: 0;
        padding-block: 0.75rem;
    }

    .header__company {
        align-items: center;
        max-width: 100%;
        text-align: center;
    }

    .header__menu {
        align-self: center;
    }

    .header__menu-dropdown {
        left: 50%;
        right: auto;
        transform: translate(-50%, -10px);
    }

    .header__menu-dropdown--open {
        transform: translate(-50%, 0);
    }

    .main {
        padding: 2rem 1rem;
    }

    .footer {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
        padding: 0.75rem 1rem;
    }

    .footer__nav {
        grid-column: auto;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 0.5rem;
    }

    .footer__copy {
        grid-column: auto;
        justify-self: auto;
        text-align: left;
    }

    .cabinet-search:not(.kontragent-overlay__search) .cabinet-search__row {
        flex-direction: column;
    }

    .cabinet-search:not(.kontragent-overlay__search) .cabinet-search__btn,
    .cabinet-search:not(.kontragent-overlay__search) .kontragent-overlay__close {
        width: 100%;
    }

    .kontragent-section {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .kontragent-overlay,
    .kontragent-list {
        grid-area: unset;
    }

    .kontragent-overlay {
        position: static;
        z-index: auto;
    }

    .kontragent-list {
        padding-top: 0;
        z-index: auto;
    }

    .kontragent-overlay__search .cabinet-search__row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.5rem 0.75rem;
        align-items: stretch;
    }

    .kontragent-overlay__search .cabinet-search__field,
    .kontragent-overlay__search .cabinet-search__row > .cabinet-search__input {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
    }

    .kontragent-overlay__search .cabinet-search__btn {
        grid-column: 1;
        width: auto;
        min-width: 0;
    }

    .kontragent-overlay__search .kontragent-overlay__close {
        grid-column: 2;
        width: 44px;
        min-width: 44px;
        flex: none;
    }

    .entity-section__create {
        margin-top: 0;
    }

    .kontragent-result__row {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

    .kontragent-result .kontragent-actions__grid {
        grid-template-columns: 1fr;
    }

    .kontragent-result .kontragent-actions__btn {
        width: 100%;
        min-width: 0;
    }
}

body.proekt-ks3-modal-open {
    overflow: hidden;
}

.proekt-ks3-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.proekt-ks3-modal[hidden] {
    display: none;
}

.proekt-ks3-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
}

.proekt-ks3-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(96vw, 480px);
    max-height: min(92vh, 720px);
    overflow: auto;
    border-radius: 0.75rem;
    background: var(--color-surface, #fff);
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
}

.proekt-ks3-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--color-border, #d9dee7);
}

.proekt-ks3-modal__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
}

.proekt-ks3-modal__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 0.375rem;
    background: transparent;
    color: inherit;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}

.proekt-ks3-modal__close:hover {
    background: rgba(15, 23, 42, 0.06);
}

.proekt-ks3-modal__form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem;
}

.proekt-ks3-modal__fields {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.proekt-ks3-modal__field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.proekt-ks3-modal__label {
    font-size: 0.9rem;
    font-weight: 500;
}

.proekt-ks3-modal__required {
    color: #b42318;
}

.proekt-ks3-modal__input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: 0.375rem;
    font: inherit;
}

.proekt-ks3-modal__input--invalid {
    border-color: #b42318;
}

.proekt-ks3-modal__hint {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted, #64748b);
}

.proekt-ks3-modal__error,
.proekt-ks3-modal__form-error {
    margin: 0;
    font-size: 0.8125rem;
    color: #b42318;
}

.proekt-ks3-modal__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 0.25rem;
}

.workspace-invite {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.workspace-invite__title {
    margin: 0 0 0.5rem;
    font-size: 1rem;
}

.workspace-invite__hint {
    margin-top: 0;
}

.workspace-invite__field {
    max-width: 36rem;
}

.workspace-invite__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.875rem;
}

.cabinet--sotrudniki .sotrudniki-tabs {
    margin: 0 0 1rem;
}

.kontragenti-section .kontragenti-tabs {
    margin: 0 0 1rem;
}

.kontragent-list__row--my-company,
.moi-kompanii-list__row.kontragent-list__row--my-company {
    background: color-mix(in srgb, var(--color-borux-green) 16%, #fff);
}

.kontragent-list__row--my-company:hover,
.kontragent-list__row--my-company:focus-visible,
.moi-kompanii-list__row.kontragent-list__row--my-company:hover,
.moi-kompanii-list__row.kontragent-list__row--my-company:focus-visible {
    background: color-mix(in srgb, var(--color-borux-green) 26%, #fff);
}

.data-table tbody tr.kontragent-list__row--my-company:hover {
    background: color-mix(in srgb, var(--color-borux-green) 26%, #fff);
}

.workspace-members-search,
.employee-cabinet__workspace-search {
    margin-bottom: 1.25rem;
}

.workspace-revoke-form {
    margin: 0;
}

.workspace-role-form {
    margin: 0;
}

.workspace-member-fio-form {
    margin: 0;
}

.workspace-member-fio-form__row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 14rem;
}

.workspace-member-fio-form__input {
    width: 100%;
    min-width: 12rem;
    max-width: 18rem;
    padding: 0.35rem 0.5rem;
    font-size: 0.875rem;
}

.workspace-member-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.workspace-role-form__select {
    min-width: 9rem;
    max-width: 100%;
    padding: 0.35rem 0.5rem;
    font-size: 0.875rem;
}

.employee-cabinet__block + .employee-cabinet__block {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
}

.employee-cabinet__subtitle {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.employee-cabinet__return {
    margin-bottom: 1rem;
}

.employee-cabinet__invites {
    display: grid;
    gap: 1rem;
}

.employee-cabinet__invite-card {
    padding: 1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: #fff;
}

.employee-cabinet__invite-text {
    margin: 0 0 0.75rem;
}

.employee-cabinet__field {
    max-width: 36rem;
    margin-bottom: 0.75rem;
}

.employee-cabinet__field .cabinet-search__input {
    width: 100%;
}

.employee-cabinet__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.875rem;
}

.employee-cabinet__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.employee-cabinet__accept-form,
.employee-cabinet__decline-form,
.employee-cabinet__inline-form {
    margin: 0;
}

.employee-cabinet__workspace-label-text {
    font-weight: 600;
}

.employee-cabinet__workspace-name-cell .employee-cabinet__workspace-label-input {
    width: 100%;
    min-width: 10rem;
    max-width: 100%;
}

.employee-cabinet__workspace-row.employee-cabinet__workspace-label--editing .employee-cabinet__workspace-label-text {
    display: none;
}

.employee-cabinet__workspace-label-form {
    display: none;
    margin: 0;
}

.employee-cabinet__workspace-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.employee-cabinet__current-badge {
    font-size: 0.8125rem;
    color: var(--color-text-muted, #64748b);
}

.employee-cabinet__intro {
    margin-top: 0;
}

.header__menu-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: var(--color-primary);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1;
}

.activity-log__hint {
    margin: 0 0 1rem;
}

.activity-log__table-wrap {
    margin-top: 0.5rem;
}

.activity-log__filter-row th {
    vertical-align: top;
    padding-top: 0.35rem;
    padding-bottom: 0.75rem;
}

.form-field__input--table {
    width: 100%;
    min-width: 0;
    padding: 0.35rem 0.5rem;
    font-size: 0.8125rem;
}

.activity-log__filter-stack {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.activity-log__date-filters {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 0.35rem;
    row-gap: 0.35rem;
    align-items: center;
}

.activity-log__date-filter {
    display: contents;
    margin: 0;
}

.activity-log__date-filter-label {
    justify-self: end;
    font-size: 0.8125rem;
    color: var(--color-text-muted, #666);
    text-align: right;
    white-space: nowrap;
}

.activity-log__date-filter .form-field__input--table {
    width: 100%;
    min-width: 0;
}

.activity-log__filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.activity-log__action-key {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: var(--color-text-muted, #666);
}

.activity-log__details {
    max-width: 14rem;
    white-space: normal;
    word-break: break-word;
    font-size: 0.875rem;
}

.activity-log__details-link {
    display: inline;
    padding: 0;
    border: 0;
    background: none;
    color: var(--color-link, #1a5fb4);
    font: inherit;
    text-align: left;
    text-decoration: underline;
    cursor: pointer;
}

.activity-log__details-link:hover {
    color: var(--color-link-hover, #0d3d7a);
}

.activity-log__empty {
    text-align: center;
    color: var(--color-text-muted, #666);
}

body.activity-log-modal-open {
    overflow: hidden;
}

.activity-log-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.activity-log-modal[hidden] {
    display: none;
}

.activity-log-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
}

.activity-log-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(42rem, 100%);
    max-height: min(80vh, 40rem);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, 0.2);
}

.activity-log-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.activity-log-modal__title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
}

.activity-log-modal__close {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 0.375rem;
    background: transparent;
    color: var(--color-text-muted, #64748b);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.activity-log-modal__close:hover {
    background: var(--color-surface-muted, #f1f5f9);
    color: var(--color-text, #0f172a);
}

.activity-log-modal__body {
    overflow: auto;
    padding: 1rem 1.25rem 1.25rem;
}

.activity-log-modal__list {
    margin: 0;
}

.activity-log-modal__row {
    display: grid;
    grid-template-columns: minmax(8rem, 35%) 1fr;
    gap: 0.5rem 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.activity-log-modal__row:last-child {
    border-bottom: 0;
}

.activity-log-modal__label {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-muted, #64748b);
}

.activity-log-modal__value {
    margin: 0;
    font-size: 0.9375rem;
    white-space: pre-wrap;
    word-break: break-word;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.phone-field {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    width: 100%;
}

.phone-field__country {
    flex: 0 0 auto;
    min-width: 8.5rem;
    max-width: 42%;
}

.phone-field__national {
    flex: 1 1 auto;
    min-width: 0;
}

.phone-field__national::placeholder {
    color: #d8d4cf;
    opacity: 1;
}

@media (max-width: 520px) {
    .phone-field {
        flex-direction: column;
    }

    .phone-field__country {
        max-width: none;
        width: 100%;
    }
}

body.entity-create-modal-open {
    overflow: hidden;
}

.entity-create-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.entity-create-modal[hidden] {
    display: none !important;
    pointer-events: none !important;
}

.entity-create-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(26, 24, 22, 0.45);
}

.entity-create-modal__dialog {
    position: relative;
    width: min(100%, 32rem);
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 1rem 2.5rem rgba(26, 24, 22, 0.18);
}

.entity-create-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--color-border);
}

.entity-create-modal__title {
    margin: 0;
    font-size: 1.125rem;
}

.entity-create-modal__close {
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--color-text-muted);
}

.entity-create-modal__body {
    padding: 1.25rem;
}

.entity-create-modal__label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.entity-create-modal__label + .entity-create-modal__select,
.entity-create-modal__label + .cabinet-search__field {
    margin-bottom: 1rem;
}

.entity-create-modal__input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.6875rem 0.875rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 1rem;
    font-family: inherit;
    line-height: 1.35;
    color: var(--color-text);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.entity-create-modal__input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(196, 92, 38, 0.15);
}

.entity-create-modal__select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 2.5rem;
    cursor: pointer;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b6560' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.875rem center;
    background-size: 1rem;
}

.entity-create-modal__select:disabled {
    cursor: default;
    color: var(--color-text-muted);
    background-color: color-mix(in srgb, var(--color-bg) 70%, #fff);
}

.entity-create-modal__hint {
    margin: 0.75rem 0 0;
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.entity-section__create {
    margin-top: 0.75rem;
    margin-bottom: 1rem;
}

.entity-section__overlay-create {
    margin-top: 1rem;
}

.chatboty-section__intro {
    margin-bottom: 1.25rem;
}

.chatboty-section__notice {
    margin-bottom: 1rem;
    color: var(--color-text-muted);
}

.chatboty-cards {
    display: grid;
    gap: 1rem;
}

.chatboty-card {
    border: 1px solid var(--color-border, #d8dee8);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    background: var(--color-surface, #fff);
}

.chatboty-card--disabled {
    opacity: 0.72;
}

.chatboty-card--linked {
    border-color: #8ec5a6;
}

.chatboty-card__header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem 1rem;
    align-items: start;
}

.chatboty-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: #fff;
    background: #5b6b7f;
}

.chatboty-card__icon--telegram {
    background: #2aabee;
}

.chatboty-card__icon--telegram::before {
    content: 'TG';
}

.chatboty-card__icon--whatsapp {
    background: #25d366;
}

.chatboty-card__icon--whatsapp::before {
    content: 'WA';
}

.chatboty-card__icon--max {
    background: #6b4eff;
}

.chatboty-card__icon--max::before {
    content: 'MX';
}

.chatboty-card__title {
    margin: 0;
    font-size: 1.05rem;
}

.chatboty-card__description {
    margin: 0.25rem 0 0;
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.chatboty-card__status {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.chatboty-card--linked .chatboty-card__status {
    color: #1f7a45;
}

.chatboty-card__meta {
    display: grid;
    gap: 0.35rem;
    margin: 1rem 0 0;
    padding: 0;
}

.chatboty-card__meta-row {
    display: grid;
    grid-template-columns: 8.5rem 1fr;
    gap: 0.75rem;
    font-size: 0.875rem;
}

.chatboty-card__meta-row dt {
    margin: 0;
    color: var(--color-text-muted);
}

.chatboty-card__meta-row dd {
    margin: 0;
}

.chatboty-card__bot {
    margin: 0;
}

.chatboty-card__bot-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    align-items: baseline;
}

.chatboty-card__bot-loading {
    color: var(--color-text-muted);
    font-style: italic;
}

.chatboty-card__bot-empty {
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.4;
}

.chatboty-card__bot-badge {
    display: inline-block;
    font-size: 0.75rem;
    line-height: 1.25;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    color: var(--color-text-muted);
    background: color-mix(in srgb, var(--color-text-muted) 12%, transparent);
    white-space: nowrap;
}

.chatboty-card__bot-inner--api .chatboty-card__bot-badge {
    color: var(--color-success, #1a7f37);
    background: color-mix(in srgb, var(--color-success, #1a7f37) 14%, transparent);
}

.chatboty-card__bot-link {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
    user-select: all;
}

.chatboty-card__bot-link:hover {
    text-decoration: underline;
}

.chatboty-card__bot-name {
    color: var(--color-text-muted);
}

.chatboty-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-top: 1rem;
}

.chatboty-card__deactivate,
.chatboty-card__notifications {
    margin: 0;
}

.chatboty-card__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.chatboty-card__code-panel {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background: #f4f7fb;
}

.chatboty-card__code-label {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.chatboty-card__code-value {
    margin: 0.35rem 0 0;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.chatboty-card__code-hint {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.header__billing {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    font-size: 0.75rem;
    line-height: 1.35;
    color: rgba(248, 246, 243, 0.92);
    max-width: min(220px, 28vw);
}

.header__billing-line {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center;
}

.header__billing-line--label {
    align-self: stretch;
}

.header__billing-line--plan {
    font-weight: 700;
    color: var(--color-header-text);
}

.header__billing-line--countdown {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

.header__billing--expired .header__billing-line {
    color: #ffd2d2;
}

.billing-section__summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.billing-section__card {
    padding: 1rem 1.25rem;
    border: 1px solid var(--color-border, #d8dee8);
    border-radius: var(--radius, 0.5rem);
    background: #fff;
}

.billing-section__card-title {
    margin: 0 0 0.5rem;
    font-size: 0.9375rem;
    color: var(--color-text-muted);
    font-weight: 600;
}

.billing-section__plan-name,
.billing-section__price {
    margin: 0;
    font-size: 1.375rem;
    font-weight: 700;
}

.billing-section__meta {
    margin: 0.35rem 0 0;
    font-size: 0.875rem;
}

.billing-section__countdown {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

.billing-section__countdown--expired {
    color: #b42318;
}

.billing-section__meta--muted {
    color: var(--color-text-muted);
}

.billing-section__limits-title {
    margin: 0 0 0.75rem;
    font-size: 1.0625rem;
}

.billing-section__row--overflow td {
    background: #fff4f4;
}

.oplata-section__intro {
    max-width: 42rem;
}

.oplata-section__notice {
    color: var(--color-text-muted);
}

.billing-readonly-banner {
    position: fixed;
    inset: 0 0 auto;
    z-index: 210;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 1rem;
    border: none;
    border-radius: 0;
    background: transparent;
    color: var(--color-notice-text, #6a4f00);
    box-sizing: border-box;
    pointer-events: none;
}

.billing-readonly-banner[hidden] {
    display: none;
}

.billing-readonly-banner__panel {
    pointer-events: auto;
    width: 100%;
    max-width: 56rem;
    margin: 0 auto;
    padding: 0.875rem 1rem;
    border: 1px solid var(--color-notice-border, #f0d58b);
    border-radius: var(--radius, 0.5rem);
    background: var(--color-notice-bg, #fff8e8);
    box-shadow: var(--shadow-md);
    box-sizing: border-box;
}

.billing-readonly-banner__text {
    margin: 0;
    line-height: 1.5;
}

.billing-readonly-banner__actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.75rem 0 0;
}

.billing-readonly-banner__actions .btn {
    width: 140px;
    min-width: 100px;
    max-width: 150px;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    text-align: center;
    box-sizing: border-box;
}

.billing-readonly-banner__dismiss {
    margin-left: auto;
}

.billing-section__readonly-text {
    margin: 0;
}

.billing-section__readonly-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0.75rem 0 0;
}

.billing-section__readonly-actions .btn {
    width: 140px;
    min-width: 100px;
    max-width: 150px;
    text-align: center;
    box-sizing: border-box;
}

@media (max-width: 520px) {
    .billing-readonly-banner {
        padding: 0.75rem;
    }

    .billing-readonly-banner__actions,
    .billing-section__readonly-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .billing-readonly-banner__actions .btn {
        width: 100%;
        max-width: none;
    }

    .billing-readonly-banner__dismiss {
        margin-left: 0;
    }
}

.oplata-section__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.oplata-section__card {
    padding: 1rem 1.125rem;
    border: 1px solid var(--color-border, #d8dee8);
    border-radius: var(--radius, 0.5rem);
    background: var(--color-surface, #fff);
}

.oplata-section__card--selected {
    border-color: var(--color-primary, #2563eb);
    box-shadow: 0 0 0 1px var(--color-primary, #2563eb);
}

.oplata-section__card-title,
.oplata-section__request-title {
    margin: 0 0 0.5rem;
    font-size: 0.9375rem;
    font-weight: 600;
}

.oplata-section__plan-name {
    margin: 0 0 0.375rem;
    font-size: 1.125rem;
    font-weight: 600;
}

.oplata-section__price {
    margin: 0.5rem 0 0;
    font-size: 1.0625rem;
    font-weight: 600;
}

.oplata-section__meta {
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
}

.oplata-section__meta--muted {
    color: var(--color-text-muted);
}

.oplata-section__countdown {
    font-variant-numeric: tabular-nums;
}

.oplata-section__pay,
.oplata-section__request {
    max-width: 36rem;
}

.oplata-section__pay {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-border);
}

.payment-mock,
.payment-return {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
}

.payment-mock__card,
.payment-return__card {
    text-align: left;
}

.payment-mock__summary,
.payment-return__summary {
    margin: 0 0 1.25rem;
}

.payment-mock__row,
.payment-return__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin: 0.5rem 0;
    font-size: 0.9375rem;
}

.payment-mock__row dt,
.payment-return__row dt {
    margin: 0;
    color: var(--color-text-muted);
}

.payment-mock__row dd,
.payment-return__row dd {
    margin: 0;
    text-align: right;
}

.payment-mock__actions,
.payment-return__actions {
    display: grid;
    gap: 0.5rem;
}

.admin-acquiring-radios {
    border: 0;
    margin: 0 0 1rem;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.admin-acquiring-radios .admin-settings-toggle {
    margin-bottom: 0;
}

.admin-acquiring-panel {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}

.admin-acquiring-panel[hidden] {
    display: none;
}

.oplata-section__form {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.oplata-section__autopay {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.9375rem;
    line-height: 1.4;
    cursor: pointer;
}

.oplata-section__autopay input {
    margin-top: 0.2rem;
}

.billing-section__autopay-form {
    margin-top: 0.75rem;
}

.billing-section__pay-link {
    margin-bottom: 1rem;
}

.billing-section__autopay-toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    cursor: pointer;
}

.billing-section__autopay-toggle input {
    margin-top: 0.2rem;
}

.platezhi-section__intro {
    margin-bottom: 1rem;
}

.platezhi-section__provider {
    color: var(--color-muted, #666);
    font-size: 0.875rem;
}

.platezhi-section__pagination {
    margin-top: 1rem;
}

.admin-plan-form {
    margin-bottom: 1.5rem;
}

.admin-plan-form__selector {
    max-width: 24rem;
    margin-bottom: 1.25rem;
}

.admin-plan-form__key {
    font-size: 0.8125rem;
    font-weight: normal;
    margin-left: 0.5rem;
}

.admin-plan-form__limits-title {
    margin: 1rem 0 0.5rem;
    font-size: 1rem;
}

.admin-plan-form__limits-table td {
    vertical-align: middle;
}

.admin-plan-form__limits-table .form-field__input {
    margin: 0;
}

.admin-plan-form__submit {
    margin-top: 1.25rem;
}

.admin-plans-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1.25rem;
}

.admin-plans-tabs__link {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    color: var(--color-text);
    text-decoration: none;
    background: var(--color-surface, #fff);
}

.admin-plans-tabs__link--active {
    border-color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface, #fff));
    color: var(--color-primary-dark, var(--color-primary));
    font-weight: 600;
}

.admin-plans-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.admin-plans-form__sort-input {
    width: 5.5rem;
}

.admin-plans-form__toggle-cell {
    text-align: center;
    white-space: nowrap;
}

.admin-plans-form__delete-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.admin-plan-card + .admin-plan-card {
    margin-top: 1.25rem;
}

.admin-plan-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.admin-plan-card__grid {
    margin-bottom: 0.75rem;
}

.admin-plan-card__toggles {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.admin-menu-table-wrap {
    overflow-x: auto;
    margin: 0 0 1.25rem;
}

.admin-menu-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
}

.admin-menu-table th,
.admin-menu-table td {
    border: 1px solid var(--color-border);
    padding: 0.45rem 0.55rem;
    text-align: left;
    vertical-align: middle;
}

.admin-menu-table thead th {
    background: var(--color-bg);
    font-weight: 600;
    font-size: 0.875rem;
    white-space: nowrap;
}

.admin-menu-table__col-priority {
    width: 5.5rem;
    text-align: center;
}

.admin-menu-table__col-start {
    width: 4rem;
    text-align: center;
}

.admin-menu-table__type {
    width: 5.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    white-space: nowrap;
}

.admin-menu-table__key {
    width: 10rem;
    white-space: nowrap;
}

.admin-menu-table__title-input {
    width: 100%;
    min-width: 10rem;
    box-sizing: border-box;
}

.admin-menu-table__priority-input {
    width: 4.75rem;
    max-width: 4.75rem;
    box-sizing: border-box;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.admin-menu-table__start {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    cursor: pointer;
}

.admin-menu-table__start input {
    margin: 0;
    cursor: pointer;
}

.admin-menu-table__row {
    border-left: 4px solid transparent;
}

.admin-menu-table__row--group td {
    font-weight: 600;
}

.admin-menu-table__row--group .admin-menu-table__title-input,
.admin-menu-table__row--group .admin-menu-table__priority-input {
    font-weight: 600;
}

.admin-menu-table__row[data-tone="0"] {
    background: color-mix(in srgb, #d97706 12%, var(--color-surface));
    border-left-color: #d97706;
}

.admin-menu-table__row--item[data-tone="0"] {
    background: color-mix(in srgb, #d97706 5%, var(--color-surface));
}

.admin-menu-table__row[data-tone="1"] {
    background: color-mix(in srgb, #2563eb 12%, var(--color-surface));
    border-left-color: #2563eb;
}

.admin-menu-table__row--item[data-tone="1"] {
    background: color-mix(in srgb, #2563eb 5%, var(--color-surface));
}

.admin-menu-table__row[data-tone="2"] {
    background: color-mix(in srgb, #059669 12%, var(--color-surface));
    border-left-color: #059669;
}

.admin-menu-table__row--item[data-tone="2"] {
    background: color-mix(in srgb, #059669 5%, var(--color-surface));
}

.admin-menu-table__row[data-tone="3"] {
    background: color-mix(in srgb, #7c3aed 12%, var(--color-surface));
    border-left-color: #7c3aed;
}

.admin-menu-table__row--item[data-tone="3"] {
    background: color-mix(in srgb, #7c3aed 5%, var(--color-surface));
}

.admin-menu-table__row[data-tone="4"] {
    background: color-mix(in srgb, #db2777 12%, var(--color-surface));
    border-left-color: #db2777;
}

.admin-menu-table__row--item[data-tone="4"] {
    background: color-mix(in srgb, #db2777 5%, var(--color-surface));
}

.admin-menu-table__row[data-tone="5"] {
    background: color-mix(in srgb, #0f766e 12%, var(--color-surface));
    border-left-color: #0f766e;
}

.admin-menu-table__row--item[data-tone="5"] {
    background: color-mix(in srgb, #0f766e 5%, var(--color-surface));
}

.contacts-page__card,
.obrasheniya-section {
    max-width: 56rem;
}

.contacts-page__subtitle,
.obrasheniya-ticket__subtitle {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.contacts-page__info + .contacts-page__feedback {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}

.contacts-page__list {
    margin: 0;
}

.contacts-page__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem 1.5rem;
    padding: 0.35rem 0;
}

.contacts-page__row dt {
    flex: 0 0 auto;
    margin: 0;
    color: var(--color-text-muted, #64748b);
}

.contacts-page__row dd {
    flex: 1 1 auto;
    margin: 0;
    text-align: right;
    overflow-wrap: normal;
    word-break: normal;
}

.contacts-page__row dd a[href^="tel:"] {
    white-space: nowrap;
}

.contacts-page__textarea,
.obrasheniya-ticket__textarea {
    min-height: 8rem;
    resize: vertical;
}

.contacts-page__form {
    margin-top: 1rem;
}

.contacts-page__form .form-field + .form-field {
    margin-top: 1rem;
}

.contacts-page__form .btn {
    display: inline-block;
    margin-top: 1.25rem;
}

.legal-page__card {
    max-width: 52rem;
    margin: 0 auto;
}

.legal-page__title {
    margin: 0 0 0.5rem;
    font-size: 1.5rem;
}

.legal-page__subtitle {
    margin: 0 0 0.75rem;
    font-size: 1.0625rem;
    line-height: 1.4;
}

.legal-page__meta {
    margin: 0 0 1.5rem;
    color: var(--color-text-muted, #666);
    font-size: 0.9375rem;
}

.legal-page__body {
    font-size: 0.9375rem;
    line-height: 1.65;
}

.legal-page__body p {
    margin: 0 0 1rem;
}

.legal-page__section-title {
    margin: 1.75rem 0 0.75rem;
    font-size: 1.125rem;
}

.legal-page__list {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
}

.legal-page__list > li + li {
    margin-top: 0.5rem;
}

.legal-page__list ul {
    margin: 0.5rem 0 0;
    padding-left: 1.25rem;
}

.legal-page__operator {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}

.auth__consents {
    margin: 1rem 0 0;
    padding: 0;
    border: 0;
}

.auth__consents-legend {
    margin-bottom: 0.75rem;
    padding: 0;
    font-size: 0.875rem;
    font-weight: 600;
}

.auth-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    margin-bottom: 0.75rem;
    cursor: pointer;
    font-size: 0.875rem;
    line-height: 1.45;
}

.auth-consent__input {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    margin-top: 0.15rem;
}

.auth-consent__text a {
    color: inherit;
}

.auth-consent--inline {
    margin: 0 0 1rem;
}

.password-field {
    display: grid;
    grid-template-columns: 1fr;
}

.password-field__input {
    grid-area: 1 / 1;
    width: 100%;
}

.password-field--with-tools .password-field__input {
    padding-right: 5.5rem;
}

.password-field--toggle-only .password-field__input {
    padding-right: 2.75rem;
}

.password-field__tools {
    grid-area: 1 / 1;
    display: flex;
    align-items: center;
    gap: 0.15rem;
    justify-self: end;
    align-self: center;
    margin-right: 0.35rem;
    pointer-events: none;
}

.password-field__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-muted, #64748b);
    cursor: pointer;
    padding: 0;
    pointer-events: auto;
}

.password-field__btn:hover,
.password-field__btn:focus-visible {
    color: var(--color-text, #0f172a);
    background: rgba(37, 99, 235, 0.08);
    outline: none;
}

.password-field__icon--hide {
    display: none;
}

.password-field__btn.is-visible .password-field__icon--show {
    display: none;
}

.password-field__btn.is-visible .password-field__icon--hide {
    display: block;
}

.password-field__dice {
    font-size: 0.85rem;
    line-height: 1;
    letter-spacing: -0.15em;
}

.account-section {
    display: grid;
    gap: 1.5rem;
}

.account-section__card {
    padding: 1.25rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 12px);
    background: var(--color-surface, #fff);
}

.account-section__title {
    margin: 0 0 0.75rem;
    font-size: 1.125rem;
}

.account-section__meta,
.account-section__hint {
    margin: 0 0 1rem;
    color: var(--color-text-muted, #64748b);
}

.account-section__form {
    display: grid;
    gap: 0.25rem;
}

.account-workspaces {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.account-workspaces__item {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    padding: 0.75rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
}

.account-workspaces__item--active {
    border-color: rgba(196, 92, 38, 0.35);
    background: rgba(196, 92, 38, 0.06);
}

.account-workspaces__rename {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    flex: 1 1 16rem;
    align-items: center;
}

.account-workspaces__badge {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-primary-dark, #8a2a22);
}

.account-workspace-orgs {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.account-workspace-orgs__item {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.workspace-invite__spaces {
    border: 0;
    margin: 1rem 0;
    padding: 0;
    display: grid;
    gap: 1rem;
}

.workspace-invite__steps {
    border: 0;
    margin: 1rem 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.workspace-invite__step {
    display: grid;
    gap: 0.35rem;
}

.workspace-invite__step-label {
    font-size: 0.875rem;
    color: var(--color-text-muted, #64748b);
}

.workspace-invite__step .cabinet-search__input:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    background: var(--color-bg, #f8fafc);
}

.workspace-invite__space {
    padding: 0.75rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    display: grid;
    gap: 0.5rem;
}

.workspace-invite__space-check,
.workspace-invite__org-check,
.workspace-invite__role {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.workspace-invite__orgs {
    display: grid;
    gap: 0.25rem;
}

.workspace-invite__orgs-caption {
    font-size: 0.75rem;
    color: var(--color-text-muted, #64748b);
}

.workspace-people {
    display: grid;
    gap: 1.25rem;
    margin-top: 1rem;
}

.workspace-person {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    padding: 0.75rem;
}

.workspace-person__head {
    display: flex;
    gap: 0.75rem;
    align-items: baseline;
    margin-bottom: 0.75rem;
}

.workspace-person__fio {
    color: var(--color-text-muted, #64748b);
}

.account-section__badge {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.account-section__badge--ok {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.account-section__badge--warn {
    background: rgba(245, 158, 11, 0.15);
    color: #b45309;
}

.obrasheniya-ticket__reply,
.obrasheniya-ticket__close {
    margin-top: 1rem;
}

.obrasheniya-ticket__reply .btn,
.obrasheniya-ticket__close-form .btn {
    margin-top: 1.25rem;
}

.obrasheniya-section__intro {
    margin-bottom: 1rem;
}

.obrasheniya-section__guid {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: var(--color-text-muted, #64748b);
}

.obrasheniya-ticket__header {
    margin-bottom: 1rem;
}

.obrasheniya-ticket__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted, #64748b);
}

.obrasheniya-ticket__thread,
.admin-support-thread {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.obrasheniya-message {
    padding: 0.875rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg);
}

.obrasheniya-message--support {
    background: rgba(196, 92, 38, 0.08);
    border-color: rgba(196, 92, 38, 0.25);
}

.obrasheniya-message--system {
    background: rgba(100, 116, 139, 0.08);
    font-style: italic;
}

.obrasheniya-message__header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
}

.obrasheniya-message__body {
    line-height: 1.5;
    white-space: normal;
}

.obrasheniya-ticket__close {
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}

.obrasheniya-rating {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
    border: 0;
}

.obrasheniya-rating__legend {
    width: 100%;
    margin-bottom: 0.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
}

.obrasheniya-rating__option {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    cursor: pointer;
}

.admin-support-filter {
    margin-bottom: 1rem;
}

.admin-support-reply {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}

.admin-support-reply .btn {
    margin-top: 1.25rem;
}

.admin-plan-form__active-toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 1rem;
    font-size: 0.9375rem;
    line-height: 1.4;
    cursor: pointer;
}

.admin-plan-form__active-toggle input {
    margin-top: 0.2rem;
}

.admin-maintenance-card {
    margin-top: 1.5rem;
}

.alert--warning {
    background: #fff8e8;
    border: 1px solid #f0d58b;
    color: #6a4f00;
}

.tarify {
    width: min(100%, 1200px);
}

.tarify__header {
    margin-bottom: 1.5rem;
    text-align: center;
}

.tarify__header-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.tarify-period-toggle {
    display: inline-flex;
    padding: 0.2rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface, #fff);
}

.tarify-period-toggle__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 5.5rem;
    padding: 0.45rem 1rem;
    border-radius: 999px;
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: 0.9375rem;
}

.tarify-period-toggle__btn--active {
    background: var(--color-primary);
    color: #fff;
    font-weight: 600;
}

.oplata-section__period-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.oplata-section__period-label {
    font-size: 0.9375rem;
    color: var(--color-text-muted);
}

.tarify-table__unavailable {
    color: var(--color-text-muted);
}

.tarify__title {
    margin: 0 0 0.75rem;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    color: var(--color-text);
}

.tarify__lead {
    margin: 0 auto;
    max-width: 42rem;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--color-text-muted);
}

.tarify__empty,
.tarify__note {
    margin: 0;
    text-align: center;
    color: var(--color-text-muted);
}

.tarify__note {
    margin-top: 1rem;
    font-size: 0.875rem;
}

.tarify-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--color-border, #d8dee8);
    border-radius: var(--radius, 0.5rem);
    background: var(--color-surface, #fff);
    box-shadow: var(--shadow-md);
}

.tarify-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.tarify-table th,
.tarify-table td {
    padding: 0.75rem 0.875rem;
    border-bottom: 1px solid var(--color-border, #d8dee8);
    text-align: center;
    vertical-align: middle;
}

.tarify-table thead th {
    background: #f7f9fc;
    border-bottom-width: 2px;
}

.tarify-table__label-col,
.tarify-table__row-label {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 11rem;
    text-align: left;
    background: #fff;
    font-weight: 600;
    color: var(--color-text);
}

.tarify-table thead .tarify-table__label-col {
    background: #f7f9fc;
}

.tarify-table__plan-col {
    min-width: 7.5rem;
}

.tarify-table__plan-col--current {
    background: #eef5ff;
}

.tarify-table thead .tarify-table__plan-col--current {
    background: #e3efff;
}

.tarify-table__current-badge {
    display: inline-block;
    margin-top: 0.375rem;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
    background: var(--color-primary, #2563eb);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.tarify-table__plan-name {
    display: block;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--color-primary-dark);
}

.tarify-table__row--highlight td {
    font-weight: 700;
    color: var(--color-primary-dark);
}

.tarify-table__row--action td {
    background: #fafbfd;
}

.tarify-table__subscribe {
    min-width: 7rem;
}

.tarify-table tbody tr:last-child th,
.tarify-table tbody tr:last-child td {
    border-bottom: none;
}

.oplata-section__selected-plan {
    margin-bottom: 0.75rem;
}

/* ── Admin ── */

.admin-main {
    align-items: flex-start;
    justify-content: center;
    padding-top: 1.5rem;
    padding-bottom: 2rem;
}

.admin-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem 1.5rem;
    background: var(--color-header-bg);
    color: var(--color-header-text);
    box-shadow: var(--shadow-sm);
}

.admin-header__brand {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.admin-header__title {
    color: inherit;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
}

.admin-header__email {
    font-size: 0.8125rem;
    opacity: 0.85;
}

.admin-header__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}

.admin-header__link {
    color: inherit;
    text-decoration: none;
    font-size: 0.875rem;
    opacity: 0.9;
}

.admin-header__link:hover,
.admin-header__link:focus-visible,
.admin-header__link--active {
    opacity: 1;
    text-decoration: underline;
}

.admin-header__link--logout {
    opacity: 0.75;
}

.admin-panel {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
}

.admin-panel__title {
    margin: 0 0 1rem;
    font-size: 1.5rem;
}

.admin-panel__subtitle {
    margin: 1.5rem 0 0.75rem;
    font-size: 1.125rem;
}

.admin-panel__back {
    margin: 0 0 0.75rem;
}

.admin-panel__back a {
    color: var(--color-primary);
    text-decoration: none;
}

.admin-panel__back a:hover,
.admin-panel__back a:focus-visible {
    text-decoration: underline;
}

.admin-panel__empty {
    color: var(--color-text-muted);
}

.admin-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.admin-panel__lead {
    margin: 0 0 1.25rem;
    color: var(--color-text-muted);
    line-height: 1.5;
}

.admin-settings-card__hint--compact {
    margin-bottom: 0.75rem;
}

.admin-settings-name {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
}

.admin-settings-textarea {
    min-height: 10rem;
    resize: vertical;
    font-family: inherit;
    line-height: 1.45;
}

.admin-settings-toggle {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1rem;
    cursor: pointer;
    user-select: none;
}

.admin-settings-toggle input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.admin-settings-toggle__switch {
    position: relative;
    flex: 0 0 44px;
    width: 44px;
    height: 24px;
    border-radius: 999px;
    background: var(--color-border, #d9d9d9);
    transition: background 0.15s ease;
}

.admin-settings-toggle__switch::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
    transition: transform 0.15s ease;
}

.admin-settings-toggle input:checked + .admin-settings-toggle__switch {
    background: var(--color-primary, #e85d04);
}

.admin-settings-toggle input:checked + .admin-settings-toggle__switch::after {
    transform: translateX(20px);
}

.admin-settings-toggle input:focus-visible + .admin-settings-toggle__switch {
    outline: 2px solid var(--color-primary, #e85d04);
    outline-offset: 2px;
}

.admin-settings-toggle__label {
    font-size: 0.9375rem;
    line-height: 1.4;
}

.admin-settings-card__muted--below-toggle {
    margin: -0.5rem 0 1rem;
}

.maintenance-page {
    min-height: 100vh;
    margin: 0;
    background: var(--color-bg, #f4f4f4);
    color: var(--color-text, #1a1a1a);
}

.maintenance-page__main {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}

.maintenance-page__card {
    width: min(100%, 560px);
    padding: 2rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--color-border, #ddd);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
    text-align: center;
}

.maintenance-page__brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.maintenance-page__emblem,
.maintenance-page__wordmark {
    display: block;
}

.maintenance-page__title {
    margin: 0 0 0.75rem;
    font-size: 1.5rem;
}

.maintenance-page__text {
    margin: 0;
    line-height: 1.55;
    color: var(--color-text-muted, #555);
}

.maintenance-page__actions {
    margin: 1.25rem 0 0;
}

.admin-settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1rem;
}

.admin-settings-card__title {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
}

.admin-settings-card__hint {
    margin: 0 0 1rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.admin-settings-card__muted {
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.admin-settings-form + .admin-settings-form {
    margin-top: 1rem;
}

.admin-settings-form .form-field + .form-field {
    margin-top: 0.75rem;
}

.admin-settings-form--inline {
    margin-top: 1rem;
}

.admin-bots-block + .admin-bots-block {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border, rgba(255, 255, 255, 0.08));
}

.admin-bots-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.admin-bots-actions .admin-settings-form--inline {
    margin-top: 0;
}

.admin-bots-actions .btn {
    margin-top: 0;
}

.admin-settings-form .btn {
    margin-top: 1rem;
}

.admin-settings-logo-preview {
    margin-bottom: 1rem;
}

.admin-settings-logo-uploads {
    display: grid;
    gap: 1.25rem;
}

.admin-settings-logo-upload__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
}

.admin-settings-logo-preview__sample {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--color-surface);
}

.admin-settings-logo-preview__header {
    display: flex;
    align-items: center;
    min-height: 0;
    padding: 0.65rem 1rem;
    background: var(--color-header-bg);
    color: var(--color-header-text);
}

.admin-settings-logo-preview__header .header__logo-emblem,
.admin-settings-logo-preview__header .header__logo-icon,
.admin-settings-logo-preview__header .header__logo-image {
    height: 64px;
    width: auto;
}

.admin-theme-table-wrap {
    overflow-x: auto;
    margin: 1rem 0 1.25rem;
}

.admin-theme-section-title {
    margin: 1.5rem 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-text);
}

.admin-theme-section-title--chrome {
    margin-top: 0.25rem;
}

.admin-theme-form--chrome {
    margin-bottom: 1.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
}

.admin-theme-chrome {
    display: grid;
    gap: 0.75rem;
    margin: 0 0 1rem;
}

.admin-theme-section-title--landing {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}

.admin-theme-section-lead {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

.admin-theme-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
}

.admin-theme-table th,
.admin-theme-table td {
    border: 1px solid var(--color-border);
    padding: 0.55rem 0.65rem;
    text-align: left;
    vertical-align: middle;
}

.admin-theme-table thead th {
    background: var(--color-bg);
    font-weight: 600;
}

.admin-theme-table tbody th {
    font-weight: 500;
    white-space: nowrap;
}

.admin-theme-color {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.admin-theme-color__swatch {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
}

.admin-theme-color__hex {
    flex: 1 1 auto;
    min-width: 6.5rem;
    font-family: ui-monospace, monospace;
    font-size: 0.92rem;
}

.admin-theme-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-theme-actions .btn,
.admin-theme-reset .btn {
    margin-top: 0;
}

.admin-theme-actions__hint {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.admin-theme-reset {
    margin-top: 0.75rem;
}

.admin-theme-form--landing {
    margin-top: 0.5rem;
}

.admin-theme-reset--landing {
    margin-bottom: 1rem;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.75rem;
}

.admin-stats__card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-sm);
}

.admin-stats__card--highlight {
    border-color: var(--color-primary);
}

.admin-stats__value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-primary-dark);
}

.admin-stats__label {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.admin-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.admin-filters__link {
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    text-decoration: none;
    font-size: 0.8125rem;
    color: var(--color-text);
    background: var(--color-surface);
}

.admin-filters__link--active {
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
    font-weight: 600;
}

.admin-search {
    margin-bottom: 1rem;
    max-width: 36rem;
}

.admin-search__row {
    display: flex;
    gap: 0.75rem;
    align-items: stretch;
}

.admin-search__input {
    flex: 1;
    min-width: 0;
}

.admin-search__btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.admin-panel__meta {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.admin-table__sort-header {
    white-space: nowrap;
}

.admin-table__sort-label {
    margin-right: 0.35rem;
    color: var(--color-text);
    font-weight: 600;
}

.admin-table__sort-link {
    display: inline-block;
    margin-right: 0.15rem;
    padding: 0 0.15rem;
    color: var(--color-primary);
    text-decoration: none;
    font-size: 0.875rem;
    line-height: 1;
}

.admin-table__sort-link--active {
    font-weight: 700;
    text-decoration: underline;
}

.admin-table__muted {
    display: block;
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.admin-table__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.admin-inline-form {
    display: inline;
    margin: 0;
}

.admin-user-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
}

.admin-card {
    padding: 1rem 1.125rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.admin-card__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.admin-card__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin: 0.35rem 0;
    font-size: 0.875rem;
}

.admin-card__row span:first-child {
    color: var(--color-text-muted);
}

.admin-form__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.admin-auth {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
}

.admin-auth__hint {
    text-align: left;
}

.admin-auth__secondary-form {
    margin-top: 0.5rem;
}

.footer--admin {
    margin-top: auto;
}

.tendery-section__tabs {
    display: flex;
    gap: 0.5rem;
    margin: 0 0 1.25rem;
    border-bottom: 1px solid var(--color-border);
}

.tendery-section__tab {
    display: inline-block;
    padding: 0.625rem 0.875rem;
    margin-bottom: -1px;
    border-bottom: 2px solid transparent;
    color: var(--color-text-muted, #64748b);
    text-decoration: none;
}

.tendery-section__tab--active {
    color: var(--color-primary-dark);
    border-bottom-color: var(--color-primary);
    font-weight: 600;
}

.tendery-feed__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    margin: 0 0 1rem;
}

.tendery-feed__search {
    flex: 1 1 16rem;
    min-width: min(100%, 16rem);
    max-width: 32rem;
}

.tendery-feed__sort {
    flex: 1 1 14rem;
    max-width: 24rem;
}

.tendery-feed__toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.tendery-feed__summary {
    margin-bottom: 1rem;
}

.tendery-feed {
    display: grid;
    gap: 1rem;
}

.tendery-feed__item {
    padding: 1rem 1.125rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
}

.tendery-feed__title {
    margin: 0 0 0.75rem;
    font-size: 1.0625rem;
}

.tendery-feed__title a {
    color: inherit;
    text-decoration: none;
}

.tendery-feed__title a:hover,
.tendery-feed__title a:focus-visible {
    color: var(--color-primary-dark);
}

.tendery-feed__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0.75rem 1rem;
    margin: 0 0 0.75rem;
}

.tendery-feed__meta dt {
    margin: 0;
    font-size: 0.75rem;
    color: var(--color-text-muted, #64748b);
}

.tendery-feed__meta dd {
    margin: 0.15rem 0 0;
    font-size: 0.9375rem;
}

.tendery-feed__tags,
.tendery-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tendery-feed__tags li,
.tendery-card__tags li {
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: var(--color-bg, #fafafa);
    border: 1px solid var(--color-border);
    font-size: 0.8125rem;
}

.tendery-card {
    padding: 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
}

.tendery-card__header {
    margin-bottom: 1rem;
}

.tendery-card__title {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
}

.tendery-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin: 0;
    font-size: 0.875rem;
    color: var(--color-text-muted, #64748b);
}

.tendery-card__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.75rem 1rem;
    margin: 0 0 1.25rem;
}

.tendery-card__fact dt {
    margin: 0;
    font-size: 0.75rem;
    color: var(--color-text-muted, #64748b);
}

.tendery-card__fact dd {
    margin: 0.15rem 0 0;
}

.tendery-card__block + .tendery-card__block {
    margin-top: 1rem;
}

.tendery-card__subtitle {
    margin: 0 0 0.5rem;
    font-size: 1rem;
}

.tendery-card__description {
    line-height: 1.55;
}

.tendery-card__files {
    margin: 0;
    padding-left: 1.25rem;
}

.tendery-card__source {
    margin: 1.25rem 0 0;
}

.tendery-settings__group + .tendery-settings__group {
    margin-top: 1.5rem;
}

.tendery-settings__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.tendery-settings__checks {
    display: grid;
    gap: 0.5rem;
}

.tendery-settings__checks--columns {
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
}

.tendery-settings__check {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9375rem;
    line-height: 1.4;
    cursor: pointer;
}

.tendery-settings__check input[type="checkbox"] {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    margin: 0;
    accent-color: var(--color-primary);
}

.tendery-settings__check span {
    line-height: 1.4;
}

.tendery-settings__check--child {
    margin-left: 0;
}

.tendery-settings__fieldset {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.tendery-settings__legend {
    display: block;
    padding: 0;
    margin: 0 0 0.5rem;
    width: auto;
}

.tendery-settings__children {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.tendery-settings__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.admin-tenders-stats__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.admin-tenders-stats__warn {
    color: var(--color-warning, #b45309);
}

.admin-tenders-sync-all {
    margin-top: 1.25rem;
}

.admin-tender-work-type-form__keywords {
    min-height: 8rem;
    font-family: inherit;
}

.admin-tender-work-type-form__hint {
    margin: 0.5rem 0 0;
    color: var(--color-text-muted, #64748b);
    font-size: 0.875rem;
}

.admin-tender-work-type__keywords {
    max-width: 20rem;
    word-break: break-word;
}

.admin-tenders-page__lead a {
    color: var(--color-primary);
}

.admin-tenders-cron__list {
    margin: 0;
    padding-left: 1.25rem;
    display: grid;
    gap: 0.5rem;
}

.admin-tenders-cron__list code {
    word-break: break-all;
}

.admin-tenders-cron__hint {
    color: var(--color-text-muted, #64748b);
    font-size: 0.875rem;
}

.admin-tenders-platforms__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.admin-tenders-platforms__head .admin-panel__subtitle {
    margin: 0;
}

.admin-tenders-platforms__config {
    max-width: 18rem;
    word-break: break-word;
}

.admin-tenders-platforms__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.admin-tender-platform-form__parser-config .admin-form__grid {
    align-items: stretch;
}

.admin-tender-platform-form__parser-config .admin-form__grid > .form-field:not(.admin-tender-platform-form__keywords-field) .form-field__input {
    margin-top: auto;
}

.admin-tender-platform-form__parser-desc {
    margin: 0 0 1rem;
    color: var(--color-text-muted, #64748b);
    font-size: 0.9375rem;
}

.admin-tender-platform-form__parser-empty {
    margin: 0 0 1rem;
    color: var(--color-text-muted, #64748b);
    font-size: 0.9375rem;
}

.admin-tender-platform-form__active-toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 1rem 0;
    cursor: pointer;
}

.admin-tender-platform-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-top: 1rem;
    margin-bottom: 0;
}

.admin-tender-platform-form__delete {
    margin-top: 1.5rem;
}

.admin-tender-platform-form__keywords-field {
    grid-column: 1 / -1;
}

.admin-tender-platform-form__keywords-hint {
    margin: 0 0 0.75rem;
    color: var(--color-text-muted, #64748b);
    font-size: 0.875rem;
    line-height: 1.45;
}

.admin-tender-platform-form__keywords {
    margin-top: 0.25rem;
}

.admin-tender-platform-form__warn {
    color: #b45309;
}

.admin-inline-form {
    display: inline;
}

.btn--small {
    padding: 0.35rem 0.65rem;
    font-size: 0.8125rem;
}

/* ── Cabinet shell sidebar ── */

:root {
    --cabinet-sidebar-width: 15.5rem;
    /* pad*2 + icon must fit: 0.85*2 + 2 = 3.7 → use 4.5 for air. */
    --cabinet-sidebar-width-collapsed: 4.5rem;
    --cabinet-sidebar-badge: var(--color-borux-green);
    --cabinet-sidebar-z: 1200;
    --cabinet-sidebar-icon: 2rem;
    --cabinet-sidebar-pad-x: 0.85rem;
    --cabinet-sidebar-link-pad-x: 0.45rem;
    /* Labels start past the collapsed edge so the curtain fully hides them. */
    --cabinet-sidebar-label-gap: calc(
        var(--cabinet-sidebar-width-collapsed) - var(--cabinet-sidebar-pad-x) - var(--cabinet-sidebar-icon) + 0.55rem
    );
    --cabinet-sidebar-motion: 0.32s ease;
}

body.cabinet-shell {
    /* Layout always reserves expanded width so collapse does not reflow content/footer. */
    --cabinet-shell-offset: var(--cabinet-sidebar-width);
}

body.cabinet-shell .page--cabinet > .header,
body.cabinet-shell .page--cabinet > .footer,
body.cabinet-shell .page--cabinet > .billing-readonly-banner,
body.cabinet-shell .page--cabinet > .main {
    padding-left: var(--cabinet-shell-offset);
    box-sizing: border-box;
}

body.cabinet-shell.chrome-header-fixed .header {
    left: 0;
    width: 100%;
    padding-left: var(--cabinet-shell-offset);
}

.header__brand--spacer {
    width: 0;
    min-width: 0;
    overflow: hidden;
    pointer-events: none;
}

.cabinet-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: var(--cabinet-sidebar-z);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: var(--cabinet-sidebar-width);
    min-width: 0;
    overflow: visible;
    background: var(--color-header-bg, #2f3a45);
    color: var(--color-header-text, #f8f6f3);
    box-shadow: 2px 0 12px rgba(0, 0, 0, 0.12);
    transition: width var(--cabinet-sidebar-motion);
    box-sizing: border-box;
}

.cabinet-sidebar--collapsed {
    width: var(--cabinet-sidebar-width-collapsed);
}

.cabinet-sidebar__brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    height: var(--cabinet-chrome-header-height, 5.5rem);
    min-height: var(--cabinet-chrome-header-height, 5.5rem);
    padding: 0 var(--cabinet-sidebar-pad-x);
    box-sizing: border-box;
    overflow: hidden;
    text-decoration: none;
    border-bottom: 1px solid rgba(248, 246, 243, 0.12);
}

.cabinet-sidebar__brand-slot {
    position: relative;
    display: block;
    flex: 0 0 auto;
    height: 2.75rem;
    line-height: 0;
    /* Match link inset so the emblem “b” lines up with menu badges. */
    margin-left: var(--cabinet-sidebar-link-pad-x);
}

.cabinet-sidebar__emblem {
    display: block;
    height: 2.75rem;
    width: auto;
    max-width: none;
    object-fit: contain;
    object-position: left center;
}

.cabinet-sidebar__emblem--full {
    position: relative;
    z-index: 1;
}

.cabinet-sidebar__emblem--mark {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    opacity: 0;
    pointer-events: none;
}

.cabinet-sidebar--brand-compact .cabinet-sidebar__emblem--full {
    opacity: 0;
}

.cabinet-sidebar--brand-compact .cabinet-sidebar__emblem--mark {
    opacity: 1;
}

.cabinet-sidebar__nav {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0.75rem var(--cabinet-sidebar-pad-x);
    box-sizing: border-box;
}

.cabinet-sidebar__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    /* Keep row width at expanded size so labels clip instead of reflowing. */
    width: calc(var(--cabinet-sidebar-width) - (2 * var(--cabinet-sidebar-pad-x)));
    min-width: calc(var(--cabinet-sidebar-width) - (2 * var(--cabinet-sidebar-pad-x)));
    max-width: none;
    box-sizing: border-box;
}

.cabinet-sidebar__link {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--cabinet-sidebar-label-gap);
    min-height: 2.65rem;
    padding: 0.35rem var(--cabinet-sidebar-link-pad-x);
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
    transition: background-color 0.15s ease;
    box-sizing: border-box;
}

.cabinet-sidebar__link:hover,
.cabinet-sidebar__link:focus-visible {
    background: rgba(248, 246, 243, 0.1);
    outline: none;
}

.cabinet-sidebar__link--active {
    background: rgba(61, 220, 151, 0.22);
}

.cabinet-sidebar__badge {
    flex: 0 0 var(--cabinet-sidebar-icon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--cabinet-sidebar-icon);
    height: var(--cabinet-sidebar-icon);
    border-radius: 50%;
    background: var(--cabinet-sidebar-badge);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    text-transform: none;
}

.cabinet-sidebar__label {
    flex: 0 0 auto;
    font-size: 0.9375rem;
    white-space: nowrap;
}

.cabinet-sidebar__toggle {
    position: absolute;
    right: 0;
    bottom: calc(var(--cabinet-chrome-footer-height, var(--chrome-header-height, 5.5rem)) + 0.65rem);
    z-index: calc(var(--cabinet-sidebar-z) + 1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin: 0;
    padding: 0;
    border: 2px solid #ff6b2c;
    border-radius: 7px;
    background: #1e4fd6;
    color: #fff;
    box-shadow:
        0 0 0 1px rgba(255, 107, 44, 0.35),
        0 0 12px rgba(255, 107, 44, 0.55),
        0 2px 8px rgba(0, 0, 0, 0.28);
    transform: translateX(15%);
    cursor: pointer;
    transition:
        background-color 0.15s ease,
        box-shadow 0.15s ease,
        border-color 0.15s ease;
}

.cabinet-sidebar__toggle:hover,
.cabinet-sidebar__toggle:focus-visible {
    background: #2f6bff;
    border-color: #ff854d;
    box-shadow:
        0 0 0 1px rgba(255, 107, 44, 0.45),
        0 0 16px rgba(255, 107, 44, 0.7),
        0 2px 10px rgba(0, 0, 0, 0.3);
    outline: none;
}

.cabinet-sidebar__toggle-arrow {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.4rem 0.55rem 0.4rem 0;
    border-color: transparent #fff transparent transparent;
    margin-left: -0.1rem;
    transition: transform var(--cabinet-sidebar-motion);
}

.cabinet-sidebar--collapsed .cabinet-sidebar__toggle-arrow {
    border-width: 0.4rem 0 0.4rem 0.55rem;
    border-color: transparent transparent transparent #fff;
    margin-left: 0.1rem;
}

.cabinet-content--loading {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

@media (max-width: 720px) {
    :root {
        --cabinet-sidebar-width: 14rem;
        --cabinet-sidebar-width-collapsed: 4.5rem;
    }

    body.cabinet-shell:not(.cabinet-shell--collapsed) .cabinet-sidebar {
        box-shadow: 4px 0 24px rgba(0, 0, 0, 0.28);
    }
}

