/* --------------------------------------------------- Личный кабинет */

.orb-account {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
    margin-top: 0;
    padding-block: clamp(28px, 4vw, 48px);
}

.orb-account-side {
    position: sticky;
    top: 88px;
    display: grid;
    gap: 18px;
}

.orb-account-who {
    display: grid;
    gap: 4px;
    padding: 18px;
    border: 1px solid var(--orb-line);
    border-radius: var(--orb-radius-lg);
    background: var(--orb-surface);
}

.orb-account-who strong {
    font-size: 16px;
    overflow-wrap: anywhere;
}

.orb-account-who span {
    color: var(--orb-muted);
    font-size: 13.5px;
    overflow-wrap: anywhere;
}

.orb-account-who .orb-status {
    justify-self: start;
    margin-top: 8px;
}

.orb-account-nav {
    display: grid;
    gap: 2px;
}

.orb-account-nav a {
    padding: 10px 14px;
    border-radius: var(--orb-radius);
    color: var(--orb-ink-2);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.orb-account-nav a:hover {
    color: var(--orb-indigo);
    background: var(--orb-indigo-soft);
}

.orb-account-nav a.is-active {
    color: var(--orb-indigo);
    background: var(--orb-indigo-soft);
}

.orb-account-nav .orb-account-logout {
    margin-top: 8px;
    color: var(--orb-muted);
    font-weight: 500;
}

.orb-account-content {
    display: grid;
    gap: 18px;
    min-width: 0;
}

.orb-account-h1 {
    font-size: clamp(26px, 3vw, 34px);
}

.orb-account-card {
    display: grid;
    gap: 14px;
    padding: clamp(20px, 3vw, 28px);
}

.orb-account-card h2 {
    font-size: 20px;
}

/* «Стоимость в месяц» на странице «Тариф и оплата» */
.orb-account-subtitle {
    margin-top: 8px;
    color: var(--orb-ink);
    font-size: 16px;
    font-weight: 700;
}

.orb-account-card p {
    color: var(--orb-ink-2);
    line-height: 1.6;
}

.orb-account-card > .orb-btn,
.orb-account-form > .orb-btn {
    justify-self: start;
}

.orb-account-card-accent {
    border-color: var(--orb-indigo);
    box-shadow: 0 0 0 1px var(--orb-indigo), var(--orb-shadow-sm);
}

.orb-account-card-accent .orb-eyebrow {
    margin-bottom: 0;
}

.orb-account-card-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.orb-account-card-head a {
    color: var(--orb-indigo);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.orb-account-muted,
.orb-account-card p.orb-account-muted {
    color: var(--orb-muted);
}

.orb-account-empty {
    text-align: center;
}

.orb-account-dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 24px;
    margin: 0;
}

.orb-account-dl div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.orb-account-dl dt {
    color: var(--orb-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.orb-account-dl dd {
    margin: 0;
    font-size: 15px;
    overflow-wrap: anywhere;
}

.orb-account-ok {
    color: #15803d;
    font-size: 13px;
    font-weight: 600;
}

.orb-account-form {
    display: grid;
    gap: 16px;
}

.orb-account-form textarea {
    width: 100%;
    min-height: 88px;
    padding: 12px 14px;
    border: 1px solid var(--orb-line-strong);
    border-radius: var(--orb-radius-sm);
    color: var(--orb-ink);
    font: inherit;
    resize: vertical;
    background: var(--orb-surface);
}

.orb-account-form textarea:focus {
    outline: none;
    border-color: var(--orb-indigo);
    box-shadow: 0 0 0 4px rgba(67, 56, 202, 0.14);
}

/* Баннер «Подтвердите email» */
.orb-account-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border: 1px solid #fcd34d;
    border-radius: var(--orb-radius);
    background: #fffbeb;
}

.orb-account-banner strong {
    color: #78350f;
}

.orb-account-banner p {
    margin-top: 4px;
    color: #92400e;
    font-size: 14px;
    line-height: 1.5;
}

.orb-account-banner form {
    flex: 0 0 auto;
}

/* Статус заявки / пользователя */
.orb-status {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.orb-status-lead,
.orb-status-new         { color: #92400e; background: #fef3c7; }
.orb-status-client,
.orb-status-done,
.orb-status-resolved    { color: #14532d; background: #dcfce7; }
.orb-status-in_progress { color: var(--orb-indigo); background: var(--orb-indigo-soft); }
.orb-status-rejected    { color: #7f1d1d; background: #fee2e2; }

.orb-account-request {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    color: var(--orb-ink-2);
    font-size: 15px;
}

.orb-account-requests {
    display: grid;
}

.orb-account-requests li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--orb-line);
}

.orb-account-requests li:first-child { padding-top: 0; }
.orb-account-requests li:last-child { padding-bottom: 0; border-bottom: 0; }

.orb-account-requests-main {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.orb-account-requests-main span {
    color: var(--orb-muted);
    font-size: 13.5px;
}

.orb-account-requests-main p {
    margin-top: 6px;
    font-size: 14px;
    white-space: pre-line;
}

/* Страница-сообщение (подтверждение email и т.п.) */
.orb-message-card {
    text-align: center;
}

.orb-message-icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
}

.orb-message-icon-success { color: #15803d; background: #dcfce7; }
.orb-message-icon-error   { color: #b91c1c; background: #fee2e2; }

.orb-message-card h1 {
    font-size: clamp(24px, 3vw, 30px);
}

.orb-message-card .orb-lead {
    margin-top: 10px;
}

.orb-message-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 24px;
}

@media (max-width: 900px) {
    .orb-account {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .orb-account-side {
        position: static;
    }

    .orb-account-nav {
        grid-auto-flow: column;
        grid-auto-columns: max-content;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .orb-account-nav::-webkit-scrollbar { display: none; }

    .orb-account-nav .orb-account-logout { margin-top: 0; }
}

@media (max-width: 560px) {
    .orb-account-dl {
        grid-template-columns: 1fr;
    }

    .orb-account-banner {
        flex-direction: column;
        align-items: stretch;
    }

    .orb-account-banner .orb-btn,
    .orb-account-card > .orb-btn,
    .orb-account-form > .orb-btn {
        justify-self: stretch;
        width: 100%;
    }

    .orb-account-requests li {
        flex-direction: column;
        gap: 8px;
    }
}

/* Учётные данные демо-среды */
.orb-demo-creds {
    padding: 14px 16px;
    border-radius: var(--orb-radius);
    background: var(--orb-surface-2);
}

.orb-demo-creds-title {
    margin-bottom: 10px;
    color: var(--orb-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.orb-demo-creds dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.orb-demo-creds dl > div {
    display: grid;
    grid-template-columns: 140px repeat(2, minmax(0, max-content));
    gap: 6px 24px;
    align-items: baseline;
}

.orb-demo-creds dt {
    font-size: 15px;
    font-weight: 600;
}

.orb-demo-creds dd {
    margin: 0;
    font-size: 14px;
}

.orb-demo-creds dd span {
    color: var(--orb-muted);
}

.orb-demo-creds code {
    padding: 2px 8px;
    border: 1px solid var(--orb-line);
    border-radius: var(--orb-radius-sm);
    color: var(--orb-ink);
    font-size: 14px;
    background: var(--orb-surface);
    white-space: nowrap;
    user-select: all;
}

@media (max-width: 560px) {
    .orb-demo-creds dl {
        gap: 12px;
    }

    .orb-demo-creds dl > div {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* «Демо-доступ готовится»: по кольцу вокруг «планеты» ходит «спутник» —
   тот же мотив орбит, что в логотипе. Спокойный темп, без мигания.
   prefers-reduced-motion гасит анимацию глобально (base.css) — остаётся
   статичная иконка со спутником сверху. */
.orb-pending {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    border-radius: var(--orb-radius);
    background: var(--orb-surface-2);
}

.orb-pending strong {
    font-size: 15px;
}

.orb-account-card .orb-pending p {
    margin-top: 2px;
    color: var(--orb-muted);
    font-size: 14px;
}

.orb-pending-orbit {
    position: relative;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: 2px solid var(--orb-indigo-soft-2);
    border-radius: 50%;
}

/* Планета в центре — мягко «дышит» */
.orb-pending-orbit::before {
    position: absolute;
    inset: 0;
    width: 10px;
    height: 10px;
    margin: auto;
    border-radius: 50%;
    content: '';
    background: var(--orb-indigo);
    animation: orb-pending-pulse 2.4s ease-in-out infinite;
}

/* Кольцо, которое вращается и несёт спутник */
.orb-pending-orbit > span {
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    animation: orb-pending-spin 2.4s linear infinite;
}

.orb-pending-orbit > span::before {
    position: absolute;
    top: -4px;
    left: 50%;
    width: 8px;
    height: 8px;
    margin-left: -4px;
    border-radius: 50%;
    content: '';
    background: var(--orb-orange);
    box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.18);
}

@keyframes orb-pending-spin {
    to { transform: rotate(360deg); }
}

@keyframes orb-pending-pulse {
    0%, 100% { transform: scale(1);    opacity: 1; }
    50%      { transform: scale(0.72); opacity: 0.55; }
}

/* «Уменьшить движение» (в Windows — выключенные эффекты анимации):
   base.css глушит всё, но индикатор ожидания без движения не читается.
   Оставляем только смену прозрачности — без вращения и масштаба. */
@media (prefers-reduced-motion: reduce) {
    .orb-pending-orbit::before,
    .orb-pending-orbit > span::before {
        animation: orb-pending-fade 2.4s ease-in-out infinite !important;
    }

    .orb-pending-orbit > span::before {
        animation-delay: -1.2s !important;
    }
}

@keyframes orb-pending-fade {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.3; }
}

/* --------------------------------------------------- Оплата тарифа (/account/billing) */

/* Текст чекбокса автопродления зависит от выбранного периода: показываем
   вариант под отмеченной радиокнопкой «period», без JS (как переключатель
   «За год / Помесячно» на /tarify). */
.orb-billing-form .orb-auto-renew-text { display: none; }
.orb-billing-form:has(input[name="period"][value="12"]:checked) .orb-auto-renew-text[data-period="12"],
.orb-billing-form:has(input[name="period"][value="1"]:checked) .orb-auto-renew-text[data-period="1"] { display: inline; }

.orb-billing-form fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.orb-billing-form fieldset label,
.orb-billing-form .orb-auto-renew { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.45; }
.orb-billing-form fieldset input,
.orb-billing-form .orb-auto-renew input { margin-top: 4px; flex: 0 0 auto; }

/* --------------------------------------------------- Докупка опций (/account/billing#addons) */
/* Карточки опций — редизайн под директорскую правку:
   каждая опция — отдельная карточка с чёткими состояниями.
   type=module → кликабельный лейбл + кнопка-переключатель справа.
   type=users/storage → спиннер −/+ с крупными кнопками (36 на десктопе, 44 на мобильном).
   Отдельная секция «Уже подключено» со свитчем автопродления. */

.orb-addons-list {
    display: grid;
    gap: 10px;
    margin: 12px 0 20px;
}
.orb-addons-list--active { margin-bottom: 20px; }

.orb-addons-card {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 14px 16px;
    background: var(--orb-surface-2);
    border: 1px solid var(--orb-line);
    border-radius: var(--orb-radius);
    transition: border-color 0.15s var(--orb-ease), background 0.15s var(--orb-ease), box-shadow 0.15s var(--orb-ease);
}
.orb-addons-card__main {
    display: grid;
    gap: 4px;
    flex: 1 1 auto;
    min-width: 0;
}
.orb-addons-card__title {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    font-weight: 600;
    color: var(--orb-ink);
    font-size: 15px;
    line-height: 1.35;
}
.orb-addons-card__title label { font: inherit; color: inherit; cursor: pointer; }
.orb-addons-card__meta {
    color: var(--orb-muted);
    font-size: 13px;
    line-height: 1.4;
}
.orb-addons-card__badge {
    display: inline-block;
    padding: 2px 10px;
    background: var(--orb-indigo-soft);
    color: var(--orb-indigo-deep);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
}
.orb-addons-card__badge--muted {
    background: transparent;
    color: var(--orb-muted);
    border: 1px solid var(--orb-line-strong);
}
.orb-addons-card__aside {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-end;
    flex: 0 0 auto;
}

/* Активная докупка — чуть «залитая» карточка (вместо tableview). */
.orb-addons-card--active { background: var(--orb-indigo-soft); border-color: var(--orb-indigo-soft-2); }

/* ----- Модуль (type=module): вся карточка — label. ----- */
.orb-addons-card--module { cursor: pointer; position: relative; }
.orb-addons-card--module:hover { border-color: var(--orb-line-strong); }
.orb-addons-card--module:focus-within { border-color: var(--orb-indigo); box-shadow: 0 0 0 3px var(--orb-indigo-soft); }
.orb-addons-card--module.is-active {
    background: var(--orb-indigo-soft);
    border-color: var(--orb-indigo);
}
.orb-addons-card--module.is-locked { cursor: default; background: var(--orb-indigo-soft); border-color: var(--orb-indigo-soft-2); }

/* Чекбокс визуально скрыт, доступен screen reader и клавиатуре (sr-only). */
.orb-addons-card__check {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0;
}

/* Псевдо-кнопка «Подключить / Подключено / Уже активно». */
.orb-addons-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 7px 16px;
    border-radius: var(--orb-radius-sm);
    border: 1px solid var(--orb-indigo);
    color: var(--orb-indigo-deep);
    background: var(--orb-surface);
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    transition: background 0.15s var(--orb-ease), color 0.15s var(--orb-ease), border-color 0.15s var(--orb-ease);
}
.orb-addons-card--module:hover .orb-addons-toggle:not(.is-locked) { background: var(--orb-indigo-soft); }
.orb-addons-card--module.is-active .orb-addons-toggle {
    background: var(--orb-indigo);
    color: #fff;
    border-color: var(--orb-indigo);
}
.orb-addons-card--module.is-active .orb-addons-toggle::before {
    content: '✓';
    margin-right: 6px;
    font-weight: 600;
}
.orb-addons-toggle.is-locked {
    background: transparent;
    color: var(--orb-muted);
    border-color: var(--orb-line-strong);
    cursor: default;
}

/* ----- Спиннер −/+ для type=users/storage ----- */
.orb-addons-spinner {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--orb-line-strong);
    border-radius: var(--orb-radius-sm);
    background: var(--orb-surface);
    overflow: hidden;
}
.orb-addons-spinner:focus-within {
    border-color: var(--orb-indigo);
    box-shadow: 0 0 0 3px var(--orb-indigo-soft);
}
.orb-addons-spinner__btn {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--orb-ink);
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    width: 36px;
    min-height: 36px;
    cursor: pointer;
    transition: background 0.1s var(--orb-ease), color 0.1s var(--orb-ease);
}
.orb-addons-spinner__btn:hover { background: var(--orb-indigo-soft); color: var(--orb-indigo-deep); }
.orb-addons-spinner__btn:focus-visible { outline: 2px solid var(--orb-indigo); outline-offset: -2px; }
.orb-addons-spinner__btn:disabled { color: var(--orb-muted); cursor: not-allowed; background: transparent; }
.orb-addons-spinner__value {
    width: 72px;
    min-height: 36px;
    padding: 0 6px;
    border: 0;
    border-left: 1px solid var(--orb-line);
    border-right: 1px solid var(--orb-line);
    background: var(--orb-surface);
    color: var(--orb-ink);
    font: inherit;
    text-align: center;
    appearance: textfield;
    -moz-appearance: textfield;
    font-variant-numeric: tabular-nums;
}
.orb-addons-spinner__value::-webkit-outer-spin-button,
.orb-addons-spinner__value::-webkit-inner-spin-button {
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
}
.orb-addons-spinner__value:focus-visible { outline: none; }

/* Live-строка «+3 пользователя, 597 ₽/мес» под спиннером. */
.orb-addons-card__summary {
    font-size: 13px;
    color: var(--orb-indigo-deep);
    font-weight: 500;
    text-align: right;
    max-width: 260px;
    font-variant-numeric: tabular-nums;
}

/* ----- Свитч автопродления у активной докупки ----- */
.orb-addons-renew {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px 6px 6px;
    border: 1px solid var(--orb-line-strong);
    border-radius: 999px;
    background: var(--orb-surface);
    color: var(--orb-ink-2);
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    min-height: 36px;
    transition: border-color 0.15s var(--orb-ease);
}
.orb-addons-renew:hover { border-color: var(--orb-indigo); }
.orb-addons-renew:focus-visible { outline: none; border-color: var(--orb-indigo); box-shadow: 0 0 0 3px var(--orb-indigo-soft); }
.orb-addons-renew__track {
    position: relative;
    display: inline-block;
    width: 32px;
    height: 18px;
    background: var(--orb-line-strong);
    border-radius: 999px;
    transition: background 0.15s var(--orb-ease);
    flex: 0 0 auto;
}
.orb-addons-renew__thumb {
    position: absolute;
    top: 2px; left: 2px;
    width: 14px; height: 14px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(0,0,0,0.2);
    transition: transform 0.15s var(--orb-ease);
}
.orb-addons-renew.is-on .orb-addons-renew__track { background: var(--orb-indigo); }
.orb-addons-renew.is-on .orb-addons-renew__thumb { transform: translateX(14px); }
.orb-addons-renew__label strong { color: var(--orb-ink); font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
    .orb-addons-card,
    .orb-addons-toggle,
    .orb-addons-spinner__btn,
    .orb-addons-renew,
    .orb-addons-renew__track,
    .orb-addons-renew__thumb { transition: none; }
}

/* Мобильная (≤640px): карточка переносится, спиннер и кнопки — на всю ширину.
   Тап-таргеты минимум 44×44. */
@media (max-width: 640px) {
    .orb-addons-card { flex-wrap: wrap; align-items: flex-start; }
    .orb-addons-card__aside { width: 100%; align-items: stretch; }
    .orb-addons-card__summary { text-align: left; max-width: none; }

    .orb-addons-spinner { width: 100%; justify-content: space-between; }
    .orb-addons-spinner__btn { width: 44px; min-height: 44px; font-size: 22px; flex: 0 0 44px; }
    .orb-addons-spinner__value { flex: 1 1 auto; min-height: 44px; width: auto; font-size: 16px; }

    .orb-addons-toggle { width: 100%; min-height: 44px; font-size: 15px; }
    .orb-addons-renew { width: 100%; justify-content: flex-start; min-height: 44px; }
}

/* Итог: доплата сегодня. */
.orb-addons-quote {
    padding: 14px 16px;
    background: var(--orb-surface-2);
    border: 1px solid var(--orb-line);
    border-radius: var(--orb-radius);
    margin-top: 8px;
}
.orb-addons-quote[data-state="ready"] {
    background: var(--orb-indigo-soft);
    border-color: var(--orb-indigo-soft-2);
}
.orb-addons-quote[data-state="error"] {
    background: var(--orb-orange-soft);
    border-color: var(--orb-orange);
}
.orb-addons-quote p { margin: 0; }
.orb-addons-quote__hint { color: var(--orb-ink-2); font-size: 14px; line-height: 1.5; }
.orb-addons-quote__result { color: var(--orb-ink); font-size: 15px; line-height: 1.5; }
.orb-addons-quote__amount { color: var(--orb-indigo-deep); font-size: 20px; font-weight: 700; }
.orb-addons-quote__desc { color: var(--orb-ink-2); }
.orb-addons-quote__error { color: var(--orb-orange-hover); font-size: 14px; }

.orb-addons-actions { margin-top: 14px; }

/* Форма переключения автопродления в таблице активных докупок — inline без лишних отступов. */
.orb-addons-inline-form { display: inline; margin: 0; padding: 0; }

/* --------------------------------------------------- Отключение модуля (кнопка-danger + модалка) */
/* Активный модуль в блоке «Можно подключить»: кнопка справа по hover/focus
   меняет текст на «Отключить» и превращается в danger-outline. Цвета локальные:
   глобальный токен danger'а в палитре отсутствует, вводить его ради одной
   точки не стали. */

.orb-addons-toggle--cancel { position: relative; cursor: pointer; }
.orb-addons-toggle__hover { display: none; }
.orb-addons-toggle--cancel:hover .orb-addons-toggle__default,
.orb-addons-toggle--cancel:focus-visible .orb-addons-toggle__default { display: none; }
.orb-addons-toggle--cancel:hover .orb-addons-toggle__hover,
.orb-addons-toggle--cancel:focus-visible .orb-addons-toggle__hover { display: inline; }

/* Отменяем общий ::before с галкой — она у нас руками внутри __default. */
.orb-addons-card--module.is-active .orb-addons-toggle--cancel::before { content: none; }

/* Default-состояние активного модуля: filled indigo, как было (наследуется).
   Hover/focus — переключаем в красную рамку/текст. */
.orb-addons-toggle--cancel:hover,
.orb-addons-toggle--cancel:focus-visible {
    background: #fff;
    color: #b91c1c;
    border-color: #b91c1c;
    outline: none;
    box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.12);
}

/* Карточка в режиме «уже отключается»: убираем indigo-подсветку,
   рисуем нейтральной — чтобы не выглядела «активной». */
.orb-addons-card--module.is-active.is-cancelling {
    background: var(--orb-surface-2);
    border-color: var(--orb-line);
}

/* Модалка подтверждения — на базе .orb-dialog + свои отступы для действий. */
.orb-addons-cancel-modal { width: min(480px, calc(100vw - 32px)); }
.orb-addons-cancel-text { margin: 0; color: var(--orb-ink-2); font-size: 15px; line-height: 1.55; }
.orb-addons-cancel-text a { color: var(--orb-indigo); font-weight: 500; }
.orb-addons-cancel-error {
    margin: 0;
    padding: 10px 12px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: var(--orb-radius-sm);
    color: #b91c1c;
    font-size: 13.5px;
    line-height: 1.4;
}
.orb-addons-cancel-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
}
.orb-addons-cancel-confirm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 18px;
    border-radius: var(--orb-radius-sm);
    border: 1px solid #b91c1c;
    background: #fff;
    color: #b91c1c;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s var(--orb-ease), color 0.15s var(--orb-ease);
}
.orb-addons-cancel-confirm:hover,
.orb-addons-cancel-confirm:focus-visible {
    background: #b91c1c;
    color: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.18);
}
.orb-addons-cancel-confirm:disabled { opacity: 0.6; cursor: progress; }

@media (max-width: 640px) {
    .orb-addons-cancel-actions { flex-direction: column-reverse; align-items: stretch; }
    .orb-addons-cancel-actions .orb-btn,
    .orb-addons-cancel-confirm { width: 100%; min-height: 44px; }
}

/* Toast об успехе (нижний правый угол, авто-скрытие через 4.5 с). */
.orb-toast {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 70;
    max-width: min(420px, calc(100vw - 40px));
    padding: 12px 16px;
    background: var(--orb-indigo-ink);
    color: #fff;
    border-radius: var(--orb-radius);
    box-shadow: var(--orb-shadow-lg);
    font-size: 14px;
    line-height: 1.4;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.2s var(--orb-ease), transform 0.2s var(--orb-ease);
}
.orb-toast.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 640px) {
    .orb-toast { left: 16px; right: 16px; bottom: 16px; max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
    .orb-addons-toggle--cancel,
    .orb-addons-cancel-confirm,
    .orb-toast { transition: none; }
}

/* Таблица детализации возврата в модалке расторжения договора (#123) */
.orb-cancel-breakdown-table {
    width: 100%;
    min-width: 0 !important;
    border-collapse: collapse;
    font-size: 0.9rem;
    table-layout: auto;
}
.orb-cancel-breakdown-table th,
.orb-cancel-breakdown-table td {
    padding: 8px 12px;
}
.orb-cancel-breakdown-table thead tr,
.orb-cancel-breakdown-table tfoot tr {
    background: var(--orb-surface-2, #f8fafc);
}
.orb-cancel-breakdown-table thead th {
    font-size: 12px;
    font-weight: 700;
    color: var(--orb-ink, #0f172a);
    text-transform: uppercase;
    border-bottom: 1px solid var(--orb-line, #e2e8f0);
}
.orb-cancel-breakdown-table tfoot tr {
    font-weight: bold;
    border-top: 1px solid var(--orb-line, #e2e8f0);
}
.orb-cancel-breakdown-table tbody tr {
    border-bottom: 1px solid var(--orb-line, #e2e8f0);
}
.orb-cancel-breakdown-table .col-amount {
    text-align: right;
    white-space: nowrap;
}
