:root{
  --bg:#F7F5F2; --ink:#26212B; --muted:#7A7284; --card:#fff; --line:#E7E2DA;
  --candy:#E8336D; --sea:#00A6A6; --sun:#FFC53D; --warn:#FFF3D6; --danger:#C62828;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
.top{background:var(--ink);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.top a{color:#fff;font-weight:700;text-decoration:none;opacity:.85}
.grow{flex:1}
.wrap{max-width:1180px;margin:0 auto;padding:18px 20px 60px}
h2{font-size:15px;font-weight:800;margin:22px 0 10px;letter-spacing:.2px}
.hint{color:var(--muted);font-size:12.5px;margin:-4px 0 12px;line-height:1.5}
/* Вкладок одиннадцать: полоса переносится на вторую строку, а не уезжает
   за край окна (до 09.10.2026 правые вкладки терялись уже на ~1000 px). */
.seg{display:flex;flex-wrap:wrap;gap:6px;background:#00000022;padding:4px;border-radius:12px;min-width:0}
.seg button{background:none;border:none;color:#fff;font:inherit;font-weight:700;padding:6px 12px;border-radius:8px;cursor:pointer;opacity:.7;white-space:nowrap}
.seg button.on{background:var(--candy);opacity:1}
/* overflow-x: широкая таблица прокручивается внутри карточки, а не
   растягивает страницу (между 700 и ~850 px страница была шире окна). */
.card{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px;overflow-x:auto}
.card h3{font-size:14px;margin-bottom:2px}
.card .sub{color:var(--muted);font-size:12px;margin-bottom:10px}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:11px;text-transform:uppercase;color:var(--muted);padding:6px 8px;font-weight:800}
td{padding:5px 8px;border-top:1px solid var(--line);vertical-align:middle}
tr.off td{opacity:.45}
input[type=text],input[type=number],textarea{
  font:inherit;border:1.5px solid var(--line);border-radius:8px;padding:5px 8px;background:#fff;width:100%;max-width:260px;
}
input[type=number]{max-width:110px}
/* ⚠️ Описание НЕ занимает ни отдельной колонки, ни угла в ячейке названия,
   и это измерено, а не на глаз: восьмая колонка на окне 900 px выносила
   таблицу за край (917 против 885), а в ячейке названия поле ужималось
   до 70 px — писать в такое нельзя. Поэтому у описания СВОЯ СТРОКА
   на всю ширину: колонки не двигаются, а текст виден целиком. */
textarea{max-width:640px;resize:vertical;line-height:1.35}
tr.descrow td{border-top:none;padding:0 8px 8px}
input:focus,textarea:focus{outline:none;border-color:var(--candy)}
.sw{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.badge{display:inline-block;background:#EFECE7;color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}
.badge.sold{background:#FDEBEF;color:#B01B4C}
button.small{font:inherit;font-size:12px;font-weight:700;border-radius:8px;padding:5px 10px;border:1.5px solid var(--line);background:#fff;cursor:pointer}
button.small:hover{border-color:var(--candy)}
button.red{color:var(--danger);border-color:#F3B9CB}
button.pri{background:var(--candy);color:#fff;border-color:var(--candy)}
button:disabled{opacity:.4;cursor:not-allowed}
.newrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(120%);background:var(--ink);color:#fff;padding:11px 16px;border-radius:12px;max-width:520px;transition:transform .18s;z-index:9;line-height:1.4}
.toast.on{transform:translateX(-50%)}
.toast.err{background:var(--danger)}
/* Проданные брони, которые свела правка признака (0059) — до «Понятно» */
.clash{max-width:1140px;width:calc(100% - 40px);margin:14px auto 0;background:var(--warn);border:1.5px solid var(--sun);border-radius:14px;padding:12px 16px;line-height:1.45}
.clash[hidden]{display:none}
.clash .hint{margin:4px 0 8px}
.clash ul{margin:0 0 10px 18px}
.clash li{margin:3px 0}
.clash a{color:var(--ink);font-weight:700}
.gate{max-width:340px;margin:16vh auto;background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:22px}
.gate input{width:100%;margin:10px 0}
.gate button{width:100%;background:var(--candy);color:#fff;border:none;border-radius:10px;padding:12px;font:inherit;font-weight:800;cursor:pointer}
.log{font-size:12.5px}
/* журнал постранично (15.09.2026) */
.logbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.logbar label{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:800}
.logbar select{font:inherit;font-size:13px;padding:5px 8px;border:1.5px solid var(--line);border-radius:8px;background:#fff}
.logbar .sub{color:var(--muted);font-size:12px}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin:10px 0;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
button.small:disabled{opacity:.45;cursor:default;border-color:var(--line)}
/* вкладка «Правила» (0036) */
.rule{display:flex;gap:8px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.rule:first-child{border-top:none}
.rule textarea{max-width:none;flex:1}
.rule .ctl{display:flex;flex-direction:column;gap:4px}
.preview{list-style:none;display:grid;gap:8px;max-width:520px}
.preview li{background:#F8FAFC;border:1.5px solid var(--line);border-radius:12px;padding:9px 11px;line-height:1.45}
.preview li.strong{font-weight:800;border-color:#FF5B33}
.log td{color:var(--muted)}
/* вкладка «Промокоды» (0039) */
.pcode{font-weight:800;font-size:15px;letter-spacing:.5px}
.pcond{color:var(--muted);font-size:12.5px;line-height:1.5;margin:4px 0 0}
.pgrid{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.pgrid label{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:800}
.pgrid .fld{display:flex;flex-direction:column;gap:3px}
.pticks{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 0}
.pticks label{font-size:12.5px;text-transform:none;color:var(--ink);font-weight:600}
/* вкладка «Витрина» (0038) */
.siteState{font-size:17px;font-weight:800;padding:12px 14px;border-radius:12px;margin-bottom:10px}
.siteState.open{background:#E6F6F7;color:#00707A}
.siteState.closed{background:#FDEBEF;color:#B01B4C}
.siteState .sub{font-weight:600;margin:4px 0 0}
#siteMsg{max-width:640px}
@media(max-width:700px){ table,thead,tbody,tr,td,th{display:block} th{display:none}
  td{border:none;padding:3px 0} tr{border-top:1px solid var(--line);padding:8px 0;display:block} }
/* вкладка «Посещения»: отчёт за период и отметки дня (этап B).
   Таблицы отчёта — из чисел: на узком экране их не разбирают на блоки
   (без заголовков числа нечитаемы), а прокручивают вбок. */
.vrbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px;font-size:13px}
.vrsum{font-size:13px;margin-bottom:10px;line-height:1.6}
.vrwrap{overflow-x:auto;margin-bottom:6px}
#vrBody h3{margin:14px 0 4px}
table.rep td,table.rep th{white-space:nowrap}
table.rep tr.sum td{font-weight:800}
.vrow{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.vrow > div{flex:1;min-width:0}
.vrow small{display:inline-block;width:100%;color:var(--muted);font-size:12px}
/* Зачёркнута сама отметка, а кто и почему снял — читается: inline-block
   зачёркивание родителя не наследует. */
.vrow.void > div{text-decoration:line-through;color:var(--muted)}
/* Первый столбец остаётся на месте, когда таблицу прокручивают вбок. */
table.rep td:first-child,table.rep th:first-child{position:sticky;left:0;background:var(--card)}
@media(max-width:700px){ table.rep{display:table} table.rep thead{display:table-header-group}
  table.rep tbody{display:table-row-group} table.rep tr{display:table-row;padding:0;border:0}
  table.rep td,table.rep th{display:table-cell;padding:6px 8px;border-bottom:1px solid var(--line)} }
.helpq{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1.5px solid currentColor;font:700 11px/1 system-ui,sans-serif;text-decoration:none;color:#8a93a8;vertical-align:middle;margin-left:6px;opacity:.8}
.helpq:hover{opacity:1;color:#2C4E94}
