/* ==========================================================================
   idbg — модул „account“: новите правила на модула (docs/UI_STANDARD.md §11)

   Всеки селектор започва с [data-module="account"] — layout слага data-module
   на <body> (App\Services\UiModule::forView()) и зарежда само файла на
   текущия модул, така че правило оттук не може да засегне чужда страница
   (php bin/ui-lint.php, правило 10).

   Литерали (hex цвят, font-size в px, box-shadow) не се пишат — само
   токените от brand-tokens.css (§1, правило 11). Общото за няколко модула
   е компонент в design-components.css (заявка в systest/ui/requests.md).
   ========================================================================== */

/* == Настройки: рамката (SideNav + съдържание, §3.5) ==
   Формата на подстраницата не е втора карта около картите си — картите са
   .form-section (FormCard), а лентата „Запази промените“ лепне долу. Ширината
   е за четене (§2.5: форми до 960px), подравнена вляво до менюто. */
/* Тежестта (0,4,1) е над общата `body.is-app .app-page form.app-form` (0,3,2),
   която прави формата карта — без !important. Видът е като формите на
   другите модули (.app-page--list > .container > .app-form): картите са
   .form-section една под друга, лентата с бутона — своя карта, лепне долу. */
[data-module="account"] .settings-main > form.app-form.settings-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    width: 100%;
    max-width: 960px;
    margin: 0;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
[data-module="account"] .settings-main > form.app-form.settings-form > .form-section {
    margin: 0;
    padding: var(--space-6);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
/* FormActionBar на настройките — обхватът в :where(), за да важи телефонният
   вид на лентата от design-components.css (една лента за всички форми, §3.4). */
[data-module="account"] :where(.settings-main > form.app-form.settings-form) > .form-actions {
    margin: 0;
    padding: var(--space-3) var(--space-5);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    justify-content: flex-end;
}
/* Картата без форма (само преглед, „Твоите данни“) — същият вид. */
[data-module="account"] .settings-main > .form-section {
    margin: 0;
    padding: var(--space-6);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
@media (max-width: 560px) {
    [data-module="account"] .settings-main > form.app-form.settings-form > .form-section,
    [data-module="account"] .settings-main > .form-section { padding: var(--space-4); }
}
/* Една ширина за всичко в рамката на Настройки (§2.5 — до 960px): формите,
   списъците и съобщението „само преглед“ свършват на един десен ръб. Досега
   списъците бяха на цялата колона, а формите и Alert-ът — до 960px, и при
   смяна на подстраница съдържанието скачаше. */
[data-module="account"] .settings-main { max-width: 960px; min-width: 0; }
/* Зоната за съобщения над рамката („Провери 1 поле“, грешка от действие) —
   до същия десен ръб: менюто (220) + разстоянието + 960. Досега стигаше до
   края на екрана, на 136px вдясно от формата. */
@media (min-width: 1001px) {
    [data-module="account"] .settings-page > .page-messages > * { max-width: calc(220px + var(--space-8) + 960px); }
}
[data-module="account"] .settings-main > .card + .card,
[data-module="account"] .settings-main > .app-form + .card,
[data-module="account"] .settings-main > .form-section + .form-section,
[data-module="account"] .settings-main > .form-section + .card { margin-top: var(--space-4); }

/* Една глава на карта (§5.5): иконата 20 без кръгче, заглавието 16/700, без
   линия отдолу — еднакво за .card и за .form-section (картата с <form>
   вътре). Досега на една страница стояха две различни глави: иконката в
   кръгче с линия (картите във формата) и голата иконка (другите карти).
   Тежестта (0,5,2) е над общото `.app-page--list > .container >
   .app-form:not(…) > .form-section > h2` (0,5,1) — без !important. */
body[data-module="account"] .app-page :is(.settings-main, .profile-body, .gdpr-delete-form) .form-section > h2.card-head {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-4);
    padding: 0;
    border: 0;
    font-size: var(--text-body);
    font-weight: 700;
    line-height: var(--leading-snug);
    letter-spacing: normal;
    text-transform: none;
    color: var(--color-text-primary);
}
/* h2 и div с .card-head — един и същ вид (h2 носи свой letter-spacing). */
[data-module="account"] h2.card-head { letter-spacing: normal; }
/* Само между съседни блокове на едно ниво (картата, табът, „Още опции“) —
   не вътре в .form-grid-2, където колоните стоят на един ред, и не в
   .firm-vat-no: там разстоянието е gap-ът (иначе ставаше двойно — 32px).
   .settings-reminder-days („Напомняния“ — дните, скрити при изключени
   напомняния) е обвивка на две полета: отстъпва като поле и вътре също. */
[data-module="account"] :is(.settings-card, .settings-card > [data-tab-panel], .settings-card details.disclosure, .settings-card > .logo-upload, [data-backdate-days], .settings-reminder-days)
    > :where(.form-field, .form-grid-2, .firm-vat-no, details.disclosure, .alert, .settings-en-fill, .read-only-field, .logo-upload, .logo-preview, .settings-card-actions, .field-hint)
    ~ :where(.form-field, .form-grid-2, .firm-vat-no, details.disclosure, .alert, .settings-en-fill, .read-only-field, .logo-upload, .logo-preview, .settings-card-actions, .settings-reminder-days) { margin-top: var(--space-4); }
[data-module="account"] .settings-card .form-grid-2,
[data-module="account"] .modal-body .form-grid-2 { margin-bottom: 0; gap: var(--space-4); align-items: start; }
[data-module="account"] .firm-vat-no { display: flex; flex-direction: column; gap: var(--space-4); }
[data-module="account"] .firm-vat-no[hidden] { display: none; }
[data-module="account"] .firm-vat .choice-chips { margin-top: var(--space-1); }
[data-module="account"] details.disclosure[open] > summary { margin-bottom: var(--space-3); }
[data-module="account"] details.disclosure > :not(summary) + :not(summary) { margin-top: var(--space-4); }
[data-module="account"] .settings-card-lead { margin: 0 0 var(--space-4); }
[data-module="account"] .settings-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
}
[data-module="account"] .settings-card-actions--start { justify-content: flex-start; }
/* Подсказката веднага под заглавието е на 8px от него — еднакво в .card и в
   .form-section (картата с <form>), за да са главите на една страница равни. */
