/* Искусство и Антиквариат: админка (/admin/art) и кабинет (/me/art).
   Подключается только на этих страницах. Базовые классы (.field, .card, .tag, .btn,
   .notice, .table) — из app.css; здесь лишь то, чего там нет. */

/* Статус+рейтинг+SM работы одной строкой под крупным снимком (карточка 2026-10-18-045:
   решать «одобрить/отклонить» по картинке, а не по атрибутике наверху) */
.work-status{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:var(--space-4) 0 var(--space-2); }

/* Название работы крупно, раздел рядом мелко (карточка 2026-10-18-045) */
.aw-title{ margin:var(--space-5) 0 var(--space-4); }
.aw-title h1{ margin:0; }
.aw-title .lead{ font-size:var(--text-sm); color:var(--text-muted); margin-top:var(--space-2); max-width:68ch; }

/* Крупный снимок работы — сразу видно, что одобрять (карточка 2026-10-18-045, Андрей:
   «изображение работы висит обложкой внизу, а решать надо по картинке»). Правило Д-2:
   работа целиком, своими пропорциями, при увеличении ничего не обрезать — object-fit:contain. */
.aw-hero{ display:flex; align-items:center; justify-content:center; overflow:hidden;
  min-height:220px; max-height:62vh; background:var(--canvas-200);
  border:1px solid var(--border-hairline); border-radius:var(--radius-md); }
.aw-hero img{ display:block; width:100%; height:100%; max-height:62vh; object-fit:contain; }
.aw-hero .aw-noimg{ padding:var(--space-8) var(--space-6); color:var(--text-muted); font:var(--type-body-sm); }

/* Значок «Верифицирован», рейтинг и SM автора (trust_marks() из _art_card.html) —
   в админке нет зала (--d-accent и т. п. из direction.css недоступны), поэтому
   те же значки здесь в цветах админки, золото/навy вместо --d-accent. */
.trust{ display:inline-flex; align-items:center; gap:8px; vertical-align:middle; white-space:nowrap; }
.trust-v,.trust-r,.trust-partner{ display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; cursor:help; }
.trust-v,.trust-partner{ width:20px; height:20px; border-radius:50%; border:1px solid var(--gold-500); color:var(--gold-700); }
.trust-v svg,.trust-partner svg{ width:13px; height:13px; }
.trust-r{ height:20px; padding:0 8px; border-radius:var(--radius-pill); border:1px solid var(--border-hairline);
  font:500 11px/1 var(--font-mono); letter-spacing:.06em; color:var(--gold-700); font-variant-numeric:tabular-nums; }
.badge-pro,.badge-sm{ display:inline-flex; align-items:center; height:20px; padding:0 9px;
  border-radius:var(--radius-pill); border:1px solid var(--gold-500); color:var(--gold-700);
  font:700 10px/1 var(--font-mono); letter-spacing:.08em; cursor:help; }

/* ── Вкладки раздела ─────────────────────────────────────────────────── */
.art-tabs{ display:flex; flex-wrap:wrap; gap:4px; margin:var(--space-5) 0;
           border-bottom:1px solid var(--border-hairline); }
.art-tabs a{ display:inline-flex; align-items:center; gap:8px; padding:10px 16px; margin-bottom:-1px;
             font:var(--type-body-sm); color:var(--text-body); text-decoration:none;
             border:0; border-bottom:2px solid transparent; }
.art-tabs a:hover{ color:var(--text-strong); }
.art-tabs a.on{ color:var(--text-strong); font-weight:600; border-bottom-color:var(--gold-500); }
.art-tabs .n{ font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }
.art-tabs .badge{ font-style:normal; font-family:var(--font-mono); font-size:11px;
                  background:var(--gold-300); color:var(--navy-800); border-radius:999px; padding:1px 7px; }

/* ── Фильтры и списки ────────────────────────────────────────────────── */
.art-filters{ display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:flex-end;
              margin-bottom:var(--space-5); }
.art-filters .field{ flex:1 1 150px; min-width:0; max-width:260px; }
.art-filters .field select, .art-filters .field input{ height:40px; }
.art-filters .btn{ height:40px; }

.art-thumb{ width:56px; height:56px; object-fit:cover; display:block; border-radius:var(--radius-xs);
            background:var(--canvas-200); flex:0 0 auto; }
