/* ==========================================================================
   ИАП АИК — админка (часть дашборда). Только токены из tokens.css.
   ========================================================================== */

.admin { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: var(--sp-6); align-items: start; }
.admin-nav { position: sticky; top: calc(var(--header-h) + var(--sp-4)); display: grid; gap: var(--sp-1); }
.admin-nav .overline { padding: var(--sp-3) var(--sp-3) var(--sp-1); }
.admin-nav a {
  display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-3); border-radius: var(--r-md);
  color: var(--ink-2); font-weight: var(--fw-medium);
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.admin-nav a:hover { background: var(--panel-2); color: var(--ink); }
.admin-nav a.is-active { background: var(--panel-3); color: var(--ink); }
.admin-nav .count { margin-left: auto; }
.admin-user { padding: var(--sp-3); border: var(--hairline) solid var(--line); border-radius: var(--r-lg); background: var(--panel); margin-bottom: var(--sp-2); }
.admin-user b { display: block; }
.admin-user span { font-size: var(--fs-12); color: var(--ink-3); }
.admin-main { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); align-content: start; }
.admin-main > form, .admin-main .form { min-width: 0; }
.admin-head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--sp-4); flex-wrap: wrap; }
.admin-head h1 { font-size: var(--fs-28); line-height: var(--lh-28); }
.admin-head .page-head-text { display: grid; gap: var(--sp-1); }

/* ---------- Шапка: язык, предпросмотр, меню пользователя ---------- */
.seg-lang { padding: 2px; }
.seg-lang a {
  display: inline-grid; place-items: center; min-width: 32px; height: 26px; padding: 0 var(--sp-2); border-radius: var(--r-sm);
  font-size: var(--fs-12); font-weight: var(--fw-semibold); letter-spacing: var(--tracking-caps); color: var(--ink-3);
  transition: color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}
.seg-lang a:hover { color: var(--ink); }
.seg-lang a[aria-current="true"] { background: var(--panel-3); color: var(--ink); box-shadow: inset 0 0 0 var(--hairline) var(--line-strong); }
.badge-preview { height: 24px; color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, transparent); background: var(--accent-soft); }
.badge-preview:hover { color: var(--accent); }
.nav-admin { color: var(--accent); }
.user-menu > summary { list-style: none; }
.user-menu > summary::-webkit-details-marker { display: none; }
.user-menu[open] > summary { color: var(--ink); background: var(--panel-3); }
.menu-right { left: auto; right: 0; min-width: 260px; }
.menu-head { display: grid; gap: 2px; padding: var(--sp-2) var(--sp-3) var(--sp-3); margin-bottom: var(--sp-1); border-bottom: var(--hairline) solid var(--line); }
.menu-head span { font-size: var(--fs-12); color: var(--ink-3); }
.menu-button { width: 100%; border: 0; background: transparent; font: inherit; text-align: left; cursor: pointer; }
@media (max-width: 640px) {
  .hide-sm { display: none; }
  .badge-preview span { display: none; }
  .badge-preview { padding: 0 var(--sp-1); }
  .seg-lang a { min-width: 28px; padding: 0 var(--sp-1); }
}

/* ---------- Формы ---------- */
.form { display: grid; gap: var(--sp-4); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
.form-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.form-field { display: grid; gap: var(--sp-1); font-size: var(--fs-12); color: var(--ink-2); font-weight: var(--fw-medium); }
.form-field > span { display: flex; align-items: center; gap: var(--sp-2); }
input[type="text"], input[type="password"], input[type="number"], input[type="search"], input:not([type]), select, textarea {
  font: inherit; font-size: var(--fs-14); color: var(--ink);
  background: var(--panel-2); border: var(--hairline) solid var(--line-strong); border-radius: var(--r-md);
  padding: var(--sp-2) var(--sp-3); min-height: 36px; width: 100%;
  transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
textarea { min-height: 72px; resize: vertical; line-height: var(--lh-14); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
input[readonly] { color: var(--ink-3); background: transparent; }
.check { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-14); color: var(--ink-2); cursor: pointer; }
.check input { width: 16px; height: 16px; accent-color: var(--accent); }
.btn-block { width: 100%; }
.btn-danger { color: var(--critical-text); border-color: color-mix(in srgb, var(--critical) 45%, transparent); background: transparent; }
.btn-danger:hover { color: var(--critical-text); background: color-mix(in srgb, var(--critical) 10%, transparent); }
.form-actions { display: flex; gap: var(--sp-2); flex-wrap: wrap; align-items: center; position: sticky; bottom: 0; z-index: 5;
  padding: var(--sp-3) var(--sp-4); background: color-mix(in srgb, var(--panel) 94%, transparent); backdrop-filter: blur(8px);
  border: var(--hairline) solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-pop); }
.form-error, .form-ok { display: flex; gap: var(--sp-2); align-items: flex-start; padding: var(--sp-2) var(--sp-3); border-radius: var(--r-md); font-size: var(--fs-14); }
.form-error { color: var(--critical-text); background: color-mix(in srgb, var(--critical) 10%, transparent); }
.form-ok { color: var(--good-text); background: var(--good-soft); }
.form-error .ico, .form-ok .ico { margin-top: 2px; flex: none; }
.section-title { font-size: var(--fs-16); line-height: var(--lh-16); font-weight: var(--fw-semibold); margin-top: var(--sp-2); }

/* ---------- Поле на трёх языках ---------- */
.loc-field { border: 0; margin: 0; padding: 0; display: grid; gap: var(--sp-2); min-width: 0; }
.loc-field legend { padding: 0; margin-bottom: var(--sp-2); font-size: var(--fs-12); font-weight: var(--fw-semibold); color: var(--ink-2); }
.loc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-2); }
.loc-input { position: relative; display: grid; gap: var(--sp-1); min-width: 0; }
.loc-lang { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--fs-12); font-weight: var(--fw-semibold); color: var(--ink-3); letter-spacing: var(--tracking-caps); }
.loc-missing { color: var(--warn-text); font-weight: var(--fw-medium); letter-spacing: 0; }
.loc-input.is-missing input, .loc-input.is-missing textarea { border-color: color-mix(in srgb, var(--warn) 55%, transparent); }