[data-module="account"] :is(.card, .form-section) > .card-head + :is(.settings-card-lead, .gdpr-lead) { margin-top: calc(var(--space-2) * -1); }
[data-module="account"] .card > .settings-card-actions { margin-top: var(--space-4); }

/* Табове в картата („На български · На английски“). */
[data-module="account"] .settings-card-tabs { margin-bottom: var(--space-5); }
[data-module="account"] .settings-en-hint { margin: 0 0 var(--space-3); }
[data-module="account"] .settings-en-fill { margin: 0; }
[data-module="account"] .settings-vat-off { margin-top: var(--space-3); }


/* Само преглед: етикет и стойност като текст (ReadOnlyField) в две колони. */
[data-module="account"] .read-only-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4) var(--space-6);
}
[data-module="account"] .read-only-grid .read-only-field-value { overflow-wrap: anywhere; }
@media (max-width: 560px) {
    [data-module="account"] .read-only-grid { grid-template-columns: minmax(0, 1fr); }
}

/* == Настройки: SettingsList — карта с таблица (§3.5) ==
   Същият вид като „Каса › Каси“: главата с отстъп, таблицата до ръба. */
[data-module="account"] .card--table { padding: 0; overflow: hidden; }
/* Главата — на 24px от ръба, като в другите карти на страницата (§5.5). */
[data-module="account"] .card--table > .card-head { padding: var(--space-6) var(--space-6) 0; }
[data-module="account"] .card--table > .data-table { margin: 0; }
[data-module="account"] .card--table > .empty-state { padding: var(--space-8) var(--space-4); }
[data-module="account"] .card--table > .settings-list-lead,
[data-module="account"] .card--table > .settings-list-foot,
[data-module="account"] .card--table > .settings-group-empty { margin: 0; padding: 0 var(--space-6) var(--space-4); }
[data-module="account"] .card--table > .settings-list-foot { padding-top: var(--space-4); }
[data-module="account"] .card--table > .settings-list-alert { margin: 0 var(--space-6) var(--space-4); }
[data-module="account"] .card--table > .settings-group-title {
    margin: var(--space-2) 0 0;
    padding: var(--space-4) var(--space-6) var(--space-2);
    border-top: 1px solid var(--color-border);
    font-size: var(--text-small);
    font-weight: 700;
    color: var(--color-text-primary);
}
/* Телефон: отстъпът е 16px, като на другите карти на страницата (§5.5) —
   иначе иконата на списъка стоеше 8px по-навътре от тази на картата-форма. */
@media (max-width: 560px) {
    [data-module="account"] .card--table > .card-head { padding: var(--space-4) var(--space-4) 0; }
    [data-module="account"] .card--table > :is(.settings-list-lead, .settings-list-foot, .settings-group-empty, .settings-list-tools) { padding-left: var(--space-4); padding-right: var(--space-4); }
    [data-module="account"] .card--table > .settings-group-title { padding-left: var(--space-4); padding-right: var(--space-4); }
    [data-module="account"] .card--table > .settings-list-alert { margin-left: var(--space-4); margin-right: var(--space-4); }
}
/* Под 640px редовете са отделни карти с рамка (design-components, .data-table
   tr) — до ръба на картата-списък рамките им се сливаха с нейната (двойна
   рамка отляво и отдясно). Отстъпът им е като на главата и на текста над
   тях: 16px отстрани и 16px отдолу (12px отдолу на последния ред се сливат с
   тези 16px). Важи за всички списъци в Настройки, за да изглеждат еднакво. */
