/* Публичный сайт обращений — standalone-стили, без Metronic. */
:root {
    --fb-bg: #f4f6f9;
    --fb-card: #ffffff;
    --fb-text: #1f2937;
    --fb-muted: #6b7280;
    --fb-border: #d7dce3;
    --fb-primary: #2563eb;
    --fb-primary-dark: #1d4ed8;
    --fb-danger: #dc2626;
    --fb-ok: #16a34a;
    --fb-radius: 10px;
}

* { box-sizing: border-box; }

.fb-body {
    margin: 0;
    background: var(--fb-bg);
    color: var(--fb-text);
    font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.fb-wrap { max-width: 720px; margin: 0 auto; padding: 24px 16px 48px; }

/* Шапка одной строкой: бренд + переключатель языка. */
.fb-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 16px; }
.fb-logo { font-size: 20px; font-weight: 700; letter-spacing: .3px; }

/* Переключатель языка: два инлайновых чипа без JS (CSP script-src 'self';
   на done-странице form.js не подключён). Языков ровно два, поэтому dropdown
   на <details> из донора убран — он прятал за кликом выбор из двух пунктов.
   Ссылки внутри — langSwitchUrl(), они сохраняют ctx/log. */
.fb-langs { display: flex; flex: none; gap: 6px; }
.fb-lang {
    display: inline-block;
    border: 1px solid var(--fb-border);
    border-radius: 20px;
    padding: 4px 12px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--fb-muted);
    background: var(--fb-card);
    text-decoration: none;
    transition: border-color .15s, background .15s, color .15s;
}
.fb-lang:hover { border-color: var(--fb-primary); color: var(--fb-primary); }
.fb-lang.is-active { background: var(--fb-primary); border-color: var(--fb-primary); color: #fff; }

.fb-card {
    background: var(--fb-card);
    border: 1px solid var(--fb-border);
    border-radius: var(--fb-radius);
    padding: 24px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06);
}

.fb-intro { margin: 0 0 16px; color: var(--fb-muted); }

/* Поля */
.fb-field { margin-bottom: 14px; }
.fb-label { display: block; font-weight: 600; font-size: 13.5px; margin-bottom: 4px; }
.fb-req { color: var(--fb-danger); }
.fb-input {
    width: 100%;
    border: 1px solid var(--fb-border);
    border-radius: 8px;
    padding: 9px 11px;
    font: inherit;
    color: inherit;
    background: #fff;
}
.fb-input:focus { outline: 2px solid rgba(37, 99, 235, .35); border-color: var(--fb-primary); }
.fb-textarea { resize: vertical; min-height: 130px; }
.fb-file { padding: 7px; }
.fb-hint { font-size: 12.5px; color: var(--fb-muted); margin-top: 4px; }
.fb-error { color: var(--fb-danger); font-size: 13px; margin-top: 5px; }

/* Контекст админки 7souls */
.fb-ctx-badge {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 13.5px;
    margin-bottom: 14px;
}
.fb-badge-ok {
    display: inline-block;
    background: var(--fb-ok);
    color: #fff;
    font-size: 11.5px;
    border-radius: 20px;
    padding: 1px 9px;
    margin-inline-end: 8px; /* и LTR, и RTL (he/ar) */
    vertical-align: 1px;
}

/* Чек-лист бага */
.fb-checklist {
    border: 1px solid var(--fb-border);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 10px;
}
.fb-checklist summary { cursor: pointer; font-weight: 600; font-size: 13.5px; }
.fb-check { display: flex; gap: 8px; align-items: flex-start; margin-top: 9px; font-size: 13.5px; cursor: pointer; }
.fb-check input { margin-top: 3px; }

.fb-note {
    background: #f8fafc;
    border: 1px dashed var(--fb-border);
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 13px;
    color: var(--fb-muted);
    margin-bottom: 12px;
}
.fb-note-log { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }

