/* /Components/Layout/EmptyLayout.razor.rz.scp.css */
.empty-layout[b-gavjlw2o99] {
    min-height: 100vh;
    background: var(--surface-2);
}
/* /Components/Layout/LogoutForm.razor.rz.scp.css */
.logout-form[b-ov51lcygmo] {
    margin: 0;
}

.logout-item[b-ov51lcygmo] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text);
    font: inherit;
    font-size: 13.5px;
    text-align: left;
    cursor: pointer;
}

    .logout-item:hover[b-ov51lcygmo] { background: var(--surface-2); }

[b-ov51lcygmo] .logout-icon { width: 16px; height: 16px; flex: none; color: var(--text-2); }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Минус полоса текущего звонка (app.css, --call-bar-offset): пока она видна, страница кончается над ней. */
.page[b-emixyr6vwp] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - var(--call-bar-offset, 0px));
    min-height: 0;
}

.topbar[b-emixyr6vwp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--topbar-bg);
    color: var(--topbar-text);
    padding: 0 16px 0 20px;
    height: 56px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--topbar-border);
    z-index: 10;
}

.topbar .brand[b-emixyr6vwp] {
    font-size: 16.5px;
    font-weight: 700;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.topbar .user-area[b-emixyr6vwp] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13.5px;
}

.topbar .brand-crm[b-emixyr6vwp] { font-weight: 500; color: var(--topbar-text-2); }

/* Черта между кнопками смены и обеда и меню под именем. */
.topbar .user-divider[b-emixyr6vwp] {
    flex: none;
    width: 1px;
    height: 24px;
    margin: 0 6px;
    background: var(--topbar-border);
}

/* Значок поиска — только там, где строки поиска нет (≤760 px, app.css). */
.topbar .search-icon-link[b-emixyr6vwp] {
    display: none;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: var(--r);
    color: var(--topbar-text-2);
}

.topbar .search-icon-link:hover[b-emixyr6vwp] { background: var(--topbar-hover); color: var(--topbar-text); }
.topbar[b-emixyr6vwp]  .search-icon-svg { width: 20px; height: 20px; }

@media (max-width: 760px) {
    .topbar .search-icon-link[b-emixyr6vwp] { display: inline-flex; }
}

.body[b-emixyr6vwp] {
    display: flex;
    flex: 1;
    min-height: 0;
}

.sidebar[b-emixyr6vwp] {
    width: 232px;
    background: var(--sidebar-bg);
    border-right: 1px solid var(--sidebar-border);
    overflow-y: auto;
    flex-shrink: 0;
}

.content[b-emixyr6vwp] {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
    padding: 22px 28px 40px;
    background: var(--bg);
}

/* ─────────── Бургер-меню для узких экранов ───────────
   Чекбокс-переключатель (без JS): на узких ширинах сайдбар уезжает за край
   и выезжает поверх контента при открытии. На десктопе бургер и оверлей скрыты,
   сайдбар — обычная колонка. */
.nav-toggle[b-emixyr6vwp] { display: none; }

.nav-burger[b-emixyr6vwp] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-left: -0.35rem;
    border-radius: var(--r);
    color: var(--topbar-text-2);
    cursor: pointer;
    flex-shrink: 0;
}

.nav-burger:hover[b-emixyr6vwp] { background: var(--topbar-hover); color: var(--topbar-text); }
.nav-burger svg[b-emixyr6vwp] { width: 22px; height: 22px; }

.nav-backdrop[b-emixyr6vwp] { display: none; }

@media (max-width: 860px) {
    .nav-burger[b-emixyr6vwp] { display: inline-flex; }

    .topbar[b-emixyr6vwp] { padding: 0 0.75rem; gap: 0.5rem; }
    .topbar .brand[b-emixyr6vwp] { white-space: normal; line-height: 1.15; }
    .topbar .user-area[b-emixyr6vwp] { gap: 4px; }

    .sidebar[b-emixyr6vwp] {
        position: fixed;
        top: 56px;
        left: 0;
        bottom: var(--call-bar-offset, 0px);
        z-index: 40;
        width: 260px;
        max-width: 82vw;
        transform: translateX(-100%);
        transition: transform 0.2s ease;
        box-shadow: 0 8px 30px var(--shade-20);
    }

    .nav-backdrop[b-emixyr6vwp] {
        position: fixed;
        inset: 56px 0 var(--call-bar-offset, 0px) 0;
        background: var(--backdrop);
        z-index: 30;
    }

    .content[b-emixyr6vwp] { padding: 1rem 1rem 2.5rem; overflow-x: auto; }

    .nav-toggle:checked ~ .body .sidebar[b-emixyr6vwp] { transform: translateX(0); }
    .nav-toggle:checked ~ .body .nav-backdrop[b-emixyr6vwp] { display: block; }
}

/* Телефон: «Выйти» ушёл в меню под именем, поэтому название CRM снова помещается; промежутки между значками уже,
   иначе шапка шире экрана и сжимает значки. Тумблер темы и «?» уходят в то же меню. */
@media (max-width: 720px) {
    .topbar[b-emixyr6vwp] { gap: 0.25rem; }
    .topbar .brand[b-emixyr6vwp] { font-size: 15px; white-space: nowrap; margin-right: auto; }
    .topbar .user-area[b-emixyr6vwp] { gap: 2px; }
    .topbar .user-divider[b-emixyr6vwp] { margin: 0 2px; }
    .topbar[b-emixyr6vwp]  .theme-toggle-host, .topbar[b-emixyr6vwp]  .help-button { display: none; }
}

#blazor-error-ui[b-emixyr6vwp] {
    color-scheme: light only;
    background: var(--yellow-50-bg);
    bottom: var(--call-bar-offset, 0px);
    box-shadow: 0 -1px 2px var(--shade-20);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-emixyr6vwp] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* Самое длинное состояние на 390 — обед: бургер, название, значок поиска, колокольчик, «С обеда», «Закончить» и аватар
   помещаются только с узкими полями и без стрелки у аватара. */
@media (max-width: 480px) {
    .topbar[b-emixyr6vwp] { padding: 0 8px; gap: 2px; }
    .topbar .nav-burger[b-emixyr6vwp] { width: 34px; margin-left: -0.2rem; }
    .topbar .brand[b-emixyr6vwp] { font-size: 14px; }
    .topbar .search-icon-link[b-emixyr6vwp] { width: 30px; }
    .topbar[b-emixyr6vwp]  .notification-bell { width: 32px; }
    .topbar .user-divider[b-emixyr6vwp] { margin: 0 1px; }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.nav-menu[b-fsr8vdjc2q] {
    padding: 12px 10px 20px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Иконка пункта — свой приглушённый цвет (у выбранного — акцент); размер и цвет иконки — в глобальном app.css
   (.nav-icon): svg инжектится raw-разметкой, scoped-стили до него не достают. */
/* NavLink — дочерний компонент, его <a> не получает scope-атрибут этого
   компонента, поэтому стили пункта пишем через ::deep (иначе побеждает
   глобальный a{color:accent} и пункты выглядят синими ссылками без отступов). */
[b-fsr8vdjc2q] .nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    border-radius: var(--r-sm);
    color: var(--sidebar-text);
    text-decoration: none;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 20px;
    transition: background-color 0.12s ease, color 0.12s ease;
}

.nav-label[b-fsr8vdjc2q] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-fsr8vdjc2q] .nav-link:hover {
    background: var(--sidebar-hover);
    color: var(--sidebar-text);
    text-decoration: none;
}

[b-fsr8vdjc2q] .nav-link.active {
    background: var(--sidebar-active-bg);
    color: var(--sidebar-active-text);
    box-shadow: var(--sidebar-active-shadow);
}

/* Бейдж-счётчик у пункта меню */
.nav-badge[b-fsr8vdjc2q] {
    flex: none;
    min-width: 20px;
    text-align: center;
    padding: 0 6px;
    border-radius: 9px;
    background: var(--badge-bg);
    color: var(--badge-text);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 18px;
    font-variant-numeric: tabular-nums;
}

/* Кружки одного пункта стоят группой: вместо общего отступа пункта — узкий, чтобы три кружка
   («Задачи», «Обращения») не съедали подпись. */
.nav-badge + .nav-badge[b-fsr8vdjc2q] {
    margin-left: -0.4rem;
}

/* Красный — срочное/важное (просроченные задачи, непрочитанные уведомления) */
.nav-badge-danger[b-fsr8vdjc2q] {
    background: var(--danger-soft);
    color: var(--danger);
}

/* Оранжевый — на сегодня / наступивший срок */
.nav-badge-warn[b-fsr8vdjc2q] {
    background: var(--warn-soft);
    color: var(--warn);
}

/* Обведённый, без заливки — свободные задачи пула: не ваши, но их можно взять. Не краснеет и не синеет у выбранного пункта. */
.nav-badge-pool[b-fsr8vdjc2q] {
    background: transparent;
    color: var(--accent-text);
    box-shadow: inset 0 0 0 1px var(--accent-text);
}

/* Мягкая пульсация — «светится», пока есть что взять в работу (новые обращения) */
.nav-badge-pulse[b-fsr8vdjc2q] {
    animation: nav-badge-pulse-b-fsr8vdjc2q 1.8s ease-in-out infinite;
}

@keyframes nav-badge-pulse-b-fsr8vdjc2q {
    0%, 100% { box-shadow: 0 0 0 0 var(--red-a45-shadow); }
    50% { box-shadow: 0 0 0 4px var(--red-a0-shadow); }
}

@media (prefers-reduced-motion: reduce) {
    .nav-badge-pulse[b-fsr8vdjc2q] { animation: none; }
}

/* У выбранного пункта серый счётчик становится синим; красный и оранжевый остаются своими. */
[b-fsr8vdjc2q] .nav-link.active .nav-badge:not(.nav-badge-danger):not(.nav-badge-warn):not(.nav-badge-pool) { background: var(--accent-soft); color: var(--accent-text); }

.nav-section-title[b-fsr8vdjc2q] {
    margin-top: 1rem;
    padding: 0.75rem 0.7rem 0.3rem;
    border-top: 1px solid var(--border);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sidebar-section);
}

/* ─────────── Скрытые пункты ─────────── */
.nav-menu .nav-hidden-toggle[b-fsr8vdjc2q] {
    width: 100%;
    margin-top: 0.75rem;
    border: none;
    background: none;
    box-shadow: none;
    text-align: left;
}

.nav-hidden-list[b-fsr8vdjc2q] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding-left: 0.6rem;
}

.nav-hidden-item[b-fsr8vdjc2q] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
}

.nav-hidden-item[b-fsr8vdjc2q]  .nav-link {
    flex: 1;
    min-width: 0;
}

/* Маленькие кнопки-значки: стрелки, «глаз» */
.nav-menu .nav-tool[b-fsr8vdjc2q] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    box-shadow: none;
    color: var(--text-muted);
    cursor: pointer;
}

.nav-menu .nav-tool:hover:not(:disabled)[b-fsr8vdjc2q] {
    background: var(--surface-3);
    border-color: transparent;
    color: var(--text);
}

.nav-menu .nav-tool:disabled[b-fsr8vdjc2q] { opacity: 0.3; }

[b-fsr8vdjc2q] .nav-tool-icon { flex: none; width: 1rem; height: 1rem; }

[b-fsr8vdjc2q] .nav-grip { flex: none; width: 0.9rem; height: 0.9rem; color: var(--text-faint); }

/* ─────────── Закреплённый низ меню ─────────── */
.nav-menu-footer[b-fsr8vdjc2q] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 0.75rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--border);
}

/* «Справка» — ссылка NavLink: её разметку рисует не меню, поэтому до неё дотягиваемся через ::deep. */
.nav-menu .nav-footer-link[b-fsr8vdjc2q],
.nav-menu[b-fsr8vdjc2q]  a.nav-footer-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.4rem 0.7rem;
    border: none;
    border-radius: var(--r-sm);
    background: none;
    box-shadow: none;
    color: var(--sidebar-text-2);
    font-size: 13px;
    font-weight: 400;
    line-height: 20px;
    text-align: left;
    text-decoration: none;
}

.nav-menu .nav-footer-link:hover:not(:disabled)[b-fsr8vdjc2q],
.nav-menu[b-fsr8vdjc2q]  a.nav-footer-link:hover {
    background: var(--sidebar-hover);
    color: var(--sidebar-text);
    text-decoration: none;
}

.nav-menu[b-fsr8vdjc2q]  a.nav-footer-link.active {
    background: var(--sidebar-active-bg);
    color: var(--sidebar-active-text);
    box-shadow: var(--sidebar-active-shadow);
}

.nav-confirm[b-fsr8vdjc2q] {
    padding: 0.55rem 0.6rem;
    border: 1px solid var(--amber-150-border);
    border-radius: 8px;
    background: var(--warn-softer);
    color: var(--text-2);
    font-size: 0.8rem;
    line-height: 1.35;
}

.nav-confirm-actions[b-fsr8vdjc2q],
.nav-edit-actions[b-fsr8vdjc2q] {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.5rem;
}

.nav-confirm-actions button[b-fsr8vdjc2q],
.nav-edit-actions button[b-fsr8vdjc2q] {
    flex: 1;
    padding: 0.4rem 0.5rem;
    font-size: 0.85rem;
}

.nav-error[b-fsr8vdjc2q] {
    padding: 0.3rem 0.7rem;
    color: var(--danger);
    font-size: 0.78rem;
}

/* ─────────── Режим «Настроить меню» ─────────── */
.nav-edit-hint[b-fsr8vdjc2q] {
    margin: 0 0.2rem 0.5rem;
    padding: 0.5rem 0.6rem;
    border-radius: 8px;
    background: var(--accent-softer);
    color: var(--text-2);
    font-size: 0.78rem;
    line-height: 1.35;
}

/* Высота строки фиксирована и в пикселях, а не в rem (rem зависит от шрифта браузера): по ней решается, встать
   перед строкой или после (EditRowHalfHeight). */
.nav-menu .nav-edit-item[b-fsr8vdjc2q] {
    box-sizing: border-box;
    height: 36px;
    padding: 0 0.15rem 0 0.35rem;
    gap: 0.35rem;
    cursor: grab;
    user-select: none;
}

.nav-menu .nav-edit-item:hover[b-fsr8vdjc2q] { background: var(--sidebar-hover); color: var(--sidebar-text); }

.nav-edit-item.is-hidden .nav-label[b-fsr8vdjc2q],
.nav-edit-item.is-hidden[b-fsr8vdjc2q]  .nav-icon {
    opacity: 0.45;
}

.nav-edit-item.is-hidden .nav-eye[b-fsr8vdjc2q] { color: var(--warn); }

.nav-menu .nav-edit-section[b-fsr8vdjc2q] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 0.15rem 0.3rem 0.35rem;
    cursor: grab;
    user-select: none;
}

.nav-menu .nav-edit-section.top[b-fsr8vdjc2q] {
    margin-top: 0;
    padding-top: 0.2rem;
    border-top: none;
    cursor: default;
}

.nav-edit-empty[b-fsr8vdjc2q] {
    margin: 0.1rem 0.35rem 0.25rem;
    padding: 0.45rem 0.6rem;
    border: 1px dashed var(--border-strong);
    border-radius: 8px;
    color: var(--text-faint);
    font-size: 0.78rem;
    text-align: center;
}

.nav-menu .dragging[b-fsr8vdjc2q] { opacity: 0.4; }

.nav-menu .drop-target[b-fsr8vdjc2q] { box-shadow: inset 0 0 0 2px var(--accent); border-radius: 8px; }

/* Пока тянем, события перетаскивания получает сама строка, а не её значки: так точка броска считается от строки. */
.nav-menu.drag-active[b-fsr8vdjc2q]  .nav-edit-item > *,
.nav-menu.drag-active[b-fsr8vdjc2q]  .nav-edit-section > * {
    pointer-events: none;
}

/* «Готово» всегда под рукой, сколько бы пунктов ни было */
.nav-menu .nav-edit-footer[b-fsr8vdjc2q] {
    position: sticky;
    bottom: 0;
    z-index: 1;
    margin: 0.75rem -10px -20px;
    padding: 0.6rem 10px 0.9rem;
    background: var(--sidebar-bg);
    box-shadow: 0 -8px 12px -10px var(--shade-ink-25);
}

.nav-edit-actions[b-fsr8vdjc2q] { margin: 0 0.2rem 0.3rem; }

/* ─────────── Числа с подписью второй строкой ─────────── */
/* Название и подписанные числа — столбцом; кружки без подписи остаются справа в строке пункта. */
.nav-text[b-fsr8vdjc2q] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.nav-text .nav-label[b-fsr8vdjc2q] {
    flex: none;
}

.nav-sub[b-fsr8vdjc2q] {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 4px;
    margin-top: 2px;
}

.nav-sub .nav-cap[b-fsr8vdjc2q] {
    min-width: 0;
    padding: 0 7px;
    font-size: 11px;
    line-height: 16px;
    white-space: nowrap;
}

.nav-sub .nav-cap + .nav-cap[b-fsr8vdjc2q] {
    margin-left: 0;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-5hwqitq4mf],
.components-reconnect-repeated-attempt-visible[b-5hwqitq4mf],
.components-reconnect-failed-visible[b-5hwqitq4mf],
.components-pause-visible[b-5hwqitq4mf],
.components-resume-failed-visible[b-5hwqitq4mf],
.components-rejoining-animation[b-5hwqitq4mf] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-retrying[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-failed[b-5hwqitq4mf],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-5hwqitq4mf] {
    display: block;
}


#components-reconnect-modal[b-5hwqitq4mf] {
    background-color: var(--surface);
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px var(--shade-30);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-5hwqitq4mf 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-5hwqitq4mf 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-5hwqitq4mf 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-5hwqitq4mf]::backdrop {
    background-color: var(--backdrop-black);
    animation: components-reconnect-modal-fadeInOpacity-b-5hwqitq4mf 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-5hwqitq4mf {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-5hwqitq4mf {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-5hwqitq4mf {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-5hwqitq4mf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-5hwqitq4mf] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-5hwqitq4mf] {
    border: 0;
    background-color: var(--blue-400-bg);
    color: var(--on-accent);
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-5hwqitq4mf] {
        background-color: var(--blue-550-bg-2);
    }

    #components-reconnect-modal button:active[b-5hwqitq4mf] {
        background-color: var(--blue-400-bg);
    }

.components-rejoining-animation[b-5hwqitq4mf] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-5hwqitq4mf] {
        position: absolute;
        border: 3px solid var(--blue-500-border);
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-5hwqitq4mf 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-5hwqitq4mf] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-5hwqitq4mf {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/UserMenu.razor.rz.scp.css */
.user-menu[b-cnlazabbk9] {
    position: relative;
}

.user-menu-btn[b-cnlazabbk9] {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 8px 0 4px;
    border-radius: var(--r-sm);
    cursor: pointer;
    list-style: none;
    color: var(--topbar-text);
    font-size: 13.5px;
    font-weight: 500;
    white-space: nowrap;
}

.user-menu-btn[b-cnlazabbk9]::-webkit-details-marker { display: none; }
.user-menu-btn:hover[b-cnlazabbk9], .user-menu[open] > .user-menu-btn[b-cnlazabbk9] { background: var(--topbar-hover); }

.user-avatar[b-cnlazabbk9] {
    display: inline-grid;
    place-items: center;
    flex: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent-text);
    font-size: 11.5px;
    font-weight: 600;
}

.user-name[b-cnlazabbk9] { max-width: 220px; overflow: hidden; text-overflow: ellipsis; }

[b-cnlazabbk9] .user-menu-chev { width: 15px; height: 15px; flex: none; color: var(--topbar-text-2); }

.user-menu-panel[b-cnlazabbk9] {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    width: 290px;
    max-width: calc(100vw - 16px);
    padding: 6px;
    background: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: var(--r);
    box-shadow: var(--shadow-md);
    z-index: 35;
}

.user-menu-head[b-cnlazabbk9] { display: flex; align-items: center; gap: 10px; padding: 8px 10px 4px; line-height: 1.3; font-size: 13.5px; }
.user-menu-head b[b-cnlazabbk9] { font-weight: 600; }
.user-menu-hint[b-cnlazabbk9] { color: var(--text-2); font-size: 12.5px; }
.user-menu-sep[b-cnlazabbk9] { height: 1px; margin: 6px 0; background: var(--border); }

.user-menu-item[b-cnlazabbk9] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text);
    font: inherit;
    font-size: 13.5px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.user-menu-item:hover[b-cnlazabbk9] { background: var(--surface-2); text-decoration: none; }
.user-menu-item > span[b-cnlazabbk9] { flex: 1 1 auto; min-width: 0; }
.user-menu-sub[b-cnlazabbk9] { display: block; color: var(--text-2); font-size: 12px; }
[b-cnlazabbk9] .user-menu-icon { width: 16px; height: 16px; flex: none; color: var(--text-2); }

/* Пункты «Тема» и «Справка» — только там, где тумблер и «?» ушли из шапки. */
.user-menu-phone[b-cnlazabbk9] { display: none; }

@media (max-width: 860px) {
    .user-name[b-cnlazabbk9] { display: none; }
    .user-menu-btn[b-cnlazabbk9] { padding: 0 4px; gap: 2px; }
}

@media (max-width: 720px) {
    .user-menu-phone[b-cnlazabbk9] { display: flex; }
}

/* Телефон: меню раскрывается под аватаром, а не снизу экрана. */
@media (max-width: 480px) {
    .user-menu-panel[b-cnlazabbk9] { position: fixed; top: 60px; right: 8px; }
    [b-cnlazabbk9] .user-menu-chev { display: none; }
    .user-menu-btn[b-cnlazabbk9] { padding: 0 2px; }
}

/* Тумблера темы нет (просмотр CRM глазами роли ничего не пишет) — пункту «Тема» нечего нажимать. */
:root:not(:has(button.theme-toggle)) .user-menu-item[data-user-menu="theme"][b-cnlazabbk9] { display: none; }
/* /Components/Layout/ViewAsBanner.razor.rz.scp.css */
.view-as-banner[b-jowsqhhbgg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem 1rem;
    padding: .5rem 1.25rem;
    background: var(--warn-soft);
    border-bottom: 1px solid var(--amber-250-border);
    color: var(--amber-800-text);
    font-size: .8125rem;
    line-height: 1.4;
    flex-shrink: 0;
}

.view-as-text[b-jowsqhhbgg] {
    flex: 1 1 32rem;
    margin: 0;
}

.view-as-actions[b-jowsqhhbgg] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-shrink: 0;
}

.view-as-exit[b-jowsqhhbgg] {
    display: inline;
    margin: 0;
}

.view-as-exit button[b-jowsqhhbgg] {
    font-size: .8125rem;
    padding: .3rem .75rem;
    border-color: var(--amber-400-border);
    background: var(--surface);
}

.view-as-actions a[b-jowsqhhbgg] {
    color: var(--amber-800-text);
    white-space: nowrap;
}

/* На телефоне — только чьими глазами и выход: что зависит не от прав, рассказывает «Подробнее». */
@media (max-width: 600px) {
    .view-as-banner[b-jowsqhhbgg] { padding: .5rem .75rem; }
    .view-as-text[b-jowsqhhbgg] { flex-basis: 100%; }
    .view-as-more[b-jowsqhhbgg] { display: none; }
}
/* /Components/Pages/AccessDenied.razor.rz.scp.css */
.access-denied-need[b-d7uva22xaa] {
    font-weight: 600;
}
/* /Components/Pages/Admin/AccessPreview.razor.rz.scp.css */
.access-preview[b-8cprpusaoa] {
    max-width: 60rem;
}

.hint[b-8cprpusaoa] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin: 0 0 0.75rem 0;
}

.muted[b-8cprpusaoa] {
    color: var(--text-muted);
}

h3[b-8cprpusaoa] {
    margin: 1rem 0 0.5rem 0;
    font-size: 0.9375rem;
}

.preview-grid[b-8cprpusaoa] {
    display: grid;
    grid-template-columns: minmax(0, 16rem) minmax(0, 1fr);
    gap: 0 2rem;
}

.preview-block > h3:first-child[b-8cprpusaoa] {
    margin-top: 0.25rem;
}

/* Меню — как в боковой панели: заголовки разделов мелкими буквами, пункты с иконками. */
.menu-section[b-8cprpusaoa] {
    margin: 0.6rem 0 0.2rem 0;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted);
}

.menu-items[b-8cprpusaoa] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.menu-item[b-8cprpusaoa] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.15rem 0;
    font-size: 0.9rem;
}

.preview-menu[b-8cprpusaoa]  .preview-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: var(--text-muted);
}

.hidden-by-user .menu-item[b-8cprpusaoa] {
    color: var(--text-muted);
}

.mark[b-8cprpusaoa] {
    font-size: 0.75rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--warn-soft);
    color: var(--warn);
}

.pages-count[b-8cprpusaoa] {
    margin: 0 0 0.5rem 0;
}

.pages-group[b-8cprpusaoa] {
    margin: 0 0 0.35rem 0;
}

.pages-group summary[b-8cprpusaoa] {
    cursor: pointer;
    font-size: 0.9rem;
}

.pages[b-8cprpusaoa] {
    list-style: none;
    margin: 0.25rem 0 0.5rem 0;
    padding: 0 0 0 1rem;
    font-size: 0.875rem;
    overflow-wrap: anywhere;
}

.pages li[b-8cprpusaoa] {
    padding: 0.15rem 0;
}

.pages.closed li[b-8cprpusaoa] {
    color: var(--warn);
}

.page-name[b-8cprpusaoa] {
    font-weight: 500;
    color: var(--text);
}

.open-line[b-8cprpusaoa] {
    margin: 0.25rem 0 0 1rem;
    font-size: 0.875rem;
    overflow-wrap: anywhere;
}

.open-section[b-8cprpusaoa] {
    color: var(--text-muted);
}

.help-sections[b-8cprpusaoa] {
    margin: 0 0 0.5rem 0;
    padding-left: 1.25rem;
    font-size: 0.9rem;
}

.action-area[b-8cprpusaoa] {
    margin: 0.75rem 0 0.25rem 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-muted);
}

.actions[b-8cprpusaoa] {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--border);
}

.action[b-8cprpusaoa] {
    padding: 0.35rem 0.25rem;
    border-bottom: 1px solid var(--border);
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.action-title[b-8cprpusaoa] {
    font-weight: 500;
}

.action.allowed .action-reach[b-8cprpusaoa] {
    color: var(--ok);
}

.action.in-context .action-reach[b-8cprpusaoa] {
    color: var(--text);
}

.action.denied .action-reach[b-8cprpusaoa] {
    color: var(--warn);
}

.action-help[b-8cprpusaoa] {
    display: inline-block;
    margin-left: 0.35rem;
    min-width: 1.1rem;
    text-align: center;
    font-size: 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 999px;
    color: var(--text-muted);
    text-decoration: none;
}

@media (max-width: 720px) {
    .preview-grid[b-8cprpusaoa] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* /Components/Pages/Admin/ActionGaps.razor.rz.scp.css */
.action-gaps[b-mffr72oiyh] {
    max-width: 60rem;
}

.hint[b-mffr72oiyh] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin: 0 0 0.75rem 0;
}

.gaps[b-mffr72oiyh] {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--border);
}

.gap[b-mffr72oiyh] {
    padding: 0.5rem 0.25rem;
    border-bottom: 1px solid var(--border);
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.gap-title[b-mffr72oiyh] {
    font-weight: 500;
}

.gap-where[b-mffr72oiyh] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.gap-need[b-mffr72oiyh] {
    color: var(--warn);
    margin-top: 0.15rem;
}

.gap-inactive[b-mffr72oiyh],
.gap-note[b-mffr72oiyh] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    margin-top: 0.15rem;
}
/* /Components/Pages/Admin/Automation.razor.rz.scp.css */
.toolbar[b-wy13sjuqy0] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.toolbar label[b-wy13sjuqy0] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.toolbar select[b-wy13sjuqy0] {
    min-width: 220px;
}

.board-scroll[b-wy13sjuqy0] {
    overflow-x: auto;
    padding-bottom: 0.5rem;
    margin: 0 -0.25rem;
}

.board[b-wy13sjuqy0] {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0 0.25rem;
    min-width: max-content;
}

.auto-col[b-wy13sjuqy0] {
    flex: 0 0 280px;
    background: var(--surface-2);
    border-radius: 8px;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: calc(100vh - 320px - var(--call-bar-offset, 0px));
    overflow-y: auto;
}

.auto-col-head[b-wy13sjuqy0] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.25rem 0.25rem 0.5rem 0.25rem;
    border-bottom: 1px solid var(--border);
}

.add-col-btn[b-wy13sjuqy0] {
    border: 1px solid var(--slate-200-border);
    background: var(--surface);
    color: var(--text-body);
    border-radius: 6px;
    width: 1.75rem;
    height: 1.75rem;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.add-col-btn:hover:not(:disabled)[b-wy13sjuqy0] {
    background: var(--accent-soft);
    border-color: var(--indigo-400-border);
    color: var(--indigo-400-text);
}

.auto-card[b-wy13sjuqy0] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 3px solid var(--indigo-350-border);
    border-radius: 6px;
    padding: 0.5rem 0.625rem;
    box-shadow: 0 1px 2px var(--shade-4);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.auto-card.off[b-wy13sjuqy0] {
    opacity: 0.55;
    border-left-color: var(--slate-350-border);
}

.auto-card-top[b-wy13sjuqy0] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.4rem;
}

.auto-card-title[b-wy13sjuqy0] {
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--text);
}

.trigger-badge[b-wy13sjuqy0] {
    font-size: 0.65rem;
    color: var(--text-2);
    background: var(--surface-3);
    border-radius: 4px;
    padding: 0.05rem 0.35rem;
    white-space: nowrap;
}

.auto-card-meta[b-wy13sjuqy0] {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.auto-card-actions[b-wy13sjuqy0] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 0.15rem;
}

.link-btn[b-wy13sjuqy0] {
    border: none;
    background: none;
    color: var(--indigo-400-text);
    cursor: pointer;
    font-size: 0.72rem;
    padding: 0;
}

.link-btn:hover:not(:disabled)[b-wy13sjuqy0] { text-decoration: underline; }
.link-btn.danger[b-wy13sjuqy0] { color: var(--red-500-text); }

.board-empty[b-wy13sjuqy0] {
    text-align: center;
    font-size: 0.8rem;
    color: var(--text-faint);
    padding: 0.75rem 0;
}

.board-empty-pipeline[b-wy13sjuqy0] {
    color: var(--text-muted);
    padding: 2rem 1rem;
    text-align: center;
}

.global-section[b-wy13sjuqy0] {
    margin-top: 1.75rem;
    border-top: 1px solid var(--border);
    padding-top: 1rem;
}

.global-head[b-wy13sjuqy0] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.global-head h2[b-wy13sjuqy0] { margin: 0; }

.error[b-wy13sjuqy0] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
    border: 1px solid var(--danger-border-strong);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.875rem;
}

.error .dismiss[b-wy13sjuqy0] { font-weight: 700; opacity: 0.7; }

.modal h2[b-wy13sjuqy0] { margin-top: 0; font-size: 1.1rem; }

.modal .field[b-wy13sjuqy0] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.75rem;
}

.modal .field select[b-wy13sjuqy0] { width: 100%; }

.form-actions[b-wy13sjuqy0] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}
/* /Components/Pages/Admin/Banks.razor.rz.scp.css */
.hint[b-wxqzf1gcbv] {
    color: var(--text-muted);
    font-size: 0.875rem;
    max-width: 60rem;
}

.toolbar[b-wxqzf1gcbv] {
    margin-bottom: 1rem;
}

.toolbar .search[b-wxqzf1gcbv] {
    width: 18rem;
}

.add-form[b-wxqzf1gcbv] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    max-width: 48rem;
}

.add-form h2[b-wxqzf1gcbv] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.row[b-wxqzf1gcbv] {
    display: flex;
    gap: 1rem;
}

.row .field[b-wxqzf1gcbv] {
    flex: 1;
}

.row .field.bic[b-wxqzf1gcbv] {
    flex: 0 0 11rem;
}

.add-form .field[b-wxqzf1gcbv]  input {
    width: 100%;
    max-width: none;
}

.data-table tr.inactive td[b-wxqzf1gcbv] {
    color: var(--text-faint);
}

.data-table code[b-wxqzf1gcbv] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.edit-input[b-wxqzf1gcbv] {
    width: 100%;
    min-width: 12rem;
}

.edit-input.bic[b-wxqzf1gcbv] {
    min-width: 8rem;
}

.muted[b-wxqzf1gcbv] {
    color: var(--text-muted);
}
/* /Components/Pages/Admin/BitrixSync.razor.rz.scp.css */
.muted[b-q0aetvd7g1] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.error[b-q0aetvd7g1] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 0.5rem 0;
}

.ok-text[b-q0aetvd7g1] {
    color: var(--ok-strong);
    font-size: 0.875rem;
    margin: 0.5rem 0;
}

.sync-table[b-q0aetvd7g1],
.checks-table[b-q0aetvd7g1] {
    width: 100%;
    border-collapse: collapse;
    margin: 0.75rem 0;
    font-size: 0.875rem;
}

.sync-table th[b-q0aetvd7g1],
.sync-table td[b-q0aetvd7g1],
.checks-table th[b-q0aetvd7g1],
.checks-table td[b-q0aetvd7g1] {
    text-align: left;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--border);
}

.sync-table th[b-q0aetvd7g1],
.checks-table th[b-q0aetvd7g1] {
    background: var(--surface-alt);
    color: var(--text-body);
    font-weight: 500;
}

.sync-table td.num[b-q0aetvd7g1] {
    font-variant-numeric: tabular-nums;
    font-weight: 500;
    color: var(--text-strong);
}

.toolbar[b-q0aetvd7g1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-top: 0.75rem;
}

.toolbar label[b-q0aetvd7g1] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    font-size: 0.875rem;
}

.separator[b-q0aetvd7g1] {
    color: var(--text-faint);
    margin: 0 0.25rem;
}

.upload-row[b-q0aetvd7g1] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.kv[b-q0aetvd7g1] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0.75rem 0 0 0;
    max-width: 600px;
}

.kv dt[b-q0aetvd7g1] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-q0aetvd7g1] {
    margin: 0;
    color: var(--text-strong);
    font-weight: 500;
}

.inline-input.small[b-q0aetvd7g1] {
    width: 6rem;
}

.subgroup[b-q0aetvd7g1] {
    margin: 1.25rem 0 0.25rem 0;
    font-size: 0.9375rem;
    color: var(--text-2);
}

.map-table td[b-q0aetvd7g1] {
    vertical-align: top;
}

.map-table select[b-q0aetvd7g1] {
    min-width: 11rem;
    max-width: 22rem;
}

.cov-warn[b-q0aetvd7g1] {
    color: var(--warn-strong);
    font-weight: 500;
}

.map-product-plan[b-q0aetvd7g1] {
    display: flex;
    gap: 0.6rem;
    margin-top: 0.4rem;
    flex-wrap: wrap;
}

.map-sub[b-q0aetvd7g1] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.8125rem;
    color: var(--text-2);
}

.qty-input[b-q0aetvd7g1] {
    width: 8rem;
}

.preview-filter[b-q0aetvd7g1] {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    font-size: 0.875rem;
    margin: 0.25rem 0 0.5rem 0;
}

.preview-pager[b-q0aetvd7g1] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.deal-preview-item[b-q0aetvd7g1] {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
}

.deal-preview-item.is-problem[b-q0aetvd7g1] {
    border-color: var(--warn-border);
    background: var(--warn-softer);
}

.deal-preview-head[b-q0aetvd7g1] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.deal-lead[b-q0aetvd7g1] {
    font-weight: 600;
    color: var(--text-strong);
}

.deal-amount[b-q0aetvd7g1] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--text-strong);
}

.deal-badges[b-q0aetvd7g1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.4rem 0;
}

.badge[b-q0aetvd7g1] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--indigo-600-text);
    font-size: 0.75rem;
}

.badge-warn[b-q0aetvd7g1] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.deal-license[b-q0aetvd7g1] {
    margin-bottom: 0.4rem;
}

.lines-table[b-q0aetvd7g1] {
    margin: 0.25rem 0 0 0;
}

.lines-table .is-problem td[b-q0aetvd7g1] {
    background: var(--warn-softer);
}

@media (max-width: 640px) {
    .lines-table thead[b-q0aetvd7g1] {
        display: none;
    }

    .lines-table tr[b-q0aetvd7g1] {
        display: block;
        border-bottom: 1px solid var(--border);
        padding: 0.4rem 0;
    }

    .lines-table td[b-q0aetvd7g1] {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        border: none;
        padding: 0.2rem 0.25rem;
    }

    .lines-table td[b-q0aetvd7g1]::before {
        content: attr(data-label);
        color: var(--text-muted);
        font-size: 0.8125rem;
    }
}
/* /Components/Pages/Admin/CallBaseDetail.razor.rz.scp.css */
/* Базовые классы (.card/.field/.toolbar/button/.error/.data-table) — глобальные в app.css.
   Здесь только специфика конструктора базы обзвона. */

.criterion-row[b-sii2vgf18s] { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; margin-bottom: .25rem; }
.criterion-row select[b-sii2vgf18s], .criterion-row input[b-sii2vgf18s] { min-width: 9rem; }
.criterion-row > button.danger[b-sii2vgf18s] { min-width: auto; margin-left: auto; }

/* Блок-группа условий (внутри — «И») */
.criteria-group[b-sii2vgf18s] {
    border: 1px solid var(--border); border-radius: 8px; padding: .75rem .9rem; margin: .5rem 0;
    background: var(--surface);
}
.group-or[b-sii2vgf18s] {
    text-align: center; font-weight: 600; color: var(--text-muted); letter-spacing: .05em;
    font-size: .8rem; margin: .25rem 0;
}
.group-actions[b-sii2vgf18s] { display: flex; gap: 1rem; align-items: center; margin-top: .5rem; }
.add-group[b-sii2vgf18s] { margin-top: .5rem; }

/* Галочка «НЕ» — компактная, перед типом условия */
.neg-toggle[b-sii2vgf18s] {
    display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap;
    font-size: .8rem; color: var(--warn); min-width: auto;
}
.neg-toggle input[b-sii2vgf18s] { min-width: auto; }

/* «Включая связанных» у условий «Клиент» / «Действующая лицензия» */
.linked-toggle[b-sii2vgf18s] {
    display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap;
    font-size: .8rem; color: var(--indigo-600-text); min-width: auto;
}
.linked-toggle input[b-sii2vgf18s] { min-width: auto; }

/* Группы «Состояния в госреестре» — галочки в строку */
.state-toggle[b-sii2vgf18s] {
    display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap;
    font-size: .85rem; min-width: auto;
}
.state-toggle input[b-sii2vgf18s] { min-width: auto; }

/* Инлайн-подсказка под строкой условия */
.criterion-hint[b-sii2vgf18s] {
    font-size: .8rem; color: var(--text-muted); margin: 0 0 .6rem 1.5rem;
}
.criterion-hint .hint-ic[b-sii2vgf18s] { color: var(--text-faint); }
.criterion-hint .muted[b-sii2vgf18s] { margin-left: .35rem; font-style: italic; }

.link-danger[b-sii2vgf18s] {
    background: none; border: none; color: var(--danger); cursor: pointer; padding: 0;
    min-width: auto; font-size: .85rem; text-decoration: underline;
}

/* Сворачиваемая справка */
.criteria-help[b-sii2vgf18s] { margin: .5rem 0 1rem; border: 1px dashed var(--border-strong); border-radius: 8px; padding: .25rem .75rem; }
.criteria-help > summary[b-sii2vgf18s] { cursor: pointer; font-weight: 600; color: var(--text-body); padding: .35rem 0; }
.criteria-help .help-body[b-sii2vgf18s] { padding: .25rem 0 .5rem; }
.criteria-help .help-body p[b-sii2vgf18s] { margin: .4rem 0; font-size: .9rem; }
.help-table[b-sii2vgf18s] { margin: .6rem 0; font-size: .85rem; }
.help-table tr.help-group td[b-sii2vgf18s] { font-weight: 600; background: var(--surface-2); }
.help-recipes[b-sii2vgf18s] { font-size: .88rem; margin: .3rem 0 .3rem 1.1rem; }
.help-recipes li[b-sii2vgf18s] { margin: .25rem 0; }

.progress-summary[b-sii2vgf18s] {
    display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 1rem 0;
    padding: .75rem 1rem; background: var(--surface-alt); border-radius: 8px; font-size: .9rem;
}

/* Выбор клиентов для передачи: узкая колонка галочек, полоса с числом выбранных и кнопками */
.data-table th.pick[b-sii2vgf18s], .data-table td.pick[b-sii2vgf18s] { width: 2rem; text-align: center; }
.data-table .pick input[b-sii2vgf18s] { min-width: auto; }
.move-bar[b-sii2vgf18s] { align-items: center; flex-wrap: wrap; }
.cb-pick-all[b-sii2vgf18s] { display: inline-flex; align-items: center; gap: .45rem; }
.cb-pick-all input[b-sii2vgf18s] { min-width: auto; margin: 0; cursor: pointer; }

/* Шапка карточки: название и плашка, строка «направление · сценарий · условия», главная кнопка справа */
.cb-head[b-sii2vgf18s] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1rem; }
.cb-title[b-sii2vgf18s] { display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; }
.cb-title h1[b-sii2vgf18s] { margin: 0; }
.cb-sub[b-sii2vgf18s] { flex: 1 1 100%; order: 3; margin: 0; }
.cb-build[b-sii2vgf18s] { margin-left: auto; align-self: center; }
.cb-active[b-sii2vgf18s] { background: var(--surface-alt); color: var(--text-muted); font-weight: 400; }
.cb-archived[b-sii2vgf18s] { background: var(--warn-soft-strong); color: var(--warn-strong); font-weight: 600; }
.cb-build-result[b-sii2vgf18s] { margin: .25rem 0 .5rem; }
.progress-summary[b-sii2vgf18s] { margin: .6rem 0; }

/* «Проверка перед отдачей»: сворачиваемый блок со сводкой в заголовке */
.cb-check[b-sii2vgf18s] { margin: 0 0 .75rem; border: 1px solid var(--border); border-radius: 8px; padding: .25rem .75rem; }
.cb-check > summary[b-sii2vgf18s] { cursor: pointer; font-weight: 600; padding: .35rem 0; }

/* «Сохранить» и «Отмена» прилипают к низу вкладки «Настройки» */
.cb-actions[b-sii2vgf18s] { margin-top: .5rem; }

/* Телефон: таблица клиентов — карточками, галочка передачи — сверху справа */
@media (max-width: 640px) {
    .cb-build[b-sii2vgf18s] { margin-left: 0; width: 100%; }
    .targets-table.cards-narrow tbody tr[b-sii2vgf18s] { position: relative; }
    .targets-table.cards-narrow td.pick[b-sii2vgf18s] { position: absolute; top: .3rem; right: .4rem; padding: 0; width: auto; }
    .targets-table.cards-narrow td.pick[b-sii2vgf18s]::before { content: none; }
    .toolbar .filter[b-sii2vgf18s],.toolbar .filter select[b-sii2vgf18s] { max-width: 100%; box-sizing: border-box; }
    .toolbar .filter[b-sii2vgf18s] { display: flex; flex-direction: column; align-items: stretch; width: 100%; }
}
/* /Components/Pages/Admin/CallPlans.razor.rz.scp.css */
.plan-form[b-hwzv71qxee] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}

.plan-form label[b-hwzv71qxee] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.85rem;
}

.plan-form .inline-checkbox[b-hwzv71qxee] {
    flex-direction: row;
    align-items: center;
    gap: 0.4rem;
}

.plan-form input[type="number"][b-hwzv71qxee] {
    width: 7rem;
}

.plan-form-actions[b-hwzv71qxee] {
    display: flex;
    gap: 0.5rem;
}

.data-table tr.inactive td[b-hwzv71qxee] {
    color: var(--gray-400-text);
}

.badge-dept[b-hwzv71qxee] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--accent-soft-strong);
    color: var(--indigo-600-text);
    vertical-align: middle;
}

.plan-note[b-hwzv71qxee] {
    display: block;
    font-size: 0.78rem;
    color: var(--text-muted);
}
/* /Components/Pages/Admin/CallRecordingsDeleteModal.razor.rz.scp.css */
/* «С» и «По» в строку; на узком экране — друг под другом. */
.period[b-ytoryy39ck] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin-bottom: 0.75rem;
}

.period label[b-ytoryy39ck] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.period label > span[b-ytoryy39ck] {
    padding-top: 0.35rem;
    font-weight: 500;
}

.delete-count[b-ytoryy39ck] {
    margin: 0 0 0.35rem 0;
    font-variant-numeric: tabular-nums;
}

.dialog-note[b-ytoryy39ck] {
    margin: 0.75rem 0 0 0;
    color: var(--text);
}
/* /Components/Pages/Admin/CounterCreate.razor.rz.scp.css */
.crumbs[b-0ol3npi31d] {
    color: var(--text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

.row[b-0ol3npi31d] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.field[b-0ol3npi31d] {
    flex: 1;
    min-width: 220px;
    display: flex;
    flex-direction: column;
}

.field label[b-0ol3npi31d] {
    margin-bottom: 0.25rem;
}

.field[b-0ol3npi31d]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.field .hint[b-0ol3npi31d] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.3rem;
}

.field .hint code[b-0ol3npi31d] {
    background: var(--surface-2);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
}

.form-actions[b-0ol3npi31d] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.error[b-0ol3npi31d] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}
/* /Components/Pages/Admin/CounterDetail.razor.rz.scp.css */
.crumbs[b-yzrygml92g] {
    color: var(--text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

h1 small.muted[b-yzrygml92g] {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--text-muted);
    font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
    margin-left: 0.5rem;
}

.muted[b-yzrygml92g] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

dl.kv[b-yzrygml92g] {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 0.4rem 1rem;
    margin: 0;
}

dl.kv dt[b-yzrygml92g] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

dl.kv dd[b-yzrygml92g] {
    margin: 0;
    font-size: 0.9rem;
}

dl.kv code[b-yzrygml92g] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
}

.row[b-yzrygml92g] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.field[b-yzrygml92g] {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
}

.field label[b-yzrygml92g] {
    margin-bottom: 0.25rem;
}

.field[b-yzrygml92g]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.field .hint[b-yzrygml92g] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.3rem;
}

.field.adjust-actions[b-yzrygml92g] {
    flex-direction: row;
    gap: 0.5rem;
    align-items: flex-end;
}

.hint[b-yzrygml92g] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.4rem;
}

.form-actions[b-yzrygml92g] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.error[b-yzrygml92g] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}
/* /Components/Pages/Admin/Counters.razor.rz.scp.css */
.muted[b-r26udezwe0] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.muted code[b-r26udezwe0] {
    background: var(--surface-2);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
}

.toolbar[b-r26udezwe0] {
    margin: 1rem 0;
}

.data-table code[b-r26udezwe0] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.row-actions[b-r26udezwe0] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-r26udezwe0] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}
/* /Components/Pages/Admin/CustomFieldCreate.razor.rz.scp.css */
.hint[b-67m3pflps0] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin: 0.25rem 0 0;
}

.field[b-67m3pflps0]  .validation-message {
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}
/* /Components/Pages/Admin/CustomFieldDetail.razor.rz.scp.css */
dl.kv[b-0s2v2y2966] {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 0.4rem 1rem;
    margin: 0;
}

dl.kv dt[b-0s2v2y2966] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

dl.kv dd[b-0s2v2y2966] {
    margin: 0;
    font-size: 0.9rem;
    min-width: 0;
}

dl.kv code[b-0s2v2y2966],
.options-table code[b-0s2v2y2966] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.85rem;
}

.required-stages ul[b-0s2v2y2966] {
    margin: 0;
    padding-left: 1.1rem;
}

.hint[b-0s2v2y2966] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin: 0.25rem 0 0;
}

h3[b-0s2v2y2966] {
    font-size: 1rem;
    margin: 1.5rem 0 0.5rem;
}

.options-wrap[b-0s2v2y2966] {
    max-width: 40rem;
    overflow-x: auto;
}

.options-table td.num[b-0s2v2y2966] {
    white-space: nowrap;
}

.field[b-0s2v2y2966]  .validation-message {
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

/* На телефоне подпись — над значением: в две колонки длинные значения (стадии) сжимались в узкую полосу. */
@media (max-width: 640px) {
    dl.kv[b-0s2v2y2966] {
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    dl.kv dd[b-0s2v2y2966] {
        margin-bottom: 0.6rem;
    }

    .card-header[b-0s2v2y2966] { flex-wrap: wrap; }
    .card-header h2[b-0s2v2y2966] { flex: 1 1 100%; }
}
/* /Components/Pages/Admin/DemoDataCard.razor.rz.scp.css */
/* Вид — как у карточек «Параметров системы» (их стили изолированы страницей). */
.card[b-l02mv3wnoj] {
    max-width: 720px;
}

/* Карточка стенда, а не настройка: отличаем цветом, чтобы её не приняли за обычный параметр. */
.demo-card[b-l02mv3wnoj] {
    border-color: var(--blue-100-border);
    background: var(--accent-softer);
}

.muted[b-l02mv3wnoj] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

code[b-l02mv3wnoj] {
    background: var(--accent-soft);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
    font-size: 0.85em;
}

.form-actions[b-l02mv3wnoj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.running[b-l02mv3wnoj] {
    color: var(--accent-text);
    font-size: 0.9rem;
}

.ok[b-l02mv3wnoj] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 0.75rem 0 0;
}

.error[b-l02mv3wnoj] {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
}

button.link[b-l02mv3wnoj] {
    background: none;
    border: none;
    padding: 0;
    margin-left: 0.5rem;
    color: var(--accent-text);
    text-decoration: underline;
    cursor: pointer;
    font-size: inherit;
}

.logins[b-l02mv3wnoj] {
    margin-top: 1rem;
    font-size: 0.875rem;
}

.logins summary[b-l02mv3wnoj] {
    cursor: pointer;
    color: var(--text-body);
}

.logins table[b-l02mv3wnoj] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 0.5rem;
}

.logins td[b-l02mv3wnoj] {
    padding: 0.3rem 0.5rem 0.3rem 0;
    border-bottom: 1px solid var(--row-border);
    vertical-align: top;
}

.confirm-check[b-l02mv3wnoj] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    margin: 0.5rem 0;
    font-size: 0.9rem;
}

@media (max-width: 600px) {
    /* На узком экране роль уходит под имя, чтобы таблица не вылезала за карточку. */
    .logins tr[b-l02mv3wnoj] {
        display: flex;
        flex-wrap: wrap;
        border-bottom: 1px solid var(--row-border);
        padding: 0.3rem 0;
    }

    .logins td[b-l02mv3wnoj] {
        border-bottom: none;
        padding: 0 0.5rem 0 0;
    }

    .logins td:last-child[b-l02mv3wnoj] {
        flex-basis: 100%;
    }
}
/* /Components/Pages/Admin/DepartmentDetail.razor.rz.scp.css */
.crumbs[b-p8vx1hymax] {
    margin: 0 0 1rem 0;
    font-size: 0.875rem;
}

.crumbs a[b-p8vx1hymax] {
    color: var(--text-2);
}

.kv[b-p8vx1hymax] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0 0 1rem 0;
    max-width: 600px;
}

.kv dt[b-p8vx1hymax] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-p8vx1hymax] {
    margin: 0;
}

.kv code[b-p8vx1hymax] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.hint[b-p8vx1hymax] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin: 0;
}

.hint a[b-p8vx1hymax] {
    color: var(--accent-text);
}

.add-member[b-p8vx1hymax], .role-preset[b-p8vx1hymax] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 1rem;
}

.select[b-p8vx1hymax] {
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
    min-width: 320px;
}

.select:focus[b-p8vx1hymax] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.data-table tr.inactive[b-p8vx1hymax] {
    color: var(--text-faint);
    background: var(--surface-alt);
}

.row-actions[b-p8vx1hymax] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-p8vx1hymax] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.membership-lock[b-p8vx1hymax] {
    margin-bottom: 0.75rem;
}

@media (max-width: 640px) {
    .add-member[b-p8vx1hymax], .role-preset[b-p8vx1hymax] {
        flex-wrap: wrap;
    }

    .select[b-p8vx1hymax] {
        flex: 1 1 100%;
        min-width: 0;
    }
}
/* /Components/Pages/Admin/DepartmentRemoveDialog.razor.rz.scp.css */
/* Куда перенести — список во всю ширину окна, под ним что изменится в выбранном отделе. */
.dept-target select[b-ojl04h4xom] {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0.35rem 0;
}

/* Что изменится у выключенного отдела — первым абзацем, вплотную к заголовку, как числа у удаления. */
.dept-consequences[b-ojl04h4xom] { margin: 0 0 0.75rem 0; }
/* /Components/Pages/Admin/Departments.razor.rz.scp.css */
.toolbar[b-vvampuqlwt] {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.inline-checkbox[b-vvampuqlwt] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-2);
}

.add-form[b-vvampuqlwt] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.add-form h2[b-vvampuqlwt] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.row[b-vvampuqlwt] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.field[b-vvampuqlwt] {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.field label[b-vvampuqlwt] {
    margin-bottom: 0.25rem;
}

.text-input[b-vvampuqlwt] {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
}

.select[b-vvampuqlwt] {
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.field[b-vvampuqlwt]  input:focus, .text-input:focus[b-vvampuqlwt], .select:focus[b-vvampuqlwt] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.field[b-vvampuqlwt]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.form-actions[b-vvampuqlwt] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.data-table tr.inactive[b-vvampuqlwt] {
    color: var(--text-faint);
    background: var(--surface-alt);
}

.data-table code[b-vvampuqlwt] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.data-table a[b-vvampuqlwt] {
    color: var(--accent-text);
}

.tree-branch[b-vvampuqlwt] {
    color: var(--text-faint);
    margin-right: 0.35rem;
}

.row-actions[b-vvampuqlwt] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    align-items: center;
}

.error[b-vvampuqlwt] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.lock-note[b-vvampuqlwt] {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.lock-hint[b-vvampuqlwt] {
    margin: 0.5rem 0 0;
    max-width: 40rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/* Выбор руководителя не растягивает таблицу: на 1280 она иначе шире страницы. */
.departments-table .select[b-vvampuqlwt] {
    max-width: 14rem;
}

@media (max-width: 640px) {
    .departments-table .select[b-vvampuqlwt] {
        max-width: 100%;
    }

    .row[b-vvampuqlwt] {
        flex-direction: column;
    }
}
/* /Components/Pages/Admin/DirectionDetail.razor.rz.scp.css */
.crumbs[b-6hig2tqrgv] {
    margin: 0 0 1rem 0;
    font-size: 0.875rem;
}

.crumbs a[b-6hig2tqrgv] {
    color: var(--text-2);
}

.kv[b-6hig2tqrgv] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0 0 1rem 0;
    max-width: 600px;
}

.kv dt[b-6hig2tqrgv] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-6hig2tqrgv] {
    margin: 0;
}

.kv code[b-6hig2tqrgv] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.add-form[b-6hig2tqrgv] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.row[b-6hig2tqrgv] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.field[b-6hig2tqrgv] {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.field.check-row[b-6hig2tqrgv] {
    justify-content: flex-end;
}

.field label[b-6hig2tqrgv] {
    margin-bottom: 0.25rem;
}

.field[b-6hig2tqrgv]  input[type="text"],
.field[b-6hig2tqrgv]  input:not([type]) {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
}

.field[b-6hig2tqrgv]  input[type="text"]:focus,
.field[b-6hig2tqrgv]  input:not([type]):focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.field[b-6hig2tqrgv]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.form-actions[b-6hig2tqrgv] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.data-table tr.inactive[b-6hig2tqrgv] {
    color: var(--text-faint);
    background: var(--surface-alt);
}

.data-table[b-6hig2tqrgv]  a {
    color: var(--accent-text);
}

.row-actions[b-6hig2tqrgv] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-6hig2tqrgv] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.renewal-entry .muted[b-6hig2tqrgv] {
    color: var(--text-muted);
}

.renewal-warn[b-6hig2tqrgv] {
    background: var(--warn-soft-strong);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
    max-width: 600px;
}

.dept-hint[b-6hig2tqrgv] {
    margin-bottom: 1rem;
}

.dept-hint p[b-6hig2tqrgv] {
    margin: 0 0 0.5rem 0;
}

.setting[b-6hig2tqrgv] {
    margin-bottom: 1.1rem;
}

.setting-title[b-6hig2tqrgv] {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-body);
}

label.setting-title.inline-checkbox[b-6hig2tqrgv] {
    display: inline-flex;
}

.setting-choices[b-6hig2tqrgv] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.5rem;
}

.setting-hint[b-6hig2tqrgv] {
    margin: 0.3rem 0 0 0;
    max-width: 60rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.handoff-settings > .setting-hint[b-6hig2tqrgv] {
    margin: 0 0 1rem 0;
}

.setting select[b-6hig2tqrgv] {
    max-width: 20rem;
}

.handoff-marks[b-6hig2tqrgv] {
    margin-top: 0.75rem;
    max-width: 46rem;
    padding: 0.75rem 1rem;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
}

.handoff-marks > .setting-hint:first-of-type[b-6hig2tqrgv] {
    margin: 0 0 0.5rem 0;
}

.mark-row[b-6hig2tqrgv] {
    display: flex;
    flex-wrap: wrap;
    margin: 0.3rem 0;
}

.mark-note[b-6hig2tqrgv] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}
/* /Components/Pages/Admin/Directions.razor.rz.scp.css */
.toolbar[b-fa8ydqt42t] {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.inline-checkbox[b-fa8ydqt42t] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-2);
}

.add-form[b-fa8ydqt42t] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.add-form h2[b-fa8ydqt42t] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.row[b-fa8ydqt42t] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.field[b-fa8ydqt42t] {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.field label[b-fa8ydqt42t] {
    margin-bottom: 0.25rem;
}

.field[b-fa8ydqt42t]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.form-actions[b-fa8ydqt42t] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.data-table tr.inactive[b-fa8ydqt42t] {
    color: var(--text-faint);
    background: var(--surface-alt);
}

.data-table code[b-fa8ydqt42t] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.data-table a[b-fa8ydqt42t] {
    color: var(--accent-text);
}

.row-actions[b-fa8ydqt42t] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-fa8ydqt42t] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}
/* /Components/Pages/Admin/EmailTemplatesPage.razor.rz.scp.css */
.muted[b-2yqo5k0cqv] {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.muted code[b-2yqo5k0cqv] {
    background: var(--surface-2);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
    font-size: 0.82rem;
}

.data-table[b-2yqo5k0cqv] {
    margin-bottom: 1.5rem;
}

.row-actions[b-2yqo5k0cqv] {
    display: flex;
    gap: 0.6rem;
}

.link[b-2yqo5k0cqv] {
    background: transparent;
    border: none;
    color: var(--accent-text);
    cursor: pointer;
    padding: 0;
    font: inherit;
}

.link:hover[b-2yqo5k0cqv] {
    text-decoration: underline;
}

.link.danger[b-2yqo5k0cqv] {
    color: var(--danger);
}

.tpl-form[b-2yqo5k0cqv] {
    max-width: 720px;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1rem 1.1rem;
    background: var(--surface-alt);
}

.row[b-2yqo5k0cqv] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.field[b-2yqo5k0cqv] {
    margin-bottom: 0.85rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 180px;
}

.field.narrow[b-2yqo5k0cqv] {
    flex: 0 0 auto;
    min-width: 120px;
}

.field label[b-2yqo5k0cqv] {
    margin-bottom: 0.25rem;
}

.checkbox-label[b-2yqo5k0cqv] {
    flex-direction: row;
    align-items: center;
    gap: 0.4rem;
    margin-top: 1.5rem;
}

.form-actions[b-2yqo5k0cqv] {
    display: flex;
    gap: 0.6rem;
}

.form-actions button[b-2yqo5k0cqv] {
    padding: 0.5rem 1rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
}

.form-actions button.primary[b-2yqo5k0cqv] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--on-accent);
    font-weight: 500;
}

.error[b-2yqo5k0cqv] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

.success[b-2yqo5k0cqv] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}
/* /Components/Pages/Admin/InstallationSchedule.razor.rz.scp.css */
/* Стадия, которую отметить нельзя (закрывающая или деактивированная без отметки): подпись бледнее, флажок выключен. */
.stage-check.locked[b-z3jel6nlrq] {
    color: var(--text-muted);
}

/* Отмеченная стадия, которой нет в работе: отметку стоит снять. */
.badge.stage-hidden[b-z3jel6nlrq] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}
/* /Components/Pages/Admin/LeadDistributionSettings.razor.rz.scp.css */
/* Предупреждение у выбора: сохранить можно, но выбор, скорее всего, ошибка. */
.warn[b-3vnim1l19e] {
    background: var(--warn-soft-strong);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.4rem 0.75rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    margin: 0.4rem 0 0;
}

/* Строка под галочкой автораспределения: следующая галочка — не впритык. */
.warn.backlog[b-3vnim1l19e] {
    margin-bottom: 0.6rem;
}
/* /Components/Pages/Admin/MailServerSettingsPage.razor.rz.scp.css */
.page-hint[b-swvvnl09ho] {
    color: var(--text-muted);
    font-size: 0.85rem;
    max-width: 640px;
    margin: 0 0 1.25rem 0;
}

.card[b-swvvnl09ho] {
    max-width: 640px;
}

.grid[b-swvvnl09ho] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.field[b-swvvnl09ho] {
    display: flex;
    flex-direction: column;
    margin-bottom: 0.25rem;
    min-width: 160px;
}

.field.grow[b-swvvnl09ho] {
    flex: 1;
    min-width: 220px;
}

.field.narrow[b-swvvnl09ho] {
    flex: 0 0 auto;
    width: 130px;
    min-width: 0;
}

.field label[b-swvvnl09ho] {
    margin-bottom: 0.3rem;
}

.checkbox-row[b-swvvnl09ho] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: var(--text-body);
    cursor: pointer;
}

.attach-limit[b-swvvnl09ho] {
    margin-top: 1rem;
}

.hint[b-swvvnl09ho] {
    color: var(--text-muted);
    font-size: 0.8rem;
    margin: 0.35rem 0 0 0;
    max-width: 560px;
}

.error[b-swvvnl09ho] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.85rem;
    max-width: 640px;
}

.success[b-swvvnl09ho] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.85rem;
    max-width: 640px;
}

.check-card input[b-swvvnl09ho] {
    width: 100%;
}

.check-button[b-swvvnl09ho] {
    margin-top: 0.85rem;
}

.check-result[b-swvvnl09ho] {
    margin: 0.85rem 0 0 0;
}

.confirm-warn[b-swvvnl09ho] {
    color: var(--warn-strong);
    font-weight: 600;
}
/* /Components/Pages/Admin/OrganizationSettingsPage.razor.rz.scp.css */
.card[b-c6l7yj1w7s] {
    max-width: 720px;
}

.muted[b-c6l7yj1w7s] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.muted code[b-c6l7yj1w7s] {
    background: var(--surface-2);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
}

.current[b-c6l7yj1w7s] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.625rem 0.875rem;
    margin: 1rem 0;
    font-size: 0.95rem;
}

.current .muted[b-c6l7yj1w7s] {
    margin-left: 0.5rem;
}

.row[b-c6l7yj1w7s] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.field[b-c6l7yj1w7s] {
    flex: 1;
    min-width: 240px;
    display: flex;
    flex-direction: column;
}

.field label[b-c6l7yj1w7s] {
    margin-bottom: 0.25rem;
}

.field[b-c6l7yj1w7s]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.form-actions[b-c6l7yj1w7s] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.error[b-c6l7yj1w7s] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.ok[b-c6l7yj1w7s] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.kv[b-c6l7yj1w7s] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.35rem 1.25rem;
    margin: 0.75rem 0 0 0;
    max-width: 640px;
    font-size: 0.875rem;
}

.kv dt[b-c6l7yj1w7s] {
    color: var(--text-muted);
}

.kv dd[b-c6l7yj1w7s] {
    margin: 0;
    color: var(--text-strong);
    font-weight: 500;
}

.reprice-sample[b-c6l7yj1w7s] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 0.5rem;
    font-size: 0.8125rem;
}

.reprice-sample th[b-c6l7yj1w7s],
.reprice-sample td[b-c6l7yj1w7s] {
    text-align: left;
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--border);
}

.facsimile-grid[b-c6l7yj1w7s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-top: 0.75rem;
}

.facsimile-cell[b-c6l7yj1w7s] {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.75rem;
    background: var(--surface-alt);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.facsimile-cell > label[b-c6l7yj1w7s] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--text-body);
}

/* Образец — на «бумаге» в обеих темах: подпись и печать ложатся на белый лист документа; шахматка показывает
   прозрачные места файла. */
.facsimile-preview[b-c6l7yj1w7s] {
    background: var(--paper-bg);
    border: 1px dashed var(--slate-150-border);
    border-radius: 4px;
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
    background-image:
        linear-gradient(45deg, var(--paper-shade) 25%, transparent 25%),
        linear-gradient(-45deg, var(--paper-shade) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, var(--paper-shade) 75%),
        linear-gradient(-45deg, transparent 75%, var(--paper-shade) 75%);
    background-size: 12px 12px;
    background-position: 0 0, 0 6px, 6px -6px, -6px 0;
}

.facsimile-preview .muted[b-c6l7yj1w7s] {
    color: var(--paper-muted);
}

.facsimile-preview .facsimile-missing[b-c6l7yj1w7s] {
    color: var(--paper-danger);
    font-weight: 600;
    text-align: center;
}

.facsimile-preview img[b-c6l7yj1w7s] {
    max-width: 100%;
    max-height: 160px;
    object-fit: contain;
}

.facsimile-actions[b-c6l7yj1w7s] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.facsimile-width[b-c6l7yj1w7s] {
    display: flex;
    flex-direction: column;
}

.facsimile-width label[b-c6l7yj1w7s] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--text-body);
    margin-bottom: 0.25rem;
}

.facsimile-width[b-c6l7yj1w7s]  input {
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
    width: 100%;
    max-width: 140px;
}

.facsimile-natural[b-c6l7yj1w7s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
    margin-top: 0.4rem;
    font-size: 0.8125rem;
    color: var(--text-body);
}

/* На телефоне подпись и печать — одна под другой: вдвоём в строку не помещаются кнопка выбора файла и ширина. */
@media (max-width: 720px) {
    .facsimile-grid[b-c6l7yj1w7s] {
        grid-template-columns: 1fr;
    }
}

.facsimile-layers[b-c6l7yj1w7s] {
    margin-top: 1rem;
}

.facsimile-layers[b-c6l7yj1w7s]  select {
    max-width: 360px;
}

.facsimile-layers .muted[b-c6l7yj1w7s] {
    margin: 0.4rem 0 0;
    max-width: 72ch;
}

.inline-checkbox[b-c6l7yj1w7s] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9375rem;
    color: var(--text-body);
    cursor: pointer;
}

.reprice-sample th.num-col[b-c6l7yj1w7s],
.reprice-sample td.num[b-c6l7yj1w7s] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 480px) {
    .kv[b-c6l7yj1w7s] {
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    .kv dd[b-c6l7yj1w7s] {
        margin-bottom: 0.4rem;
    }
}

/* Отказы и «Сохранено» над кнопкой — шириной с карточки, а не во всю страницу. */
.error[b-c6l7yj1w7s],
.ok[b-c6l7yj1w7s] {
    max-width: 720px;
}

.invalid-summary ul[b-c6l7yj1w7s] {
    margin: 0.3rem 0 0;
    padding-left: 1.2rem;
}
/* /Components/Pages/Admin/ProductCreate.razor.rz.scp.css */
.crumbs[b-lxsasdwxv4] {
    color: var(--text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

.row[b-lxsasdwxv4] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.field[b-lxsasdwxv4] {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
}

.field label[b-lxsasdwxv4] {
    margin-bottom: 0.25rem;
}

.field[b-lxsasdwxv4]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.field.check-row[b-lxsasdwxv4] {
    flex-direction: row;
    align-items: center;
}

.field.check-row label[b-lxsasdwxv4] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.9rem;
}

.field .hint[b-lxsasdwxv4] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.25rem;
}

.radio[b-lxsasdwxv4] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-right: 1rem;
    font-size: 0.9rem;
}

.form-actions[b-lxsasdwxv4] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.error[b-lxsasdwxv4] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.field.quarterly-field label[b-lxsasdwxv4] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.9rem;
}
/* /Components/Pages/Admin/ProductDetail.razor.rz.scp.css */
.crumbs[b-riw7r2xwpm] {
    color: var(--text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

h1 small.muted[b-riw7r2xwpm] {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--text-muted);
    font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
    margin-left: 0.5rem;
}

dl.kv[b-riw7r2xwpm] {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 0.4rem 1rem;
    margin: 0;
}

dl.kv dt[b-riw7r2xwpm] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

dl.kv dd[b-riw7r2xwpm] {
    margin: 0;
    font-size: 0.9rem;
}

dl.kv code[b-riw7r2xwpm] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.85rem;
}

.muted[b-riw7r2xwpm] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.row[b-riw7r2xwpm] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.field[b-riw7r2xwpm] {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
}

.field label[b-riw7r2xwpm] {
    margin-bottom: 0.25rem;
}

.field[b-riw7r2xwpm]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.field.check-row[b-riw7r2xwpm] {
    flex-direction: row;
    align-items: center;
}

.field.check-row label[b-riw7r2xwpm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.9rem;
}

.radio[b-riw7r2xwpm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-right: 1rem;
    font-size: 0.9rem;
}

.form-actions[b-riw7r2xwpm] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.data-table tr.editing[b-riw7r2xwpm] {
    background: var(--warn-softer);
}

/* «мес.» у периода — только в заголовке карточки на телефоне: на широком экране единица уже в шапке колонки. */
.unit-narrow[b-riw7r2xwpm] {
    display: none;
}

@media (max-width: 640px) {
    .unit-narrow[b-riw7r2xwpm] {
        display: inline;
    }
}

.cell-input[b-riw7r2xwpm] {
    width: 100%;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.cell-input:focus[b-riw7r2xwpm] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--accent-ring);
}

.row-actions[b-riw7r2xwpm] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-riw7r2xwpm] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

/* Смена «Единицы цены»: число остаётся тем же — предупреждение с выбором, пересчитать по БВ или оставить. */
.unit-warning[b-riw7r2xwpm] {
    background: var(--warn-soft);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.6rem 0.8rem;
    border-radius: 8px;
    margin-bottom: 0.75rem;
    font-size: 0.875rem;
}

.unit-warning p[b-riw7r2xwpm] {
    margin: 0 0 0.4rem;
}

.unit-warning-actions[b-riw7r2xwpm] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Квартальный тариф: метка в параметрах, подсказка у галочки, вместо «Добавить план» — почему второго срока нет. */
.quarterly-badge[b-riw7r2xwpm] {
    display: inline-block;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--accent-text);
    font-size: 0.8125rem;
    font-weight: 500;
}

.field.quarterly-field label[b-riw7r2xwpm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.9rem;
}

.field .hint[b-riw7r2xwpm] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.25rem;
}

.quarterly-plan-note[b-riw7r2xwpm] {
    background: var(--warn-softer);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 0 0 0.75rem;
}

/* Квартальный тариф: под хранимой ценой — за рабочий месяц и за год, как в сделке и счёте. */
.working-month-price[b-riw7r2xwpm] {
    margin-top: 0.2rem;
    font-size: 0.875rem;
}
/* /Components/Pages/Admin/Products.razor.rz.scp.css */
.toolbar[b-wc2bkgdzh9] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.toolbar .filter[b-wc2bkgdzh9] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.toolbar .filter label[b-wc2bkgdzh9] {
    font-size: 0.75rem;
    color: var(--text-2);
    font-weight: 500;
}

.toolbar .filter input[b-wc2bkgdzh9],
.toolbar .filter select[b-wc2bkgdzh9] {
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
    min-width: 180px;
}

.toolbar .filter input:focus[b-wc2bkgdzh9],
.toolbar .filter select:focus[b-wc2bkgdzh9] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.inline-checkbox[b-wc2bkgdzh9] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-2);
}

.info-bar[b-wc2bkgdzh9] {
    background: var(--accent-soft);
    border: 1px solid var(--accent-soft-border);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    color: var(--blue-650-text-2);
}

.info-bar .warn[b-wc2bkgdzh9] {
    color: var(--danger);
}

.data-table tr.inactive[b-wc2bkgdzh9] {
    color: var(--text-faint);
    background: var(--surface-alt);
}

.data-table code[b-wc2bkgdzh9] {
    background: var(--surface-2);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-size: 0.8125rem;
}

.row-actions[b-wc2bkgdzh9] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-wc2bkgdzh9] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

/* Квартальный тариф: под хранимой ценой за календарный месяц — цена за рабочий месяц и за год, как в сделке и счёте. */
.working-month-price[b-wc2bkgdzh9] {
    margin-top: 0.15rem;
    color: var(--text-muted);
    font-size: 0.8125rem;
}

@media (max-width: 640px) {
    .price-cell[b-wc2bkgdzh9] { text-align: right; }
}
/* /Components/Pages/Admin/RecycleBin.razor.rz.scp.css */
.bin-tabs[b-x8njj2w39o] {
    margin-bottom: 1rem;
}

/* Строка, на которую привела ссылка из списка лидов. */
.bin-highlight td[b-x8njj2w39o] {
    background: var(--warn-softer);
    box-shadow: inset 0 1px 0 var(--warn-border), inset 0 -1px 0 var(--warn-border);
}
/* /Components/Pages/Admin/RegistrySyncCard.razor.rz.scp.css */
/* Вид — как у карточек «Параметров системы» (их стили изолированы страницей). */
.card[b-hmi0vfqbps] {
    max-width: 720px;
}

.muted[b-hmi0vfqbps] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.muted.small[b-hmi0vfqbps] {
    font-size: 0.8125rem;
}

code[b-hmi0vfqbps] {
    background: var(--surface-2);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
    font-size: 0.85em;
}

.kinds[b-hmi0vfqbps] {
    margin: 0.25rem 0 0;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.schedule ul[b-hmi0vfqbps] {
    margin: 0.2rem 0 0;
    padding-left: 1.25rem;
}

.schedule[b-hmi0vfqbps] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.625rem 0.875rem;
    margin: 1rem 0;
    font-size: 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.warn[b-hmi0vfqbps] {
    color: var(--warn-strong);
}

.form-actions[b-hmi0vfqbps] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.running[b-hmi0vfqbps] {
    color: var(--accent-text);
    font-size: 0.875rem;
}

.ok[b-hmi0vfqbps] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 0.5rem 0;
}

.error[b-hmi0vfqbps] {
    margin: 0.5rem 0;
    font-size: 0.875rem;
}

.sync-runs[b-hmi0vfqbps] {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
    font-size: 0.8125rem;
}

.sync-runs th[b-hmi0vfqbps],
.sync-runs td[b-hmi0vfqbps] {
    text-align: left;
    vertical-align: top;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--row-border);
}

.sync-runs th[b-hmi0vfqbps] {
    color: var(--text-muted);
    font-weight: 500;
}

.sync-runs th.num-col[b-hmi0vfqbps],
.sync-runs td.num[b-hmi0vfqbps] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.status[b-hmi0vfqbps] {
    display: inline-block;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-weight: 500;
    white-space: nowrap;
}

.status.st-ok[b-hmi0vfqbps] {
    background: var(--ok-soft-strong);
    color: var(--ok-strong);
}

.status.st-partial[b-hmi0vfqbps] {
    background: var(--warn-soft-strong);
    color: var(--amber-700-text);
}

.status.st-failed[b-hmi0vfqbps] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
}

.status.st-running[b-hmi0vfqbps] {
    background: var(--accent-soft-strong);
    color: var(--accent-text);
}

@media (max-width: 600px) {
    /* Четыре колонки на ~390px влезают только мельче и плотнее; длинное имя запустившего — прокрутка внутри таблицы, а не вылет за карточку. */
    .sync-runs[b-hmi0vfqbps] {
        display: block;
        overflow-x: auto;
        font-size: 0.75rem;
    }

    .sync-runs th[b-hmi0vfqbps],
    .sync-runs td[b-hmi0vfqbps] {
        padding: 0.4rem 0.2rem;
    }

    .sync-runs th:nth-child(5)[b-hmi0vfqbps],
    .sync-runs td:nth-child(5)[b-hmi0vfqbps] {
        display: none;
    }
}
/* /Components/Pages/Admin/RoleDetail.razor.rz.scp.css */
.hint[b-drge1xaqzk] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.muted[b-drge1xaqzk] {
    color: var(--text-muted);
}

/* Сотрудники роли — строкой через промежутки: в роли бывает и два человека, и тридцать. */
.member-list[b-drge1xaqzk] {
    list-style: none;
    margin: 0 0 0.5rem 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
}
/* /Components/Pages/Admin/Roles.razor.rz.scp.css */
.lock-note[b-iinyb6ax3a] {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.lock-hint[b-iinyb6ax3a] {
    margin: 0.5rem 0 0;
    max-width: 40rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.holders[b-iinyb6ax3a] {
    max-width: 60rem;
    margin-top: 1.5rem;
}

.holders .hint[b-iinyb6ax3a] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.holders .muted[b-iinyb6ax3a] {
    color: var(--text-muted);
}

.right-select[b-iinyb6ax3a] {
    width: 100%;
    max-width: 32rem;
}

.holders-right[b-iinyb6ax3a] {
    margin: 1rem 0 0;
    font-weight: 500;
}

.holders-right code[b-iinyb6ax3a] {
    margin-left: 0.35rem;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--text-muted);
}

.holders h3[b-iinyb6ax3a] {
    margin: 1.25rem 0 0.5rem;
    font-size: 0.9375rem;
}

.holder-list[b-iinyb6ax3a] {
    margin: 0;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.holder-note[b-iinyb6ax3a] {
    color: var(--text-body);
}

.holder-list li.inactive[b-iinyb6ax3a],
.holder-list li.inactive a[b-iinyb6ax3a],
.holder-list li.inactive .holder-note[b-iinyb6ax3a] {
    color: var(--text-muted);
}
/* /Components/Pages/Admin/ScenarioEditor.razor.rz.scp.css */
/* Базовые классы (.card/.field/button/.error/.info/.success/.toolbar/.form-actions) —
   глобальные в app.css. Здесь только специфика редактора сценариев. */

.scenario-edit[b-hdsmuf5cm3] { display: grid; grid-template-columns: 19rem 1fr; gap: 1.25rem; align-items: start; }
@media (max-width: 900px) { .scenario-edit[b-hdsmuf5cm3] { grid-template-columns: 1fr; } }
.scenario-edit > *[b-hdsmuf5cm3] { min-width: 0; }
.scenario-edit[b-hdsmuf5cm3]  .EasyMDEContainer, .scenario-edit[b-hdsmuf5cm3]  .CodeMirror { max-width: 100%; }
.scenario-edit[b-hdsmuf5cm3]  .editor-toolbar { white-space: normal; }

.node-list[b-hdsmuf5cm3] { list-style: none; padding: 0; margin: 0 0 .75rem; display: flex; flex-direction: column; gap: .15rem; }
.node-list li[b-hdsmuf5cm3] { border-radius: 6px; }
.node-list li.selected[b-hdsmuf5cm3] { background: var(--accent-soft); }
.node-list .link-btn[b-hdsmuf5cm3] {
    display: flex; align-items: center; gap: .25rem; width: 100%;
    text-align: left; padding: .4rem .55rem; border-radius: 6px;
    background: none; border: none; color: var(--text-strong); cursor: pointer; font: inherit;
}
.node-list .link-btn:hover[b-hdsmuf5cm3] { background: var(--surface-2); }
.root-badge[b-hdsmuf5cm3] { color: var(--amber-550-text); }

.add-node[b-hdsmuf5cm3] { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .5rem; }

.subsection[b-hdsmuf5cm3] { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.subsection h3[b-hdsmuf5cm3] { font-size: .95rem; }

.option-list[b-hdsmuf5cm3] { list-style: none; padding: 0; margin: 0 0 .5rem; }
.option-list li[b-hdsmuf5cm3] { display: flex; gap: .5rem; align-items: center; margin-bottom: .4rem; }
.option-list li > input[type=text][b-hdsmuf5cm3] { flex: 1; }
@media (max-width: 600px) {
    .option-list li[b-hdsmuf5cm3] { flex-wrap: wrap; }
    .option-list li > input[type=text][b-hdsmuf5cm3] { flex: 1 1 100%; }
    .option-list li > select[b-hdsmuf5cm3] { flex: 1 1 0; min-width: 0; }
}

.validation[b-hdsmuf5cm3] { background: var(--surface-alt); border-color: var(--yellow-250-border); }
.validation ul[b-hdsmuf5cm3] { margin: 0; padding-left: 1.1rem; }
.validation .issue-error[b-hdsmuf5cm3] { color: var(--danger); }
.validation .issue-warn[b-hdsmuf5cm3] { color: var(--warn-strong); }

.danger.small[b-hdsmuf5cm3] { padding: .1rem .5rem; line-height: 1.3; }
.md-editor-textarea[b-hdsmuf5cm3] { width: 100%; min-height: 8rem; }
/* /Components/Pages/Admin/Stages.razor.rz.scp.css */
.crumbs[b-ilr3grhkjn] {
    margin: 0 0 0.5rem 0;
    font-size: 0.875rem;
    color: var(--text-muted);
}

.crumbs a[b-ilr3grhkjn] {
    color: var(--text-2);
}

.toolbar[b-ilr3grhkjn] {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.inline-checkbox[b-ilr3grhkjn] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-2);
}

.add-form[b-ilr3grhkjn] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.add-form h2[b-ilr3grhkjn] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.row[b-ilr3grhkjn] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    align-items: flex-start;
    flex-wrap: wrap;
}

.field[b-ilr3grhkjn] {
    flex: 1 1 200px;
    display: flex;
    flex-direction: column;
}

/* Правка — отдельной строкой во всю ширину под стадией (фон и отступы — общие, «edit-row» в app.css): таблица при
   этом не раздувается. */
.edit-row[b-ilr3grhkjn]  form {
    max-width: 48rem;
}

.field label[b-ilr3grhkjn] {
    margin-bottom: 0.25rem;
}

.field[b-ilr3grhkjn]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.color-picker[b-ilr3grhkjn] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    height: 36px;
}

.swatch[b-ilr3grhkjn] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid transparent;
    /* образец — цвет от класса stage-<цвет> на кнопке (app.css, «Цвет стадии воронки») */
    background: var(--stage-border);
    cursor: pointer;
    padding: 0;
    transition: transform 0.05s;
}

/* Образец под курсором — своего цвета: общее наведение кнопок (button:hover) иначе красит его в серый. */
.swatch:hover:not(:disabled)[b-ilr3grhkjn] {
    background: var(--stage-border);
    transform: scale(1.1);
}

.swatch.selected[b-ilr3grhkjn] {
    border-color: var(--slate-900-border);
    outline: 2px solid var(--white-border);
    outline-offset: -4px;
}

.form-actions[b-ilr3grhkjn] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

.warn[b-ilr3grhkjn] {
    background: var(--warn-soft-strong);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.4rem 0.75rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    margin-right: auto;
}

.note[b-ilr3grhkjn] {
    color: var(--text-muted);
    font-size: 0.875rem;
    font-style: italic;
}

.data-table tr.inactive[b-ilr3grhkjn] {
    color: var(--text-faint);
    background: var(--surface-alt);
}

.row-actions[b-ilr3grhkjn] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

/* Четыре кнопки в строке стадии — компактные, как button.small, а «Обязат. поля» в шапке переносится, если тесно:
   с Golos Text таблица иначе шире страницы на ноутбуке (1280). */
.row-actions button[b-ilr3grhkjn] {
    padding: 3px 10px;
    font-size: 12.5px;
}

.data-table th[b-ilr3grhkjn] {
    white-space: normal;
}

.error[b-ilr3grhkjn] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.warn[b-ilr3grhkjn] {
    margin-right: 0;
    margin-bottom: 0.5rem;
}

.stages-table td.ord-cell[b-ilr3grhkjn] {
    white-space: nowrap;
}

/* Телефон: колонки формы — в столбик (строка правки — блоком, общим правилом «cards-narrow»); длинное название стадии
   переносится по словам, а не обрезается краем плашки. */
@media (max-width: 640px) {
    .row[b-ilr3grhkjn] {
        flex-direction: column;
    }

    .stages-table td.card-title[b-ilr3grhkjn]  .stage-badge {
        white-space: normal;
        border-radius: 14px;
    }
}
/* /Components/Pages/Admin/SupportTopicsPage.razor.rz.scp.css */
.hint[b-wc1qbyfrpt] {
    color: var(--text-muted);
    font-size: 0.875rem;
    max-width: 60rem;
}

.toolbar[b-wc1qbyfrpt] {
    margin-bottom: 1rem;
}

.add-form[b-wc1qbyfrpt] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    max-width: 36rem;
}

.add-form h2[b-wc1qbyfrpt] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.add-form .field[b-wc1qbyfrpt]  input {
    width: 100%;
    max-width: none;
}

.data-table tr.inactive td[b-wc1qbyfrpt] {
    color: var(--text-faint);
}

.data-table tr.system-row td[b-wc1qbyfrpt] {
    background: var(--surface-alt);
}

.edit-input[b-wc1qbyfrpt] {
    width: 100%;
    min-width: 12rem;
}

.muted[b-wc1qbyfrpt] {
    color: var(--text-muted);
}

.other-texts[b-wc1qbyfrpt] {
    margin-top: 2rem;
}

.other-texts h2[b-wc1qbyfrpt] {
    margin: 0 0 0.5rem 0;
    font-size: 1.0625rem;
}

.ticket-links[b-wc1qbyfrpt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.6rem;
}

.promote-row td[b-wc1qbyfrpt] {
    background: var(--surface-alt);
}

.promote-form[b-wc1qbyfrpt] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    max-width: 36rem;
}

.other-done[b-wc1qbyfrpt] {
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: var(--ok-soft-strong);
    color: var(--ok-strong);
}

.ord-buttons[b-wc1qbyfrpt] {
    white-space: nowrap;
}

/* На телефоне строка таблицы — карточка с подписями слева; форме «Добавить в справочник» подпись не нужна. */
@media (max-width: 640px) {
    .promote-row td[b-wc1qbyfrpt] {
        display: block;
        text-align: left;
    }

    .promote-row td[b-wc1qbyfrpt]::before {
        content: none;
    }
}
/* /Components/Pages/Admin/Telephony.razor.rz.scp.css */
.card h2[b-2z77l1oxmu] {
    margin-top: 0;
}

.kv[b-2z77l1oxmu] {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 0.25rem 1rem;
    margin: 0 0 0.75rem 0;
}

.kv dt[b-2z77l1oxmu] {
    color: var(--gray-600-text);
    font-size: inherit;
    font-weight: 500;
}

.kv dd[b-2z77l1oxmu] {
    margin: 0;
}

.kv code[b-2z77l1oxmu] {
    background: var(--surface-2);
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    font-size: 0.85rem;
    word-break: break-all;
}

.muted[b-2z77l1oxmu] {
    color: var(--gray-450-text);
}

.error-text[b-2z77l1oxmu] {
    color: var(--red-550-text);
}

.ok-text[b-2z77l1oxmu] {
    color: var(--green-650-text);
}

.toolbar[b-2z77l1oxmu] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.accounts-table[b-2z77l1oxmu] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.accounts-table th[b-2z77l1oxmu],
.accounts-table td[b-2z77l1oxmu] {
    text-align: left;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

.accounts-table th[b-2z77l1oxmu] {
    font-weight: 600;
    background: var(--surface-alt);
}

.accounts-table td.mono[b-2z77l1oxmu] {
    font-family: monospace;
}

.accounts-table select[b-2z77l1oxmu] {
    width: 100%;
}

.test-call[b-2z77l1oxmu] {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    flex-wrap: wrap;
}

.test-call input[b-2z77l1oxmu] {
    min-width: 240px;
}

.warn-box[b-2z77l1oxmu] {
    background: var(--warn-soft);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.6rem 0.75rem;
    border-radius: var(--r);
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
}

.warn-box p[b-2z77l1oxmu] {
    margin: 0;
}

.warn-box p + p[b-2z77l1oxmu] {
    margin-top: 0.4rem;
}

.recordings-retry[b-2z77l1oxmu] {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 0.35rem;
}

.recordings-retry button[b-2z77l1oxmu] {
    white-space: nowrap;
}

/* На телефоне подпись над значением: в колонке справа от 220px подписи строки рвались по слову. */
@media (max-width: 640px) {
    .kv[b-2z77l1oxmu] {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .kv dd[b-2z77l1oxmu] {
        margin-bottom: 0.5rem;
    }
}

.import-summary[b-2z77l1oxmu] {
    flex: 1 1 320px;
}

.off-why[b-2z77l1oxmu] {
    display: block;
    font-size: 0.8rem;
}


/* На телефоне таблица шире экрана — прокручивается внутри карточки, а не обрезается. */
.table-scroll[b-2z77l1oxmu] {
    overflow-x: auto;
}

.table-scroll .accounts-table select[b-2z77l1oxmu] {
    min-width: 220px;
}

.storage-summary[b-2z77l1oxmu] {
    margin: 0 0 0.25rem 0;
}

.storage-notes[b-2z77l1oxmu] {
    margin: 0 0 0.5rem 0;
    font-size: 0.85rem;
}

.storage-table[b-2z77l1oxmu],
.storage-days[b-2z77l1oxmu] {
    border-collapse: collapse;
    font-size: 0.9rem;
}

.storage-table[b-2z77l1oxmu] {
    width: 100%;
    max-width: 36rem;
    margin-top: 0.5rem;
}

.storage-table th[b-2z77l1oxmu],
.storage-table td[b-2z77l1oxmu],
.storage-days th[b-2z77l1oxmu],
.storage-days td[b-2z77l1oxmu] {
    text-align: left;
    padding: 0.35rem 0.6rem;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

.storage-table th[b-2z77l1oxmu] {
    font-weight: 600;
    background: var(--surface-alt);
}

.storage-table .num[b-2z77l1oxmu],
.storage-days .num[b-2z77l1oxmu] {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.month-toggle[b-2z77l1oxmu] {
    font-size: inherit;
    text-align: left;
}

.month-toggle .caret[b-2z77l1oxmu] {
    display: inline-block;
    width: 1em;
}

.month-row.open td[b-2z77l1oxmu] {
    border-bottom: none;
}

/* Дни раскрытого месяца — вложенной таблицей под его строкой, с отступом под стрелкой. */
.days-row > td[b-2z77l1oxmu] {
    padding: 0 0 0.5rem 1.6rem;
}

.storage-days[b-2z77l1oxmu] {
    width: 100%;
}

.storage-days th[b-2z77l1oxmu] {
    font-weight: 500;
    color: var(--gray-600-text);
}

.storage-days tr:last-child td[b-2z77l1oxmu] {
    border-bottom: none;
}

/* «Удалить за период…» — над таблицей месяцев; итог удаления — над ней же. */
.storage-toolbar[b-2z77l1oxmu] {
    margin-top: 0.5rem;
}

.storage-deleted[b-2z77l1oxmu] {
    margin: 0 0 0.5rem 0;
}

/* «Удалить…» у дня — красной ссылкой: действие необратимое; сегодняшний день — серым, причина в подсказке. */
.day-actions[b-2z77l1oxmu] {
    text-align: right;
    white-space: nowrap;
}

.day-delete[b-2z77l1oxmu] {
    color: var(--red-500-text);
}

.day-delete:disabled[b-2z77l1oxmu] {
    color: var(--text-muted);
    cursor: default;
    text-decoration: none;
}

/* На телефоне четыре колонки дней с «Удалить…» помещаются только с узкими отступами: дата переносится, ссылка — нет. */
@media (max-width: 640px) {
    .storage-table th[b-2z77l1oxmu],
    .storage-table td[b-2z77l1oxmu],
    .storage-days th[b-2z77l1oxmu],
    .storage-days td[b-2z77l1oxmu] {
        padding: 0.35rem 0.35rem;
    }

    .days-row > td[b-2z77l1oxmu] {
        padding-left: 0.5rem;
    }
}

/* Телефон: выбор сотрудника — во всю ширину карточки, а не 220 px и прокрутка вбок. */
@media (max-width: 640px) {
    .table-scroll .accounts-table select[b-2z77l1oxmu] { min-width: 0; width: 100%; max-width: 100%; }
}
/* /Components/Pages/Admin/Templates.razor.rz.scp.css */
.muted[b-i89y6qqebq] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.muted code[b-i89y6qqebq] {
    background: var(--surface-2);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
    font-size: 0.85em;
}

.card-header[b-i89y6qqebq] {
    flex-wrap: wrap;
    gap: 1rem;
}

.inline-checkbox[b-i89y6qqebq] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-2);
}

.upload-grid[b-i89y6qqebq] {
    display: grid;
    grid-template-columns: 2fr 1fr 1.5fr 2fr auto;
    gap: 1rem;
    align-items: end;
}

.inline-edit[b-i89y6qqebq] {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
}

/* Список счётчика — вровень с компактными «✓» и «✕» рядом (30 px), а не 34, как обычное поле. */
.inline-edit select[b-i89y6qqebq] {
    height: 30px;
    padding-top: 4px;
    padding-bottom: 4px;
    min-width: 200px;
}

.inline-edit button[b-i89y6qqebq] {
    padding: 0.25rem 0.55rem;
    font-size: 0.85rem;
}

button.link-btn[b-i89y6qqebq] {
    border: none;
    background: transparent;
    color: var(--link);
    padding: 0;
    margin-left: 0.5rem;
    font-size: 0.8125rem;
    cursor: pointer;
    text-decoration: underline;
}

button.link-btn:hover:not(:disabled)[b-i89y6qqebq] {
    color: var(--accent-text);
    background: transparent;
}

button.link-btn.preset-replace[b-i89y6qqebq] {
    margin-left: 0;
}

/* Колонка «Файл» узкая: пометка — одной строкой, ссылка под ней и по левому краю, а не по центру кнопки. */
.preset-status[b-i89y6qqebq] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    margin-top: 0.2rem;
}

.preset-status button.link-btn[b-i89y6qqebq] {
    text-align: left;
}

.preset-badge[b-i89y6qqebq] {
    font-size: 0.75rem;
    color: var(--text-muted);
    white-space: nowrap;
    cursor: help;
}

.preset-badge.warn[b-i89y6qqebq] {
    color: var(--warn-strong);
    background: var(--warn-soft-strong);
    border-radius: 4px;
    padding: 0 0.35rem;
}

.field[b-i89y6qqebq] {
    display: flex;
    flex-direction: column;
}

.field label[b-i89y6qqebq] {
    margin-bottom: 0.25rem;
}

.field .hint[b-i89y6qqebq] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.3rem;
}

.upload-action[b-i89y6qqebq] {
    justify-content: flex-end;
}

.data-table tr.inactive[b-i89y6qqebq] {
    color: var(--text-faint);
    background: var(--surface-alt);
}

.row-actions[b-i89y6qqebq] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-i89y6qqebq] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.75rem;
}

.notice[b-i89y6qqebq] {
    background: var(--ok-softer);
    border: 1px solid var(--green-150-border);
    color: var(--ok-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.75rem;
}

.vocab-grid[b-i89y6qqebq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem 1.5rem;
}

.vocab-grid h3[b-i89y6qqebq] {
    font-size: 0.95rem;
    margin: 0 0 0.4rem 0;
    color: var(--text);
}

.vocab-grid ul[b-i89y6qqebq] {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.85rem;
}

.vocab-grid li[b-i89y6qqebq] {
    margin-bottom: 0.25rem;
    color: var(--text-2);
}

.vocab-grid code[b-i89y6qqebq] {
    background: var(--surface-2);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
    color: var(--text);
    font-size: 0.9em;
}

/* Телефон: счётчик и файл — во всю ширину карточки, правка в строке переносится и не раздвигает страницу. */
@media (max-width: 640px) {
    .upload-grid[b-i89y6qqebq] { grid-template-columns: minmax(0, 1fr); }
    .cell-body[b-i89y6qqebq] { width: 100%; min-width: 0; overflow-wrap: anywhere; }
    .inline-edit[b-i89y6qqebq] { display: flex; flex-wrap: wrap; width: 100%; }
    .inline-edit select[b-i89y6qqebq] { flex: 1 1 100%; min-width: 0; max-width: 100%; }
    .inline-edit[b-i89y6qqebq]  input[type="file"] { max-width: 100%; min-width: 0; }
}
/* /Components/Pages/Admin/UserHandover.razor.rz.scp.css */
.crumbs[b-nr76rng8ic] {
    margin: 0 0 1rem 0;
    font-size: 0.875rem;
}

.crumbs a[b-nr76rng8ic] {
    color: var(--text-2);
}

.intro[b-nr76rng8ic] {
    max-width: 52rem;
    color: var(--text-body);
    margin: 0 0 1.25rem 0;
}

.card[b-nr76rng8ic] {
    max-width: 52rem;
}

.hint[b-nr76rng8ic] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.muted[b-nr76rng8ic] {
    color: var(--text-muted);
}

.field select[b-nr76rng8ic] {
    width: 100%;
    max-width: 32rem;
}

.categories[b-nr76rng8ic] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.category[b-nr76rng8ic] {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.6rem 0.8rem;
}

.category.off[b-nr76rng8ic] {
    background: var(--surface-alt);
}

.category.off .category-check[b-nr76rng8ic] {
    color: var(--text-muted);
}

.category-check[b-nr76rng8ic] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-weight: 500;
}

.category-check strong[b-nr76rng8ic] {
    margin-left: auto;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.category > .hint[b-nr76rng8ic] {
    margin: 0.25rem 0 0 1.6rem;
}

.target-choice[b-nr76rng8ic] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 1rem;
    margin: 0.4rem 0 0 1.6rem;
    font-size: 0.875rem;
}

.target-choice label[b-nr76rng8ic] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.personal[b-nr76rng8ic] {
    margin-top: 1rem;
    font-size: 0.875rem;
    color: var(--text-body);
}

.personal p[b-nr76rng8ic] {
    margin: 0 0 0.25rem 0;
}

.personal ul[b-nr76rng8ic] {
    margin: 0;
    padding-left: 1.25rem;
}

.form-actions[b-nr76rng8ic] {
    flex-wrap: wrap;
    margin-top: 1rem;
}

.handover-result h3[b-nr76rng8ic] {
    margin: 1.25rem 0 0.5rem 0;
    font-size: 0.95rem;
}

.refusal[b-nr76rng8ic] {
    color: var(--warn-strong);
}

.failure[b-nr76rng8ic] {
    color: var(--danger-strong);
}

.skips[b-nr76rng8ic] {
    margin-top: 0.75rem;
    font-size: 0.875rem;
}

.skips summary[b-nr76rng8ic] {
    cursor: pointer;
    font-weight: 500;
}

.skips ul[b-nr76rng8ic] {
    margin: 0.4rem 0 0 0;
    padding-left: 1.25rem;
}

@media (max-width: 640px) {
    .category-check[b-nr76rng8ic] {
        flex-wrap: wrap;
    }

    .target-choice[b-nr76rng8ic],
    .category > .hint[b-nr76rng8ic] {
        margin-left: 0;
    }
}
/* /Components/Pages/Admin/UserPermissions.razor.rz.scp.css */
.crumbs[b-d8jrux4j19] {
    margin: 0 0 1rem 0;
    font-size: 0.875rem;
}

.crumbs a[b-d8jrux4j19] {
    color: var(--text-2);
}

.intro[b-d8jrux4j19] {
    max-width: 52rem;
    color: var(--text-body);
    margin: 0 0 1.25rem 0;
}

.card[b-d8jrux4j19] {
    max-width: 60rem;
}

.hint[b-d8jrux4j19] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.muted[b-d8jrux4j19] {
    color: var(--text-muted);
}

.sources[b-d8jrux4j19] {
    margin: 0;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sources li.inactive[b-d8jrux4j19] {
    color: var(--text-muted);
}

.sources li.inactive a[b-d8jrux4j19] {
    color: var(--text-muted);
}

.source-note[b-d8jrux4j19] {
    font-size: 0.875rem;
}

.full-access[b-d8jrux4j19] {
    font-weight: 500;
    margin: 0 0 0.5rem 0;
}

.search-row[b-d8jrux4j19] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.search-row .search[b-d8jrux4j19] {
    flex: 0 1 24rem;
    min-width: 0;
    width: 100%;
}

h3.group[b-d8jrux4j19] {
    margin: 1.25rem 0 0.5rem 0;
    font-size: 0.9375rem;
}

.rights[b-d8jrux4j19] {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--border);
}

.right[b-d8jrux4j19] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.25rem 1rem;
    padding: 0.45rem 0.25rem;
    border-bottom: 1px solid var(--border);
    font-size: 0.9rem;
}

.right-name code[b-d8jrux4j19] {
    margin-left: 0.35rem;
    font-size: 0.75rem;
    color: var(--text-muted);
}

.right-from[b-d8jrux4j19] {
    color: var(--text-body);
}

.rights.missing .right-from[b-d8jrux4j19] {
    color: var(--text-muted);
}

.who-else[b-d8jrux4j19] {
    margin-left: 0.5rem;
    font-size: 0.8125rem;
    white-space: nowrap;
}
/* /Components/Pages/Admin/Users.razor.rz.scp.css */
.toolbar[b-vw31elxqvz] {
    margin-bottom: 1rem;
}

.add-form[b-vw31elxqvz] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.add-form h2[b-vw31elxqvz] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.row[b-vw31elxqvz] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.field[b-vw31elxqvz] {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.field label[b-vw31elxqvz] {
    margin-bottom: 0.25rem;
}

.field[b-vw31elxqvz]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

/* Пароль нового сотрудника и «Сгенерировать» рядом; на узком экране кнопка уходит под поле. */
.password-generate[b-vw31elxqvz] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: 40rem;
}

.password-generate[b-vw31elxqvz]  .password-field {
    flex: 1 1 16rem;
}

.form-actions[b-vw31elxqvz] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.users-table[b-vw31elxqvz] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

/* По бокам ячейки 8 px, кнопки действий — компактные, как button.small: с Golos Text таблица иначе шире
   страницы уже на 1440 (адрес электронной почты и подписи кнопок не переносятся, колонок девять). */
.users-table th[b-vw31elxqvz], .users-table td[b-vw31elxqvz] {
    text-align: left;
    padding: 0.625rem 8px;
    border-bottom: 1px solid var(--border);
}

/* Только кнопки самой строки: пункты меню «⋯» рисует эта же страница, и без «>» они выходили бы мельче, чем на
   остальных страницах. */
.users-table .row-actions > button[b-vw31elxqvz] {
    padding: 3px 10px;
    font-size: 12.5px;
}

.users-table th[b-vw31elxqvz] {
    background: var(--surface-alt);
    font-weight: 600;
    color: var(--text-body);
}

.users-table tr.inactive[b-vw31elxqvz] {
    background: var(--surface-alt);
    color: var(--text-faint);
}

.row-actions[b-vw31elxqvz] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.error[b-vw31elxqvz] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.dept-cell .muted[b-vw31elxqvz] {
    color: var(--text-faint);
}

.chip[b-vw31elxqvz] {
    display: inline-block;
    background: var(--accent-soft);
    color: var(--indigo-600-text);
    border-radius: 999px;
    padding: 0.1rem 0.55rem;
    font-size: 0.8125rem;
    margin-right: 0.3rem;
    margin-bottom: 0.2rem;
}

.link-btn[b-vw31elxqvz] {
    border: none;
    background: none;
    color: var(--accent-text);
    padding: 0;
    font-size: 0.8125rem;
    cursor: pointer;
}

.link-btn:hover:not(:disabled)[b-vw31elxqvz] {
    background: none;
    text-decoration: underline;
}

.edit-row td[b-vw31elxqvz] {
    background: var(--surface-alt);
    padding: 1rem 0.75rem;
}

/* Таблица шире экрана — форма прилипает к левому краю и не уезжает при скролле. */
.edit-row[b-vw31elxqvz]  form {
    position: sticky;
    left: 0.75rem;
    max-width: min(560px, calc(100vw - 4rem));
}

@media (max-width: 640px) {
    .row[b-vw31elxqvz] {
        flex-direction: column;
        gap: 0.75rem;
    }
}

.dept-edit[b-vw31elxqvz] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.dept-check[b-vw31elxqvz] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
}

.dept-actions[b-vw31elxqvz] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.4rem;
}

.dept-check.locked[b-vw31elxqvz] {
    color: var(--text-faint);
    cursor: not-allowed;
}

.lock-note[b-vw31elxqvz] {
    font-size: 0.75rem;
    white-space: nowrap;
}

.lock-hint[b-vw31elxqvz] {
    margin: 0.2rem 0 0;
    max-width: 22rem;
    font-size: 0.75rem;
    color: var(--text-muted);
}

.wider-note[b-vw31elxqvz] {
    color: var(--text-muted);
}

/* Просьба сменить пароль ждёт сотрудника — заметнее серой пометки прав: это его состояние, а не ваше ограничение. */
.password-note[b-vw31elxqvz] {
    color: var(--warn-strong);
}

.require-change[b-vw31elxqvz] {
    display: flex;
    margin-top: 0.5rem;
    font-size: 0.875rem;
}

.lock-hint.below-table[b-vw31elxqvz] {
    margin-top: 0.5rem;
    max-width: 40rem;
    font-size: 0.8125rem;
}

/* Общее правило ячейки действий держит кнопки в одну строку (white-space: nowrap) — пояснению нужно переноситься. */
.row-actions .admin-only-note[b-vw31elxqvz] {
    align-self: center;
    max-width: 11rem;
    font-size: 0.75rem;
    line-height: 1.3;
    color: var(--text-muted);
    text-align: right;
    white-space: normal;
}

.field[b-vw31elxqvz]  input:disabled {
    background: var(--surface-2);
    color: var(--text-muted);
    cursor: not-allowed;
}

.new-password[b-vw31elxqvz] {
    background: var(--ok-softer);
    border: 1px solid var(--green-150-border);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    scroll-margin-top: 4.5rem;
}

.new-password:focus[b-vw31elxqvz] {
    outline: none;
}

.new-password-title[b-vw31elxqvz] {
    font-weight: 600;
    color: var(--ok-strong);
    margin-bottom: 0.4rem;
    overflow-wrap: anywhere;
}

.new-password-row[b-vw31elxqvz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.new-password-value[b-vw31elxqvz] {
    font-size: 1.0625rem;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    padding: 0.3rem 0.6rem;
    user-select: all;
}

.new-password-hint[b-vw31elxqvz] {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--text-2);
}

/* «Скопировать» — общий компонент: правило button этой страницы до него не достаёт, а рядом стоит «Скрыть». */
.new-password-row[b-vw31elxqvz]  button {
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    font: inherit;
}

.new-password-row[b-vw31elxqvz]  button:hover:not(:disabled) {
    background: var(--surface-2);
}

.workload-advice[b-vw31elxqvz] {
    background: var(--warn-softer);
    border: 1px solid var(--yellow-250-border);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
}

.workload-advice p[b-vw31elxqvz] {
    margin: 0 0 0.5rem 0;
}

/* Сотрудник — одна колонка: имя, под ним почта, пометки. */
.user-name[b-vw31elxqvz] {
    font-weight: 600;
}

.user-email[b-vw31elxqvz] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    overflow-wrap: anywhere;
}

.user-name .muted[b-vw31elxqvz] {
    margin-left: 0.3rem;
    font-weight: 400;
}

.inactive-badge[b-vw31elxqvz] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.5rem;
    border-radius: 999px;
    background: var(--surface-2);
    border: 1px solid var(--border-strong);
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 500;
    white-space: nowrap;
}

/* Меню «⋯»: заголовки групп, разделитель перед красным пунктом, пояснение «только у администратора». */
.menu-group[b-vw31elxqvz] {
    padding: 6px 10px 2px;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-faint);
    text-align: left;
}

.users-table .row-actions .admin-only-note[b-vw31elxqvz] {
    max-width: 16rem;
    padding: 6px 10px;
    text-align: left;
}

/* Правка ролей и отделов — строкой во всю ширину под сотрудником: флажки в несколько колонок. */
.check-grid[b-vw31elxqvz] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 0.3rem 1.25rem;
}

.dept-edit > strong[b-vw31elxqvz] {
    margin-bottom: 0.2rem;
}

.lock-hint[b-vw31elxqvz] {
    max-width: 40rem;
}

.users-table td.dept-cell .roles-inline[b-vw31elxqvz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.1rem 0;
}

/* Во flex пробел между «—» и «Изменить» пропадает — отступ как у плашки роли. */
.users-table td.dept-cell .roles-inline > .muted[b-vw31elxqvz] {
    margin-right: 0.3rem;
}

@media (max-width: 640px) {
    .users-table td.user-cell .user-email[b-vw31elxqvz] {
        margin-top: 0.1rem;
    }

    .users-table td.dept-cell .roles-inline[b-vw31elxqvz] {
        justify-content: flex-end;
    }

    .users-table tr.edit-row[b-vw31elxqvz] {
        padding: 0.5rem 0;
    }

    .users-table .edit-row[b-vw31elxqvz]  form {
        max-width: none;
        position: static;
    }
}
/* /Components/Pages/Admin/UserSecurity.razor.rz.scp.css */
.crumbs[b-8sd3gozn8b] {
    margin: 0 0 1rem 0;
    font-size: 0.875rem;
}

.crumbs a[b-8sd3gozn8b] {
    color: var(--text-2);
}

/* Кто это: email, статус, когда сменён пароль, просьба сменить — одной строкой через точку, на телефоне переносится. */
.who[b-8sd3gozn8b] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.9rem;
    margin: -0.25rem 0 0.75rem 0;
    color: var(--text-2);
}

.who .inactive[b-8sd3gozn8b] {
    color: var(--danger);
}

.password-note[b-8sd3gozn8b] {
    color: var(--warn-strong);
}

.intro[b-8sd3gozn8b] {
    max-width: 52rem;
    color: var(--text-body);
    margin: 0 0 1.25rem 0;
}

.card[b-8sd3gozn8b] {
    max-width: 72rem;
}

.muted[b-8sd3gozn8b] {
    color: var(--text-muted);
}

/* Отказ «не шире своих» — вместо списка и кнопок: почему входы не видны и кто их видит. */
.refusal[b-8sd3gozn8b] {
    margin: 0;
    max-width: 52rem;
    color: var(--text-body);
}

/* Под лентой истории: «Показать ещё» слева, ссылка на журнал рядом. */
.history-actions[b-8sd3gozn8b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin-top: 0.75rem;
}
/* /Components/Pages/Analytics/ExecutionControl.razor.rz.scp.css */
.filters[b-jfyjbykl6v] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
}

.custom-range[b-jfyjbykl6v] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.custom-range label[b-jfyjbykl6v] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.85rem;
}

.custom-range label.inline-checkbox[b-jfyjbykl6v] {
    flex-direction: row;
    align-items: center;
    gap: 0.4rem;
}

.kpi-grid[b-jfyjbykl6v] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.kpi[b-jfyjbykl6v] {
    border: 1px solid var(--gray-100-border);
    border-radius: 10px;
    padding: 1rem;
    background: var(--surface);
}

.kpi.warn[b-jfyjbykl6v] {
    border-color: var(--yellow-550-border);
    background: var(--warn-softer);
}

.kpi-value[b-jfyjbykl6v] {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
}

.kpi-label[b-jfyjbykl6v] {
    font-weight: 600;
    margin-top: 0.25rem;
}
/* /Components/Pages/Analytics/HelpdeskAnalytics.razor.rz.scp.css */
.filters[b-ym1oyb7koy] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
}

.custom-range[b-ym1oyb7koy] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.custom-range label[b-ym1oyb7koy] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.85rem;
}

.period-note[b-ym1oyb7koy] {
    margin: 0;
    font-size: 0.85rem;
}

.kpi-grid[b-ym1oyb7koy] {
    display: grid;
    /* Пять плиток — в один ряд на ноутбуке 1280. */
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.kpi[b-ym1oyb7koy] {
    border: 1px solid var(--gray-100-border);
    border-radius: 10px;
    padding: 1rem;
    background: var(--surface);
}

.kpi.warn[b-ym1oyb7koy] {
    border-color: var(--yellow-550-border);
    background: var(--warn-softer);
}

.kpi-value[b-ym1oyb7koy] {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
}

.kpi-label[b-ym1oyb7koy] {
    font-weight: 600;
    margin-top: 0.25rem;
}

.kpi-sub[b-ym1oyb7koy] {
    color: var(--gray-600-text);
    font-size: 0.85rem;
    margin-top: 0.25rem;
}

/* Таблицы шире узкого экрана прокручиваются внутри своей карточки, а не уходят за край страницы: карточке в сетке
   разрешено быть уже таблицы. */
.table-scroll[b-ym1oyb7koy] {
    overflow-x: auto;
}

.two-col > .card[b-ym1oyb7koy] {
    min-width: 0;
}

/* «Платные услуги»: суммы — по правому краю, строка итога отделена чертой, бейдж итога («Не решено») — в одну строку. */
.helpdesk-paid .num[b-ym1oyb7koy] {
    text-align: right;
    white-space: nowrap;
}

.helpdesk-paid tfoot td[b-ym1oyb7koy] {
    border-top: 2px solid var(--border);
    font-weight: 600;
}

.helpdesk-paid[b-ym1oyb7koy]  .ticket-status {
    white-space: nowrap;
}

/* «Чем закончились»: одна полоса долей от завершённых. Сегменты разделены зазором цвета карточки, концы скруглены;
   ширина — по числу обращений (flex-grow), крошечная доля всё равно видна. Подписи — легендой под полосой, не внутри. */
.outcomes-total[b-ym1oyb7koy] {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
}

.share-bar[b-ym1oyb7koy] {
    display: flex;
    gap: 2px;
    height: 20px;
    border-radius: 4px;
    overflow: hidden;
    background: var(--surface);
}

.share-seg[b-ym1oyb7koy] {
    flex-basis: 0;
    min-width: 4px;
}

.share-seg.resolved[b-ym1oyb7koy], .share-swatch.resolved[b-ym1oyb7koy] { background: var(--outcome-resolved); }
.share-seg.by-client[b-ym1oyb7koy], .share-swatch.by-client[b-ym1oyb7koy] { background: var(--outcome-by-client); }
.share-seg.unresolved[b-ym1oyb7koy], .share-swatch.unresolved[b-ym1oyb7koy] { background: var(--outcome-unresolved); }
.share-seg.closed[b-ym1oyb7koy], .share-swatch.closed[b-ym1oyb7koy] { background: var(--outcome-closed); }

.share-legend[b-ym1oyb7koy] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
    list-style: none;
    margin: 0.6rem 0 0;
    padding: 0;
    font-size: 0.9rem;
}

.share-legend li[b-ym1oyb7koy] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    white-space: nowrap;
}

.share-swatch[b-ym1oyb7koy] {
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 3px;
    align-self: center;
}

.outcomes-note[b-ym1oyb7koy] {
    margin: 0.6rem 0 0;
    font-size: 0.85rem;
}

/* «По проблемам»: число и доля в одной ячейке, доля — тише; «Другая» и «Не указана» — курсивом, итог — чертой. */
.helpdesk-topics .num[b-ym1oyb7koy] {
    text-align: right;
    white-space: nowrap;
}

.helpdesk-topics .share[b-ym1oyb7koy] {
    color: var(--text-muted);
    font-size: 0.85em;
    margin-left: 0.2rem;
}

.helpdesk-topics .resolved-total[b-ym1oyb7koy] {
    font-weight: 600;
}

.helpdesk-topics tr.topic-aside td:first-child[b-ym1oyb7koy] {
    font-style: italic;
}

.helpdesk-topics tfoot td[b-ym1oyb7koy] {
    border-top: 2px solid var(--border);
    font-weight: 600;
}
/* /Components/Pages/Analytics/LeadgenAnalytics.razor.rz.scp.css */
.filters[b-yks9fdjrcj] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
}

.dim-filters[b-yks9fdjrcj] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.dim-filters label[b-yks9fdjrcj] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.85rem;
}

.period-note[b-yks9fdjrcj] {
    margin: 0;
    font-size: 0.85rem;
}

.kpi-grid[b-yks9fdjrcj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.kpi[b-yks9fdjrcj] {
    border: 1px solid var(--gray-100-border);
    border-radius: 10px;
    padding: 1rem;
    background: var(--surface);
}

.kpi.warn[b-yks9fdjrcj] {
    border-color: var(--yellow-550-border);
    background: var(--warn-softer);
}

.kpi-value[b-yks9fdjrcj] {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
}

.kpi-label[b-yks9fdjrcj] {
    font-weight: 600;
    margin-top: 0.25rem;
}

.kpi-sub[b-yks9fdjrcj] {
    color: var(--gray-600-text);
    font-size: 0.85rem;
    margin-top: 0.25rem;
}

.data-table .num[b-yks9fdjrcj] {
    text-align: right;
    white-space: nowrap;
}

.bar-cell[b-yks9fdjrcj] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 90px;
    height: 1.1rem;
    background: var(--surface-2);
    border-radius: 4px;
    overflow: hidden;
}

.bar-cell .bar[b-yks9fdjrcj] {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    background: var(--blue-200-bg);
}

.bar-cell .bar.good[b-yks9fdjrcj] {
    background: var(--green-250-bg);
}

.bar-cell .bar-label[b-yks9fdjrcj] {
    position: relative;
    padding: 0 0.4rem;
    font-size: 0.8rem;
    z-index: 1;
}

.plan-bases[b-yks9fdjrcj] {
    max-width: 14rem;
    margin-left: auto;
    font-size: 0.78rem;
    color: var(--text-muted);
    white-space: normal;
}
/* /Components/Pages/Analytics/LicenseAuditAnalytics.razor.rz.scp.css */
/* Таблицы по менеджерам: заголовки переносятся, чтобы 8–11 колонок помещались без прокрутки вбок. */
.mgr-table th[b-7ra8hp4jxv] {
    white-space: normal;
    line-height: 1.2;
    vertical-align: bottom;
    padding-top: 4px;
    padding-bottom: 4px;
}

/* Лента выдач: организация и УНП — в две строки, состав переносится, чтобы лента помещалась в страницу. */
@media (min-width: 641px) {
    .ledger-table .ledger-org .pay-unp[b-7ra8hp4jxv] {
        display: block;
    }

    .ledger-table .ledger-org[b-7ra8hp4jxv] {
        min-width: 9rem;
    }

    .ledger-table .ledger-detail[b-7ra8hp4jxv] {
        min-width: 10rem;
        max-width: 16rem;
    }
}
/* /Components/Pages/Analytics/TaskAnalytics.razor.rz.scp.css */
/* Девять колонок не помещаются на узком экране — таблица прокручивается внутри карточки. */
.table-scroll[b-czcc2oo407] {
    overflow-x: auto;
}

.table-scroll .data-table[b-czcc2oo407] {
    min-width: 760px;
}

.coverage-note[b-czcc2oo407] {
    margin: -0.25rem 0 1rem;
}
/* /Components/Pages/Calls/Calls.razor.rz.scp.css */
.filters[b-r1f1l1c7xi] {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    flex-wrap: wrap;
    margin: 1rem 0;
}

/* Без нижнего отступа общего .field — иначе кнопки, стоящие в ряду без обёртки, оказываются ниже полей. */
.filters .field[b-r1f1l1c7xi] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 0;
}

/* Поле номера растёт не шире своего поля ввода (40rem у общего .field) — кнопки стоят сразу за ним. */
.filters .field.grow[b-r1f1l1c7xi] {
    flex: 1 1 220px;
    max-width: 40rem;
}

.filters label[b-r1f1l1c7xi] {
    font-size: 0.8rem;
    color: var(--gray-600-text);
}

.filters input[b-r1f1l1c7xi],
.filters select[b-r1f1l1c7xi] {
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--gray-200-border);
    border-radius: 4px;
    font-size: 0.9rem;
}
/* /Components/Pages/Help/HelpPage.razor.rz.scp.css */
.help-page[b-7yqkce65bf] {
    display: grid;
    grid-template-columns: 15rem minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

/* ─── Оглавление ─── */
.help-toc[b-7yqkce65bf] {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 6rem - var(--call-bar-offset, 0px));
    overflow-y: auto;
    padding-right: .25rem;
}

.help-toc-toggle[b-7yqkce65bf],
.help-toc-button[b-7yqkce65bf] {
    display: none;
}

.help-toc-list[b-7yqkce65bf] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.help-toc-home[b-7yqkce65bf] {
    font-weight: 600;
    margin-bottom: .35rem;
}

.help-toc-section[b-7yqkce65bf] {
    margin: .85rem 0 .2rem;
    padding: 0 .5rem;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--text-faint);
}

.help-toc-home[b-7yqkce65bf],
.help-toc-link[b-7yqkce65bf] {
    display: block;
    padding: .3rem .5rem;
    border-radius: var(--r-sm);
    color: var(--text);
    text-decoration: none;
    line-height: 1.35;
}

.help-toc-home:hover[b-7yqkce65bf],
.help-toc-link:hover[b-7yqkce65bf] {
    background: var(--surface-alt);
}

.help-toc-home.active[b-7yqkce65bf],
.help-toc-link.active[b-7yqkce65bf] {
    background: var(--accent-soft);
    color: var(--accent-text);
    font-weight: 600;
}

/* ─── Статья ─── */
.help-main[b-7yqkce65bf] {
    max-width: 48rem;
    min-width: 0;
}

.help-view-as[b-7yqkce65bf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .6rem;
    margin-bottom: 1rem;
    padding: .45rem .7rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--surface);
    font-size: .875rem;
}

.help-view-as.on[b-7yqkce65bf] {
    border-color: var(--amber-200-border);
    background: var(--warn-soft);
}

.help-view-as label[b-7yqkce65bf] {
    color: var(--text-muted);
    font-weight: 500;
}

.help-view-as select[b-7yqkce65bf] {
    width: auto;
    min-width: 0;
    max-width: 100%;
}

.help-view-as-note[b-7yqkce65bf] {
    color: var(--warn);
    flex-basis: 100%;
}

.help-main h1[b-7yqkce65bf] {
    margin: 0 0 .75rem;
    font-size: 1.6rem;
}

.help-lead[b-7yqkce65bf] {
    color: var(--text-muted);
    font-size: 1rem;
    margin: 0 0 1.5rem;
}

.help-crumbs[b-7yqkce65bf] {
    font-size: .85rem;
    color: var(--text-muted);
    margin-bottom: .35rem;
}

.help-crumbs a[b-7yqkce65bf] {
    color: var(--text-muted);
}

.help-contents[b-7yqkce65bf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: 1rem 2rem;
}

.help-contents-group h2[b-7yqkce65bf] {
    font-size: 1rem;
    margin: 0 0 .4rem;
}

.help-contents-group ul[b-7yqkce65bf],
.help-related ul[b-7yqkce65bf] {
    margin: 0;
    padding-left: 1.1rem;
}

.help-contents-group li[b-7yqkce65bf],
.help-related li[b-7yqkce65bf] {
    margin: .2rem 0;
}

.help-article[b-7yqkce65bf] {
    font-size: 15px;
    line-height: 1.6;
}

.help-article[b-7yqkce65bf]  h2 {
    font-size: 1.25rem;
    margin: 2rem 0 .6rem;
    scroll-margin-top: 1rem;
}

.help-article[b-7yqkce65bf]  h3 {
    font-size: 1.05rem;
    margin: 1.4rem 0 .4rem;
    scroll-margin-top: 1rem;
}

.help-article[b-7yqkce65bf]  p,
.help-article[b-7yqkce65bf]  ul,
.help-article[b-7yqkce65bf]  ol {
    margin: 0 0 .8rem;
}

.help-article[b-7yqkce65bf]  li {
    margin: .25rem 0;
}

.help-article[b-7yqkce65bf]  img,
.help-article[b-7yqkce65bf]  video {
    display: block;
    max-width: 100%;
    height: auto;
    margin: .75rem 0 1rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
}

/* Снимок — ссылка на себя: на телефоне мелкий, его открывают целиком. */
.help-article[b-7yqkce65bf]  a.help-shot {
    display: block;
    width: fit-content;
    max-width: 100%;
    cursor: zoom-in;
}

/* Ролик — во всю ширину статьи; пока не пришли данные о размере, место держится по пропорции окна съёмки. */
.help-article[b-7yqkce65bf]  video.help-video {
    width: 100%;
    aspect-ratio: auto 16 / 10;
    background: var(--black-bg);
}

.help-article[b-7yqkce65bf]  table {
    border-collapse: collapse;
    margin: 0 0 1rem;
    display: block;
    overflow-x: auto;
}

.help-article[b-7yqkce65bf]  th,
.help-article[b-7yqkce65bf]  td {
    border: 1px solid var(--border-strong);
    padding: .35rem .6rem;
    text-align: left;
    vertical-align: top;
}

.help-article[b-7yqkce65bf]  th {
    background: var(--surface-alt);
}

.help-article[b-7yqkce65bf]  blockquote {
    margin: 0 0 1rem;
    padding: .6rem .9rem;
    border-left: 3px solid var(--warn);
    background: var(--warn-soft);
    border-radius: 0 var(--r-sm) var(--r-sm) 0;
}

.help-article[b-7yqkce65bf]  blockquote > :last-child {
    margin-bottom: 0;
}

.help-article[b-7yqkce65bf]  code {
    font-size: .9em;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 0 .25rem;
}

.help-article[b-7yqkce65bf]  .help-rules {
    margin: 1rem 0;
    padding: .7rem 1rem;
    border: 1px dashed var(--accent);
    background: var(--accent-softer);
    border-radius: var(--r);
}

.help-article[b-7yqkce65bf]  .help-rules-title {
    font-weight: 600;
    margin-bottom: .35rem;
}

/* Рамка «Пример»: зелёная, чтобы не спорить с жёлтой цитатой-предупреждением и синей «Как у нас принято». */
.help-article[b-7yqkce65bf]  .help-example {
    margin: 1rem 0;
    padding: .7rem 1rem;
    border-left: 3px solid var(--ok);
    background: var(--ok-soft);
    border-radius: 0 var(--r) var(--r) 0;
}

.help-article[b-7yqkce65bf]  .help-example-title {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-weight: 600;
    color: var(--ok);
    margin-bottom: .35rem;
}

.help-article[b-7yqkce65bf]  .help-example-icon {
    width: 1.1em;
    height: 1.1em;
    flex: none;
}

.help-article[b-7yqkce65bf]  .help-example > :last-child {
    margin-bottom: 0;
}

/* На зелёном фоне ячейки таблицы — белые, иначе строки сливаются. */
.help-article[b-7yqkce65bf]  .help-example th,
.help-article[b-7yqkce65bf]  .help-example td {
    background: var(--surface);
}

.help-article[b-7yqkce65bf]  .help-example th {
    background: var(--surface-alt);
}

.help-related[b-7yqkce65bf] {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.help-related-title[b-7yqkce65bf] {
    font-weight: 600;
    margin-bottom: .35rem;
}

/* ─── Узкий экран: оглавление сворачивается над статьёй ─── */
@media (max-width: 860px) {
    .help-page[b-7yqkce65bf] {
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
    }

    .help-toc[b-7yqkce65bf] {
        position: static;
        max-height: none;
        overflow: visible;
        padding: 0;
    }

    /* На странице оглавления оно и так в центре — боковое не нужно. */
    .help-index .help-toc[b-7yqkce65bf] {
        display: none;
    }

    .help-toc-button[b-7yqkce65bf] {
        display: inline-flex;
        align-items: center;
        gap: .35rem;
        padding: .4rem .75rem;
        border: 1px solid var(--border-strong);
        border-radius: var(--r);
        background: var(--surface);
        cursor: pointer;
        font-weight: 500;
    }

    .help-toc-button[b-7yqkce65bf]::after {
        content: "▾";
        color: var(--text-muted);
    }

    .help-toc-toggle:checked + .help-toc-button[b-7yqkce65bf]::after {
        content: "▴";
    }

    .help-toc-list[b-7yqkce65bf] {
        display: none;
        margin-top: .5rem;
        padding: .5rem;
        border: 1px solid var(--border);
        border-radius: var(--r);
        background: var(--surface);
    }

    .help-toc-toggle:checked ~ .help-toc-list[b-7yqkce65bf] {
        display: flex;
    }
}
/* /Components/Pages/Help/HelpSearchBox.razor.rz.scp.css */
.help-search[b-e1ngs9lcwz] {
    position: relative;
    margin-bottom: 1rem;
}

.help-search-icon[b-e1ngs9lcwz] {
    position: absolute;
    left: .75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: var(--text-faint);
    pointer-events: none;
}

/* Свой отступ слева под лупу: общий input[type=search] вернул бы .7rem, и текст наехал бы на иконку. */
.help-search-input[b-e1ngs9lcwz] {
    width: 100%;
    padding: .6rem .8rem .6rem 2.5rem;
    font-size: 1rem;
}

.help-search-results[b-e1ngs9lcwz] {
    margin-bottom: 1.5rem;
}

.help-search-head[b-e1ngs9lcwz] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .25rem 1rem;
    margin-bottom: .6rem;
}

.help-search-note[b-e1ngs9lcwz] {
    color: var(--text-muted);
    font-size: .9rem;
}

.help-search-corrected[b-e1ngs9lcwz] {
    margin: 0 0 .35rem;
    font-size: .95rem;
    overflow-wrap: anywhere;
}

.help-search-corrected .link-btn[b-e1ngs9lcwz] {
    margin-left: .35rem;
}

.help-search-hit[b-e1ngs9lcwz] {
    display: block;
    margin-bottom: .5rem;
    padding: .7rem .9rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
}

.help-search-hit:hover[b-e1ngs9lcwz],
.help-search-hit:focus-visible[b-e1ngs9lcwz] {
    border-color: var(--accent);
    background: var(--accent-softer);
    text-decoration: none;
}

.help-search-title[b-e1ngs9lcwz] {
    display: block;
    font-weight: 600;
    color: var(--accent-text);
}

.help-search-section[b-e1ngs9lcwz] {
    margin-left: .35rem;
    font-weight: 500;
    color: var(--text-muted);
}

.help-search-snippet[b-e1ngs9lcwz] {
    display: block;
    margin-top: .3rem;
    font-size: .9rem;
    line-height: 1.45;
    color: var(--text-muted);
    overflow-wrap: anywhere;
}

.help-search-snippet mark[b-e1ngs9lcwz] {
    padding: 0 .1em;
    border-radius: 2px;
    background: var(--warn-soft);
    color: var(--text);
}
/* /Components/Pages/Help/HelpSearchStats.razor.rz.scp.css */
.help-lead[b-kdiu5ek0q0] {
    color: var(--text-muted);
    font-size: 1rem;
    margin: 0 0 1rem;
}

.help-stats-tip[b-kdiu5ek0q0] {
    margin: 0 0 1.75rem;
    padding: .7rem .9rem;
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    border-radius: var(--r);
    background: var(--surface);
    font-size: .9rem;
    line-height: 1.5;
}

.help-stats-block[b-kdiu5ek0q0] {
    margin: 0 0 2rem;
}

.help-stats-block h2[b-kdiu5ek0q0] {
    font-size: 1.1rem;
    margin: 0 0 .25rem;
}

.help-stats-note[b-kdiu5ek0q0] {
    color: var(--text-muted);
    font-size: .875rem;
    margin: 0 0 .6rem;
}

.help-stats-block td:first-child[b-kdiu5ek0q0] {
    overflow-wrap: anywhere;
}

.help-stats-rough[b-kdiu5ek0q0] {
    margin-left: .4rem;
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}
/* /Components/Pages/Home.razor.rz.scp.css */
.dash-head[b-ixqs4q852w] {
    margin-bottom: 1.5rem;
}

.dash-head h1[b-ixqs4q852w] {
    margin: 0 0 0.25rem;
}

.dash-head .lead[b-ixqs4q852w] {
    margin: 0;
    color: var(--text-muted);
    font-size: 1.0625rem;
}

/* Разделители — цвет рамки в промежутках между плитками: они есть и между рядами, когда плитки переносятся, и не
   торчат у края полосы. */
.day-strip[b-ixqs4q852w] {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

/* Ширина — по подписи: не влезает в ряд — плитка уходит на следующий, а не обрезается («перезвоны по сроку» и
   «перезвоны по обращениям» иначе обе становятся «перезвоны по …»). Многоточие — только у подписи длиннее всей полосы. */
.day-stat[b-ixqs4q852w] {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.65rem 1rem;
    background: var(--surface);
    text-decoration: none;
    color: var(--text);
}

.day-stat:hover[b-ixqs4q852w] { background: var(--accent-soft); text-decoration: none; }

.day-stat .num[b-ixqs4q852w] {
    display: block;
    font-size: 1.25rem;
    font-weight: 650;
    line-height: 1.2;
}

.day-stat .label[b-ixqs4q852w] {
    display: block;
    font-size: 0.8125rem;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.day-stat.late .num[b-ixqs4q852w] { color: var(--danger); }
.day-stat.warn .num[b-ixqs4q852w] { color: var(--warn); }

@media (max-width: 640px) {
    .day-strip[b-ixqs4q852w] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* Нечётная последняя — на весь ряд, без пустой клетки рядом. */
    .day-stat:last-child:nth-child(odd)[b-ixqs4q852w] { grid-column: 1 / -1; }
    .day-stat .label[b-ixqs4q852w] { white-space: normal; }
}
/* /Components/Pages/Installations/Installations.razor.rz.scp.css */
.header[b-e6niekmkna] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.day-nav[b-e6niekmkna] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
}

.day-title[b-e6niekmkna] {
    margin-top: 0;
}

.day-title[b-e6niekmkna]::first-letter {
    text-transform: capitalize;
}

.hint[b-e6niekmkna] {
    background: var(--warn-softer);
    border: 1px solid var(--amber-150-border);
    color: var(--orange-650-text);
    padding: 0.6rem 0.8rem;
    border-radius: 6px;
    margin-bottom: 0.8rem;
    font-size: 0.9rem;
}

.grid-scroll[b-e6niekmkna] {
    overflow-x: auto;
}

.install-grid[b-e6niekmkna] {
    border-collapse: collapse;
    width: 100%;
    min-width: 640px;
}

.install-grid th[b-e6niekmkna],
.install-grid td[b-e6niekmkna] {
    border: 1px solid var(--row-line);
    vertical-align: top;
    padding: 4px;
}

.install-grid thead th[b-e6niekmkna] {
    background: var(--surface-alt);
    position: sticky;
    top: 0;
    z-index: 2;
    text-align: left;
    font-size: 0.85rem;
}

.install-grid .tech-name[b-e6niekmkna] {
    font-weight: 600;
}

.install-grid .tech-count[b-e6niekmkna] {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.install-grid .time-col[b-e6niekmkna] {
    width: 56px;
    white-space: nowrap;
    color: var(--text-muted);
    font-size: 0.82rem;
    background: var(--surface-alt);
    position: sticky;
    left: 0;
    z-index: 1;
}

.install-grid thead th.time-col[b-e6niekmkna] {
    z-index: 3;
}

.install-grid .pool-col[b-e6niekmkna] {
    background: var(--surface);
}

.view-line[b-e6niekmkna] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 0.5rem;
}

.legend[b-e6niekmkna] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 0.9rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.legend .dot[b-e6niekmkna] {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 2px;
    margin-right: 0.3rem;
    vertical-align: -1px;
}

.dot.planned[b-e6niekmkna] { background: var(--blue-400-border); }
.dot.progress[b-e6niekmkna] { background: var(--warn-solid); }
.dot.done[b-e6niekmkna] { background: var(--ok-solid); }
.dot.overdue[b-e6niekmkna] { background: var(--danger-solid); }

.day-summary[b-e6niekmkna] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.7rem;
}

.sum-pill[b-e6niekmkna] {
    border: 1px solid var(--border);
    background: var(--surface-alt);
    border-radius: 999px;
    padding: 0.1rem 0.7rem;
    font-size: 0.82rem;
    color: var(--text-body);
}

.sum-pill b[b-e6niekmkna] {
    font-variant-numeric: tabular-nums;
    margin-left: 0.2rem;
}

.sum-pill.done[b-e6niekmkna] { background: var(--ok-softer); }
.sum-pill.progress[b-e6niekmkna] { background: var(--warn-softer); }
.sum-pill.overdue[b-e6niekmkna] { background: var(--danger-soft); }

.install-grid .gap-cell[b-e6niekmkna] {
    color: var(--text-muted);
    font-size: 0.8rem;
    text-align: center;
    background: var(--surface-alt);
    padding: 2px 4px;
}

.install-grid .gap-row .time-col[b-e6niekmkna] {
    font-size: 0.75rem;
}

.ic-card[b-e6niekmkna] {
    position: relative;
    border: 1px solid var(--border-strong);
    border-left-width: 4px;
    border-radius: 5px;
    padding: 3px 6px;
    margin-bottom: 3px;
    font-size: 0.82rem;
    background: var(--surface);
}

.ic-card.clickable[b-e6niekmkna] {
    cursor: pointer;
}

.ic-card.clickable:hover[b-e6niekmkna] {
    filter: brightness(0.98);
    box-shadow: 0 1px 3px var(--shade-15);
}

.ic-card.planned[b-e6niekmkna] { border-left-color: var(--blue-400-border); }
.ic-card.progress[b-e6niekmkna] { border-left-color: var(--warn-solid); background: var(--warn-softer); }
.ic-card.done[b-e6niekmkna] { border-left-color: var(--ok-solid); background: var(--ok-softer); }
.ic-card.overdue[b-e6niekmkna] { border-left-color: var(--danger-solid); background: var(--danger-soft); }

.ic-head[b-e6niekmkna] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.3rem;
}

.ic-status[b-e6niekmkna] {
    display: inline-block;
    border-radius: 999px;
    padding: 0 0.45rem;
    font-size: 0.7rem;
    line-height: 1.35;
    white-space: nowrap;
}

.ic-status.st-planned[b-e6niekmkna] { background: var(--accent-soft); color: var(--accent-text); }
.ic-status.st-progress[b-e6niekmkna] { background: var(--warn-soft-strong); color: var(--warn-strong); }
.ic-status.st-done[b-e6niekmkna] { background: var(--ok-soft-strong); color: var(--ok-strong); }
.ic-status.st-overdue[b-e6niekmkna] { background: var(--danger-soft-strong); color: var(--danger-strong); }

.ic-more[b-e6niekmkna],
.il-btn[b-e6niekmkna] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
}

.ic-more:hover[b-e6niekmkna],
.il-btn:hover[b-e6niekmkna] {
    background: var(--surface-alt);
    color: var(--text-body);
}

.ic-more svg[b-e6niekmkna],
.il-btn svg[b-e6niekmkna] {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

.il-btn .ic-call-icon[b-e6niekmkna] {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

.ic-card .ic-company[b-e6niekmkna],
.ic-card .ic-meta[b-e6niekmkna],
.ic-card .ic-phone[b-e6niekmkna] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


.ic-card .ic-company[b-e6niekmkna] {
    font-weight: 600;
}

.ic-card .ic-company a.ic-deal[b-e6niekmkna] {
    margin-left: 0.35rem;
    font-size: 0.7rem;
    font-weight: 400;
    color: var(--text-muted);
}

.ic-card .ic-phone[b-e6niekmkna] {
    display: block;
    max-width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent-text);
    font-size: 0.78rem;
    text-align: left;
    cursor: pointer;
}

.ic-card .ic-phone:hover[b-e6niekmkna] {
    text-decoration: underline;
}

.ic-card .ic-meta[b-e6niekmkna] {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.im-shield[b-e6niekmkna] {
    position: fixed;
    inset: 0;
    z-index: 60;
}

.im-pop[b-e6niekmkna] {
    position: fixed;
    z-index: 61;
    left: min(var(--mx), calc(100vw - 19rem));
    top: min(var(--my), calc(100vh - 15rem));
    width: 18rem;
    max-width: calc(100vw - 1rem);
    display: flex;
    flex-direction: column;
    padding: 0.3rem;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: 8px;
    box-shadow: 0 6px 20px var(--shade-15);
    /* предупреждения перед звонком удлиняют меню — не уходит за низ окна, прокручивается внутри */
    max-height: calc(100vh - 0.5rem - min(var(--my), calc(100vh - 15rem)));
    overflow-y: auto;
}

.im-pop:focus:not(:focus-visible)[b-e6niekmkna] {
    outline: none;
}

/* открыто с клавиатуры (Enter на «⋯»): координат щелчка нет — посередине окна */
.im-pop.kbd[b-e6niekmkna] {
    left: 50%;
    top: 20vh;
    transform: translateX(-50%);
    max-height: 75vh;
}

.im-warn[b-e6niekmkna] {
    margin: 0.15rem 0.2rem 0.3rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--warn-border);
    border-radius: 6px;
    background: var(--warn-soft);
    color: var(--warn-strong);
    font-size: 0.8rem;
    line-height: 1.35;
}

.im-title[b-e6niekmkna] {
    padding: 0.3rem 0.6rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-bottom: 1px solid var(--border);
    margin-bottom: 0.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.im-pop button[b-e6niekmkna] {
    text-align: left;
    padding: 0.4rem 0.6rem;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--text-body);
    font-size: 0.88rem;
    cursor: pointer;
}

.im-pop button:hover[b-e6niekmkna] {
    background: var(--surface-alt);
}

.im-note[b-e6niekmkna] {
    padding: 0.35rem 0.6rem 0.25rem;
    font-size: 0.78rem;
    color: var(--text-muted);
    border-top: 1px solid var(--border);
    margin-top: 0.2rem;
}

.install-list[b-e6niekmkna] {
    display: none;
}

.il-group h3[b-e6niekmkna] {
    margin: 0.9rem 0 0.3rem;
    font-size: 1rem;
}

.il-progress[b-e6niekmkna] {
    margin-left: 0.4rem;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--text-muted);
}

.il-empty[b-e6niekmkna] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-muted);
}

.il-card[b-e6niekmkna] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--border-strong);
    border-left-width: 4px;
    border-radius: 5px;
    padding: 4px 6px;
    margin-bottom: 4px;
    background: var(--surface);
    cursor: pointer;
}

.il-card.planned[b-e6niekmkna] { border-left-color: var(--blue-400-border); }
.il-card.progress[b-e6niekmkna] { border-left-color: var(--warn-solid); background: var(--warn-softer); }
.il-card.done[b-e6niekmkna] { border-left-color: var(--ok-solid); background: var(--ok-softer); }
.il-card.overdue[b-e6niekmkna] { border-left-color: var(--danger-solid); background: var(--danger-soft); }

.il-time[b-e6niekmkna] {
    font-variant-numeric: tabular-nums;
    font-size: 0.85rem;
    color: var(--text-muted);
}

.il-main[b-e6niekmkna] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    font-size: 0.88rem;
}

.il-name[b-e6niekmkna] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.il-phone[b-e6niekmkna] {
    font-size: 0.78rem;
    color: var(--text-muted);
}

@media (max-width: 640px) {
    .grid-scroll[b-e6niekmkna] { display: none; }
    .install-list[b-e6niekmkna] { display: block; }
    .im-pop[b-e6niekmkna], .im-pop.kbd[b-e6niekmkna] {
        left: 0.5rem;
        right: 0.5rem;
        top: auto;
        bottom: 0.5rem;
        width: auto;
        max-width: none;
        max-height: 75vh;
        transform: none;
    }
}
/* /Components/Pages/Leadgen/LeadgenRequestDetail.razor.rz.scp.css */
.review-card[b-r0713behgb] {
    border-color: var(--amber-250-border);
    background: var(--warn-softer);
}

.review-candidates[b-r0713behgb] {
    list-style: none;
    margin: .5rem 0 0;
    padding: 0;
}

.review-candidates li[b-r0713behgb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    padding: .6rem 0;
    border-top: 1px solid var(--amber-150-border-2);
}

.review-who[b-r0713behgb] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.review-actions[b-r0713behgb] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

/* Шапка заявки: клиент крупно, «Позвонить» справа, строка «Заявка #N · …», плашки и срок. */
.req-head[b-r0713behgb] { display: block; }
.rh-top[b-r0713behgb] { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.rh-top h1[b-r0713behgb] { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.req-idline[b-r0713behgb] { margin: .25rem 0 .5rem; color: var(--text-muted); overflow-wrap: anywhere; }

.rh-pills[b-r0713behgb] { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; margin-bottom: .6rem; }
.rh-pill[b-r0713behgb] { padding: .05rem .55rem; border-radius: .6rem; background: var(--surface-2); color: var(--slate-600-text); font-size: .8rem; white-space: nowrap; }
.rh-pill.work[b-r0713behgb] { background: var(--warn-soft); color: var(--warn); }
.req-actions[b-r0713behgb] { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .5rem; }

/* «Что пришло в заявке» и «Ход заявки»: подпись и значение в одну строку и на узком экране тоже. */
dl.kv.incoming-kv[b-r0713behgb] { grid-template-columns: minmax(5.5rem, max-content) minmax(0, 1fr); gap: .35rem 1rem; }
dl.kv.incoming-kv dd[b-r0713behgb] { margin-bottom: 0; overflow-wrap: anywhere; }

/* Журнал лентой: вертикальная линия и точка у каждой записи. */
.event-log[b-r0713behgb] { list-style: none; margin: 0; padding: 0 0 0 .9rem; border-left: 2px solid var(--border); }
.event-log li[b-r0713behgb] { position: relative; padding: .3rem 0 .3rem .6rem; }
.event-log li[b-r0713behgb]::before {
    content: "";
    position: absolute;
    left: calc(-.9rem - 6px);
    top: .8rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--surface);
    border: 2px solid var(--text-muted);
}
.ev-time[b-r0713behgb] { display: block; color: var(--text-muted); font-size: .8rem; }
.rh-pill.done[b-r0713behgb] { background: var(--ok-soft); color: var(--green-700-text); }
.rh-pill.rejected[b-r0713behgb] { background: var(--danger-soft); color: var(--danger); }
.rh-pill.review[b-r0713behgb] { background: var(--warn-soft); color: var(--warn); }
/* /Components/Pages/Leadgen/LeadgenSlaMonitor.razor.rz.scp.css */
.sup-stats[b-phwd64xoxe] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin-bottom: .75rem; }
.sup-stat[b-phwd64xoxe] {
    display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; padding: .55rem .8rem; text-align: left;
    background: var(--surface); color: var(--text-body); border: 1px solid var(--border); border-radius: 8px; cursor: pointer;
}
.sup-stat:hover[b-phwd64xoxe] { background: var(--surface-2); }
.sup-stat-num[b-phwd64xoxe] { font-size: 1.5rem; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.sup-stat-label[b-phwd64xoxe] { font-size: .8rem; color: var(--text-muted); }
.sup-stat.late .sup-stat-num[b-phwd64xoxe] { color: var(--danger); }
.sup-stat.warn .sup-stat-num[b-phwd64xoxe] { color: var(--warn); }
.sup-stat.sup-stat-on[b-phwd64xoxe] { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }

.sup-cap-overdue[b-phwd64xoxe] { color: var(--danger); }
.sup-row[b-phwd64xoxe] { --lrow-cols: minmax(0, 1fr) 14rem 10.5rem 14rem; cursor: pointer; min-height: 3.25rem; }
.sup-row:hover[b-phwd64xoxe] { background: var(--surface-2); }
.sup-title[b-phwd64xoxe] { display: flex; align-items: baseline; flex-wrap: wrap; gap: .1rem .5rem; min-width: 0; }
.sup-title .lrow-title[b-phwd64xoxe] { display: block; min-width: 0; color: var(--text); text-decoration: none; }
.sup-title .lrow-title:hover[b-phwd64xoxe] { text-decoration: underline; }
.sup-client[b-phwd64xoxe] { flex: none; font-size: .75rem; color: var(--text-muted); text-decoration: none; }
.sup-client:hover[b-phwd64xoxe] { text-decoration: underline; }
.sup-who[b-phwd64xoxe] { display: flex; flex-direction: column; min-width: 0; font-size: .85rem; }
.sup-op[b-phwd64xoxe] { font-weight: 600; color: var(--text-body); }
.sup-presence[b-phwd64xoxe] { font-weight: 400; color: var(--text-muted); }
.sup-assigned[b-phwd64xoxe] { font-size: .78rem; color: var(--text-muted); }
.sup-reassigned[b-phwd64xoxe] { color: var(--text-body); font-weight: 600; }
.sup-act[b-phwd64xoxe] { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; }
.sup-journal[b-phwd64xoxe] { grid-column: 1 / -1; padding: .2rem 0 .4rem .5rem; cursor: default; }

/* Журнал лентой: вертикальная линия и точка у каждой записи. */
.event-log[b-phwd64xoxe] { list-style: none; margin: 0; padding: 0 0 0 .9rem; border-left: 2px solid var(--border); }
.event-log li[b-phwd64xoxe] { position: relative; padding: .3rem 0 .3rem .6rem; }
.event-log li[b-phwd64xoxe]::before {
    content: ""; position: absolute; left: calc(-.9rem - 6px); top: .8rem; width: 10px; height: 10px; border-radius: 50%;
    background: var(--surface); border: 2px solid var(--text-muted);
}
.ev-time[b-phwd64xoxe] { display: block; color: var(--text-muted); font-size: .8rem; }

@media (max-width: 1100px) {
    .sup-row[b-phwd64xoxe] { --lrow-cols: minmax(0, 1fr) 11rem 9rem 12rem; }
}
@media (max-width: 640px) {
    .sup-stats[b-phwd64xoxe] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sup-row[b-phwd64xoxe] {
        --lrow-cols: minmax(0, 1fr) auto; grid-template-areas: "main main" "due due" "who act"; row-gap: .35rem;
    }
    .sup-row .lrow-main[b-phwd64xoxe] { grid-area: main; }
    .sup-row .sup-due[b-phwd64xoxe] { grid-area: due; }
    .sup-row .sup-who[b-phwd64xoxe] { grid-area: who; }
    .sup-row .sup-act[b-phwd64xoxe] { grid-area: act; }
    .sup-journal[b-phwd64xoxe] { grid-area: auto; }
}
/* /Components/Pages/Leadgen/MyLeadgenRequests.razor.rz.scp.css */
.my-req-row[b-knb5vvzr2s] { --lrow-cols: minmax(0, 1fr) 15rem 10.5rem 15rem; cursor: pointer; min-height: 3.25rem; }
.my-req-row:hover[b-knb5vvzr2s] { background: var(--surface-2); }
.my-req-title[b-knb5vvzr2s] { display: flex; align-items: baseline; gap: .5rem; min-width: 0; }
.my-req-title .lrow-title[b-knb5vvzr2s] { display: block; min-width: 0; color: var(--text); text-decoration: none; }
.my-req-title .lrow-title:hover[b-knb5vvzr2s] { text-decoration: underline; }
.my-req-client[b-knb5vvzr2s] { flex: none; font-size: .75rem; color: var(--text-muted); text-decoration: none; }
.my-req-client:hover[b-knb5vvzr2s] { text-decoration: underline; }
.my-req-assigned[b-knb5vvzr2s] { font-size: .85rem; color: var(--text-body); }
.my-req-act[b-knb5vvzr2s] { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; }
.my-req-error[b-knb5vvzr2s] { grid-column: 1 / -1; margin: 0; }

@media (max-width: 1100px) {
    .my-req-row[b-knb5vvzr2s] { --lrow-cols: minmax(0, 1fr) 11rem 9rem 13rem; }
}
@media (max-width: 640px) {
    .my-req-row[b-knb5vvzr2s] {
        --lrow-cols: minmax(0, 1fr) auto; grid-template-areas: "main main" "due due" "assigned act"; row-gap: .35rem;
    }
    .my-req-row .lrow-main[b-knb5vvzr2s] { grid-area: main; }
    .my-req-row .my-req-due[b-knb5vvzr2s] { grid-area: due; }
    .my-req-row .my-req-assigned[b-knb5vvzr2s] { grid-area: assigned; }
    .my-req-row .my-req-act[b-knb5vvzr2s] { grid-area: act; }
}
/* /Components/Pages/Leads/DuplicatesQueue.razor.rz.scp.css */
.dup-score[b-7809j76gby] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    padding: 0.15rem 0.4rem;
    font-weight: 700;
    border-radius: 6px;
}

.dup-score.score-high[b-7809j76gby] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
}

.dup-score.score-mid[b-7809j76gby] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.dup-score.score-low[b-7809j76gby] {
    background: var(--accent-soft);
    color: var(--accent-text-strong);
}

.dup-meta[b-7809j76gby] {
    display: block;
    font-size: 0.8125rem;
}

.dup-actions[b-7809j76gby] {
    white-space: nowrap;
}

.btn-sm[b-7809j76gby] {
    display: inline-block;
    padding: 0.3rem 0.6rem;
    font-size: 0.8125rem;
    line-height: 1.2;
    border-radius: 6px;
    text-decoration: none;
}

.dup-actions .btn-sm + .btn-sm[b-7809j76gby] {
    margin-left: 0.4rem;
}

.scan-status[b-7809j76gby] {
    margin: 0.75rem 0;
    padding: 0.6rem 0.85rem;
    border-radius: 8px;
    font-size: 0.9rem;
    border: 1px solid transparent;
}

.scan-status span[b-7809j76gby] {
    margin-left: 0.4rem;
    color: var(--text-2);
}

.scan-status.running[b-7809j76gby] {
    background: var(--accent-soft);
    border-color: var(--accent-soft-border);
    color: var(--accent-text-strong);
}

.scan-status.done[b-7809j76gby] {
    background: var(--ok-softer);
    border-color: var(--green-150-border);
    color: var(--ok-strong);
}

.scan-status.error[b-7809j76gby] {
    background: var(--danger-soft);
    border-color: var(--danger-border);
    color: var(--danger-strong);
}

.empty[b-7809j76gby] {
    color: var(--text-muted);
}
/* /Components/Pages/Leads/Import/LeadImport.razor.rz.scp.css */
.muted[b-uxwl63w713] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.subgroup[b-uxwl63w713] {
    margin: 1.25rem 0 0.25rem 0;
    font-size: 0.9375rem;
    color: var(--text-2);
}

/* Выбор файла и строка новой активности: на телефоне поле, тип и кнопки переносятся, а не тянут форму вширь. */
.upload-row[b-uxwl63w713] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.upload-row input[type="text"][b-uxwl63w713] {
    flex: 1 1 14rem;
    min-width: 0;
    max-width: 24rem;
}

.data-table[b-uxwl63w713] {
    margin: 0.5rem 0 0.75rem;
}

/* Значения колонок приезжают из файла и бывают слитыми «словами» на сотни символов. */
.data-table td[b-uxwl63w713] {
    overflow-wrap: anywhere;
}

.columns-table select[b-uxwl63w713] {
    width: 100%;
    max-width: 22rem;
}

/* Телефон: у колонки файла подпись над значением — пример и выбор поля занимают всю ширину карточки. */
@media (max-width: 640px) {
    .columns-table tbody td[b-uxwl63w713] {
        display: block;
        text-align: left;
    }

    .columns-table tbody td[b-uxwl63w713]::before {
        display: block;
        margin-bottom: 0.15rem;
    }

    .columns-table select[b-uxwl63w713] {
        max-width: none;
    }
}
/* /Components/Pages/Leads/Import/LeadImportBatchView.razor.rz.scp.css */
.muted[b-mmq4t7w2rr] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.subgroup[b-mmq4t7w2rr] {
    margin: 1.25rem 0 0.25rem 0;
    font-size: 0.9375rem;
    color: var(--text-2);
}

/* Галки «что заливать» — каждая своей строкой, текст рядом с галкой переносится под текст, а не под неё. */
.check-row[b-mmq4t7w2rr] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0.4rem 0;
    font-size: 0.875rem;
}

.check-row input[b-mmq4t7w2rr] {
    margin-top: 0.2rem;
    flex: 0 0 auto;
}

.toolbar .check-row[b-mmq4t7w2rr] {
    margin: 0;
}

.kv[b-mmq4t7w2rr] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0.75rem 0 0 0;
    max-width: 600px;
}

.kv dt[b-mmq4t7w2rr] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-mmq4t7w2rr] {
    margin: 0;
    color: var(--text-strong);
    font-weight: 500;
}

.toolbar[b-mmq4t7w2rr] {
    margin-top: 0.75rem;
}

/* Поиск лида для строки: поле и кнопки переносятся внутри ячейки. */
.upload-row[b-mmq4t7w2rr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
    margin-top: 0.4rem;
}

.upload-row input[type="text"][b-mmq4t7w2rr] {
    flex: 1 1 12rem;
    min-width: 0;
}

.rows-table[b-mmq4t7w2rr] {
    margin: 0.5rem 0 0.75rem;
}

/* Подписи строк и имена лидов приезжают из файла и бывают слитыми «словами» на сотни
   символов — без принудительного переноса такая ячейка растягивает разбор далеко за
   пределы экрана, и колонка с итогом уезжает за край. */
.rows-table td[b-mmq4t7w2rr] {
    overflow-wrap: anywhere;
}

.rows-table td:nth-child(2)[b-mmq4t7w2rr] {
    max-width: 24rem;
}

.rows-table td:nth-child(4)[b-mmq4t7w2rr] {
    max-width: 22rem;
}

.rows-table select[b-mmq4t7w2rr] {
    max-width: 100%;
}

/* Телефон: строка файла — карточкой, подпись над значением: проверка и решение бывают в несколько строк
   (найденный лид, причина, поиск другого лида), рядом с подписью им тесно. */
@media (max-width: 640px) {
    .rows-table tbody td[b-mmq4t7w2rr] {
        display: block;
        max-width: none;
        text-align: left;
    }

    .rows-table tbody td[b-mmq4t7w2rr]::before {
        display: block;
        margin-bottom: 0.15rem;
    }

    .rows-table select[b-mmq4t7w2rr] {
        width: 100%;
    }
}
/* /Components/Pages/Leads/LeadBitrixCheck.razor.rz.scp.css */
.card > p.muted[b-bbw1iqi4lu] {
    margin: -0.5rem 0 0.75rem 0;
}

.muted[b-bbw1iqi4lu] {
    color: var(--text-faint);
    font-size: 0.875rem;
    font-style: italic;
}

.error[b-bbw1iqi4lu] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.bitrix-header[b-bbw1iqi4lu] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.best-score[b-bbw1iqi4lu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.best-score .verdict[b-bbw1iqi4lu] {
    font-weight: 500;
    color: var(--text-strong);
}

.score[b-bbw1iqi4lu] {
    display: inline-block;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

.score-high[b-bbw1iqi4lu] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
}

.score-mid[b-bbw1iqi4lu] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.score-low[b-bbw1iqi4lu] {
    background: var(--accent-soft-strong);
    color: var(--accent-text-strong);
}

.score-zero[b-bbw1iqi4lu] {
    background: var(--surface-2);
    color: var(--text-muted);
}

.bitrix-summary[b-bbw1iqi4lu] {
    background: var(--surface-alt);
    border-left: 3px solid var(--accent);
    padding: 0.5rem 0.875rem;
    margin: 0 0 0.75rem 0;
    color: var(--text);
    font-size: 0.875rem;
}

.bitrix-matches[b-bbw1iqi4lu] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.bitrix-matches th[b-bbw1iqi4lu],
.bitrix-matches td[b-bbw1iqi4lu] {
    text-align: left;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

.bitrix-matches th[b-bbw1iqi4lu] {
    background: var(--surface-alt);
    color: var(--text-body);
    font-weight: 500;
}

.bitrix-matches .cand-title[b-bbw1iqi4lu] {
    font-weight: 500;
    color: var(--text-strong);
}

.bitrix-matches .detector-name[b-bbw1iqi4lu] {
    font-weight: 500;
    color: var(--text-strong);
    margin-bottom: 0.15rem;
}

.bitrix-matches .reason[b-bbw1iqi4lu] {
    line-height: 1.35;
}

.bitrix-link[b-bbw1iqi4lu] {
    color: var(--link);
    text-decoration: none;
    font-weight: 500;
}

.bitrix-link:hover[b-bbw1iqi4lu] {
    text-decoration: underline;
}

/* На телефоне совпадения — карточками (общий .cards-narrow в app.css): текст кандидата и причины — слева во всю
   строку, ссылка в Битрикс24 — отдельной строкой; пустую ячейку без ссылки не показываем. */
@media (max-width: 640px) {
    .bitrix-matches.cards-narrow td[b-bbw1iqi4lu] {
        padding: 0.3rem 0.8rem;
        border-bottom: 0;
        text-align: right;
    }

    .bitrix-matches.cards-narrow td.cand[b-bbw1iqi4lu],
    .bitrix-matches.cards-narrow td.detector[b-bbw1iqi4lu] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.2rem;
        text-align: left;
    }

    .bitrix-matches.cards-narrow td.link-cell:not(:has(a))[b-bbw1iqi4lu] {
        display: none;
    }
}
/* /Components/Pages/Leads/LeadCardFacts.razor.rz.scp.css */
.kv[b-cd5ibdf562] {
    display: grid;
    grid-template-columns: minmax(max-content, 9rem) minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0;
    max-width: 800px;
}

.kv dt[b-cd5ibdf562] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-cd5ibdf562] {
    margin: 0;
    color: var(--text-strong);
}

.kv dd.notes[b-cd5ibdf562] {
    white-space: pre-wrap;
}

.missing[b-cd5ibdf562] {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

button.link[b-cd5ibdf562] {
    background: none;
    border: none;
    color: var(--blue-550-text);
    cursor: pointer;
    padding: 0 0.25rem;
    font-size: 0.95rem;
}
/* /Components/Pages/Leads/LeadClientCell.razor.rz.scp.css */
.lcl[b-bm3lxnrlge] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 5px;
    align-items: flex-start;
    min-width: 0;
}

/* Плашки в ячейке не рвутся внутри себя: длинное обрезается с «…», полный текст — в подсказке; рядами их держит перенос
   между плашками. */
.lcl[b-bm3lxnrlge]  .engagement-badges {
    margin: 0;
    display: contents;
}

/* Каждая подпись — своей строкой: «сделки были — все проиграны» и «звонили давно — …» рядом читались бы одной фразой. */
.lcl-empty[b-bm3lxnrlge] {
    flex-basis: 100%;
    font-size: 0.8rem;
    color: var(--text-faint);
}
/* /Components/Pages/Leads/LeadContactCell.razor.rz.scp.css */
.lcc-main[b-bztbsuasvz] {
    white-space: nowrap;
}

.lcc-more[b-bztbsuasvz] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--chip-bg);
    border: 1px solid var(--chip-border);
    color: var(--chip-text);
    font-size: 0.72rem;
    font-weight: 600;
    cursor: help;
}

.lcc-label[b-bztbsuasvz] {
    display: block;
    font-size: 0.75rem;
    color: var(--text-faint);
    white-space: normal;
}
/* /Components/Pages/Leads/LeadContactsBlock.razor.rz.scp.css */
.add-btn[b-vkbl7tkhjp] {
    min-width: 32px;
    font-size: 1.1rem;
    line-height: 1;
}

.add-menu[b-vkbl7tkhjp] {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 0.5rem;
}

.add-form[b-vkbl7tkhjp] {
    margin-bottom: 0.5rem;
    padding: 0.5rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-alt);
}

.add-form[b-vkbl7tkhjp]  .add-phone-row,
.add-form[b-vkbl7tkhjp]  .add-email-row {
    flex-wrap: wrap;
}

.call-part[b-vkbl7tkhjp] {
    margin-bottom: 0.5rem;
}

.cap[b-vkbl7tkhjp] {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--text-2);
}

.person[b-vkbl7tkhjp] {
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
}

.notes-plate[b-vkbl7tkhjp] {
    margin-top: 0.75rem;
    padding: 0.5rem 0.625rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-alt);
    font-size: 0.875rem;
}

.notes-head[b-vkbl7tkhjp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.notes-plate p[b-vkbl7tkhjp] {
    margin: 0.25rem 0 0;
}

.notes-plate .notes[b-vkbl7tkhjp] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

button.link[b-vkbl7tkhjp] {
    background: none;
    border: none;
    color: var(--blue-550-text);
    cursor: pointer;
    padding: 0 0.25rem;
    font-size: 0.95rem;
}
/* /Components/Pages/Leads/LeadCreate.razor.rz.scp.css */
.crumbs[b-qstcql6w0g] {
    margin: 0 0 0.5rem 0;
    font-size: 0.875rem;
}

.crumbs a[b-qstcql6w0g] {
    color: var(--text-2);
}

.card h3[b-qstcql6w0g] {
    margin: 0.5rem 0 0.5rem 0;
    font-size: 0.95rem;
    color: var(--text-body);
}

.contact-block[b-qstcql6w0g] {
    margin-bottom: 1rem;
}

.contact-block:last-child[b-qstcql6w0g] {
    margin-bottom: 0;
}

.contact-entry[b-qstcql6w0g] {
    margin-bottom: 0.4rem;
}

/* Поля номера и подписи — в LeadContactFields; ряд ставит перед ними булавку «основной», после — «Удалить». */
.contact-row[b-qstcql6w0g] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

/* Ошибка — под полями, а не под булавкой: отступ на её ширину (28 px) и зазор ряда. */
.row-error[b-qstcql6w0g] {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
    margin-left: calc(28px + 0.5rem);
}

.field[b-qstcql6w0g] {
    display: flex;
    flex-direction: column;
}

.muted[b-qstcql6w0g] {
    color: var(--text-muted);
    font-size: 0.875rem;
    margin: -0.5rem 0 0.75rem 0;
}

.field label[b-qstcql6w0g] {
    margin-bottom: 0.25rem;
}

.field[b-qstcql6w0g]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.form-actions[b-qstcql6w0g] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0;
    align-items: center;
    flex-wrap: wrap;
}

.error[b-qstcql6w0g] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

button.link-danger[b-qstcql6w0g] {
    border: none;
    background: transparent;
    color: var(--danger);
    padding: 0.2rem 0.4rem;
    font-size: 0.8125rem;
}

button.link-danger:hover:not(:disabled)[b-qstcql6w0g] {
    background: var(--danger-soft);
}

/* «Кто это»: две колонки, название и ответ реестра — во всю ширину. */
.who-grid[b-qstcql6w0g] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1rem;
}

.who-grid > .full[b-qstcql6w0g] {
    grid-column: 1 / -1;
}

@media (max-width: 640px) {
    .who-grid[b-qstcql6w0g] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.card[b-qstcql6w0g]  textarea {
    width: 100%;
}

/* Свёрнутые блоки: заголовок и сводка в одной строке, стрелка справа. */
details.fold > summary[b-qstcql6w0g] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    cursor: pointer;
    list-style: none;
}

details.fold > summary[b-qstcql6w0g]::-webkit-details-marker {
    display: none;
}

details.fold > summary h2[b-qstcql6w0g] {
    margin: 0;
}

details.fold > summary[b-qstcql6w0g]::after {
    content: "▾";
    margin-left: auto;
    color: var(--text-muted);
}

details.fold[open] > summary[b-qstcql6w0g]::after {
    content: "▴";
}

details.fold[open] > summary[b-qstcql6w0g] {
    margin-bottom: 0.75rem;
}

.fold-sum[b-qstcql6w0g] {
    color: var(--text-muted);
    font-size: 0.875rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    details.fold > summary[b-qstcql6w0g] {
        flex-wrap: wrap;
        row-gap: 0.15rem;
    }

    .fold-sum[b-qstcql6w0g] {
        order: 3;
        flex-basis: 100%;
    }
}

button.link-danger[b-qstcql6w0g] {
    font-size: 1.125rem;
    line-height: 1;
}

/* Форма и «Похожие лиды»: на 1440 и шире — две колонки, справа 360 px, колонка липнет, пока помещается в окне;
   уже — «Похожие» под формой. */
.create-layout[b-qstcql6w0g] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem 1rem;
    align-items: start;
}

.create-main[b-qstcql6w0g] {
    min-width: 0;
}

@media (min-width: 1440px) {
    .create-layout[b-qstcql6w0g] {
        grid-template-columns: minmax(0, 1fr) 360px;
    }

    .create-layout[b-qstcql6w0g]  .create-aside {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    .create-layout[b-qstcql6w0g]  .create-aside[data-sticky-fits] {
        position: sticky;
        top: 12px;
    }
}

.dup-card-head[b-qstcql6w0g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.dup-card-head h2[b-qstcql6w0g] {
    margin: 0;
}

button.icon-btn[b-qstcql6w0g] {
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-muted);
    border-radius: 6px;
    width: 2rem;
    height: 2rem;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1;
}

button.icon-btn:hover:not(:disabled)[b-qstcql6w0g] {
    color: var(--text);
    background: var(--surface-alt);
}

.dup-none[b-qstcql6w0g] {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.875rem;
}

.bar-note[b-qstcql6w0g] {
    font-size: 0.875rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.bar-error[b-qstcql6w0g] {
    color: var(--danger-strong);
}

.bar-dup.medium[b-qstcql6w0g] { color: var(--warn-strong); }
.bar-dup.high[b-qstcql6w0g] { color: var(--danger-strong); font-weight: 600; }
.bar-dup.low[b-qstcql6w0g] { color: var(--text-muted); }
/* /Components/Pages/Leads/LeadDealsButton.razor.rz.scp.css */
/* Пункт открытой сделки — две строки: «#номер · направление» и ниже воронка, стадия, ответственный, сумма. Нижняя
   строка переносится, а не раздвигает меню за край экрана. */
.deal-item[b-h7cc4ebp9u] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.deal-item small[b-h7cc4ebp9u] {
    display: block;
    max-width: 24rem;
    white-space: normal;
    color: var(--text-muted);
    font-weight: normal;
}
/* /Components/Pages/Leads/LeadDetail.razor.rz.scp.css */
.crumbs[b-h26kg7rqby] {
    margin: 0 0 0.5rem 0;
    font-size: 0.875rem;
}

.crumbs a[b-h26kg7rqby] {
    color: var(--text-2);
}

.header[b-h26kg7rqby] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.header h1[b-h26kg7rqby] {
    margin: 0;
    flex: 1 1 auto;
    min-width: 12rem;
}

.header h1 .source-badge[b-h26kg7rqby] {
    vertical-align: middle;
}

.header-actions[b-h26kg7rqby] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.field[b-h26kg7rqby] {
    display: flex;
    flex-direction: column;
}

.card > p.muted[b-h26kg7rqby] {
    margin: -0.5rem 0 0.75rem 0;
}

.field label[b-h26kg7rqby] {
    margin-bottom: 0.25rem;
}

.field[b-h26kg7rqby]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.form-actions[b-h26kg7rqby] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.contact-list[b-h26kg7rqby] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.contact-row[b-h26kg7rqby] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 0.625rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-alt);
    font-size: 0.875rem;
}

/* Узкий экран: ряд переносится — номер для набора и кнопки уходят на следующую строку, а не за край карточки. */
@media (max-width: 640px) {
    .contact-row[b-h26kg7rqby] {
        flex-wrap: wrap;
        row-gap: 0.4rem;
    }
}

.contact-row .raw[b-h26kg7rqby] {
    font-weight: 500;
}

.contact-row .dial[b-h26kg7rqby] {
    color: var(--green-650-text);
    font-size: 0.8125rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.contact-row .dial.dial-warn[b-h26kg7rqby] {
    color: var(--amber-650-text);
}

button.link[b-h26kg7rqby] {
    background: none;
    border: none;
    color: var(--blue-550-text);
    cursor: pointer;
    padding: 0 0.25rem;
    font-size: 0.95rem;
}

button.link:hover:not(:disabled)[b-h26kg7rqby] {
    color: var(--blue-650-text);
}

button.link:disabled[b-h26kg7rqby] {
    opacity: 0.5;
    cursor: default;
}

.contact-row .label-tag[b-h26kg7rqby] {
    background: var(--accent-soft-strong);
    color: var(--indigo-600-text);
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
}

.subgroup[b-h26kg7rqby] {
    margin: 1rem 0 0.5rem 0;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--text-2);
}

.add-row[b-h26kg7rqby] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.inline-input[b-h26kg7rqby] {
    flex: 1;
    max-width: 320px;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
}

.inline-input:focus[b-h26kg7rqby] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.muted[b-h26kg7rqby] {
    color: var(--text-faint);
    font-size: 0.875rem;
    font-style: italic;
}

button.link-danger[b-h26kg7rqby] {
    border: none;
    background: transparent;
    color: var(--danger);
    padding: 0.2rem 0.4rem;
    font-size: 0.8125rem;
}

button.link-danger:hover:not(:disabled)[b-h26kg7rqby] {
    background: var(--danger-soft);
}

.error[b-h26kg7rqby] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.error-inline[b-h26kg7rqby] {
    color: var(--danger);
    font-size: 0.8125rem;
}

.legacy-note[b-h26kg7rqby] {
    background: var(--surface-2);
    border-left: 3px solid var(--slate-550-border);
    padding: 0.5rem 0.875rem;
    margin: 0 0 1rem 0;
    color: var(--text-2);
    font-size: 0.875rem;
}

/* Шапка: слева название, строка «УНП · город · форма» и плашки, справа значки, «Позвонить» и «⋯». */
.title[b-h26kg7rqby] {
    flex: 1 1 18rem;
    min-width: 0;
}

.title h1[b-h26kg7rqby] {
    overflow-wrap: anywhere;
}

.sub[b-h26kg7rqby] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.625rem;
    margin: 0.25rem 0 0;
    color: var(--text-2);
    font-size: 13.5px;
}

.sub span + span[b-h26kg7rqby]::before {
    content: "·";
    margin-right: 0.625rem;
    color: var(--text-muted);
}

.plates[b-h26kg7rqby] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem 0.5rem;
    margin-top: 0.5rem;
}

.inactive-badge[b-h26kg7rqby] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border: 1px solid var(--warn-border, var(--chip-border));
    border-radius: 999px;
    background: var(--warn-soft-strong, var(--chip-bg));
    color: var(--amber-700-text, var(--chip-text));
    font-size: 12px;
    font-weight: 500;
}

.header-actions[b-h26kg7rqby] {
    align-items: center;
}

@media (max-width: 640px) {
    /* Столбиком: без переноса строк flex-контейнера, иначе столбец раздувается до самой длинной плашки и уходит за экран. */
    .header[b-h26kg7rqby] {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
    }

    .title[b-h26kg7rqby] {
        flex: none;
    }

    /* Строка «УНП · город · форма» переносится — без точек-разделителей, иначе перенесённая часть начинается с «·». */
    .sub[b-h26kg7rqby] {
        gap: 0.125rem 0.875rem;
    }

    .sub span + span[b-h26kg7rqby]::before {
        content: none;
    }

    .plates > *[b-h26kg7rqby] {
        max-width: 100%;
    }

    /* Выбор номера — во всю ширину ряда кнопок: прижатый к «▾» посреди ряда, он ушёл бы за левый край. */
    .header-actions[b-h26kg7rqby]  .client-call .more-menu {
        position: static;
    }

    .header-actions[b-h26kg7rqby]  .client-call .more-pop {
        left: 0;
        right: 0;
        width: auto;
    }

    .header-actions[b-h26kg7rqby] >  .more-menu {
        margin-left: auto;
    }
}

.menu-note[b-h26kg7rqby] {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 400;
    color: var(--text-muted);
}

/* Спокойная полоса над «Обзором» деактивированного клиента: объяснение и «Активировать». */
.inactive-strip[b-h26kg7rqby] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.375rem 0.75rem;
    margin: 0 0 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    color: var(--text-2);
    font-size: 13.5px;
}

.inactive-strip .text[b-h26kg7rqby] { flex: 1 1 20rem; }

/* «Обзор»: до 1440 — одна сетка, где сделки идут во всю ширину, а «Компания» и «Контакты» рядом (на телефоне — подряд);
   с 1440 — работа слева, справочное справа в колонке 340 px, которая липнет, пока помещается в окне (замер — StickyAside). */
.overview-grid[b-h26kg7rqby] {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    grid-template-areas:
        "dupes dupes"
        "deals deals"
        "company contacts"
        "about about"
        "rest rest";
    column-gap: 12px;
    align-items: start;
}

.overview-main[b-h26kg7rqby],
.overview-grid[b-h26kg7rqby]  .overview-aside { display: contents; }

.ov-dupes[b-h26kg7rqby] { grid-area: dupes; }
.ov-deals[b-h26kg7rqby] { grid-area: deals; }
.ov-company[b-h26kg7rqby] { grid-area: company; }
.ov-contacts[b-h26kg7rqby] { grid-area: contacts; }
.ov-about[b-h26kg7rqby] { grid-area: about; }
.ov-rest[b-h26kg7rqby] { grid-area: rest; }

.ov-dupes[b-h26kg7rqby], .ov-deals[b-h26kg7rqby], .ov-company[b-h26kg7rqby], .ov-contacts[b-h26kg7rqby], .ov-about[b-h26kg7rqby], .ov-rest[b-h26kg7rqby] { min-width: 0; }

@media (max-width: 640px) {
    .overview-grid[b-h26kg7rqby] {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "dupes"
            "deals"
            "company"
            "contacts"
            "about"
            "rest";
    }
}

@media (min-width: 1440px) {
    .overview-grid[b-h26kg7rqby] {
        grid-template-columns: minmax(0, 1fr) 340px;
        grid-template-areas: none;
    }

    .overview-main[b-h26kg7rqby] { display: block; grid-column: 1; grid-row: 1; min-width: 0; }
    .overview-grid[b-h26kg7rqby]  .overview-aside { display: block; grid-column: 2; grid-row: 1; min-width: 0; }

    .overview-grid[b-h26kg7rqby]  .overview-aside[data-sticky-fits]:not(:has(.modal-backdrop)) {
        position: sticky;
        top: 12px;
    }
}

/* Сделки клиента в «Обзоре» уже, чем на вкладке: поля ячеек 10 px, кнопки строки переносятся внутри своей ячейки — таблица
   не прокручивается в карточке. */
.ov-deals[b-h26kg7rqby]  .opps-table th,
.ov-deals[b-h26kg7rqby]  .opps-table td {
    padding-left: 10px;
    padding-right: 10px;
}

.ov-deals[b-h26kg7rqby]  .opps-table td.actions-cell { width: auto; white-space: normal; }
.ov-deals[b-h26kg7rqby]  .opps-table td.actions-cell > .row-actions { flex-wrap: wrap; }

/* Контакты в колонке 340 px: номер, пометка и кнопки переносятся на следующую строку, а не за край карточки. */
.ov-contacts .contact-row[b-h26kg7rqby] {
    flex-wrap: wrap;
    row-gap: 0.4rem;
}

.ov-contacts[b-h26kg7rqby]  .contact-row > * { min-width: 0; }

/* Таблица сделок, не поместившаяся в колонку, прокручивается внутри своей карточки, а не всей страницей. */
.ov-deals[b-h26kg7rqby]  .opps-table {
    display: block;
    overflow-x: auto;
}

/* «Компания»: госреестр слева, «Для документов» справа, когда карточка шире 760 px; уже — «Для документов» сверху. */
.company-card[b-h26kg7rqby] { container-type: inline-size; }

.company-cols[b-h26kg7rqby] {
    display: flex;
    flex-direction: column-reverse;
    gap: 1.25rem;
}

.company-cols[b-h26kg7rqby]  .company-part { min-width: 0; }

@container (min-width: 760px) {
    .company-cols[b-h26kg7rqby] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 1.5rem;
        align-items: start;
    }
}

/* Правка карточки: «Похожие» стоят первыми в разметке — на узком экране они над формой, с 1440 уходят вправо. */
.edit-layout[b-h26kg7rqby] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

@media (min-width: 1440px) {
    .edit-layout[b-h26kg7rqby] {
        grid-template-columns: minmax(0, 1fr) 20rem;
    }

    .edit-aside[b-h26kg7rqby] {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        position: sticky;
        top: 0.75rem;
    }

    .edit-layout[b-h26kg7rqby] >  form {
        grid-column: 1;
        grid-row: 1;
    }
}

/* Липнет к низу — общий стиль sticky-actions в app.css. */
.edit-actions .error[b-h26kg7rqby] {
    margin-bottom: 0.5rem;
}

.edit-actions .form-actions[b-h26kg7rqby] {
    margin-top: 0;
    align-items: center;
    flex-wrap: wrap;
}

.edit-hint[b-h26kg7rqby] {
    font-size: 0.8125rem;
}
/* /Components/Pages/Leads/LeadLinksPanel.razor.rz.scp.css */
.links-hint[b-4h97j5kxnw] {
    margin-top: 0;
    font-size: .85rem;
}

.link-meta[b-4h97j5kxnw] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    font-size: .8rem;
    color: var(--text-muted);
}

.confirm-inline[b-4h97j5kxnw] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    white-space: nowrap;
}

.toolbar[b-4h97j5kxnw] {
    margin-top: .75rem;
}

.cell[b-4h97j5kxnw] {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    /* В карточке значение прижато вправо (как у остальных списков); мета и бейджи — туда же. */
    .cell .link-meta[b-4h97j5kxnw],
    .cell[b-4h97j5kxnw]  .engagement-badges {
        justify-content: flex-end;
    }
}
/* /Components/Pages/Leads/LeadOpportunitiesPanel.razor.rz.scp.css */
.muted[b-u9nblqae6m] {
    color: var(--text-muted);
    font-style: italic;
}

.opps-table[b-u9nblqae6m] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.opps-table th[b-u9nblqae6m], .opps-table td[b-u9nblqae6m] {
    text-align: left;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

.opps-table th[b-u9nblqae6m] {
    background: var(--surface-alt);
    font-weight: 600;
    color: var(--text-body);
}

.reopen-count[b-u9nblqae6m] {
    margin-left: 0.4rem;
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 500;
}

.assignee-chip[b-u9nblqae6m] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: var(--accent-soft);
    border: 1px solid var(--accent-soft-border);
    color: var(--accent-text-strong);
    font-size: 0.8125rem;
    font-weight: 500;
}

.row-actions[b-u9nblqae6m] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    align-items: center;
}

.closed-free-hint[b-u9nblqae6m] {
    margin: 0.35rem 0 0 auto;
    max-width: 22rem;
    text-align: right;
    font-size: 0.8125rem;
    line-height: 1.35;
}

.link[b-u9nblqae6m] {
    color: var(--accent-text);
    text-decoration: none;
    font-size: 0.875rem;
}

.link:hover[b-u9nblqae6m] {
    text-decoration: underline;
}

.error[b-u9nblqae6m] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 1rem 0 0 0;
}

/* На телефоне направления — карточками (общий .cards-narrow в app.css): свой отступ и черта ячеек таблицы
   карточке не нужны; «Сделки нет» и подсказка о закрытой свободной сделке — во всю ширину; ячейка действий без
   кнопок (у «Сделки нет», когда создавать сделки нельзя) — не пустой полосой. */
@media (max-width: 640px) {
    .opps-table.cards-narrow td[b-u9nblqae6m] {
        padding: 0.55rem 0.8rem;
        border-bottom: 0;
        text-align: right;
    }

    .opps-table.cards-narrow td:first-child[b-u9nblqae6m] {
        font-size: 0.95rem;
    }

    .opps-table.cards-narrow td.no-deal[b-u9nblqae6m] {
        justify-content: flex-start;
        text-align: left;
    }

    .opps-table.cards-narrow .row-actions[b-u9nblqae6m] {
        flex-wrap: wrap;
    }

    .opps-table.cards-narrow td.actions-cell:not(:has(a, button, p))[b-u9nblqae6m] {
        display: none;
    }

    .opps-table.cards-narrow .closed-free-hint[b-u9nblqae6m] {
        flex: 1 0 100%;
        max-width: none;
        margin: 0;
    }
}
/* /Components/Pages/Leads/LeadRegistryHistory.razor.rz.scp.css */
/* Как в карточке лида: стили страницы до дочернего компонента не доходят. */
.muted[b-h8ks264uu0] {
    color: var(--text-faint);
    font-size: 0.875rem;
    font-style: italic;
}

.egr-history[b-h8ks264uu0] {
    margin-top: .75rem;
    padding-top: .6rem;
    border-top: 1px solid var(--border);
}

.egr-history-toggle[b-h8ks264uu0] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .25rem 0;
    border: none;
    background: none;
    color: var(--link);
    font-weight: 600;
    cursor: pointer;
}

/* Общее button:hover перекрасило бы ссылку серым фоном. */
.egr-history-toggle:hover:not(:disabled)[b-h8ks264uu0] {
    text-decoration: underline;
    background: none;
}

.egr-history-chevron[b-h8ks264uu0] {
    display: inline-block;
    width: 1em;
    text-align: center;
}

.egr-history-count[b-h8ks264uu0] {
    color: var(--text-muted);
    font-weight: 400;
}

.egr-history-body[b-h8ks264uu0] {
    margin-top: .4rem;
}

.egr-history-message[b-h8ks264uu0] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem .75rem;
    margin-bottom: 0;
}

.egr-events[b-h8ks264uu0] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.egr-event[b-h8ks264uu0] {
    display: flex;
    gap: .75rem;
    padding: .5rem 0 .5rem .6rem;
    border-left: 3px solid transparent;
    border-top: 1px solid var(--border);
}

.egr-event:first-child[b-h8ks264uu0] {
    border-top: none;
}

.egr-event-date[b-h8ks264uu0] {
    flex: 0 0 6.5rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.egr-event-body[b-h8ks264uu0] {
    min-width: 0;
}

.egr-event-title[b-h8ks264uu0] {
    overflow-wrap: anywhere;
}

.egr-event-meta[b-h8ks264uu0] {
    margin-top: .15rem;
    font-size: .85rem;
    color: var(--text-muted);
    overflow-wrap: anywhere;
}

.egr-event-milestone .egr-event-title[b-h8ks264uu0] {
    font-weight: 600;
}

/* Компания прекратила существование — главное, что менеджер должен увидеть. */
.egr-event-termination[b-h8ks264uu0] {
    border-left-color: var(--danger);
    background: var(--danger-soft);
}

.egr-event-termination .egr-event-title[b-h8ks264uu0],
.egr-event-termination .egr-event-date[b-h8ks264uu0] {
    color: var(--danger);
    font-weight: 600;
}

.egr-event-noise .egr-event-title[b-h8ks264uu0] {
    font-size: .9rem;
}

.egr-other[b-h8ks264uu0] {
    margin-top: .5rem;
}

.egr-other summary[b-h8ks264uu0] {
    cursor: pointer;
    color: var(--text-body);
    font-size: .9rem;
}

.egr-other .egr-events[b-h8ks264uu0] {
    margin-top: .25rem;
}

@media (max-width: 600px) {
    .egr-event[b-h8ks264uu0] {
        flex-direction: column;
        gap: .1rem;
    }

    .egr-event-date[b-h8ks264uu0] {
        flex-basis: auto;
        font-size: .85rem;
    }
}
/* /Components/Pages/Leads/LeadRegistryPanel.razor.rz.scp.css */
.kv[b-e92trhra95] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0;
    max-width: 800px;
}

.kv dt[b-e92trhra95] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-e92trhra95] {
    margin: 0;
    color: var(--text-strong);
}

.card > p.muted[b-e92trhra95] {
    margin: -0.5rem 0 0.75rem 0;
}

.muted[b-e92trhra95] {
    color: var(--text-faint);
    font-size: 0.875rem;
    font-style: italic;
}

.error[b-e92trhra95] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.form-actions[b-e92trhra95] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.part-title[b-e92trhra95] { font-size: 1rem; margin: 0; }
/* /Components/Pages/Leads/LeadRequisitesView.razor.rz.scp.css */
.kv[b-2lb0d9pm0i] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0;
    max-width: 800px;
}

.kv dt[b-2lb0d9pm0i] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-2lb0d9pm0i] {
    margin: 0;
    color: var(--text-strong);
}

.muted[b-2lb0d9pm0i] {
    color: var(--text-faint);
    font-size: 0.875rem;
    font-style: italic;
}

/* Предупреждение, которое не мешает сохранить (неверный IBAN в просмотре реквизитов). */
.warn-note[b-2lb0d9pm0i] {
    color: var(--warn-strong);
    font-size: 0.875rem;
}

.part-header[b-2lb0d9pm0i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.part-title[b-2lb0d9pm0i] { font-size: 1rem; margin: 0; }

.completeness[b-2lb0d9pm0i] {
    margin: 0 0 0.6rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.completeness.complete[b-2lb0d9pm0i] { color: var(--text-faint); }

.more[b-2lb0d9pm0i] { margin-top: 0.6rem; }

.more > summary[b-2lb0d9pm0i] {
    cursor: pointer;
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-bottom: 0.4rem;
}
/* /Components/Pages/Leads/LeadsList.razor.rz.scp.css */
.leads-header[b-65f0vbnsf6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.leads-header h1[b-65f0vbnsf6] {
    margin: 0;
}

.search-row[b-65f0vbnsf6] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 0.9rem;
}

.search-input[b-65f0vbnsf6] {
    flex: 1 1 14rem;
    max-width: 600px;
}

.inline-checkbox[b-65f0vbnsf6] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-muted);
}

.counter[b-65f0vbnsf6] {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin-left: auto;
    white-space: nowrap;
}

.extra-filter[b-65f0vbnsf6] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    color: var(--text-muted);
}

.extra-filter select[b-65f0vbnsf6] {
    margin-left: 0.4rem;
}

/* Ссылка на компанию — чуть плотнее и тёмно-синяя, чтобы строка читалась как заголовок. */
.company-link[b-65f0vbnsf6] {
    font-weight: 550;
    color: var(--accent-text);
}

/* Цифровые колонки (УНП, телефон, дата) — моноширинные цифры и приглушённый тон. */
.data-table td.num[b-65f0vbnsf6] {
    font-variant-numeric: tabular-nums;
    color: var(--text-2);
    white-space: nowrap;
}

.data-table td.created[b-65f0vbnsf6] {
    color: var(--text-muted);
}

.data-table tr.inactive td[b-65f0vbnsf6] {
    color: var(--text-faint);
    background: var(--surface-alt);
}


/* «УНП · город» — серой строкой под названием. */
.company-sub[b-65f0vbnsf6] {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.78rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

/* Удалённый лид: ссылка ведёт в «Корзину» — там его можно восстановить. */
.bin-link[b-65f0vbnsf6] {
    margin-left: 0.4rem;
    font-size: 0.78rem;
}

/* Источник и дата — одним столбцом: чип, под ним дата. */
.data-table td .created[b-65f0vbnsf6] {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

/* «Клиент» — самый переменный столбец: плашки переносятся внутри него, таблица не растёт шире страницы. */
.leads-table td.client-cell[b-65f0vbnsf6] {
    min-width: 14rem;
    max-width: 340px;
}

.leads-table td.contact-cell[b-65f0vbnsf6] {
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .leads-table td.client-cell[b-65f0vbnsf6] {
        max-width: none;
        min-width: 0;
        text-align: left;
    }

    .leads-table td .company-sub[b-65f0vbnsf6] {
        text-align: right;
    }
}
/* /Components/Pages/Leads/LeadSourcesPanel.razor.rz.scp.css */
.source-touches[b-95h48b5dip] {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}

/* Дата — справа; на телефоне, если не помещается, уходит строкой ниже. */
.source-touches li[b-95h48b5dip] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    padding: .35rem 0;
    border-bottom: 1px solid var(--border);
    font-size: .9rem;
}

.touch-badge.primary[b-95h48b5dip] {
    background: var(--blue-450-bg-2);
    color: var(--on-accent);
    border-radius: 4px;
    padding: .05rem .4rem;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.touch-source[b-95h48b5dip] {
    font-weight: 600;
}

.touch-detail[b-95h48b5dip] {
    color: var(--gray-600-text);
}

.touch-date[b-95h48b5dip] {
    margin-left: auto;
    color: var(--gray-400-text);
    font-size: .8rem;
    white-space: nowrap;
}

.source-actions[b-95h48b5dip] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .75rem;
}

.source-actions .field[b-95h48b5dip] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.source-buttons[b-95h48b5dip] {
    display: flex;
    gap: .5rem;
}

.muted[b-95h48b5dip] {
    color: var(--gray-450-text);
}

.form-toggle[b-95h48b5dip] {
    display: none;
}

/* На телефоне форма касания — за кнопкой в заголовке; касания видны сразу. */
@media (max-width: 640px) {
    .form-toggle[b-95h48b5dip] {
        display: inline-block;
    }

    .source-actions:not(.open)[b-95h48b5dip] {
        display: none;
    }

    .source-actions[b-95h48b5dip] {
        flex-direction: column;
        align-items: stretch;
    }

    .source-actions .field select[b-95h48b5dip],
    .source-actions .field input[b-95h48b5dip] {
        width: 100%;
        min-width: 0;
    }

    .source-buttons[b-95h48b5dip] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/Leads/LeadTicketsPanel.razor.rz.scp.css */
/* «Платные работы: N на X руб» над списком обращений клиента; в отборе — рядом «Все обращения». */
.paid-works-head[b-011l4t5ljg] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 1rem;
    margin: 0 0 0.75rem;
}

/* На телефоне таблицы вкладки — карточками (.cards-narrow); между телефоном и десктопом таблица шире карточки
   клиента — листается внутри неё, а не уходит за край страницы. */
.table-scroll[b-011l4t5ljg] {
    overflow-x: auto;
}

.paid-works .num[b-011l4t5ljg] {
    text-align: right;
    white-space: nowrap;
}

.paid-works tfoot td[b-011l4t5ljg] {
    border-top: 2px solid var(--border);
    font-weight: 600;
}

.paid-works[b-011l4t5ljg]  .ticket-status {
    white-space: nowrap;
}

/* Итоги платных работ на телефоне — своей карточкой: без черты над ячейками и без пустой ячейки под «Исполнителем». */
@media (max-width: 640px) {
    .paid-works tfoot td[b-011l4t5ljg] {
        border-top: 0;
    }

    .paid-works tfoot td.empty[b-011l4t5ljg] {
        display: none;
    }
}
/* /Components/Pages/Leads/LeadUnpFinder.razor.rz.scp.css */
/* Как в карточке лида: стили страницы до дочернего компонента не доходят. */
.muted[b-kmmdhogkf9] {
    color: var(--text-faint);
    font-size: 0.875rem;
    font-style: italic;
}

.unp-search-row button.secondary[b-kmmdhogkf9],
.unp-candidate > button[b-kmmdhogkf9],
.unp-open[b-kmmdhogkf9] {
    padding: 0.4rem 0.75rem;
    border-radius: 6px;
}

.unp-search[b-kmmdhogkf9] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-bottom: .5rem;
}

.unp-search label[b-kmmdhogkf9] {
    font-weight: 500;
}

.unp-search-row[b-kmmdhogkf9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.unp-search-row input[b-kmmdhogkf9] {
    flex: 1 1 14rem;
    min-width: 0;
}

.unp-candidates[b-kmmdhogkf9] {
    list-style: none;
    margin: .25rem 0 0;
    padding: 0;
}

.unp-candidate[b-kmmdhogkf9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .6rem 0;
    border-top: 1px solid var(--border);
}

.unp-candidate-body[b-kmmdhogkf9] {
    min-width: 0;
}

.unp-candidate-name[b-kmmdhogkf9] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.unp-candidate-meta[b-kmmdhogkf9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .6rem;
    margin-top: .2rem;
    font-size: .88rem;
    color: var(--text-muted);
}

.unp-candidate-full[b-kmmdhogkf9] {
    margin-top: .15rem;
    overflow-wrap: anywhere;
}

.unp-warning[b-kmmdhogkf9] {
    background: var(--warn-soft);
    border: 1px solid var(--yellow-250-border-2);
    color: var(--yellow-750-text);
    padding: .5rem .7rem;
    border-radius: 8px;
}

@media (max-width: 600px) {
    .unp-candidate[b-kmmdhogkf9] {
        flex-direction: column;
        align-items: stretch;
        gap: .4rem;
    }

    .unp-candidate > button[b-kmmdhogkf9] {
        align-self: flex-start;
    }
}

/* Длинное состояние («Прекращение деятельности в результате реорганизации») на телефоне переносится. */
.unp-candidate-meta[b-kmmdhogkf9]  .egr-badge,
.unp-picked[b-kmmdhogkf9]  .egr-badge {
    white-space: normal;
}
/* /Components/Pages/Leads/MergeLeads.razor.rz.scp.css */
.merge-search[b-zmknvp4021] {
    display: flex;
    gap: .5rem;
    margin: .75rem 0;
}

.merge-search input[b-zmknvp4021] {
    flex: 1;
}

.merge-candidates[b-zmknvp4021] {
    list-style: none;
    margin: .5rem 0 1rem;
    padding: 0;
}

.merge-candidates li[b-zmknvp4021] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .5rem .25rem;
    border-bottom: 1px solid var(--border);
}

.dup-score[b-zmknvp4021] {
    display: inline-block;
    min-width: 1.75rem;
    text-align: center;
    border-radius: .35rem;
    background: var(--surface-2);
    padding: 0 .35rem;
    font-weight: 600;
}

.merge-head[b-zmknvp4021] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.warn[b-zmknvp4021] {
    margin: .5rem 0 1rem;
    padding: .6rem .8rem;
    border-radius: .4rem;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
}

/* На телефоне длинные названия и номера не переносятся — таблица прокручивается, а не обрезается. */
.merge-fields-scroll[b-zmknvp4021] {
    overflow-x: auto;
}

.merge-fields[b-zmknvp4021] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1rem;
}

.merge-fields th[b-zmknvp4021],
.merge-fields td[b-zmknvp4021] {
    text-align: left;
    padding: 10px .6rem;
    border-bottom: 1px solid var(--row-line);
    vertical-align: top;
}

.merge-fields td.fld[b-zmknvp4021] {
    color: var(--gray-600-text);
    white-space: nowrap;
}

/* Подсказка под подписью переносится, иначе раздувает колонку подписей. */
.merge-fields td.fld .muted[b-zmknvp4021] {
    max-width: 14rem;
    white-space: normal;
    font-size: .85rem;
}

@media (max-width: 640px) {
    .merge-fields td.fld[b-zmknvp4021] {
        white-space: normal;
    }
}

.merge-fields td.pick label[b-zmknvp4021] {
    display: flex;
    gap: .4rem;
    cursor: pointer;
}

.merge-fields td.pick.on[b-zmknvp4021] {
    background: var(--ok-soft);
}

.deal-conflict[b-zmknvp4021] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: .35rem 0;
}

.deal-conflict label[b-zmknvp4021] {
    display: inline-flex;
    gap: .3rem;
    cursor: pointer;
}

.merge-summary[b-zmknvp4021] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.chip[b-zmknvp4021] {
    display: inline-block;
    padding: .15rem .55rem;
    border-radius: 1rem;
    background: var(--surface-2);
    font-size: .85rem;
}

.merge-actions[b-zmknvp4021] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.25rem;
}

/* Коллизия, которую слиянием не разрешить, — под строкой своего направления; поясняет неактивную «Объединить». */
.merge-blocked[b-zmknvp4021] {
    margin: .25rem 0 .75rem;
}

.warn-linked[b-zmknvp4021] {
    margin-top: .5rem;
    border-color: var(--blue-100-border);
    background: var(--accent-soft);
    color: var(--indigo-650-text);
}
/* /Components/Pages/Mail/MailClientBar.razor.rz.scp.css */

.mail-client[b-7c2dooksaf] {
    margin-bottom: 0.85rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-alt);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.mail-client-main[b-7c2dooksaf] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25rem 0.6rem;
}

.mail-client-name[b-7c2dooksaf] {
    font-weight: 600;
    color: var(--text-strong);
    overflow-wrap: anywhere;
}

.mail-client-unp[b-7c2dooksaf],
.mail-client-deal-who[b-7c2dooksaf],
.mail-client-deal-more[b-7c2dooksaf],
.mail-client-deal-label[b-7c2dooksaf] {
    color: var(--text-2);
    font-size: 0.8rem;
}

.mail-client-open[b-7c2dooksaf] {
    margin-left: auto;
    font-size: 0.8rem;
    white-space: nowrap;
    color: var(--accent-text);
}

.mail-client-deal[b-7c2dooksaf] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.2rem 0.6rem;
    font-size: 0.85rem;
}
/* /Components/Pages/Mail/MailPage.razor.rz.scp.css */
.mail-toolbar[b-zcxv0xhz2z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.mail-folders[b-zcxv0xhz2z] {
    display: flex;
    gap: 0.4rem;
}

.mail-toolbar-actions[b-zcxv0xhz2z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.mail-folder[b-zcxv0xhz2z] {
    padding: 0.45rem 0.9rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
    color: var(--text-body);
}

.mail-folder:hover[b-zcxv0xhz2z] {
    background: var(--surface-2);
}

.mail-folder.active[b-zcxv0xhz2z] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--on-accent);
}

.mail-layout[b-zcxv0xhz2z] {
    display: grid;
    grid-template-columns: minmax(260px, 360px) 1fr;
    gap: 1rem;
    align-items: start;
}

.mail-list[b-zcxv0xhz2z] {
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    max-height: 70vh;
    overflow-y: auto;
}

.mail-row[b-zcxv0xhz2z] {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "who meta" "subj subj";
    gap: 0.15rem 0.5rem;
    width: 100%;
    text-align: left;
    padding: 0.55rem 0.7rem;
    border: none;
    border-bottom: 1px solid var(--row-border);
    background: var(--surface);
    font: inherit;
    cursor: pointer;
}

.mail-row:hover[b-zcxv0xhz2z] {
    background: var(--surface-alt);
}

.mail-row.active[b-zcxv0xhz2z] {
    background: var(--accent-soft);
}

.mail-row.unread .mail-row-who[b-zcxv0xhz2z],
.mail-row.unread .mail-row-subj[b-zcxv0xhz2z] {
    font-weight: 700;
}

.mail-row-who[b-zcxv0xhz2z] {
    grid-area: who;
    color: var(--text-strong);
    font-size: 0.85rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mail-row-subj[b-zcxv0xhz2z] {
    grid-area: subj;
    color: var(--text-2);
    font-size: 0.82rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mail-row-meta[b-zcxv0xhz2z] {
    grid-area: meta;
    color: var(--text-faint);
    font-size: 0.75rem;
    white-space: nowrap;
}

.mail-detail[b-zcxv0xhz2z] {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1rem 1.1rem;
    min-height: 200px;
    background: var(--surface);
}

/* Форма письма (общая с карточками) занимает всю ширину правой части; под письмом ответ отделён линией. */
.mail-detail[b-zcxv0xhz2z]  .email-compose {
    max-width: none;
    margin-top: 0;
}

.mail-reply[b-zcxv0xhz2z] {
    margin-top: 1rem;
}

.mail-actions[b-zcxv0xhz2z] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    align-items: center;
}

.mail-actions-top[b-zcxv0xhz2z] {
    margin-bottom: 0.85rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border);
}

.mail-actions button[b-zcxv0xhz2z] {
    padding: 0.4rem 0.8rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
}

.mail-actions button:hover:not(:disabled)[b-zcxv0xhz2z] {
    background: var(--surface-2);
}

.mail-actions button.primary[b-zcxv0xhz2z] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--on-accent);
    font-weight: 500;
}

.mail-actions button.primary:hover:not(:disabled)[b-zcxv0xhz2z] {
    background: var(--accent-hover);
}

.mail-actions button.primary:disabled[b-zcxv0xhz2z] {
    opacity: 0.6;
    cursor: not-allowed;
}

.mail-lead-link[b-zcxv0xhz2z] {
    color: var(--accent-text);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
}

.mail-link .field[b-zcxv0xhz2z] {
    margin-bottom: 0.7rem;
    display: flex;
    flex-direction: column;
}

.mail-link .field label[b-zcxv0xhz2z] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--text-body);
    margin-bottom: 0.25rem;
}

.mail-link .field input[b-zcxv0xhz2z] {
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.mail-link[b-zcxv0xhz2z] {
    margin-bottom: 0.85rem;
    padding: 0.75rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-alt);
}

.mail-lead-results[b-zcxv0xhz2z] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mail-lead-results li[b-zcxv0xhz2z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--row-border);
    font-size: 0.85rem;
}

.error[b-zcxv0xhz2z] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

.muted[b-zcxv0xhz2z] {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.mail-thread-head .mail-row-who[b-zcxv0xhz2z] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.mail-thread-who[b-zcxv0xhz2z] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mail-thread-count[b-zcxv0xhz2z] {
    flex: none;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--text-body);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.4;
}

.mail-thread.open[b-zcxv0xhz2z] {
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
}

.mail-thread.open .mail-thread-head[b-zcxv0xhz2z] {
    background: var(--surface-alt);
}

.mail-thread-msg[b-zcxv0xhz2z] {
    grid-template-areas: "who meta";
    padding: 0.4rem 0.7rem 0.4rem 1.6rem;
    background: var(--surface-alt);
}

.mail-thread-msg .mail-row-who[b-zcxv0xhz2z] {
    color: var(--text-body);
    font-size: 0.82rem;
}

.mail-back[b-zcxv0xhz2z] {
    display: none;
}

/* На телефоне список и письмо — разные экраны: нажали строку — письмо на весь экран с «← Входящие», папок и поиска
   над ним нет; вернулись — список как был. */
@media (max-width: 640px) {
    .mail-layout[b-zcxv0xhz2z] {
        grid-template-columns: minmax(0, 1fr);
    }

    .mail-page:not(.mail-phone-detail) .mail-detail[b-zcxv0xhz2z] {
        display: none;
    }

    .mail-phone-detail .mail-list[b-zcxv0xhz2z],
    .mail-phone-detail .mail-list-only[b-zcxv0xhz2z] {
        display: none;
    }

    .mail-back[b-zcxv0xhz2z] {
        display: inline-block;
        margin-bottom: 0.7rem;
        background: transparent;
        border-color: transparent;
        color: var(--accent-text);
        padding-left: 0;
    }
}









.mail-folder-count[b-zcxv0xhz2z] {
    margin-left: 0.35rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--text-body);
    font-size: 0.72rem;
    font-weight: 600;
}

.mail-folder.active .mail-folder-count[b-zcxv0xhz2z] {
    background: var(--on-accent);
    color: var(--accent);
}

.mail-toolbar-actions .mail-quiet[b-zcxv0xhz2z] {
    background: transparent;
    border-color: transparent;
    color: var(--accent-text);
}



.mail-client-missing[b-zcxv0xhz2z] {
    margin-bottom: 0.85rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--warn-soft);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.75rem;
    font-size: 0.85rem;
}

.mail-client-missing button[b-zcxv0xhz2z] {
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
}

.mail-client-missing button:hover[b-zcxv0xhz2z] {
    background: var(--surface-2);
}

/* Поиск по письмам: поле рядом с папками, результат — плоский список из всех папок. */
.mail-search[b-zcxv0xhz2z] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex: 1 1 14rem;
    max-width: 24rem;
}

.mail-search input[b-zcxv0xhz2z] {
    flex: 1;
    min-width: 0;
}

.mail-search .mail-search-clear[b-zcxv0xhz2z] {
    padding: 0.2rem 0.55rem;
    line-height: 1;
}

.mail-found-head[b-zcxv0xhz2z] {
    padding: 0.5rem 0.7rem;
    border-bottom: 1px solid var(--row-border);
    background: var(--surface-2);
    color: var(--text-2);
    font-size: 0.8rem;
}

.mail-row.mail-hit[b-zcxv0xhz2z] {
    grid-template-areas: "who meta" "subj subj" "snip snip";
}

.mail-hit-snippet[b-zcxv0xhz2z] {
    grid-area: snip;
    color: var(--text-faint);
    font-size: 0.78rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.mail-hit-snippet[b-zcxv0xhz2z]  mark.mail-found {
    background: var(--found-bg);
    color: var(--found-text);
    border-radius: 2px;
}

.mail-hit-folder[b-zcxv0xhz2z] {
    margin-right: 0.35rem;
    padding: 0 0.35rem;
    border: 1px solid var(--border-strong);
    border-radius: 4px;
    font-size: 0.7rem;
}
/* /Components/Pages/Notifications.razor.rz.scp.css */
.notif-head[b-k2805hyi0y] {
    display: flex;
    align-items: center;
    gap: 0.5rem 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.notif-head h1[b-k2805hyi0y] {
    margin: 0;
}

.notif-head .bulk-actions[b-k2805hyi0y] {
    margin-left: auto;
}

.settings-link[b-k2805hyi0y] {
    font-size: 0.85rem;
    color: var(--link);
    text-decoration: none;
}

.settings-link:hover[b-k2805hyi0y] {
    text-decoration: underline;
}

.bulk-actions[b-k2805hyi0y] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.bulk-actions button[b-k2805hyi0y] {
    padding: 0.3rem 0.7rem;
    font-size: 0.85rem;
}

.counter-badge[b-k2805hyi0y] {
    font-weight: 600;
}

/* Группы и типы — одной строкой; на узком экране листаются вбок внутри себя, страница не едет. */
.chip-row[b-k2805hyi0y] {
    margin: 0 0 0.5rem 0;
}

.notif-day[b-k2805hyi0y] {
    margin-top: 0.75rem;
}

.notif-day-title[b-k2805hyi0y] {
    font-size: 0.95rem;
    margin: 0 0 0.3rem 0;
    color: var(--text-strong);
}

.notif-day-count[b-k2805hyi0y] {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-muted);
    margin-left: 0.5rem;
}

.notifications-list .notification[b-k2805hyi0y] {
    gap: 0.6rem;
    align-items: center;
}

.notification.unread[b-k2805hyi0y] {
    background: var(--accent-soft);
    border-color: var(--row-line);
}

.unread-dot[b-k2805hyi0y] {
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: transparent;
}

.notification.unread .unread-dot[b-k2805hyi0y] {
    background: var(--accent);
}

.notif-main[b-k2805hyi0y] {
    flex: 1 1 auto;
    min-width: 0;
}

.notif-main .title[b-k2805hyi0y] {
    color: var(--text-strong);
    text-decoration: none;
}

.notification.unread .title[b-k2805hyi0y] {
    font-weight: 700;
}

.notif-main a.title:hover[b-k2805hyi0y] {
    text-decoration: underline;
}

.notif-main .body[b-k2805hyi0y] {
    color: var(--text-2);
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}

.notif-main .mark-error[b-k2805hyi0y] {
    color: var(--danger-strong);
    font-size: 0.8rem;
}

.notif-side[b-k2805hyi0y] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.8rem;
    color: var(--text-muted);
    white-space: nowrap;
}

.notif-side .open-link[b-k2805hyi0y] {
    color: var(--link);
    text-decoration: none;
}

.notif-side .open-link:hover[b-k2805hyi0y] {
    text-decoration: underline;
}

.notification:not(.unread) .open-link[b-k2805hyi0y] {
    color: var(--text-muted);
}

.mark-read[b-k2805hyi0y] {
    background: transparent;
    border: 1px solid var(--border-strong);
    border-radius: 4px;
    color: var(--link);
    cursor: pointer;
    padding: 0 0.4rem;
    line-height: 1.4;
}

.mark-read:hover:not(:disabled)[b-k2805hyi0y] {
    background: var(--surface-3);
}

@media (max-width: 640px) {
    .notifications-list .notification[b-k2805hyi0y] {
        flex-wrap: wrap;
    }

    .notif-main[b-k2805hyi0y] {
        flex: 1 1 calc(100% - 6rem);
    }

    .notif-side[b-k2805hyi0y] {
        flex: 1 1 100%;
        justify-content: flex-end;
        padding-left: 1rem;
    }
}
.tabs[b-k2805hyi0y] {
    display: inline-flex;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    overflow: hidden;
}

.tab[b-k2805hyi0y] {
    background: var(--surface-alt);
    border: none;
    padding: 0.5rem 1rem;
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--text-body);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.tab + .tab[b-k2805hyi0y] {
    border-left: 1px solid var(--border-strong);
}

.tab.active[b-k2805hyi0y] {
    background: var(--accent);
    color: var(--on-accent);
}

.tab:hover:not(.active)[b-k2805hyi0y] {
    background: var(--surface-3);
}

.counter-badge[b-k2805hyi0y] {
    background: var(--red-400-bg);
    color: var(--on-accent);
    border-radius: 9999px;
    font-size: 0.7rem;
    padding: 1px 6px;
    line-height: 1.2;
    font-weight: 700;
}

.tab.active .counter-badge[b-k2805hyi0y] {
    background: var(--surface);
    color: var(--link);
}

.chip-row[b-k2805hyi0y] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: -0.25rem 0 1rem 0;
}

.chip[b-k2805hyi0y] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    color: var(--text-body);
    padding: 0.3rem 0.8rem;
    border-radius: 9999px;
    font-size: 0.8rem;
    cursor: pointer;
    line-height: 1.2;
}

.chip:hover:not(.active)[b-k2805hyi0y] {
    background: var(--surface-3);
}

.chip.active[b-k2805hyi0y] {
    background: var(--accent);
    color: var(--on-accent);
    border-color: var(--accent-hover);
}

.chip-badge[b-k2805hyi0y] {
    background: var(--red-400-bg);
    color: var(--on-accent);
    border-radius: 9999px;
    font-size: 0.65rem;
    padding: 1px 6px;
    margin-left: 0.4rem;
    line-height: 1.2;
    font-weight: 700;
}

.chip.active .chip-badge[b-k2805hyi0y] {
    background: var(--surface);
    color: var(--link);
}

.kind-pill[b-k2805hyi0y] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.kind-comment[b-k2805hyi0y] { background: var(--accent-soft-strong); color: var(--accent-text-strong); }
.kind-assigned[b-k2805hyi0y] { background: var(--warn-soft-strong); color: var(--warn-strong); }
.kind-task[b-k2805hyi0y] { background: var(--accent-soft-strong); color: var(--indigo-600-text); }
.kind-duesoon[b-k2805hyi0y] { background: var(--amber-150-bg); color: var(--orange-650-text); }
.kind-overdue[b-k2805hyi0y] { background: var(--danger-soft-strong); color: var(--danger-strong); }
.kind-stage[b-k2805hyi0y] { background: var(--emerald-100-bg); color: var(--emerald-800-text); }
.kind-closed[b-k2805hyi0y] { background: var(--surface-2); color: var(--text-body); }
.kind-reopened[b-k2805hyi0y] { background: var(--danger-soft); color: var(--pink-650-text); }
.kind-lead[b-k2805hyi0y] { background: var(--cyan-100-bg); color: var(--cyan-700-text); }
.kind-default[b-k2805hyi0y] { background: var(--surface-2); color: var(--text-body); }

.chip-row-label[b-k2805hyi0y] {
    align-self: center;
    font-size: 0.8rem;
    color: var(--text-muted);
}

/* Группы и типы: на широком экране переносятся, на телефоне — одна строка, листается вбок внутри себя. */
@media (max-width: 640px) {
    .chip-row[b-k2805hyi0y] {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 2px;
    }

    .chip-row > *[b-k2805hyi0y] {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}

/* Плотнее: восемь групп умещаются в одну строку на ноутбуке. */
.chip-row[b-k2805hyi0y] {
    gap: 0.3rem;
}

.chip[b-k2805hyi0y] {
    padding: 0.25rem 0.6rem;
}

.chip-badge[b-k2805hyi0y] {
    margin-left: 0.3rem;
}
/* /Components/Pages/Opportunities/OpportunitiesList.razor.rz.scp.css */
.page-head[b-36bugmftyv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.page-head h1[b-36bugmftyv] {
    margin: 0;
}



.preset-bar[b-36bugmftyv] {
    display: flex;
    gap: 0.5rem;
    margin: 0 0 1rem 0;
    flex-wrap: wrap;
}

.preset[b-36bugmftyv] {
    padding: 0.4rem 0.875rem;
    border: 1px solid var(--border-strong);
    border-radius: 999px;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
    color: var(--text-body);
}

.preset:hover[b-36bugmftyv] {
    background: var(--surface-2);
    border-color: var(--slate-350-border);
}

/* Общий .filters из app.css раскладывает поля флексом в строку; здесь внутри раскрывающейся панели своя сетка полей — блок обычный. */
.filters[b-36bugmftyv] {
    display: block;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0 1rem;
    margin-bottom: 1rem;
}

.filters summary[b-36bugmftyv] {
    padding: 0.75rem 0;
    cursor: pointer;
    font-weight: 600;
    color: var(--text-strong);
}

.filter-grid[b-36bugmftyv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.75rem 1rem;
    padding-bottom: 0.75rem;
}

.field[b-36bugmftyv] {
    display: flex;
    flex-direction: column;
}

.field label[b-36bugmftyv] {
    margin-bottom: 0.25rem;
}

.field input:disabled[b-36bugmftyv], .field select:disabled[b-36bugmftyv] {
    background: var(--surface-2);
    color: var(--text-faint);
}

.filter-actions[b-36bugmftyv] {
    display: flex;
    gap: 0.5rem;
    padding: 0 0 1rem 0;
}

.result-head[b-36bugmftyv] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.5rem;
    color: var(--text-2);
    font-size: 0.875rem;
}

.data-table a[b-36bugmftyv] {
    color: var(--accent-text);
    text-decoration: none;
}

.data-table a:hover[b-36bugmftyv] {
    text-decoration: underline;
}

.outcome[b-36bugmftyv] {
    display: inline-block;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.outcome-open[b-36bugmftyv] { background: var(--accent-soft-strong); color: var(--accent-text-strong); border-color: var(--accent-border); }
.outcome-won[b-36bugmftyv]  { background: var(--emerald-100-bg); color: var(--emerald-800-text); border-color: var(--emerald-350-border); }
.outcome-lost[b-36bugmftyv] { background: var(--danger-soft-strong); color: var(--danger-strong); border-color: var(--danger-border-strong); }

.preset.active[b-36bugmftyv] {
    background: var(--accent-soft);
    border-color: var(--accent);
    color: var(--accent-text);
}

.filter-count[b-36bugmftyv] {
    display: inline-block;
    min-width: 1.25rem;
    margin-left: 0.35rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--accent);
    color: var(--on-accent);
    font-size: 0.75rem;
    line-height: 1.25rem;
    text-align: center;
}

.filter-actions .unapplied[b-36bugmftyv] {
    align-self: center;
    color: var(--warn);
    font-size: 0.8125rem;
}

/* Компания и отметка зависшей — столбиком; на телефоне — по правому краю, как остальные значения карточки. */
.opp-company[b-36bugmftyv] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

@media (max-width: 640px) {
    .opp-company[b-36bugmftyv] {
        align-items: flex-end;
    }
}

/* Числа на кнопках подборок и «Ещё ▾» в том же ряду, что остальные кнопки. */
.preset-n[b-36bugmftyv] {
    margin-left: 0.15rem;
    color: var(--text-2);
    font-variant-numeric: tabular-nums;
}

.preset.active .preset-n[b-36bugmftyv] {
    color: inherit;
}

.preset-bar[b-36bugmftyv]  .more-btn.preset {
    width: auto;
    padding: 0.4rem 0.875rem;
    font: inherit;
    color: var(--text-body);
    background: var(--surface);
}

.preset-bar[b-36bugmftyv]  .more-btn.preset:hover {
    background: var(--surface-2);
    border-color: var(--slate-350-border);
}

.preset-bar[b-36bugmftyv]  .more-btn.preset.active {
    background: var(--accent-soft);
    border-color: var(--accent);
    color: var(--accent-text);
}

/* Меню раскрывается от левого края кнопки: на узком экране она может стоять у левой границы. */
.preset-bar[b-36bugmftyv]  .more-pop {
    left: 0;
    right: auto;
}

.mine-line[b-36bugmftyv] {
    margin: -0.25rem 0 0.75rem 0;
    color: var(--text-2);
    font-size: 0.9rem;
}

.mine-line strong[b-36bugmftyv] {
    color: var(--text-body);
}

.empty-mine[b-36bugmftyv] {
    padding: 1.5rem 0;
}

.empty-mine p[b-36bugmftyv] {
    margin: 0 0 0.75rem 0;
}

.empty-actions[b-36bugmftyv] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.search-row[b-36bugmftyv] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.search-input[b-36bugmftyv] {
    flex: 1 1 260px;
    max-width: 420px;
}

.sort-field[b-36bugmftyv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-2);
}

.applied-chips[b-36bugmftyv] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 0 1rem 0;
}

/* ── Таблица сделок: плотные строки в две строки текста, щелчок по строке открывает сделку ── */
.deals-table[b-36bugmftyv] {
    width: 100%;
}

/* Колонки по содержимому: сумма, движение и ответственный не переносятся, сделка, стадия и задача переносятся
   в своих пределах ширины. */
@media (min-width: 641px) {
    .deals-table .c-deal[b-36bugmftyv] { min-width: 12rem; max-width: 26rem; }
    .deals-table .c-stage[b-36bugmftyv] { min-width: 8rem; max-width: 16rem; }
    .deals-table .c-task[b-36bugmftyv] { min-width: 10rem; max-width: 20rem; }
}
/* Широкий экран: стадия с самым длинным названием («Оформление документов») помещается в одну строку. */
@media (min-width: 1400px) {
    .deals-table .c-stage[b-36bugmftyv] { min-width: 15rem; }
    .deals-table .c-deal[b-36bugmftyv] { min-width: 16rem; }
}
.deals-table .c-who[b-36bugmftyv],
.deals-table .c-amount[b-36bugmftyv],
.deals-table .c-move[b-36bugmftyv],
.deals-table .c-outcome[b-36bugmftyv] { white-space: nowrap; }
.deals-table .c-stage[b-36bugmftyv]  .stage-badge { white-space: normal; max-width: 100%; text-align: left; }

.deals-table td[b-36bugmftyv] {
    padding: 10px 0.6rem;
    line-height: 1.35;
    vertical-align: middle;
}

.deals-table .deal-row[b-36bugmftyv] {
    cursor: pointer;
}

.deals-table .deal-title[b-36bugmftyv] {
    display: block;
    overflow-wrap: anywhere;
    font-weight: 600;
}

.deal-sub[b-36bugmftyv] {
    color: var(--text-2);
    font-size: 0.78rem;
}

.deals-table .c-deal .deal-sub[b-36bugmftyv] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem;
    min-width: 0;
}

.deals-table .sub-text[b-36bugmftyv] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.deals-table .client-link[b-36bugmftyv],
.deals-table .badge-deleted[b-36bugmftyv] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.deals-table .muted[b-36bugmftyv] {
    color: var(--text-faint);
}

.deals-table .task-title[b-36bugmftyv],
.deals-table .task-due[b-36bugmftyv] {
    overflow-wrap: anywhere;
}

.deals-table .task-due[b-36bugmftyv] {
    color: var(--text-2);
    font-size: 0.78rem;
}

.deals-table .task-due.overdue[b-36bugmftyv] {
    color: var(--danger-strong);
    font-weight: 600;
}

@media (max-width: 640px) {
    /* Строка-карточка тремя рядами: название и сумма; стадия с исходом и движение; ответственный и задача.
       Ряды рвут два пустых псевдоэлемента во всю ширину — ячейки встают по order. */
    .deals-table.cards-narrow tbody tr.deal-row[b-36bugmftyv] {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem 0.5rem;
        padding: 0.45rem 0.7rem;
    }

    .deals-table.cards-narrow tbody tr.deal-row[b-36bugmftyv]::before,
    .deals-table.cards-narrow tbody tr.deal-row[b-36bugmftyv]::after {
        content: "";
        flex: 0 0 100%;
        height: 0;
    }

    .deals-table.cards-narrow tbody tr.deal-row[b-36bugmftyv]::before { order: 3; }
    .deals-table.cards-narrow tbody tr.deal-row[b-36bugmftyv]::after { order: 7; }

    .deals-table.cards-narrow tbody tr.deal-row td[b-36bugmftyv] {
        display: block;
        padding: 0;
        text-align: left;
        min-width: 0;
    }

    .deals-table.cards-narrow tbody tr.deal-row td[b-36bugmftyv]::before {
        content: none;
    }

    .deals-table .c-deal[b-36bugmftyv] { order: 1; flex: 1 1 0; }
    .deals-table .c-amount[b-36bugmftyv] { order: 2; text-align: right !important; font-weight: 600; white-space: nowrap; }
    .deals-table .c-stage[b-36bugmftyv] { order: 4; }
    .deals-table .c-outcome[b-36bugmftyv] { order: 5; }
    .deals-table .c-move[b-36bugmftyv] { order: 6; margin-left: auto; text-align: right !important; white-space: nowrap; }
    .deals-table .c-who[b-36bugmftyv] { order: 8; font-size: 0.85rem; }
    .deals-table .c-task[b-36bugmftyv] { order: 9; flex: 1 1 0; text-align: right !important; overflow: hidden; }
}

/* Отметка зависшей под движением: не шире своей колонки. */
.deals-table .c-move[b-36bugmftyv]  .badge {
    max-width: 100%;
    margin-top: 0.15rem;
    font-size: 0.7rem;
    padding-inline: 0.4rem;
}

.board-total[b-36bugmftyv] {
    margin-left: auto;
    color: var(--text-2);
    font-size: 0.875rem;
}

/* ── «Продления»: отдельной группой справа от основных подборок; колонка «Лицензия до» ── */
.preset-bar .preset-renewals[b-36bugmftyv] {
    margin-left: 0.75rem;
}

.deals-table .c-license[b-36bugmftyv] {
    white-space: nowrap;
}

.deals-table .c-license > span[b-36bugmftyv] {
    display: block;
}

.deals-table .c-license .due.late[b-36bugmftyv] {
    color: var(--danger-strong);
    font-weight: 600;
}

.deals-table .c-license .due.soon[b-36bugmftyv] {
    font-weight: 600;
}

.deals-table .c-license .rn-snoozed[b-36bugmftyv] {
    color: var(--text-2);
    font-style: italic;
}

.mine-line .renewals-overdue[b-36bugmftyv] {
    color: var(--danger-strong);
}

@media (max-width: 640px) {
    .deals-table .c-license[b-36bugmftyv] { order: 6; font-size: 0.85rem; }
    .deals-table .c-license > span[b-36bugmftyv] { display: inline; }
    .deals-table .c-license > span + span[b-36bugmftyv]::before { content: " · "; }
    .preset-bar .preset-renewals[b-36bugmftyv] { margin-left: 0; }
}
/* /Components/Pages/Opportunities/OpportunityBoard.razor.rz.scp.css */
.board-scroll[b-wllbglbjmc] {
    overflow-x: auto;
    padding-bottom: 0.5rem;
    margin: 0 -0.25rem;
    max-width: 100%;
}

/* Колонки от 172 px (на 1280 — от 150: шесть колонок и полоса иначе не умещаются рядом с меню), тянутся на свободное место; полосы пустых стадий — по 40 px. */
.board[b-wllbglbjmc] {
    display: flex;
    gap: 0.375rem;
    align-items: flex-start;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
}

.board-col[b-wllbglbjmc] {
    flex: 1 0 172px;
    min-width: 172px;
    background: var(--surface-2);
    border-radius: 8px;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: calc(100vh - 280px - var(--call-bar-offset, 0px));
    overflow-y: auto;
    transition: background 0.12s ease;
    outline: 2px dashed transparent;
    outline-offset: -2px;
}

@media (max-width: 1360px) {
    .board-col[b-wllbglbjmc] {
        flex-basis: 150px;
        min-width: 150px;
    }
}

/* Пустая рабочая стадия: вертикальное название и «0»; над ней, пока тащат карточку, раскрывается до колонки. */
.board-strip[b-wllbglbjmc] {
    flex: 0 0 40px;
    width: 40px;
    align-self: stretch;
    min-height: 140px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0;
    background: var(--surface-2);
    border-radius: 8px;
    border-top: 3px solid var(--stage-mark);
    color: var(--text-muted);
    font-size: 0.8125rem;
    outline: 2px dashed transparent;
    outline-offset: -2px;
    transition: background 0.12s ease;
}

.board-strip-name[b-wllbglbjmc] {
    writing-mode: vertical-rl;
    max-height: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

.board-strip-count[b-wllbglbjmc] {
    font-variant-numeric: tabular-nums;
    color: var(--text-faint);
}

.board-strip.drag-over[b-wllbglbjmc] {
    background: var(--accent-soft-strong);
    outline-color: var(--indigo-400-border);
}

.board-strip.drop-forbidden[b-wllbglbjmc] {
    background: var(--danger-soft);
    outline-color: var(--red-300-border);
}

/* Закрывающие стадии подборки только с открытыми: цель броска внизу доски, по порядку воронки. */
.board-closers[b-wllbglbjmc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.board-closers-label[b-wllbglbjmc] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.board-closer[b-wllbglbjmc] {
    flex: 1 1 140px;
    min-width: 0;
    display: flex;
    justify-content: center;
    padding: 0.625rem 0.5rem;
    background: var(--surface-2);
    border-radius: 8px;
    border-bottom: 3px solid var(--stage-mark);
    outline: 2px dashed transparent;
    outline-offset: -2px;
    transition: background 0.12s ease;
}

.board-closer.drag-over[b-wllbglbjmc] {
    background: var(--accent-soft-strong);
    outline-color: var(--indigo-400-border);
}

.board-closer.drop-forbidden[b-wllbglbjmc] {
    background: var(--danger-soft);
    outline-color: var(--red-300-border);
}

.board-col.drag-over[b-wllbglbjmc] {
    background: var(--accent-soft-strong);
    outline-color: var(--indigo-400-border);
}

.board-col.drop-forbidden[b-wllbglbjmc] {
    background: var(--danger-soft);
    outline-color: var(--red-300-border);
}



.board-card[b-wllbglbjmc] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 3px solid var(--slate-350-border);
    border-radius: 6px;
    padding: 0.5rem 0.625rem;
    box-shadow: 0 1px 2px var(--shade-4);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    cursor: grab;
    user-select: none;
    transition: background 0.3s ease;
}

/* Полоса слева — цвет стадии колонки: класс stage-<цвет> на карточке (app.css, «Цвет стадии воронки»). */
.board-card[class*="stage-"][b-wllbglbjmc] { border-left-color: var(--stage-mark); }

.board-card.highlight[b-wllbglbjmc] {
    animation: card-highlight-b-wllbglbjmc 2s ease-out;
}

@keyframes card-highlight-b-wllbglbjmc {
    0%   { background: var(--yellow-250-bg); box-shadow: 0 0 0 3px var(--yellow-a50-shadow); }
    50%  { background: var(--warn-soft-strong); }
    100% { background: var(--surface); box-shadow: 0 1px 2px var(--shade-4); }
}

.board-card:hover[b-wllbglbjmc] {
    box-shadow: 0 2px 6px var(--shade-8);
}

.board-card:active[b-wllbglbjmc] {
    cursor: grabbing;
}

/* Карточку, которую служба не сдвинет, не тащат: причина — во всплывающей подсказке. */
.board-card.locked[b-wllbglbjmc],
.board-card.locked:active[b-wllbglbjmc] {
    cursor: default;
}

.board-card.dragging[b-wllbglbjmc] {
    opacity: 0.4;
}

.board-card-company[b-wllbglbjmc] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--text);
}

.board-card-company a[b-wllbglbjmc] {
    color: var(--text);
    text-decoration: none;
}

.board-card-company a:hover[b-wllbglbjmc] {
    color: var(--accent-text);
    text-decoration: underline;
}

.board-card-meta[b-wllbglbjmc] {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: var(--text-muted);
}

.board-card-age[b-wllbglbjmc] {
    font-size: 0.7rem;
    color: var(--text-faint);
}

.board-col-more[b-wllbglbjmc] {
    text-align: center;
    font-size: 0.8125rem;
    color: var(--text-muted);
    padding: 0.25rem;
}

.board-empty[b-wllbglbjmc] {
    text-align: center;
    font-size: 0.8125rem;
    color: var(--text-faint);
    padding: 1rem 0;
}

.board-empty-pipeline[b-wllbglbjmc] {
    color: var(--text-muted);
    padding: 2rem 1rem;
    text-align: center;
}

.board-error[b-wllbglbjmc] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
    border: 1px solid var(--danger-border-strong);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.875rem;
}

.board-error .dismiss[b-wllbglbjmc] {
    font-weight: 700;
    margin-left: 0.5rem;
    opacity: 0.7;
}

.board-card-move[b-wllbglbjmc] {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.board-card-amount[b-wllbglbjmc] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.board-card-meta[b-wllbglbjmc] {
    gap: 0.5rem;
}

.board-card-meta .muted[b-wllbglbjmc] {
    color: var(--text-faint);
}

.board-card-company a[b-wllbglbjmc] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

a.board-col-more[b-wllbglbjmc] {
    display: block;
    color: var(--accent-text);
    text-decoration: none;
}

a.board-col-more:hover[b-wllbglbjmc] {
    text-decoration: underline;
}

/* В узкой колонке название стадии обрезается многоточием, число и сумма уходят на свою строку. */

.board-col-title[b-wllbglbjmc] {
    min-width: 0;
    max-width: 100%;
}

.board-col-title[b-wllbglbjmc]  .stage-badge {
    max-width: 100%;
}

.board-col-title[b-wllbglbjmc]  .stage-badge .label {
    overflow: hidden;
    text-overflow: ellipsis;
}


.board-card[b-wllbglbjmc]  .badge.stale {
    max-width: 100%;
    box-sizing: border-box;
}

.board-card[b-wllbglbjmc]  .badge.stale .stale-reason {
    white-space: normal;
}

.board-col-head[b-wllbglbjmc] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
    padding: 0.25rem 0.25rem 0.5rem 0.25rem;
    border-bottom: 1px solid var(--border);
}

.board-col-count[b-wllbglbjmc] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* «⋯» на карточке: на компьютере — при наведении и фокусе, на телефоне — всегда. Название компании занимает остальное. */
.board-card-company[b-wllbglbjmc] {
    display: flex;
    align-items: flex-start;
    gap: 0.25rem;
}

.board-card-company a[b-wllbglbjmc] {
    flex: 1 1 auto;
    min-width: 0;
}

.board-card-menu[b-wllbglbjmc] {
    flex: 0 0 auto;
    margin: -0.15rem -0.3rem 0 0;
    opacity: 0;
    transition: opacity 0.1s ease;
}

.board-card:hover .board-card-menu[b-wllbglbjmc],
.board-card:focus-within .board-card-menu[b-wllbglbjmc],
.board-card-menu.shown[b-wllbglbjmc] {
    opacity: 1;
}

.board-card-menu[b-wllbglbjmc]  .more-btn {
    width: 26px;
    padding: 2px 0;
    border: 0;
    background: none;
    color: var(--text-muted);
    cursor: pointer;
}

.board-card-menu[b-wllbglbjmc]  .more-btn:hover {
    background: var(--surface-2);
    color: var(--text);
}

/* Колонка прокручивается сама и обрезала бы меню — оно рисуется у кнопки фиксированно; место выбирает card-menu.js. */
.board-card[b-wllbglbjmc]  .more-pop {
    position: fixed;
    top: auto;
    right: auto;
    min-width: 13rem;
    cursor: default;
    user-select: none;
}

.card-menu-head[b-wllbglbjmc] {
    padding: 0.35rem 0.75rem 0.15rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
}

.card-menu-note[b-wllbglbjmc] {
    padding: 0.35rem 0.75rem;
    max-width: 16rem;
    font-size: 0.75rem;
    line-height: 1.3;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border);
}

.card-menu-here[b-wllbglbjmc] {
    color: var(--text-faint);
}

.card-menu-sep[b-wllbglbjmc] {
    display: block;
    height: 1px;
    margin: 4px 0;
    background: var(--border);
}

/* Телефон: колонки листаются по одной с примагничиванием, полосы закрывающих скрыты — закрывают через «⋯». */
@media (hover: none), (max-width: 640px) {
    .board-card-menu[b-wllbglbjmc] { opacity: 1; }
}

@media (max-width: 640px) {
    .board-scroll[b-wllbglbjmc] {
        scroll-snap-type: x proximity;
        scroll-padding-left: 0.25rem;
    }

    .board-col[b-wllbglbjmc] {
        flex: 0 0 258px;
        min-width: 258px;
        scroll-snap-align: start;
    }

    .board-strip[b-wllbglbjmc] {
        scroll-snap-align: start;
    }

    .board-closers[b-wllbglbjmc] {
        display: none;
    }
}
/* /Components/Pages/Opportunities/OpportunityDetail.razor.rz.scp.css */
.error[b-6984jko21h] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

/* «Обзор»: раскладка «справочное сбоку» — общий класс aside-grid (app.css); здесь только правила таблиц левой колонки. */
@media (min-width: 1440px) {

    /* Левая колонка уже одноколоночной раскладки на 1280 (около 840 px против 990): таблицы состава и документов
       сжимаются по правилам узких таблиц — поля ячеек 10 px, кнопки строки переносятся внутри своей ячейки, имя
       присланного клиентом файла короче (целиком — в подсказке; 8rem — чтобы дата документа «10 октября 2025,» шла
       одной строкой, а таблица не прокручивалась в карточке), выбор файла версии клиента уже. */
    .deal-main[b-6984jko21h]  .data-table th,
    .deal-main[b-6984jko21h]  .data-table td {
        padding-left: 10px;
        padding-right: 10px;
    }

    .deal-main[b-6984jko21h]  .data-table td.actions-cell { width: auto; white-space: normal; }
    .deal-main[b-6984jko21h]  .data-table td.actions-cell > .row-actions { flex-wrap: wrap; }
    .deal-main[b-6984jko21h]  .data-table .client-file { max-width: 8rem; }
    .deal-main[b-6984jko21h]  .data-table .upload-rev input[type="file"] { max-width: 12rem; }
    /* Поля скидки в строке правки не сжимаются до нечитаемого «+1 м»: место берётся у переносимых колонок. */
    .deal-main[b-6984jko21h]  .data-table tr.editing .discount-inputs .cell-input { min-width: 6.5rem; }
}

.requests-scroll[b-6984jko21h] { overflow-x: auto; }

/* Заявок нет — заголовок и «Заявок нет.» одной строкой. */
.requests-card:has(> .requests-scroll > p.muted:only-child)[b-6984jko21h] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 12px;
}

.requests-card:has(> .requests-scroll > p.muted:only-child) > h2[b-6984jko21h],
.requests-scroll[b-6984jko21h] >  p.muted:only-child {
    margin: 0;
}

.outcome-card > details > summary[b-6984jko21h] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 12px;
    cursor: pointer;
    list-style: none;
}

.outcome-card > details > summary[b-6984jko21h]::-webkit-details-marker { display: none; }

.outcome-card > details > summary[b-6984jko21h]::after {
    content: "▾";
    margin-left: auto;
    color: var(--text-muted);
    transition: transform 0.15s;
}

.outcome-card > details[open] > summary[b-6984jko21h] { margin-bottom: 12px; }
.outcome-card > details[open] > summary[b-6984jko21h]::after { transform: rotate(180deg); }
.outcome-card > details[open] > summary .collapsed-note[b-6984jko21h] { display: none; }
.outcome-card > details > summary > h2[b-6984jko21h] { margin: 0; }

.muted[b-6984jko21h] {
    color: var(--text-muted);
    font-size: 0.875rem;
}
/* /Components/Pages/Opportunities/OpportunityDocumentsPanel.razor.rz.scp.css */
/* Документ сохранён, но с оговоркой (PDF без подписи): тот же блок, что у ошибки, в цветах предупреждения. */
.warning-note[b-htkcbsa51d] {
    background: var(--warn-soft);
    border: 1px solid var(--amber-200-border);
    color: var(--warn-strong);
    padding: 0.6rem 0.8rem;
    border-radius: 8px;
    margin-bottom: 1rem;
}

.generate-row[b-htkcbsa51d] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.generate-row label[b-htkcbsa51d] {
    font-weight: 500;
    color: var(--text-body);
    font-size: 0.875rem;
}

.generate-row select[b-htkcbsa51d] {
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
    min-width: 280px;
}

.generate-row select:focus[b-htkcbsa51d] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

/* Если таблица всё же шире карточки (длинное имя файла клиента, все пометки сразу) — прокрутка
   внутри карточки, а не обрезанные краем окна «В архив» и «Удалить». */
.table-scroll[b-htkcbsa51d] {
    overflow-x: auto;
}

/* Ссылки и действия — во вложенном блоке, а не flex на самой ячейке: иначе ячейка выпадает из
   строки таблицы и её нижняя граница не совпадает с соседними. */
.data-table .files[b-htkcbsa51d] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.4rem;
    align-items: center;
}

.data-table .files > *[b-htkcbsa51d],
.data-table .doc-number[b-htkcbsa51d] {
    white-space: nowrap;
}

/* Дата и время — каждое целиком: «10 октября 2025,» и «09:51» не дробятся на слова, дата занимает
   не больше двух строк. Общая обёртка — одним куском в ячейке-строке узкого экрана. */
.data-table .doc-date span span[b-htkcbsa51d] {
    white-space: nowrap;
}
/* Номер с пометками — в строку, а когда места мало, пометки уходят под номер все вместе и только в
   совсем узком столбце — по одной: одной строкой «↳ 2025-0002 · Версия клиента 1 · Финальный» столбец
   «Номер» на 1280 выталкивал «Файлы» за край карточки. */
.data-table .doc-number[b-htkcbsa51d],
.data-table .doc-marks[b-htkcbsa51d] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.35rem;
}

/* ::deep — пометка «PDF без подписи» рисуется общим компонентом, без атрибута этой панели. */
.data-table .doc-number[b-htkcbsa51d]  .badge {
    margin-left: 0;
}

/* Редакция клиента — сразу под своим исходным договором, на лёгком фоне и со стрелкой. */
.data-table tr.client-rev td[b-htkcbsa51d] {
    background: var(--surface-alt);
}

.data-table .rev-mark[b-htkcbsa51d] {
    color: var(--text-faint);
}

.data-table .client-file[b-htkcbsa51d] {
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-2);
}

/* Выбор файла — самый широкий кусок столбца «Файлы»: «✕» уходит под него, сам он уже, чтобы на 1280
   таблица оставалась в карточке. */
.data-table .upload-rev[b-htkcbsa51d] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.data-table .upload-rev[b-htkcbsa51d]  input[type="file"] {
    font-size: 0.8rem;
    max-width: 14rem;
}

@media (max-width: 640px) {
    .data-table .client-file[b-htkcbsa51d] {
        max-width: none;
    }
}

@media (max-width: 640px) {
    .data-table .files[b-htkcbsa51d] {
        justify-content: flex-end;
    }
}

.data-table .files a[b-htkcbsa51d] {
    color: var(--accent-text);
    text-decoration: none;
    font-weight: 500;
}

.data-table .files a:hover[b-htkcbsa51d] {
    text-decoration: underline;
}

.data-table .files .sep[b-htkcbsa51d] {
    color: var(--text-faint);
}

.muted[b-htkcbsa51d] {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.error[b-htkcbsa51d] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

.success[b-htkcbsa51d] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

/* Кнопка-ссылка «Отправить» в колонке файлов — без рамки, как ссылка. */
.link-btn[b-htkcbsa51d] {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--accent-text);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}

.link-btn:hover:not(:disabled)[b-htkcbsa51d] {
    background: transparent;
    text-decoration: underline;
}

/* Выбор вложения письма клиента как версии договора. */
.mail-pick[b-htkcbsa51d] {
    margin-top: 1rem;
    max-width: 640px;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1rem 1.1rem;
    background: var(--surface-alt);
}

.mail-pick-title[b-htkcbsa51d] {
    font-weight: 600;
    color: var(--text-strong);
    margin-bottom: 0.75rem;
}

.mail-attachments[b-htkcbsa51d] {
    list-style: none;
    padding: 0;
    margin: 0 0 0.5rem 0;
}

.mail-attachments li[b-htkcbsa51d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    padding: 0.55rem 0;
    border-top: 1px solid var(--border);
}

.mail-attachments li:first-child[b-htkcbsa51d] {
    border-top: none;
    padding-top: 0;
}

.mail-attachments .att-body[b-htkcbsa51d] {
    min-width: 0;
    flex: 1 1 18rem;
    font-size: 0.875rem;
}

.mail-attachments .att-file[b-htkcbsa51d] {
    overflow-wrap: anywhere;
}

.mail-attachments .att-mail[b-htkcbsa51d] {
    font-size: 0.8rem;
    margin-top: 0.15rem;
    overflow-wrap: anywhere;
}

.mail-attachments .att-used[b-htkcbsa51d] {
    font-size: 0.8rem;
    color: var(--warn-strong);
    margin-top: 0.15rem;
}

.mail-pick-actions[b-htkcbsa51d] {
    display: flex;
    gap: 0.6rem;
}

/* Архивные и удалённые — только по «Показать архив»: приглушены, удалённые ещё и перечёркнуты. */
.data-table tr.archived td[b-htkcbsa51d] {
    background: var(--surface-alt);
    color: var(--text-muted);
}

.data-table tr.deleted td[b-htkcbsa51d] {
    background: var(--danger-soft);
    color: var(--text-faint);
}

.data-table tr.deleted .doc-number strong[b-htkcbsa51d] {
    text-decoration: line-through;
}

.data-table .badge.archived[b-htkcbsa51d] {
    background: var(--surface-3);
    color: var(--text-body);
}

.data-table .badge.deleted[b-htkcbsa51d] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
}

.link-btn.danger[b-htkcbsa51d] {
    color: var(--danger);
}

.confirm-inline[b-htkcbsa51d] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--danger-strong);
}

.archive-toggle[b-htkcbsa51d] {
    margin-top: 0.6rem;
    font-size: 0.875rem;
}

/* На телефоне номер с бейджами («Версия клиента», «Финальный», «В архиве») и имя присланного
   файла переносятся, выбор файла уже: иначе карточка строки шире экрана и страница едет вбок. */
@media (max-width: 640px) {
    .data-table .doc-number[b-htkcbsa51d],
    .data-table .doc-marks[b-htkcbsa51d] {
        white-space: normal;
        justify-content: flex-end;
    }

    .data-table td.client-file[b-htkcbsa51d] {
        white-space: normal;
        overflow-wrap: anywhere;
        text-align: right;
    }

    .data-table .upload-rev[b-htkcbsa51d]  input[type="file"] {
        max-width: 12rem;
    }
}

/* Готовность реквизитов клиента — строка над выбором шаблона; position: relative — подсказка «ⓘ» раскрывается во всю её ширину. */
.requisites-row[b-htkcbsa51d] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
    font-size: 0.875rem;
    color: var(--text-body);
}

.requisites-row.complete[b-htkcbsa51d] {
    color: var(--text-muted);
}

.requisites-row .req-warn[b-htkcbsa51d] {
    color: var(--warn-strong);
}
/* /Components/Pages/Opportunities/OpportunityHeader.razor.rz.scp.css */
.crumbs[b-unzsepwl3r] {
    margin: 0 0 0.5rem 0;
    font-size: 0.875rem;
    color: var(--text-muted);
}

/* Слева — клиент и строка о сделке, справа — сумма и кнопки; не помещаются в ряд — кнопки уходят под заголовок. */
.header[b-unzsepwl3r] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.title[b-unzsepwl3r] {
    min-width: 0;
}

.title h1[b-unzsepwl3r] {
    margin: 0;
    font-size: 24px;
    overflow-wrap: anywhere;
}

.title h1 a[b-unzsepwl3r] {
    color: inherit;
    text-decoration: none;
}

.title h1 a:hover[b-unzsepwl3r] {
    color: var(--link);
    text-decoration: underline;
}

.sub[b-unzsepwl3r] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.625rem;
    margin: 0.25rem 0 0;
    color: var(--text-2);
    font-size: 13.5px;
}

.sub span + span[b-unzsepwl3r]::before {
    content: "·";
    margin-right: 0.625rem;
    color: var(--text-muted);
}

/* position: relative — подсказка «ⓘ» у суммы всплывает под этим рядом во всю его ширину. */
.actions[b-unzsepwl3r] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sum[b-unzsepwl3r] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin-right: 0.625rem;
    line-height: 1.2;
}

.sum-label[b-unzsepwl3r] {
    display: inline-flex;
    align-items: center;
    color: var(--text-2);
    font-size: 12px;
}

.sum-label[b-unzsepwl3r]  .action-hint-tip {
    padding: 0 0.25rem;
    font-size: 0.875rem;
}

.sum-value[b-unzsepwl3r] {
    color: var(--text-strong);
    font-size: 20px;
    font-weight: 650;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* На телефоне — столбиком: клиент, строка о сделке, сумма отдельной строкой слева, под ней кнопки; «⋯» — у правого
   края, его меню открывается влево и не уходит за экран. */
@media (max-width: 640px) {
    .header[b-unzsepwl3r] {
        flex-direction: column;
        align-items: stretch;
    }

    /* Строка о сделке переносится — без точек-разделителей, иначе перенесённая часть начинается с «·». */
    .sub[b-unzsepwl3r] {
        gap: 0.125rem 0.875rem;
    }

    .sub span + span[b-unzsepwl3r]::before {
        content: none;
    }

    .actions[b-unzsepwl3r] {
        justify-content: flex-start;
    }

    .sum[b-unzsepwl3r] {
        flex-basis: 100%;
        align-items: flex-start;
        margin-right: 0;
    }

    .actions[b-unzsepwl3r] >  .more-menu {
        margin-left: auto;
    }

    /* Выбор номера — во всю ширину ряда кнопок, под ним: прижатый к «▾» посреди ряда, он ушёл бы за левый край. */
    .actions[b-unzsepwl3r]  .client-call .more-menu {
        position: static;
    }

    .actions[b-unzsepwl3r]  .client-call .more-pop {
        left: 0;
        right: 0;
        width: auto;
    }
}
/* /Components/Pages/Opportunities/OpportunityLinesPanel.razor.rz.scp.css */
.data-table tfoot td[b-s1vi4rmjj6] {
    background: var(--surface-alt);
    font-weight: 500;
}

.data-table tr.editing[b-s1vi4rmjj6] {
    background: var(--warn-softer);
}

.data-table .sum[b-s1vi4rmjj6] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.data-table[b-s1vi4rmjj6]  a {
    color: var(--accent-text);
    text-decoration: none;
}

.data-table[b-s1vi4rmjj6]  a:hover {
    text-decoration: underline;
}

.muted[b-s1vi4rmjj6] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    margin-left: 0.4rem;
}

.override-mark[b-s1vi4rmjj6] {
    margin-left: 0.3rem;
    color: var(--warn);
    cursor: help;
}

.cell-input[b-s1vi4rmjj6] {
    width: 100%;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.cell-input.qty[b-s1vi4rmjj6] {
    width: 5rem;
}

.cell-input:disabled[b-s1vi4rmjj6] {
    background: var(--surface-2);
    color: var(--text-faint);
}

.cell-input:focus[b-s1vi4rmjj6] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--accent-ring);
}

.row-actions[b-s1vi4rmjj6] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.actions[b-s1vi4rmjj6] {
    margin-top: 0.75rem;
}

.error[b-s1vi4rmjj6] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

/* На телефоне таблица — карточками (общий .cards-narrow в app.css). Здесь то, чего общий вид
   не знает: поля ввода в строке правки, итог и пустые ячейки. Поля получают нулевую базовую
   ширину и растягиваются на остаток строки: иначе таблица подстраивается под «естественную»
   ширину выпадающего списка — по самому длинному названию товара или варианта скидки — и
   снова выталкивает карточку за экран (min-width: 0 этого не отменяет). */
@media (max-width: 640px) {
    .data-table td.narrow-hidden[b-s1vi4rmjj6] {
        display: none;
    }

    .data-table td.empty-row[b-s1vi4rmjj6],
    .data-table td.total-label[b-s1vi4rmjj6] {
        justify-content: flex-start;
        text-align: left;
    }

    .data-table tfoot tr[b-s1vi4rmjj6] {
        background: var(--surface-alt);
    }

    .data-table tfoot td[b-s1vi4rmjj6] {
        background: transparent;
    }

    .data-table tr.editing td[b-s1vi4rmjj6] {
        align-items: center;
    }

    .data-table tr.editing .cell-input[b-s1vi4rmjj6] {
        flex: 1 1 0;
        width: 0;
        min-width: 0;
    }

    .data-table tr.editing .cell-input.qty[b-s1vi4rmjj6] {
        flex: 0 0 5rem;
        width: 5rem;
    }

    .discount-inputs[b-s1vi4rmjj6] {
        display: flex;
        flex-direction: column;
        gap: 0.35rem;
        flex: 1 1 0;
        width: 0;
        min-width: 0;
    }

    .data-table tr.editing .discount-inputs .cell-input[b-s1vi4rmjj6] {
        flex: none;
        width: 100%;
    }
}

/* Сделка продления со снимком цен прошлой продажи, а каталог или БВ с тех пор поменялись: пересчитать решает человек. */
.stale-prices[b-s1vi4rmjj6] {
    display: flex;
    align-items: center;
    gap: 0.5rem 0.75rem;
    flex-wrap: wrap;
    background: var(--warn-soft);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.6rem 0.8rem;
    border-radius: 8px;
    margin-bottom: 0.75rem;
    font-size: 0.875rem;
}

.stale-prices p[b-s1vi4rmjj6] {
    margin: 0;
    flex: 1 1 16rem;
}

.stale-prices .stale-prices-hint[b-s1vi4rmjj6] {
    flex-basis: 100%;
    color: var(--text-muted);
}

/* Окно «было → станет»: по позиции — блок из двух строк, чтобы и на телефоне не ехало вбок. */
.reprice-lines[b-s1vi4rmjj6] {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
}

.reprice-lines li[b-s1vi4rmjj6] {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border);
}

.reprice-lines li .muted[b-s1vi4rmjj6] {
    margin-left: 0.4rem;
}

.reprice-row[b-s1vi4rmjj6] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.875rem;
    font-variant-numeric: tabular-nums;
    margin-top: 0.2rem;
}

.reprice-row > span:first-child[b-s1vi4rmjj6] {
    color: var(--text-muted);
}

.reprice-total[b-s1vi4rmjj6] {
    font-variant-numeric: tabular-nums;
}

.reprice-note[b-s1vi4rmjj6] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

/* Квартальный тариф: срок один — вместо выбора просто число; скидка на нём сохраняется, но с жёлтым напоминанием. */
.fixed-period[b-s1vi4rmjj6] {
    cursor: help;
}

.quarterly-discount-warning[b-s1vi4rmjj6] {
    margin-top: 0.3rem;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: var(--warn-soft);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    font-size: 0.8125rem;
    line-height: 1.3;
}

@media (max-width: 640px) {
    .data-table td:has(> .quarterly-discount-warning)[b-s1vi4rmjj6] {
        flex-wrap: wrap;
    }

    .quarterly-discount-warning[b-s1vi4rmjj6] {
        flex-basis: 100%;
        text-align: left;
    }
}

/* Квартальный тариф: цена за рабочий месяц и под ней — что это значит. */
.month-price[b-s1vi4rmjj6] {
    display: inline-flex;
    flex-direction: column;
    gap: 0.1rem;
}

.working-month-note[b-s1vi4rmjj6] {
    color: var(--text-muted);
    font-size: 0.75rem;
    line-height: 1.25;
    cursor: help;
}

@media (max-width: 640px) {
    .month-price[b-s1vi4rmjj6] {
        align-items: flex-end;
    }
}
/* /Components/Pages/Opportunities/OpportunityStagePanel.razor.rz.scp.css */
.stage-card[b-9n0geg0nng] {
    padding: 12px 14px 8px;
}

/* Заголовок «Стадия» — для чтения с экрана и как ориентир блока: на виду его роль играет название текущей стадии. */
.visually-hidden[b-9n0geg0nng] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.muted[b-9n0geg0nng] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

/* Сверху: слева — где сделка и с каким исходом, справа — перевод в другую стадию (или почему двигать нельзя); на
   узком — друг под другом. */
.stage-top[b-9n0geg0nng] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 16px;
}

.stage-row[b-9n0geg0nng] {
    display: flex;
    align-items: center;
    gap: 4px 10px;
    flex-wrap: wrap;
    flex: 1 1 320px;
    min-width: 0;
}

.outcome[b-9n0geg0nng] {
    display: inline-block;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.outcome-open[b-9n0geg0nng] { background: var(--accent-soft-strong); color: var(--accent-text-strong); border-color: var(--accent-border); }
.outcome-won[b-9n0geg0nng]  { background: var(--emerald-100-bg); color: var(--emerald-800-text); border-color: var(--emerald-350-border); }
.outcome-lost[b-9n0geg0nng] { background: var(--danger-soft-strong); color: var(--danger-strong); border-color: var(--danger-border-strong); }

.reopen-count[b-9n0geg0nng],
.stage-meta[b-9n0geg0nng] {
    color: var(--text-2);
    font-size: 0.8125rem;
}

/* Причина отказа — своей строкой под названием стадии, комментарий к ней — строкой ниже: в названиях причин бывает
   тире, через него комментарий сливался бы с причиной. */
.loss-reason[b-9n0geg0nng] {
    flex: 1 1 100%;
    color: var(--danger-strong);
    font-size: 0.8125rem;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.loss-note[b-9n0geg0nng] {
    display: block;
    color: var(--text-2);
    font-weight: 400;
}

/* «Дальше: …» и «Закрыть сделку ▾» (у закрытой — «Возобновить ▾») — справа от названия стадии. Длинное название
   следующей стадии обрезается многоточием, целиком — в подсказке. */
.stage-actions[b-9n0geg0nng] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    min-width: 0;
    margin-left: auto;
}

.stage-next[b-9n0geg0nng] {
    max-width: 22rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

p.muted[b-9n0geg0nng] {
    color: var(--text-muted);
    font-size: 0.875rem;
    font-style: italic;
    margin: 0;
}

p.move-refusal[b-9n0geg0nng] {
    flex: 1 1 260px;
    min-width: 0;
}

p.stage-facts[b-9n0geg0nng] {
    margin: 4px 0 0;
    color: var(--text-2);
    font-size: 0.8125rem;
}

p.stage-closed-hint[b-9n0geg0nng],
p.stage-note[b-9n0geg0nng] {
    margin-top: 6px;
}

/* «Записано на …» вместо «Записать на установку»: на телефоне кнопки уходят под строку */
.install-booked-row[b-9n0geg0nng],
.install-book-row[b-9n0geg0nng],
.install-hint[b-9n0geg0nng] {
    display: flex;
    align-items: center;
    gap: 0.25rem 0.5rem;
    flex-wrap: wrap;
}

.install-booked[b-9n0geg0nng] {
    color: var(--text);
    font-size: 0.875rem;
}

.install-hint .muted[b-9n0geg0nng] { font-size: 0.8125rem; }

/* Воронка без рабочих стадий: полосы нет, запись на установку — отдельной строкой; подсказка «ⓘ» всплывает под ней. */
.stage-foot-alone[b-9n0geg0nng] {
    position: relative;
    margin-top: 6px;
}

.stage-actions[b-9n0geg0nng]  .more-btn { white-space: nowrap; }

/* На телефоне — друг под другом: каждая часть во всю строку; «Дальше» берёт всё, что оставило меню, одно меню
   («Возобновить ▾», «Закрыть сделку ▾» на последней стадии) — во всю строку. */
@media (max-width: 640px) {
    .stage-row[b-9n0geg0nng],
    .stage-actions[b-9n0geg0nng],
    p.move-refusal[b-9n0geg0nng] { flex: 1 1 100%; }
    .stage-actions[b-9n0geg0nng] { margin-left: 0; }
    .stage-next[b-9n0geg0nng] { flex: 1 1 0; min-width: 0; max-width: none; }
    .stage-actions[b-9n0geg0nng]  .more-menu:only-child { flex: 1 1 auto; }
    .stage-actions[b-9n0geg0nng]  .more-menu:only-child .more-btn { flex: 1 1 auto; justify-content: center; }
}

/* Итог «Перенести в другую воронку…» — под кнопками, до следующего перехода; скидки не вернулись — жёлтой строкой. */
p.move-done[b-9n0geg0nng] {
    margin: 8px 0 0;
}

p.move-done-warn[b-9n0geg0nng] {
    margin: 6px 0 0;
    padding: 8px 10px;
    border: 1px solid var(--warn-border);
    border-radius: var(--r);
    background: var(--warn-softer);
    color: var(--warn-strong);
    font-size: 13.5px;
}
/* /Components/Pages/Opportunities/PipelineMoveModal.razor.rz.scp.css */
/* Воронка и стадия — в две колонки, стадии шире: названия стадий длиннее («Активна (ожидает продления)»); на телефоне —
   одна колонка. */
.pm-grid[b-rzfz7xesgc] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 0 1rem;
}

@media (max-width: 640px) {
    .pm-grid[b-rzfz7xesgc] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Снятие ошибочного выигрыша — отдельной рамкой: всё, что в ней, касается выигрыша, а не самого переноса. */
.pm-win[b-rzfz7xesgc] {
    padding: 0.6rem 0.8rem 0.1rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-alt);
}

.check[b-rzfz7xesgc] {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    margin: 0 0 0.35rem;
}

.check input[b-rzfz7xesgc] {
    margin-top: 0.2rem;
}

.pm-effects[b-rzfz7xesgc] {
    margin: 0.25rem 0 0.75rem;
    padding-left: 1.25rem;
    color: var(--text-2);
    font-size: 0.875rem;
}

.pm-warn[b-rzfz7xesgc] {
    color: var(--warn-strong);
    font-weight: 500;
}

.pm-tasks[b-rzfz7xesgc] {
    margin: 0 0 0.75rem;
    padding: 0;
    border: 0;
    min-width: 0;
}

.pm-tasks legend[b-rzfz7xesgc] {
    margin-bottom: 0.35rem;
    font-weight: 500;
}

.pm-tasks .muted[b-rzfz7xesgc] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

/* Снять нельзя — почему и кто исправит; жёлтым, это не ошибка переноса. */
.pm-refusal[b-rzfz7xesgc] {
    margin: 0;
    padding: 8px 10px;
    border: 1px solid var(--warn-border);
    border-radius: var(--r);
    background: var(--warn-softer);
    color: var(--warn-strong);
    font-size: 0.875rem;
}
/* /Components/Pages/Opportunities/Renewals.razor.rz.scp.css */
.rw-head[b-m78m48x96b] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.rw-search[b-m78m48x96b] { flex: 0 1 320px; }
.rw-sub[b-m78m48x96b] { margin: 0 0 14px; color: var(--text-2); font-size: 13.5px; }
.rw-filter[b-m78m48x96b] { margin-bottom: 14px; }
.rw-hidden[b-m78m48x96b] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rw-stats[b-m78m48x96b] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rw-stat[b-m78m48x96b] { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 14px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); cursor: pointer; }
.rw-stat:hover[b-m78m48x96b] { border-color: var(--border-strong); }
.rw-stat .rw-num[b-m78m48x96b] { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; }
.rw-stat .rw-label[b-m78m48x96b] { color: var(--text-2); font-size: 13px; }
.rw-stat.late[b-m78m48x96b] { border-color: var(--danger-border); background: var(--danger-softer); }
.rw-stat.late .rw-num[b-m78m48x96b] { color: var(--danger); }
.rw-stat.warn[b-m78m48x96b] { border-color: var(--warn-border); background: var(--warn-softer); }
.rw-stat.warn .rw-num[b-m78m48x96b] { color: var(--warn); }
.rw-empty[b-m78m48x96b] { padding: 16px 18px; }
.rw-empty p[b-m78m48x96b] { margin: 0 0 4px; }
.rw-warn[b-m78m48x96b] { margin: 8px 0 14px; padding-left: 20px; color: var(--text-2); }

.rw-table th[b-m78m48x96b] { white-space: nowrap; }
.rw-table tr.grp td[b-m78m48x96b] { padding: 16px 14px 8px; background: var(--surface-alt); border-bottom: 1px solid var(--row-line); font-size: 13px; font-weight: 600; color: var(--text); vertical-align: middle; }
.rw-table tbody:first-of-type tr.grp td[b-m78m48x96b] { padding-top: 10px; }
.rw-table tr.grp .count[b-m78m48x96b] { display: inline-block; min-width: 20px; height: 18px; margin-left: 6px; padding: 0 6px; border-radius: 9px; background: var(--surface-3); color: var(--text-2); font-size: 11.5px; line-height: 18px; text-align: center; font-variant-numeric: tabular-nums; }
.rw-table tr.grp.g-late td[b-m78m48x96b] { color: var(--danger); }
.rw-table tr.grp.g-late .count[b-m78m48x96b] { background: var(--danger-soft); color: var(--danger); }
.rw-table tr.grp .grp-hint[b-m78m48x96b] { margin-left: 10px; font-weight: 400; color: var(--text-muted); font-size: 12.5px; }
.rw-table .c-client[b-m78m48x96b] { min-width: 260px; }
.rw-table .cl[b-m78m48x96b] { font-weight: 600; color: var(--text); }
.rw-table .sub[b-m78m48x96b] { display: block; margin-top: 2px; color: var(--text-2); font-size: 12.5px; }
.rw-table .sub.faint[b-m78m48x96b], .rw-table .faint[b-m78m48x96b] { color: var(--text-faint); }
.rw-table .sub.late-text[b-m78m48x96b] { color: var(--danger); }
.rw-table .mgr[b-m78m48x96b] { color: var(--text); font-weight: 500; }
.rw-table .mgr.away[b-m78m48x96b] { color: var(--warn); }
.rw-table .ct[b-m78m48x96b] { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; margin-top: 6px; font-size: 13px; }
.rw-table .ct .who[b-m78m48x96b] { font-weight: 500; }
.rw-table .ct .role[b-m78m48x96b] { color: var(--text-2); }
.rw-table .ct .ph[b-m78m48x96b] { flex-basis: 100%; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rw-table button.call[b-m78m48x96b] { width: 28px; height: 28px; margin-left: 6px; padding: 0; color: var(--accent); vertical-align: middle; }
.rw-table button.call .rw-ic[b-m78m48x96b] { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; }
.rw-table .c-lic[b-m78m48x96b] { white-space: nowrap; }
.rw-table .until[b-m78m48x96b] { font-weight: 600; }
.rw-table .until.late[b-m78m48x96b] { color: var(--danger); }
.rw-table .c-rem[b-m78m48x96b], .rw-table .c-last[b-m78m48x96b] { font-size: 13px; min-width: 150px; }
.rw-table .c-acts[b-m78m48x96b] { width: 1%; white-space: nowrap; text-align: right; }
.rw-table .acts[b-m78m48x96b] { display: inline-flex; gap: 6px; align-items: center; justify-content: flex-end; }
.rw-table.data-table tbody tr:last-child td[b-m78m48x96b] { border-bottom: 1px solid var(--row-line); }
.rw-table tr.more td[b-m78m48x96b] { padding: 8px 14px; font-size: 13px; }

@media (max-width: 1320px) {
    .rw-table .c-client[b-m78m48x96b] { min-width: 230px; }
    .rw-table :is(th, td)[b-m78m48x96b] { padding-left: 10px; padding-right: 10px; }
    .rw-table .c-rem[b-m78m48x96b], .rw-table .c-last[b-m78m48x96b] { min-width: 130px; }
}

@media (max-width: 720px) {
    .rw-head[b-m78m48x96b] { flex-wrap: wrap; }
    .rw-search[b-m78m48x96b] { flex: 1 1 100%; }
    .panel > .rw-table.data-table[b-m78m48x96b] { min-width: 0; }
    .rw-table.data-table td[b-m78m48x96b] { height: auto; }
    .rw-table .c-lic[b-m78m48x96b] { white-space: normal; }
    .rw-table thead[b-m78m48x96b] { display: none; }
    .rw-table[b-m78m48x96b], .rw-table tbody[b-m78m48x96b] { display: block; }
    .rw-table tbody tr:not(.grp):not(.more)[b-m78m48x96b] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "client lic" "rem rem" "last last" "acts acts";
        border-bottom: 1px solid var(--row-line);

    }
    .rw-table.data-table tbody tr:not(.grp):not(.more) > td[b-m78m48x96b] { border: 0; }
    .rw-table .c-client[b-m78m48x96b] { grid-area: client; min-width: 0; }
    .rw-table .c-lic[b-m78m48x96b] { grid-area: lic; text-align: right; }
    .rw-table .c-rem[b-m78m48x96b] { grid-area: rem; min-width: 0; }
    .rw-table .c-rem[b-m78m48x96b]::before { content: "Напоминания: "; color: var(--text-muted); }
    .rw-table .c-last[b-m78m48x96b] { grid-area: last; min-width: 0; }
    .rw-table .c-last[b-m78m48x96b]::before { content: "Последний контакт: "; color: var(--text-muted); }
    .rw-table :is(.c-rem, .c-last) .sub[b-m78m48x96b] { display: inline; margin-left: 4px; }
    .rw-table .c-acts[b-m78m48x96b] { grid-area: acts; width: auto; text-align: left; }
    .rw-table .acts[b-m78m48x96b] { justify-content: flex-start; }
    .rw-table tr.grp[b-m78m48x96b], .rw-table tr.more[b-m78m48x96b] { display: block; padding: 0; }
    .rw-table tr.grp td[b-m78m48x96b] { display: block; padding: 14px 14px 8px; }
    .rw-table tr.grp .grp-hint[b-m78m48x96b] { display: block; margin: 2px 0 0; }
    .rw-table tr.more td[b-m78m48x96b] { display: block; padding: 10px 14px; }
}
.rw-filter select[b-m78m48x96b] { min-width: 240px; }
/* /Components/Pages/Outbound/OperatorClients.razor.rz.scp.css */
/* Базовые классы (.card/.toolbar/.chip/.pager/.data-table/.cards-narrow) — глобальные в app.css. Строки клиентов — в
   том же виде, что «Мои обзвоны» оператора: руководитель узнаёт ту же картину. */

.oc-intro[b-owohko4r46] { margin: -.25rem 0 .6rem; font-size: .85rem; }

.oc-row[b-owohko4r46] { display: flex; align-items: center; gap: .4rem 1rem; flex-wrap: wrap; }
.oc-chips[b-owohko4r46] { margin-top: .55rem; gap: .35rem; }
.oc-operator[b-owohko4r46] { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
.oc-operator label[b-owohko4r46] { font-weight: 600; }
.oc-operator select[b-owohko4r46] { min-width: 18rem; max-width: 100%; }
.oc-note[b-owohko4r46] {
    margin: .6rem 0 0; padding: .45rem .7rem; max-width: 60rem;
    background: var(--warn-softer); border-left: 3px solid var(--orange-450-border); border-radius: 6px; font-size: .9rem;
}

.search-input[b-owohko4r46] { flex: 1 1 14rem; max-width: 420px; padding: .4rem .7rem; }
.counter[b-owohko4r46] { margin-left: auto; font-size: .85rem; color: var(--text-muted); white-space: nowrap; }

.chips-divider[b-owohko4r46] { align-self: stretch; width: 1px; margin: .1rem .3rem; background: var(--surface-3); }
.chips-label[b-owohko4r46] { font-size: .8rem; color: var(--text-muted); margin-right: .15rem; }

.oc-base-select[b-owohko4r46] { max-width: 20rem; padding: .3rem .5rem; font-size: .85rem; }
.reset-filters[b-owohko4r46] { font-size: .8rem; padding: .3rem .7rem; }

/* Шапка списка: «выбрать всех» вместе со счётчиком, рядом — действия над выбранным. */
.oc-move-bar[b-owohko4r46] { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .75rem; margin-bottom: .4rem; }
.oc-pick-all[b-owohko4r46] { display: inline-flex; align-items: center; gap: .45rem; }
.oc-pick-all input[b-owohko4r46] { min-width: auto; margin: 0; cursor: pointer; }

.oc-table td[b-owohko4r46], .oc-table th[b-owohko4r46] { padding-top: 10px; padding-bottom: 10px; }
.oc-table td[b-owohko4r46] { vertical-align: middle; line-height: 1.35; }
.data-table th.pick[b-owohko4r46], .data-table td.pick[b-owohko4r46] { width: 2rem; text-align: center; }
.data-table .pick input[b-owohko4r46] { min-width: auto; }

/* Срок звонка наступил — как в «Моих обзвонах»: оператор этого клиента ждёт звонка прямо сейчас. */
.callback-due[b-owohko4r46] { background: var(--warn-soft-strong); }
.callback-due td[b-owohko4r46] { font-weight: 600; }

/* Отмеченный галочкой для передачи. */
.oc-table tr.oc-picked td[b-owohko4r46] { background: var(--accent-soft); }

/* «Важный» — янтарная полоса слева и звёздочка: у оператора такой клиент идёт первым. */
.oc-important td:first-child[b-owohko4r46] { box-shadow: inset 3px 0 0 var(--amber-550-shadow); }
.oc-company[b-owohko4r46] { display: flex; align-items: baseline; gap: .3rem; }
.oc-star[b-owohko4r46] { color: var(--amber-550-text); }

/* Вторая строка клиента: комментарий · база — переносится. */
.oc-sub[b-owohko4r46] {
    margin-top: .1rem;
    font-size: .8rem; color: var(--text-muted);
    overflow-wrap: anywhere;
}
.oc-comment[b-owohko4r46] { font-style: italic; }
.oc-outcome[b-owohko4r46] { font-size: .78rem; color: var(--text-muted); font-weight: 400; }

.empty-hint[b-owohko4r46] { color: var(--text-muted); }
.page-label[b-owohko4r46] { font-size: .85rem; color: var(--text-muted); font-variant-numeric: tabular-nums; }

@media (max-width: 640px) {
    .oc-operator[b-owohko4r46] { width: 100%; }
    .oc-operator select[b-owohko4r46] { min-width: 0; flex: 1; }
    .counter[b-owohko4r46] { margin-left: 0; white-space: normal; }
    .oc-base-select[b-owohko4r46] { max-width: 100%; }
    .oc-attempts[b-owohko4r46] { display: none; }
    .oc-cell[b-owohko4r46] { min-width: 0; text-align: right; }
    .oc-outcome[b-owohko4r46] { white-space: normal; overflow-wrap: anywhere; }
    /* В карточном виде полоса — у всей карточки, а не у первой её строчки. */
    .oc-important[b-owohko4r46] { border-left: 3px solid var(--amber-550-border); }
    .oc-important td:first-child[b-owohko4r46] { box-shadow: none; }
    .data-table th.pick[b-owohko4r46], .data-table td.pick[b-owohko4r46] { width: auto; text-align: right; }
    .oc-sub[b-owohko4r46] { max-width: none; white-space: normal; overflow: visible; text-overflow: clip; text-align: right; overflow-wrap: anywhere; }
}
/* /Components/Pages/Outbound/OutboundQueue.razor.rz.scp.css */
/* Базовые классы (.card/.field/.toolbar/button/.error/.data-table/.tab-strip) — глобальные
   в app.css. Здесь только специфика рабочего места обзвона. */

/* Строка страницы: заголовок и вкладки слева, выбор базы и направления справа; черта под всей строкой. */
.ob-pagehead[b-h8vh5e1xp0] {
    display: flex; align-items: flex-end; flex-wrap: wrap; gap: .25rem 1.25rem;
    margin-bottom: .75rem; border-bottom: 1px solid var(--border);
}
.ob-pagehead h1[b-h8vh5e1xp0] { margin: 0; align-self: center; }
.ob-pagehead .tab-strip[b-h8vh5e1xp0] { margin: 0; border-bottom: none; flex: 0 0 auto; }
.ob-pagehead-base[b-h8vh5e1xp0] {
    display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-left: auto; padding-bottom: .3rem;
}
.ob-pagehead-base select[b-h8vh5e1xp0] { max-width: 13rem; min-width: 0; }

.ob-remainder[b-h8vh5e1xp0] { margin-bottom: .6rem; font-size: .85rem; color: var(--text-muted); }

/* Экран звонка в три зоны: клиент и скрипт слева, исход справа. Ширины — по окну, а не по рабочей части:
   меню слева занимает одно и то же при любом окне шире 860. */
.ob-zones[b-h8vh5e1xp0] { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 1rem; align-items: start; }
.ob-work[b-h8vh5e1xp0] { min-width: 0; }
.ob-cols[b-h8vh5e1xp0] { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1rem; align-items: start; }
.ob-cols > .card[b-h8vh5e1xp0], .ob-outcome[b-h8vh5e1xp0] { margin-bottom: 0; min-width: 0; overflow-wrap: anywhere; }

/* Исход липнет к верху области прокрутки и не выше окна: кнопки и поля прокручиваются внутри, комментарий и
   «Сохранить и следующий» остаются внизу. 8.9rem — строка страницы вместе с верхним отступом. */
.ob-outcome[b-h8vh5e1xp0] {
    position: sticky; top: .75rem; display: flex; flex-direction: column;
    max-height: calc(100vh - 56px - 8.9rem - var(--call-bar-offset, 0px));
}
.ob-outcome-body[b-h8vh5e1xp0] { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.ob-outcome-foot[b-h8vh5e1xp0] { flex: 0 0 auto; padding-top: .5rem; border-top: 1px solid var(--border); }
.ob-outcome-foot .field[b-h8vh5e1xp0] { margin-bottom: .5rem; }
.ob-outcome-foot textarea[b-h8vh5e1xp0] { width: 100%; box-sizing: border-box; }
.ob-outcome-save[b-h8vh5e1xp0] { margin-top: 0; }

@media (min-width: 1400px) {
    .ob-zones[b-h8vh5e1xp0] { grid-template-columns: minmax(0, 1fr) 340px; }
    .ob-cols[b-h8vh5e1xp0] { grid-template-columns: 300px minmax(0, 1fr); }
}
/* Две колонки: скрипт над клиентом слева, исход справа. */
@media (max-width: 1199px) {
    .ob-cols[b-h8vh5e1xp0] { grid-template-columns: minmax(0, 1fr); }
    .ob-cols > .ob-script[b-h8vh5e1xp0] { order: -1; }
}
/* Одна колонка: шапка, скрипт, контакты; исход — последним, прижат к низу окна во всю ширину. */
@media (max-width: 720px) {
    .ob-zones[b-h8vh5e1xp0] { grid-template-columns: minmax(0, 1fr); }
    .ob-pagehead-base[b-h8vh5e1xp0] { margin-left: 0; width: 100%; padding-bottom: .4rem; }
    .ob-pagehead-base select[b-h8vh5e1xp0] { flex: 1 1 8rem; max-width: none; }
    .ob-outcome[b-h8vh5e1xp0] {
        top: auto; bottom: -2.5rem; z-index: 5; margin-inline: -1rem; border-radius: 0; border-inline: none;
        max-height: calc(100vh - 56px - 6rem - var(--call-bar-offset, 0px));
    }
}

.contact-head[b-h8vh5e1xp0] { display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; }
.contact-head h2[b-h8vh5e1xp0] { margin: 0; font-size: 1.25rem; }
.contact-meta[b-h8vh5e1xp0] { color: var(--text-muted); font-size: .9rem; margin: .25rem 0 .5rem; }
.contact-products[b-h8vh5e1xp0] { color: var(--text-2); margin: 0 0 .5rem; }
.attempts-pill[b-h8vh5e1xp0] {
    display: inline-block; font-size: .75rem; color: var(--text-muted);
    background: var(--surface-2); border-radius: 999px; padding: .05rem .55rem;
}


/* Колонка клиента узкая (~280 px): первая строка — булавка, номер и «⋯» (прижато вправо), ниже — подпись и трубка; длинная
   подпись переносится. «⋯» стоит в потоке перед ними (order), а не в конце — иначе осталось бы одно на второй строке. */
.phone-row[b-h8vh5e1xp0]  .more-menu, .email-row[b-h8vh5e1xp0]  .more-menu { margin-left: auto; order: 1; }
.phone-row[b-h8vh5e1xp0]  .phone-label-tag, .phone-row[b-h8vh5e1xp0]  .call-button, .email-row[b-h8vh5e1xp0]  .email-label-tag, .email-row[b-h8vh5e1xp0]  .call-button { order: 2; }
.phone-row[b-h8vh5e1xp0]  .phone-value.prominent { font-size: .95rem; letter-spacing: 0; }
.phone-row[b-h8vh5e1xp0]  .phone-value, .email-row[b-h8vh5e1xp0]  .email-value { min-width: 0; overflow-wrap: anywhere; }
.phone-row[b-h8vh5e1xp0]  .phone-label-tag, .email-row[b-h8vh5e1xp0]  .email-label-tag { min-width: 0; overflow-wrap: anywhere; }

/* Пустое одной строкой: нет признаков и дублей, нет касаний. */
.ob-line-empty[b-h8vh5e1xp0] { margin: .5rem 0 0; font-size: .85rem; color: var(--text-muted); }

.phones[b-h8vh5e1xp0] { display: flex; flex-direction: column; gap: .5rem; margin-top: .75rem; }
.phone-row[b-h8vh5e1xp0] {
    display: flex; align-items: center; gap: .25rem .5rem; flex-wrap: wrap; min-width: 0;
    padding: .4rem .4rem; background: var(--surface-alt); border-radius: 8px;
}

/* Почта под телефонами: тем же строем, но мельче — она вторична для звонка. */
.emails[b-h8vh5e1xp0] { display: flex; flex-direction: column; gap: .4rem; margin-top: .6rem; }
.email-row[b-h8vh5e1xp0] {
    display: flex; align-items: center; gap: .25rem .5rem; flex-wrap: wrap; min-width: 0;
    padding: .3rem .4rem; background: var(--surface-alt); border-radius: 8px; font-size: .9rem;
}

.lead-notes[b-h8vh5e1xp0] {
    margin-top: .75rem; padding: .5rem .75rem;
    background: var(--warn-softer); border-left: 3px solid var(--yellow-450-border); border-radius: 6px;
}

.call-history[b-h8vh5e1xp0] { margin-top: 1rem; }
.call-history h4[b-h8vh5e1xp0] { margin: 0 0 .5rem; }

.script-text[b-h8vh5e1xp0] { line-height: 1.55; }

.scenario-switch[b-h8vh5e1xp0] { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .6rem; }
.scenario-switch label[b-h8vh5e1xp0] { font-size: .85rem; color: var(--text-muted); }
.scenario-switched[b-h8vh5e1xp0] { font-size: .75rem; color: var(--warn); font-style: italic; }

.outcome-card[b-h8vh5e1xp0] { background: var(--surface); }
.outcome-save[b-h8vh5e1xp0] { margin-top: .5rem; }
.outcome-save button[b-h8vh5e1xp0] { width: 100%; padding: .65rem; font-weight: 600; }

.callback-due[b-h8vh5e1xp0] { background: var(--warn-soft-strong); }

.empty-hint[b-h8vh5e1xp0] { color: var(--text-muted); }
.nudge[b-h8vh5e1xp0] { margin: .35rem 0 0; font-size: .8rem; color: var(--warn-strong); }
.remainder-parts[b-h8vh5e1xp0] { margin: .35rem 0 0; padding-left: 1.25rem; }
.remainder-parts li + li[b-h8vh5e1xp0] { margin-top: .2rem; }

/* ─────────── «Мои обзвоны»: числа на кнопках и строка клиента ─────────── */

.preset-count[b-h8vh5e1xp0] { font-variant-numeric: tabular-nums; font-size: .75rem; opacity: .85; }

/* Части «Пора звонить» — цвета кружков «Обзвона» в меню: оранжевый — договорённые и важные, серый — повторы. */
.due-part-count[b-h8vh5e1xp0] {
    min-width: 1.35rem; padding: 0 .4rem; border-radius: 999px; text-align: center;
    font-size: .72rem; font-weight: 600; line-height: 1.4; font-variant-numeric: tabular-nums;
}
.due-part-callbacks[b-h8vh5e1xp0] { background: var(--warn-soft); color: var(--orange-600-text); }
.due-part-retries[b-h8vh5e1xp0] { background: var(--surface-3); color: var(--text-body); }

.sort-reset[b-h8vh5e1xp0] { margin-left: .5rem; font-size: .8rem; }

/* Пояснения выбранных отметок и состояний: кнопки короткие, смысл выбранного — строкой под ними. */
.chips-hint[b-h8vh5e1xp0] { margin: 0 0 .5rem; font-size: .78rem; color: var(--text-muted); }

/* Колонки строки: звезда · клиент · телефон · состояние · срок и касание · попытки · «К звонку». */
.mine-row[b-h8vh5e1xp0] { --lrow-cols: 1.6rem minmax(0, 2.2fr) 14.5rem minmax(0, 1.2fr) 10.5rem 3.2rem 5.6rem; }
.mine-row.lrow:not(.lrow-head)[b-h8vh5e1xp0] { min-height: 3.1rem; }
.mine-list[b-h8vh5e1xp0] { margin-bottom: .75rem; }

/* Комментарий прошлого касания — курсивом рядом с базой: он объясняет, почему контакт ждёт звонка. */
.mine-comment[b-h8vh5e1xp0] { font-style: italic; }
.lrow-sub[b-h8vh5e1xp0] { display: block; }

.mine-phone[b-h8vh5e1xp0] { display: flex; align-items: center; gap: .4rem; flex-wrap: nowrap; }
.mine-phone-value[b-h8vh5e1xp0] { font-variant-numeric: tabular-nums; white-space: nowrap; }
.mine-phone-label[b-h8vh5e1xp0] { font-size: .75rem; color: var(--text-muted); white-space: nowrap; }

/* «ещё N» раскрывает остальные номера поверх списка, а не раздвигает строку: высота строки не прыгает. */
.mine-phones-more[b-h8vh5e1xp0] { position: relative; }
.mine-phones-more > summary[b-h8vh5e1xp0] {
    display: inline-block; cursor: pointer; list-style: none; white-space: nowrap;
    font-size: .75rem; color: var(--accent-text);
}
.mine-phones-more > summary[b-h8vh5e1xp0]::-webkit-details-marker { display: none; }
.mine-phones-more > summary:hover[b-h8vh5e1xp0] { text-decoration: underline; }
.mine-phones-pop[b-h8vh5e1xp0] {
    position: absolute; z-index: 15; top: 100%; left: 0; display: flex; flex-direction: column; gap: .3rem;
    margin-top: .2rem; padding: .5rem .6rem; background: var(--surface); border: 1px solid var(--border-strong);
    border-radius: 8px; box-shadow: var(--shadow-md);
}

.page-label[b-h8vh5e1xp0] { font-size: .85rem; color: var(--text-muted); font-variant-numeric: tabular-nums; }

/* Фишки отборов — в одну высоту с соседями по строке (переключатель подборок, выборы). */
.filter-line .filter-chip[b-h8vh5e1xp0] { padding-block: .38rem; }

/* Кнопка «Отборы» нужна только на телефоне, где вторая строка отборов свёрнута. */
.filters-toggle[b-h8vh5e1xp0] { display: none; align-self: flex-start; margin-bottom: .5rem; }

@media (max-width: 720px) {
    /* Карточка в три ряда: звезда, название и «К звонку»; номер с трубкой и число попыток; состояние и срок. */
    .mine-row[b-h8vh5e1xp0] { --lrow-cols: 1.6rem minmax(0, 1fr) minmax(0, 1fr) auto; row-gap: .15rem; }
    .lrow-head[b-h8vh5e1xp0] { display: none; }
    .mine-row > :first-child[b-h8vh5e1xp0] { grid-column: 1; grid-row: 1; }
    .mine-row .lrow-main[b-h8vh5e1xp0] { grid-column: 2 / 4; grid-row: 1; }
    .mine-row .lrow-act[b-h8vh5e1xp0] { grid-column: 4; grid-row: 1; }
    .mine-row .lrow-phone[b-h8vh5e1xp0] { grid-column: 2 / 4; grid-row: 2; }
    .mine-row .lrow-num[b-h8vh5e1xp0] { grid-column: 4; grid-row: 2; text-align: right; white-space: nowrap; }
    .mine-row .lrow-state[b-h8vh5e1xp0] { grid-column: 2; grid-row: 3; }
    .mine-row .lrow-when[b-h8vh5e1xp0] { grid-column: 3 / 5; grid-row: 3; }
    .mine-row .lrow-num[b-h8vh5e1xp0]::before { content: "Попыток: "; color: var(--text-muted); }
    .mine-row .lrow-phone .mine-phone[b-h8vh5e1xp0] { gap: .2rem; }
    .mine-row .lrow-phone .mine-phone[b-h8vh5e1xp0]  .call-button-sm { padding-inline: .3rem; }
    .filters-toggle[b-h8vh5e1xp0] { display: inline-flex; }
    .mine-filters[b-h8vh5e1xp0] { display: none; }
    .mine-filters.open[b-h8vh5e1xp0] { display: flex; }
    .filter-line .search-input[b-h8vh5e1xp0] { margin-left: 0; max-width: none; }
}

/* Мишень, открытая по ссылке, у другого оператора или уже закрыта: сведения без экрана звонка. */
.target-elsewhere[b-h8vh5e1xp0] {
    background: var(--warn-softer); border: 1px solid var(--warn-border); color: var(--orange-750-text);
    padding: .6rem .8rem; border-radius: 8px; margin-bottom: 1rem;
}
.target-elsewhere[b-h8vh5e1xp0]  a { margin-left: .35rem; }
.target-elsewhere .link-btn[b-h8vh5e1xp0], .info .link-btn[b-h8vh5e1xp0] { margin-left: .75rem; }
.target-elsewhere > button[b-h8vh5e1xp0] { margin: .5rem .5rem 0 0; }

.base-pill[b-h8vh5e1xp0] {
    display: inline-block; font-size: .75rem; color: var(--blue-650-text-2);
    background: var(--accent-soft); border-radius: 12px; padding: .05rem .55rem;
    max-width: 100%; overflow-wrap: anywhere;
}

/* Шапка клиента: липнет к верху области прокрутки. В первой строке — звёздочка, название и плашка госреестра, во
   второй — база, направление и число попыток; справа остаток базы и «Позвонить» (с «Пропустить», если клиента уже ведут). */
.ob-head[b-h8vh5e1xp0] {
    position: sticky; z-index: 4; margin-bottom: .75rem; padding: .6rem .9rem;
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem 1rem; align-items: center;
    background: var(--surface); border: 1px solid var(--border); border-radius: 10px;
}
.ob-head-title[b-h8vh5e1xp0] { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem .6rem; min-width: 0; }
.ob-head-title h2[b-h8vh5e1xp0] { margin: 0; font-size: 1.25rem; overflow-wrap: anywhere; }
.ob-head-meta[b-h8vh5e1xp0] { grid-column: 1; display: flex; flex-wrap: wrap; gap: .1rem .9rem; font-size: .85rem; color: var(--text-muted); }
.ob-head-actions[b-h8vh5e1xp0] { grid-column: 2; grid-row: 1 / span 2; display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: .5rem .75rem; }
.ob-head-remainder[b-h8vh5e1xp0] { margin: 0; white-space: nowrap; }
/* Когда клиента уже ведут, шапке нужно место под «Пропустить»: остаток уходит из неё на средних окнах. */
@media (min-width: 721px) and (max-width: 1399px) {
    .ob-head-remainder.has-conflict[b-h8vh5e1xp0] { display: none; }
}
@media (max-width: 720px) {
    .ob-head[b-h8vh5e1xp0] { grid-template-columns: minmax(0, 1fr); }
    .ob-head-actions[b-h8vh5e1xp0] { grid-column: 1; grid-row: auto; justify-content: flex-start; }
}

.ob-plate[b-h8vh5e1xp0] {
    display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: .85rem; font-weight: 600; line-height: 1.4;
}
.ob-plate-ok[b-h8vh5e1xp0] { background: var(--ok-soft); color: var(--green-750-text); }
.ob-plate-warn[b-h8vh5e1xp0] { background: var(--warn-soft); color: var(--amber-700-text-2); }
.ob-plate-danger[b-h8vh5e1xp0] { background: var(--danger-soft); color: var(--red-550-text-2); }
.ob-plate-muted[b-h8vh5e1xp0] { background: var(--surface-2); color: var(--slate-600-text-2); }

.ob-strip[b-h8vh5e1xp0] { margin: 0 0 .75rem; padding: .55rem .9rem; border-radius: 8px; border: 2px solid; }
.ob-strip-warn[b-h8vh5e1xp0] { background: var(--warn-soft); border-color: var(--warn); color: var(--orange-750-text); }
.ob-strip-danger[b-h8vh5e1xp0] { background: var(--danger-soft); border-color: var(--danger); color: var(--danger-strong); }

.ob-work > .conflict-bar[b-h8vh5e1xp0], .ob-work > .error[b-h8vh5e1xp0], .ob-work > .success[b-h8vh5e1xp0], .ob-work > .info[b-h8vh5e1xp0], .ob-work > .target-elsewhere[b-h8vh5e1xp0] { margin-top: 0; margin-bottom: .75rem; }

/* Липкость считается от содержимого main.content, а не от его края: сдвиг на верхний отступ ставит шапку вровень с верхом области. */
.ob-head[b-h8vh5e1xp0] { top: -22px; }
@media (max-width: 860px) {
    .ob-head[b-h8vh5e1xp0] { top: -16px; }
}
.ob-head-name[b-h8vh5e1xp0] { display: inline-flex; align-items: center; gap: .4rem; min-width: 0; }

/* Исход касания: восемь кнопок видов, под нажатой — строка «Уточнение». */
.ob-outcome-title[b-h8vh5e1xp0] { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin: 0 0 .5rem; }
.ob-outcome-keys[b-h8vh5e1xp0] { font-size: .72rem; font-weight: 400; color: var(--text-muted); white-space: nowrap; }
.oc-kinds[b-h8vh5e1xp0] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; margin-bottom: .6rem; }
.oc-kind[b-h8vh5e1xp0], .oc-refine-btn[b-h8vh5e1xp0] {
    padding: .35rem .5rem; border: 1px solid var(--border-strong); border-radius: 6px; background: var(--surface);
    font: inherit; font-size: .85rem; line-height: 1.2; cursor: pointer; text-align: center; color: inherit;
}
.oc-kind:disabled[b-h8vh5e1xp0] { opacity: .5; cursor: not-allowed; }
.oc-kind-on[b-h8vh5e1xp0], .oc-refine-on[b-h8vh5e1xp0], .oc-kind-on:hover:not(:disabled)[b-h8vh5e1xp0], .oc-refine-on:hover:not(:disabled)[b-h8vh5e1xp0] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.oc-select[b-h8vh5e1xp0] { display: none; }
.oc-refine[b-h8vh5e1xp0] { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: 0 0 .6rem; }
.oc-refine-label[b-h8vh5e1xp0] { flex: 0 0 100%; font-size: .8rem; color: var(--text-muted); }
.oc-refine-btn[b-h8vh5e1xp0] { font-size: .8rem; padding: .25rem .5rem; text-align: left; }
.oc-invalid[b-h8vh5e1xp0], .oc-invalid-box input[b-h8vh5e1xp0] { border-color: var(--danger); box-shadow: 0 0 0 1px var(--danger); }
.oc-error[b-h8vh5e1xp0] { margin: 0 0 .4rem; padding: .3rem .5rem; font-size: .85rem; }
.oc-ask[b-h8vh5e1xp0] { margin: -.2rem 0 .6rem; color: var(--danger-strong); font-weight: 500; }
.oc-comment[b-h8vh5e1xp0] { resize: vertical; }

@media (max-width: 720px) {
    .oc-kinds[b-h8vh5e1xp0], .oc-refine-wide[b-h8vh5e1xp0], .ob-outcome-keys[b-h8vh5e1xp0] { display: none; }
    .oc-select[b-h8vh5e1xp0] { display: block; }
}

/* Длинное состояние и срок переносятся на следующую строку. */
.mine-row .lrow-state[b-h8vh5e1xp0], .mine-row .lrow-when[b-h8vh5e1xp0] { display: block; overflow-wrap: anywhere; }
.mine-row .lrow-state > *[b-h8vh5e1xp0], .mine-row .lrow-when > *[b-h8vh5e1xp0] { display: block; overflow-wrap: anywhere; }
.lrow-head[b-h8vh5e1xp0] { white-space: nowrap; }
.lrow-head[b-h8vh5e1xp0]  .sort-btn { justify-self: start; text-align: left; }
.mine-row .mine-phone[b-h8vh5e1xp0] { gap: .3rem; }
.mine-phones-more > summary[b-h8vh5e1xp0] { margin-left: .1rem; }

/* Строка целиком открывает экран звонка; выбранная (фокус от щелчка или стрелок) — рамкой, и её «К звонку» главная. */
.mine-row[role="option"][b-h8vh5e1xp0] { cursor: pointer; outline: none; }
.mine-row[role="option"]:hover[b-h8vh5e1xp0] { background: var(--surface-2); }
.mine-row.due-row[role="option"]:hover[b-h8vh5e1xp0] { background: var(--warn-soft-strong); }
.mine-row[role="option"][aria-selected="true"][b-h8vh5e1xp0] { box-shadow: inset 0 0 0 2px var(--accent); }
.mine-row.important-row[role="option"][aria-selected="true"][b-h8vh5e1xp0] { box-shadow: inset 0 0 0 2px var(--accent), inset 3px 0 0 var(--amber-550-shadow); }
.mine-row .lrow-act button[b-h8vh5e1xp0] { background: var(--surface); border-color: var(--border-strong); color: inherit; }
.mine-row[aria-selected="true"] .lrow-act button[b-h8vh5e1xp0] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.mine-row a[b-h8vh5e1xp0], .mine-row summary[b-h8vh5e1xp0] { cursor: pointer; }
/* /Components/Pages/Profile.razor.rz.scp.css */
.profile-info[b-az06qlb0fn] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.5rem 1.25rem;
    margin: 0 0 2rem 0;
    max-width: 480px;
}

.profile-info dt[b-az06qlb0fn] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.profile-info dd[b-az06qlb0fn] {
    margin: 0;
    color: var(--text-strong);
}

h2[b-az06qlb0fn] {
    font-size: 1.0625rem;
    font-weight: 600;
    margin: 0 0 0.75rem 0;
}

form[b-az06qlb0fn] {
    max-width: 360px;
}

.field[b-az06qlb0fn] {
    margin-bottom: 0.85rem;
    display: flex;
    flex-direction: column;
}

.field label[b-az06qlb0fn] {
    margin-bottom: 0.25rem;
}

.field[b-az06qlb0fn]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.error[b-az06qlb0fn] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.85rem;
}

.success[b-az06qlb0fn] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.85rem;
}

.prefs-card[b-az06qlb0fn] {
    max-width: 540px;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1rem 1.1rem;
    margin: 0 0 2rem 0;
    background: var(--surface-alt);
}

.inline-checkbox[b-az06qlb0fn] {
    display: block;
    margin: 0.4rem 0;
    font-size: 0.9rem;
    color: var(--text-body);
    cursor: pointer;
}

.inline-checkbox input[b-az06qlb0fn] {
    margin-right: 0.5rem;
}

.prefs-status[b-az06qlb0fn] {
    margin-top: 0.6rem;
    font-size: 0.8rem;
    color: var(--emerald-750-text);
}

.prefs-section[b-az06qlb0fn] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.prefs-section-title[b-az06qlb0fn] {
    font-weight: 600;
    margin-bottom: 0.4rem;
    color: var(--text-strong);
    font-size: 0.95rem;
}

.muted[b-az06qlb0fn] {
    color: var(--text-muted);
    font-size: 0.82rem;
    margin: 0 0 0.5rem 0;
}

.quiet-row[b-az06qlb0fn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.quiet-row input[b-az06qlb0fn] {
    width: 5rem;
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--border-strong);
    border-radius: 4px;
}

.kind-grid[b-az06qlb0fn] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.2rem 1rem;
}

.muted-entities-list[b-az06qlb0fn] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.muted-entities-list li[b-az06qlb0fn] {
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--row-border);
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    font-size: 0.88rem;
}

.muted-entities-list a[b-az06qlb0fn] {
    color: var(--link);
    text-decoration: none;
    font-weight: 500;
}

.muted-entities-list a:hover[b-az06qlb0fn] {
    text-decoration: underline;
}

.muted-entities-list .link[b-az06qlb0fn] {
    background: transparent;
    border: none;
    color: var(--danger);
    cursor: pointer;
    padding: 0;
    font-size: 0.82rem;
    margin-left: auto;
}

.muted-entities-list .link:hover[b-az06qlb0fn] {
    text-decoration: underline;
}

.chip[b-az06qlb0fn] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--indigo-600-text);
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.4;
}

.email-accounts-list[b-az06qlb0fn] {
    list-style: none;
    padding: 0;
    margin: 0 0 0.5rem 0;
}

.email-accounts-list li[b-az06qlb0fn] {
    padding: 0.45rem 0;
    border-bottom: 1px solid var(--row-border);
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    font-size: 0.88rem;
}

.email-account-addr[b-az06qlb0fn] {
    font-weight: 500;
    color: var(--text-strong);
    margin-right: auto;
}

.email-accounts-list .link[b-az06qlb0fn] {
    background: transparent;
    border: none;
    color: var(--link);
    cursor: pointer;
    padding: 0;
    font-size: 0.82rem;
}

.email-accounts-list .link:hover[b-az06qlb0fn] {
    text-decoration: underline;
}

.email-accounts-list .link.danger[b-az06qlb0fn] {
    color: var(--danger);
}

.email-accounts-list .link:disabled[b-az06qlb0fn] {
    color: var(--text-muted);
    cursor: default;
    text-decoration: none;
}

.error-inline[b-az06qlb0fn] {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.4rem;
}

/* Ответ «Проверить» — отдельной строкой под своим ящиком. */
.email-accounts-list .mailbox-test-result[b-az06qlb0fn] {
    flex-basis: 100%;
    margin: 0;
}

.email-actions[b-az06qlb0fn] {
    display: flex;
    gap: 0.6rem;
    margin-top: 0.85rem;
}

.email-actions button:not(.primary)[b-az06qlb0fn] {
    padding: 0.55rem 1rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    color: var(--text-body);
    font: inherit;
    cursor: pointer;
}

.email-actions button:not(.primary):hover:not(:disabled)[b-az06qlb0fn] {
    background: var(--surface-2);
}

.email-actions button:disabled[b-az06qlb0fn] {
    opacity: 0.6;
    cursor: not-allowed;
}

.menu-reset[b-az06qlb0fn] {
    margin-right: 0.6rem;
}

/* «Мои входы» — таблица в семь колонок: шире остальных карточек профиля, как блок «Входы» у администратора. */
.prefs-card.sign-ins-card[b-az06qlb0fn] {
    max-width: 72rem;
}

.sign-ins-actions[b-az06qlb0fn] {
    margin-top: 0.85rem;
}

.sign-ins-actions p[b-az06qlb0fn] {
    margin: 0;
}
/* /Components/Pages/Tasks/MyTasks.razor.rz.scp.css */
.head[b-dd05sfc329] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem 0.9rem;
    margin-bottom: 0.6rem;
    flex-wrap: wrap;
}

.inline-checkbox[b-dd05sfc329] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-2);
}

.counter[b-dd05sfc329] {
    margin-left: auto;
    color: var(--text-muted);
    font-size: 0.875rem;
}


.seg[b-dd05sfc329] {
    display: inline-flex;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    overflow: hidden;
}

.seg-btn[b-dd05sfc329] {
    padding: 0.35rem 0.6rem;
    border: none;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
    border-right: 1px solid var(--border-strong);
}

.seg-btn:last-child[b-dd05sfc329] {
    border-right: none;
}

.seg-btn.active[b-dd05sfc329] {
    background: var(--accent);
    color: var(--on-accent);
}

.seg-count[b-dd05sfc329] {
    margin-left: 0.2rem;
    font-size: 0.8125rem;
    opacity: 0.75;
}

.dept-filter[b-dd05sfc329] {
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.title-row[b-dd05sfc329] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.title-row h1[b-dd05sfc329] { margin-bottom: 0.5rem; }

/* Отборы одной полосой: на узком экране переносятся, прокрутки нет. */
.filter-band[b-dd05sfc329] { row-gap: 0.4rem; }
.filter-band .counter[b-dd05sfc329] { white-space: nowrap; }

.empty-state[b-dd05sfc329] { display: flex; flex-direction: column; align-items: flex-start; gap: 0.4rem; margin: 0.6rem 0; }
.empty-state p[b-dd05sfc329] { margin: 0; }
/* /Components/Pages/Tasks/TaskAssigneePanel.razor.rz.scp.css */
.assignee[b-jf4qvamh3s] {
    margin: 0;
    font-weight: 500;
}

.field.assignee-actions[b-jf4qvamh3s] {
    flex-direction: row;
    align-items: flex-end;
    gap: 0.5rem;
    flex: 0;
}

.assignee.muted[b-jf4qvamh3s] {
    color: var(--text-muted);
}

.assignee-dept[b-jf4qvamh3s] {
    margin: 0.2rem 0 0;
    color: var(--text-muted);
    font-size: 0.875rem;
}

.candidates[b-jf4qvamh3s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin: 0.5rem 0;
}

.cand-label[b-jf4qvamh3s] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.candidates .chip[b-jf4qvamh3s] {
    display: inline-block;
    background: var(--accent-soft);
    color: var(--indigo-600-text);
    border-radius: 999px;
    padding: 0.1rem 0.6rem;
    font-size: 0.8125rem;
}

.pool-actions[b-jf4qvamh3s] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}

.pool-actions select[b-jf4qvamh3s] {
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
}

.pool-actions .muted[b-jf4qvamh3s] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.dialog-note[b-jf4qvamh3s] {
    margin: 0 0 0.75rem 0;
    color: var(--text-body);
}

.error.dialog-error[b-jf4qvamh3s] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 0.75rem 0 0 0;
}
/* /Components/Pages/Tasks/TaskCreate.razor.rz.scp.css */
.crumbs[b-6thy9rhs55] {
    color: var(--text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

.card[b-6thy9rhs55] {
    max-width: 800px;
}

.row[b-6thy9rhs55] {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.field[b-6thy9rhs55] {
    flex: 1;
    min-width: 220px;
    display: flex;
    flex-direction: column;
    margin-bottom: 0.75rem;
}

.field label[b-6thy9rhs55] {
    margin-bottom: 0.25rem;
}

.field[b-6thy9rhs55]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.field .hint[b-6thy9rhs55] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.3rem;
}

.form-actions[b-6thy9rhs55] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.error[b-6thy9rhs55] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

.seg[b-6thy9rhs55] {
    display: flex;
    gap: 1.25rem;
    align-items: center;
}

.seg-opt[b-6thy9rhs55] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
}

.check-list[b-6thy9rhs55] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 220px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
}

.chk[b-6thy9rhs55] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.875rem;
}
/* /Components/Pages/Tasks/TaskDetail.razor.rz.scp.css */
.crumbs[b-42ehr1jeps] {
    color: var(--text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

.error[b-42ehr1jeps] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.info[b-42ehr1jeps] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}
/* /Components/Pages/Tasks/TaskHeader.razor.rz.scp.css */
.header[b-vn2rjhbayl] {
    margin-bottom: 1.25rem;
}

/* Слева — название с клиентом и плашки, справа — срок и кнопки; не помещаются в ряд — правая часть уходит под левую. */
.top[b-vn2rjhbayl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1.5rem;
    flex-wrap: wrap;
}

.title[b-vn2rjhbayl] {
    min-width: 0;
    flex: 1 1 22rem;
}

.title h1[b-vn2rjhbayl] {
    margin: 0;
    font-size: 24px;
    overflow-wrap: anywhere;
}

.title h1 .dash[b-vn2rjhbayl] {
    color: var(--text-muted);
    font-weight: 400;
}

.title h1 .client[b-vn2rjhbayl] {
    font-weight: 500;
}

.title h1 a.client[b-vn2rjhbayl] {
    color: inherit;
    text-decoration: none;
}

.title h1 a.client:hover[b-vn2rjhbayl] {
    color: var(--link);
    text-decoration: underline;
}

.title-edit[b-vn2rjhbayl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.title-input[b-vn2rjhbayl] {
    flex: 1;
    min-width: 260px;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    font-size: 1.5rem;
    font-weight: 600;
}

.title-input:focus[b-vn2rjhbayl] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.sub[b-vn2rjhbayl] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.625rem;
    margin: 0.25rem 0 0;
    color: var(--text-2);
    font-size: 13.5px;
}

.sub span + span[b-vn2rjhbayl]::before {
    content: "·";
    margin-right: 0.625rem;
    color: var(--text-muted);
}

.status-row[b-vn2rjhbayl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.625rem;
    flex-wrap: wrap;
}

.status-badge[b-vn2rjhbayl],
.pool-pill[b-vn2rjhbayl] {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    font-size: 0.875rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.status-badge.status-planned[b-vn2rjhbayl]    { background: var(--accent-soft-strong); color: var(--accent-text-strong); border-color: var(--accent-border); }
.status-badge.status-inprogress[b-vn2rjhbayl] { background: var(--warn-soft-strong); color: var(--warn-strong); border-color: var(--warn-border); }
.status-badge.status-done[b-vn2rjhbayl]       { background: var(--emerald-100-bg); color: var(--emerald-800-text); border-color: var(--emerald-350-border); }
.status-badge.status-cancelled[b-vn2rjhbayl]  { background: var(--danger-soft-strong); color: var(--danger-strong); border-color: var(--danger-border-strong); }

.pool-pill[b-vn2rjhbayl] {
    background: var(--surface-2);
    color: var(--text-2);
    border-color: var(--border);
}

.side[b-vn2rjhbayl] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.625rem;
}

/* Срок — самая заметная строка справа: слова и цвета у открытой задачи, подпись «Срок» / «Установка» над значением. */
.due[b-vn2rjhbayl] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.125rem 0.75rem;
}

.due-label[b-vn2rjhbayl] {
    flex-basis: 100%;
    text-align: right;
    color: var(--text-2);
    font-size: 12px;
    line-height: 1.2;
}

.due-value[b-vn2rjhbayl] {
    color: var(--text-strong);
    font-size: 20px;
    font-weight: 650;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.due-value[b-vn2rjhbayl]  strong {
    font-weight: 650;
}

.due-value .none[b-vn2rjhbayl] {
    color: var(--text-muted);
}

.due-value.no-slot[b-vn2rjhbayl] {
    color: var(--warn);
}

.due-note[b-vn2rjhbayl] {
    color: var(--text-2);
    font-size: 13px;
    max-width: 22rem;
    text-align: right;
}

.due-edit[b-vn2rjhbayl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.actions[b-vn2rjhbayl] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.refusal[b-vn2rjhbayl] {
    color: var(--text-muted);
    font-size: 0.875rem;
    max-width: 22rem;
    text-align: right;
}

/* На телефоне — столбиком, всё по левому краю; «⋯» остаётся у конца ряда кнопок. */
@media (max-width: 640px) {
    .top[b-vn2rjhbayl] {
        flex-direction: column;
        align-items: stretch;
    }

    .title[b-vn2rjhbayl] {
        flex-basis: auto;
    }

    .side[b-vn2rjhbayl] {
        align-items: stretch;
    }

    /* «⋯» — у правого края ряда: его меню открывается влево и не уходит за экран. */
    .actions[b-vn2rjhbayl] >  .more-menu {
        margin-left: auto;
    }

    .due[b-vn2rjhbayl],
    .due-edit[b-vn2rjhbayl],
    .actions[b-vn2rjhbayl] {
        justify-content: flex-start;
    }

    .due-label[b-vn2rjhbayl],
    .due-note[b-vn2rjhbayl],
    .refusal[b-vn2rjhbayl] {
        text-align: left;
    }
}
/* /Components/Shared/ActivityFeed.razor.rz.scp.css */
.muted[b-eanqem2x87] {
    color: var(--text-muted);
    font-style: italic;
}

.afeed-composer[b-eanqem2x87] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: stretch;
    margin-bottom: 0.75rem;
}

.afeed-send[b-eanqem2x87] {
    align-self: flex-end;
    padding: 0.45rem 0.9rem;
    border: none;
    border-radius: 6px;
    background: var(--indigo-400-bg);
    color: var(--on-accent);
    cursor: pointer;
    white-space: nowrap;
}

.afeed-send:disabled[b-eanqem2x87] {
    background: var(--slate-200-bg);
    cursor: default;
}

.afeed-composer-error[b-eanqem2x87] {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-bottom: 0.75rem;
}

.afeed-filters[b-eanqem2x87] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.9rem;
}

.chip-system.on[b-eanqem2x87] {
    background: var(--surface-2);
    border-color: var(--slate-350-border);
    color: var(--text-body);
}

.afeed[b-eanqem2x87] {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

.afeed[b-eanqem2x87]::before {
    content: "";
    position: absolute;
    left: 11px;
    top: 6px;
    bottom: 6px;
    width: 2px;
    background: var(--surface-3);
}

.afeed-item[b-eanqem2x87] {
    position: relative;
    padding: 0.5rem 0 0.75rem 2rem;
}

.afeed-item:last-child[b-eanqem2x87] {
    padding-bottom: 0.2rem;
}

.afeed-item.compact[b-eanqem2x87] {
    padding-top: 0.35rem;
    padding-bottom: 0.45rem;
}

.afeed-dot[b-eanqem2x87] {
    position: absolute;
    left: 6px;
    top: 0.6rem;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--accent);
    border: 2px solid var(--white-border);
    box-shadow: 0 0 0 1px var(--accent);
}

.afeed-item.event-comment .afeed-dot[b-eanqem2x87] { background: var(--event-blue); box-shadow: 0 0 0 1px var(--event-blue); }
.afeed-item.event-comment-system .afeed-dot[b-eanqem2x87] { background: var(--event-gray); box-shadow: 0 0 0 1px var(--event-gray); }
.afeed-item.event-comment-deleted .afeed-dot[b-eanqem2x87] { background: var(--event-gray); box-shadow: 0 0 0 1px var(--event-gray); }
.afeed-item.event-created .afeed-dot[b-eanqem2x87] { background: var(--event-indigo); box-shadow: 0 0 0 1px var(--event-indigo); }
.afeed-item.event-stagechanged .afeed-dot[b-eanqem2x87] { background: var(--event-blue); box-shadow: 0 0 0 1px var(--event-blue); }
.afeed-item.event-closed .afeed-dot[b-eanqem2x87] { background: var(--event-green); box-shadow: 0 0 0 1px var(--event-green); }
.afeed-item.event-reopened .afeed-dot[b-eanqem2x87] { background: var(--event-amber); box-shadow: 0 0 0 1px var(--event-amber); }
.afeed-item.event-claimed .afeed-dot[b-eanqem2x87] { background: var(--event-cyan); box-shadow: 0 0 0 1px var(--event-cyan); }
.afeed-item.event-released .afeed-dot[b-eanqem2x87] { background: var(--event-slate); box-shadow: 0 0 0 1px var(--event-slate); }
.afeed-item.event-reassigned .afeed-dot[b-eanqem2x87] { background: var(--event-purple); box-shadow: 0 0 0 1px var(--event-purple); }
.afeed-item.event-lineadded .afeed-dot[b-eanqem2x87] { background: var(--event-aqua); box-shadow: 0 0 0 1px var(--event-aqua); }
.afeed-item.event-lineupdated .afeed-dot[b-eanqem2x87] { background: var(--event-teal); box-shadow: 0 0 0 1px var(--event-teal); }
.afeed-item.event-lineremoved .afeed-dot[b-eanqem2x87] { background: var(--event-slate-light); box-shadow: 0 0 0 1px var(--event-slate-light); }
.afeed-item.event-requiredfieldsfilled .afeed-dot[b-eanqem2x87] { background: var(--event-violet); box-shadow: 0 0 0 1px var(--event-violet); }
.afeed-item.event-call-incoming .afeed-dot[b-eanqem2x87] { background: var(--event-green); box-shadow: 0 0 0 1px var(--event-green); }
.afeed-item.event-call-outgoing .afeed-dot[b-eanqem2x87] { background: var(--event-sky); box-shadow: 0 0 0 1px var(--event-sky); }
.afeed-item.event-task-created .afeed-dot[b-eanqem2x87] { background: var(--event-amber); box-shadow: 0 0 0 1px var(--event-amber); }
.afeed-item.event-task-done .afeed-dot[b-eanqem2x87] { background: var(--event-green); box-shadow: 0 0 0 1px var(--event-green); }
.afeed-item.event-task-cancelled .afeed-dot[b-eanqem2x87] { background: var(--event-slate-light); box-shadow: 0 0 0 1px var(--event-slate-light); }
.afeed-item.event-document .afeed-dot[b-eanqem2x87] { background: var(--event-pink); box-shadow: 0 0 0 1px var(--event-pink); }

.afeed-head[b-eanqem2x87] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
    font-size: 0.875rem;
}

.afeed-title[b-eanqem2x87] {
    font-weight: 600;
    color: var(--text-strong);
}

.afeed-inline[b-eanqem2x87] {
    color: var(--text-body);
}

/* Автор и время переносятся по словам, только если не помещаются в строку целиком (на телефоне): рядом с заголовком
   или строкой ниже они стоят одним куском. */
.afeed-meta[b-eanqem2x87] {
    color: var(--text-faint);
    font-size: 0.8125rem;
    margin-left: auto;
    font-variant-numeric: tabular-nums;
}

.afeed-body[b-eanqem2x87] {
    margin-top: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-body);
}

.afeed-comment[b-eanqem2x87] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 6px;
}

.afeed-comment.markdown-body > :first-child[b-eanqem2x87] {
    margin-top: 0;
}

.afeed-comment.markdown-body > :last-child[b-eanqem2x87] {
    margin-bottom: 0;
}

.afeed-comment.markdown-body p[b-eanqem2x87] {
    margin: 0.4rem 0;
}

.afeed-comment.markdown-body ul[b-eanqem2x87],
.afeed-comment.markdown-body ol[b-eanqem2x87] {
    margin: 0.4rem 0;
    padding-left: 1.4rem;
}

.afeed-comment.markdown-body a[b-eanqem2x87] {
    color: var(--link);
}

.afeed-comment.markdown-body img[b-eanqem2x87] {
    max-width: 100%;
    border-radius: 6px;
}

.afeed-comment.markdown-body code[b-eanqem2x87] {
    background: var(--accent-soft);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
    font-size: 0.85em;
}

.afeed-comment.markdown-body pre[b-eanqem2x87] {
    background: var(--surface-inverse);
    color: var(--on-accent);
    padding: 0.6rem 0.8rem;
    border-radius: 6px;
    overflow-x: auto;
}

.afeed-comment.markdown-body pre code[b-eanqem2x87] {
    background: none;
    padding: 0;
    color: inherit;
}

.afeed-comment.markdown-body blockquote[b-eanqem2x87] {
    margin: 0.4rem 0;
    padding-left: 0.8rem;
    border-left: 3px solid var(--border-strong);
    color: var(--text-muted);
}

.afeed-call[b-eanqem2x87] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

.afeed-call .phone[b-eanqem2x87] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    white-space: nowrap;
}

.afeed-body audio[b-eanqem2x87] {
    margin-top: 0.4rem;
    height: 32px;
    max-width: 320px;
}

.afeed-recording-deleted[b-eanqem2x87] {
    margin-top: 0.4rem;
    font-size: 0.85rem;
}

.afeed-recording-locked[b-eanqem2x87] {
    position: relative;
    margin-top: 0.4rem;
    font-size: 0.85rem;
}

/* Подсказка «кто слушает» — от начала строки ленты и не шире её: значок стоит не у края, и текст своей ширины ушёл бы
   на телефоне за экран. */
.afeed-recording-locked[b-eanqem2x87]  .recording-locked {
    position: static;
}

.afeed-recording-locked[b-eanqem2x87]  .action-hint-pop {
    width: auto;
    max-width: min(22rem, 100%);
}

.afeed-task[b-eanqem2x87],
.afeed-ticket[b-eanqem2x87] {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    flex-wrap: wrap;
}

.afeed-clickable[b-eanqem2x87] {
    cursor: pointer;
}

.afeed-task-title[b-eanqem2x87] {
    text-decoration: underline;
    text-decoration-color: var(--gray-150-text);
    text-underline-offset: 2px;
}

.afeed-clickable:hover .afeed-task-title[b-eanqem2x87] {
    text-decoration-color: var(--indigo-400-text);
}

.task-status[b-eanqem2x87] {
    font-size: 0.75rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    border: 1px solid transparent;
}

.task-status.status-planned[b-eanqem2x87] { background: var(--warn-soft-strong); color: var(--warn-strong); }
.task-status.status-inprogress[b-eanqem2x87] { background: var(--accent-soft-strong); color: var(--accent-text-strong); }
.task-status.status-done[b-eanqem2x87] { background: var(--ok-soft-strong); color: var(--ok-strong); }
.task-status.status-cancelled[b-eanqem2x87] { background: var(--surface-2); color: var(--text-muted); }

.afeed-doc[b-eanqem2x87] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

.afeed-doc a[b-eanqem2x87] {
    font-size: 0.8125rem;
}

.afeed-email[b-eanqem2x87] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

.afeed-email-subject[b-eanqem2x87] {
    font-weight: 500;
}

.afeed-ticket-subject[b-eanqem2x87] {
    font-weight: 600;
}

.afeed-ticket:hover .afeed-task-title[b-eanqem2x87] {
    text-decoration-color: var(--indigo-400-text);
}

/* Удалённый комментарий — только у держателя права на просмотр удалённых: над текстом «Комментарий удалён — ФИО,
   когда», сам текст — серым на пунктирной рамке. */
.afeed-comment-deleted[b-eanqem2x87] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.afeed-item.event-comment-deleted .afeed-comment[b-eanqem2x87] {
    background: var(--surface-2);
    border-style: dashed;
    border-color: var(--border-strong);
    color: var(--text-muted);
}

.afeed-item.comment-anchored .afeed-content[b-eanqem2x87] {
    background: var(--warn-softer);
    box-shadow: 0 0 0 2px var(--warn-border);
    border-radius: 6px;
    transition: background .3s, box-shadow .3s;
}
/* /Components/Shared/AddLeadEmailForm.razor.rz.scp.css */
/* Форма добавления адреса — общая для карточки лида и рабочего места обзвона.
   Поля адреса и подписи — в LeadContactFields. */

.add-email-toggle[b-wggzzddrlu] {
    align-self: flex-start;
    background: none;
    border: 1px dashed var(--blue-100-border);
    color: var(--indigo-600-text);
    border-radius: 6px;
    padding: 0.35rem 0.75rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.add-email-toggle:hover:not(:disabled)[b-wggzzddrlu] {
    background: var(--accent-soft);
    border-style: solid;
}

.add-email-toggle:disabled[b-wggzzddrlu] {
    opacity: 0.5;
    cursor: default;
}

.add-email-row[b-wggzzddrlu] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.error-inline[b-wggzzddrlu] {
    color: var(--danger);
    font-size: 0.8125rem;
}
/* /Components/Shared/AddLeadPhoneForm.razor.rz.scp.css */
/* Форма добавления номера — общая для карточки лида и рабочего места обзвона.
   Поля номера и подписи — в LeadContactFields. */

.add-phone-toggle[b-80uzjnqpnj] {
    align-self: flex-start;
    background: none;
    border: 1px dashed var(--blue-100-border);
    color: var(--indigo-600-text);
    border-radius: 6px;
    padding: 0.35rem 0.75rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.add-phone-toggle:hover:not(:disabled)[b-80uzjnqpnj] {
    background: var(--accent-soft);
    border-style: solid;
}

.add-phone-toggle:disabled[b-80uzjnqpnj] {
    opacity: 0.5;
    cursor: default;
}

.add-phone-row[b-80uzjnqpnj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.error-inline[b-80uzjnqpnj] {
    color: var(--danger);
    font-size: 0.8125rem;
}
/* /Components/Shared/AttachmentList.razor.rz.scp.css */
.attachment-list[b-u31b6j39fe] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.thumbs[b-u31b6j39fe],
.files[b-u31b6j39fe] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.thumb[b-u31b6j39fe] {
    display: flex;
    flex-direction: column;
    width: 9rem;
    padding: 0;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: .4rem;
    overflow: hidden;
    cursor: zoom-in;
    font: inherit;
    text-align: left;
}

.thumb:hover[b-u31b6j39fe],
.thumb:focus-visible[b-u31b6j39fe] {
    border-color: var(--blue-600-border);
}

/* Скриншот окна узнаётся по верху — заголовку и меню, поэтому миниатюра показывает его, а не середину. */
.thumb img[b-u31b6j39fe] {
    display: block;
    width: 100%;
    height: 6rem;
    object-fit: cover;
    object-position: top;
    background: var(--surface-2);
}

.thumb-failed[b-u31b6j39fe] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 6rem;
    padding: 0 .5rem;
    background: var(--surface-2);
    font-size: .75rem;
    color: var(--text-muted);
    text-align: center;
}

.thumb-name[b-u31b6j39fe] {
    padding: .2rem .45rem;
    font-size: .75rem;
    color: var(--text-body);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.file[b-u31b6j39fe] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .5rem;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: .4rem;
    font-size: .85rem;
    text-decoration: none;
    color: var(--blue-600-text);
}

button.file[b-u31b6j39fe] {
    font: inherit;
    font-size: .85rem;
    cursor: pointer;
}

.file:hover[b-u31b6j39fe] {
    background: var(--accent-softer);
    border-color: var(--blue-600-border);
}

.file-size[b-u31b6j39fe] {
    color: var(--text-muted);
}
/* /Components/Shared/AttachmentPicker.razor.rz.scp.css */
/* Выбор файлов к комментарию или заметке обращения: кнопка и выбранные файлы плашками. */

.attach-row[b-d1jpq8tmz6] {
    margin-top: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}


.pending-files[b-d1jpq8tmz6] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pending-files li[b-d1jpq8tmz6] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
    color: var(--text-body);
}

.pending-files .att-size[b-d1jpq8tmz6] {
    color: var(--text-faint);
    font-size: 0.75rem;
}

.link-btn[b-d1jpq8tmz6] {
    border: none;
    background: none;
    color: var(--red-500-text);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 0 0.2rem;
}

.link-btn:hover:not(:disabled)[b-d1jpq8tmz6] {
    color: var(--danger-strong);
}
/* /Components/Shared/AuditRetentionNote.razor.rz.scp.css */
.audit-retention-note[b-uk43qm0r7w] {
    color: var(--text-muted);
    font-size: .82rem;
    margin: .25rem 0 .75rem 0;
    max-width: 72ch;
}
/* /Components/Shared/CallAttemptHistory.razor.rz.scp.css */
.call-history-list[b-j8vwlg2xcl] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.call-history-list li[b-j8vwlg2xcl] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.2rem 0.5rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--border);
    font-size: 0.9rem;
    min-width: 0;
}

.call-history-list li:last-child[b-j8vwlg2xcl] {
    border-bottom: none;
}

.call-history-list li > span[b-j8vwlg2xcl] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ch-date[b-j8vwlg2xcl] {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ch-outcome[b-j8vwlg2xcl] { font-weight: 600; }
.ch-refused[b-j8vwlg2xcl],
.ch-donotcall[b-j8vwlg2xcl] { color: var(--danger); }
.ch-interested[b-j8vwlg2xcl],
.ch-reached[b-j8vwlg2xcl] { color: var(--emerald-750-text); }
.ch-callback[b-j8vwlg2xcl] { color: var(--accent-text); }
.ch-noanswer[b-j8vwlg2xcl] { color: var(--text-muted); }

.ch-reason[b-j8vwlg2xcl] { color: var(--warn); }
.ch-base[b-j8vwlg2xcl] { color: var(--text-2); }
.ch-comment[b-j8vwlg2xcl] { color: var(--text-body); font-style: italic; }
.ch-op[b-j8vwlg2xcl] { color: var(--text-muted); }

.ch-scenario[b-j8vwlg2xcl] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--indigo-500-text);
    font-size: 0.75rem;
    white-space: nowrap;
}

.ch-more[b-j8vwlg2xcl] {
    display: inline-block;
    margin-top: 0.3rem;
    font-size: 0.85rem;
}
/* /Components/Shared/CallButton.razor.rz.scp.css */
.call-button[b-bztiocmye0] {
    padding: 0.3rem 0.7rem;
    font-size: 0.9rem;
    background: var(--blue-450-bg);
    color: var(--on-accent);
    border: 1px solid var(--blue-450-border);
    border-radius: 4px;
    cursor: pointer;
}

.call-button:hover:not(:disabled)[b-bztiocmye0] {
    background: var(--blue-550-bg);
    border-color: var(--blue-550-border);
}

.call-button:disabled[b-bztiocmye0] {
    opacity: 0.7;
    cursor: progress;
}
/* /Components/Shared/CallRecordingCell.razor.rz.scp.css */
audio[b-mu50kxibtp] {
    height: 32px;
    max-width: 240px;
}

.muted[b-mu50kxibtp] {
    color: var(--gray-450-text);
}

.error[b-mu50kxibtp] {
    color: var(--red-550-text);
    text-decoration: underline dotted;
    cursor: help;
}

.retry[b-mu50kxibtp] {
    color: var(--gray-450-text);
    text-decoration: underline dotted;
    cursor: help;
}
/* /Components/Shared/CallTable.razor.rz.scp.css */
.calls-table td.phone[b-g0auly6mro] {
    font-family: monospace;
    white-space: nowrap;
}

.calls-table .muted[b-g0auly6mro] {
    color: var(--gray-450-text);
}
/* /Components/Shared/CallTargetAddDialog.razor.rz.scp.css */
/* То, что меняет решение «добавлять ли», — заметно, но не ошибка: окно остаётся, человек решает сам. */
.cta-warn[b-j5f9yrz83r] {
    background: var(--warn-softer);
    border: 1px solid var(--yellow-250-border-2);
    color: var(--yellow-750-text);
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    margin: 0.5rem 0;
}
.cta-warn ul[b-j5f9yrz83r] { margin: 0.3rem 0 0.3rem 1.1rem; padding: 0; }
.cta-warn .inline-checkbox[b-j5f9yrz83r] { display: flex; gap: 0.4rem; align-items: flex-start; margin-top: 0.4rem; }

.cta-where[b-j5f9yrz83r] { border: none; padding: 0; margin: 0.5rem 0; }
.cta-where legend[b-j5f9yrz83r] { font-weight: 600; margin-bottom: 0.3rem; }
.cta-option[b-j5f9yrz83r] { display: flex; gap: 0.5rem; align-items: flex-start; margin: 0.35rem 0; font-weight: normal; }
.cta-option input[b-j5f9yrz83r] { margin-top: 0.25rem; }
.cta-base[b-j5f9yrz83r] { margin: 0.2rem 0 0 1.6rem; max-width: calc(100% - 1.6rem); }

.cta-note[b-j5f9yrz83r] { color: var(--text-body); font-size: 0.9rem; }
/* /Components/Shared/CallTargetImportantToggle.razor.rz.scp.css */
/* Звёздочка без рамки и фона: в строке таблицы она стоит перед названием и не должна спорить
   с кнопками действий; выключенная — бледная, включённая — янтарная, как акцент строки. */
.important-toggle[b-2o56anpwup] {
    background: none; border: none; padding: 0 .15rem;
    font-size: 1.05rem; line-height: 1; cursor: pointer;
    color: var(--text-faint);
}
.important-toggle:hover:not(:disabled)[b-2o56anpwup] { color: var(--amber-550-text); background: none; border-color: transparent; }
.important-toggle.on[b-2o56anpwup] { color: var(--amber-550-text); }
.important-toggle:disabled[b-2o56anpwup] { opacity: .5; cursor: default; }
/* /Components/Shared/CallTargetMoveDialog.razor.rz.scp.css */
/* Часть выбранных не вернётся в базу — заметно, но не ошибка: остальные уйдут. */
.ctm-warn[b-o27s7pzbpc] {
    background: var(--warn-softer);
    border: 1px solid var(--yellow-250-border-2);
    color: var(--yellow-750-text);
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
}
/* /Components/Shared/CallToast.razor.rz.scp.css */
/* Под шапкой (56 px), а не поверх неё: пока звонит телефон, колокольчик, «?», смена и «Выйти» нажимаются. Ширина —
   до 360 px и не шире экрана телефона; пустое место колонки рядом с плашкой щелчки пропускает к странице. */
.call-toast-host[b-k2cshb3ij5] {
    position: fixed;
    top: calc(56px + 0.75rem);
    right: 1rem;
    width: min(360px, calc(100vw - 2rem));
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    z-index: 1100;
    pointer-events: none;
}

.call-toast-host > *[b-k2cshb3ij5] {
    pointer-events: auto;
}

.call-toast[b-k2cshb3ij5] {
    background: var(--surface);
    border: 1px solid var(--gray-200-border);
    border-left: 4px solid var(--blue-450-border);
    border-radius: 6px;
    box-shadow: 0 4px 16px var(--shade-15);
    padding: 0.75rem 1rem;
    position: relative;
    animation: call-toast-in-b-k2cshb3ij5 200ms ease-out;
}

@keyframes call-toast-in-b-k2cshb3ij5 {
    from { transform: translateX(20px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.call-toast[b-k2cshb3ij5] {
    width: 100%;
    box-sizing: border-box;
}

.call-toast-controls[b-k2cshb3ij5] {
    position: absolute;
    top: 0.2rem;
    right: 0.35rem;
    display: flex;
    gap: 0.1rem;
}

.call-toast-controls button[b-k2cshb3ij5] {
    background: none;
    border: none;
    font-size: 1.2rem;
    line-height: 1;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border-radius: var(--r-sm);
    cursor: pointer;
    color: var(--gray-450-text);
}

.call-toast-controls button:hover[b-k2cshb3ij5] {
    background: var(--surface-2);
    color: var(--text);
}

.call-toast-title[b-k2cshb3ij5] {
    font-weight: 600;
    margin-bottom: 0.25rem;
    margin-right: 3.4rem;
    color: var(--blue-450-text);
}

/* Свёрнутая карточка: звонок ещё идёт — имя и мигающая точка, щелчок разворачивает. */
.call-chip[b-k2cshb3ij5] {
    display: flex;
    align-items: center;
    max-width: 100%;
    background: var(--surface);
    border: 1px solid var(--blue-450-border);
    border-radius: 999px;
    box-shadow: 0 4px 16px var(--shade-15);
    animation: call-toast-in-b-k2cshb3ij5 200ms ease-out;
}

.call-chip-open[b-k2cshb3ij5] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
    padding: 0.35rem 0.4rem 0.35rem 0.8rem;
    background: none;
    border: none;
    border-radius: 999px 0 0 999px;
    color: var(--blue-450-text);
    font-weight: 500;
    cursor: pointer;
}

.call-chip-open:hover:not(:disabled)[b-k2cshb3ij5] {
    background: var(--surface-2);
}

.call-chip-text[b-k2cshb3ij5] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.call-chip-dot[b-k2cshb3ij5] {
    flex: 0 0 auto;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--green-350-bg);
    animation: pulse-b-k2cshb3ij5 1.2s infinite;
}

.call-chip-close[b-k2cshb3ij5] {
    flex: 0 0 auto;
    background: none;
    border: none;
    border-radius: 0 999px 999px 0;
    padding: 0.35rem 0.7rem 0.35rem 0.35rem;
    font-size: 1.1rem;
    line-height: 1;
    color: var(--gray-450-text);
    cursor: pointer;
}

.call-chip-close:hover:not(:disabled)[b-k2cshb3ij5] {
    background: var(--surface-2);
    color: var(--text);
}

.call-toast-name[b-k2cshb3ij5] {
    font-size: 1rem;
    font-weight: 500;
}

.call-toast-phone[b-k2cshb3ij5] {
    color: var(--gray-600-text);
    font-size: 0.9rem;
    margin-top: 0.15rem;
    font-family: monospace;
    white-space: nowrap;
}

.call-toast-actions[b-k2cshb3ij5] {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

/* Ссылки в виде кнопок: обычный переход, Ctrl+щелчок и колёсико — новая вкладка. */
.call-toast-actions a[b-k2cshb3ij5] {
    flex: 0 0 auto;
    display: inline-block;
    padding: 0.3rem 0.7rem;
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1.3;
    border-radius: 4px;
    border: 1px solid transparent;
    text-decoration: none;
}

.call-toast-actions a:focus-visible[b-k2cshb3ij5] {
    outline: none;
    box-shadow: var(--ring);
}

.call-toast-actions a.primary[b-k2cshb3ij5] {
    background: var(--blue-450-bg);
    color: var(--on-accent);
    border-color: var(--blue-450-border);
}

.call-toast-actions a.primary:not(.call-toast-target):hover[b-k2cshb3ij5] {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
}

.call-toast-actions a.secondary[b-k2cshb3ij5] {
    background: var(--surface);
    color: var(--blue-450-text);
    border-color: var(--blue-450-border);
}

.call-toast-actions a.secondary:hover[b-k2cshb3ij5] {
    background: var(--surface-2);
}

/* «К звонку» — экран обзвона, а не карточка: другой цвет; длинное имя базы не раздвигает toast. */
.call-toast-actions a.call-toast-target[b-k2cshb3ij5] {
    background: var(--green-650-bg);
    border-color: var(--green-650-border);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.call-toast-note[b-k2cshb3ij5] {
    margin-top: 0.4rem;
    font-size: 0.8rem;
    color: var(--yellow-750-text-2);
}

/* Полоса — всегда одна строка высотой --call-bar-h: на столько же, пока она видна, укорачивается страница (app.css),
   и полоса ничего не закрывает. Длинное имя — с многоточием, ссылки, не влезшие на телефоне, листаются вбок. */
.active-call-bar[b-k2cshb3ij5] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--call-bar-h);
    box-sizing: border-box;
    background: var(--blue-650-bg);
    color: var(--on-accent);
    padding: 0 1rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.9rem;
    white-space: nowrap;
    z-index: 1090;
    box-shadow: 0 -2px 8px var(--shade-20);
    transition: background-color 200ms ease;
}

.active-call-text[b-k2cshb3ij5] {
    flex: 0 1 auto;
    min-width: 3rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.active-call-bar.finished[b-k2cshb3ij5] {
    background: var(--slate-650-bg);
}

.active-call-bar a[b-k2cshb3ij5] {
    color: var(--on-accent);
    text-decoration: underline;
}

.active-call-duration[b-k2cshb3ij5] {
    font-variant-numeric: tabular-nums;
    opacity: 0.85;
}

.active-call-actions[b-k2cshb3ij5] {
    margin-left: auto;
    display: flex;
    gap: 0.8rem;
    align-items: center;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.active-call-action[b-k2cshb3ij5] {
    font-weight: 500;
    white-space: nowrap;
}

.active-call-note[b-k2cshb3ij5] {
    opacity: 0.85;
    font-size: 0.85rem;
}

.active-call-dot[b-k2cshb3ij5] {
    flex: 0 0 auto;
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--green-350-bg);
    animation: pulse-b-k2cshb3ij5 1.2s infinite;
}

.active-call-bar.finished .active-call-dot[b-k2cshb3ij5] {
    background: var(--slate-200-bg);
    animation: none;
}

.active-call-close[b-k2cshb3ij5] {
    flex: 0 0 auto;
    margin-left: auto;
    background: none;
    border: none;
    color: var(--on-accent);
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.25rem;
    opacity: 0.8;
}

.active-call-close:hover[b-k2cshb3ij5] {
    opacity: 1;
}

@keyframes pulse-b-k2cshb3ij5 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* Телефон: в одну строку важнее имя клиента — что разговор идёт, говорит мигающая точка. */
@media (max-width: 480px) {
    .active-call-prefix[b-k2cshb3ij5] {
        display: none;
    }
}
/* /Components/Shared/ClientCallButton.razor.rz.scp.css */
/* Кнопка, выбор номера и строка «Звоним…» — одной группой в ряду кнопок экрана. */
.client-call[b-n1aaxage3y] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem 0;
}

.call-icon[b-n1aaxage3y] {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex: none;
}

/* Основной номер один: «Позвонить» и «▾» — одна кнопка из двух половин, между ними — щель в 1 px. */
.call-split[b-n1aaxage3y] {
    display: inline-flex;
}

.call-main[b-n1aaxage3y] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.client-call .call-split[b-n1aaxage3y]  .more-btn.call-arrow {
    width: 32px;
    margin-left: 1px;
    padding: 6px 0;
    justify-content: center;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.client-call .call-split[b-n1aaxage3y]  .more-btn.call-arrow .caret {
    font-size: 1.125em;
    opacity: 1;
}

.client-call[b-n1aaxage3y]  .more-pop {
    width: 360px;
    max-width: calc(100vw - 24px);
}

.cp-sec[b-n1aaxage3y] {
    display: block;
    padding: 8px 10px 4px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-2);
}

/* Пункт — подпись «кто это» слева, номер справа; длинная подпись переносится, номер — нет. Правила пунктов меню
   (одна строка, без переноса) здесь перекрыты: button. — для перевеса над ними. */
.client-call button.cp-item[b-n1aaxage3y] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 12px;
    padding: 7px 10px;
    font-weight: 400;
    white-space: normal;
}

.cp-who[b-n1aaxage3y] {
    font-weight: 500;
    color: var(--text);
    overflow-wrap: anywhere;
}

.cp-who.none[b-n1aaxage3y] {
    font-weight: 400;
    color: var(--text-muted);
}

.cp-val[b-n1aaxage3y] {
    color: var(--text-2);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cp-warn[b-n1aaxage3y] {
    display: block;
    margin: 2px 2px 6px;
    padding: 8px 10px;
    border: 1px solid var(--warn-border);
    border-radius: var(--r);
    background: var(--warn-soft);
    color: var(--warn-strong);
    font-size: 12.5px;
    line-height: 1.4;
    white-space: normal;
}

.cp-foot[b-n1aaxage3y] {
    display: block;
    margin: 4px 4px 2px;
    padding: 8px 6px 4px;
    border-top: 1px solid var(--border);
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--text-2);
    white-space: normal;
}
/* /Components/Shared/ClientContactsCard.razor.rz.scp.css */
/* Части блока идут столбиком с ровным шагом; часть, которой сказать нечего (меток нет, сделок нет), места не
   занимает. */
.client-contacts[b-tqqld0qxo8] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.client-contacts > h2[b-tqqld0qxo8] {
    margin: 0 0 2px;
}

.cl-part:empty[b-tqqld0qxo8] {
    display: none;
}

.cl-part[b-tqqld0qxo8] {
    min-width: 0;
}

.cl-part[b-tqqld0qxo8]  .engagement-badges,
.cl-part[b-tqqld0qxo8]  .call-target-badges {
    margin: 0;
}

.cl-head[b-tqqld0qxo8] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin-top: -4px;
}

.cl-name[b-tqqld0qxo8] {
    font-weight: 600;
    color: var(--text);
    overflow-wrap: anywhere;
}

.cl-name:hover[b-tqqld0qxo8] {
    color: var(--link);
}

.cl-unp[b-tqqld0qxo8],
.cl-muted[b-tqqld0qxo8] {
    color: var(--text-2);
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}

.cl-open[b-tqqld0qxo8] {
    margin-left: auto;
    font-size: 12.5px;
    white-space: nowrap;
    color: var(--link);
}

.cl-line[b-tqqld0qxo8],
.cl-registry[b-tqqld0qxo8],
.cl-inactive[b-tqqld0qxo8] {
    margin: 0;
    font-size: 13px;
    color: var(--text-2);
}

.cl-person[b-tqqld0qxo8] {
    color: var(--text);
    font-weight: 500;
}

.cl-line a[b-tqqld0qxo8] {
    color: var(--link);
}

.cl-inactive[b-tqqld0qxo8] {
    padding: 6px 10px;
    border-radius: 6px;
    background: var(--warn-soft);
    color: var(--warn-strong);
    font-weight: 500;
}

.cl-registry[b-tqqld0qxo8] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
}

.cl-deals[b-tqqld0qxo8]  .lead-deals {
    margin: 0;
}

.cl-deals[b-tqqld0qxo8]  .lead-deals + .lead-deals {
    margin-top: 8px;
}

.cl-deals[b-tqqld0qxo8]  .linked-more {
    margin: 6px 0 0;
    font-size: 12.5px;
}

.cl-notes[b-tqqld0qxo8] {
    font-size: 13px;
}

.cl-notes > summary[b-tqqld0qxo8] {
    cursor: pointer;
    color: var(--link);
}

.cl-notes > p[b-tqqld0qxo8] {
    margin: 6px 0 0;
    color: var(--text-2);
    white-space: pre-line;
    overflow-wrap: anywhere;
}
/* /Components/Shared/ClientEmailCompose.razor.rz.scp.css */
.email-compose[b-bp48adckmw] {
    margin-top: 1rem;
    max-width: 540px;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1rem 1.1rem;
    background: var(--surface-alt);
}

/* Заголовок и «Отмена» / «Отправить» — одной строкой: кнопки видны без прокрутки, как бы ни был длинен текст письма. */
.email-compose-head[b-bp48adckmw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    margin-bottom: 0.75rem;
}

.email-compose-title[b-bp48adckmw] {
    font-weight: 600;
    color: var(--text-strong);
    overflow-wrap: anywhere;
    min-width: 0;
}

.email-compose .field[b-bp48adckmw] {
    margin-bottom: 0.75rem;
    display: flex;
    flex-direction: column;
}

.email-compose .field label[b-bp48adckmw] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--text-body);
    margin-bottom: 0.25rem;
}

.email-compose .field input[b-bp48adckmw],
.email-compose .field select[b-bp48adckmw],
.email-compose .field textarea[b-bp48adckmw] {
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.email-compose .field input:focus[b-bp48adckmw],
.email-compose .field select:focus[b-bp48adckmw],
.email-compose .field textarea:focus[b-bp48adckmw] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.email-compose-actions[b-bp48adckmw] {
    display: flex;
    gap: 0.6rem;
    margin-left: auto;
    flex-shrink: 0;
}

.email-compose .email-quote[b-bp48adckmw] {
    margin-top: 0.4rem;
    font-size: 0.8125rem;
    color: var(--text-body);
}

.email-compose .email-quote summary[b-bp48adckmw] {
    cursor: pointer;
}

.email-compose .email-quote pre[b-bp48adckmw] {
    margin: 0.4rem 0 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    max-height: 12rem;
    overflow: auto;
    font: inherit;
}

.email-compose .attach-row[b-bp48adckmw] {
    flex-direction: row;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--text-body);
    margin-bottom: 0.2rem;
    cursor: pointer;
}

/* Строка лицензии — имя файла и что за лицензия; на телефоне переносится, а не выталкивает форму за край. */
.email-compose .attach-row span[b-bp48adckmw] {
    overflow-wrap: anywhere;
}

.email-compose .field select.lead-emails[b-bp48adckmw] {
    margin-bottom: 0.4rem;
}

.email-compose .field .hint[b-bp48adckmw] {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 0.25rem;
}

.muted[b-bp48adckmw] {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.error[b-bp48adckmw] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}
/* /Components/Shared/ClosedOrgConfirmDialog.razor.rz.scp.css */
.closed-org-strip[b-3pbalpptah] {
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 13.5px;
    font-weight: 500;
    margin: 0 0 0.75rem;
}

.closed-org-strip.liquidating[b-3pbalpptah] {
    background: var(--warn-soft);
    color: var(--warn-strong);
}

.closed-org-strip.dead[b-3pbalpptah] {
    background: var(--danger-soft);
    color: var(--danger-strong);
}

.closed-org-q[b-3pbalpptah] {
    margin: 0 0 0.25rem;
    font-weight: 600;
}

.closed-org-note[b-3pbalpptah],
.closed-org-msg[b-3pbalpptah] {
    margin: 0 0 0.25rem;
    font-size: 13px;
}

.closed-org-msg.err[b-3pbalpptah] {
    color: var(--danger-strong);
}

.closed-org-recheck[b-3pbalpptah] {
    margin-right: auto;
}
/* /Components/Shared/CommentEditedMark.razor.rz.scp.css */
.comment-edited[b-90d5bjsxuu] {
    color: var(--text-faint);
    font-size: 0.75rem;
    font-style: italic;
    white-space: nowrap;
}

/* Держателю права «изменено» открывает прежние версии: та же подпись, но ссылкой. */
button.comment-edited.as-link[b-90d5bjsxuu] {
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-size: 0.75rem;
    font-style: italic;
    color: var(--link);
    text-decoration: underline dotted;
    cursor: pointer;
}

button.comment-edited.as-link:hover[b-90d5bjsxuu] {
    text-decoration: underline;
}
/* /Components/Shared/CommentMenu.razor.rz.scp.css */
/* Значок в строке шапки комментария: ниже обычной кнопки и без рамки, пока на него не навели, — шапка не растёт. */
.comment-menu[b-isawu6oudn] {
    display: inline-flex;
    align-self: center;
}

.comment-menu[b-isawu6oudn]  .more-btn {
    width: 28px;
    padding: 2px 0;
    border-color: transparent;
    background: transparent;
    color: var(--text-muted);
}

.comment-menu[b-isawu6oudn]  .more-btn:hover:not(:disabled),
.comment-menu[b-isawu6oudn]  .more-menu.open .more-btn {
    border-color: var(--border);
    background: var(--surface-2);
    color: var(--text-strong);
}
/* /Components/Shared/CommentReplyButton.razor.rz.scp.css */
.comment-reply-btn[b-90c2rkft91] {
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-size: 0.75rem;
    color: var(--link);
    cursor: pointer;
    white-space: nowrap;
}

.comment-reply-btn:hover[b-90c2rkft91] {
    text-decoration: underline;
}
/* /Components/Shared/CommentReplyPlate.razor.rz.scp.css */
.reply-plate[b-bnuw1odhd4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
    padding: 0.3rem 0.6rem;
    border-left: 3px solid var(--accent);
    border-radius: 4px;
    background: var(--surface-2);
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.reply-text[b-bnuw1odhd4] {
    overflow-wrap: anywhere;
}

.reply-cancel[b-bnuw1odhd4] {
    padding: 0 0.3rem;
    border: none;
    background: none;
    font: inherit;
    font-size: 1.1rem;
    line-height: 1;
    color: var(--text-muted);
    cursor: pointer;
}

.reply-cancel:hover[b-bnuw1odhd4] {
    color: var(--text-strong);
}
/* /Components/Shared/CommentReplyQuote.razor.rz.scp.css */
.comment-quote[b-7h8j8tj3qp] {
    margin: 0 0 0.4rem;
    padding: 0.3rem 0.6rem;
    border-left: 3px solid var(--border-strong);
    border-radius: 4px;
    background: var(--surface);
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.comment-quote.deleted[b-7h8j8tj3qp] {
    font-style: italic;
}

.quote-head[b-7h8j8tj3qp] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
}

.quote-author[b-7h8j8tj3qp] {
    font-weight: 600;
    color: var(--text-strong);
}

.quote-request[b-7h8j8tj3qp],
.quote-time[b-7h8j8tj3qp] {
    color: var(--text-faint);
    font-size: 0.75rem;
}

.quote-jump[b-7h8j8tj3qp] {
    margin-left: auto;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    font-size: 0.75rem;
    color: var(--link);
    cursor: pointer;
}

.quote-jump:hover[b-7h8j8tj3qp] {
    text-decoration: underline;
}

.quote-text[b-7h8j8tj3qp] {
    overflow-wrap: anywhere;
}
/* /Components/Shared/CommentsThread.razor.rz.scp.css */
.comments-thread[b-mpp0xw6gmz] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.add-form[b-mpp0xw6gmz] {
    margin-top: 0.5rem;
}

.add-form textarea[b-mpp0xw6gmz] {
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
    resize: vertical;
    box-sizing: border-box;
}

.add-form textarea:focus[b-mpp0xw6gmz] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.add-form .actions[b-mpp0xw6gmz] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.5rem;
}

.add-form button.primary[b-mpp0xw6gmz] {
    padding: 0.45rem 0.875rem;
    border: none;
    border-radius: 6px;
    background: var(--accent);
    color: var(--on-accent);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}

.add-form button.primary:hover:not(:disabled)[b-mpp0xw6gmz] {
    background: var(--accent-hover);
}

.add-form button.primary:disabled[b-mpp0xw6gmz] {
    opacity: 0.5;
    cursor: not-allowed;
}

.muted[b-mpp0xw6gmz] {
    color: var(--text-muted);
    font-style: italic;
    margin: 0;
}

.list[b-mpp0xw6gmz] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.comment[b-mpp0xw6gmz] {
    border-radius: 8px;
    padding: 0.55rem 0.8rem;
}

.comment.other[b-mpp0xw6gmz] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-left: 3px solid var(--slate-350-border);
}

.comment.mine[b-mpp0xw6gmz] {
    background: var(--accent-soft);
    border: 1px solid var(--accent-soft-border);
    border-left: 3px solid var(--accent);
}

.comment.system[b-mpp0xw6gmz] {
    background: var(--warn-softer);
    border: 1px solid var(--yellow-250-border);
    border-left: 3px solid var(--warn-solid);
}

.comment.system .body[b-mpp0xw6gmz] {
    color: var(--orange-750-text);
    font-size: 0.875rem;
    font-style: italic;
}

.comment.mine .author.own[b-mpp0xw6gmz] {
    color: var(--accent-text);
}

.system-marker[b-mpp0xw6gmz] {
    color: var(--warn);
    margin-right: 0.4rem;
    font-size: 0.875rem;
}

.head[b-mpp0xw6gmz] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.25rem;
}

.head .author[b-mpp0xw6gmz] {
    font-weight: 600;
    color: var(--text-strong);
    font-size: 0.875rem;
}

.head .time[b-mpp0xw6gmz] {
    color: var(--text-faint);
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.body[b-mpp0xw6gmz] {
    color: var(--text-body);
    font-size: 0.9375rem;
    white-space: pre-wrap;
}

/* Отрендеренный markdown — это уже HTML, pre-wrap не нужен (ломал бы отступы блоков). */
.body.markdown-body[b-mpp0xw6gmz] {
    white-space: normal;
}

.markdown-body > :first-child[b-mpp0xw6gmz] {
    margin-top: 0;
}

.markdown-body > :last-child[b-mpp0xw6gmz] {
    margin-bottom: 0;
}

.markdown-body p[b-mpp0xw6gmz] {
    margin: 0.4rem 0;
}

.markdown-body ul[b-mpp0xw6gmz],
.markdown-body ol[b-mpp0xw6gmz] {
    margin: 0.4rem 0;
    padding-left: 1.4rem;
}

.markdown-body a[b-mpp0xw6gmz] {
    color: var(--link);
}

.markdown-body img[b-mpp0xw6gmz] {
    max-width: 100%;
    border-radius: 6px;
}

.markdown-body code[b-mpp0xw6gmz] {
    background: var(--accent-soft);
    padding: 0.05rem 0.3rem;
    border-radius: 4px;
    font-size: 0.85em;
}

.markdown-body pre[b-mpp0xw6gmz] {
    background: var(--surface-inverse);
    color: var(--on-accent);
    padding: 0.6rem 0.8rem;
    border-radius: 6px;
    overflow-x: auto;
}

.markdown-body pre code[b-mpp0xw6gmz] {
    background: none;
    padding: 0;
    color: inherit;
}

.markdown-body blockquote[b-mpp0xw6gmz] {
    margin: 0.4rem 0;
    padding-left: 0.8rem;
    border-left: 3px solid var(--border-strong);
    color: var(--text-muted);
}

.markdown-body table[b-mpp0xw6gmz] {
    border-collapse: collapse;
}

.markdown-body th[b-mpp0xw6gmz],
.markdown-body td[b-mpp0xw6gmz] {
    border: 1px solid var(--border-strong);
    padding: 0.3rem 0.5rem;
}

.attachments[b-mpp0xw6gmz] {
    margin-top: 0.5rem;
}

.error[b-mpp0xw6gmz] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.45rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

/* Справа в шапке: время, «изменено» и «⋯» — одной группой; на узком экране переносятся под автора целиком. */
.head-end[b-mpp0xw6gmz] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* Удалённый — только у держателя права на просмотр удалённых: серая пунктирная рамка, текст приглушён, над шапкой —
   «Комментарий удалён — ФИО, когда». */
.comment.deleted[b-mpp0xw6gmz] {
    background: var(--surface-2);
    border: 1px dashed var(--border-strong);
    border-left: 3px solid var(--text-faint);
}

.comment.deleted .body[b-mpp0xw6gmz],
.comment.deleted .author[b-mpp0xw6gmz] {
    color: var(--text-muted);
}

.comment-deleted-note[b-mpp0xw6gmz] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.comment.comment-anchored[b-mpp0xw6gmz] {
    background: var(--warn-softer);
    box-shadow: 0 0 0 2px var(--warn-border);
    transition: background .3s, box-shadow .3s;
}
/* /Components/Shared/CommentVersionsDialog.razor.rz.scp.css */
.comment-versions[b-h9g0pzyvg8] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.comment-version[b-h9g0pzyvg8] {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.55rem 0.8rem;
    background: var(--surface-2);
}

/* Нынешний текст — как обычный комментарий: белая подложка, акцентная черта слева. */
.comment-version.current[b-h9g0pzyvg8] {
    background: var(--surface);
    border-left: 3px solid var(--accent);
}

.comment-version-title[b-h9g0pzyvg8] {
    font-weight: 600;
    color: var(--text-strong);
    font-size: 0.875rem;
    margin-bottom: 0.25rem;
}

.comment-version-who[b-h9g0pzyvg8] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.1rem 0.75rem;
    margin: 0 0 0.4rem;
    font-size: 0.8125rem;
}

.comment-version-who dt[b-h9g0pzyvg8] {
    color: var(--text-muted);
}

.comment-version-who dd[b-h9g0pzyvg8] {
    margin: 0;
    color: var(--text-body);
    overflow-wrap: anywhere;
}

.comment-version-text[b-h9g0pzyvg8] {
    color: var(--text-body);
    font-size: 0.9375rem;
    overflow-wrap: anywhere;
}


.comment-version-text[b-h9g0pzyvg8]  p {
    margin: 0.4rem 0;
}

.comment-version-text[b-h9g0pzyvg8]  a {
    color: var(--link);
}
/* /Components/Shared/ConfirmDialog.razor.rz.scp.css */
.modal-backdrop[b-4hzh7ellqc] {
    position: fixed;
    inset: 0;
    background: var(--backdrop);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal[b-4hzh7ellqc] {
    background: var(--surface);
    border-radius: 10px;
    box-shadow: 0 10px 30px var(--shade-15);
    padding: 1.5rem;
    width: 100%;
    max-width: 480px;
    max-height: 85vh;
    overflow-y: auto;
}

.modal h3[b-4hzh7ellqc] {
    margin: 0 0 0.5rem 0;
    font-size: 1.0625rem;
}

.modal p[b-4hzh7ellqc] {
    margin: 0 0 1rem 0;
    color: var(--text-body);
}

.actions[b-4hzh7ellqc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
    margin-top: 1rem;
}

/* /Components/Shared/ContactDuplicateList.razor.rz.scp.css */
.ce-dups[b-gmafmilm6h] {
    margin-top: 0.6rem;
}

.ce-sub[b-gmafmilm6h] {
    display: block;
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--text-body);
    margin-bottom: 0.35rem;
}

.ce-count[b-gmafmilm6h] {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.dup-list[b-gmafmilm6h] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.dup-row[b-gmafmilm6h] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.dup-score[b-gmafmilm6h] {
    flex: 0 0 auto;
    min-width: 2rem;
    text-align: center;
    padding: 0.1rem 0.35rem;
    border-radius: 6px;
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--on-accent);
    background: var(--slate-350-bg);
}

.dup-score.high[b-gmafmilm6h] { background: var(--red-600-bg); }
.dup-score.medium[b-gmafmilm6h] { background: var(--amber-650-bg); }
.dup-score.low[b-gmafmilm6h] { background: var(--slate-350-bg); }

.dup-body[b-gmafmilm6h] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.dup-name[b-gmafmilm6h] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.dup-meta[b-gmafmilm6h] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.dup-reason[b-gmafmilm6h] {
    font-style: italic;
}
/* /Components/Shared/CustomFieldsEditor.razor.rz.scp.css */
/* Подсказка — строкой под названием и обычным шрифтом: внутри жирного названия она с ним слипалась. */
.hint[b-e4y8vq28kp] {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.78rem;
    font-weight: normal;
    color: var(--text-muted);
}

.validation-message[b-e4y8vq28kp] {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

/* В сетке «Нового лида» — как соседние блоки формы: промежутки задаёт сетка, название — их размером. */
.fields-grid > .field[b-e4y8vq28kp] {
    margin-bottom: 0;
}

.fields-grid > .field > label[b-e4y8vq28kp] {
    font-size: 0.8125rem;
    margin-bottom: 0.25rem;
}
/* /Components/Shared/DealHandoffFields.razor.rz.scp.css */
.deal-handoff[b-s30fhz9wyp] { display: flex; flex-direction: column; gap: .5rem; margin: .25rem 0 .5rem; }

.dh-state[b-s30fhz9wyp] {
    padding: .5rem .65rem; border-radius: 6px; font-size: .9rem; line-height: 1.4;
    background: var(--surface-alt); box-shadow: inset 0 0 0 1px var(--gray-100-shadow); color: var(--text);
}
.dh-state a[b-s30fhz9wyp] { font-weight: 600; }
.dh-state.dh-openassigned[b-s30fhz9wyp] { background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--blue-150-shadow); }
.dh-state.dh-lost[b-s30fhz9wyp] { background: var(--danger-soft); box-shadow: inset 0 0 0 1px var(--red-100-shadow); }
.dh-state.dh-won[b-s30fhz9wyp] { background: var(--ok-softer); box-shadow: inset 0 0 0 1px var(--green-150-shadow); }

.dh-actions[b-s30fhz9wyp] { display: flex; flex-direction: column; gap: .3rem; }
.dh-actions label[b-s30fhz9wyp] { display: flex; align-items: flex-start; gap: .4rem; font-size: .9rem; cursor: pointer; }
.dh-actions input[b-s30fhz9wyp] { margin-top: .2rem; }

.dh-hint[b-s30fhz9wyp] { margin: 0; font-size: .8rem; color: var(--text-muted); }
.dh-muted[b-s30fhz9wyp] { margin: 0; font-size: .85rem; color: var(--text-muted); }
/* /Components/Shared/DocumentPresetPanel.razor.rz.scp.css */
.muted[b-8dflx8ekew] {
    color: var(--text-muted);
    font-size: .9rem;
    margin: 0 0 .75rem;
}

.form-actions[b-8dflx8ekew] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin: .75rem 0;
}

.ok[b-8dflx8ekew] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    border-radius: 8px;
    padding: .5rem .75rem;
    font-size: .9rem;
}

.error[b-8dflx8ekew] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    border-radius: 8px;
    padding: .5rem .75rem;
    font-size: .9rem;
}

.preset-what[b-8dflx8ekew] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem 1.5rem;
    margin: .5rem 0 1rem;
}

.preset-what h3[b-8dflx8ekew] {
    margin: 0 0 .35rem;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--text-muted);
}

.preset-what ul[b-8dflx8ekew] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: .9rem;
    line-height: 1.6;
}

.preset-what code[b-8dflx8ekew] {
    font-size: .85em;
}

.preset-kv[b-8dflx8ekew] {
    margin: 0;
    font-size: .9rem;
    line-height: 1.5;
}

.preset-kv dt[b-8dflx8ekew] {
    color: var(--text-muted);
    font-size: .85em;
}

.preset-kv dd[b-8dflx8ekew] {
    margin: 0 0 .4rem;
}

.preset-report[b-8dflx8ekew] {
    margin: .5rem 0 0;
    padding-left: 1.25rem;
    font-size: .9rem;
    line-height: 1.6;
}

details > summary[b-8dflx8ekew] {
    cursor: pointer;
    margin-top: .75rem;
    font-size: .9rem;
    color: var(--text-muted);
}
/* /Components/Shared/DuplicateMatchesView.razor.rz.scp.css */
.muted[b-dbbhljdlq5] {
    color: var(--text-muted);
    font-style: italic;
}

.ok[b-dbbhljdlq5] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.warn-high[b-dbbhljdlq5] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.warn-medium[b-dbbhljdlq5] {
    background: var(--warn-soft-strong);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.warn-low[b-dbbhljdlq5] {
    background: var(--accent-soft);
    border: 1px solid var(--accent-soft-border);
    color: var(--accent-text-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.matches-table[b-dbbhljdlq5] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.matches-table th[b-dbbhljdlq5], .matches-table td[b-dbbhljdlq5] {
    text-align: left;
    padding: 0.5rem 0.625rem;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

.matches-table th[b-dbbhljdlq5] {
    background: var(--surface-alt);
    font-weight: 600;
    color: var(--text-body);
}

.matches-table .score[b-dbbhljdlq5] {
    font-weight: 700;
    text-align: center;
    width: 60px;
}

.matches-table tr.high .score[b-dbbhljdlq5] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
}

.matches-table tr.medium .score[b-dbbhljdlq5] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.matches-table tr.low .score[b-dbbhljdlq5] {
    background: var(--accent-soft);
    color: var(--accent-text-strong);
}

.matches-table a[b-dbbhljdlq5] {
    color: var(--accent-text);
}

.matches-table .expand-col[b-dbbhljdlq5] {
    width: 1.75rem;
    text-align: center;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.row-toggle[b-dbbhljdlq5] {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--text-muted);
    padding: 0;
    line-height: 1;
}

.row-toggle:hover[b-dbbhljdlq5] {
    color: var(--text);
}

.signals-row > td[b-dbbhljdlq5] {
    background: var(--surface-alt);
}

.signals-title[b-dbbhljdlq5] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-bottom: 0.35rem;
}

.signal-list[b-dbbhljdlq5] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.signal-list li[b-dbbhljdlq5] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.2rem 0;
}

.sig-score[b-dbbhljdlq5] {
    flex: 0 0 2.25rem;
    text-align: center;
    font-weight: 700;
    color: var(--text-body);
    background: var(--accent-soft);
    border-radius: 4px;
}

.sig-name[b-dbbhljdlq5] {
    flex: 0 0 9.5rem;
    font-weight: 500;
    color: var(--text-body);
}

.sig-reason[b-dbbhljdlq5] {
    flex: 1 1 auto;
    color: var(--text-muted);
}

.detector-report[b-dbbhljdlq5] {
    margin-top: 0.75rem;
    font-size: 0.8125rem;
}

.detector-report > summary[b-dbbhljdlq5] {
    cursor: pointer;
    color: var(--text-muted);
    user-select: none;
}

.detector-report > summary:hover[b-dbbhljdlq5] {
    color: var(--text-body);
}

.det-banner[b-dbbhljdlq5] {
    margin-top: 0.5rem;
    padding: 0.45rem 0.625rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    line-height: 1.35;
}

.det-banner-warn[b-dbbhljdlq5] {
    background: var(--warn-soft-strong);
    border: 1px solid var(--warn-border);
    color: var(--warn-strong);
}

.det-banner-info[b-dbbhljdlq5] {
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
}

.detector-list[b-dbbhljdlq5] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
}

.det[b-dbbhljdlq5] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.35rem 0.625rem;
    border-top: 1px solid var(--row-border);
}

.det:first-child[b-dbbhljdlq5] {
    border-top: none;
}

.det-icon[b-dbbhljdlq5] {
    flex: 0 0 1rem;
    text-align: center;
    font-weight: 700;
}

.det-name[b-dbbhljdlq5] {
    flex: 0 0 11rem;
    font-weight: 500;
    color: var(--text-body);
}

.det-status[b-dbbhljdlq5] {
    flex: 0 0 auto;
    color: var(--text-muted);
}

.det-note[b-dbbhljdlq5] {
    flex: 1 1 auto;
    color: var(--text-faint);
    font-style: italic;
}

.det-matched[b-dbbhljdlq5] {
    background: var(--ok-softer);
}

.det-matched .det-icon[b-dbbhljdlq5] {
    color: var(--emerald-700-text);
}

.det-nomatch .det-icon[b-dbbhljdlq5] {
    color: var(--text-faint);
}

.det-skipped[b-dbbhljdlq5] {
    background: var(--surface-alt);
}

.det-skipped .det-name[b-dbbhljdlq5],
.det-skipped .det-icon[b-dbbhljdlq5] {
    color: var(--text-faint);
}

/* На телефоне совпадения — карточками (общий .cards-narrow в app.css): балл плиткой сверху, дальше подписанные строки. */
@media (max-width: 640px) {
    .matches-table[b-dbbhljdlq5] {
        display: block;
        width: 100%;
    }

    .matches-table tbody[b-dbbhljdlq5] {
        display: block;
    }

    .matches-table td.score[b-dbbhljdlq5] {
        width: auto;
        margin: 0.15rem 0.8rem 0.25rem;
        padding: 0.3rem 0.8rem;
        border-radius: 6px;
        text-align: left;
    }

    .matches-table td.score[b-dbbhljdlq5]::before {
        color: inherit;
    }

    .matches-table td.company[b-dbbhljdlq5] {
        text-align: right;
    }

    .matches-table td.reason[b-dbbhljdlq5] {
        text-align: left;
        flex-direction: column;
        gap: 0.15rem;
    }

    .matches-table td.expand-col[b-dbbhljdlq5] {
        width: auto;
        padding: 0.1rem 0.8rem;
        justify-content: flex-end;
    }

    .matches-table td.expand-col.empty[b-dbbhljdlq5],
    .matches-table td.signals-gap[b-dbbhljdlq5],
    .matches-table td.link-col.empty[b-dbbhljdlq5] {
        display: none;
    }

    .matches-table .row-toggle[b-dbbhljdlq5] {
        font-size: 0.9rem;
        padding: 0.3rem 0.5rem;
    }

    .matches-table tr.signals-row[b-dbbhljdlq5] {
        margin-top: -0.7rem;
        border-top: 0;
        border-radius: 0 0 10px 10px;
        background: var(--surface-alt);
    }

    .matches-table tr.signals-row > td[b-dbbhljdlq5] {
        display: block;
        text-align: left;
        padding: 0.4rem 0.8rem;
    }

    .signal-list li[b-dbbhljdlq5] {
        flex-wrap: wrap;
    }

    .sig-name[b-dbbhljdlq5] {
        flex: 1 1 auto;
    }

    .sig-reason[b-dbbhljdlq5] {
        flex: 1 0 100%;
    }

    .det[b-dbbhljdlq5] {
        flex-wrap: wrap;
    }

    .det-name[b-dbbhljdlq5] {
        flex: 1 1 auto;
    }
}

/* Узкая колонка (Compact): карточка на совпадение, балл плиткой слева. */
.cmp-list[b-dbbhljdlq5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cmp[b-dbbhljdlq5] {
    display: flex;
    gap: 0.625rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.5rem 0.625rem;
    background: var(--surface);
}

.cmp-score[b-dbbhljdlq5] {
    flex: 0 0 2.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    border-radius: 6px;
}

.cmp.high[b-dbbhljdlq5] { border-color: var(--danger-border); }
.cmp.high .cmp-score[b-dbbhljdlq5] { background: var(--danger-soft-strong); color: var(--danger-strong); }
.cmp.medium[b-dbbhljdlq5] { border-color: var(--warn-border); }
.cmp.medium .cmp-score[b-dbbhljdlq5] { background: var(--warn-soft-strong); color: var(--warn-strong); }
.cmp.low[b-dbbhljdlq5] { border-color: var(--accent-soft-border); }
.cmp.low .cmp-score[b-dbbhljdlq5] { background: var(--accent-soft); color: var(--accent-text-strong); }

.cmp-body[b-dbbhljdlq5] {
    flex: 1 1 auto;
    min-width: 0;
}

.cmp-name[b-dbbhljdlq5] {
    font-weight: 600;
    color: var(--accent-text);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.cmp-name:hover[b-dbbhljdlq5] { text-decoration: underline; }

.cmp-meta[b-dbbhljdlq5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-top: 0.15rem;
}

.cmp-reason[b-dbbhljdlq5] {
    font-size: 0.8125rem;
    color: var(--text-2);
    margin-top: 0.25rem;
    line-height: 1.35;
}

.cmp-toggle[b-dbbhljdlq5] {
    border: none;
    background: none;
    padding: 0.25rem 0;
    margin-top: 0.15rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
    cursor: pointer;
}

.cmp-toggle:hover[b-dbbhljdlq5] { color: var(--text); }

.cmp .signal-list li[b-dbbhljdlq5] { flex-wrap: wrap; }
.cmp .sig-name[b-dbbhljdlq5] { flex: 1 1 auto; }
.cmp .sig-reason[b-dbbhljdlq5] { flex: 1 0 100%; }
/* /Components/Shared/DuplicateTopMatches.razor.rz.scp.css */
.top-matches[b-txra3ts2o2] {
    list-style: none;
    margin: 0 0 1rem 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.top-match[b-txra3ts2o2] {
    display: flex;
    align-items: stretch;
    gap: 0.625rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.5rem 0.625rem;
    background: var(--surface);
}

.tm-score[b-txra3ts2o2] {
    flex: 0 0 2.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1rem;
    border-radius: 6px;
}

.top-match.high[b-txra3ts2o2] {
    border-color: var(--danger-border);
}

.top-match.high .tm-score[b-txra3ts2o2] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
}

.top-match.medium[b-txra3ts2o2] {
    border-color: var(--warn-border);
}

.top-match.medium .tm-score[b-txra3ts2o2] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.top-match.low[b-txra3ts2o2] {
    border-color: var(--accent-soft-border);
}

.top-match.low .tm-score[b-txra3ts2o2] {
    background: var(--accent-soft);
    color: var(--accent-text-strong);
}

.tm-body[b-txra3ts2o2] {
    flex: 1 1 auto;
    min-width: 0;
}

.tm-name[b-txra3ts2o2] {
    font-weight: 600;
    color: var(--accent-text);
    text-decoration: none;
}

.tm-name:hover[b-txra3ts2o2] {
    text-decoration: underline;
}

.tm-merge[b-txra3ts2o2] {
    margin-left: 0.625rem;
    font-size: 0.8125rem;
    color: var(--warn);
    text-decoration: none;
    white-space: nowrap;
}

.tm-merge:hover[b-txra3ts2o2] {
    text-decoration: underline;
}

.tm-meta[b-txra3ts2o2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-top: 0.15rem;
}

.tm-reason[b-txra3ts2o2] {
    font-size: 0.8125rem;
    color: var(--text-2);
    margin-top: 0.25rem;
    line-height: 1.35;
}
/* /Components/Shared/DuplicateWarningBox.razor.rz.scp.css */
.dup-warning[b-kcukwrk0en] {
    margin-top: 0.5rem;
    padding: 0.625rem 0.75rem 0.125rem;
    border: 1px solid var(--warn-border);
    border-left-width: 4px;
    border-radius: 8px;
    background: var(--warn-softer);
}

.dup-warning-head[b-kcukwrk0en] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    color: var(--warn-strong);
    font-size: 0.875rem;
}

.dup-empty[b-kcukwrk0en] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface-alt);
    font-size: 0.875rem;
}
/* /Components/Shared/EgrStatusBadge.razor.rz.scp.css */
.egr-badge[b-qtlvvg1uqq] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    line-height: 1.4;
}

.egr-active[b-qtlvvg1uqq] {
    background: var(--ok-soft);
    color: var(--green-750-text);
}

.egr-liquidating[b-qtlvvg1uqq] {
    background: var(--warn-soft);
    color: var(--amber-700-text-2);
}

.egr-dead[b-qtlvvg1uqq] {
    background: var(--danger-soft);
    color: var(--red-550-text-2);
}

.egr-unknown[b-qtlvvg1uqq] {
    background: var(--surface-2);
    color: var(--slate-600-text-2);
}
/* /Components/Shared/EgrStatusInline.razor.rz.scp.css */
.egr-inline[b-3eim2k7br2] {
    margin: .5rem 0;
    padding: .5rem .75rem;
    border-radius: 8px;
    background: var(--surface-alt);
    font-size: .92em;
}

.egr-inline-head[b-3eim2k7br2] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.egr-inline-label[b-3eim2k7br2] {
    color: var(--sky-550-text);
    font-weight: 600;
}

.egr-inline-name[b-3eim2k7br2] {
    margin-top: .3rem;
    font-weight: 600;
}

.egr-inline-addr[b-3eim2k7br2] {
    margin-top: .2rem;
    color: var(--text-2);
}

.egr-inline-loading[b-3eim2k7br2] {
    color: var(--sky-550-text);
}

.egr-inline-muted[b-3eim2k7br2] {
    color: var(--text-faint);
}
/* /Components/Shared/EntityMuteButton.razor.rz.scp.css */
.mute-btn[b-2itm4e506l] {
    background: var(--surface);
    border: 1px solid var(--border-strong);
    color: var(--text-body);
    padding: 0.35rem 0.85rem;
    border-radius: 6px;
    font-size: 0.85rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.mute-btn:hover:not(:disabled)[b-2itm4e506l] {
    background: var(--surface-2);
}

.mute-btn.muted[b-2itm4e506l] {
    background: var(--danger-soft-strong);
    color: var(--danger-strong);
    border-color: var(--danger-border-strong);
}

.mute-btn.muted:hover:not(:disabled)[b-2itm4e506l] {
    background: var(--red-100-bg);
}

.mute-btn:disabled[b-2itm4e506l] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Значком (Compact): квадрат 34 px, как кнопка рядом; заглушено — динамик на красной подложке. */
.mute-btn.compact[b-2itm4e506l] {
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
}

.mute-btn.compact svg[b-2itm4e506l] {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Отказ сервера (право отобрали, просмотр глазами роли) — мелким текстом рядом с кнопкой. */
.mute-error[b-2itm4e506l] {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-left: 0.4rem;
}
/* /Components/Shared/EntitySubscribeButton.razor.rz.scp.css */
.subscribe-btn[b-d61qfy6rqv] {
    background: var(--surface);
    border: 1px solid var(--border-strong);
    color: var(--text-body);
    padding: 0.35rem 0.85rem;
    border-radius: 6px;
    font-size: 0.85rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.subscribe-btn:hover:not(:disabled)[b-d61qfy6rqv] {
    background: var(--surface-2);
}

.subscribe-btn.subscribed[b-d61qfy6rqv] {
    background: var(--accent);
    color: var(--on-accent);
    border-color: var(--accent-hover);
}

.subscribe-btn.subscribed:hover:not(:disabled)[b-d61qfy6rqv] {
    background: var(--accent-hover);
}

.subscribe-btn:disabled[b-d61qfy6rqv] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Значком (Compact): квадрат 34 px, как кнопка рядом; подписан — колокольчик закрашен на мягкой подложке акцента. */
.subscribe-btn.compact[b-d61qfy6rqv] {
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
}

.subscribe-btn.compact svg[b-d61qfy6rqv] {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.subscribe-btn.compact.subscribed[b-d61qfy6rqv] {
    background: var(--accent-soft);
    color: var(--accent-text);
    border-color: var(--accent-soft-border);
}

.subscribe-btn.compact.subscribed svg[b-d61qfy6rqv] {
    fill: currentColor;
}

.subscribe-btn.compact.subscribed:hover:not(:disabled)[b-d61qfy6rqv] {
    background: var(--accent-soft-strong);
}
/* /Components/Shared/FilePickButton.razor.rz.scp.css */
.pick-line[b-fi8021ccpy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.drop-hint[b-fi8021ccpy] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/* На телефоне и планшете перетаскивания файлов нет. */
@media (hover: none) {
    .drop-hint[b-fi8021ccpy] { display: none; }
}
/* /Components/Shared/FormError.razor.rz.scp.css */
/* Фокус нужен только чтобы окно прокрутилось к ошибке; рамка фокуса вокруг текста — лишняя. */
.form-error:focus[b-pci0bfrvc2] {
    outline: none;
}
/* /Components/Shared/GenitiveOutdatedHint.razor.rz.scp.css */
/* Предупреждение у падежного поля: не мешает сохранить, цвет — как у остальных предупреждений формы лида. */
.genitive-hint[b-ma188m16gz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
    margin-top: 0.25rem;
    color: var(--warn-strong);
    font-size: 0.8125rem;
}

.genitive-hint button[b-ma188m16gz] {
    max-width: 100%;
    white-space: normal;
    text-align: left;
}
/* /Components/Shared/HelpButton.razor.rz.scp.css */
/* Кнопка-значок шапки: 36 × 36, приглушённая, под курсором — подложка */
.help-button[b-yph9jn9xai] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: var(--r);
    color: var(--topbar-text-2);
    line-height: 1;
    text-decoration: none;
}

.help-button:hover[b-yph9jn9xai] {
    background: var(--topbar-hover);
    color: var(--topbar-text);
    text-decoration: none;
}

.help-button[b-yph9jn9xai]  .help-button-icon {
    display: block;
    width: 1.3rem;
    height: 1.3rem;
}
/* /Components/Shared/ImageViewer.razor.rz.scp.css */
.image-viewer[b-0nioiso8lv] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    background: var(--viewer-bg);
    outline: none;
}

.iv-bar[b-0nioiso8lv] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    background: var(--slate-950-bg);
    border-bottom: 1px solid var(--white-a8-border);
    color: var(--gray-50-text);
}

.iv-name[b-0nioiso8lv] {
    min-width: 0;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.iv-meta[b-0nioiso8lv] {
    color: var(--text-faint);
    font-size: .85rem;
    white-space: nowrap;
}

.iv-download[b-0nioiso8lv] {
    margin-left: auto;
    padding: .35rem .8rem;
    border: 1px solid var(--white-a35-border);
    border-radius: .4rem;
    color: var(--on-accent);
    text-decoration: none;
    white-space: nowrap;
}

.iv-download:hover[b-0nioiso8lv] {
    background: var(--white-a12-bg);
}

.iv-close[b-0nioiso8lv] {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    border-radius: .4rem;
    background: transparent;
    color: var(--on-accent);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.iv-close:hover[b-0nioiso8lv] {
    background: var(--white-a12-bg);
}

/* margin: auto у картинки вместо выравнивания контейнера: увеличенная картинка шире окна прокручивается
   от левого края, а не уезжает влево за границу, куда не долистать. */
.iv-stage[b-0nioiso8lv] {
    flex: 1;
    min-height: 0;
    display: flex;
    padding: 1rem 3.75rem;
    overflow: auto;
}

.iv-stage img[b-0nioiso8lv] {
    margin: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    background: var(--surface);
    box-shadow: 0 10px 30px var(--shade-40);
    cursor: zoom-in;
}

.iv-stage.zoomed img[b-0nioiso8lv] {
    max-width: none;
    max-height: none;
    cursor: zoom-out;
}

.iv-failed[b-0nioiso8lv] {
    margin: auto;
    padding: 1rem 1.25rem;
    border-radius: .5rem;
    background: var(--surface);
    color: var(--text-body);
}

.iv-nav[b-0nioiso8lv] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.75rem;
    height: 4rem;
    padding: 0;
    border: 1px solid var(--white-a25-border);
    border-radius: .5rem;
    background: var(--backdrop-strong);
    color: var(--on-accent);
    font-size: 2.2rem;
    line-height: 1;
    cursor: pointer;
}

.iv-nav:hover[b-0nioiso8lv] {
    background: var(--slate-a85-bg);
}

.iv-nav.prev[b-0nioiso8lv] {
    left: .5rem;
}

.iv-nav.next[b-0nioiso8lv] {
    right: .5rem;
}

/* На телефоне место под кнопки по бокам не оставляем — они ложатся поверх картинки, как и у увеличенной. */
@media (max-width: 640px) {
    .iv-stage[b-0nioiso8lv] {
        padding: .5rem;
    }

    .iv-meta:not(.iv-count)[b-0nioiso8lv] {
        display: none;
    }
}
/* /Components/Shared/InstallationBookingModal.razor.rz.scp.css */
.selected-note[b-r1qkg2s2io] {
    margin: 0.5rem 0 0;
    font-size: 0.9rem;
}

.selected-note .warn[b-r1qkg2s2io] {
    color: var(--warn);
}

/* Телефон и кнопка «Номера клиента» — одной строкой; на узком экране кнопка уходит под поле. */
.contact-phone-row[b-r1qkg2s2io] {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
    flex-wrap: wrap;
}

.contact-phone-row input[b-r1qkg2s2io] {
    flex: 1 1 14rem;
    min-width: 0;
}

.contact-options-toggle[b-r1qkg2s2io] {
    white-space: nowrap;
}

/* Список номеров: в строке — номер, кого спросить, откуда номер и приписка из заявки. */
.contact-options[b-r1qkg2s2io] {
    margin-top: 0.4rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    max-height: 14rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.contact-options > .muted[b-r1qkg2s2io] {
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
}

.contact-option[b-r1qkg2s2io] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.6rem;
    align-items: baseline;
    text-align: left;
    border: 0;
    border-bottom: 1px solid var(--row-border);
    border-radius: 0;
    background: none;
    padding: 0.45rem 0.75rem;
}

.contact-option:last-child[b-r1qkg2s2io] {
    border-bottom: 0;
}

.contact-option:hover[b-r1qkg2s2io] {
    background: var(--surface-2);
}

.contact-option-phone[b-r1qkg2s2io] {
    font-weight: 500;
}

.contact-option-source[b-r1qkg2s2io],
.contact-option-note[b-r1qkg2s2io] {
    font-size: 0.8rem;
    color: var(--text-muted);
}

.contact-option-note[b-r1qkg2s2io] {
    flex-basis: 100%;
}
/* /Components/Shared/InstallationCancelModal.razor.rz.scp.css */
.dialog-note[b-46vbrro6fe] {
    margin: 0 0 0.75rem 0;
    color: var(--text);
}
/* /Components/Shared/InstallationRescheduleModal.razor.rz.scp.css */
.selected-note[b-u9p61oyig3] {
    margin: 0.5rem 0 0;
    font-size: 0.9rem;
}

.selected-note .warn[b-u9p61oyig3] {
    color: var(--warn);
}
/* /Components/Shared/InstallationSlotPicker.razor.rz.scp.css */
.booking-controls[b-619o6c1qdj] {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1rem;
}

.booking-controls .field[b-619o6c1qdj] {
    margin: 0;
}

.slot-grid[b-619o6c1qdj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(78px, 1fr));
    gap: 0.4rem;
    margin-bottom: 0.5rem;
}

.slot[b-619o6c1qdj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.4rem 0.2rem;
    border: 1px solid;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.85rem;
    line-height: 1.1;
    transition: transform 0.05s ease;
}

/* Цвет ячейки — по доле занятых мест (--slot-load в разметке), и под курсором тоже: общее наведение кнопок
   (button:hover) его не перекрашивает. */
.slot[b-619o6c1qdj],
.slot:hover:not(:disabled)[b-619o6c1qdj] {
    border-color: color-mix(in hsl, var(--slot-free-border), var(--slot-full-border) var(--slot-load, 0%));
    background: color-mix(in hsl, var(--slot-free-bg), var(--slot-full-bg) var(--slot-load, 0%));
}

.slot:hover:not(:disabled)[b-619o6c1qdj] {
    transform: translateY(-1px);
    filter: brightness(0.97);
}

.slot:disabled[b-619o6c1qdj] {
    cursor: not-allowed;
    opacity: 0.55;
}

.slot .slot-time[b-619o6c1qdj] {
    font-weight: 600;
}

.slot .slot-load[b-619o6c1qdj] {
    font-size: 0.72rem;
    opacity: 0.75;
}

.slot.full[b-619o6c1qdj] {
    font-weight: 600;
}

.slot.past[b-619o6c1qdj] {
    text-decoration: line-through;
    opacity: 0.5;
}

.slot-notice[b-619o6c1qdj] {
    margin: 0 0 0.75rem;
}

.weekend-notice[b-619o6c1qdj] {
    display: inline-block;
    margin: 0 0 0.75rem;
    padding: 4px 10px;
    border: 1px solid var(--warn-border);
    border-radius: var(--r);
    background: var(--warn-soft);
    color: var(--warn-strong);
    font-size: 13px;
    font-weight: 500;
}

.slot.selected[b-619o6c1qdj] {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}

.legend[b-619o6c1qdj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    color: var(--gray-600-text);
    flex-wrap: wrap;
}

.legend .dot[b-619o6c1qdj] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    border: 1px solid var(--black-a15-border);
}

/* Легенда — та же шкала, что у ячеек: свободно, половина мест занята, мест нет. */
.legend .dot.free[b-619o6c1qdj] { background: var(--slot-free-bg); }
.legend .dot.mid[b-619o6c1qdj] { background: color-mix(in hsl, var(--slot-free-bg), var(--slot-full-bg) 50%); }
.legend .dot.full[b-619o6c1qdj] { background: var(--slot-full-bg); }
/* /Components/Shared/LeadCallTargetBadge.razor.rz.scp.css */
.call-target-badges[b-xybghly6os] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 5px;
    margin: 0.25rem 0;
    min-width: 0;
    max-width: 100%;
}

/* Отметка и кнопки руководителя рядом с ней — одной группой: при переносе строки кнопки не отрываются от своей базы. */
.ctb-item[b-xybghly6os] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
    max-width: 100%;
}

/* Звёздочка «Важный» и её отметка — одной строкой: на узком экране длинная отметка сжимается с многоточием, а не
   уходит под звёздочку. */
.ctb-head[b-xybghly6os] {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: 100%;
}

/* Предел — в rem, а не в процентах: процент от группы, ширину которой задаёт сама отметка, браузер считает по полному
   тексту, и между обрезанной отметкой и кнопками оставалась пустота. */
.ctb-head .ctb[b-xybghly6os] {
    min-width: 0;
    max-width: 28rem;
}

.ctb-item button.small[b-xybghly6os] {
    padding: 0.05rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.5;
}

.ctb-message[b-xybghly6os] {
    flex-basis: 100%;
    font-size: 0.82rem;
    color: var(--text-body);
}

/* «В обзвон…» — того же размера, что кнопки руководителя у отметок: не спорит с заголовком карточки. */
.call-target-badges button.ctb-add[b-xybghly6os] {
    padding: 0.05rem 0.55rem;
    font-size: 0.75rem;
    line-height: 1.5;
}

.ctb-heading[b-xybghly6os] {
    flex-basis: 100%;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--text-2);
}

/* Обзвон — строка на всю ширину, как в макете: полный текст (оператор, база, состояние, перезвон) переносится по
   словам, кнопки рядом и уходят вниз, только когда не помещаются. Классы ctb / ctb-item / ctb-head сохранены. */
.ctb-row[b-xybghly6os] {
    display: flex;
    flex: 1 1 100%;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 6px 12px;
    padding: 8px 10px;
    border-radius: 6px;
    background: var(--surface-2);
}

.ctb-row .ctb-head[b-xybghly6os] {
    flex: 1 1 260px;
    align-items: flex-start;
    gap: 6px;
}

.ctb-row .ctb-head .ctb-full[b-xybghly6os] {
    flex: 1 1 auto;
    max-width: none;
    padding: 0;
    background: transparent;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.45;
    align-items: flex-start;
}

.ctb-row .ctb-full .t[b-xybghly6os] {
    overflow: visible;
    white-space: normal;
    text-overflow: clip;
    overflow-wrap: anywhere;
}

.ctb-acts[b-xybghly6os] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
/* /Components/Shared/LeadContactFields.razor.rz.scp.css */
/* Пара «номер или адрес + подпись»: одинаковая во всех формах контактов лида.
   Снаружи пара — один элемент ряда формы; кнопки «Добавить», «Сохранить», «Удалить» ставит сама форма. */

.contact-fields[b-5oswnugzbv] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-width: 0;
}

/* Основа пары — оба поля в полную ширину и зазор между ними: уже этого подпись уходит под номер. */
.contact-fields.phone[b-5oswnugzbv] {
    flex: 0 1 568px;
}

.contact-fields.email[b-5oswnugzbv] {
    flex: 0 1 668px;
}

.phone .value-input[b-5oswnugzbv] {
    flex: 0 1 200px;
    min-width: 150px;
}

/* Подписи вроде «Татьяна, главбух» длиннее номера — поле шире и тянется первым. */
.phone .label-input[b-5oswnugzbv] {
    flex: 1 1 240px;
    min-width: 180px;
    max-width: 360px;
}

.email .value-input[b-5oswnugzbv] {
    flex: 1 1 260px;
    min-width: 200px;
    max-width: 340px;
}

.email .label-input[b-5oswnugzbv] {
    flex: 1 1 220px;
    min-width: 180px;
    max-width: 320px;
}

/* Узкий экран: значение и подпись — каждое в свою строку и во всю ширину, номер не сжимается под подпись. */
@media (max-width: 640px) {
    .contact-fields.phone[b-5oswnugzbv],
    .contact-fields.email[b-5oswnugzbv] {
        flex: 1 1 100%;
    }

    .contact-fields .value-input[b-5oswnugzbv],
    .contact-fields .label-input[b-5oswnugzbv] {
        flex: 1 1 100%;
        min-width: 0;
        max-width: none;
    }
}
/* /Components/Shared/LeadContactList.razor.rz.scp.css */
/* Контакт — ряд «булавка · номер с подписью «кто это» · звонок». Номер и адрес видны целиком: длинный переносится, а
   не обрезается многоточием — в колонке 300 px иначе пропадал бы домен почты. */
.ct-group + .ct-group[b-2n22dj8lit] {
    margin-top: 12px;
}

.ct-title[b-2n22dj8lit] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--text-2);
}

.ct-count[b-2n22dj8lit] {
    font-variant-numeric: tabular-nums;
}

.ct-row[b-2n22dj8lit] {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 2px 4px;
    padding: 4px 0;
    border-top: 1px solid var(--row-border);
}

.ct-row:first-child[b-2n22dj8lit] {
    border-top: 0;
}

/* Своя колонка — всегда вторая: у номера и адреса только из обращения или заявки булавки нет вовсе, и без этого
   значение вставало в колонку булавки (28 px, номер рвался по 3–4 цифры), а звонок растягивался на всю ширину. */
.ct-main[b-2n22dj8lit] {
    grid-column: 2;
    min-width: 0;
    line-height: 1.3;
}

.ct-val[b-2n22dj8lit] {
    display: block;
    overflow-wrap: anywhere;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    color: var(--text);
}

/* Домен почты переходит на новую строку целиком (с «@»), а не рвётся по дефису внутри. */
.ct-domain[b-2n22dj8lit] {
    display: inline-block;
    max-width: 100%;
}

.ct-who[b-2n22dj8lit] {
    display: block;
    font-size: 12.5px;
    line-height: 1.35;
    color: var(--text-2);
    overflow-wrap: anywhere;
}

/* Пометка «из обращения» / «из заявки» и приписка клиента к номеру («после 15:00», имя, добавочный). */
.ct-origin[b-2n22dj8lit] {
    display: inline-block;
    margin-top: 2px;
    padding: 0 6px;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.5;
    background: var(--accent-soft);
    color: var(--accent-text);
}

.ct-note[b-2n22dj8lit] {
    display: block;
    font-size: 12.5px;
    line-height: 1.35;
    color: var(--text-1);
    overflow-wrap: anywhere;
}

.ct-warn[b-2n22dj8lit] {
    display: block;
    font-size: 12.5px;
    line-height: 1.35;
    color: var(--amber-650-text);
}

/* Звонок у каждого номера — обычной кнопкой, а не синей: синих в столбик было бы столько же, сколько номеров, и
   колонка пестрила бы. Цвет текста — свой: белый с синей кнопки здесь не виден («…», пока идёт набор). */
.ct-row[b-2n22dj8lit]  .call-button {
    background: var(--surface);
    color: var(--text);
    border-color: var(--border-strong);
}

.ct-row[b-2n22dj8lit]  .call-button:hover:not(:disabled) {
    background: var(--surface-2);
    border-color: var(--border-strong);
}

/* «Звоним…» и ошибка звонка — строкой под номером, а не сбоку: в колонке 300 px сбоку им места нет. */
.ct-row[b-2n22dj8lit]  .call-button-status {
    grid-column: 2 / -1;
    margin: 2px 0 0;
    font-size: 12.5px;
    overflow-wrap: anywhere;
}

.ct-row[b-2n22dj8lit]  .call-button-status.error {
    padding: 4px 8px;
}

.ct-more[b-2n22dj8lit] {
    height: 26px;
    margin-top: 2px;
    padding: 0 6px 0 32px;
    border: 0;
    background: transparent;
    color: var(--link);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
}

.ct-more:hover[b-2n22dj8lit] {
    text-decoration: underline;
}

.ct-hint[b-2n22dj8lit],
.ct-empty[b-2n22dj8lit],
.ct-error[b-2n22dj8lit] {
    margin: 10px 0 0;
    font-size: 12.5px;
    color: var(--text-2);
}

.ct-empty[b-2n22dj8lit] {
    margin: 0;
}

.ct-error[b-2n22dj8lit] {
    color: var(--danger);
}

/* Карточка клиента: ряд — то, что рисуют LeadPhoneRow и LeadEmailRow (булавка, значение, подпись, «к набору», звонок,
   «✎», «Удалить»), переносится внутри колонки 340 px. */
.cm-row[b-2n22dj8lit] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
    padding: 6px 0;
    border-top: 1px solid var(--row-border);
    font-size: 0.875rem;
}

.cm-row:first-child[b-2n22dj8lit] {
    border-top: 0;
}

.cm-row[b-2n22dj8lit]  > * {
    min-width: 0;
}

.cm-row[b-2n22dj8lit]  .call-button {
    background: var(--surface);
    color: var(--text);
    border-color: var(--border-strong);
}
/* /Components/Shared/LeadDealCreateDialog.razor.rz.scp.css */
.dup-banner[b-jdqutrgpc2] {
    margin-bottom: 1rem;
    padding: 0.75rem 0.875rem;
    border-radius: 8px;
    border: 1px solid var(--warn-border);
    background: var(--warn-softer);
}

.dup-banner.high[b-jdqutrgpc2] {
    border-color: var(--danger-border);
    background: var(--danger-soft);
}

.dup-banner-head[b-jdqutrgpc2] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.dup-banner-head strong[b-jdqutrgpc2] {
    color: var(--warn-strong);
    font-size: 0.9375rem;
}

.dup-banner.high .dup-banner-head strong[b-jdqutrgpc2] {
    color: var(--danger-strong);
}

.dup-banner-score[b-jdqutrgpc2] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.dup-banner-hint[b-jdqutrgpc2] {
    margin: 0.4rem 0 0.6rem 0;
    font-size: 0.8125rem;
    color: var(--text-2);
    line-height: 1.4;
}

.modal h3[b-jdqutrgpc2] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.field[b-jdqutrgpc2] {
    margin-bottom: 0.85rem;
    display: flex;
    flex-direction: column;
}

.field label[b-jdqutrgpc2] {
    margin-bottom: 0.25rem;
}

.field[b-jdqutrgpc2]  input, .field[b-jdqutrgpc2]  select, .field input[disabled][b-jdqutrgpc2] {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.field input[disabled][b-jdqutrgpc2] {
    background: var(--surface-2);
    color: var(--text-2);
}

.field[b-jdqutrgpc2]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.actions[b-jdqutrgpc2] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    margin-top: 1rem;
}

.error[b-jdqutrgpc2] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 1rem 0 0 0;
}
/* /Components/Shared/LeadDealsOverview.razor.rz.scp.css */
.lead-deals[b-tdc1zc79kx] { margin: .25rem 0 .5rem; }

.ld-head[b-tdc1zc79kx] { font-size: .8rem; font-weight: 600; color: var(--text-body); margin-bottom: .35rem; }

.ld-list[b-tdc1zc79kx] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }

.ld-row[b-tdc1zc79kx] {
    display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
    padding: .3rem .5rem; border-radius: 6px; background: var(--surface-alt);
}

.ld-row.current[b-tdc1zc79kx] { background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--blue-150-shadow); }

.ld-dir[b-tdc1zc79kx] { font-weight: 600; color: var(--text); text-decoration: none; }
.ld-dir:hover[b-tdc1zc79kx] { text-decoration: underline; color: var(--accent-text); }

.ld-note[b-tdc1zc79kx] { font-size: .8rem; color: var(--text-muted); font-style: italic; }
/* /Components/Shared/LeadEmailRow.razor.rz.scp.css */
/* Строка адреса: одинаковый вид в карточке лида и в обзвоне.
   Раскладку ряда задаёт родительский контейнер страницы. */

.email-value[b-kyvjpk1th6] {
    font-weight: 500;
    overflow-wrap: anywhere;
}

.email-label-tag[b-kyvjpk1th6] {
    background: var(--accent-soft-strong);
    color: var(--indigo-600-text);
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.email-domain[b-kyvjpk1th6] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.email-edit[b-kyvjpk1th6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    width: 100%;
}

button.link[b-kyvjpk1th6] {
    background: none;
    border: none;
    color: var(--blue-550-text);
    cursor: pointer;
    padding: 0 0.25rem;
    font-size: 0.95rem;
}

button.link:hover:not(:disabled)[b-kyvjpk1th6] {
    color: var(--blue-650-text);
}

button.link-danger[b-kyvjpk1th6] {
    background: none;
    border: none;
    color: var(--red-550-text);
    cursor: pointer;
    padding: 0 0.25rem;
    font-size: 0.875rem;
}

button.link-danger:hover:not(:disabled)[b-kyvjpk1th6] {
    color: var(--red-700-text);
}

button.link:disabled[b-kyvjpk1th6],
button.link-danger:disabled[b-kyvjpk1th6] {
    opacity: 0.5;
    cursor: default;
}

.remove-confirm[b-kyvjpk1th6] {
    color: var(--warn-strong);
    font-size: 0.8125rem;
}

.error-inline[b-kyvjpk1th6] {
    color: var(--danger);
    font-size: 0.8125rem;
}
/* /Components/Shared/LeadEngagementBadge.razor.rz.scp.css */
.engagement-badges[b-icdmui6ir6] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 5px;
    margin: 0.25rem 0;
    min-width: 0;
}
/* /Components/Shared/LeadgenDetachDialog.razor.rz.scp.css */
.lg-radio[b-t32sb1m7wh] { display: block; margin: 0.4rem 0; }
/* /Components/Shared/LeadgenDue.razor.rz.scp.css */
/* Срок крупно: главное, что надо знать о заявке. */
.due-big[b-of7rek4lhb] { font-size: 1.15rem; font-weight: 600; color: var(--text); }
.due-big.compact[b-of7rek4lhb] { font-size: .9rem; }
.due-big.alarm[b-of7rek4lhb] { color: var(--danger); }
.due-big.soon[b-of7rek4lhb] { color: var(--warn); }
/* /Components/Shared/LeadgenReassignDialog.razor.rz.scp.css */
.lg-now[b-8eaatnaovm] { margin: 0 0 1rem; }
.lg-alarm[b-8eaatnaovm] { color: var(--danger); font-weight: 600; }
/* /Components/Shared/LeadHistory.razor.rz.scp.css */
.lead-history[b-8xfmwswof3] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.lh-item[b-8xfmwswof3] {
    border-left: 2px solid var(--border);
    padding: 0.25rem 0 0.25rem 0.85rem;
}

.lh-head[b-8xfmwswof3] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.lh-title[b-8xfmwswof3] {
    font-weight: 500;
    color: var(--text-strong);
}

.lh-meta[b-8xfmwswof3] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.lh-detail[b-8xfmwswof3] {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: var(--text-body);
}

.lh-change[b-8xfmwswof3] {
    margin: 0.1rem 0;
}

.lh-old[b-8xfmwswof3] {
    color: var(--danger);
    text-decoration: line-through;
}

.lh-new[b-8xfmwswof3] {
    color: var(--ok);
}
/* /Components/Shared/LeadLinkDialog.razor.rz.scp.css */
.picked-lead[b-67cq7u6unw] {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .4rem .6rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--accent-softer);
}

.linklike[b-67cq7u6unw] {
    border: none;
    background: none;
    padding: 0;
    color: var(--blue-600-text);
    cursor: pointer;
    font-size: .85rem;
}
/* /Components/Shared/LeadMailPanel.razor.rz.scp.css */
.lead-mail-list[b-ydmx23n5ex] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.lead-mail-list li[b-ydmx23n5ex] {
    border-bottom: 1px solid var(--row-border);
}

.lead-mail-row[b-ydmx23n5ex] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    text-align: left;
    padding: 0.55rem 0.5rem;
    border: none;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
}

.lead-mail-row:hover[b-ydmx23n5ex] {
    background: var(--surface-alt);
}

.lead-mail-row .dir[b-ydmx23n5ex] {
    color: var(--text-muted);
    font-size: 0.78rem;
    white-space: nowrap;
}

.lead-mail-row .subj[b-ydmx23n5ex] {
    flex: 1;
    color: var(--text-strong);
    font-size: 0.88rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lead-mail-row .meta[b-ydmx23n5ex] {
    color: var(--text-faint);
    font-size: 0.78rem;
    white-space: nowrap;
}

.lead-mail-body[b-ydmx23n5ex] {
    padding: 0.75rem 0.5rem 1rem 0.5rem;
    background: var(--surface-alt);
}

.lead-mail-count[b-ydmx23n5ex] {
    flex: none;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--text-body);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.4;
}

.lead-mail-thread.open > .lead-mail-row[b-ydmx23n5ex] {
    background: var(--surface-2);
}

.lead-mail-thread-list[b-ydmx23n5ex] {
    list-style: none;
    padding: 0 0 0 1.25rem;
    margin: 0;
    border-top: 1px solid var(--row-border);
}

.lead-mail-thread-list li:last-child[b-ydmx23n5ex] {
    border-bottom: none;
}

.lead-mail-msg .subj[b-ydmx23n5ex] {
    color: var(--text-body);
    font-size: 0.84rem;
}

@media (max-width: 640px) {
    .lead-mail-row .dir-word[b-ydmx23n5ex] {
        display: none;
    }

    .lead-mail-thread-list[b-ydmx23n5ex] {
        padding-left: 0.75rem;
    }

    /* Тема не ужимается до пары слов рядом с длинной датой: на телефоне — в две строки. */
    .lead-mail-row .subj[b-ydmx23n5ex] {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

.lead-mail-head[b-ydmx23n5ex] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.6rem;
}

.lead-mail-total[b-ydmx23n5ex] {
    font-size: 0.88rem;
}

.lead-mail-notice[b-ydmx23n5ex] {
    margin-bottom: 0.6rem;
    padding: 0.4rem 0.6rem;
    border-radius: 6px;
    background: var(--surface-alt);
    color: var(--text-body);
    font-size: 0.86rem;
}

.lead-mail-compose[b-ydmx23n5ex] {
    margin: 0 0 0.9rem 0;
}

.lead-mail-body .lead-mail-compose[b-ydmx23n5ex] {
    margin: 0.75rem 0 0 0;
}

.lead-mail-reply[b-ydmx23n5ex] {
    margin-top: 0.75rem;
}

.lead-mail-foreign[b-ydmx23n5ex] {
    margin: 0.75rem 0 0 0;
    font-size: 0.84rem;
}

/* Вторая строка письма — чей ящик. */
.lead-mail-row[b-ydmx23n5ex] {
    flex-wrap: wrap;
}

.lead-mail-row .owner[b-ydmx23n5ex] {
    flex: 0 0 100%;
    color: var(--text-muted);
    font-size: 0.76rem;
    line-height: 1.2;
}
/* /Components/Shared/LeadPhoneRow.razor.rz.scp.css */
/* Строка телефона: одинаковый вид в карточке лида и в обзвоне.
   Раскладку ряда (flex, фон, отступы) задаёт родительский контейнер страницы. */

.phone-value[b-2858bm6h7i] {
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    /* Номер не переносим: на узком экране flex иначе рвёт его по группам цифр. */
    white-space: nowrap;
}

/* В обзвоне номер читают вслух — он крупнее остального ряда. */
.phone-value.prominent[b-2858bm6h7i] {
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.phone-label-tag[b-2858bm6h7i] {
    background: var(--accent-soft-strong);
    color: var(--indigo-600-text);
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.dial[b-2858bm6h7i] {
    color: var(--green-650-text);
    font-size: 0.8125rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.dial.dial-warn[b-2858bm6h7i] {
    color: var(--amber-650-text);
}

.phone-edit[b-2858bm6h7i] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    width: 100%;
}

button.link[b-2858bm6h7i] {
    background: none;
    border: none;
    color: var(--blue-550-text);
    cursor: pointer;
    padding: 0 0.25rem;
    font-size: 0.95rem;
}

button.link:hover:not(:disabled)[b-2858bm6h7i] {
    color: var(--blue-650-text);
}

button.link-danger[b-2858bm6h7i] {
    background: none;
    border: none;
    color: var(--red-550-text);
    cursor: pointer;
    padding: 0 0.25rem;
    font-size: 0.875rem;
}

button.link-danger:hover:not(:disabled)[b-2858bm6h7i] {
    color: var(--red-700-text);
}

button.link:disabled[b-2858bm6h7i],
button.link-danger:disabled[b-2858bm6h7i] {
    opacity: 0.5;
    cursor: default;
}

.remove-confirm[b-2858bm6h7i] {
    color: var(--warn-strong);
    font-size: 0.8125rem;
}

.error-inline[b-2858bm6h7i] {
    color: var(--danger);
    font-size: 0.8125rem;
}
/* /Components/Shared/LeadPicker.razor.rz.scp.css */
.lpicker[b-x7yvomr8fo] { position: relative; width: 100%; }

.lpicker .lpicker-input[b-x7yvomr8fo] {
    width: 100%;
    padding: .45rem .7rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--surface);
    font-size: .9rem;
    color: var(--text);
}

.lpicker .lpicker-input:focus[b-x7yvomr8fo] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.lpicker-drop[b-x7yvomr8fo] {
    position: absolute;
    top: calc(100% + .35rem);
    left: 0;
    right: 0;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r);
    box-shadow: var(--shadow-md);
    z-index: 50;
    max-height: 40vh;
    overflow-y: auto;
}

.lpicker-note[b-x7yvomr8fo] { padding: .7rem .9rem; color: var(--text-muted); font-size: .85rem; }

.lpicker-hit[b-x7yvomr8fo] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    width: 100%;
    padding: .55rem .9rem;
    border: none;
    border-bottom: 1px solid var(--border);
    background: transparent;
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.lpicker-hit:last-child[b-x7yvomr8fo] { border-bottom: none; }
.lpicker-hit:hover[b-x7yvomr8fo] { background: var(--accent-softer); }

.lpicker-name[b-x7yvomr8fo] { font-weight: 500; }
.lpicker-id[b-x7yvomr8fo] { font-weight: 400; color: var(--text-faint); font-size: .8rem; }
.lpicker-meta[b-x7yvomr8fo] { font-size: .78rem; color: var(--text-muted); }
/* /Components/Shared/LeadRequisitesFields.razor.rz.scp.css */
.intro[b-tu3jaf5mdc] {
    color: var(--text-muted);
    font-size: 0.875rem;
    margin: -0.5rem 0 0.75rem 0;
}

.field[b-tu3jaf5mdc] {
    display: flex;
    flex-direction: column;
}

.field label[b-tu3jaf5mdc] {
    margin-bottom: 0.25rem;
}

/* Поле с кнопкой справа («Юридический адрес» + «из ЕГР»). */
.with-action[b-tu3jaf5mdc] {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
}

.with-action[b-tu3jaf5mdc]  input {
    flex: 1;
    min-width: 0;
}

.field-hint[b-tu3jaf5mdc] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

/* Предупреждение, которое не мешает сохранить (неверный IBAN, счёт и БИК из разных банков). */
.field-hint.warn[b-tu3jaf5mdc] {
    color: var(--warn-strong);
}

/* Флажки на всю ширину сетки, в одну строку. */
.checks[b-tu3jaf5mdc] {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    font-size: 0.875rem;
    color: var(--text-body);
}

/* Сверка полей банка со справочником — на всю ширину сетки, под полями банка. */
.bank-hint[b-tu3jaf5mdc] {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    font-size: 0.875rem;
}

.bank-hint .warn[b-tu3jaf5mdc] {
    color: var(--warn-strong);
}

.bank-hint .muted[b-tu3jaf5mdc] {
    color: var(--text-faint);
    font-style: italic;
}
/* /Components/Shared/LeadTouchSummaryLine.razor.rz.scp.css */
.touch-summary[b-8wk0eru7lm] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin: 0.75rem 0 0.25rem;
    font-size: 0.85rem;
    color: var(--text-body);
    min-width: 0;
}

.ts-head[b-8wk0eru7lm] {
    font-weight: 600;
    color: var(--text-body);
}

.ts-count[b-8wk0eru7lm] {
    margin-left: 0.4rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    font-weight: 400;
}

.ts-part[b-8wk0eru7lm] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ts-label[b-8wk0eru7lm] {
    margin-right: 0.2rem;
}

.ts-touch + .ts-touch[b-8wk0eru7lm]::before {
    content: "; ";
    color: var(--text-faint);
}

.ts-date[b-8wk0eru7lm],
.ts-muted[b-8wk0eru7lm] {
    color: var(--text-muted);
}

.ts-refusal[b-8wk0eru7lm] {
    color: var(--orange-650-text);
}
/* /Components/Shared/LeadUnpField.razor.rz.scp.css */
.field[b-m5jlyz9aiv] {
    display: flex;
    flex-direction: column;
}

.field label[b-m5jlyz9aiv] {
    margin-bottom: 0.25rem;
}

/* Поле и «Проверить в ЕГР» справа. */
.with-action[b-m5jlyz9aiv] {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
}

.with-action[b-m5jlyz9aiv]  input {
    flex: 1;
    min-width: 0;
}

.with-action button[b-m5jlyz9aiv] {
    white-space: nowrap;
}

.field-hint[b-m5jlyz9aiv] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.field-hint.warn[b-m5jlyz9aiv] {
    color: var(--warn-strong);
}

/* Ответ реестра — строкой на всю ширину сетки под полем: в ячейке поля он бы не поместился. */
.unp-check[b-m5jlyz9aiv] {
    grid-column: 1 / -1;
    margin-top: -0.25rem;
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    background: var(--surface-alt);
    font-size: 0.875rem;
    color: var(--text-body);
}

.unp-check.unp-check-error[b-m5jlyz9aiv] {
    background: var(--danger-soft);
    color: var(--danger-strong);
}

.unp-check-head[b-m5jlyz9aiv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.unp-check-label[b-m5jlyz9aiv] {
    color: var(--sky-550-text);
    font-weight: 600;
}

.unp-check-unsaved[b-m5jlyz9aiv] {
    color: var(--warn-strong);
    font-style: italic;
}

.unp-check-name[b-m5jlyz9aiv] {
    margin-top: 0.3rem;
    font-weight: 600;
}

.unp-check-addr[b-m5jlyz9aiv] {
    margin-top: 0.2rem;
    color: var(--text-2);
}

.unp-check-warn[b-m5jlyz9aiv] {
    margin-top: 0.3rem;
    color: var(--danger);
}

.unp-check-actions[b-m5jlyz9aiv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.unp-check-muted[b-m5jlyz9aiv] {
    color: var(--text-faint);
}
/* /Components/Shared/LicenseDeleteModal.razor.rz.scp.css */
.license-delete-what[b-trp4mjmql7] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0 0 1rem;
}

.license-delete-what dt[b-trp4mjmql7] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.license-delete-what dd[b-trp4mjmql7] {
    margin: 0;
    color: var(--text-strong);
    overflow-wrap: anywhere;
}

/* Что знает сервис лицензий: срок, на связи, ПК — через точку, на узком экране переносятся. */
.license-delete-service[b-trp4mjmql7] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.75rem;
}

/* Удаление только в CRM — жёлтой плашкой над причиной, как предупреждения блока «Лицензии». */
.license-delete-warn[b-trp4mjmql7] {
    margin: 0 0 1rem;
    padding: 0.6rem 0.8rem;
    border-radius: 0.4rem;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
    color: var(--text-body);
    font-size: 0.875rem;
}

.muted[b-trp4mjmql7] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

/* На телефоне подпись — над значением. */
@media (max-width: 640px) {
    .license-delete-what[b-trp4mjmql7] {
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    .license-delete-what dd[b-trp4mjmql7] {
        margin-bottom: 0.5rem;
    }
}
/* /Components/Shared/LicenseDemoCorrectionModal.razor.rz.scp.css */
/* Пояснение — над «Что изменится». */
.correction-hint[b-8p82oti33r] {
    margin: 0 0 0.75rem;
}

h3[b-8p82oti33r] {
    margin: 0.75rem 0 0.4rem;
    font-size: 0.95rem;
}

/* Сроки «было → стало» — подписи слева, значения справа; на телефоне значение переносится. */
.kv[b-8p82oti33r] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0 0 0.5rem;
}

.kv dt[b-8p82oti33r] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-8p82oti33r] {
    margin: 0;
    overflow-wrap: anywhere;
}

/* Исправлять нельзя или сделка поменялась, пока окно было открыто, — жёлтая плашка. */
.license-sync-notice[b-8p82oti33r] {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.8rem;
    border-radius: 0.4rem;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
}

.correction-line[b-8p82oti33r] {
    margin: 0.5rem 0;
    font-size: 0.9rem;
}

.field[b-8p82oti33r] {
    margin-top: 0.75rem;
}

.field input[b-8p82oti33r] {
    width: 100%;
}
/* /Components/Shared/LicenseSyncModal.razor.rz.scp.css */
/* Строки, которые «Применить» поменяет, — с жёлтой подложкой, чтобы их было видно среди совпадающих. */
.license-sync-changed td[b-7smlf42i55] {
    background: var(--warn-softer);
}

.license-id code[b-7smlf42i55] {
    overflow-wrap: anywhere;
}

/* Пояснение и итог сверки — над таблицей. */
.license-sync-hint[b-7smlf42i55],
.license-sync-same[b-7smlf42i55] {
    margin: 0 0 0.75rem;
}

.license-sync-same[b-7smlf42i55] {
    font-weight: 500;
}

/* Сервис поменялся, пока окно было открыто, или по номеру в сервисе ничего — жёлтая плашка над таблицей. */
.license-sync-notice[b-7smlf42i55] {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.8rem;
    border-radius: 0.4rem;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
}

/* Срок сделки после «Применить» — под таблицей. */
.license-sync-term[b-7smlf42i55] {
    margin: 0.75rem 0 0;
}

.check[b-7smlf42i55] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
    font-size: 0.875rem;
}

/* «Что будет» — одним блоком: на телефоне строка таблицы становится карточкой, и подписи не разъезжаются. */
.license-sync-what[b-7smlf42i55] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

/* Как перенесётся срок — демо-периодом или в «Оплачено до» — под строкой срока. */
.license-sync-kind[b-7smlf42i55] {
    margin: 0.35rem 0 0;
}
/* /Components/Shared/LicenseTransferModal.razor.rz.scp.css */
.license-transfer-h[b-7kj9jfu5qe] {
    margin: 0 0 0.5rem;
    font-size: 0.9375rem;
    color: var(--text-strong);
}

.license-transfer-what[b-7kj9jfu5qe] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0 0 0.5rem;
}

.license-transfer-what dt[b-7kj9jfu5qe] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.license-transfer-what dd[b-7kj9jfu5qe] {
    margin: 0;
    color: var(--text-strong);
    overflow-wrap: anywhere;
}

/* Лицензии — строкой каждая: тип, места, срок, ПК; идентификатор — под ней. */
.license-transfer-list[b-7kj9jfu5qe] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.license-transfer-list li[b-7kj9jfu5qe] {
    display: flex;
    flex-wrap: wrap;
    gap: 0 0.6rem;
}

.license-transfer-list code[b-7kj9jfu5qe] {
    flex-basis: 100%;
}

.license-mode-demo[b-7kj9jfu5qe] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.license-mode-paid[b-7kj9jfu5qe] {
    background: var(--ok-soft-strong);
    color: var(--ok-strong);
}

.license-transfer-note[b-7kj9jfu5qe] {
    margin: 0 0 1rem;
}

/* Связанные клиенты — кнопками-строками над поиском: выбор одним нажатием. */
.license-transfer-linked[b-7kj9jfu5qe] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin: 0 0 0.75rem;
}

.license-transfer-linked-btn[b-7kj9jfu5qe] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 0.6rem;
    text-align: left;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--surface);
    color: var(--text-strong);
    cursor: pointer;
}

.license-transfer-linked-btn:hover[b-7kj9jfu5qe] {
    background: var(--accent-softer);
}

.license-transfer-company[b-7kj9jfu5qe] {
    font-weight: 600;
}

.picked-lead[b-7kj9jfu5qe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--accent-softer);
    overflow-wrap: anywhere;
}

.linklike[b-7kj9jfu5qe] {
    border: none;
    background: none;
    padding: 0;
    color: var(--blue-600-text);
    cursor: pointer;
    font-size: 0.85rem;
    flex-shrink: 0;
}

/* Сделка клиента-получателя или «сделки нет» — под выбранным клиентом. */
.license-transfer-deal[b-7kj9jfu5qe] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin: 0.5rem 0 0;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--text-body);
    font-size: 0.875rem;
}

.license-transfer-closed[b-7kj9jfu5qe],
.license-transfer-has[b-7kj9jfu5qe] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.license-transfer-refusal[b-7kj9jfu5qe] {
    margin-top: 0.5rem;
}

.license-transfer-loading[b-7kj9jfu5qe] {
    margin: 0.5rem 0 0;
}

.field[b-7kj9jfu5qe] {
    margin-top: 1rem;
}

.muted[b-7kj9jfu5qe] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

/* На телефоне подпись — над значением. */
@media (max-width: 640px) {
    .license-transfer-what[b-7kj9jfu5qe] {
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    .license-transfer-what dd[b-7kj9jfu5qe] {
        margin-bottom: 0.5rem;
    }
}
/* /Components/Shared/MailFilePicker.razor.rz.scp.css */
.compose-files[b-90ql2ulpr9] {
    list-style: none;
    padding: 0;
    margin: 0.4rem 0 0 0;
    font-size: 0.82rem;
}

.compose-files li[b-90ql2ulpr9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.15rem 0;
}

/* «×» у файла — без рамки, как ссылка. */
.link-btn[b-90ql2ulpr9] {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--accent-text);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}

.link-btn:hover[b-90ql2ulpr9] {
    background: transparent;
    text-decoration: underline;
}
/* /Components/Shared/MailMessageView.razor.rz.scp.css */
.mail-view[b-omjsg888zu] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.mail-view-subject[b-omjsg888zu] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-strong);
}

.mail-view-meta[b-omjsg888zu] {
    font-size: 0.82rem;
    color: var(--text-body);
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border);
}

.mail-view-meta .lbl[b-omjsg888zu] {
    color: var(--text-muted);
    margin-right: 0.25rem;
}

.mail-view-meta .muted[b-omjsg888zu] {
    color: var(--text-faint);
}

/* Тело письма — на светлой «бумаге» в обеих темах: цвета в HTML отправителя рассчитаны на белый фон. Ссылки и
   заголовки внутри — своими цветами бумаги, общие (--link, --text-strong) в тёмной теме светлые. */
.mail-view-body[b-omjsg888zu] {
    font-size: 0.9rem;
    color: var(--paper-text);
    background: var(--paper-bg);
    color-scheme: light;
    border: 1px solid var(--paper-border);
    border-radius: var(--r-sm);
    padding: 0.75rem 0.9rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.mail-view-body[b-omjsg888zu]  a {
    color: var(--paper-link);
}

.mail-view-body[b-omjsg888zu]  :is(h1, h2, h3, h4, h5, h6) {
    color: inherit;
}

.mail-view-text[b-omjsg888zu] {
    margin: 0;
    white-space: pre-wrap;
    font: inherit;
}

.mail-view-attachments[b-omjsg888zu] {
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
}

/* Найденное поиском слово в теме и тексте письма. Тело письма — на светлой «бумаге» в обеих темах. */
.mail-view[b-omjsg888zu]  mark.mail-found {
    background: var(--found-bg);
    color: var(--found-text);
    border-radius: 2px;
    padding: 0 1px;
}
/* /Components/Shared/MoreMenu.razor.rz.scp.css */
.more-menu[b-ru96sghafq] {
    position: relative;
    display: inline-flex;
}

.more-btn[b-ru96sghafq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    padding: 6px 0;
}

.more-btn svg[b-ru96sghafq] {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

/* Кнопка с подписью — по ширине текста, «▾» отделён от него. */
.more-btn.more-text[b-ru96sghafq] {
    width: auto;
    gap: 6px;
    padding: 6px 12px 6px 14px;
}

.more-text .caret[b-ru96sghafq] {
    font-size: 0.75em;
    opacity: 0.8;
}

/* Нажатие в стороне закрывает меню: подложка во весь экран под меню, значок — над ней, чтобы повторное нажатие на
   него закрывало как обычно. */
.more-shield[b-ru96sghafq] {
    position: fixed;
    inset: 0;
    z-index: 29;
}

.more-menu.open .more-btn[b-ru96sghafq] {
    position: relative;
    z-index: 31;
    background: var(--surface-2);
}

.more-menu.open .more-btn.primary[b-ru96sghafq] { background: var(--accent-hover); }

.more-pop[b-ru96sghafq] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 30;
    display: flex;
    flex-direction: column;
    min-width: 12rem;
    max-height: min(70vh, 28rem);
    overflow-y: auto;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--surface);
    box-shadow: var(--shadow-md);
}

/* Пункты меню — кнопки во всю ширину без рамки, текст слева. Пункты рисует страница, поэтому ::deep. */
.more-pop[b-ru96sghafq]  [role=menuitem] {
    width: 100%;
    border: 0;
    border-radius: var(--r-sm);
    background: none;
    text-align: left;
    white-space: nowrap;
}

.more-pop[b-ru96sghafq]  [role=menuitem]:hover:not(:disabled) {
    background: var(--surface-2);
}

.more-pop[b-ru96sghafq]  [role=menuitem].danger {
    color: var(--danger);
}

.more-pop[b-ru96sghafq]  [role=menuitem].danger:hover:not(:disabled) {
    background: var(--danger-soft);
}

/* Разделитель перед красным пунктом: <hr class="menu-sep" /> внутри меню. */
.more-pop[b-ru96sghafq]  .menu-sep {
    width: 100%;
    margin: 4px 0;
    border: 0;
    border-top: 1px solid var(--border);
}
/* /Components/Shared/NotificationBell.razor.rz.scp.css */
.notification-bell[b-iszlpfwh17] {
    position: relative;
}

.bell-button[b-iszlpfwh17] {
    background: transparent;
    color: var(--topbar-text-2);
    border: none;
    border-radius: var(--r);
    cursor: pointer;
    font-size: 1.25rem;
    width: 36px;
    height: 36px;
    padding: 0;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.bell-button:hover:not(:disabled)[b-iszlpfwh17] {
    background: var(--topbar-hover);
    color: var(--topbar-text);
}

.bell-icon[b-iszlpfwh17] {
    display: inline-flex;
}

.bell-icon svg[b-iszlpfwh17] {
    width: 1.3rem;
    height: 1.3rem;
    display: block;
}

.badge[b-iszlpfwh17] {
    position: absolute;
    top: 3px;
    right: 2px;
    background: var(--red-400-bg);
    color: var(--on-accent);
    border-radius: 9999px;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 1px 5px;
    min-width: 16px;
    text-align: center;
    line-height: 1.2;
    box-shadow: 0 0 0 2px var(--topbar-bg);
}

.bell-dropdown[b-iszlpfwh17] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    width: 380px;
    max-width: 90vw;
    background: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 10px 25px var(--shade-20);
    z-index: 100;
    display: flex;
    flex-direction: column;
    max-height: 70vh;
    overflow: hidden;
}

/* Телефон: значок колокольчика стоит посреди шапки, и список шириной 380 с правым краем у значка уходит за левый край
   экрана. Здесь список прижат к краям окна под шапкой (её высота — 56px). */
@media (max-width: 720px) {
    .bell-dropdown[b-iszlpfwh17] {
        position: fixed;
        top: 60px;
        left: 8px;
        right: 8px;
        width: auto;
        max-width: 420px;
        margin-left: auto;
    }
}

.bell-header[b-iszlpfwh17] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.9rem;
    border-bottom: 1px solid var(--row-border);
    background: var(--surface-alt);
}

.bell-header .link[b-iszlpfwh17] {
    background: transparent;
    border: none;
    color: var(--link);
    cursor: pointer;
    font-size: 0.8rem;
    padding: 0;
}

.bell-header .link:hover[b-iszlpfwh17] {
    text-decoration: underline;
}

.bell-error[b-iszlpfwh17] {
    padding: 0.5rem 0.9rem;
    background: var(--danger-soft);
    border-bottom: 1px solid var(--danger-border);
    color: var(--danger-strong);
    font-size: 0.85rem;
}

.bell-empty[b-iszlpfwh17] {
    padding: 1.5rem 0.9rem;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.9rem;
}

.bell-list[b-iszlpfwh17] {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    flex: 1;
}

.bell-item[b-iszlpfwh17] {
    padding: 0.6rem 0.9rem;
    border-bottom: 1px solid var(--row-border);
    cursor: pointer;
}

.bell-item:hover[b-iszlpfwh17] {
    background: var(--surface-alt);
}

.bell-item.unread[b-iszlpfwh17] {
    background: var(--accent-soft);
}

.bell-item.unread:hover[b-iszlpfwh17] {
    background: var(--accent-soft-strong);
}

.bell-title[b-iszlpfwh17] {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 2px;
}

.bell-body[b-iszlpfwh17] {
    font-size: 0.825rem;
    color: var(--text-2);
    margin-bottom: 4px;
    word-wrap: break-word;
}

.bell-meta[b-iszlpfwh17] {
    font-size: 0.72rem;
    color: var(--text-faint);
}

.bell-footer[b-iszlpfwh17] {
    padding: 0.5rem 0.9rem;
    border-top: 1px solid var(--row-border);
    background: var(--surface-alt);
    text-align: center;
}

.bell-footer a[b-iszlpfwh17] {
    color: var(--link);
    font-size: 0.85rem;
    text-decoration: none;
}

.bell-footer a:hover[b-iszlpfwh17] {
    text-decoration: underline;
}

.toast-host[b-iszlpfwh17] {
    position: fixed;
    bottom: calc(1rem + var(--call-bar-offset, 0px));
    right: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    z-index: 1100;
    pointer-events: none;
}

.toast[b-iszlpfwh17] {
    background: var(--surface-inverse);
    color: var(--on-accent);
    padding: 0.7rem 2.2rem 0.7rem 0.9rem;
    border-radius: 6px;
    box-shadow: 0 10px 25px var(--shade-25);
    min-width: 260px;
    max-width: 360px;
    cursor: pointer;
    position: relative;
    pointer-events: auto;
    animation: toast-in-b-iszlpfwh17 0.18s ease-out;
}

.toast:hover[b-iszlpfwh17] {
    background: var(--slate-900-bg);
}

.toast-title[b-iszlpfwh17] {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 2px;
    word-wrap: break-word;
}

.toast-body[b-iszlpfwh17] {
    font-size: 0.82rem;
    color: var(--gray-150-text);
    word-wrap: break-word;
}

.toast-close[b-iszlpfwh17] {
    position: absolute;
    top: 4px;
    right: 8px;
    background: transparent;
    border: none;
    color: var(--text-faint);
    font-size: 1.1rem;
    cursor: pointer;
    line-height: 1;
}

.toast-close:hover[b-iszlpfwh17] {
    color: var(--on-accent);
}

@keyframes toast-in-b-iszlpfwh17 {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
/* /Components/Shared/OpportunityAssigneeCard.razor.rz.scp.css */
.assignee-card[b-2toq9pcr3k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.info[b-2toq9pcr3k] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.who[b-2toq9pcr3k] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
}

.who .email[b-2toq9pcr3k] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.claimed[b-2toq9pcr3k] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.free[b-2toq9pcr3k] {
    color: var(--text-2);
    font-style: italic;
}

.muted[b-2toq9pcr3k] {
    color: var(--text-faint);
    margin: 0;
}

.actions[b-2toq9pcr3k] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.error[b-2toq9pcr3k] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-top: 0.75rem;
}

.modal h3[b-2toq9pcr3k] {
    margin: 0 0 0.5rem 0;
    font-size: 1.0625rem;
}

.modal p.muted[b-2toq9pcr3k] {
    color: var(--text-muted);
    font-size: 0.875rem;
    margin: 0 0 1rem 0;
}

.user-select[b-2toq9pcr3k] {
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.user-select:focus[b-2toq9pcr3k] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-ring);
}

.modal-actions[b-2toq9pcr3k] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    margin-top: 1rem;
}

.transfer-tasks[b-2toq9pcr3k] {
    margin-top: 1rem;
    border-top: 1px solid var(--border);
    padding-top: 0.75rem;
}

.transfer-head[b-2toq9pcr3k] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-body);
}

.transfer-head .links[b-2toq9pcr3k] {
    font-weight: 400;
    color: var(--text-faint);
    white-space: nowrap;
}

.modal p.muted.hint[b-2toq9pcr3k] {
    font-size: 0.8125rem;
    margin: 0.35rem 0 0.6rem 0;
}

button.linklike[b-2toq9pcr3k] {
    padding: 0;
    border: none;
    background: none;
    color: var(--link);
    cursor: pointer;
    font: inherit;
    font-size: 0.8125rem;
}

button.linklike:hover[b-2toq9pcr3k] {
    background: none;
    text-decoration: underline;
}

.task-pick[b-2toq9pcr3k] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 240px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.task-pick li label[b-2toq9pcr3k] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.3rem 0.35rem;
    border-radius: 6px;
    cursor: pointer;
}

.task-pick li label:hover[b-2toq9pcr3k] {
    background: var(--surface-2);
}

.task-pick input[type="checkbox"][b-2toq9pcr3k] {
    margin: 0;
    position: relative;
    top: 2px;
}

.task-pick .t-title[b-2toq9pcr3k] {
    flex: 1;
    min-width: 0;
}

.task-pick .t-meta[b-2toq9pcr3k] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    white-space: nowrap;
}
/* /Components/Shared/OpportunityHistoryTimeline.razor.rz.scp.css */
.muted[b-chtt35krrc] {
    color: var(--text-muted);
    font-style: italic;
}

.timeline[b-chtt35krrc] {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

.timeline[b-chtt35krrc]::before {
    content: "";
    position: absolute;
    left: 11px;
    top: 6px;
    bottom: 6px;
    width: 2px;
    background: var(--surface-3);
}

.item[b-chtt35krrc] {
    position: relative;
    padding: 0.4rem 0 0.6rem 2rem;
}

.item:last-child[b-chtt35krrc] {
    padding-bottom: 0.2rem;
}

.dot[b-chtt35krrc] {
    position: absolute;
    left: 6px;
    top: 0.55rem;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--accent);
    border: 2px solid var(--white-border);
    box-shadow: 0 0 0 1px var(--accent);
}

.item.event-created .dot[b-chtt35krrc] { background: var(--event-indigo); box-shadow: 0 0 0 1px var(--event-indigo); }
.item.event-stagechanged .dot[b-chtt35krrc] { background: var(--event-blue); box-shadow: 0 0 0 1px var(--event-blue); }
.item.event-closed .dot[b-chtt35krrc] { background: var(--event-green); box-shadow: 0 0 0 1px var(--event-green); }
.item.event-reopened .dot[b-chtt35krrc] { background: var(--event-amber); box-shadow: 0 0 0 1px var(--event-amber); }
.item.event-claimed .dot[b-chtt35krrc] { background: var(--event-cyan); box-shadow: 0 0 0 1px var(--event-cyan); }
.item.event-released .dot[b-chtt35krrc] { background: var(--event-slate); box-shadow: 0 0 0 1px var(--event-slate); }
.item.event-reassigned .dot[b-chtt35krrc] { background: var(--event-purple); box-shadow: 0 0 0 1px var(--event-purple); }
.item.event-lineadded .dot[b-chtt35krrc] { background: var(--event-aqua); box-shadow: 0 0 0 1px var(--event-aqua); }
.item.event-lineupdated .dot[b-chtt35krrc] { background: var(--event-teal); box-shadow: 0 0 0 1px var(--event-teal); }
.item.event-lineremoved .dot[b-chtt35krrc] { background: var(--event-slate-light); box-shadow: 0 0 0 1px var(--event-slate-light); }
.item.event-documentgenerated .dot[b-chtt35krrc] { background: var(--event-pink); box-shadow: 0 0 0 1px var(--event-pink); }

.head[b-chtt35krrc] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
    font-size: 0.875rem;
}

.head .label[b-chtt35krrc] {
    font-weight: 600;
    color: var(--text-strong);
}

.head .actor[b-chtt35krrc] {
    color: var(--text-2);
}

.head .time[b-chtt35krrc] {
    color: var(--text-faint);
    font-size: 0.8125rem;
    margin-left: auto;
    font-variant-numeric: tabular-nums;
}

.body[b-chtt35krrc] {
    color: var(--text-body);
    font-size: 0.875rem;
    margin-top: 0.25rem;
}
/* /Components/Shared/OpportunityLicensesPanel.razor.rz.scp.css */
.kv[b-de8te4i4kj] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.5rem 1.5rem;
    margin: 0;
    max-width: 800px;
}

.kv dt[b-de8te4i4kj] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-de8te4i4kj] {
    margin: 0;
    color: var(--text-strong);
}

/* Номер и сроки — над таблицей выданных лицензий. */
.license-terms[b-de8te4i4kj] {
    margin-bottom: 1rem;
}

.muted[b-de8te4i4kj] {
    color: var(--text-muted);
    font-size: 0.875rem;
}

p.muted[b-de8te4i4kj] {
    color: var(--text-muted);
    font-size: 0.875rem;
    font-style: italic;
    margin: 0;
}

/* Кнопки действий — под таблицей, с промежутками; пояснение рядом переносится на узком экране. */
.install-book-row[b-de8te4i4kj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

/* «Только просмотр» в карточке задачи — над номером и сроками. */
.license-task-readonly[b-de8te4i4kj] {
    margin-bottom: 0.75rem;
}

/* Пояснение к «Оплачено до» — под строкой срока. */
.license-term-note[b-de8te4i4kj] {
    margin-top: 0.25rem;
}

/* Срок сделки разошёлся с лицензиями — над таблицей лицензий; кнопка переносится под текст на узком экране. */
.license-term-mismatch[b-de8te4i4kj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin: 0 0 1rem;
    padding: 0.6rem 0.8rem;
    border-radius: 0.4rem;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
    max-width: 800px;
}

/* Чего не хватает, чтобы убрать расхождение, — своей строкой под текстом. */
.license-term-hint[b-de8te4i4kj] {
    flex-basis: 100%;
}

/* «Лицензии сейчас»: демо или оплачены — плашкой; пояснение и «Исправить» рядом, на узком экране переносятся. */
.license-mode[b-de8te4i4kj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.6rem;
}

.license-mode-demo[b-de8te4i4kj] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.license-mode-paid[b-de8te4i4kj] {
    background: var(--ok-soft-strong);
    color: var(--ok-strong);
}

/* «Подтянуть из сервиса»: выбор «Оплаченная / Демо» с пояснением — во всю строку под кнопками. */
.license-link-choice[b-de8te4i4kj] {
    flex-basis: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 800px;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--border);
    border-radius: 0.4rem;
}

/* «Программа» у лицензии: установлена ли, когда на связи, версия; «ПК: 2 из 3» раскрывает список ПК под строкой. */
.license-install[b-de8te4i4kj] {
    min-width: 11rem;
}

.license-install-state[b-de8te4i4kj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
}

.license-installed[b-de8te4i4kj] {
    background: var(--ok-soft-strong);
    color: var(--ok-strong);
}

.license-not-installed[b-de8te4i4kj] {
    background: var(--warn-soft-strong);
    color: var(--warn-strong);
}

.license-pcs-toggle[b-de8te4i4kj] {
    margin-top: 0.2rem;
    font-size: 0.875rem;
}

.license-pcs[b-de8te4i4kj] {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.8125rem;
}

.license-pcs li[b-de8te4i4kj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0 0.5rem;
    color: var(--text-body);
    overflow-wrap: anywhere;
}

/* Отключённый и отклонённый ПК — серым: по лицензии они не работают. */
.license-pcs li.license-pc-off[b-de8te4i4kj] {
    color: var(--text-muted);
}

.license-install-off[b-de8te4i4kj] {
    margin-top: 0.5rem;
}

/* Письмо с лицензией ушло — зелёной строкой под таблицей, как у документов сделки. */
.license-mail-sent[b-de8te4i4kj] {
    margin-top: 0.75rem;
    background: var(--ok-softer);
    border: 1px solid var(--ok-border);
    color: var(--emerald-800-text);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    max-width: 800px;
}

.license-install-body[b-de8te4i4kj] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    min-width: 0;
}

/* На телефоне строка лицензии — карточкой «подпись слева, значение справа»: значение прижато вправо и переносится. */
@media (max-width: 640px) {
    .license-install[b-de8te4i4kj] {
        min-width: 0;
    }

    .license-install-body[b-de8te4i4kj] {
        align-items: flex-end;
    }

    .license-install-state[b-de8te4i4kj],
    .license-pcs li[b-de8te4i4kj] {
        justify-content: flex-end;
    }
}

/* «✉ Отправить» рядом со «Скачать» — такой же ссылкой, а не кнопкой в рамке. */
.row-actions .link-btn[b-de8te4i4kj] {
    font-size: inherit;
}

/* «Удалить» в строке лицензии — ссылкой цвета опасного действия: окно с причиной откроется до удаления. */
.row-actions .license-delete-btn[b-de8te4i4kj] {
    color: var(--danger);
}

/* «Удалённые (N)» — под таблицей; раскрытый список с причинами и «Вернуть». */
.license-deleted[b-de8te4i4kj] {
    margin-top: 0.75rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
}

.license-deleted-toggle[b-de8te4i4kj] {
    font-size: 0.875rem;
}

.license-deleted-table[b-de8te4i4kj] {
    width: 100%;
}

.license-deleted-reason[b-de8te4i4kj] {
    overflow-wrap: anywhere;
    max-width: 22rem;
}

@media (max-width: 640px) {
    .license-deleted-reason[b-de8te4i4kj] {
        max-width: none;
    }
}

/* Лицензии перенесены в другую сделку — строкой на месте таблицы: куда, когда и «Закрыть сделку…»; кнопка и
   пояснение переносятся под текст на узком экране. */
.license-transferred[b-de8te4i4kj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    max-width: 800px;
    padding: 0.6rem 0.8rem;
    border-radius: 0.4rem;
    background: var(--accent-softer);
    border: 1px solid var(--border);
    color: var(--text-body);
}

.license-transferred > span:first-child[b-de8te4i4kj] {
    flex-basis: 100%;
    overflow-wrap: anywhere;
}
/* /Components/Shared/OpportunityOutcomeHistory.razor.rz.scp.css */
.outcome-counts[b-1vd644jlpr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.outcome[b-1vd644jlpr] {
    display: inline-block;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.outcome-won[b-1vd644jlpr] { background: var(--emerald-100-bg); color: var(--emerald-800-text); border-color: var(--emerald-350-border); }
.outcome-lost[b-1vd644jlpr] { background: var(--danger-soft-strong); color: var(--danger-strong); border-color: var(--danger-border-strong); }

.muted[b-1vd644jlpr] { color: var(--text-muted); font-size: 0.8125rem; }

.outcome-chain[b-1vd644jlpr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.outcome-chain-item[b-1vd644jlpr] {
    border: 1px solid var(--border);
    border-left-width: 4px;
    border-radius: 6px;
    padding: 0.6rem 0.75rem;
    background: var(--surface-alt);
}

.outcome-chain-item.won[b-1vd644jlpr] { border-left-color: var(--emerald-600-border); }
.outcome-chain-item.lost[b-1vd644jlpr] { border-left-color: var(--red-400-border); }

.outcome-chain-head[b-1vd644jlpr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.35rem;
}

.outcome-chain-head .iter[b-1vd644jlpr] { font-weight: 600; }
.outcome-chain-head .period[b-1vd644jlpr] { color: var(--text-muted); font-size: 0.8125rem; }

.outcome-chain-meta[b-1vd644jlpr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    font-size: 0.875rem;
}

.outcome-chain-meta .reason strong[b-1vd644jlpr] { color: var(--danger-strong); }
.outcome-chain-meta .note[b-1vd644jlpr] { color: var(--text-muted); font-style: italic; }
.outcome-chain-meta .reopened[b-1vd644jlpr] { color: var(--link); }

.outcome-lines[b-1vd644jlpr] {
    margin-top: 0.4rem;
    font-size: 0.8125rem;
}

.outcome-lines summary[b-1vd644jlpr] {
    cursor: pointer;
    color: var(--text-body);
}

.outcome-lines ul[b-1vd644jlpr] {
    margin: 0.4rem 0 0;
    padding-left: 1.2rem;
}

/* Воронка попытки и «из Битрикс24» — серые метки рядом с датами. */
.tag[b-1vd644jlpr] {
    display: inline-block;
    padding: 0.05rem 0.45rem;
    border-radius: 4px;
    border: 1px solid var(--border-strong);
    background: var(--surface);
    color: var(--text-2);
    font-size: 0.75rem;
}

.tag-bitrix[b-1vd644jlpr] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
    color: var(--accent-text-strong);
}

/* «Исправить» и «Удалить» — справа в строке попытки; на узком экране переносятся под даты. */
.outcome-actions[b-1vd644jlpr] {
    display: inline-flex;
    gap: 0.4rem;
    margin-left: auto;
}

.outcome-counts .outcome-add[b-1vd644jlpr] {
    margin-left: auto;
}

.outcome-shaping-hint[b-1vd644jlpr] {
    margin: 0.5rem 0 0;
}

/* Сделка закрыта, а попытки, которой её закрыли, в истории нет — заметно, как предупреждение окна исправления. */
.outcome-closing-missing[b-1vd644jlpr] {
    margin: 0.5rem 0 0;
    padding: 0.4rem 0.6rem;
    border-radius: 6px;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
    font-size: 0.875rem;
}
/* /Components/Shared/OutboundConflictBar.razor.rz.scp.css */
/* Заметнее «сведений» экрана звонка: звонок поверх чужой работы — то, что оператор должен увидеть до набора. */
.conflict-bar[b-icyea1al0x] {
    display: flex; gap: .75rem; align-items: flex-start; justify-content: space-between; flex-wrap: wrap;
    background: var(--warn-soft); border: 2px solid var(--warn); color: var(--orange-750-text);
    padding: .7rem .9rem; border-radius: 8px; margin: .6rem 0;
}
.cb-text ul[b-icyea1al0x] { margin: .3rem 0 .35rem 1.1rem; padding: 0; }
.cb-text .muted[b-icyea1al0x] { font-size: .85rem; }
.cb-actions[b-icyea1al0x] { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; max-width: 22rem; }
.cb-error[b-icyea1al0x] { font-size: .85rem; color: var(--danger-strong); text-align: right; }

@media (max-width: 640px) {
    .cb-actions[b-icyea1al0x] { align-items: stretch; max-width: none; width: 100%; }
    .cb-error[b-icyea1al0x] { text-align: left; }
}
/* /Components/Shared/OutcomeAttemptModal.razor.rz.scp.css */
/* Поля попытки — в две колонки; причина и заметка — во всю ширину. На телефоне — одна колонка. */
.outcome-attempt-grid[b-n9vazbc98t] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1rem;
}

.outcome-attempt-grid > .span-2[b-n9vazbc98t] {
    grid-column: 1 / -1;
}

@media (max-width: 640px) {
    .outcome-attempt-grid[b-n9vazbc98t] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.outcome-attempt-summary[b-n9vazbc98t] {
    margin: 0 0 0.5rem;
}

/* Срок лицензии сделки — только когда меняется исход попытки, от которой зависит сделка. */
.outcome-attempt-term[b-n9vazbc98t] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 0.6rem;
    margin: 0 0 0.75rem;
}

.outcome-attempt-term-label[b-n9vazbc98t] {
    font-weight: 500;
    flex-basis: 100%;
}

.outcome-attempt-term input[type="date"][b-n9vazbc98t] {
    width: 10rem;
    max-width: 100%;
}

.check[b-n9vazbc98t] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.25rem;
}

/* «Что изменится» — над комментарием: человек видит последствия до того, как пишет «почему». */
.outcome-attempt-preview[b-n9vazbc98t] {
    margin: 0.75rem 0 1rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-alt);
}

.outcome-attempt-preview h3[b-n9vazbc98t] {
    margin: 0 0 0.35rem;
    font-size: 0.9rem;
}

.outcome-attempt-preview ul[b-n9vazbc98t] {
    margin: 0;
    padding-left: 1.1rem;
}

.outcome-attempt-preview li[b-n9vazbc98t] {
    margin: 0.15rem 0;
    overflow-wrap: anywhere;
}

/* Изменения самой сделки (стадия, срок, «клиент») — отдельным цветом от полей попытки. */
.outcome-attempt-preview li.deal[b-n9vazbc98t] {
    color: var(--accent-text);
}

.outcome-attempt-preview p[b-n9vazbc98t] {
    margin: 0.35rem 0 0;
}

.outcome-attempt-field[b-n9vazbc98t] {
    color: var(--text-body);
}

.outcome-attempt-refusal[b-n9vazbc98t] {
    color: var(--danger);
}

.outcome-attempt-warning[b-n9vazbc98t] {
    padding: 0.4rem 0.6rem;
    border-radius: 6px;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
    font-size: 0.875rem;
}

/* «Эта попытка закрыла сделку» — над полями: от галочки зависит, какие поля можно менять. */
.outcome-attempt-closing[b-n9vazbc98t] {
    margin: 0 0 0.75rem;
}

.outcome-attempt-closing p[b-n9vazbc98t] {
    margin: 0;
}
/* /Components/Shared/OutcomeBadge.razor.rz.scp.css */
.outcome[b-irqox3zagu] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid transparent;
    white-space: nowrap;
}

.outcome-open[b-irqox3zagu] { background: var(--accent-soft-strong); color: var(--accent-text-strong); border-color: var(--accent-border); }
.outcome-won[b-irqox3zagu]  { background: var(--emerald-100-bg); color: var(--emerald-800-text); border-color: var(--emerald-350-border); }
.outcome-lost[b-irqox3zagu] { background: var(--danger-soft-strong); color: var(--danger-strong); border-color: var(--danger-border-strong); }
/* /Components/Shared/PasswordChecklist.razor.rz.scp.css */
.password-checklist[b-ncloc9skjx] {
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    max-width: 40rem;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.password-checklist.passes[b-ncloc9skjx] {
    background: var(--ok-softer);
    border-color: var(--ok-border);
}

.password-checklist-count[b-ncloc9skjx] {
    margin: 0 0 0.3rem;
    font-weight: 600;
    color: var(--text-2);
}

.password-checklist.passes .password-checklist-count[b-ncloc9skjx] {
    color: var(--ok-strong);
}

.password-checklist ul[b-ncloc9skjx] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.password-checklist li[b-ncloc9skjx] {
    display: flex;
    gap: 0.4rem;
    align-items: baseline;
}

.check-mark[b-ncloc9skjx] {
    flex: none;
    width: 1rem;
    text-align: center;
    font-weight: 700;
}

.check-met .check-mark[b-ncloc9skjx] { color: var(--ok); }
.check-failed .check-mark[b-ncloc9skjx] { color: var(--danger); }
.check-failed[b-ncloc9skjx] { color: var(--danger-strong); }
.check-pending[b-ncloc9skjx] { color: var(--text-muted); }

.password-checklist-hint[b-ncloc9skjx] {
    margin: 0.35rem 0 0;
    color: var(--text-muted);
}
/* /Components/Shared/PaymentLinkModal.razor.rz.scp.css */
/* Жёлтая плашка над тем, что изменится: сумма иная, сделка закрыта, сделка чужая. */
.link-warning[b-lj4a59xg1k] {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.8rem;
    border-radius: 0.4rem;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
}

.kv[b-lj4a59xg1k] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0 0 0.75rem;
}

.kv dt[b-lj4a59xg1k] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-lj4a59xg1k] {
    margin: 0;
    overflow-wrap: anywhere;
}

.kv dd.link-ok[b-lj4a59xg1k] { color: var(--ok-strong, inherit); font-weight: 600; }
.kv dd.link-warn[b-lj4a59xg1k] { color: var(--warn-strong); font-weight: 600; }

@media (max-width: 760px) {
    .kv[b-lj4a59xg1k] { grid-template-columns: 1fr; gap: 0.15rem 0; }
    .kv dd[b-lj4a59xg1k] { margin-bottom: 0.5rem; }
}
/* /Components/Shared/PermissionChecklist.razor.rz.scp.css */
.perm-lock-hint[b-u5d1gr32td] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin: 0 0 0.75rem 0;
}

.perm-check.locked[b-u5d1gr32td],
.perm-group-toggle.locked[b-u5d1gr32td] {
    color: var(--text-faint);
    cursor: not-allowed;
}

.perm-check.locked code[b-u5d1gr32td] {
    color: var(--text-faint);
}

.perm-item.with-partners[b-u5d1gr32td] {
    display: block;
    margin: 0.2rem 0;
}

.perm-partners[b-u5d1gr32td] {
    display: block;
    margin-left: 1.5rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
    overflow-wrap: anywhere;
}
/* /Components/Shared/PhoneCallDialer.razor.rz.scp.css */
.call-button-status[b-c24e0fn4u2] {
    margin-left: 0.5rem;
    font-size: 0.85rem;
}

.call-button-status.ok[b-c24e0fn4u2] {
    color: var(--green-650-text);
}

.call-button-status.error[b-c24e0fn4u2] {
    color: var(--red-550-text);
}

.phone-confirm-overlay[b-c24e0fn4u2] {
    position: fixed;
    inset: 0;
    background: var(--backdrop-black);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
}

.phone-confirm-modal[b-c24e0fn4u2] {
    background: var(--surface);
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    width: min(420px, 92vw);
    box-shadow: 0 8px 30px var(--shade-25);
}

.phone-confirm-modal h4[b-c24e0fn4u2] {
    margin: 0 0 0.75rem;
}

.phone-confirm-reason[b-c24e0fn4u2] {
    margin: 0 0 0.75rem;
    color: var(--amber-650-text);
    font-size: 0.9rem;
}

.phone-confirm-orig[b-c24e0fn4u2] {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: var(--gray-650-text);
}

.phone-confirm-orig span[b-c24e0fn4u2] {
    font-weight: 600;
    color: var(--gray-850-text);
}

.phone-confirm-label[b-c24e0fn4u2] {
    display: block;
    font-size: 0.85rem;
    color: var(--gray-650-text);
    margin-bottom: 1rem;
}

.phone-confirm-input[b-c24e0fn4u2] {
    display: block;
    width: 100%;
    margin-top: 0.35rem;
    padding: 0.5rem 0.7rem;
    font-size: 1rem;
    border: 1px solid var(--gray-250-border);
    border-radius: 4px;
}

.phone-confirm-err[b-c24e0fn4u2] {
    margin: 0 0 0.75rem;
    color: var(--red-550-text);
    font-size: 0.85rem;
}

.phone-confirm-actions[b-c24e0fn4u2] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.phone-confirm-actions .primary[b-c24e0fn4u2] {
    padding: 0.4rem 1rem;
    background: var(--blue-450-bg);
    color: var(--on-accent);
    border: 1px solid var(--blue-450-border);
    border-radius: 4px;
    cursor: pointer;
}

.phone-confirm-actions .primary:disabled[b-c24e0fn4u2] {
    opacity: 0.6;
    cursor: not-allowed;
}

.phone-confirm-actions .secondary[b-c24e0fn4u2] {
    padding: 0.4rem 1rem;
    background: var(--surface-2);
    color: var(--gray-800-text);
    border: 1px solid var(--gray-200-border);
    border-radius: 4px;
    cursor: pointer;
}
/* /Components/Shared/PrimaryPin.razor.rz.scp.css */
/* Булавка «основной»: значок 16 px в квадрате 28 px, первым в ряду номера или адреса. Отмеченная — закрашена цветом
   ссылки; отметка без кнопки (нет права править лида) — тот же значок, но не нажимается. */

.primary-pin[b-2lob27ztsd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--text-muted);
}

.primary-pin svg[b-2lob27ztsd] {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

button.primary-pin[b-2lob27ztsd] {
    cursor: pointer;
}

button.primary-pin:hover:not(:disabled)[b-2lob27ztsd] {
    background: var(--surface-2);
    color: var(--link);
}

button.primary-pin:disabled[b-2lob27ztsd] {
    opacity: 0.5;
    cursor: default;
}

.primary-pin.on[b-2lob27ztsd] {
    color: var(--link);
}

.primary-pin.on svg[b-2lob27ztsd] {
    fill: currentColor;
}

.primary-pin.static[b-2lob27ztsd] {
    cursor: default;
}
/* /Components/Shared/RegistryAlarmStrip.razor.rz.scp.css */
.registry-strip[b-rup2xsjp0y] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.375rem 0.75rem;
    margin: 0 0 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 13.5px;
    font-weight: 500;
}

.registry-strip.liquidating[b-rup2xsjp0y] {
    background: var(--warn-soft);
    color: var(--warn-strong);
}

.registry-strip.dead[b-rup2xsjp0y] {
    background: var(--danger-soft);
    color: var(--danger-strong);
}

.registry-strip .msg[b-rup2xsjp0y] {
    font-weight: 400;
    color: var(--text-2);
}

.registry-strip .msg.err[b-rup2xsjp0y] {
    color: var(--danger-strong);
}
/* /Components/Shared/RegistryStateChip.razor.rz.scp.css */
.registry-chip[b-k0v4047mki] {
    display: inline-flex;
    text-decoration: none;
}

.registry-chip:hover[b-k0v4047mki]  .egr-badge {
    text-decoration: underline;
}
/* /Components/Shared/RenewalPaymentReleaseModal.razor.rz.scp.css */
/* Предупреждение — жёлтой плашкой над тем, что изменится. */
.release-warning[b-hcx6anjkai] {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.8rem;
    border-radius: 0.4rem;
    background: var(--warn-softer);
    border: 1px solid var(--amber-250-border);
}

/* Подписи слева, значения справа; на телефоне значение переносится. */
.kv[b-hcx6anjkai] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 1.25rem;
    margin: 0 0 0.75rem;
}

.kv dt[b-hcx6anjkai] {
    color: var(--text-muted);
    font-size: 0.8125rem;
}

.kv dd[b-hcx6anjkai] {
    margin: 0;
    overflow-wrap: anywhere;
}

/* Продление останется совсем без оплаты — красным, как «нет оплаты» в «Продлениях и оплате». */
.kv dd.release-empty[b-hcx6anjkai] {
    color: var(--danger);
    font-weight: 500;
}

@media (max-width: 480px) {
    .kv[b-hcx6anjkai] {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    .kv dd[b-hcx6anjkai] {
        margin-bottom: 0.4rem;
    }
}
/* /Components/Shared/RenewalSnoozeMenu.razor.rz.scp.css */
.renewal-snooze[b-qbvem72669] { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.snooze-error[b-qbvem72669] { max-width: 22rem; text-align: right; }
.renewal-snooze[b-qbvem72669]  .snooze-sub { display: block; font-size: .8em; opacity: .7; }
.renewal-snooze[b-qbvem72669]  .snooze-note { display: block; max-width: 18rem; margin: 4px 0 0; padding: 8px 12px 4px; border-top: 1px solid var(--border); color: var(--text-2); font-size: .85em; line-height: 1.45; white-space: normal; text-align: left; }
/* /Components/Shared/RequiredFieldsModal.razor.rz.scp.css */
.modal-header[b-u68pzt9u8d] {
    padding: 1.25rem 1.5rem 0.5rem;
    border-bottom: 1px solid var(--border);
}

.modal-header h2[b-u68pzt9u8d] {
    margin: 0 0 0.25rem 0;
    font-size: 1.1rem;
}

.modal-header .muted[b-u68pzt9u8d] {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.875rem;
}

.modal-body[b-u68pzt9u8d] {
    padding: 1rem 1.5rem;
    overflow-y: auto;
    flex: 1 1 auto;
}

.modal-body h3[b-u68pzt9u8d] {
    margin: 0.75rem 0 0.5rem;
    font-size: 0.95rem;
    color: var(--text-body);
}

.modal-body h3:first-child[b-u68pzt9u8d] {
    margin-top: 0;
}

.modal-footer[b-u68pzt9u8d] {
    padding: 0.75rem 1.5rem 1.25rem;
    border-top: 1px solid var(--border);
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.modal-footer button[b-u68pzt9u8d] {
    padding: 0.5rem 1rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
}

.modal-footer button.primary[b-u68pzt9u8d] {
    background: var(--accent);
    color: var(--on-accent);
    border-color: var(--accent);
}

.modal-footer button.primary:hover[b-u68pzt9u8d] {
    background: var(--accent-hover);
}

.modal-footer button.primary:disabled[b-u68pzt9u8d] {
    opacity: 0.6;
    cursor: not-allowed;
}

.modal-footer button.secondary:hover[b-u68pzt9u8d] {
    background: var(--surface-2);
}
/* /Components/Shared/ResetFiltersButton.razor.rz.scp.css */
.reset-filters[b-csiapyphz2] { font-size: .8rem; padding: .3rem .7rem; }
/* /Components/Shared/ReviewedMatchChip.razor.rz.scp.css */
.reviewed-chip[b-phvsagppqd] {
    display: inline-block;
    margin-left: .35rem;
    padding: 0 .45rem;
    border-radius: 999px;
    border: 1px solid var(--border-strong);
    background: var(--surface-2);
    color: var(--text-2);
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    vertical-align: middle;
    align-self: flex-start;
}

.reviewed-chip.linked[b-phvsagppqd] {
    border-color: var(--blue-100-border);
    background: var(--accent-soft);
    color: var(--indigo-600-text);
}
/* /Components/Shared/SignInList.razor.rz.scp.css */
.muted[b-p0ickojru8] {
    color: var(--text-muted);
}

.hint[b-p0ickojru8] {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/* «Chrome · Windows» — одним словом: на 1280 колонка узкая, и подпись ломалась посередине. */
.device[b-p0ickojru8] {
    font-weight: 500;
    white-space: nowrap;
}

.open-now[b-p0ickojru8] {
    color: var(--ok-strong);
}

.this-device[b-p0ickojru8] {
    color: var(--accent-text);
    font-weight: 500;
}

.ended-toggle[b-p0ickojru8] {
    margin-top: 0.75rem;
}

.ended-sign-ins[b-p0ickojru8] {
    margin-top: 0.5rem;
}

.ended-sign-ins td[b-p0ickojru8] {
    color: var(--text-2);
}
/* /Components/Shared/StageBadge.razor.rz.scp.css */
/* Цвета — от класса stage-<цвет> на самом бейдже (описание — app.css, «Цвет стадии воронки»). */
.stage-badge[b-k5akketuxd] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.3;
    border: 1px solid var(--stage-border);
    background: var(--stage-bg);
    color: var(--stage-text);
    white-space: nowrap;
}

.type-marker[b-k5akketuxd] {
    font-weight: 700;
    font-size: 0.7rem;
}
/* /Components/Shared/StageMoveConfirmDialog.razor.rz.scp.css */
/* Выигрыш у направления с продлением: сделка не останется выигранной — жёлтой плашкой, чтобы прочли до нажатия. */
.renewal-note[b-fe0dbjx2zl] {
    padding: 8px 10px;
    border: 1px solid var(--warn-border);
    border-radius: var(--r);
    background: var(--warn-softer);
    color: var(--warn-strong);
    font-size: 0.875rem;
}
/* /Components/Shared/StageRequiredFieldsDialog.razor.rz.scp.css */
.modal-header[b-0kera9m8es] {
    padding: 1.25rem 1.5rem 0.5rem;
    border-bottom: 1px solid var(--border);
}

.modal-header h2[b-0kera9m8es] {
    margin: 0 0 0.25rem 0;
    font-size: 1.1rem;
}

.modal-header .muted[b-0kera9m8es] {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.875rem;
}

.modal-body[b-0kera9m8es] {
    padding: 1rem 1.5rem;
    overflow-y: auto;
    flex: 1 1 auto;
}

.modal-body h3[b-0kera9m8es] {
    margin: 1rem 0 0.5rem;
    font-size: 0.95rem;
    color: var(--text-body);
}

.modal-body h3:first-child[b-0kera9m8es] {
    margin-top: 0;
}

.required-list[b-0kera9m8es] {
    list-style: none;
    padding: 0;
    margin: 0 0 0.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.required-list li label[b-0kera9m8es] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem;
    cursor: pointer;
    padding: 0.4rem 0.5rem;
    border-radius: 6px;
}

.required-list li label:hover[b-0kera9m8es] {
    background: var(--surface-alt);
}

.required-list .hint[b-0kera9m8es] {
    flex-basis: 100%;
    color: var(--text-muted);
    font-size: 0.8125rem;
    margin-left: 1.5rem;
}

.modal-body .muted[b-0kera9m8es] {
    color: var(--text-muted);
}

.modal-body .error[b-0kera9m8es] {
    margin-top: 0.75rem;
    color: var(--danger);
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
}

.modal-footer[b-0kera9m8es] {
    padding: 0.75rem 1.5rem 1.25rem;
    border-top: 1px solid var(--border);
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.modal-footer button[b-0kera9m8es] {
    padding: 0.5rem 1rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    font: inherit;
    cursor: pointer;
}

.modal-footer button.primary[b-0kera9m8es] {
    background: var(--accent);
    color: var(--on-accent);
    border-color: var(--accent);
}

.modal-footer button.primary:hover[b-0kera9m8es] {
    background: var(--accent-hover);
}

.modal-footer button.primary:disabled[b-0kera9m8es] {
    opacity: 0.6;
    cursor: not-allowed;
}

.modal-footer button.secondary:hover[b-0kera9m8es] {
    background: var(--surface-2);
}
/* /Components/Shared/StageStrip.razor.rz.scp.css */
/* Сегменты делят ширину поровну: сколько бы стадий ни было, полоса — в одну строку. */
.segs[b-codbbdlowl] {
    display: flex;
    gap: 3px;
    margin-top: 10px;
}

.seg[b-codbbdlowl] {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    height: 16px;
}

.seg[b-codbbdlowl]::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 5px;
    height: 6px;
    border-radius: 3px;
    background: var(--surface-3);
}

/* Сегмент-кнопка (полосу можно нажимать): без рамки и фона кнопки, наведение темнит саму черту. */
button.seg[b-codbbdlowl] {
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: transparent;
}

button.seg:hover:not(:disabled)[b-codbbdlowl] { background: transparent; }
button.seg:not(.done):hover:not(:disabled)[b-codbbdlowl]::before { background: var(--border-strong); }
button.seg:disabled[b-codbbdlowl] { opacity: 1; cursor: default; }

.seg.done[b-codbbdlowl]::before { background: var(--accent); opacity: 0.45; }
button.seg.done:hover:not(:disabled)[b-codbbdlowl]::before { opacity: 0.75; }
.seg.current[b-codbbdlowl]::before { top: 4px; height: 8px; background: var(--accent); opacity: 1; }
.seg.current.won[b-codbbdlowl]::before { background: var(--ok-solid); }
.seg.current.lost[b-codbbdlowl]::before { background: var(--danger-solid); }

/* Подписи: первая — у левого края, последняя — у правого, текущая — под своим сегментом. Наложения убирает скрипт;
   пока он не замерил, крайних подписей не видно — текущая видна всегда. */
.seg-labels[b-codbbdlowl] {
    position: relative;
    height: 18px;
    margin-top: 1px;
    font-size: 0.75rem;
    line-height: 18px;
    color: var(--text-2);
}

.seg-labels span[b-codbbdlowl] {
    position: absolute;
    top: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.seg-labels .first[b-codbbdlowl] { left: 0; }
.seg-labels .last[b-codbbdlowl] { right: 0; }

.seg-labels .cur[b-codbbdlowl] {
    color: var(--text);
    font-weight: 600;
    transform: translateX(-50%);
}

.seg-labels .cur.at-left[b-codbbdlowl],
.seg-labels .cur[data-edge="left"][b-codbbdlowl] {
    left: 0 !important;
    transform: none;
}

.seg-labels .cur.at-right[b-codbbdlowl],
.seg-labels .cur[data-edge="right"][b-codbbdlowl] {
    left: auto !important;
    right: 0;
    transform: none;
}

.seg-labels [data-hidden][b-codbbdlowl],
.seg-labels:not([data-fitted]) .first[b-codbbdlowl],
.seg-labels:not([data-fitted]) .last[b-codbbdlowl] {
    visibility: hidden;
}

/* «Все стадии (N)» слева, справа — то, что положила страница (запись на установку); на узком — друг под другом.
   position: relative — под строкой всплывает подсказка «ⓘ» из правой части. */
.stage-foot[b-codbbdlowl] {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin-top: 4px;
}

.stage-all[b-codbbdlowl] {
    flex: 1 1 260px;
    min-width: 0;
}

.stage-all > summary[b-codbbdlowl] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 0;
    color: var(--link);
    font-size: 0.8125rem;
    cursor: pointer;
    list-style: none;
}

.stage-all > summary[b-codbbdlowl]::-webkit-details-marker { display: none; }

.stage-all > summary[b-codbbdlowl]::after {
    content: "▾";
    transition: transform 0.15s;
}

.stage-all[open] > summary[b-codbbdlowl]::after { transform: rotate(180deg); }

.stage-chips[b-codbbdlowl] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 8px 0 4px;
    padding: 0;
    list-style: none;
}

.stage-chip[b-codbbdlowl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 26px;
    padding: 2px 10px;
    border: 1px solid var(--border-strong);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text-2);
    font-size: 0.78rem;
    font-weight: 500;
}

/* Строка-кнопка — та же «пилюля»: шрифт и высота от .stage-chip, а не от общих кнопок. */
button.stage-chip[b-codbbdlowl] {
    line-height: 1.2;
    text-align: left;
}

button.stage-chip:hover:not(:disabled)[b-codbbdlowl] {
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--text);
}

button.stage-chip:disabled[b-codbbdlowl] { opacity: 1; cursor: default; }

.stage-chip .n[b-codbbdlowl] { font-variant-numeric: tabular-nums; }
.stage-chip.done[b-codbbdlowl] { color: var(--text); }
.stage-chip.done .mark[b-codbbdlowl] { color: var(--accent-text); }

.stage-chip.current[b-codbbdlowl] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--on-accent);
}

.stage-chip.current.won[b-codbbdlowl] {
    background: var(--ok-soft);
    border-color: var(--ok-border);
    color: var(--ok);
}

.stage-chip.current.lost[b-codbbdlowl] {
    background: var(--danger-soft);
    border-color: var(--danger-border);
    color: var(--danger);
}
/* /Components/Shared/TaskCreateForm.razor.rz.scp.css */
.field[b-d3mygu8qln] {
    display: flex;
    flex-direction: column;
    margin-bottom: 0.75rem;
}

.field label[b-d3mygu8qln] {
    margin-bottom: 0.25rem;
}

.field[b-d3mygu8qln]  input[type="text"],
.field[b-d3mygu8qln]  input[type="number"],
.field[b-d3mygu8qln]  input[type="datetime-local"],
.field[b-d3mygu8qln]  textarea,
.field[b-d3mygu8qln]  select {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    font: inherit;
    background: var(--surface);
}

.field[b-d3mygu8qln]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.row[b-d3mygu8qln] {
    display: flex;
    gap: 1rem;
}

.row .field[b-d3mygu8qln] {
    flex: 1;
}

.hint[b-d3mygu8qln] {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-top: 0.25rem;
}

.hint[b-d3mygu8qln]  a {
    color: var(--accent-text);
}

.seg[b-d3mygu8qln] {
    display: flex;
    gap: 1.25rem;
    align-items: center;
}

.seg-opt[b-d3mygu8qln] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
}

.check-list[b-d3mygu8qln] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
}

.chk[b-d3mygu8qln] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.875rem;
}

.form-actions[b-d3mygu8qln] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.error[b-d3mygu8qln] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin: 0.5rem 0;
}
/* /Components/Shared/TaskDueLabel.razor.rz.scp.css */
.due-today[b-1qh95m89bz] { color: var(--ok); }
.due-tomorrow[b-1qh95m89bz] { color: var(--warn); }
/* /Components/Shared/TaskRow.razor.rz.scp.css */
.task-row[b-2kgxrjoqkx] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    column-gap: 1rem;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--row-line);
    background: var(--surface);
}

/* Закрытая строка бледнее — вся, кроме меню «⋯»: прозрачность на самой строке сделала бы меню полупрозрачным, а
   следующую строку положила бы поверх него. */
.task-row.status-done > :not(.task-row-actions)[b-2kgxrjoqkx],
.task-row.status-done .task-row-actions[b-2kgxrjoqkx]  button:not([role=menuitem]) { opacity: 0.75; }
.task-row.status-cancelled > :not(.task-row-actions)[b-2kgxrjoqkx],
.task-row.status-cancelled .task-row-actions[b-2kgxrjoqkx]  button:not([role=menuitem]) { opacity: 0.65; }

.task-row-main[b-2kgxrjoqkx] { min-width: 0; line-height: 1.35; }

.task-row-client[b-2kgxrjoqkx] {
    font-weight: 600;
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.task-row-client[b-2kgxrjoqkx]  .task-row-client-link { color: var(--text-strong); text-decoration: none; }
.task-row-client[b-2kgxrjoqkx]  .task-row-client-link:hover { text-decoration: underline; }

.task-row-line[b-2kgxrjoqkx] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.1rem 0.5rem;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/* Тип дела — спокойный серый значок в начале и серое слово после дела; цвет в строке остаётся только у срока.
   Классы type-badge и type-* прежние (по ним находят строку сценарии съёмки), но цвета у них нет. */
.task-row-type[b-2kgxrjoqkx] {
    color: var(--text-faint);
    font-size: 0.8125rem;
    white-space: nowrap;
    filter: grayscale(1);
}

.task-row-typeword[b-2kgxrjoqkx] { color: var(--text-muted); white-space: nowrap; }

.task-row-title[b-2kgxrjoqkx] { color: var(--text-strong); font-weight: 500; text-decoration: none; }
.task-row-title.lead[b-2kgxrjoqkx] { font-weight: 600; font-size: 0.9rem; }
.task-row-title:hover[b-2kgxrjoqkx] { text-decoration: underline; }

.task-row-line[b-2kgxrjoqkx]  a { color: var(--accent-text); text-decoration: none; }
.task-row-line[b-2kgxrjoqkx]  a:hover { text-decoration: underline; }

.task-row-desc[b-2kgxrjoqkx] {
    margin-top: 0.1rem;
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.task-row-state[b-2kgxrjoqkx] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.05rem;
    font-size: 0.8125rem;
    text-align: right;
}

.task-row-due[b-2kgxrjoqkx] { white-space: nowrap; }
.task-row-due.is-overdue[b-2kgxrjoqkx] { color: var(--danger-strong); }
.task-row-done[b-2kgxrjoqkx] { color: var(--text-muted); font-size: 0.75rem; }

.task-row-badges[b-2kgxrjoqkx] { display: inline-flex; gap: 0.3rem; flex-wrap: wrap; justify-content: flex-end; }

/* Статус и пул — нейтральные: серые, без цвета; тревожный цвет в строке только у срока. */
.task-row-status[b-2kgxrjoqkx],
.task-row-pool[b-2kgxrjoqkx] {
    padding: 0 0.5rem;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 500;
    background: var(--chip-bg);
    color: var(--text-body);
    white-space: nowrap;
}
.task-row-pool[b-2kgxrjoqkx] { background: transparent; box-shadow: inset 0 0 0 1px var(--border-strong); }

.task-row-actions[b-2kgxrjoqkx] { display: flex; justify-content: flex-end; flex-wrap: nowrap; gap: 0.35rem; min-width: 6rem; }

.task-row-actions[b-2kgxrjoqkx]  button { padding: 0.15rem 0.6rem; font-size: 0.8125rem; }

@media (max-width: 760px) {
    .task-row[b-2kgxrjoqkx] {
        grid-template-columns: minmax(0, 1fr) auto;
        row-gap: 0.25rem;
    }

    .task-row-desc[b-2kgxrjoqkx] { -webkit-line-clamp: 3; }
    .task-row-main[b-2kgxrjoqkx] { grid-column: 1 / -1; }
    .task-row-state[b-2kgxrjoqkx] { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.6rem; text-align: left; }
    .task-row-actions[b-2kgxrjoqkx] { grid-column: 1 / -1; justify-content: flex-start; min-width: 0; }
    .task-row-actions:empty[b-2kgxrjoqkx] { display: none; }

    /* «⋯» — у правого края строки: его меню открывается влево и не уходит за экран. */
    .task-row-actions[b-2kgxrjoqkx]  .more-menu { margin-left: auto; }
}
.task-row-assignee strong[b-2kgxrjoqkx] { color: var(--text-2); font-weight: 600; }
/* /Components/Shared/TasksList.razor.rz.scp.css */
.tasks-block[b-gpp6muzruj] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.head[b-gpp6muzruj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.inline-checkbox[b-gpp6muzruj] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--text-2);
}

.muted[b-gpp6muzruj] {
    color: var(--text-muted);
    font-style: italic;
    margin: 0;
}

.list[b-gpp6muzruj] {
    list-style: none;
    padding: 0;
    margin: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
}

.list[b-gpp6muzruj]  > li:last-child { border-bottom: none; }
.list[b-gpp6muzruj]  > li:first-child { border-top-left-radius: 8px; border-top-right-radius: 8px; }
.list[b-gpp6muzruj]  > li:last-child { border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; }

.modal h3[b-gpp6muzruj] {
    margin: 0 0 1rem 0;
    font-size: 1.0625rem;
}

.row[b-gpp6muzruj] {
    display: flex;
    gap: 0.75rem;
}

.row .field[b-gpp6muzruj] {
    flex: 1;
}

.field[b-gpp6muzruj] {
    margin-bottom: 0.85rem;
    display: flex;
    flex-direction: column;
}

.field label[b-gpp6muzruj] {
    margin-bottom: 0.25rem;
}

.field[b-gpp6muzruj]  .validation-message {
    color: var(--danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.field .hint[b-gpp6muzruj] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

.form-actions[b-gpp6muzruj] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    margin-top: 1rem;
}

.error[b-gpp6muzruj] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger-strong);
    padding: 0.45rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
}
/* /Components/Shared/TextPhoneCallHost.razor.rz.scp.css */
/* «Звоним…» или ошибка звонка из текста — плашкой внизу по центру, над полосой разговора (--call-bar-offset, app.css):
   справа сверху живёт плашка входящего. Окно «Проверьте номер» — во весь экран, как у кнопки в карточке. */
.text-phone-call-host[b-ab8ualq792]  .call-button-status {
    position: fixed;
    left: 50%;
    bottom: calc(var(--call-bar-offset, 0px) + 1.25rem);
    transform: translateX(-50%);
    max-width: calc(100vw - 2rem);
    margin: 0;
    padding: 0.5rem 1rem;
    background: var(--surface);
    border: 1px solid var(--gray-200-border);
    border-radius: 6px;
    box-shadow: 0 4px 16px var(--shade-25);
    font-size: 0.9rem;
    z-index: 1040;
}
/* /Components/Shared/ThemeToggle.razor.rz.scp.css */
/* Тумблер темы: дорожка с солнцем слева и луной справа, ползунок под значком действующей темы. Положение ползунка —
   по теме страницы (data-theme у <html>), а не по состоянию компонента: первый кадр верен ещё до подключения вкладки,
   и смена темы где угодно (профиль, система) двигает его сразу. */
.theme-toggle-host[b-yajpni8znp] {
    position: relative;
    display: inline-flex;
}

.theme-toggle[b-yajpni8znp] {
    position: relative;
    display: inline-grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    justify-items: center;
    width: 52px;
    height: 28px;
    padding: 0;
    margin: 0 4px;
    border: 1px solid var(--topbar-input-border);
    border-radius: 9999px;
    background: var(--topbar-input-bg);
    cursor: pointer;
    flex-shrink: 0;
}

.theme-toggle:hover[b-yajpni8znp] {
    border-color: var(--topbar-btn-border);
}

.theme-toggle:focus-visible[b-yajpni8znp] {
    outline: none;
    box-shadow: var(--ring);
}

.theme-toggle-knob[b-yajpni8znp] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 22px;
    height: 22px;
    border-radius: 9999px;
    background: var(--accent-soft);
    border: 1px solid var(--accent-soft-border);
    box-shadow: 0 1px 2px var(--shade-20);
    transition: transform 0.18s ease;
}

:root[data-theme="dark"] .theme-toggle-knob[b-yajpni8znp] {
    transform: translateX(24px);
}

.theme-toggle-sun[b-yajpni8znp],
.theme-toggle-moon[b-yajpni8znp] {
    position: relative;
    display: inline-flex;
}

.theme-toggle-sun[b-yajpni8znp] { color: var(--warn); }
.theme-toggle-moon[b-yajpni8znp] { color: var(--accent-text); }

.theme-toggle[b-yajpni8znp]  .theme-toggle-icon {
    display: block;
    width: 14px;
    height: 14px;
}

.theme-toggle-error[b-yajpni8znp] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 100;
    width: max-content;
    max-width: 260px;
    padding: 6px 10px;
    border: 1px solid var(--danger-border);
    border-radius: var(--r);
    background: var(--danger-soft);
    color: var(--danger);
    font-size: 13px;
    line-height: 1.35;
    box-shadow: 0 6px 16px var(--shade-20);
}

@media (prefers-reduced-motion: reduce) {
    .theme-toggle-knob[b-yajpni8znp] { transition: none; }
}

@media (max-width: 860px) {
    .theme-toggle[b-yajpni8znp] { margin: 0 2px; }
}

/* Телефон: дорожка не помещается рядом с «?», колокольчиком, «Закончить работу» и «Выйти» — тумблер становится
   значком 36 × 36, как соседние, со значком действующей темы. */
@media (max-width: 480px) {
    .theme-toggle[b-yajpni8znp] {
        grid-template-columns: 1fr;
        width: 36px;
        height: 36px;
        margin: 0;
        border-color: transparent;
        border-radius: var(--r);
        background: transparent;
    }

    .theme-toggle:hover[b-yajpni8znp] {
        border-color: transparent;
        background: var(--topbar-hover);
    }

    .theme-toggle-knob[b-yajpni8znp] { display: none; }

    .theme-toggle-sun[b-yajpni8znp],
    .theme-toggle-moon[b-yajpni8znp] { grid-area: 1 / 1; }

    :root[data-theme="dark"] .theme-toggle-sun[b-yajpni8znp],
    :root:not([data-theme="dark"]) .theme-toggle-moon[b-yajpni8znp] { display: none; }

    .theme-toggle[b-yajpni8znp]  .theme-toggle-icon {
        width: 1.3rem;
        height: 1.3rem;
    }
}
/* /Components/Shared/UserHistoryList.razor.rz.scp.css */
.muted[b-ki7avjly52] {
    color: var(--text-muted);
}

.when[b-ki7avjly52] {
    white-space: nowrap;
}
/* /Components/Shared/UserWorkloadList.razor.rz.scp.css */
.workload[b-rgmy6nul0o] {
    margin: 0 0 0.75rem 0;
    padding-left: 1.25rem;
}

.workload li[b-rgmy6nul0o] {
    margin-bottom: 0.25rem;
}

.muted[b-rgmy6nul0o] {
    color: var(--text-muted);
}
/* /Components/Shared/ViewAsEnter.razor.rz.scp.css */
.view-as-enter[b-z0r36kd39z] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .75rem;
    margin: 0 0 .35rem;
}

.view-as-enter label[b-z0r36kd39z] {
    margin: 0;
    font-size: .875rem;
    color: var(--text-muted);
}

.view-as-enter select[b-z0r36kd39z] {
    width: auto;
    max-width: 100%;
}

.view-as-enter-hint[b-z0r36kd39z] {
    font-size: .8125rem;
    color: var(--text-muted);
    margin: 0 0 1rem;
}
/* /Components/Shared/WorkMarkDialog.razor.rz.scp.css */
.mark-time[b-94xj2g0clg] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0.5rem 0;
}

.mark-time input[b-94xj2g0clg] {
    width: auto;
}

.mark-bounds[b-94xj2g0clg] {
    margin: 0.25rem 0 0.5rem;
}
/* /Components/Shared/WorkMarkItems.razor.rz.scp.css */
.mark-group[b-3nwt3ibqdo] {
    display: block;
    padding: 6px 10px 2px;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-faint);
    text-align: left;
}
/* /Components/Shared/WorkPresenceControl.razor.rz.scp.css */
.work-presence-toggle[b-8p5pmgkkz7] {
    border: 1px solid transparent;
    border-radius: var(--r-sm);
    padding: 6px 14px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 20px;
    cursor: pointer;
}

/* «В работе» — статус, а не главное действие: кнопка шапки с зелёным текстом и рамкой, чтобы не доминировать над
   остальным. «Не в работе» — тёплая подложка: смена не открыта, на это стоит обратить внимание. */
.work-presence-toggle.on[b-8p5pmgkkz7] {
    white-space: nowrap;
    background: var(--topbar-btn-bg);
    color: var(--topbar-ok);
    border-color: var(--topbar-ok-border);
}

.work-presence-toggle.on:hover:not(:disabled)[b-8p5pmgkkz7] {
    background: var(--topbar-hover);
    border-color: var(--topbar-ok-border);
}

.work-presence-toggle.off[b-8p5pmgkkz7] {
    background: var(--warn-soft);
    color: var(--warn);
    border-color: var(--warn-border);
}

.work-presence-toggle.off:hover:not(:disabled)[b-8p5pmgkkz7] {
    background: var(--warn-soft-strong);
    border-color: var(--warn-border);
}

.work-presence-toggle:disabled[b-8p5pmgkkz7] {
    opacity: 0.6;
    cursor: default;
}

.work-presence-badge[b-8p5pmgkkz7] {
    color: var(--topbar-text-2);
    font-size: 13px;
}

.work-presence-overlay[b-8p5pmgkkz7] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--backdrop-strong);
    backdrop-filter: blur(2px);
}

.work-presence-modal[b-8p5pmgkkz7] {
    background: var(--surface);
    border-radius: 12px;
    box-shadow: 0 12px 40px var(--shade-25);
    padding: 2rem 2.25rem;
    max-width: 420px;
    text-align: center;
    color: var(--text);
}

.work-presence-modal h2[b-8p5pmgkkz7] {
    margin-top: 0;
    color: var(--text-strong);
}

.work-presence-modal p[b-8p5pmgkkz7] {
    color: var(--text-body);
}

.work-presence-modal .error[b-8p5pmgkkz7] {
    margin: 0.5rem 0;
    color: var(--red-500-text);
}

.work-presence-modal button.primary[b-8p5pmgkkz7] {
    margin-top: 0.5rem;
    border: none;
    border-radius: 6px;
    padding: 0.5rem 1.25rem;
    background: var(--accent);
    color: var(--on-accent);
    font: inherit;
    cursor: pointer;
}

.work-presence-modal button.primary:hover[b-8p5pmgkkz7] {
    background: var(--accent-hover);
}

.work-presence-modal button.primary:disabled[b-8p5pmgkkz7] {
    opacity: 0.6;
    cursor: default;
}

/* Обед — своя кнопка рядом со сменой (не .work-presence-toggle: на него опираются кадры справки «Начало дня»).
   «Ушёл на обед» — спокойная кнопка шапки; «Вернулся с обеда» — тёплая подложка, как у не начатой смены: сейчас
   сотрудник не работает, и это должно быть видно. */
.lunch-toggle[b-8p5pmgkkz7] {
    border: 1px solid var(--topbar-btn-border);
    border-radius: var(--r-sm);
    padding: 6px 14px;
    background: var(--topbar-btn-bg);
    color: var(--topbar-text);
    font: inherit;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
    cursor: pointer;
}

.lunch-toggle.go:hover:not(:disabled)[b-8p5pmgkkz7] {
    background: var(--topbar-hover);
}

.lunch-toggle.back[b-8p5pmgkkz7] {
    background: var(--warn-soft);
    color: var(--warn);
    border-color: var(--warn-border);
    font-weight: 600;
}

.lunch-toggle.back:hover:not(:disabled)[b-8p5pmgkkz7] {
    background: var(--warn-soft-strong);
}

.lunch-toggle:disabled[b-8p5pmgkkz7] {
    opacity: 0.6;
    cursor: default;
}

.label-short[b-8p5pmgkkz7] {
    display: none;
}

.lunch-modal-actions[b-8p5pmgkkz7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.work-presence-modal .lunch-modal-later[b-8p5pmgkkz7] {
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    padding: 0.5rem 1.25rem;
    background: var(--surface);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}

.work-presence-modal .lunch-modal-later:hover:not(:disabled)[b-8p5pmgkkz7] {
    background: var(--surface-2);
}

/* Узкий экран: в шапке рядом бургер, название, значки и кнопки смены и обеда — кнопки плотнее. */
@media (max-width: 860px) {
    .work-presence-toggle[b-8p5pmgkkz7], .lunch-toggle[b-8p5pmgkkz7] { padding: 6px 10px; font-size: 13px; }
}

/* Без строки поиска (≤760 px) полные подписи смены и обеда рядом не помещаются уже на 620 px: шапка с одной кнопкой
   смены и так занимала всю ширину телефона. Подписи короче («Обед», «С обеда», «Закончить»), полные — в подсказке. */
@media (max-width: 640px) {
    .label-long[b-8p5pmgkkz7] { display: none; }
    .label-short[b-8p5pmgkkz7] { display: inline; }
}

@media (max-width: 480px) {
    .work-presence-toggle[b-8p5pmgkkz7], .lunch-toggle[b-8p5pmgkkz7] { padding: 6px 4px; }
    .lunch-toggle.back[b-8p5pmgkkz7] { font-weight: 500; }
}

/* Отказ кнопке шапки («Не получилось отметиться…»): поверх страницы под шапкой, не сдвигает её и на телефоне помещается. */
.work-presence-error[b-8p5pmgkkz7] {
    position: fixed;
    top: 56px;
    right: 12px;
    z-index: 1500;
    max-width: min(360px, calc(100vw - 24px));
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--red-500-text);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--red-500-text);
    box-shadow: 0 6px 20px var(--shade-25);
    font-size: 13.5px;
    cursor: pointer;
}
/* /Components/Shared/ZipViewer.razor.rz.scp.css */
.zip-viewer[b-dfg2dyyldp] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    background: var(--viewer-bg);
}

.zv-bar[b-dfg2dyyldp] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    background: var(--slate-950-bg);
    border-bottom: 1px solid var(--white-a8-border);
    color: var(--gray-50-text);
}

.zv-name[b-dfg2dyyldp] {
    min-width: 0;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.zv-meta[b-dfg2dyyldp] {
    color: var(--text-faint);
    font-size: .85rem;
    white-space: nowrap;
}

.zv-download[b-dfg2dyyldp] {
    margin-left: auto;
    padding: .35rem .8rem;
    border: 1px solid var(--white-a35-border);
    border-radius: .4rem;
    color: var(--on-accent);
    text-decoration: none;
    white-space: nowrap;
}

.zv-download:hover[b-dfg2dyyldp] {
    background: var(--white-a12-bg);
}

.zv-close[b-dfg2dyyldp] {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    border-radius: .4rem;
    background: transparent;
    color: var(--on-accent);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.zv-close:hover[b-dfg2dyyldp] {
    background: var(--white-a12-bg);
}

/* Содержимое .zv-body рисует zip-viewer.js — его элементы без метки этого компонента, отсюда ::deep. */
.zv-body[b-dfg2dyyldp] {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(16rem, 26rem) 1fr;
    margin: .75rem;
    background: var(--surface);
    border-radius: .5rem;
    overflow: hidden;
    color: var(--text);
}

.zv-body[b-dfg2dyyldp]  .zv-list {
    overflow: auto;
    border-right: 1px solid var(--border);
    background: var(--surface-alt);
}

.zv-body[b-dfg2dyyldp]  .zv-row {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "name size" "name date";
    column-gap: .75rem;
    width: 100%;
    padding: .45rem .75rem;
    border: none;
    border-bottom: 1px solid var(--row-border);
    background: transparent;
    font: inherit;
    text-align: left;
    color: inherit;
}

.zv-body[b-dfg2dyyldp]  .zv-head {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--surface-2);
    font-size: .75rem;
    color: var(--text-muted);
}

.zv-body[b-dfg2dyyldp]  .zv-file {
    cursor: pointer;
}

.zv-body[b-dfg2dyyldp]  .zv-file:hover {
    background: var(--accent-soft);
}

.zv-body[b-dfg2dyyldp]  .zv-file.selected {
    background: var(--accent-soft-strong);
}

.zv-body[b-dfg2dyyldp]  .zv-cell-name {
    grid-area: name;
    display: flex;
    align-items: baseline;
    gap: .35rem;
    min-width: 0;
    word-break: break-all;
}

.zv-body[b-dfg2dyyldp]  .zv-cell-size {
    grid-area: size;
    text-align: right;
    font-size: .85rem;
    white-space: nowrap;
}

.zv-body[b-dfg2dyyldp]  .zv-cell-date {
    grid-area: date;
    text-align: right;
    font-size: .75rem;
    color: var(--text-muted);
    white-space: nowrap;
}

.zv-body[b-dfg2dyyldp]  .zv-head .zv-cell-size,
.zv-body[b-dfg2dyyldp]  .zv-head .zv-cell-date {
    font-size: .75rem;
}

.zv-body[b-dfg2dyyldp]  .zv-pane {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.zv-body[b-dfg2dyyldp]  .zv-pane-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .75rem;
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--border);
}

.zv-body[b-dfg2dyyldp]  .zv-pane-name {
    font-weight: 600;
    word-break: break-all;
}

.zv-body[b-dfg2dyyldp]  .zv-pane-meta {
    font-size: .85rem;
    color: var(--text-muted);
}

.zv-body[b-dfg2dyyldp]  .zv-download-file {
    margin-left: auto;
    padding: .3rem .75rem;
    border: 1px solid var(--blue-600-border);
    border-radius: .4rem;
    background: var(--surface);
    color: var(--blue-600-text);
    font: inherit;
    font-size: .85rem;
    cursor: pointer;
}

.zv-body[b-dfg2dyyldp]  .zv-download-file:hover {
    background: var(--accent-softer);
}

.zv-body[b-dfg2dyyldp]  .zv-text {
    flex: 1;
    margin: 0;
    padding: .75rem;
    overflow: auto;
    font-family: ui-monospace, Consolas, "Courier New", monospace;
    font-size: .8rem;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.zv-body[b-dfg2dyyldp]  .zv-truncated {
    margin: 0;
    padding: .4rem .75rem;
    background: var(--warn-softer);
    border-bottom: 1px solid var(--yellow-200-border);
    font-size: .85rem;
    color: var(--amber-750-text);
}

.zv-body[b-dfg2dyyldp]  .zv-loading,
.zv-body[b-dfg2dyyldp]  .zv-hint,
.zv-body[b-dfg2dyyldp]  .zv-empty {
    margin: 1rem;
    color: var(--text-muted);
}

.zv-body[b-dfg2dyyldp]  .zv-failure {
    margin: 1rem;
    padding: .75rem 1rem;
    border: 1px solid var(--red-150-border-2);
    border-radius: .5rem;
    background: var(--danger-soft);
    color: var(--red-650-text);
}

.zv-body[b-dfg2dyyldp]  .zv-failure p {
    margin: 0;
}

.zv-body[b-dfg2dyyldp]  .zv-failure .zv-hint {
    margin: .4rem 0 0;
}

/* Сообщение вместо списка (архив не открылся, пустой) — во всю ширину. */
.zv-body[b-dfg2dyyldp]  > .zv-failure,
.zv-body[b-dfg2dyyldp]  > .zv-loading,
.zv-body[b-dfg2dyyldp]  > .zv-empty {
    grid-column: 1 / -1;
    align-self: start;
}

@media (max-width: 760px) {
    .zv-body[b-dfg2dyyldp] {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(6rem, 38%) 1fr;
        margin: .5rem;
    }

    .zv-body[b-dfg2dyyldp]  .zv-list {
        border-right: none;
        border-bottom: 1px solid var(--border);
    }

    .zv-meta[b-dfg2dyyldp] {
        display: none;
    }
}