@media (max-width: 640px) {
    [data-module="account"] .card--table > .data-table { width: auto; margin: 0 var(--space-4) var(--space-4); }
}
[data-module="account"] .settings-table .td-client .tag,
[data-module="account"] .settings-table .td-client .status-badge { margin-left: var(--space-2); }
[data-module="account"] .settings-row-name { font-weight: 600; color: var(--color-text-primary); }
[data-module="account"] .settings-row-sub { display: block; font-size: var(--text-label); color: var(--color-text-secondary); }
[data-module="account"] .settings-row-text { color: var(--color-text-secondary); }
[data-module="account"] .settings-table tr.is-muted .settings-row-name { color: var(--color-text-secondary); }
[data-module="account"] .settings-row-fix {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    margin-left: var(--space-2);
    font-size: var(--text-label);
    font-weight: 600;
    color: var(--tone-amber-text);
}
[data-module="account"] .settings-table--series td.doc-no { white-space: nowrap; }
/* „?“ до закона — подсказката е в title/aria-label, не в абзац над таблиците. */
[data-module="account"] .hint-help {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-left: var(--space-1);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-full);
    font-size: var(--text-caption);
    font-weight: 700;
    color: var(--color-text-secondary);
    cursor: help;
    vertical-align: middle;
}
/* Търсене в списъка (основанията без ДДС). */
[data-module="account"] .settings-list-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: 0 var(--space-6) var(--space-4);
}
[data-module="account"] .settings-list-tools > .field-hint { margin: 0; flex: 1 1 320px; }
[data-module="account"] .settings-search { position: relative; flex: 0 1 300px; }
[data-module="account"] .settings-search > svg {
    position: absolute;
    left: var(--space-3);
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-text-muted);
    pointer-events: none;
}
[data-module="account"] .settings-search-input { width: 100%; padding-left: var(--space-8); }
@media (max-width: 1000px) {
    /* Под 1000px редовете са карти (§9.5) в рамката на картата — същият вид
       като „Каса › Каси“, „Екип“ и „Клиенти“ (§0.1). Името и значките до
       него са на един ред, както в „Каси“; дългото име се пренася. */
    [data-module="account"] .card--table { overflow: visible; }
    [data-module="account"] .settings-table tbody td.td-client .tag,
    [data-module="account"] .settings-table tbody td.td-client .status-badge { margin-left: 0; }
    [data-module="account"] .settings-table tbody td.td-client { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); }
    [data-module="account"] .settings-row-fix { margin-left: 0; }
    /* IBAN (22 знака, моноширинен) не се побира в половин карта и опираше в
       „Банка“ до него — на телефон е на свой ред, с подписа си. */
    [data-module="account"] .settings-table tbody td.td-doc.mono { grid-column: 1 / -1; }
    /* Напомняния › „Писмото“: името на шаблона е дълго — на свой ред, с подписа. */
    [data-module="account"] .settings-table tbody td.settings-tpl-cell { grid-column: 1 / -1; }
}
/* Главата на картата — на един ред: заглавие · брояч · бутон. На телефон
   бутонът е „+ Нова“ (остатъкът от надписа е скрит само визуално — виж
   settings/_card-head-action); ако пак е тясно, заглавието се съкращава с „…“,
   не се чупи на два реда и не избутва брояча встрани. */
@media (max-width: 560px) {
    [data-module="account"] .card-head-action-rest {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }
}
[data-module="account"] .card--table > .card-head { min-width: 0; }
[data-module="account"] .card--table > .card-head > span:not(.card-head-count):not(.card-head-action) {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
[data-module="account"] .card--table > .card-head > :is(.card-head-count, .card-head-action) { flex: 0 0 auto; }
/* Карта без таблица с бутон в главата („Длъжностно лице по защита на
   данните“ › „Редактирай“): дългото заглавие се пренася, бутонът не се свива
   и не излиза от картата на телефон. */
[data-module="account"] .card:not(.card--table) > .card-head > .card-head-action { flex: 0 0 auto; }

/* == Настройки › Лого и вид == */
[data-module="account"] .logo-preview {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    background: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
[data-module="account"] .logo-preview-img {
    max-width: 220px;
    max-height: 80px;
    object-fit: contain;
    padding: var(--space-2) var(--space-3);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}
[data-module="account"] .logo-preview-meta { flex: 1 1 160px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
[data-module="account"] .logo-preview-file { font-size: var(--text-small); overflow-wrap: anywhere; }
[data-module="account"] .logo-upload { display: flex; flex-direction: column; gap: var(--space-3); }
[data-module="account"] .settings-logo-en { margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }

/* == Полета == */
[data-module="account"] .is-upper,
[data-module="account"] .settings-iban input { text-transform: uppercase; font-family: var(--font-mono); }
[data-module="account"] .settings-jump { margin-bottom: var(--space-4); }
[data-module="account"] .settings-jump .alert-body { display: flex; flex-direction: column; gap: var(--space-2); }
[data-module="account"] .settings-jump-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
[data-module="account"] .modal-body > :where(.form-field, .form-grid-2, details.disclosure, .alert, .field-hint)
    + :where(.form-field, .form-grid-2, details.disclosure, .alert) { margin-top: var(--space-4); }

/* == Шаблон на писмо: модалът с табове (Редакция · Преглед · Помощ) == */
[data-module="account"] .tpl-modal-v2 { max-width: 720px; }
[data-module="account"] .tpl-modal-v2 > .tpl-tab-bar { margin: 0; padding: 0 var(--space-6); }
[data-module="account"] .tpl-modal-v2 [data-tab-panel].is-active { display: flex; flex-direction: column; gap: var(--space-4); }
[data-module="account"] .tpl-modal-v2 [data-tab-panel] > .form-grid-2 { margin: 0; }
[data-module="account"] .tpl-paid-hint { margin: calc(var(--space-2) * -1) 0 0; }
[data-module="account"] .tpl-chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-bottom: calc(var(--space-2) * -1); }
[data-module="account"] .tpl-chips-label { font-size: var(--text-label); font-weight: 600; color: var(--color-text-secondary); }
[data-module="account"] .tpl-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 2px var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    background: var(--color-bg-card);
    font: inherit;
    font-size: var(--text-label);
    color: var(--brand-blue-dark);
    cursor: pointer;
}
[data-module="account"] .tpl-chip:hover { background: var(--brand-blue-light); border-color: var(--brand-blue-border); }
[data-module="account"] .tpl-chip code { font-family: var(--font-mono); font-size: var(--text-caption); }
[data-module="account"] .tpl-vars-v2 { margin: 0; border: 1px solid var(--color-border); border-radius: var(--radius); overflow: hidden; }
[data-module="account"] .tpl-var-v2 {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-2) var(--space-3);
    border-bottom: 1px solid var(--color-border);
}
[data-module="account"] .tpl-var-v2:last-child { border-bottom: 0; }
[data-module="account"] .tpl-var-v2:nth-child(odd) { background: var(--color-bg-subtle); }
[data-module="account"] .tpl-var-v2 dt,
[data-module="account"] .tpl-var-v2 dd { margin: 0; }
[data-module="account"] .tpl-var-v2 dd { font-size: var(--text-label); color: var(--color-text-secondary); }
[data-module="account"] .email-preview-body.is-empty { color: var(--color-text-muted); }
@media (max-width: 560px) {
    [data-module="account"] .tpl-modal-v2 > .tpl-tab-bar { padding: 0 var(--space-4); }
    [data-module="account"] .tpl-var-v2 { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); }
    [data-module="account"] .tpl-chip { min-height: 40px; }
}