.art-thumb.contain{ object-fit:contain; background:#fff; border:1px solid var(--border-hairline); }
.art-thumb.empty{ background-image:repeating-linear-gradient(45deg, var(--canvas-200) 0 6px, var(--canvas-100) 6px 12px); }

/* Фото человека и логотип — по единому стандарту платформы (Антон 06.10.2026):
   формат и object-fit задаёт media-std.css, здесь только фон, рамка и размеры
   в строках таблиц и в формах. Круглых и квадратных аватарок больше нет. */
.ag-portrait, .ag-portrait-empty{ border-radius:var(--radius-xs); background:var(--canvas-200);
            border:1px solid var(--border-hairline); flex:0 0 auto; }
.ag-portrait-empty{ background-image:repeating-linear-gradient(45deg, var(--canvas-200) 0 6px, var(--canvas-100) 6px 12px); }
.ag-logo{ flex:0 0 auto; background:var(--canvas-000); border:1px solid var(--border-hairline);
            border-radius:var(--radius-xs); }
.ag-logo--empty{ background-image:repeating-linear-gradient(45deg, var(--canvas-200) 0 6px, var(--canvas-100) 6px 12px); }
/* Высота плашки логотипа задаётся, ширина выходит вдвое больше сама (aspect-ratio 2:1) */
.ag-logo--xs{ height:56px; }
.ag-logo--row{ height:64px; }
.ag-logo--md{ height:96px; }
.ag-portrait--row{ width:auto; height:64px; }

.art-table td .sub{ display:block; font-size:var(--text-xs); color:var(--text-muted); margin-top:2px; }
.art-table .acts{ display:flex; flex-wrap:nowrap; gap:6px; align-items:center; }
.art-pager{ display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center; justify-content:center;
            margin-top:var(--space-5); font:var(--type-body-sm); color:var(--text-muted); }

/* ── Массовое согласование работ (карточка 2026-10-13-001): очередь проверки и список
   работ отмечают галочкой несколько строк или все работы одного автора и решают разом. */
.bulk-bar{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3);
           margin-bottom:var(--space-4); padding:var(--space-3); background:var(--canvas-100);
           border:1px solid var(--border-hairline); border-radius:var(--radius-sm); }
.bulk-bar label{ display:flex; align-items:center; gap:6px; font-size:var(--text-sm); white-space:nowrap; }
.bulk-bar input[type=text]{ flex:1 1 220px; min-width:160px; height:36px; padding:0 var(--space-3);
           border:1px solid var(--border-hairline); border-radius:var(--radius-xs); }
.bulk-author{ margin-left:8px; border:0; background:none; padding:0; font-size:var(--text-xs);
              color:var(--text-muted); text-decoration:underline; cursor:pointer; }
.bulk-author:hover{ color:var(--text-strong); }
.art-q .bulk-check{ margin-top:4px; }
@media (max-width: 700px){
  .art-table-bulk td:first-child{ display:none; }
  .art-table-bulk td:nth-child(2){ grid-column:1; grid-row:1 / span 8; }
}

/* ── Формы ───────────────────────────────────────────────────────────── */
form.inline{ display:inline; margin:0; }
.art-form .full{ grid-column:1 / -1; }
.art-form textarea.mono-lines{ font-family:var(--font-mono); font-size:13px; }
.art-form .field input[type=file], .art-upload input[type=file]{ font:var(--type-body-sm); max-width:100%;
          color:var(--text-muted); }
.art-form input[type=file]::file-selector-button, .art-upload input[type=file]::file-selector-button{
          font:inherit; height:36px; padding:0 var(--space-4); margin-right:var(--space-3); cursor:pointer;
          border:1px solid var(--border-strong); border-radius:var(--radius-sm); background:transparent;
          color:var(--navy-800); }
/* Пара полей в одной строке. Поля прижаты к низу ячейки, поэтому подпись, уехавшая в две
   строки, не сдвигает соседнее поле (правило Антона 06.10.2026: ничего не съезжает).
   Подсказки в такой строке не ставим — они идут под строкой целиком. */
.art-pair{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
           gap:var(--space-4); align-items:end; }
.art-pair .field label{ align-self:start; }
.art-checks{ display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:8px 14px; }
.art-checks.scroll{ max-height:260px; overflow:auto; padding:var(--space-3) var(--space-4);
                    border:1px solid var(--border-hairline); border-radius:var(--radius-sm);
                    background:var(--surface-raised); }
