/* ═════ ETAP_HEADER_OFFSET_v1 (сессия 146) — контент под фиксированной шапкой ═════
 * Замер живого прода 20.08.2026 (/orders, 1920x945 и iframe 360/390):
 *
 *   header.header-on-dark — position: fixed, top: 0, высота 65 px
 *     (внутренний div .h-16 = 64 px + border-bottom 1 px, брейкпоинтов нет:
 *      65 px и на 360, и на 390, и на 1920);
 *   main — класс "pt-16" в разметке, computed padding-top = 0px.
 *
 * Класса .pt-16 в CSS-сборке НЕТ ВООБЩЕ — во всех подключённых стилях ни одного
 * правила .pt-*. Tailwind собран с purge, новых utility-классов в сборке нет, и
 * разметка два года ждала отступа, которого не существует. (Там же мёртв и
 * .min-h-screen: computed min-height = 0px.) Симптом виден там, где первый блок
 * прижат к верху: на 1920 под шапку уходил push-баннер «Получайте отклики
 * мгновенно» — заголовок целиком, кнопка «Включить» на 91 % (видна полоска в
 * 3 px); на 360/390 — внутренняя панель кабинета «СтройБиржа / Личн. кабинет /
 * Выход» целиком, 64 из 72 px.
 *
 * Высота задана как calc(4rem + 1px), а не числом 65: 4rem — это ровно .h-16
 * внутреннего блока шапки, 1px — её border-bottom. Поменяется вёрстка шапки —
 * видно, откуда взялось число.
 *
 * iOS PWA: env(safe-area-inset-top) сюда добавлять НЕЛЬЗЯ — отступ удвоится.
 * ETAP_IOS_PWA_v1 в standalone уже даёт body padding-top: env(safe-area-inset-top)
 * И header padding-top: env(safe-area-inset-top). Проверено численно эмуляцией
 * (safe-area 47 px): шапка вырастает до 112 px, но контент body начинается с 47,
 * поэтому перекрытие остаётся теми же 65 px. Одно число верно и в браузере, и в
 * standalone: замер после лекарства дал перекрытие 0 в обоих режимах.
 *
 * Правило намеренно НЕ вешается на голый main: у Smart Plan и visual_geometry
 * свой main (#canvas-wrapper, flex-1) и своя шапка, у admin шапка в потоке
 * (fixed top-0 нет), у главной main отсутствует вовсе. Класс sb-under-header
 * стоит ровно на трёх страницах, где шапка fixed и контент под ней.
 *
 * Файл отдельный, потому что *_head_extracted.css автогенерируются
 * («DO NOT edit by hand — re-run extract_inline_style.py») и правку затрут.
 * Деньги, смета и геометрия не задеты — это отступ страницы. */

:root {
    --sb-header-h: calc(4rem + 1px);
}

main.sb-under-header {
    padding-top: var(--sb-header-h);
}