/* == Моят профил: карти с едно действие (§3.5, §4) ==
   Етикетът (заглавието на картата), стойността и подсказката вляво,
   действието вдясно; на телефон действието е под текста. */
/* Ширината на картите — като формите на другите страници (clients/add,
   team/edit, Помощ): до 960px, центрирани (§2.5, --form-max).
   .profile-body е и .container, затова ширината е на децата му. */
[data-module="account"] .profile-body { display: flex; flex-direction: column; gap: var(--space-4); }
[data-module="account"] .profile-body > * { width: 100%; max-width: var(--form-max); margin-left: auto; margin-right: auto; }
[data-module="account"] .profile-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3) var(--space-6);
}
[data-module="account"] .profile-row + .profile-row { margin-top: 0; }
[data-module="account"] .profile-row-main { flex: 1 1 360px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-1); }
[data-module="account"] .profile-row-main > .card-head { margin: 0 0 var(--space-1); }
[data-module="account"] .profile-row-main > .alert { margin: var(--space-2) 0 0; }
[data-module="account"] .profile-row-value { margin: 0; font-size: var(--text-body); font-weight: 600; color: var(--color-text-primary); overflow-wrap: anywhere; }
[data-module="account"] .profile-row-main > .field-hint { margin: 0; }
[data-module="account"] .profile-row-action { flex: 0 0 auto; }
[data-module="account"] .profile-nav-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: 0;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    /* settings/index/nav и „Запази“ водят към #nav-buttons — заглавието да не
       остава под залепналата горна лента. */
    scroll-margin-top: calc(var(--header-h) + var(--space-4));
}
[data-module="account"] .profile-body > form.app-form.profile-nav-form > .form-section {
    margin: 0;
    padding: var(--space-6);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
/* Лентата „Върни по подразбиране · Запази промените“ е общата FormActionBar
   (design-components.css — картата на формите на записи и телефонният вид). */
/* „Върни по подразбиране“ — вляво, „Запази промените“ — вдясно (§3.4). */
[data-module="account"] .profile-nav-reset { margin-right: auto; }
[data-module="account"] .profile-nav-form .form-section > * + * { margin-top: var(--space-4); }
[data-module="account"] .profile-nav-lead,
[data-module="account"] .profile-nav-dup { margin-bottom: 0; }
[data-module="account"] .profile-nav-grid { margin: 0; gap: var(--space-4); }
[data-module="account"] .nav-preview {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
[data-module="account"] .nav-preview-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    background: var(--color-bg-card);
    font-size: var(--text-label);
    font-weight: 600;
    white-space: nowrap;
}
[data-module="account"] .nav-preview-chip.is-fixed { color: var(--color-text-secondary); background: transparent; }
[data-module="account"] .nav-preview-chip.is-empty { color: var(--color-text-muted); border-style: dashed; }
@media (max-width: 560px) {
    [data-module="account"] .profile-row-action,
    [data-module="account"] .profile-row-action .btn,
    [data-module="account"] .profile-row-action .action-form { width: 100%; }
    [data-module="account"] .profile-body > form.app-form.profile-nav-form > .form-section { padding: var(--space-4); }
    /* На телефон „Върни по подразбиране“ е на свой ред над „Запази промените“
       (общата FormActionBar — второто леко действие е отгоре, основното долу). */
    [data-module="account"] .profile-nav-reset { margin-right: 0; }
}

/* == Екип == */
[data-module="account"] .team-person { display: inline-flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
[data-module="account"] .team-name { font-weight: 600; }
[data-module="account"] .team-email { color: var(--color-text-secondary); }
[data-module="account"] .team-note {
    display: block;
    margin-top: var(--space-1);
    max-width: 280px;
    font-size: var(--text-label);
    line-height: 1.4;
    color: var(--color-text-secondary);
}
[data-module="account"] .invite-roles { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
/* Скритото радио (position: absolute) да стои в картата си, а не извън модала. */
[data-module="account"] .invite-roles > label { position: relative; }
[data-module="account"] .invite-roles .choice-card-title { font-size: var(--text-small); font-weight: 600; color: var(--color-text-primary); }
[data-module="account"] .invite-roles .choice-card-text { font-size: var(--text-label); color: var(--color-text-secondary); line-height: 1.4; }
/* Във формата team/edit (.app-form) старото `.app-form label { display:block;
   margin-bottom }` правеше картите на ролите блокове с отстъп отдолу — всички
   без последната бяха по-ниски от реда. Разстоянието е gap-ът на решетката. */
[data-module="account"] .app-form .choice-cards.invite-roles > label { display: flex; margin: 0; }
[data-module="account"] .app-form .choice-cards.invite-roles > label > span { margin-bottom: 0; }
[data-module="account"] .invite-more { margin: var(--space-3) 0 0; }
[data-module="account"] .invite-more .btn-link { padding-left: 0; }
/* Поканата без свободно място в плана: катинар 14 пред надписа, текстът е
   нормален (не избледнял, §8), под него — причината и пътят към плана. */
[data-module="account"] .team-invite-locked .form-check { cursor: not-allowed; }
[data-module="account"] .team-invite-locked .form-check > span { display: inline-flex; align-items: center; gap: var(--space-1); }
[data-module="account"] .team-invite-lock { display: inline-block; flex: 0 0 auto; color: var(--color-text-secondary); }
[data-module="account"] .team-invite-unlock { align-self: flex-start; padding-left: 0; padding-right: 0; }
[data-module="account"] .team-card > .team-tabs { margin-bottom: var(--space-5); }
[data-module="account"] .team-panel.is-active { display: flex; flex-direction: column; gap: var(--space-4); }
[data-module="account"] .team-panel > .form-grid-2 { margin: 0; gap: var(--space-4); }
[data-module="account"] .team-rights-lead { margin: 0; }
[data-module="account"] .perm-yes,
[data-module="account"] .perm-no { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--text-label); font-weight: 600; }
[data-module="account"] .perm-yes { color: var(--tone-green-text); }
[data-module="account"] .perm-no { color: var(--color-text-secondary); }
[data-module="account"] .team-perms-table .segmented { flex-wrap: wrap; }
/* Сегментите (Статус; Като ролята · Разреши · Забрани) са колкото избора си,
   не цялата ширина на полето; `.app-form label` не им дава отстъп отдолу. */
[data-module="account"] .team-form .segmented { width: fit-content; max-width: 100%; }
[data-module="account"] .app-form .segmented > label { margin: 0; }
@media (max-width: 1000px) {
    /* Роля | Статус на един ред; статусът взима целия ред само когато носи
       бележка („Без вход…“, „Влиза и разглежда…“). */
    [data-module="account"] .team-table tbody td.td-status:has(.team-note) { grid-column: 1 / -1; }
    [data-module="account"] .team-note { max-width: none; }
    /* Дългият имейл се пренася — иначе адресът излизаше извън картата. */
    [data-module="account"] .team-table.data-table-v2 tbody td.team-email { white-space: normal; overflow-wrap: anywhere; }
    /* На телефон трите избора за правото — на един ред, по равно. */
    [data-module="account"] .team-perms-table .segmented { display: grid; grid-template-columns: repeat(3, auto); width: 100%; }
    [data-module="account"] .team-perms-table .segmented > label { padding: 0 var(--space-2); }
}

/* == Абонамент == */
[data-module="account"] .billing-page .container > * + * { margin-top: var(--space-6); }
[data-module="account"] .billing-page .container > .alert + .alert,
[data-module="account"] .billing-page .container > .alert + .card { margin-top: var(--space-4); }
[data-module="account"] .billing-current-top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
[data-module="account"] .billing-current-main { flex: 1 1 320px; min-width: 0; }
[data-module="account"] .billing-current-main > .card-head { margin-bottom: var(--space-1); }
[data-module="account"] .billing-current-main .plan-name { margin: 0 0 var(--space-1); }
[data-module="account"] .billing-current .plan-usage { margin-top: var(--space-5); }
[data-module="account"] .plan-usage-num { white-space: nowrap; }
/* „без лимит“ е дума, не число — с текстовия шрифт, не с моноширинния на брояча. */
[data-module="account"] .plan-usage-num .plan-usage-free { font-family: var(--font-ui); }
[data-module="account"] .plan-not-covered { color: var(--tone-amber-text); }
[data-module="account"] .plan-over-note { margin: var(--space-5) 0 0; }
[data-module="account"] .plan-over-list { margin: var(--space-1) 0 0; padding-left: var(--space-5); }
[data-module="account"] .plan-over-list li + li { margin-top: var(--space-1); }
[data-module="account"] .billing-local-hint { display: block; margin-top: var(--space-1); font-size: var(--text-label); }
[data-module="account"] .billing-plans-head { margin-bottom: var(--space-4); }
/* Картите с плановете в „Абонамент“ (началната страница пази своя вид). */
[data-module="account"] .plan-price-amt.plan-price-text { font-size: var(--text-h4); line-height: 1.25; padding: var(--space-1) 0; }
[data-module="account"] .plan-limits li.plan-adds {
    margin-top: var(--space-1);
    padding-top: var(--space-2);
    border-top: 1px dashed var(--color-border);
    color: var(--color-text-secondary);
}
[data-module="account"] .plan-card-app.is-selected { border-color: var(--brand-blue); box-shadow: var(--ring-brand-blue-a10); }
[data-module="account"] .plan-card-note { margin: var(--space-2) 0 0; font-size: var(--text-label); text-align: center; color: var(--color-text-secondary); }
[data-module="account"] .plan-current-badge.plan-badge-stopped { background: var(--color-danger-bg); color: var(--color-danger); }
[data-module="account"] .plan-vat-note { margin: calc(var(--space-1) * -1) 0 var(--space-4); font-size: var(--text-label); color: var(--color-text-secondary); }
/* Телефон: текущият план е първата карта, не четвърта (§3.5). */
@media (max-width: 560px) {
    [data-module="account"] .plans-grid-app .plan-card-app.is-current { order: -1; }
    [data-module="account"] .billing-current-action,
    [data-module="account"] .billing-current-action .btn,
    [data-module="account"] .billing-current-action .action-form { width: 100%; }
}

/* == Банерите на плана (Alert) == */
[data-module="account"] .plan-limit-more { display: block; margin-top: 2px; color: var(--color-text-secondary); }

/* == Журнал на действията == */
/* Лентата с филтрите — същата анатомия като във Фактури и Разходи (§3.1,
   §5.12): видът действие · период · „Още филтри“ · „Изчисти филтрите“. */
[data-module="account"] .audit-filters .list-filter-row {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}
[data-module="account"] .audit-filters-inline {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}
[data-module="account"] .audit-filters-inline .filter-select { height: auto; max-width: 260px; }
[data-module="account"] .audit-filters-more {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
}
[data-module="account"] .audit-filters .list-more-filters { margin-left: 0; }
[data-module="account"] .audit-adv-slot:empty { display: none; }
[data-module="account"] .audit-adv-slot {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}
/* В модала на телефон видът и периодът са на цялата ширина, като „Кой“ под тях. */
[data-module="account"] .audit-adv-slot .filter-select { width: 100%; min-width: 0; max-width: none; }
[data-module="account"] .audit-adv-slot .period-picker,
[data-module="account"] .audit-adv-slot .period-picker-menu,
[data-module="account"] .audit-adv-slot .period-picker-toggle { width: 100%; }
[data-module="account"] .audit-adv-slot .period-picker-toggle { justify-content: space-between; }
@media (max-width: 900px) {
    [data-module="account"] .audit-filters-inline { flex-wrap: nowrap; }
    [data-module="account"] .audit-filters-inline > * { flex: 1 1 0; min-width: 0; max-width: none; }
    [data-module="account"] .audit-filters-inline .period-picker,
    [data-module="account"] .audit-filters-inline .period-picker-menu { width: 100%; min-width: 0; }
    [data-module="account"] .audit-filters-inline .period-picker-toggle { width: 100%; min-width: 0; justify-content: center; overflow: hidden; }
    [data-module="account"] .audit-filters-inline .period-picker-toggle > span { overflow: hidden; text-overflow: ellipsis; }
    [data-module="account"] .audit-filters-more { margin-left: 0; }
}
@media (max-width: 560px) {
    /* Съдържанието на [data-filters-inline] е в модала — празната обвивка не взима ред. */
    [data-module="account"] .audit-filters-inline:empty { display: none; }
    [data-module="account"] .audit-filters-more { flex: 1 1 100%; }
    [data-module="account"] .audit-filters-more > .list-more-filters { flex: 1 1 auto; justify-content: center; }
}
[data-module="account"] .audit-target { color: var(--color-text-secondary); overflow-wrap: anywhere; }
/* Името (две думи) — на един ред; пренася се „Какво“, което е по-дълго. */
@media (min-width: 1001px) {
    [data-module="account"] .audit-who { white-space: nowrap; }
}
/* На телефон — компактна карта (§3.1.4, §9.5): горе „Какво“, на един ред
   „Кога · Кой“, под тях „Подробно“; празното се крие. Досега всяка от
   четирите клетки беше на свой ред с голям отстъп — карта от ~240px. Без
   подписи: датата и името си личат, а „·“ ги свързва като изречение.
   (.td-wide в изгледа маха общия подпис; мястото в решетката е тук.) */
@media (max-width: 1000px) {
    [data-module="account"] .audit-table tbody tr {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 2px var(--space-1);
        padding-top: var(--space-3);
        padding-bottom: var(--space-3);
    }
    [data-module="account"] .audit-table tbody td { padding: 0; }
    [data-module="account"] .audit-table tbody td.audit-what { grid-column: 1 / -1; grid-row: 1; font-weight: 600; }
    [data-module="account"] .audit-table tbody td.audit-when { grid-column: 1; grid-row: 2; white-space: nowrap; }
    [data-module="account"] .audit-table tbody td.audit-who { grid-column: 2; grid-row: 2; }
    [data-module="account"] .audit-table.data-table tbody td.audit-who::before { content: "· "; display: inline; }
    [data-module="account"] .audit-table tbody td:is(.audit-when, .audit-who) { font-size: var(--text-small); color: var(--color-text-secondary); }
    [data-module="account"] .audit-table tbody td.audit-target { grid-column: 1 / -1; grid-row: 3; font-size: var(--text-small); }
    [data-module="account"] .audit-table tbody td.audit-target.is-empty { display: none; }
}

/* == Изтриване на акаунта == */
[data-module="account"] .gdpr-delete-page > .container > * + * { margin-top: var(--space-4); }
[data-module="account"] .gdpr-lead { margin: 0 0 var(--space-4); }
[data-module="account"] .gdpr-actions-row { display: flex; flex-wrap: wrap; gap: var(--space-2); }
[data-module="account"] .gdpr-steps { margin: 0; padding-left: var(--space-5); line-height: 1.7; color: var(--color-text-secondary); font-size: var(--text-small); }
/* Ширината — като формите на другите страници: до 960px, центрирани (§2.5,
   --form-max; беше цялата работна ширина и редовете ставаха ~1300px). */
[data-module="account"] .gdpr-delete-page > .container > * { width: 100%; max-width: var(--form-max); margin-left: auto; margin-right: auto; }
[data-module="account"] .gdpr-delete-page > .container > form.app-form.gdpr-delete-form > .form-section { padding: var(--space-6); }
@media (max-width: 560px) {
    [data-module="account"] .gdpr-delete-page > .container > form.app-form.gdpr-delete-form > .form-section { padding: var(--space-4); }
}
/* Общото `.app-form { margin: 0 auto !important }` маха горния отстъп на
   формата — картата с нея опираше в „Какво ще се случи“. Отстъпът е отдолу
   на картата преди нея. */
[data-module="account"] .gdpr-delete-page > .container > .card:has(+ form.gdpr-delete-form) { margin-bottom: var(--space-4); }
[data-module="account"] .gdpr-delete-form .form-section > * + * { margin-top: var(--space-4); }

/* == Помощ == */
[data-module="account"] .help-form .form-section > * + * { margin-top: var(--space-4); }
[data-module="account"] .help-form .form-section > h2 + * { margin-top: 0; }
[data-module="account"] .help-who { margin: 0; font-size: var(--text-small); color: var(--color-text-secondary); }
[data-module="account"] .help-form .form-grid-2 { margin-bottom: 0; gap: var(--space-4); }

/* == Правни страници: статия с ширина за четене == */
/* Стойностите са тези от инлайн стиловете отпреди (индексирана страница —
   видът за нелогнат не се сменя, §13); цветовете са старите токени. */
[data-module="account"] .legal-document { max-width: 780px; margin: 0 auto; padding: var(--space-2) 0 var(--space-12); line-height: 1.7; }
[data-module="account"] .legal-document > h2 { margin: 28px 0 10px; font-size: 1.15rem; }
[data-module="account"] .legal-document > p { margin: 0 0 var(--space-3); color: var(--text-secondary); }
[data-module="account"] .legal-document > .legal-updated { margin-top: 36px; font-size: .85rem; color: var(--text-tertiary); }
/* Навигацията между документите носи пълните им имена — същите като H1 (§7);
   с тях не се побира в 780px на статията. Затова е SectionNav като навсякъде
   (§2.4, „Сделки · Задачи“): веднага под заглавната лента, от левия ръб на H1
   и по цялата работна ширина. Центрирана „колкото имената“ (134–1306px) не
   стоеше нито под H1 (84px), нито над текста (330px) — три леви ръба
   (invariants-r2). Където екранът е по-тесен — скрол (активният се превърта
   в изгледа от legal/document.phtml — тук няма app-ux.js). */

/* Формата на служителя: лентата „Отказ · Запази промените“ е общата
   FormActionBar на формите на записи (design-components.css) — старото
   правило за голи бутони в design-pages.css е махнато. */

/* Търсенето в списъка крие редове с [hidden] — на телефон редът е grid и
   иначе стоеше видим. */
[data-module="account"] .settings-table tbody tr[hidden] { display: none; }

/* Номерации: таблиците на отделните видове документи са една под друга —
   един растер на колоните, за да стоят на една вертикала (над 1000px; под
   него редовете са карти). */
@media (min-width: 1001px) {
    [data-module="account"] .settings-table--series { table-layout: fixed; }
    [data-module="account"] .settings-table--series th:nth-child(1) { width: 46%; }
    [data-module="account"] .settings-table--series th:nth-child(2) { width: 16%; }
    [data-module="account"] .settings-table--series th:nth-child(3) { width: 24%; }
    [data-module="account"] .settings-table--series th:nth-child(4) { width: 14%; }
}

/* == Настройки › Telegram група (помощникът, §7 на дизайна) ==
   Stepper „1 Направи бота → … → 5 Готово“ и под него само картата на
   текущата стъпка; под 560px Stepper-ът е един ред „Стъпка 2 от 5 · …“
   (петте стъпки не се побират в 412px). */
[data-module="account"] .tg-wizard .stepper { margin-bottom: 0; }
[data-module="account"] .tg-stepper-compact { display: none; margin: 0; font-weight: 600; color: var(--color-text-primary); }
@media (max-width: 560px) {
    [data-module="account"] .tg-wizard .tg-stepper { display: none; }
    [data-module="account"] .tg-stepper-compact { display: block; }
}
[data-module="account"] .tg-done-row {
    display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-2);
    margin: var(--space-3) 0 0; font-size: var(--text-small); color: var(--color-text-secondary);
}
[data-module="account"] .tg-done-row > svg { color: var(--color-success); }
[data-module="account"] .tg-done-row strong { color: var(--color-text-primary); overflow-wrap: anywhere; }
[data-module="account"] .tg-done-row .btn-link { vertical-align: middle; }
[data-module="account"] .tg-done-row + .tg-done-row { margin-top: var(--space-1); }

/* Картата на стъпката: номерът в кръгче като в Stepper-а. */
[data-module="account"] .tg-step-num {
    display: inline-flex; align-items: center; justify-content: center; flex: none;
    width: 24px; height: 24px; border-radius: var(--radius-full);
    background: var(--brand-blue); color: var(--color-text-inverted);
    font-size: var(--text-caption); font-weight: 700;
}
[data-module="account"] .tg-step-card :where(p) { margin: 0; }
[data-module="account"] .tg-step-card > * + * { margin-top: var(--space-4); }
[data-module="account"] .tg-step-card > .card-head + * { margin-top: 0; }
[data-module="account"] .tg-step-text > * + * { margin-top: var(--space-3); }
[data-module="account"] .tg-step-text .settings-card-actions { margin-top: var(--space-4); }
[data-module="account"] .tg-step-grid {
    display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: var(--space-6); align-items: start;
}
@media (max-width: 760px) {
    [data-module="account"] .tg-step-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
    /* На телефон изречението и „Отвори @BotFather“ са най-горе (в първия
       екран), илюстрацията — след тях (functional-r2: бутонът беше ~1100px надолу). */
    [data-module="account"] .tg-step-grid > .tg-step-text { order: -1; }
}

/* Чатът-илюстрация: какво пише в @BotFather (без логото на Telegram). */
[data-module="account"] .tg-chat {
    display: flex; flex-direction: column; gap: var(--space-2);
    padding: var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-md);
    background: var(--color-bg-subtle); font-size: var(--text-label);
}
[data-module="account"] .tg-chat-head {
    display: flex; align-items: center; gap: var(--space-2);
    padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-border); font-weight: 700;
}
[data-module="account"] .tg-chat-ava {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: var(--radius-full);
    background: var(--brand-blue-light); color: var(--brand-blue-dark); font-size: var(--text-caption);
}
[data-module="account"] .tg-chat .tg-msg {
    max-width: 88%; padding: var(--space-1) var(--space-3); border-radius: var(--radius-md);
    background: var(--color-bg-card); border: 1px solid var(--color-border); color: var(--color-text-primary);
    overflow-wrap: anywhere;
}
[data-module="account"] .tg-chat .tg-msg--me {
    align-self: flex-end; background: var(--brand-blue-light); border-color: var(--brand-blue-border); font-weight: 600;
}
[data-module="account"] .tg-msg-token { font-family: var(--font-mono); }