.art-check{ display:flex; align-items:center; gap:8px; font:var(--type-body-sm); color:var(--text-body);
            cursor:pointer; min-width:0; }
.art-check input{ flex:0 0 auto; width:16px; height:16px; margin:0; }
.art-check span{ min-width:0; overflow-wrap:anywhere; }
.art-check small{ color:var(--text-muted); }
/* Отбор работ на выставку — превью-карточка, а не только название (Андрей 17.10.2026):
   иначе ни организатор, ни сам художник не всегда помнит, какая работа за каким названием. */
.art-checks.works{ grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); }
.art-check.has-thumb{ align-items:flex-start; }
.art-check.has-thumb .art-thumb{ width:56px; height:56px; flex:0 0 auto; }
.art-check.has-thumb span{ display:flex; flex-direction:column; gap:2px; }
.art-check.has-thumb b{ font-weight:var(--weight-medium, 600); }
/* Состав выставки (карточка 2026-10-17-065): поиск авторов, найденные строкой галочек,
   у участника — его отобранные работы превью. Работы показываются целиком (contain):
   картину не обрезаем ни здесь, ни на странице автора. Высота ряда одна у всех карточек
   (ровность, Антон 06.10.2026) — поэтому и у подписи, и у превью фиксированный размер. */
.art-checks[hidden]{ display:none; }       /* иначе display:grid перебивает атрибут hidden */
/* Строка автора шире строки-галочки: в 170 px имя с городом и числом работ не влезает */
.art-checks.people{ grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); }
/* На странице участника выставки места много — превью крупнее, чтобы работу было
   видно, а не только её название (Андрей: «посмотреть его работы, отметить нужные») */
.art-checks.works.wide{ grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); }
.art-check.has-thumb .art-thumb.big{ width:140px; height:140px; }
.art-fold{ margin-top:var(--space-4); }
.art-fold > summary{ font-size:var(--text-sm); color:var(--text-muted); cursor:pointer; }
.art-fold > summary:hover{ color:var(--text-body); }
.art-fold .art-checks{ margin-top:var(--space-3); }
.exh-picked{ display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-3); }
.exh-pick{ display:flex; flex-direction:column; gap:4px; width:76px; border:0; text-decoration:none;
           color:var(--text-muted); }
.exh-pick .art-thumb{ width:76px; height:76px; }
.exh-pick small{ font-size:var(--text-xs); line-height:1.25; max-height:2.5em; overflow:hidden;
           overflow-wrap:anywhere; }
.exh-pick:hover small{ color:var(--text-body); }
/* Окно «Новый художник» прямо из состава выставки (карточка 2026-10-18-050): открывается
   поверх карточки выставки, форма выставки под ним не перезагружается и не теряется. */
.exh-dlg{ border:0; border-radius:var(--radius-md); padding:0; width:min(480px, calc(100vw - 32px));
          max-height:calc(100vh - 32px); overflow:auto; background:var(--surface-card); }
.exh-dlg::backdrop{ background:rgba(0,0,0,.45); }
.exh-dlg form{ padding:var(--space-6); margin:0; }

.art-imgbox{ display:flex; gap:var(--space-4); align-items:center; flex-wrap:wrap; }
.art-imgbox img{ width:96px; height:96px; object-fit:cover; border-radius:var(--radius-sm);
                 background:var(--canvas-200); border:1px solid var(--border-hairline); }
.art-imgbox img.wide{ width:192px; height:64px; }
/* афиша мероприятия вертикальная (стандарт логотипов и фото §1) */
.art-imgbox img.poster{ width:96px; height:144px; }
/* Предпросмотр фото человека и логотипа в формах — единый стандарт (media-std.css).
   Правило .art-imgbox img выше по весу, поэтому логотипу размеры задаются заново:
   без этого он обрезался квадратом 96×96 прямо в форме. */
.art-imgbox .ag-portrait{ width:auto; height:128px; border-radius:var(--radius-sm); }
.art-imgbox .ag-logo{ height:96px; border-radius:var(--radius-sm); }
.art-imgbox .ag-logo > img{ width:auto; height:auto;
                 max-width:calc(100% - 2 * var(--ag-logo-air));
                 max-height:calc(100% - 2 * var(--ag-logo-air));
                 object-fit:contain; background:none; border:0; border-radius:0; }