/* ---------- Таблица ввода и публикации ---------- */
.data-table input[type="text"], .data-table select { min-height: 32px; padding: var(--sp-1) var(--sp-2); }
.data-table td { vertical-align: top; }
.data-table .num-input { width: 128px; text-align: right; font-variant-numeric: tabular-nums; }
.data-table select { min-width: 168px; }
.data-table .note-input { min-width: 160px; }
.row-changed td { background: var(--accent-soft); }
.status { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--fs-12); font-weight: var(--fw-medium); white-space: nowrap; }
.status-Submitted { color: var(--warn-text); }
.status-Approved { color: var(--good-text); }
.status-Draft { color: var(--ink-3); }
.pub-grid th, .pub-grid td { text-align: center; }
.pub-grid th:nth-child(2), .pub-grid td:nth-child(2) { text-align: left; }
.pub-cell { display: inline-grid; place-items: center; gap: 2px; }
.pub-cell.pending input { outline: 2px solid var(--warn); outline-offset: 2px; }
.pub-cell .caption { font-size: var(--fs-12); }
.legend-inline { display: flex; flex-wrap: wrap; gap: var(--sp-4); font-size: var(--fs-12); color: var(--ink-3); }
.legend-inline span { display: inline-flex; align-items: center; gap: var(--sp-1); }
.tag-pending { display: inline-block; width: 10px; height: 10px; border-radius: 2px; outline: 2px solid var(--warn); }

.stat-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); }
.list-actions { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.repeat-row { display: grid; gap: var(--sp-3); padding: var(--sp-3); border: var(--hairline) dashed var(--line-strong); border-radius: var(--r-md); }
.repeat-row-head { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-2); font-size: var(--fs-12); color: var(--ink-3); }
.auth { display: grid; place-items: center; padding: var(--sp-10) 0; }
.auth-card { width: min(100%, 420px); display: grid; gap: var(--sp-4); padding: var(--sp-8); }
.auth-card h1 { font-size: var(--fs-20); line-height: var(--lh-20); }
.text-row td { vertical-align: top; }
.text-cell { min-width: 200px; }
.text-cell.is-missing input, .text-cell.is-missing textarea { border-color: color-mix(in srgb, var(--warn) 55%, transparent); }
/* Поле поиска внутри «таблетки» .search — без собственной рамки (общий стиль полей выше его перекрывал) */
.search input[type="search"], .search input[type="search"]:focus { border: 0; background: transparent; box-shadow: none; padding: 0; min-height: 0; width: auto; }
.text-key { font-size: var(--fs-12); color: var(--ink-3); font-variant-numeric: tabular-nums; word-break: break-all; max-width: 180px; }

@media (max-width: 1100px) {
  /* minmax(0, 1fr): широкие таблицы прокручиваются внутри карточки, а не растягивают страницу */
  .admin { grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
  .admin-nav {
    position: static; display: flex; gap: var(--sp-1); overflow-x: auto; scrollbar-width: none;
    margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter) var(--sp-2); border-bottom: var(--hairline) solid var(--line);
  }
  .admin-nav::-webkit-scrollbar { display: none; }
  .admin-nav a { flex: none; white-space: nowrap; }
  .admin-nav .overline, .admin-user { display: none; }
}
@media (max-width: 760px) {
  .loc-grid, .form-grid, .form-grid-3, .stat-row { grid-template-columns: 1fr; }
}