/* Проверката на idbg — ✓ / ✗ с изречението. */
[data-module="account"] .tg-check { display: flex; align-items: flex-start; gap: var(--space-2); }
[data-module="account"] .tg-check > svg { flex: none; margin-top: 1px; }
[data-module="account"] .tg-check.is-ok > svg { color: var(--color-success); }
[data-module="account"] .tg-check.is-no > svg { color: var(--color-warning); }
/* Двата начина на стъпка 3, когато ботът е в групата като член (под ✗). */
/* Номерата стоят под началото на изречението (след иконата 20px + 8px). */
[data-module="account"] .tg-ways { display: grid; gap: var(--space-2); margin-bottom: 0; padding-left: calc(var(--space-8) + var(--space-3)); color: var(--color-text-primary); }

/* Кандидатът: „Тази група ли е: …?“ — на мястото на чакането. */
[data-module="account"] .tg-question {
    padding: var(--space-4); border: 1px solid var(--brand-blue-border); border-radius: var(--radius-md);
    background: var(--brand-blue-light);
}
[data-module="account"] .tg-question > * + * { margin-top: var(--space-2); }
[data-module="account"] .tg-question .settings-card-actions { margin-top: var(--space-3); }
[data-module="account"] .tg-question-title { font-size: var(--text-body); font-weight: 700; color: var(--color-text-primary); }
[data-module="account"] .tg-wait { display: flex; align-items: center; gap: var(--space-2); color: var(--color-text-secondary); font-size: var(--text-small); }
[data-module="account"] .tg-wait[hidden],
[data-module="account"] [data-tg-recheck][hidden] { display: none; }