.art-sub{ font:var(--type-label); letter-spacing:var(--tracking-caps); text-transform:uppercase;
          color:var(--text-muted); margin:var(--space-6) 0 var(--space-3); }
.art-note{ font-size:var(--text-xs); color:var(--text-muted); }
option[hidden]{ display:none; }

/* Поле, восстановленное из черновика автосохранения (карточка 2026-10-14-012) */
.field.draft-mark{ border-left:2px solid var(--gold-500); padding-left:var(--space-3);
                    margin-left:calc(var(--space-3) * -1); }

/* ── Снимки работы ───────────────────────────────────────────────────── */
.art-photos{ display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
             gap:var(--space-4); margin-top:var(--space-5); }
.art-photo{ border:1px solid var(--border-hairline); border-radius:var(--radius-sm); overflow:hidden;
            background:var(--surface-card); display:flex; flex-direction:column; min-width:0; }
.art-photo img{ width:100%; aspect-ratio:1 / 1; object-fit:contain; display:block; background:var(--canvas-200); }
.art-photo .bar{ display:flex; flex-wrap:wrap; gap:6px; padding:8px 10px; align-items:center; }
.art-photo .bar .btn{ height:30px; padding:0 10px; font-size:var(--text-xs); }
.art-photo .cap{ padding:0 10px 8px; font-size:var(--text-xs); color:var(--text-muted); overflow-wrap:anywhere; }
.art-photo .cover-mark{ padding:6px 10px 0; font:var(--type-label); letter-spacing:var(--tracking-caps);
                        text-transform:uppercase; font-size:10px; color:var(--gold-700); }
.art-upload{ display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:flex-end; margin-top:var(--space-4); }
.art-upload .field{ flex:1 1 220px; min-width:0; }

/* ── Очередь проверки ────────────────────────────────────────────────── */
.art-q{ display:flex; gap:var(--space-5); align-items:flex-start; padding:var(--space-4);
        flex-wrap:wrap; }
.art-q .body{ flex:1 1 260px; min-width:0; }
.art-q .body b.t{ display:block; font-family:var(--font-display); font-size:var(--text-lg); }
.art-q .decide{ flex:1 1 280px; min-width:0; display:flex; flex-direction:column; gap:var(--space-3); }
.art-q .decide form{ display:flex; flex-wrap:wrap; gap:var(--space-2); }
.art-q .decide form input[type=text]{ flex:1 1 160px; min-width:0; height:36px; padding:0 var(--space-3);
        border:1px solid var(--border-hairline); border-radius:var(--radius-sm);
        background:var(--surface-raised); font:var(--type-body-sm); }

/* ── Кабинет ─────────────────────────────────────────────────────────── */
.cab-choice{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:var(--space-5);
             margin-top:var(--space-6); max-width:820px; }
.cab-choice .card{ display:flex; flex-direction:column; gap:var(--space-3); align-items:flex-start; }
.cab-choice h2{ margin:0; font-size:clamp(20px, 2.4vw, 26px); }
/* Кнопки выбора стоят на одной линии по низу карточек, даже когда в одной из них
   ещё и загрузка портфолио: карточка выше, а кнопки не должны разъезжаться */
.cab-choice .card > :last-child{ margin-top:auto; }
/* Колонка не уже 360px: иначе плашка логотипа (128px) не встаёт рядом с текстом
   и у галереи съезжает вниз, а соседние карточки остаются ровными */
.cab-profiles{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap:var(--space-4); }
.cab-profile{ display:flex; gap:var(--space-4); align-items:center; padding:var(--space-4); flex-wrap:wrap; }
.cab-profile .body{ flex:1 1 180px; min-width:0; }
.cab-works{ display:flex; flex-direction:column; gap:var(--space-3); margin-top:var(--space-5); }
.cab-work{ display:flex; gap:var(--space-4); align-items:center; padding:var(--space-3) var(--space-4); flex-wrap:wrap; }
.cab-work .body{ flex:1 1 220px; min-width:0; }
.cab-work .body b{ font-family:var(--font-display); font-size:var(--text-lg); overflow-wrap:anywhere; }
.cab-reason{ margin-top:var(--space-2); padding:var(--space-2) var(--space-3); border-radius:var(--radius-xs);
             background:var(--status-restricted-bg); color:var(--status-restricted); font-size:var(--text-xs); }

