/* =============================================================================
   Тема «modern» — кабинет участника заочных конкурсов
   =============================================================================
   Поверх Bootstrap 5 (сетка, окна, формы). Здесь — только оформление.

   Шрифты (лежат рядом, в fonts/, лицензия SIL OFL — можно свободно использовать):
     • Old Standard TT — заголовки и номер заявки. Книжный шрифт русской печати XIX века.
     • Golos Text      — весь текст и интерфейс. Хорошо читается на телефоне.

   Цвета — переменные ниже. Акцентный цвет можно поменять из config.php
   (site.accent_color) — layout.tpl перекрывает --lk-accent прямо на странице.
   ============================================================================= */

/* ---------- Шрифты ---------- */
@font-face { font-family: 'Golos Text'; font-weight: 400; font-display: swap;
    src: url('fonts/golos-text-cyrillic-400-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Golos Text'; font-weight: 400; font-display: swap;
    src: url('fonts/golos-text-latin-400-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }
@font-face { font-family: 'Golos Text'; font-weight: 500; font-display: swap;
    src: url('fonts/golos-text-cyrillic-500-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Golos Text'; font-weight: 500; font-display: swap;
    src: url('fonts/golos-text-latin-500-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }
@font-face { font-family: 'Golos Text'; font-weight: 600; font-display: swap;
    src: url('fonts/golos-text-cyrillic-600-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Golos Text'; font-weight: 600; font-display: swap;
    src: url('fonts/golos-text-latin-600-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }
@font-face { font-family: 'Old Standard TT'; font-weight: 400; font-display: swap;
    src: url('fonts/old-standard-tt-cyrillic-400-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Old Standard TT'; font-weight: 400; font-display: swap;
    src: url('fonts/old-standard-tt-latin-400-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Old Standard TT'; font-weight: 700; font-display: swap;
    src: url('fonts/old-standard-tt-cyrillic-700-normal.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Old Standard TT'; font-weight: 700; font-display: swap;
    src: url('fonts/old-standard-tt-latin-700-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- Цвета и размеры ---------- */
:root {
    --lk-ground:      #F2F3F6;   /* фон страницы — холодный светлый */
    --lk-surface:     #FFFFFF;   /* поверхности (листы) */
    --lk-ink:         #1C2333;   /* основной текст */
    --lk-muted:       #646B7D;   /* второстепенный текст */
    --lk-line:        #E1E4EB;   /* тонкие линии и рамки */
    --lk-accent:      #A3162F;   /* акцент — малиновый из герба (перекрывается из config) */
    --lk-highlight:   var(--lk-accent);   /* выделение: знак №, рамка бланка, галочки на входе (у Культфонда — золото) */
    --lk-done:        #1E7A55;   /* «готово», «оплачено» */
    --lk-wait:        #9A6A12;   /* «ждём» */

    /* Мягкие подложки считаем от основных цветов — при смене акцента подложка меняется сама */
    --lk-accent-soft: color-mix(in srgb, var(--lk-accent) 9%, white);
    --lk-done-soft:   color-mix(in srgb, var(--lk-done) 10%, white);
    --lk-wait-soft:   color-mix(in srgb, var(--lk-wait) 11%, white);

    --lk-radius-sheet: 18px;     /* большие листы */
    --lk-radius-ctrl:  10px;     /* кнопки и поля */

    --lk-font-text:    'Golos Text', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --lk-font-display: 'Old Standard TT', 'Times New Roman', Georgia, serif;

    /* Bootstrap берёт цвета отсюда */
    --bs-body-font-family: var(--lk-font-text);
    --bs-body-color:       var(--lk-ink);
    --bs-body-bg:          var(--lk-ground);
    --bs-border-color:     var(--lk-line);
    --bs-link-color-rgb:   28, 35, 51;
    --bs-secondary-color:  var(--lk-muted);
}

/* ---------- Основа ---------- */
body {
    font-size: 1rem;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
a { color: var(--lk-ink); text-decoration-color: color-mix(in srgb, var(--lk-ink) 30%, transparent); text-underline-offset: 3px; }
a:hover { color: var(--lk-accent); text-decoration-color: currentColor; }
.lk-muted { color: var(--lk-muted); }
.lk-small { font-size: .875rem; }

h1, h2, h3, .lk-display {
    font-family: var(--lk-font-display);
    font-weight: 400;
    letter-spacing: -0.005em;
    line-height: 1.15;
}
h4, h5, h6 { font-family: var(--lk-font-text); font-weight: 600; letter-spacing: -0.01em; }

/* Видимая рамка фокуса для клавиатуры */
:focus-visible { outline: 3px solid color-mix(in srgb, var(--lk-accent) 55%, white); outline-offset: 2px; }

/* ---------- Шапка ---------- */
.lk-header {
    background: var(--lk-surface);
    border-bottom: 1px solid var(--lk-line);
}
.lk-header__inner { display: flex; align-items: center; gap: 1rem; min-height: 68px; }
.lk-brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--lk-ink); }
.lk-brand:hover { color: var(--lk-ink); }
.lk-brand img { width: 40px; height: 40px; object-fit: contain; }
.lk-brand__name { font-family: var(--lk-font-display); font-size: 1.25rem; line-height: 1.1; }
.lk-brand__sub { display: block; font-family: var(--lk-font-text); font-size: .78rem; color: var(--lk-muted); }
.lk-nav { margin-left: auto; display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; justify-content: flex-end; }
.lk-nav a { text-decoration: none; padding: .45rem .7rem; border-radius: var(--lk-radius-ctrl); font-size: .92rem; color: var(--lk-ink); }
.lk-nav a:hover { background: var(--lk-ground); color: var(--lk-ink); }
.lk-nav__email { color: var(--lk-muted); font-size: .88rem; padding: 0 .5rem; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lk-nav__admin { color: var(--lk-accent) !important; font-weight: 600; }

@media (max-width: 575px) {
    .lk-header__inner { min-height: 58px; gap: .5rem; }
    .lk-brand img { width: 34px; height: 34px; }
    .lk-brand__name { font-size: 1.05rem; }
    .lk-brand { min-width: 0; flex: 1 1 auto; }
    .lk-brand > span { min-width: 0; overflow: hidden; }
    .lk-nav { flex: 0 0 auto; }
    .lk-brand__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
    .lk-brand__sub { display: none; }
    .lk-nav { flex-wrap: nowrap; gap: 0; }
    .lk-nav a { padding: .4rem .45rem; font-size: .88rem; white-space: nowrap; }
}

/* Режим администратора — полоса на всю ширину, не перепутать, чей кабинет на экране */
.lk-impersonation { background: var(--lk-accent); color: #fff; font-size: .9rem; }
.lk-impersonation a { color: #fff; font-weight: 600; }
.lk-impersonation a:hover { color: #fff; }

/* ---------- Кнопки ---------- */
.btn { border-radius: var(--lk-radius-ctrl); font-weight: 500; padding: .6rem 1.1rem; }
.btn-sm { padding: .4rem .8rem; font-size: .875rem; }
.btn-lg { padding: .85rem 1.5rem; font-size: 1.05rem; }
.btn-lk {
    background: var(--lk-accent); color: #fff; border: 1px solid var(--lk-accent);
}
.btn-lk:hover, .btn-lk:focus { background: color-mix(in srgb, var(--lk-accent) 86%, black); border-color: color-mix(in srgb, var(--lk-accent) 86%, black); color: #fff; }
.btn-lk:disabled { background: color-mix(in srgb, var(--lk-accent) 45%, white); border-color: transparent; color: #fff; }
.btn-lk-quiet {
    background: var(--lk-surface); color: var(--lk-ink); border: 1px solid var(--lk-line);
}
.btn-lk-quiet:hover, .btn-lk-quiet:focus { background: var(--lk-ground); color: var(--lk-ink); border-color: #cfd3dc; }
.btn-lk-quiet:disabled { color: var(--lk-muted); background: var(--lk-ground); }

/* ---------- Поля форм ---------- */
.form-control, .form-select {
    border-radius: var(--lk-radius-ctrl);
    border-color: #D5D9E2;
    padding: .7rem .9rem;
}
.form-floating > .form-control, .form-floating > .form-select { padding-top: 1.6rem; padding-bottom: .55rem; height: calc(3.6rem + 2px); }
.form-floating > label { color: var(--lk-muted); }
.form-control:focus, .form-select:focus {
    border-color: var(--lk-accent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--lk-accent) 14%, transparent);
}
.form-control:disabled, .form-control[readonly] { background: var(--lk-ground); color: var(--lk-ink); }
.form-check-input { border-color: #9AA1B1; border-width: 1.5px; width: 1.15em; height: 1.15em; }
.form-check-input:checked { background-color: var(--lk-accent); border-color: var(--lk-accent); }
.form-check-input:focus { box-shadow: 0 0 0 4px color-mix(in srgb, var(--lk-accent) 14%, transparent); border-color: var(--lk-accent); }
.form-text { color: var(--lk-muted); font-size: .85rem; }

/* ---------- Лист (белая поверхность) ---------- */
.lk-sheet {
    background: var(--lk-surface);
    border: 1px solid var(--lk-line);
    border-radius: var(--lk-radius-sheet);
}
/* Разделы внутри листа отделены линией — не отдельными карточками */
.lk-section { padding: 1.5rem 1.75rem; }
.lk-section + .lk-section { border-top: 1px solid var(--lk-line); }
.lk-section__title { display: flex; align-items: center; gap: .6rem; font-family: var(--lk-font-text); font-weight: 600; font-size: 1.02rem; letter-spacing: -0.01em; margin: 0 0 .9rem; }
.lk-section__title svg { color: var(--lk-muted); width: 1.05em; }
@media (max-width: 575px) { .lk-section { padding: 1.25rem 1.1rem; } }

/* Метка состояния (оплачено / ждём / нет) */
.lk-tag { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 500; padding: .2rem .65rem; border-radius: 999px; white-space: nowrap; }
.lk-tag--done   { background: var(--lk-done-soft);   color: var(--lk-done); }
.lk-tag--wait   { background: var(--lk-wait-soft);   color: var(--lk-wait); }
.lk-tag--accent { background: var(--lk-accent-soft); color: var(--lk-accent); }
.lk-tag--off    { background: var(--lk-ground);      color: var(--lk-muted); }

/* =============================================================================
   Страница заявки: «бланк» — номер, конкурс, путь заявки
   ============================================================================= */
.lk-blank {
    position: relative;
    background: var(--lk-surface);
    border: 1px solid var(--lk-line);
    border-radius: var(--lk-radius-sheet);
    padding: 2rem 2.25rem 1.75rem;
    overflow: hidden;
}
/* Двойная рамка по краю — как у бланка диплома */
.lk-blank::before {
    content: ''; position: absolute; inset: 8px;
    border: 1px solid color-mix(in srgb, var(--lk-highlight) 35%, transparent);
    border-radius: calc(var(--lk-radius-sheet) - 6px);
    pointer-events: none;
}
.lk-blank__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; flex-wrap: wrap; }
.lk-blank__number-label { color: var(--lk-muted); font-size: .9rem; margin-bottom: .1rem; }
.lk-blank__number {
    font-family: var(--lk-font-display); font-weight: 700;
    font-size: clamp(2.6rem, 6vw, 3.6rem); line-height: 1; letter-spacing: .01em;
    color: var(--lk-ink); font-variant-numeric: lining-nums;
}
.lk-blank__number span { color: var(--lk-highlight); }   /* знак № */
.lk-blank__festival { font-family: var(--lk-font-display); font-size: clamp(1.35rem, 3vw, 1.75rem); line-height: 1.2; margin: 1rem 0 .35rem; max-width: 34ch; }
.lk-blank__work { color: var(--lk-muted); max-width: 70ch; }
.lk-blank__work strong { color: var(--lk-ink); font-weight: 500; }
.lk-blank__date { text-align: right; color: var(--lk-muted); font-size: .88rem; }
@media (max-width: 575px) { .lk-blank { padding: 1.5rem 1.25rem 1.25rem; } .lk-blank__date { text-align: left; } }

/* Путь заявки — 4 шага. Это настоящая последовательность, поэтому шаги пронумерованы. */
.lk-path { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: lk-step; }
.lk-path__step { position: relative; padding-top: 2.4rem; padding-right: .75rem; font-size: .9rem; color: var(--lk-muted); }
/* линия между шагами */
.lk-path__step::after { content: ''; position: absolute; top: 15px; left: 34px; right: 4px; height: 2px; background: var(--lk-line); }
.lk-path__step:last-child::after { display: none; }
/* кружок с номером */
.lk-path__step::before {
    counter-increment: lk-step; content: counter(lk-step);
    position: absolute; top: 0; left: 0; width: 32px; height: 32px; border-radius: 50%;
    display: grid; place-items: center; font-weight: 600; font-size: .9rem;
    background: var(--lk-surface); border: 2px solid var(--lk-line); color: var(--lk-muted);
}
.lk-path__title { display: block; color: inherit; font-weight: 500; }
.lk-path__note { display: block; font-size: .8rem; }
/* пройденный шаг */
.lk-path__step.is-done { color: var(--lk-ink); }
.lk-path__step.is-done::before { content: '✓'; background: var(--lk-done); border-color: var(--lk-done); color: #fff; }
.lk-path__step.is-done::after { background: var(--lk-done); }
/* текущий шаг */
.lk-path__step.is-current { color: var(--lk-ink); }
.lk-path__step.is-current::before { background: var(--lk-accent); border-color: var(--lk-accent); color: #fff; box-shadow: 0 0 0 5px var(--lk-accent-soft); }
.lk-path__step.is-current .lk-path__title { font-weight: 600; }
@media (max-width: 767px) {
    /* на телефоне — вертикально */
    .lk-path { grid-template-columns: 1fr; gap: .9rem; }
    .lk-path__step { padding: 0 0 0 2.75rem; min-height: 32px; display: flex; flex-direction: column; justify-content: center; }
    .lk-path__step::after { top: 34px; left: 15px; right: auto; width: 2px; height: calc(100% - 20px); }
}

/* Отменённая заявка */
.lk-blank.is-cancelled .lk-blank__number { color: var(--lk-muted); text-decoration: line-through; text-decoration-thickness: 2px; }

/* =============================================================================
   «Что дальше» — главный призыв к действию на странице заявки
   ============================================================================= */
.lk-next {
    border-radius: var(--lk-radius-sheet);
    padding: 1.4rem 1.6rem;
    display: flex; gap: 1.25rem; align-items: center; flex-wrap: wrap;
    background: var(--lk-accent-soft);
    border: 1px solid color-mix(in srgb, var(--lk-accent) 25%, transparent);
}
.lk-next--done { background: var(--lk-done-soft); border-color: color-mix(in srgb, var(--lk-done) 25%, transparent); }
.lk-next--wait { background: var(--lk-surface); border-color: var(--lk-line); }
.lk-next__icon {
    flex: 0 0 auto; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
    background: var(--lk-accent); color: #fff; font-size: 1.2rem;
}
.lk-next--done .lk-next__icon { background: var(--lk-done); }
.lk-next--wait .lk-next__icon { background: var(--lk-ground); color: var(--lk-muted); }
.lk-next__body { flex: 1 1 260px; }
.lk-next__title { font-weight: 600; font-size: 1.1rem; margin: 0 0 .15rem; }
.lk-next__text { margin: 0; color: var(--lk-muted); }
.lk-next__action { flex: 0 0 auto; }
@media (max-width: 575px) { .lk-next__action, .lk-next__action .btn { width: 100%; } }

/* Сумма к оплате */
.lk-amount { font-family: var(--lk-font-display); font-size: 2rem; line-height: 1; font-variant-numeric: lining-nums; }
.lk-amount small { font-family: var(--lk-font-text); font-size: 1rem; color: var(--lk-muted); margin-left: .25rem; }

/* Оценка жюри — крупно */
.lk-assessment { font-family: var(--lk-font-display); font-size: 1.6rem; color: var(--lk-accent); line-height: 1.2; }

/* Миниатюры работы */
.lk-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: .6rem; max-width: 600px; }
.lk-thumb { display: block; aspect-ratio: 1; border-radius: 12px; overflow: hidden; border: 1px solid var(--lk-line); background: var(--lk-ground); }
.lk-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.lk-thumb:hover img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { .lk-thumb img { transition: none; } }

/* Поле выбора файлов — крупная область */
.lk-drop {
    display: block; border: 1.5px dashed #C9CEDA; border-radius: 14px; padding: 1.25rem; text-align: center;
    background: var(--lk-ground); cursor: pointer; transition: border-color .15s, background .15s;
}
.lk-drop:hover { border-color: var(--lk-accent); background: var(--lk-accent-soft); }
.lk-drop input[type=file] { margin-top: .75rem; }
.lk-drop__title { font-weight: 500; }

/* Описание данных заявки (список «название — значение») */
.lk-facts { margin: 0; }
.lk-facts dt { font-weight: 400; color: var(--lk-muted); font-size: .85rem; margin: .9rem 0 .1rem; }
.lk-facts dt:first-child, .lk-facts .row > div > dt { margin-top: 0; }
.lk-facts dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }

/* Список заявок участника (боковая колонка) */
.lk-list { list-style: none; margin: 0; padding: 0; }
.lk-list__item + .lk-list__item { border-top: 1px solid var(--lk-line); }
.lk-list__link { display: grid; grid-template-columns: 1fr auto; gap: .1rem .75rem; padding: .85rem 1.75rem; text-decoration: none; color: var(--lk-ink); }
a.lk-list__link:hover { background: var(--lk-ground); color: var(--lk-ink); }
.lk-list__link.is-current { background: var(--lk-accent-soft); box-shadow: inset 3px 0 0 var(--lk-accent); }
.lk-list__number { font-weight: 600; font-variant-numeric: tabular-nums; }
.lk-list__festival { grid-column: 1 / -1; color: var(--lk-muted); font-size: .88rem; line-height: 1.35; }
.lk-list__who { grid-column: 1 / -1; font-size: .88rem; }
@media (max-width: 575px) { .lk-list__link { padding: .85rem 1.1rem; } }

/* Сообщение после действия */
.lk-flash { border-radius: var(--lk-radius-ctrl); padding: .9rem 1.1rem; display: flex; gap: .6rem; align-items: center; }
.lk-flash--success { background: var(--lk-done-soft); color: var(--lk-done); }
.lk-flash--danger  { background: var(--lk-accent-soft); color: var(--lk-accent); }

/* =============================================================================
   Вход
   ============================================================================= */
.lk-login { min-height: 100vh; display: grid; grid-template-columns: minmax(320px, 5fr) 7fr; }
.lk-login__side {
    background: var(--lk-ink); color: #E9EBF1; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between;
    position: relative; overflow: hidden;
}
/* Крупный силуэт герба — водяной знак */
.lk-login__side::after {
    content: ''; position: absolute; right: -90px; bottom: -70px; width: 420px; height: 420px;
    background: var(--lk-logo) center / contain no-repeat; opacity: .07; filter: grayscale(1) brightness(3);
    pointer-events: none;
}
.lk-login__crest { width: 72px; height: 72px; object-fit: contain; background: #fff; border-radius: 16px; padding: 8px; }
.lk-login__title { font-family: var(--lk-font-display); font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1.1; margin: 2rem 0 1rem; color: #fff; max-width: 15ch; }
.lk-login__lead { color: #B8BDCB; max-width: 40ch; margin: 0; }
.lk-login__points { list-style: none; padding: 0; margin: 2.5rem 0 0; display: grid; gap: .8rem; color: #CFD3DE; max-width: 40ch; }
.lk-login__points li { display: flex; gap: .75rem; }
.lk-login__points svg { color: color-mix(in srgb, var(--lk-highlight) 60%, white); margin-top: .3rem; flex: 0 0 auto; }
.lk-login__foot { color: #8E94A6; font-size: .85rem; position: relative; z-index: 1; }
.lk-login__foot a { color: #CFD3DE; }
.lk-login__main { display: flex; align-items: center; justify-content: center; padding: 3rem 1.5rem; }
.lk-login__form { width: 100%; max-width: 420px; }
.lk-login__form h2 { font-size: 2rem; margin-bottom: .5rem; }
.lk-code-input {
    font-family: var(--lk-font-display); font-weight: 700; font-size: 2.2rem !important; text-align: center;
    letter-spacing: .6em; padding-left: .6em !important; font-variant-numeric: lining-nums;
}
@media (max-width: 991px) {
    .lk-login { grid-template-columns: 1fr; }
    .lk-login__side { padding: 1.5rem; }
    .lk-login__side::after { width: 220px; height: 220px; right: -40px; bottom: -50px; }
    .lk-login__title { font-size: 1.7rem; margin: 1rem 0 .4rem; }
    .lk-login__points, .lk-login__foot { display: none; }
    .lk-login__main { padding: 2rem 1.25rem 3rem; align-items: flex-start; }
}

/* =============================================================================
   Форма подачи заявки
   ============================================================================= */
.lk-form-head { padding: 2.25rem 0 1.5rem; }
.lk-form-head h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); max-width: 26ch; margin: .25rem 0 .6rem; }
.lk-form-head p { color: var(--lk-muted); max-width: 70ch; margin: 0; }

/* Номер раздела формы: 1 Заявитель, 2 Номер, 3 Работа — это и правда последовательность */
.lk-step-head { display: flex; align-items: baseline; gap: .8rem; margin-bottom: 1.1rem; }
.lk-step-head__n {
    flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
    background: var(--lk-ink); color: #fff; font-weight: 600; font-size: .88rem; transform: translateY(-2px);
}
.lk-step-head h2 { font-family: var(--lk-font-text); font-weight: 600; font-size: 1.15rem; margin: 0; }
.lk-step-head p { margin: .1rem 0 0; color: var(--lk-muted); font-size: .9rem; }

/* Правая колонка: стоимость и отправка — прилипает при прокрутке */
.lk-summary { position: sticky; top: 1.25rem; }
.lk-summary__price { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.lk-summary__price .lk-amount { min-width: 4ch; text-align: right; }
.lk-summary__festival { font-family: var(--lk-font-display); font-size: 1.25rem; line-height: 1.2; margin: 0 0 1rem; }
.lk-required { color: var(--lk-accent); }

/* =============================================================================
   Страницы-сообщения (спасибо, ошибка, нет заявок)
   ============================================================================= */
.lk-message { max-width: 640px; margin: 3.5rem auto; text-align: center; }
.lk-message__mark {
    width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; margin: 0 auto 1.25rem; font-size: 1.6rem;
    background: var(--lk-done-soft); color: var(--lk-done);
}
.lk-message__mark--error { background: var(--lk-accent-soft); color: var(--lk-accent); }
.lk-message__mark--empty { background: var(--lk-surface); color: var(--lk-muted); border: 1px solid var(--lk-line); }
.lk-message h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); margin-bottom: .75rem; }
.lk-message p { color: var(--lk-muted); }
.lk-message__number { font-family: var(--lk-font-display); font-weight: 700; font-size: 3rem; color: var(--lk-ink); line-height: 1; margin: .5rem 0 1rem; }
.lk-message__number span { color: var(--lk-highlight); }

/* ---------- Окна ---------- */
.modal-content { border: 0; border-radius: var(--lk-radius-sheet); }
.modal-header { border-bottom-color: var(--lk-line); padding: 1.1rem 1.5rem; }
.modal-title { font-family: var(--lk-font-display); font-size: 1.4rem; }
.modal-body { padding: 1.5rem; }
.modal-footer { border-top-color: var(--lk-line); }

/* ---------- Подвал ---------- */
.lk-footer { color: var(--lk-muted); font-size: .85rem; padding: 2.5rem 0 3rem; }
.lk-footer a { color: var(--lk-muted); }

/* ---------- Шторка «Ожидайте…» ---------- */
#busyOverlay { background: color-mix(in srgb, var(--lk-ground) 82%, transparent) !important; }
#busyOverlay .spinner-border { color: var(--lk-accent) !important; }
#busyOverlayText { font-family: var(--lk-font-display); font-size: 1.8rem; font-weight: 400; }