/* Готово: статусът, фактите и „Как се ползва“. */
[data-module="account"] .tg-status-card > * + * { margin-top: var(--space-3); }
[data-module="account"] .tg-status-card > .card-head + * { margin-top: 0; }
[data-module="account"] .tg-status-card .card-head .status-badge,
[data-module="account"] .tg-wizard .card-head .status-badge { margin-left: auto; }
[data-module="account"] .tg-status-line { margin: 0; color: var(--color-text-primary); }
[data-module="account"] .tg-status-meta { margin: 0; }
[data-module="account"] .tg-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
@media (max-width: 760px) {
    [data-module="account"] .tg-facts { grid-template-columns: minmax(0, 1fr); }
}
[data-module="account"] .tg-status-card .settings-card-actions { margin-top: var(--space-4); }
[data-module="account"] .tg-howto-steps {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3);
    margin: 0; padding: 0; list-style: none;
}
[data-module="account"] .tg-howto-steps > li {
    display: flex; align-items: center; gap: var(--space-3);
    padding: var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-md);
    font-size: var(--text-small); font-weight: 600; color: var(--color-text-primary);
}
[data-module="account"] .tg-howto-ico {
    display: inline-flex; align-items: center; justify-content: center; flex: none;
    width: 40px; height: 40px; border-radius: var(--radius-full);
    background: var(--brand-blue-light); color: var(--brand-blue-dark);
}
@media (max-width: 560px) {
    [data-module="account"] .tg-howto-steps { grid-template-columns: minmax(0, 1fr); }
}
[data-module="account"] .tg-lock-card { padding: 0; }
[data-module="account"] :is(.tg-wizard, .tg-status-card) > .card-head { flex-wrap: wrap; row-gap: var(--space-2); }
[data-module="account"] .tg-token-form > .settings-card-actions { margin-top: var(--space-4); }
[data-module="account"] .tg-token-form .form-field { max-width: 560px; }
/* Токенът на бота: текстово поле с маска (не type="password" — мениджърите на
   пароли не го бъркат с паролата за idbg). Маската е и в модала „Смени бота“. */
[data-module="account"] .tg-token-input { -webkit-text-security: disc; }