/* ── Телефон ─────────────────────────────────────────────────────────── */
@media (max-width: 900px){
  .art-form .form-grid, .art-form .form-grid.three{ grid-template-columns:1fr; }
}
/* Таблица проверки работ, разобранных из PDF-портфолио: в каждой ячейке поле,
   поэтому поля тянутся по ширине столбца, а строка снятая с отметки гаснет. */
.art-import{ table-layout:fixed; }           /* доли ширины из шапки: название не сжимается в щель */
.art-import th, .art-import td{ padding:var(--space-2); }
.art-import td{ vertical-align:top; }
.art-import td > * + *{ margin-top:4px; }
.art-import td.sizes > * + *{ margin-top:0; }
.art-import .art-thumb{ width:100%; max-width:76px; height:auto; aspect-ratio:1; }
.art-import input[type=text], .art-import select, .art-import textarea{ width:100%; min-width:0;
  font:var(--type-body-sm); font-size:15px; color:var(--text-strong); background:var(--surface-raised);
  border:1px solid var(--border-hairline); border-radius:var(--radius-xs); padding:6px 8px; }
.art-import input[type=text], .art-import select{ height:36px; }
.art-import td.sizes input{ padding:6px 4px; text-align:center; }
.art-import input:focus, .art-import select:focus, .art-import textarea:focus{
  outline:none; border-color:var(--navy-600); box-shadow:var(--focus-ring); }
.art-import td .sub{ font-size:var(--text-sm); }
/* Шапка с названиями столбцов не уезжает при прокрутке (отзыв художницы 15.10.2026):
   встаёт под закреплённую шапку сайта */
.art-import thead th{ position:sticky; top:var(--header-height); z-index:2; background:var(--surface-page, var(--canvas-100));
  font-size:var(--text-xs); }
.art-import textarea{ margin-top:4px; resize:vertical; }
/* ячейка остаётся ячейкой таблицы (с display:flex она выпадала из строки и не тянулась
   по её высоте) — три поля в ряд строчными блоками */
.art-import td.sizes{ white-space:nowrap; }
.art-import td.sizes input{ display:inline-block; width:calc((100% - 8px) / 3); }
.art-import td.sizes input + input{ margin-left:4px; }
@media (max-width: 900px){ .art-import thead th{ top:0; } }   /* шапка сайта здесь не закреплена */
.art-import-skip{ opacity:.5; }
.art-import-skip:focus-within{ opacity:1; }
.art-import-bar{ align-items:flex-end; margin:var(--space-4) 0; }
.art-form .field > label{ font-size:var(--text-xs); }
.art-form .field input[type=text], .art-form .field input[type=number], .art-form .field input[type=tel],
.art-form .field input[type=email], .art-form .field input[type=url], .art-form .field select,
.art-form .field textarea{ font-size:var(--text-md); }

@media (max-width: 700px){
  /* Таблицы списков становятся карточками: слева снимок, справа строки. В пять столбцов
     строка не помещалась в экран, а карточка с подписями над каждым полем вытягивалась на пол-экрана. */
  .admin-main .art-table{ display:block; overflow:visible; }
  .art-table thead{ display:none; }
  .art-table tbody{ display:block; }
  .art-table tr{ display:grid; grid-template-columns:64px minmax(0, 1fr); column-gap:var(--space-3);
                 border:1px solid var(--border-hairline); border-radius:var(--radius-sm);
                 padding:var(--space-3); margin-bottom:var(--space-3); background:var(--surface-card); }
  .art-table td{ display:block; grid-column:2; border:0; padding:2px 0; min-width:0; overflow-wrap:anywhere; }
  .art-table td:first-child{ grid-column:1; grid-row:1 / span 8; }
  .art-table tr:hover td{ background:none; }
  .art-table td[data-label]::before{ content:attr(data-label) ": "; color:var(--text-muted);
        font:var(--type-label); letter-spacing:var(--tracking-caps); text-transform:uppercase; font-size:10px; }
  .art-table td:last-child{ padding-top:var(--space-2); }
  .cab-choice{ grid-template-columns:1fr; }
  .art-tabs a{ padding:8px 10px; }
  .art-q .decide form input[type=text]{ flex-basis:100%; }
  .art-photos{ grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:var(--space-3); }
  .art-import td.sizes{ display:grid; grid-template-columns:repeat(3, 1fr); gap:6px; }
  .art-import td.sizes input{ width:100%; } .art-import td.sizes input + input{ margin-left:0; }
  /* то же и в кабинете автора, где нет оболочки .admin-main: таблица тоже становится карточками */
  .art-table.art-import{ display:block; overflow:visible; }
  .art-import-bar{ flex-wrap:wrap; }
  .art-import-bar > .grow{ flex:1 1 100%; }
  .art-import-bar .btn{ flex:1 1 auto; text-align:center; }
}