/* Канал бота. Голубая семья взята у .fb-note-log, чтобы блок не выглядел
   приклеенным; кнопка — фирменный голубой Telegram, он отличим от --fb-primary
   и вместе с малым размером не спорит с полноширинной .fb-submit.
   Иконка — инлайновый SVG: внешнюю картинку CSP (img-src 'self' data:) не пустит. */
.fb-tg {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: var(--fb-radius);
    padding: 12px 14px;
    margin-bottom: 16px;
}
.fb-tg-title { display: block; font-weight: 600; font-size: 14px; color: #1e40af; }
.fb-tg-hint { display: block; font-size: 12.5px; color: var(--fb-muted); margin-top: 2px; }
.fb-tg-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: none;
    background: #229ed9;
    color: #fff;
    border-radius: 8px;
    padding: 9px 14px;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: background .15s;
}
.fb-tg-btn:hover { background: #1b87ba; }
.fb-tg-btn:focus-visible { outline: 2px solid rgba(34, 158, 217, .45); outline-offset: 2px; }
.fb-tg-icon { width: 18px; height: 18px; fill: currentColor; flex: none; }
/* Карточка «принято» центрированная — блоку возвращаем «начальный» край
   (start: левый в LTR, правый в RTL he/ar). */
.fb-tg--done { text-align: start; margin: 0 0 16px; }

/* Honeypot: визуально скрыт, но доступен ботам. */
/* Honeypot увозим за экран ВВЕРХ, а не влево.
   left: -9999px (как было у донора) безопасен только в LTR: там оверфлоу
   влево скролла не создаёт. В RTL направление переполнения зеркалится, и
   тот же отступ давал документу ~10 000 px горизонтального скролла — форма
   на иврите (а это язык по умолчанию) открывалась с полосой прокрутки и
   съехавшей вёрсткой. Отрицательный top не создаёт скролла ни в одном
   направлении: страница не прокручивается вверх. */
.fb-hp { position: absolute !important; top: -9999px !important; width: 1px; height: 1px; opacity: 0; }

.fb-submit {
    display: block;
    width: 100%;
    margin-top: 6px;
    background: var(--fb-primary);
    color: #fff;
    border: 0;
    border-radius: 8px;
    padding: 12px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
}
.fb-submit:hover { background: var(--fb-primary-dark); }

/* Done-страница */
.fb-done { text-align: center; }
.fb-done-icon {
    width: 56px; height: 56px; line-height: 56px;
    margin: 4px auto 12px;
    border-radius: 50%;
    background: #dcfce7; color: var(--fb-ok);
    font-size: 28px;
}
.fb-done-title { margin: 0 0 6px; font-size: 22px; }
.fb-done-number { font-weight: 600; margin: 0 0 4px; }
.fb-done-text { color: var(--fb-muted); margin: 0 0 16px; }
.fb-link { color: var(--fb-primary); text-decoration: none; }
.fb-link:hover { text-decoration: underline; }

.fb-footer { text-align: center; color: var(--fb-muted); font-size: 12.5px; margin-top: 22px; }

@media (max-width: 560px) {
    .fb-card { padding: 16px; }
    .fb-tg { flex-direction: column; align-items: stretch; }
    .fb-tg-btn { justify-content: center; }
}

/* RTL.
   Иврит — язык по умолчанию (I18n::DEFAULT), а не экзотика: направление
   держится на dir="rtl" у <html> плюс логических свойствах в этом файле
   (margin-inline, inset-inline-end, text-align: start). Отдельных
   [dir="rtl"]-правил здесь нет и быть не должно.

   Физические left/right/margin-left/padding-right сюда НЕ вводить: они не
   зеркалятся, ломают иврит молча и заметны только глазами — ровно так и
   вышло с honeypot'ом (см. .fb-hp): «увезли за экран, направление
   безразлично» оказалось неверным, в RTL это дало горизонтальный скролл
   на всю страницу. Проверять скриншотом на ?lang=he, а не рассуждением. */
