/* Кабинет пилота — только компоненты кабинета (T1, 14.09.2026).

   Всё общее с сайтом приходит теми же файлами, что на страницах сайта, и здесь не переопределяется:
   шапка и подвал (shared-shell.css), колонка 1312 и текст 1000 (theme.css, main.wrap), крошка (.crumb),
   шапка страницы (.lead-zone: h1.site-h1, .lead, .lead-actions), разделы (.page h2, h3), таблицы (.c-tw, .c-tab),
   формы (.pl-form, .pl-field, поля ввода внутри .page, .pl-radio, .pl-consent, .hint, .pl-err), кнопка действия
   (.btn-cta), примечание (.reco), сноска (.fn), списки (ul.m-list), две колонки (.two-col), чипы-ссылки (.tag).
   Копии файлов — app/static/site, их пишет cabinet/sync_shell.py.

   Правило файла (сторож tests/test_site_shell.py): в каждом селекторе есть класс cab-*, последний составной
   селектор не адресует компонент сайта; цвета — токены сайта var(--…) или цвета, которые есть в CSS сайта.
   Прежний cabinet.css (свои кегли заголовков, колонка 1140, рамка полей 3 px, белые панели разделов,
   своя крошка) — cabinet/backups/T1-2026-09-14/app/static/cabinet.css. */

/* ── Учётная запись — справа в строке крошки ─────────────────────────────────────────────────────────────
   Верх блока совпадает с верхом крошки без повторения её отступа: отступ крошки схлопывается через .lead-zone,
   и верх .lead-zone — это верх крошки. Высота строки как у ссылок крошки: 14 px × 1,5 + 6 + 6 = 33 px; цвет —
   цвет крошки, наведение --red-ui. Значок — значок входа в кабинет из шапки сайта. До 1024 px (порог мобильной
   шапки) — отдельной строкой в конце шапки страницы. */
.cab-lead-zone{position:relative;}
.cab-account{position:absolute;top:0;right:0;display:flex;align-items:center;gap:20px;font-size:14px;line-height:1.5;color:var(--muted);}
.cab-account-ico{display:flex;align-items:center;margin-right:-14px;color:var(--graphite-light);}
.cab-account-ico svg{display:block;width:16px;height:16px;}
.cab-account-link{display:inline-block;padding:6px 0;color:var(--muted);text-decoration:none;}
.cab-account-link:is(:hover,:focus-visible){color:var(--red-ui);}
@media(max-width:1024px){.cab-account{position:static;flex-wrap:wrap;gap:0 20px;margin:16px 0 0;}}

/* ── Чип состояния (статус пилота, роль, этап, поверка) ───────────────────────────────────────────────────
   Вид чипа сайта в покое (.page .tag: 13 px, поля 6×12, --track-chip, #F2F4F6 / #424950), не интерактивен.
   В белой таблице — чип «узел» каталога #EDEFF0 / #293135, иначе сливается с зеброй. Смысловые — палитра чипсов
   каталога: роль (diag #E4F4F6 / #0F5255), годен (effect #EAF3EB / #255429); просрочено — --red-ui полужирным. */