/* ── Страница автора в кабинете: шапка, ссылка, PDF ──────────────────── */
.cab-cover{ width:100%; max-width:560px; aspect-ratio:3 / 1; overflow:hidden; background:var(--canvas-200);
            border:1px solid var(--border-hairline); border-radius:var(--radius-sm); }
.cab-cover img{ display:block; width:100%; height:100%; object-fit:cover; }
.cab-cover-empty{ display:grid; place-items:center; height:100%; font-size:var(--text-sm); color:var(--text-muted);
                  background-image:repeating-linear-gradient(45deg, var(--canvas-200) 0 6px, var(--canvas-100) 6px 12px); }
.cab-work .btn[aria-busy="true"], a.btn[aria-busy="true"]{ opacity:.6; pointer-events:none; }


/* Обрезка кадров: исходник и результат рядом, одной высоты — иначе не сравнить */
.crop-list { display: grid; gap: 18px; margin: 18px 0; }
.crop-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 18px;
  align-items: start; padding: 14px; border: 1px solid var(--line, #e3e0d8); border-radius: 10px; background: #fff; }
.crop-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.crop-pair figure { margin: 0; display: grid; gap: 6px; justify-items: center; }
.crop-pair img { width: 100%; height: 260px; object-fit: contain; background: #f4f2ec; border-radius: 6px; }
.crop-pair figcaption { font-size: 13px; color: var(--muted, #7a7366); }
.crop-side h3 { margin: 0 0 4px; font-size: 17px; }
.crop-pick { display: flex; align-items: center; gap: 6px; margin: 0 0 8px;
  font-size: 13px; color: var(--muted, #7a7366); }
@media (max-width: 900px) {
  .crop-row { grid-template-columns: 1fr; }
}

/* Правило обложки работы: подходит / не подходит, карточка 2026-10-16-056 */
.cover-rules{ background:var(--canvas-100); border:1px solid var(--border-hairline); border-radius:var(--radius-sm);
              padding:var(--space-4) var(--space-5); margin-top:var(--space-4); }
.cover-rules-title{ font-family:var(--font-display); font-size:var(--text-base); }
.cover-rules-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(110px, 1fr)); gap:var(--space-3); margin-top:var(--space-4); }
.cover-tile{ position:relative; display:grid; justify-items:center; text-align:center; gap:4px;
             padding:var(--space-3); background:var(--surface-raised); border-radius:var(--radius-sm); }
.cover-tile svg{ color:var(--text-muted); }
.cover-tile.ok svg{ color:var(--status-positive); }
.cover-tile.no svg{ color:var(--status-restricted); }
.cover-tile b{ font-size:var(--text-sm); }
.cover-tile p{ margin:0; font-size:var(--text-xs); color:var(--text-muted); }
.cover-badge{ position:absolute; top:4px; right:4px; width:18px; height:18px; border-radius:50%;
              display:grid; place-items:center; font-size:11px; line-height:1; }
.cover-badge.ok{ background:var(--status-positive-bg); color:var(--status-positive); }
.cover-badge.no{ background:var(--status-restricted-bg); color:var(--status-restricted); }
@media (max-width:640px){ .cover-rules-grid{ grid-template-columns:1fr; } }

/* Выбор площадки выставки из общей базы площадок d-fest (Андрей 18.10.2026): подсказки
   списком под полем. Строки одной высоты и одной ширины — ровность (Д-1). */
.venue-list{ margin-top:var(--space-2); border:1px solid var(--border-hairline);
             border-radius:var(--radius-sm); background:var(--surface-raised); overflow:hidden; }
.venue-list[hidden]{ display:none; }
.venue-opt{ display:block; width:100%; text-align:left; padding:10px var(--space-4); border:0;
            background:none; cursor:pointer; font:var(--type-body-sm); color:var(--text-body); }
.venue-opt + .venue-opt{ border-top:1px solid var(--border-hairline); }
.venue-opt:hover, .venue-opt:focus-visible{ background:var(--canvas-200); }
.venue-opt small{ display:block; color:var(--text-muted); }