.cab-chip{display:inline-flex;align-items:center;padding:6px 12px;font-size:13px;line-height:1.4;font-weight:400;letter-spacing:var(--track-chip);background:var(--panel);color:#424950;white-space:nowrap;text-decoration:none;}
.c-tab .cab-chip{background:#edeff0;color:#293135;}
.cab-chip.cab-chip-role{background:#e4f4f6;color:#0f5255;}
.cab-chip.cab-chip-ok{background:#eaf3eb;color:#255429;}
.cab-chip.cab-chip-bad{background:var(--panel);color:var(--red-ui);font-weight:700;}
.cab-chips{display:flex;flex-wrap:wrap;gap:6px;}

/* ── Служебная кнопка («Узлы», «Снять», «Показать») ─────────────────────────────────────────────────────────
   Служебная кнопка карточек каталога (.page .wc-btns a: #DFE4E9 / #191C1F, 13,5 px 500 капителью, --track-chip,
   44 px); наведение и нажатие — --graphite-light с белым, как в каталоге. Главное действие — .btn-cta сайта. */
.cab-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:0;padding:0 14px;border:0;border-radius:0;box-shadow:none;background:#dfe4e9;color:#191c1f;font-family:inherit;font-size:13.5px;font-weight:500;line-height:1.2;letter-spacing:var(--track-chip);text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;}
.cab-btn:is(:hover,:focus-visible,:active){background:var(--graphite-light);color:#fff;}
.cab-btn[disabled],.cab-btn[disabled]:hover{background:#e3e6e9;color:var(--muted);cursor:default;}
.cab-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 0;}
.cab-inline{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;}

/* ── Фильтр списка: подпись · поле · кнопка на одной оси ────────────────────────────────────────────────────
   Поле — поле формы сайта (52 px), кнопка той же высоты: центры на одной линии (замечание владельца 14.09.2026). */
.cab-filter{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:24px 0 0;}
.cabinet .page .cab-filter-field{width:auto;min-width:260px;}
.cab-filter .cab-btn{min-height:52px;}

/* ── Паспорт «ярлык — значение» ────────────────────────────────────────────────────────────────────────────
   Таблица сайта (.c-tab) без шапки: ярлык — капитель шапки таблицы (12 px 700, --track-caps, --graphite-light),
   высота строки ярлыка равна строке значения (15 px × --lh-text). На телефоне ярлык над значением. */
.cab-kv-label{width:260px;font-size:12px;font-weight:700;line-height:calc(15px * var(--lh-text));letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--graphite-light);}
@media(max-width:640px){
 .cab-kv tr,.cab-kv-label,.cab-kv-val{display:block;width:auto;}
 .cabinet .page .c-tab .cab-kv-label{padding-bottom:0;}
 .cabinet .page .c-tab .cab-kv-val{padding-top:2px;}
}

/* ── Шаги мастера ───────────────────────────────────────────────────────────────────────────────────────────
   Вид тегов фильтра сайта: покой #F2F4F6 / #424950, текущий — --graphite-light с белым, пройденный — ссылка
   с белой заливкой при наведении. Номер полужирный, как у нумерованных списков сайта. */
.cab-steps{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;counter-reset:cabstep;}
.cab-steps>li{display:flex;align-items:center;min-height:44px;margin:0;padding:0 16px;background:var(--panel);color:#424950;font-size:15px;counter-increment:cabstep;}
.cab-steps>li::before{content:counter(cabstep) ".\00a0";font-weight:700;}
.cab-steps>li.is-active{background:var(--graphite-light);color:#fff;}
.cab-steps>li.is-done:has(.cab-step-link:is(:hover,:focus-visible)){background:#fff;}
.cab-step-link{color:inherit;text-decoration:none;}

/* ── Чек-лист готовности ────────────────────────────────────────────────────────────────────────────────────
   Знак состояния вместо маркера списка: ✓ выполнено (#255429 — зелёный чипа «эффект»), ✕ не выполнено
   (--red-ui, текст пункта тоже). Кегль основного текста, колонки по 300 px с интервалом 40 px. */
.cab-ready{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 40px;margin:12px 0 0;padding:0;list-style:none;}
.cab-ready>li{position:relative;margin:0;padding-left:26px;max-width:none;}
.cab-ready>li::before{position:absolute;left:0;top:0;width:18px;text-align:center;font-weight:700;}
.cab-ready>li.is-ok::before{content:"✓";color:#255429;}
.cab-ready>li.is-bad{color:var(--red-ui);}
.cab-ready>li.is-bad::before{content:"✕";}

/* ── Второстепенный текст в строке и ячейке ─────────────────────────────────────────────────────────────────
   Почта под именем, версия и виза методики, номер правила — кегль и цвет сноски сайта (13,5 px, #61686F).
   Отдельный абзац-пояснение — сноска сайта .fn, подсказка под полем — .hint поля формы. */
.cab-sub{font-size:13.5px;line-height:1.5;color:var(--muted);}
.cab-sha{font-family:inherit;font-size:13.5px;color:var(--muted);word-break:break-all;}
.cab-err{color:var(--red-ui);font-weight:700;}
.cab-nowrap{white-space:nowrap;}

/* ── Поле в строке таблицы ──────────────────────────────────────────────────────────────────────────────────
   Точки замера, приглашение в организацию, отклонение заявки: система полей сайта (заливка #F2F4F6, линия 2 px
   #61686F снизу, фокус 3 px --graphite) в компактном размере — 40 px и 14 px, чтобы строка таблицы не росла. */
.cabinet .page .cab-cell{width:100%;min-width:120px;min-height:40px;padding:8px 10px;font-size:14px;}
.cabinet .page select.cab-cell{padding-right:34px;background-position:right 8px center;background-size:20px 20px;}
.cabinet .page .cab-cell-xs{width:90px;min-width:72px;}
.cabinet .page .cab-cell-auto{width:auto;}
.cab-nowrap .cab-inline{flex-wrap:nowrap;}
/* Таблица точек замера — 12 столбцов с полями: прокрутка во всю ширину полей, а не сжатие (замер 14.09.2026 на 1440:
   поля по 120 px обрезали названия точек, кнопки в последней ячейке вставали столбиком и строка росла до 94 px). */
.c-tab.cab-points{min-width:1760px;}
.cabinet .page .cab-points .cab-cell{min-width:160px;}
.cabinet .page .cab-points .cab-cell-xs{min-width:84px;width:84px;}

/* ── Формы ──────────────────────────────────────────────────────────────────────────────────────────────────
   Форма из одного-двух полей (вход, код, TOTP, профиль) — форма сайта в одну колонку 430 px; поле кода —
   крупные цифры, как числа сайта (900, --track-num). Перечень флажков — строки выбора сайта в колонках. */
.cabinet .page .cab-form-narrow{grid-template-columns:minmax(0,1fr);max-width:430px;}
.cabinet .page .cab-form-col{grid-template-columns:minmax(0,1fr);max-width:none;}
.cabinet .page .cab-code{font-size:28px;font-weight:900;letter-spacing:var(--track-num);font-variant-numeric:tabular-nums;text-align:center;}
.pl-form .cab-checks{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));}

/* ── Список пилотов на телефоне ─────────────────────────────────────────────────────────────────────────────
   Белые карточки сайта (.role-card: #FFF, поля 22×26), номер — капитель --red-ui, предприятие 19 px 300. */
.cab-cards{display:none;gap:12px;margin:24px 0 0;}
.cab-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:22px 26px;background:#fff;color:var(--graphite);text-decoration:none;}
.cab-card:is(:hover,:focus-visible) .cab-card-org{color:var(--red-ui);}
.cab-card-no{font-size:12px;font-weight:700;letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--red-ui);}
.cab-card-org{font-size:19px;font-weight:300;line-height:1.35;letter-spacing:var(--track-sub);}
.cab-card-title{font-size:16px;line-height:var(--lh-text);}
@media(max-width:820px),(pointer:coarse){.cab-table-pilots{display:none;}.cab-cards{display:grid;}}

/* ── Очередь неотправленных операций ─────────────────────────────────────────────────────────────────────── */
.cab-queue{position:fixed;right:16px;bottom:16px;z-index:50;padding:8px 14px;background:var(--graphite);color:#fff;font-size:13px;}
