﻿:root {
  --bg: #eef2ef;
  --panel: #f7faf8;
  --ink: #14241c;
  --muted: #4f6358;
  --line: #c9d4cc;
  --chip: #dde6e0;
  --accent: #b8972f;
  --ok: #1f6b45;
  --ok-soft: #d9eee3;
  --bad: #9b2c2c;
  --bad-soft: #f5dede;
  --warn: #8a5a12;
  --warn-soft: #f3e6c8;
  --pending: #6a5a2e;
  --pending-soft: #f0eadc;
  --pad: max(1rem, env(safe-area-inset-left));
  --pad-r: max(1rem, env(safe-area-inset-right));
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  color: var(--ink);
  font-family: Manrope, system-ui, sans-serif;
  background:
    radial-gradient(ellipse 80% 50% at 10% -10%, #d5e4da 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 100% 0%, #d8e0d4 0%, transparent 50%),
    linear-gradient(180deg, #f4f7f5 0%, var(--bg) 40%, #e5ebe7 100%);
  padding-bottom: env(safe-area-inset-bottom);
}
a { color: inherit; }
.wrap {
  width: min(1120px, calc(100% - var(--pad) - var(--pad-r)));
  margin: 0 auto;
}
.main { flex: 1 0 auto; padding: 1.15rem 0 1.5rem; }
.display { font-family: Unbounded, Manrope, sans-serif; font-weight: 600; letter-spacing: -0.02em; margin: 0; }
.h2 { font-size: 1.25rem; margin-top: 1.5rem; }
.block-title { font-family: Unbounded, Manrope, sans-serif; font-size: 1.05rem; font-weight: 600; margin: 0 0 0.35rem; }
.muted { color: var(--muted); }
.small { font-size: 0.85rem; }
.crumb { margin: 0 0 0.85rem; }
.pre { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: 0.01em; overflow-wrap: anywhere; }
.legal-doc {
  max-width: 42rem;
  line-height: 1.55;
}
.legal-doc h1 { margin-bottom: 0.35rem; }
.legal-doc .block-title { margin-top: 1.35rem; }
.legal-doc p, .legal-doc li { margin: 0.45rem 0; }
.legal-doc ul { padding-left: 1.2rem; }
.legal-doc a { color: var(--ok); font-weight: 600; }

.top {
  position: sticky; top: 0; z-index: 10;
  border-bottom: 1px solid var(--line);
  background: color-mix(in oklab, var(--bg) 90%, transparent);
  backdrop-filter: blur(10px);
  padding-top: env(safe-area-inset-top);
}
.top-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.65rem; padding: 0.65rem 0; flex-wrap: wrap;
}
.top-left { display: flex; align-items: center; gap: 0.55rem; min-width: 0; flex: 1; }
.brand {
  display: inline-flex; align-items: center; justify-content: center;
  text-decoration: none; flex-shrink: 0;
  width: 2.35rem; height: 2.35rem; border-radius: 0.55rem;
}
.brand-logo {
  width: 2.1rem; height: 2.1rem; display: block; border-radius: 0.45rem;
}
.brand:hover { outline: 2px solid color-mix(in oklab, var(--accent) 50%, transparent); outline-offset: 2px; }
.nav-burger {
  display: none;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 0.55rem;
  background: color-mix(in oklab, var(--panel) 85%, #fff);
  color: var(--ink);
  cursor: pointer;
  flex-shrink: 0;
}
.nav-burger-lines,
.nav-burger-lines::before,
.nav-burger-lines::after {
  display: block;
  width: 1.15rem;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: transform 0.18s ease, opacity 0.18s ease;
}
.nav-burger-lines { position: relative; }
.nav-burger-lines::before,
.nav-burger-lines::after {
  content: '';
  position: absolute;
  left: 0;
}
.nav-burger-lines::before { top: -6px; }
.nav-burger-lines::after { top: 6px; }
.top.is-nav-open .nav-burger-lines { background: transparent; }
.top.is-nav-open .nav-burger-lines::before { top: 0; transform: rotate(45deg); }
.top.is-nav-open .nav-burger-lines::after { top: 0; transform: rotate(-45deg); }
.nav-burger-count {
  position: absolute;
  top: -0.25rem;
  right: -0.25rem;
  pointer-events: none;
}
.nav-logout { display: none; }
.nav a.nav-logout { display: none; }
.nav { display: flex; gap: 0.2rem; flex-wrap: wrap; }
.nav a {
  text-decoration: none; padding: 0.45rem 0.65rem; border-radius: 0.5rem;
  color: var(--muted); font-size: 0.9rem; min-height: 2.5rem;
  display: inline-flex; align-items: center; gap: 0.35rem;
}
.nav a:hover { background: var(--chip); color: var(--ink); }
.nav a.is-active { background: var(--chip); color: var(--ink); font-weight: 650; }
.nav a.nav-alert { color: var(--ink); font-weight: 650; }
.nav-count[hidden] { display: none !important; }
.nav-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--bad);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
}

/* Admin shell */
.admin-shell { margin-top: 0.15rem; }
.admin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 1.15rem;
  padding: 0.3rem;
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  background: color-mix(in oklab, var(--panel) 80%, #fff);
}
.admin-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.55rem 0.85rem;
  border-radius: 0.65rem;
  text-decoration: none;
  color: var(--muted);
  font-weight: 600;
  font-size: 0.92rem;
  min-height: 2.5rem;
}
.admin-tab:hover { background: var(--chip); color: var(--ink); }
.admin-tab.is-active {
  background: var(--ink);
  color: #f3f7f4;
}
.admin-tab.is-active .nav-count {
  background: #f3f7f4;
  color: var(--ink);
}
.admin-head { margin: 0 0 1.1rem; }
.admin-head .display { margin: 0 0 0.35rem; display: inline-flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
.admin-lead { margin: 0; max-width: 40rem; line-height: 1.45; }
.admin-kpi {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0 0 1.15rem;
}
.admin-kpi-item {
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  background: rgba(255,255,255,0.72);
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.admin-kpi-item strong {
  font-family: Unbounded, Manrope, sans-serif;
  font-size: 1.35rem;
  font-weight: 600;
}
.admin-kpi-link { text-decoration: none; color: inherit; }
.admin-kpi-link:hover { border-color: color-mix(in oklab, var(--ok) 45%, var(--line)); }
.admin-kpi-item.is-alert {
  border-color: color-mix(in oklab, var(--warn) 55%, var(--line));
  background: color-mix(in oklab, var(--warn-soft) 70%, #fff);
}
.admin-kpi-item.is-alert strong { color: var(--warn); }
.admin-grid {
  display: grid;
  gap: 0.85rem;
  margin-bottom: 1.35rem;
}
.admin-panel { margin: 0; }
.admin-panel .block-title { margin-top: 0; }
.price-cal {
  margin-top: 1.05rem;
  padding-top: 0.95rem;
  border-top: 1px solid var(--line);
}
.price-cal-title {
  margin: 0 0 0.2rem;
  font-size: 0.95rem;
  font-weight: 700;
}
.price-cal-list {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.price-cal-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 0.7rem;
  background: color-mix(in oklab, var(--panel) 92%, #fff);
}
.price-cal-row.is-on {
  border-color: color-mix(in oklab, var(--ok) 40%, var(--line));
  background: color-mix(in oklab, var(--ok-soft) 45%, #fff);
}
.price-cal-row.is-soon {
  border-color: color-mix(in oklab, var(--warn) 38%, var(--line));
  background: color-mix(in oklab, var(--warn-soft) 55%, #fff);
}
.price-cal-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  min-width: 0;
}
.price-cal-row form { margin: 0; }
.price-cal-add { margin-top: 0.7rem; }
.contacts-admin-grid {
  display: grid;
  gap: 0.7rem 1rem;
}
@media (min-width: 800px) {
  .contacts-admin-grid { grid-template-columns: 1fr 1fr; }
}
.contacts-admin-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.15rem;
}
.contacts-admin-icons .check-label { margin: 0; }
.admin-section-head { margin-bottom: 0.85rem; }
.admin-section-head .h2 { margin: 0 0 0.25rem; }
.ticket-thread { display: grid; gap: 0.85rem; }
.ticket-msg {
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  background: color-mix(in oklab, var(--panel) 88%, #fff);
}
.ticket-msg.is-admin {
  border-color: color-mix(in oklab, var(--ok) 35%, var(--line));
  background: color-mix(in oklab, var(--ok-soft) 55%, #fff);
}
.ticket-msg-head {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.45rem;
}
.ticket-support-avatar {
  background: var(--ok);
  color: #fff;
}
.ticket-msg-body { margin: 0; line-height: 1.45; }
.ticket-shot {
  display: block;
  max-width: min(100%, 28rem);
  height: auto;
  border-radius: 0.55rem;
  border: 1px solid var(--line);
}
.ticket-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.65rem; }
.ticket-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.ticket-head .display { margin: 0 0 0.35rem; }
.ticket-close-form { margin: 0; flex: 0 0 auto; }
.support-faq { display: grid; gap: 0.5rem; margin: 0.65rem 0 0; }
.support-faq-item {
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  background: color-mix(in oklab, var(--panel) 88%, #fff);
  padding: 0 0.9rem;
}
.support-faq-item summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.8rem 0;
  font-weight: 650;
  line-height: 1.35;
}
.support-faq-item summary::-webkit-details-marker { display: none; }
.support-faq-mark {
  flex: 0 0 auto;
  margin-top: 0.12rem;
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--bad, #9b2c2c);
  background: color-mix(in oklab, var(--bad, #9b2c2c) 12%, #fff);
  border-radius: 0.35rem;
  padding: 0.12rem 0.38rem;
}
.support-faq-item summary::after {
  content: "+";
  margin-left: auto;
  color: var(--muted);
  font-weight: 700;
  flex-shrink: 0;
}
.support-faq-item[open] summary::after { content: "–"; }
.support-faq-sol {
  margin: 0 0 0.9rem;
  padding: 0.7rem 0.8rem;
  border-radius: 0.65rem;
  background: color-mix(in oklab, var(--ok, #2f6b4f) 8%, #fff);
  border: 1px solid color-mix(in oklab, var(--ok, #2f6b4f) 22%, var(--line));
}
.support-faq-sol-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ok, #2f6b4f);
  margin-bottom: 0.28rem;
}
.support-faq-sol p { margin: 0; line-height: 1.5; }
.admin-empty { margin-top: 0.5rem; }
.admin-requests { margin-top: 0.25rem; }
.admin-subhead {
  margin: 1.35rem 0 0.45rem;
  font-size: 1.05rem;
  font-weight: 750;
}
.admin-subhead:first-of-type { margin-top: 0.35rem; }
.team-card.is-review-mod {
  align-items: stretch;
}
.team-card.is-review-mod .team-card-actions {
  width: 100%;
  max-width: none;
  flex-direction: column;
  align-items: stretch;
}
.review-mod-body {
  margin: 0.5rem 0 0;
  white-space: pre-wrap;
  font-size: 0.9rem;
  line-height: 1.45;
}
.review-reject-form {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  width: 100%;
  margin: 0;
}
.review-reject-form textarea.field {
  width: 100%;
  min-height: 4.2rem;
}
@media (min-width: 720px) {
  .admin-kpi { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-grid { grid-template-columns: 1.1fr 0.9fr; align-items: start; }
}
.userbox { display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0; }
.userbox-profile {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  text-decoration: none;
  color: inherit;
  border-radius: 0.55rem;
}
.userbox-profile:hover { color: inherit; }
.userbox-profile:hover .avatar {
  outline: 2px solid color-mix(in oklab, var(--accent) 55%, transparent);
  outline-offset: 2px;
}
.head-balance {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
  padding-left: 0.75rem;
  border-left: 1px solid var(--line);
}
.head-balance-plaque {
  display: inline-flex;
  align-items: center;
  min-height: 2.35rem;
  padding: 0 0.8rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--accent) 20%, #fff);
  border: 1px solid color-mix(in oklab, var(--accent) 48%, var(--line));
  color: var(--ink);
  font-weight: 750;
  font-size: 0.86rem;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.head-balance-btn {
  min-height: 2.35rem;
  padding-inline: 0.8rem;
  font-size: 0.82rem;
  white-space: nowrap;
  flex-shrink: 0;
}
.app-refresh {
  position: fixed;
  left: max(0.85rem, env(safe-area-inset-left));
  bottom: max(0.85rem, env(safe-area-inset-bottom));
  z-index: 70;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid color-mix(in oklab, var(--line) 75%, transparent);
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  color: var(--muted);
  box-shadow: 0 8px 22px rgba(20, 36, 28, 0.14);
  font-size: 1.2rem;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(8px);
}
.app-refresh:hover { color: var(--ink); background: #fff; }
body.chat-lock .app-refresh { opacity: 0; pointer-events: none; }
.user-meta { display: none; text-align: left; }
.user-meta span { display: block; font-size: 0.75rem; color: var(--muted); font-weight: 500; }
.logout-link { min-height: 2.5rem; padding-inline: 0.55rem; }
.avatar {
  width: 2.35rem; height: 2.35rem; border-radius: 999px;
  background: var(--accent); display: grid; place-items: center;
  font-family: Unbounded, sans-serif; font-size: 0.9rem; font-weight: 600; flex-shrink: 0;
  background-size: cover; background-position: center; color: var(--ink);
}
.avatar.avatar-img { color: transparent; border: 1px solid color-mix(in oklab, var(--line) 70%, transparent); }
.avatar-lg { width: 5.5rem; height: 5.5rem; font-size: 1.6rem; }
.avatar-sm { width: 2rem; height: 2rem; font-size: 0.75rem; }
.avatar-link { display: inline-flex; text-decoration: none; border-radius: 999px; }
.avatar-link:hover { outline: 2px solid color-mix(in oklab, var(--accent) 55%, transparent); outline-offset: 2px; }

.profile-panel { margin: 1rem 0; }
#wallet { scroll-margin-top: 5rem; }
.profile-avatar-row {
  display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-start; margin-top: 0.75rem;
}
.profile-avatar-forms { flex: 1; min-width: min(100%, 16rem); display: flex; flex-direction: column; gap: 0.5rem; }
.profile-avatar-forms .form { margin-top: 0; }

.field, textarea.field, select.field {
  width: 100%; border: 1px solid var(--line); border-radius: 0.55rem;
  background: #fcfefd; padding: 0.75rem 0.85rem; font: inherit; font-size: 16px; color: var(--ink);
}
.field:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 35%, transparent); }
.password-wrap {
  position: relative;
  display: block;
  width: 100%;
}
.password-wrap .field {
  padding-right: 2.75rem;
}
.password-toggle {
  position: absolute;
  right: 0.35rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  background: transparent;
  color: var(--muted);
  border-radius: 0.4rem;
  cursor: pointer;
  display: grid;
  place-items: center;
  padding: 0;
}
.password-toggle:hover,
.password-toggle:focus-visible {
  color: var(--ink);
  outline: none;
  background: color-mix(in oklab, var(--line) 55%, transparent);
}
.password-toggle svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.busy-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  background: color-mix(in oklab, #0b1611 55%, transparent);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.busy-overlay[hidden] { display: none !important; }
.zem-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  background: color-mix(in oklab, #0b1611 55%, transparent);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.zem-modal[hidden] { display: none !important; }
.zem-modal-card {
  width: min(26rem, 100%);
  background: #fcfefd;
  border: 1px solid var(--line);
  border-radius: 1rem;
  padding: 1.35rem 1.25rem 1.2rem;
  box-shadow: 0 18px 50px color-mix(in oklab, #0b1611 28%, transparent);
  text-align: left;
}
.zem-modal-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--warn);
  font-family: Unbounded, Manrope, sans-serif;
}
.zem-modal-title {
  margin: 0 0 0.55rem;
  font-size: 1.35rem;
}
.zem-modal-text {
  margin: 0 0 1.15rem;
  color: var(--muted);
  line-height: 1.45;
}
.zem-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.busy-card {
  width: min(22rem, 100%);
  background: #fcfefd;
  border: 1px solid var(--line);
  border-radius: 1rem;
  padding: 1.25rem 1.2rem 1.15rem;
  box-shadow: 0 18px 50px color-mix(in oklab, #0b1611 28%, transparent);
  text-align: center;
}
.busy-spinner {
  width: 2.4rem;
  height: 2.4rem;
  margin: 0 auto 0.85rem;
  border-radius: 50%;
  border: 3px solid color-mix(in oklab, var(--accent) 25%, #dfe8e2);
  border-top-color: var(--accent);
  animation: busy-spin 0.75s linear infinite;
}
@keyframes busy-spin {
  to { transform: rotate(360deg); }
}
.busy-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
}
.busy-text {
  margin: 0.4rem 0 0;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.35;
}
.busy-bar {
  margin-top: 0.95rem;
  height: 0.35rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--line) 80%, #fff);
  overflow: hidden;
}
.busy-bar > span {
  display: block;
  height: 100%;
  width: 40%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), color-mix(in oklab, var(--ok) 70%, var(--accent)));
  animation: busy-bar 1.2s ease-in-out infinite;
}
@keyframes busy-bar {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(280%); }
}
body.busy-lock {
  overflow: hidden;
  touch-action: none;
}

label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.8rem; color: var(--muted); }
.check-label {
  flex-direction: row;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.88rem;
  line-height: 1.4;
  color: var(--ink);
  cursor: pointer;
}
.check-label input[type="checkbox"] {
  margin-top: 0.2rem;
  width: 1.05rem;
  height: 1.05rem;
  flex-shrink: 0;
  accent-color: var(--ok);
}
.check-label a { color: var(--ok); font-weight: 600; }
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.form { display: flex; flex-direction: column; gap: 0.85rem; margin-top: 0.75rem; }
.form.narrow { max-width: 24rem; width: 100%; }
.btn, .btn.secondary, .btn-ghost {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 0.55rem; padding: 0.75rem 1rem; font: inherit; font-weight: 600;
  cursor: pointer; text-decoration: none; min-height: 2.75rem;
}
.btn { border: 0; background: var(--ink); color: var(--bg); width: auto; }
.btn.secondary { background: rgba(255,255,255,0.55); border: 1px solid color-mix(in oklab, var(--ink) 35%, transparent); color: var(--ink); }
.btn.mini, .btn-ghost.mini { padding: 0.5rem 0.75rem; font-size: 0.88rem; min-height: 2.4rem; }
.btn-ghost { border: 0; background: transparent; color: var(--muted); }
.btn-ghost:hover { color: var(--ink); background: var(--chip); }
.btn-ghost.bad { color: var(--bad); }

/* Цвета по смыслу действия — чтобы кнопки не сливались */
.btn.tone-parse {
  border: 0;
  background: var(--accent);
  color: #1a1508;
  box-shadow: 0 1px 0 color-mix(in oklab, #000 12%, transparent);
}
.btn.tone-parse:hover { filter: brightness(1.05); }
.btn.tone-nspd {
  border: 0;
  background: var(--ok);
  color: #f4fff8;
}
.btn.tone-nspd:hover { filter: brightness(1.06); }
.btn.tone-rgis {
  border: 0;
  background: var(--warn);
  color: #fff8ec;
}
.btn.tone-rgis:hover { filter: brightness(1.06); }
.btn.tone-save {
  border: 1px solid color-mix(in oklab, var(--ink) 40%, transparent);
  background: #fff;
  color: var(--ink);
}
.btn.tone-map {
  border: 1px dashed color-mix(in oklab, var(--ok) 45%, var(--line));
  background: var(--ok-soft);
  color: var(--ok);
}
.btn.tone-map:hover { background: color-mix(in oklab, var(--ok-soft) 70%, #fff); }

.cad-actions {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-top: 0.65rem;
}
.cad-actions .action-row {
  margin-top: 0;
}
.cad-actions .action-row .btn {
  flex: 1 1 100%;
  min-width: 0;
  justify-content: center;
  text-align: center;
  white-space: normal;
  line-height: 1.25;
}
@media (min-width: 720px) {
  .cad-actions .action-row .btn {
    flex: 1 1 calc(33.333% - 0.45rem);
  }
}
.inline-form { display: inline; margin: 0; }

.flash { border-radius: 0.65rem; padding: 0.75rem 0.9rem; margin: 0.75rem 0; overflow-wrap: anywhere; }
.flash.ok { background: var(--ok-soft); color: var(--ok); }
.flash.bad { background: var(--bad-soft); color: var(--bad); }
.flash.warn { background: var(--warn-soft); color: var(--warn); }

.login { max-width: 28rem; padding: 2.5rem 0 3rem; width: 100%; }
.row { display: flex; align-items: center; }
.row.between { justify-content: space-between; gap: 0.85rem; flex-wrap: wrap; }
.row.gap { gap: 0.75rem; }
.page-head { align-items: flex-start; }
.page-head .btn { width: 100%; }
.right { text-align: right; }
.filters {
  display: grid; gap: 0.55rem; margin: 1rem 0 1.15rem;
  grid-template-columns: 1fr;
}
.filters .field { max-width: none; width: 100%; }
.filters .btn { width: 100%; }

.list {
  list-style: none; margin: 1rem 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 0.5rem; border: 0;
}
.list > li {
  border: 1px solid color-mix(in oklab, var(--line) 80%, transparent);
  border-radius: 0.75rem; overflow: hidden;
}
.list-item {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  text-decoration: none;
}
.list-thumb {
  width: 4.25rem; height: 4.25rem; border-radius: 0.55rem;
  background: #d7e0da center/cover no-repeat;
  border: 1px solid color-mix(in oklab, var(--line) 60%, transparent);
}
.list-thumb-empty {
  background: linear-gradient(135deg, #dce6e0 0%, #c9d5cd 100%);
}
.list-body { min-width: 0; display: flex; flex-direction: column; gap: 0.18rem; }
.list-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  min-width: 0;
}
.list-title {
  font-weight: 650; display: flex; gap: 0.4rem; align-items: center;
  line-height: 1.25; min-width: 0; width: 100%;
}
.list-title-text {
  min-width: 0; width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 0.95rem;
}
.list-badges {
  display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center;
}
.list-badges .badge { flex-shrink: 0; padding: 0.18rem 0.5rem; font-size: 0.7rem; }
.list-price {
  font-weight: 750;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
  color: var(--ink);
  line-height: 1.2;
}
.listing-price {
  margin: 0.2rem 0 0.35rem;
  font-weight: 750;
  font-size: clamp(1.05rem, 3.5vw, 1.35rem);
  letter-spacing: 0.01em;
  color: var(--ink);
}
.list-sub, .list-meta-line {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 0.78rem; line-height: 1.3;
}
.list-meta-line { opacity: 0.9; }
.list-rgis {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
  margin-top: 0.12rem;
}
.list-rgis-chip {
  display: inline-block;
  max-width: 100%;
  padding: 0.18rem 0.45rem;
  border-radius: 0.4rem;
  font-size: 0.72rem;
  font-weight: 650;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  background: var(--chip);
  color: var(--ink);
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
}
.list-rgis-chip.list-rgis-warn {
  background: var(--warn-soft);
  color: var(--warn);
  border-color: color-mix(in oklab, var(--warn) 28%, var(--line));
}
.list-rgis-chip.list-rgis-zone {
  background: color-mix(in oklab, var(--ok-soft) 70%, white);
  color: var(--ok);
  border-color: color-mix(in oklab, var(--ok) 22%, var(--line));
}
.list-rgis-chip.list-rgis-ok {
  background: var(--ok-soft);
  color: var(--ok);
  border-color: color-mix(in oklab, var(--ok) 22%, var(--line));
}
.badge-rgis { letter-spacing: 0.02em; }
.list-item .right { display: none; }
.list-row { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.85rem; flex-wrap: wrap; }
.empty { padding: 2rem 1rem; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 0.85rem; }

.team-section { min-width: 0; }
.team-list {
  list-style: none; margin: 1rem 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 0.55rem;
}
.team-card {
  display: flex; flex-direction: column; gap: 0.55rem;
  padding: 0.85rem;
  border: 1px solid color-mix(in oklab, var(--line) 80%, transparent);
  border-radius: 0.85rem;
  background: rgba(255,255,255,0.72);
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}
.team-card-main {
  display: flex; align-items: flex-start; gap: 0.7rem;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}
.team-card-info {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: normal;
}
.team-card-info strong { display: block; margin-bottom: 0.15rem; }
.team-card-info .small { overflow-wrap: anywhere; }
.team-card-actions {
  display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center;
  width: 100%;
}
.team-topup { display: inline-flex; gap: 0.35rem; align-items: center; margin: 0; }
.mini-field { width: 5.5rem; min-height: 2.2rem; padding: 0.35rem 0.5rem; font-size: 0.85rem; }
.team-card-actions .btn-ghost {
  min-height: 2.2rem; padding: 0.35rem 0.55rem; font-size: 0.85rem;
}
.team-you {
  display: inline-flex; align-items: center;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: var(--chip);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.teams-admin { margin-top: 0.5rem; }
.team-block {
  margin: 1rem 0 1.35rem;
  padding: 0.85rem 0.95rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 0.95rem;
  background: color-mix(in oklab, var(--panel) 88%, #fff);
}
.team-block-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 0.65rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid color-mix(in oklab, var(--line) 80%, transparent);
}
.team-block-title .display {
  font-size: 1.05rem;
  display: block;
  margin-bottom: 0.2rem;
}
.team-block-topup { margin: 0; }
.team-block-members { margin-top: 0; }
.team-block-members .team-card {
  background: rgba(255,255,255,0.85);
}

.badge {
  display: inline-flex; align-items: center; border-radius: 999px;
  padding: 0.28rem 0.7rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.01em;
}
.badge-cn { letter-spacing: 0.02em; }
.badge-mismatch { letter-spacing: 0.02em; }
.cn-missing {
  padding: 0 0.95rem 0.85rem;
}
.cn-form { margin: 0; }
.cn-form .inline { margin: 0; }
.badge.muted { background: #e7e2d4; color: var(--pending); }
.badge.ok { background: var(--ok-soft); color: var(--ok); }
.badge.bad { background: var(--bad-soft); color: var(--bad); }
.badge.warn { background: var(--warn-soft); color: var(--warn); }

.listing-card {
  border: 1px solid var(--line); border-radius: 1rem; padding: 0;
  margin-top: 0.35rem; overflow: hidden; border-left-width: 5px;
}
.listing-card.status-pending { background: #f7f2e8; border-left-color: #b8972f; }
.listing-card.status-safe { background: #eaf6ef; border-left-color: #1f6b45; }
.listing-card.status-unsafe { background: #f8eaea; border-left-color: #9b2c2c; }
.listing-card.status-needs_info { background: #f7edd9; border-left-color: #8a5a12; }

.list > li.status-pending { background: #f7f2e8; border-left: 5px solid #b8972f; }
.list > li.status-safe { background: #eaf6ef; border-left: 5px solid #1f6b45; }
.list > li.status-unsafe { background: #f8eaea; border-left: 5px solid #9b2c2c; }
.list > li.status-needs_info { background: #f7edd9; border-left: 5px solid #8a5a12; }

.listing-head { padding: 1rem 0.95rem 0.75rem; }
.listing-top {
  display: grid;
  gap: 0.85rem;
  padding: 1rem 0.95rem 0.75rem;
  grid-template-columns: 1fr;
}
.listing-title { font-size: clamp(1.05rem, 4.5vw, 1.55rem); line-height: 1.28; max-width: 52rem; }
.listing-meta { margin: 0.45rem 0 0; }
.listing-rename-form {
  display: grid;
  gap: 0.45rem;
  margin: 0.65rem 0 0.15rem;
  max-width: 40rem;
}
.listing-rename-label {
  display: grid;
  gap: 0.3rem;
  font-size: 0.82rem;
  color: var(--muted, #6b7280);
}
.listing-rename-row {
  display: flex;
  gap: 0.4rem;
  align-items: center;
}
.listing-rename-row .field {
  flex: 1;
  min-width: 0;
  width: auto;
  font-size: 1rem;
}
.listing-rename-row [data-title-clear] {
  flex-shrink: 0;
  white-space: nowrap;
}
.listing-rename-form > .btn { justify-self: start; }
.listing-stack {
  display: flex; flex-direction: column; gap: 0.9rem;
  padding: 0 0.95rem 1.1rem;
}
.history-top { margin: 0; }
.history-scroll { max-height: none; overflow: visible; }
.comments-panel { margin-top: 1rem; }
.comments-thread { display: grid; gap: 0; margin: 0.35rem 0 0.85rem; }
.comments-form {
  display: grid;
  gap: 0.55rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line, #c9d4cc);
}
.comments-form .btn { justify-self: start; }
.status-banner {
  display: inline-flex; align-items: center; gap: 0.45rem;
  margin-bottom: 0.65rem; max-width: 100%;
}
.status-hint { font-size: 0.85rem; font-weight: 650; color: var(--ink); }
.action-row { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.85rem; align-items: center; }
.action-row .btn,
.action-row .btn-ghost { flex: 1 1 auto; min-width: calc(50% - 0.45rem); }
.source-btn {
  display: inline-flex; align-items: center; gap: 0.4rem;
  text-decoration: none;
}
.source-btn .source-logo {
  width: 1.1rem; height: 1.1rem; border-radius: 0.28rem; flex-shrink: 0;
}
.source-btn.source-cian { border-color: color-mix(in oklab, #0468FF 35%, var(--line)); }
.source-btn.source-avito { border-color: color-mix(in oklab, #00AAFF 35%, var(--line)); }
.navi-btn {
  display: inline-flex; align-items: center; gap: 0.35rem;
  text-decoration: none;
}
.navi-btn .navi-pin {
  width: 1rem; height: 1rem; flex-shrink: 0;
}

.kpi-row {
  display: grid; gap: 0.55rem; padding: 0 0.95rem 0.9rem;
  grid-template-columns: 1fr 1fr;
}
.kpi {
  background: rgba(255,255,255,0.72);
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
  border-radius: 0.85rem; padding: 0.8rem 0.9rem;
}
.kpi-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); }
.kpi-value { margin-top: 0.3rem; font-family: Unbounded, Manrope, sans-serif; font-size: 1.05rem; font-weight: 600; }

.grid-2 { display: grid; gap: 0.85rem; grid-template-columns: 1fr; min-width: 0; }
.grid-2 > * { min-width: 0; }
.grid-listing { display: grid; gap: 0.9rem; padding: 0 0.95rem 1.1rem; grid-template-columns: 1fr; }

.panel {
  border: 1px solid color-mix(in oklab, var(--line) 75%, transparent);
  background: rgba(255,255,255,0.78);
  border-radius: 0.95rem; padding: 0.95rem;
}
.inline { display: flex; flex-direction: column; gap: 0.5rem; }
.inline .field { flex: 1; width: 100%; }
.inline .btn { width: 100%; }
.photos {
  display: flex; gap: 0.55rem; overflow-x: auto; margin: 0 0 0.75rem;
  padding-bottom: 0.35rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.photos img,
.photo-item img {
  height: 9.5rem; width: min(78vw, 14rem); object-fit: cover; border-radius: 0.8rem;
  flex: 0 0 auto; scroll-snap-align: start;
  border: 1px solid color-mix(in oklab, var(--line) 60%, transparent);
  display: block;
}
.photo-item {
  position: relative;
  margin: 0;
  flex: 0 0 auto;
}
.photo-del { position: absolute; top: 0.35rem; right: 0.35rem; margin: 0; }
.photo-del-btn {
  width: 1.7rem; height: 1.7rem; border: 0; border-radius: 999px;
  background: rgba(20, 36, 28, 0.72); color: #fff; font-size: 1.1rem; line-height: 1;
  cursor: pointer;
}
.photo-upload-form {
  display: grid;
  gap: 0.45rem;
  margin: 0 0 1rem;
  max-width: 28rem;
}
.photo-upload-form .btn { justify-self: start; }
.photos-section { margin: 0 0 0.5rem; }

.fact-grid { display: grid; gap: 0.55rem; grid-template-columns: 1fr; }
.fact {
  background: rgba(255,255,255,0.7);
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
  border-radius: 0.8rem; padding: 0.8rem 0.85rem;
}
.fact.wide { grid-column: 1 / -1; }
.fact-label { font-size: 0.72rem; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }
.fact-value { margin-top: 0.35rem; font-size: 0.98rem; line-height: 1.4; font-weight: 550; overflow-wrap: anywhere; }
.fact-link { display: inline-block; margin-top: 0.45rem; font-size: 0.88rem; color: var(--ok); text-decoration: none; font-weight: 600; min-height: 2.2rem; }

.desc-block {
  margin-top: 0.9rem;
  background: rgba(255,255,255,0.7);
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
  border-radius: 0.85rem; padding: 0.9rem;
}
.desc-text { margin: 0.45rem 0 0; color: var(--ink); line-height: 1.5; }

.rgis-block {
  margin-top: 0.9rem;
  background: rgba(255,255,255,0.72);
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
  border-radius: 0.85rem;
  padding: 0.95rem 1rem 1rem;
  display: grid;
  gap: 0.95rem;
}
.rgis-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  align-items: flex-start;
  justify-content: space-between;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid color-mix(in oklab, var(--line) 75%, transparent);
}
.rgis-head-text { min-width: 0; }
.rgis-head .block-title { margin: 0; }
.rgis-checked { margin: 0.3rem 0 0; }
.rgis-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
  align-items: center;
}
.rgis-actions .fact-link { margin-top: 0; min-height: 0; }

.rgis-section {
  display: grid;
  gap: 0.45rem;
}
.rgis-section-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink);
}
.rgis-section-hint { margin: 0; }
.rgis-empty { margin: 0.15rem 0 0; }

.rgis-facts {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: 1fr;
}
.rgis-fact {
  background: color-mix(in oklab, var(--panel) 70%, white);
  border: 1px solid color-mix(in oklab, var(--line) 65%, transparent);
  border-radius: 0.7rem;
  padding: 0.65rem 0.75rem;
}
.rgis-fact-wide { grid-column: 1 / -1; }
.rgis-fact-label {
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.rgis-fact-value {
  margin-top: 0.25rem;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.rgis-cols {
  display: grid;
  gap: 0.85rem;
}
.rgis-col {
  background: color-mix(in oklab, var(--panel) 55%, white);
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
  border-radius: 0.8rem;
  padding: 0.8rem 0.85rem;
}

.rgis-cards { display: grid; gap: 0.65rem; }
.rgis-card {
  background: rgba(255,255,255,0.85);
  border: 1px solid color-mix(in oklab, var(--line) 60%, transparent);
  border-radius: 0.7rem;
  padding: 0.75rem 0.8rem;
  display: grid;
  gap: 0.4rem;
}
.rgis-card-name {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.rgis-zone-code {
  display: inline-block;
  margin-right: 0.35rem;
  padding: 0.1rem 0.4rem;
  border-radius: 0.35rem;
  background: var(--chip);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.88rem;
  font-weight: 700;
}
.rgis-card-sub {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.35;
}
.rgis-dl {
  margin: 0.15rem 0 0;
  display: grid;
  gap: 0.35rem;
}
.rgis-dl > div {
  display: grid;
  grid-template-columns: minmax(7.5rem, 42%) 1fr;
  gap: 0.35rem 0.65rem;
  align-items: baseline;
}
.rgis-dl dt {
  margin: 0;
  font-size: 0.78rem;
  color: var(--muted);
}
.rgis-dl dd {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 650;
}
.rgis-note { margin: 0.15rem 0 0; }
.rgis-meaning { margin-top: 0.2rem; }
.rgis-meaning summary {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--ok);
  list-style: none;
}
.rgis-meaning summary::-webkit-details-marker { display: none; }
.rgis-meaning-body {
  margin-top: 0.5rem;
  padding: 0.7rem 0.75rem;
  border-radius: 0.6rem;
  background: color-mix(in oklab, var(--ok-soft) 55%, white);
  border: 1px solid color-mix(in oklab, var(--ok) 18%, var(--line));
  display: grid;
  gap: 0.45rem;
}
.rgis-meaning-title {
  font-weight: 700;
  font-size: 0.92rem;
  line-height: 1.35;
}
.rgis-meaning-body p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--ink);
}
.rgis-meaning-links {
  margin: 0.15rem 0 0;
  padding-left: 1.05rem;
  display: grid;
  gap: 0.25rem;
  font-size: 0.88rem;
}
.rgis-meaning-links a {
  color: var(--ok);
  font-weight: 650;
  text-decoration: none;
}
.rgis-vri { margin-top: 0.15rem; }
.rgis-vri summary {
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--ok);
  list-style: none;
}
.rgis-vri summary::-webkit-details-marker { display: none; }
.rgis-vri-list {
  margin: 0.45rem 0 0;
  padding: 0.55rem 0.65rem 0.55rem 1.15rem;
  display: grid;
  gap: 0.3rem;
  font-size: 0.88rem;
  line-height: 1.35;
  background: color-mix(in oklab, var(--panel) 80%, white);
  border-radius: 0.55rem;
}
.rgis-disclaimer {
  margin: 0;
  padding-top: 0.15rem;
  border-top: 1px dashed color-mix(in oklab, var(--line) 70%, transparent);
}
.inline-form { display: inline; margin: 0; }

.listing-aside { display: flex; flex-direction: column; gap: 0.85rem; }
.verdict-status { display: flex; flex-direction: column; gap: 0.35rem; margin: 0.55rem 0 0.75rem; }
.status-select {
  font-weight: 650;
  border-width: 1.5px;
  cursor: pointer;
}
.status-select.status-pending {
  color: var(--pending);
  background: var(--pending-soft);
  border-color: color-mix(in oklab, var(--pending) 35%, var(--line));
}
.status-select.status-safe {
  color: var(--ok);
  background: var(--ok-soft);
  border-color: color-mix(in oklab, var(--ok) 35%, var(--line));
}
.status-select.status-unsafe {
  color: var(--bad);
  background: var(--bad-soft);
  border-color: color-mix(in oklab, var(--bad) 35%, var(--line));
}
.status-select.status-needs_info {
  color: var(--warn);
  background: var(--warn-soft);
  border-color: color-mix(in oklab, var(--warn) 35%, var(--line));
}

.verdict-panel .status-picks { margin: 0.55rem 0 0.75rem; }
.status-picks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}
.status-option {
  display: flex; align-items: center; justify-content: center; gap: 0.45rem;
  margin: 0; padding: 0.75rem 0.55rem;
  border-radius: 0.8rem;
  border: 1px solid transparent;
  cursor: pointer; user-select: none; text-align: center;
  transition: border-color .15s ease, box-shadow .15s ease, filter .15s ease;
}
.status-option input {
  position: absolute; opacity: 0; pointer-events: none;
}
.status-option-dot { display: none; }
.status-option-label {
  font-size: 0.9rem; font-weight: 650; letter-spacing: -0.01em; line-height: 1.2;
}
.status-option.pick-pending {
  color: var(--pending);
  background: var(--pending-soft);
  border-color: color-mix(in oklab, var(--pending) 18%, transparent);
}
.status-option.pick-safe {
  color: var(--ok);
  background: var(--ok-soft);
  border-color: color-mix(in oklab, var(--ok) 18%, transparent);
}
.status-option.pick-unsafe {
  color: var(--bad);
  background: var(--bad-soft);
  border-color: color-mix(in oklab, var(--bad) 18%, transparent);
}
.status-option.pick-warn {
  color: var(--warn);
  background: var(--warn-soft);
  border-color: color-mix(in oklab, var(--warn) 18%, transparent);
}
.status-option:hover { filter: brightness(0.98); }
.status-option:has(input:checked) {
  border-color: currentColor;
  box-shadow: 0 0 0 2px color-mix(in oklab, currentColor 22%, transparent);
  font-weight: 700;
}

.chip {
  display: inline-flex; align-items: center; gap: 0.4rem; justify-content: flex-start;
  background: #eef2ef; border-radius: 0.75rem; padding: 0.65rem 0.7rem;
  color: var(--ink); border: 1px solid transparent; cursor: pointer; font-size: 0.88rem;
  min-height: 2.75rem;
}
.chip input { accent-color: var(--ink); width: 1.05rem; height: 1.05rem; }
.chip.pick-pending { background: var(--pending-soft); }
.chip.pick-safe { background: var(--ok-soft); }
.chip.pick-unsafe { background: var(--bad-soft); }
.chip.pick-warn { background: var(--warn-soft); }
.chip:has(input:checked) { border-color: color-mix(in oklab, var(--ink) 45%, transparent); box-shadow: 0 0 0 2px rgba(20,36,28,0.08); }

.history-panel .review { border-bottom: 1px solid var(--line); padding: 0.8rem 0; }
.history-panel .review:last-child { border-bottom: 0; }
.review-status { margin: 0.35rem 0; }
.review p { margin: 0.35rem 0 0; line-height: 1.45; }

.verdict-panel .btn { width: 100%; }

.page-head-actions {
  display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center;
}

/* плавающий чат-виджет */
html.chat-lock,
body.chat-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
}
body.chat-lock {
  /* без position:fixed — на iPhone иначе шапка уезжает под Dynamic Island */
  touch-action: none;
  width: 100%;
}
body.chat-lock .top {
  visibility: hidden;
  pointer-events: none;
}
body.chat-lock .chat-widget {
  z-index: 300;
}
.chat-widget {
  --chat-kb: 0px;
  --chat-vv-h: 100dvh;
  --chat-vv-top: 0px;
  --chat-top: 0.5rem;
  position: fixed;
  right: max(0.85rem, env(safe-area-inset-right));
  bottom: calc(max(0.85rem, env(safe-area-inset-bottom)) + var(--chat-kb));
  z-index: 200;
  font-size: 0.92rem;
}
.chat-fab {
  width: 3.35rem; height: 3.35rem; border-radius: 999px;
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
  background: var(--ink); color: #f4f7f5;
  box-shadow: 0 10px 28px rgba(20, 36, 28, 0.28);
  display: grid; place-items: center;
  cursor: pointer; position: relative;
}
.chat-widget.is-open .chat-fab {
  display: none;
}
.chat-fab:hover { filter: brightness(1.08); }
.chat-fab-badge {
  position: absolute; top: -0.2rem; right: -0.15rem;
  min-width: 1.25rem; height: 1.25rem; padding: 0 0.3rem;
  border-radius: 999px; background: #c0392b; color: #fff;
  font-size: 0.7rem; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  border: 2px solid #fff;
}
.chat-dock {
  position: absolute;
  right: 0; bottom: 0;
  width: min(24rem, calc(100vw - 1.5rem));
  height: min(32rem, calc(100dvh - 5rem));
  max-height: calc(100dvh - 5rem);
  display: none;
  flex-direction: column;
  background: rgba(255,255,255,0.96);
  border: 1px solid color-mix(in oklab, var(--line) 75%, transparent);
  border-radius: 1rem;
  box-shadow: 0 18px 48px rgba(20, 36, 28, 0.22);
  overflow: hidden;
  backdrop-filter: blur(10px);
}
/* ПК / планшет: чат — компактная панель справа снизу */
.chat-widget.is-open .chat-dock {
  display: flex;
}
.chat-dock[hidden] {
  display: none !important;
}
.chat-dock-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.4rem; padding: 0.45rem 0.55rem;
  border-bottom: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
  background: color-mix(in oklab, var(--panel) 88%, white);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.chat-dock-title {
  font-size: 0.95rem;
  font-weight: 700;
  padding-left: 0.25rem;
}
.chat-dock-close {
  min-width: 2.5rem; min-height: 2.5rem; padding: 0;
  font-size: 1.15rem; line-height: 1;
  border-radius: 0.65rem;
  flex-shrink: 0;
}
.chat-msg-actions {
  margin-left: auto;
  display: inline-flex; gap: 0.25rem; align-items: center;
}
.chat-msg-act {
  border: 0; background: transparent; color: var(--muted);
  font: inherit; font-size: 0.72rem; cursor: pointer;
  padding: 0.15rem 0.3rem; border-radius: 0.35rem;
}
.chat-msg-act:hover { color: var(--ink); background: var(--chip); }
.chat-msg-act.bad:hover { color: var(--bad); background: var(--bad-soft); }
.chat-edited { font-size: 0.7rem; font-style: italic; }
.chat-scroll {
  flex: 1; min-height: 0; overflow: auto;
  display: flex; flex-direction: column; gap: 0.55rem;
  padding: 0.65rem 0.7rem;
}
.chat-empty { padding: 0.85rem 0.2rem; }
.chat-msg {
  max-width: 92%;
  padding: 0.5rem 0.65rem;
  border-radius: 0.75rem;
  background: rgba(255,255,255,0.86);
  border: 1px solid color-mix(in oklab, var(--line) 65%, transparent);
}
.chat-msg.mine {
  align-self: flex-end;
  background: color-mix(in oklab, var(--ok-soft) 70%, white);
}
.chat-msg-meta {
  display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap;
  margin-bottom: 0.2rem; font-size: 0.75rem;
}
.chat-msg-meta .avatar,
.chat-avatar { width: 1.25rem; height: 1.25rem; font-size: 0.62rem; }
.chat-msg-body { margin: 0; white-space: pre-wrap; line-height: 1.4; font-size: 0.9rem; }
.chat-compose-wrap { position: relative; }
.chat-compose {
  display: flex; flex-direction: column; gap: 0.4rem; margin: 0;
  padding: 0.55rem 0.65rem 0.7rem;
  border-top: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
}
.chat-compose-actions {
  display: flex; align-items: center; justify-content: space-between; gap: 0.4rem;
}
.chat-compose .btn { align-self: auto; }
.chat-err { margin: 0; }
.chat-attach-preview { padding: 0.35rem 0.65rem 0; }
.chat-attach-chip {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 0.5rem;
  padding: 0.45rem 0.55rem; border-radius: 0.7rem;
  background: color-mix(in oklab, var(--chip) 80%, white);
  border: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
}
.chat-attach-chip span { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.chat-listing-chip {
  display: flex; flex-direction: column; gap: 0.1rem;
  margin-top: 0.4rem; padding: 0.5rem 0.6rem;
  border-radius: 0.65rem; text-decoration: none; color: inherit;
  background: color-mix(in oklab, #0b6bcb 8%, white);
  border: 1px solid color-mix(in oklab, #0b6bcb 28%, transparent);
}
.chat-listing-chip:hover { background: color-mix(in oklab, #0b6bcb 14%, white); }
.chat-listing-chip-label {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.02em;
  text-transform: uppercase; color: #0b6bcb;
}
.chat-listing-menu {
  position: absolute;
  left: 0.55rem; right: 0.55rem; bottom: calc(100% - 0.15rem);
  max-height: 14rem; overflow: auto;
  background: #fff;
  border: 1px solid color-mix(in oklab, var(--line) 75%, transparent);
  border-radius: 0.75rem;
  box-shadow: 0 10px 28px rgba(20,36,28,0.16);
  z-index: 3;
  padding: 0.25rem;
}
.chat-listing-search-wrap { padding: 0.25rem; }
.chat-listing-search-wrap .field { margin: 0; font-size: 0.9rem; padding: 0.5rem 0.65rem; }
.chat-fab-badge.is-mention {
  background: #0b6bcb;
  animation: chat-pulse 1.4s ease-in-out infinite;
}
@keyframes chat-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}
.chat-mention-menu {
  position: absolute;
  left: 0.55rem; right: 0.55rem; bottom: calc(100% - 0.15rem);
  max-height: 11rem; overflow: auto;
  background: #fff;
  border: 1px solid color-mix(in oklab, var(--line) 75%, transparent);
  border-radius: 0.75rem;
  box-shadow: 0 10px 28px rgba(20,36,28,0.16);
  z-index: 2;
  padding: 0.25rem;
}
.chat-mention-item {
  width: 100%;
  display: flex; justify-content: space-between; align-items: center; gap: 0.5rem;
  border: 0; background: transparent; text-align: left;
  padding: 0.45rem 0.55rem; border-radius: 0.55rem;
  font: inherit; cursor: pointer;
}
.chat-mention-item:hover,
.chat-mention-item.is-active { background: var(--chip); }
.chat-mention {
  display: inline; font-weight: 700; color: #0b6bcb;
  background: color-mix(in oklab, #0b6bcb 12%, white);
  border-radius: 0.3rem; padding: 0 0.2rem;
}
.chat-mention.me {
  color: #8a5a12;
  background: var(--warn-soft);
}

.nav a { white-space: nowrap; }
@media (max-width: 639px) {
  .top { z-index: 40; }
  .top-inner {
    align-items: center;
    flex-wrap: nowrap;
    position: relative;
  }
  .top-left { flex: 1; min-width: 0; gap: 0.4rem; }
  .nav-burger { display: inline-flex; }
  .nav {
    display: none;
    position: absolute;
    top: calc(100% + 0.35rem);
    left: 0;
    right: 0;
    z-index: 45;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0.15rem;
    padding: 0.45rem;
    border: 1px solid var(--line);
    border-radius: 0.85rem;
    background: color-mix(in oklab, var(--panel) 96%, #fff);
    box-shadow: 0 12px 28px color-mix(in oklab, #1a2e22 16%, transparent);
  }
  .top.is-nav-open .nav { display: flex; }
  .nav a {
    width: 100%;
    padding: 0.7rem 0.85rem;
    font-size: 0.95rem;
    min-height: 2.7rem;
    border-radius: 0.65rem;
  }
  .nav a.nav-logout { display: inline-flex; color: var(--bad); }
  .user-meta { display: none; }
  .logout-link { display: none; }
  .userbox { gap: 0.45rem; }
  .head-balance {
    gap: 0.3rem;
    padding-left: 0.5rem;
  }
  .head-balance-plaque {
    min-height: 2.15rem;
    padding: 0 0.55rem;
    font-size: 0.78rem;
  }
  .head-balance-btn {
    min-height: 2.15rem;
    padding-inline: 0.55rem;
    font-size: 0.75rem;
  }
  .page-head-actions { width: 100%; }
  .page-head-actions .btn { flex: 1 1 auto; }
  /* телефон: чат на почти весь экран (клавиатура / viewport) */
  .chat-widget.is-open {
    top: var(--chat-vv-top);
    bottom: auto;
    left: max(0.35rem, env(safe-area-inset-left));
    right: max(0.35rem, env(safe-area-inset-right));
    height: var(--chat-vv-h);
    width: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    transform: translateZ(0);
  }
  .chat-widget.is-open .chat-dock {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    height: calc(var(--chat-vv-h) - var(--chat-top));
    max-height: calc(var(--chat-vv-h) - var(--chat-top));
    margin-top: var(--chat-top);
    border-radius: 1rem;
  }
}

code { font-family: ui-monospace, monospace; }

@media (min-width: 640px) {
  .brand { width: 2.5rem; height: 2.5rem; }
  .brand-logo { width: 2.25rem; height: 2.25rem; }
  .page-head .btn { width: auto; }
  .filters { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
  .filters .field { max-width: 22rem; width: auto; flex: 1; }
  .filters .btn { width: auto; }
  .inline { flex-direction: row; align-items: stretch; }
  .inline .btn { width: auto; white-space: nowrap; }
  .list-item {
    grid-template-columns: 5rem minmax(0, 1fr);
    gap: 0.85rem;
    padding: 0.7rem 0.85rem;
  }
  .list-thumb { width: 5rem; height: 5rem; }
  .list-head {
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
  }
  .list-title { flex: 1; min-width: 0; width: auto; }
  .list-title-text {
    font-size: 1rem;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .list-badges { flex-shrink: 0; }
  .kpi-row { grid-template-columns: repeat(2, 1fr); padding-inline: 1.15rem; }
  .listing-head, .listing-top, .listing-stack, .grid-listing { padding-inline: 1.15rem; }
  .action-row .btn,
  .action-row .btn-ghost { flex: 0 1 auto; min-width: 0; }
}

@media (min-width: 700px) {
  .user-meta { display: block; }
  .fact-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 800px) {
  .grid-2 { grid-template-columns: 1fr 1fr; }
  .team-list > .team-card {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .team-card-main {
    flex: 1 1 auto;
    min-width: 12rem;
    width: auto;
  }
  .team-card-actions {
    flex: 0 1 auto;
    flex-shrink: 0;
    width: auto;
    max-width: 55%;
    justify-content: flex-end;
  }
  .team-card.is-review-mod {
    flex-direction: column;
    align-items: stretch;
  }
  .team-card.is-review-mod .team-card-actions {
    width: 100%;
    max-width: none;
    justify-content: flex-start;
  }
  /* колонка «Команда» в grid-2 узкая — кнопки под текстом */
  .grid-2 .team-list > .team-card {
    flex-direction: column;
    align-items: stretch;
  }
  .grid-2 .team-card-main {
    min-width: 0;
    width: 100%;
  }
  .grid-2 .team-card-actions {
    width: 100%;
    max-width: none;
    justify-content: flex-start;
  }
}

@media (min-width: 960px) {
  .listing-top {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .history-scroll { max-height: none; }
  .fact-grid { grid-template-columns: 1fr 1fr; }
  .rgis-facts { grid-template-columns: repeat(3, 1fr); }
  .rgis-cols { grid-template-columns: 1fr 1fr; align-items: start; }
  .verdict-panel { max-width: 32rem; }
  .grid-listing { grid-template-columns: 1fr; }
  .kpi-row { grid-template-columns: repeat(4, 1fr); }
  .main { padding-top: 1.5rem; }
}

/* Статистика / журнал */
.stats-kpi {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.65rem;
  margin-top: 0.85rem;
}
.stats-kpi-item {
  background: var(--panel, #f7faf8);
  border: 1px solid var(--line, #c9d4cc);
  border-radius: 12px;
  padding: 0.85rem 0.9rem;
  display: grid;
  gap: 0.15rem;
}
.stats-kpi-item strong { font-size: 1.35rem; }
.stats-table-wrap { overflow-x: auto; margin-top: 0.55rem; }
.stats-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}
.stats-table th,
.stats-table td {
  text-align: left;
  padding: 0.55rem 0.4rem;
  border-bottom: 1px solid var(--line, #c9d4cc);
  vertical-align: middle;
}
.stats-table th { color: var(--muted, #4f6358); font-weight: 600; font-size: 0.8rem; }
.stats-table .badge { font-size: 0.75rem; padding: 0.18rem 0.55rem; }
.pay-amt-plus { color: var(--ok); font-weight: 700; }
.pay-amt-minus { color: var(--bad); font-weight: 700; }
.stats-person { display: flex; gap: 0.55rem; align-items: center; }
.activity-list { list-style: none; margin: 0.75rem 0 0; padding: 0; display: grid; gap: 0.55rem; }
.activity-item {
  border: 1px solid var(--line, #c9d4cc);
  border-radius: 12px;
  padding: 0.7rem 0.8rem;
  background: var(--panel, #f7faf8);
}
.activity-item.act-ok { border-color: #b7dcc8; }
.activity-item.act-bad { border-color: #e3b6b6; }
.activity-item.act-warn { border-color: #e2d0a4; }
.activity-main { display: flex; gap: 0.65rem; align-items: flex-start; }
.activity-line { display: flex; flex-wrap: wrap; gap: 0.35rem 0.55rem; align-items: baseline; }
.activity-action { color: var(--muted, #4f6358); font-size: 0.9rem; }
.activity-summary { margin-top: 0.2rem; }

.error-page { padding: 2.5rem 0 3.5rem; max-width: 34rem; }
.error-page-code {
  margin: 0 0 0.25rem;
  font-size: clamp(3rem, 8vw, 4.5rem);
  line-height: 1;
  color: var(--ok);
}
.error-page h1 { margin: 0 0 0.5rem; }
.error-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1.15rem;
}

/* Landing */
html.land-page {
  height: 100%;
}
html.land-page, body.land-body {
  overflow-x: clip;
  max-width: 100%;
}
body.land-body {
  margin: 0;
  min-height: 100%;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  /* явно светлый фон лендинга (не наследовать тёмный anti-FOUC) */
  background:
    radial-gradient(ellipse 80% 50% at 10% -10%, #d5e4da 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 100% 0%, #d8e0d4 0%, transparent 50%),
    linear-gradient(180deg, #f4f7f5 0%, var(--bg) 40%, #e5ebe7 100%);
  color: var(--ink);
}
.land-main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: clip;
  min-height: 0;
}
.land {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-height: 100%;
  overflow-x: clip;
}
.land-content {
  flex: 1 0 auto;
}
.land .wrap,
html.land-page .wrap,
body.land-body .wrap {
  width: min(1280px, calc(100% - var(--pad) - var(--pad-r)));
  margin-inline: auto;
  box-sizing: border-box;
}
.land-nav {
  display: flex; align-items: center; gap: 0.85rem;
  padding: 1rem 0; position: relative; z-index: 30;
}
.land-brand { display: inline-flex; align-items: center; gap: 0.65rem; text-decoration: none; color: var(--ink); }
.land-brand img { border-radius: 0.45rem; flex-shrink: 0; }
.land-brand-name { font-size: 1.15rem; }
.land-nav-panel {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  gap: 0.85rem;
}
.land-nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  align-items: center;
}
.land-nav-link {
  text-decoration: none;
  color: var(--muted);
  font-weight: 600;
  font-size: 0.92rem;
  padding: 0.25rem 0;
}
.land-nav-link:hover,
.land-nav-link.is-active { color: var(--ink); }
.land-nav-actions { display: flex; gap: 0.45rem; align-items: center; flex-shrink: 0; margin-left: auto; }
.land-nav-burger { display: none; }
.land-hero {
  position: relative;
  /* mobile-first: совпадает с критичным CSS — без CLS при подгрузке style.css */
  min-height: min(88vh, 44rem);
  display: flex;
  align-items: flex-end;
  padding: 2rem 0 2.5rem;
  overflow: hidden;
  width: 100%;
}
.land-hero-bg {
  position: absolute; inset: 0; z-index: 0;
  background:
    linear-gradient(180deg, rgba(238,242,239,0.12) 0%, rgba(20,36,28,0.45) 40%, rgba(20,36,28,0.88) 100%),
    radial-gradient(ellipse 90% 70% at 70% 20%, #3d6b52 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 10% 80%, #b8972f55 0%, transparent 50%),
    linear-gradient(135deg, #1a3326 0%, #0f1c16 45%, #24382c 100%);
  animation: landBg 14s ease-in-out infinite alternate;
  transform-origin: center center;
}
.land-hero-bg::after {
  content: "";
  position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 28px, rgba(255,255,255,0.03) 28px, rgba(255,255,255,0.03) 29px),
    repeating-linear-gradient(90deg, transparent, transparent 28px, rgba(255,255,255,0.025) 28px, rgba(255,255,255,0.025) 29px);
  opacity: 0.55;
}
@keyframes landBg {
  from { filter: saturate(1) brightness(1); }
  to { filter: saturate(1.08) brightness(1.05); }
}
.land-hero-visual {
  position: absolute;
  z-index: 1;
  top: 0; right: 0; bottom: 0;
  width: 100%;
  opacity: 0.38;
  pointer-events: none;
  mask-image: linear-gradient(180deg, transparent 0%, #000 25%, #000 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 25%, #000 70%, transparent 100%);
}
.land-hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 35% center;
  display: block;
}
.land-hero-visual picture {
  display: block;
  width: 100%;
  height: 100%;
}
.land-hero-inner {
  position: relative;
  z-index: 2;
  width: min(1280px, calc(100% - var(--pad) - var(--pad-r)));
  max-width: none;
  margin-inline: auto;
  color: #f3f7f4;
}
.land-hero-copy {
  max-width: 100%;
  padding-right: 0;
}
.land-kicker {
  font-size: clamp(1.6rem, 5vw, 2.4rem); margin: 0 0 0.45rem;
  animation: landIn 0.8s ease both;
}
.land-pilot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.75rem;
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  color: #f3f7f4;
  animation: landIn 0.85s 0.04s ease both;
}
.land-pilot-mark {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border: 1px solid color-mix(in oklab, #b8972f 70%, #f3f7f4);
  background: color-mix(in oklab, #b8972f 28%, transparent);
  color: #f6e7b8;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-family: Unbounded, Manrope, sans-serif;
}
.land-speed {
  margin: 0 0 0.95rem;
  max-width: 34rem;
  font-size: 1.12rem;
  line-height: 1.4;
  font-weight: 650;
  color: #f6e7b8;
  border-left: 3px solid #b8972f;
  padding-left: 0.75rem;
  animation: landIn 1s 0.18s ease both;
}
.land-hero-prices {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.85rem 0;
  margin: 0 0 1.15rem;
  animation: landIn 1s 0.2s ease both;
}
.land-hero-price {
  margin: 0;
  font-size: clamp(1.65rem, 4vw, 2.35rem);
  line-height: 1.15;
  color: #f3f7f4;
}
.land-hero-prices .land-hero-price + .land-hero-price {
  margin-left: 1.35rem;
  padding-left: 1.35rem;
  border-left: 1px solid color-mix(in oklab, #f3f7f4 30%, transparent);
}
.land-hero-price span {
  display: block;
  margin-top: 0.22rem;
  font-size: 0.92rem;
  font-weight: 500;
  font-family: Manrope, sans-serif;
  color: color-mix(in oklab, #f3f7f4 70%, transparent);
}
.land-h1 {
  font-size: clamp(2rem, 5.5vw, 3.6rem); line-height: 1.08; margin: 0 0 0.85rem;
  animation: landIn 0.9s 0.08s ease both;
}
.land-lead {
  font-size: 1.08rem; line-height: 1.5; margin: 0 0 0.85rem;
  color: color-mix(in oklab, #f3f7f4 82%, transparent);
  max-width: 34rem;
  animation: landIn 1s 0.14s ease both;
}
.land-cta { display: flex; flex-wrap: wrap; gap: 0.55rem; animation: landIn 1s 0.22s ease both; }
.land-cta-main { background: #f3f7f4; color: var(--ink); }
.land-cta .btn.secondary {
  background: transparent; color: #f3f7f4;
  border-color: color-mix(in oklab, #f3f7f4 45%, transparent);
}
@keyframes landIn {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
.land-section { padding: 3.25rem 0; }
.land-section-alt {
  background: color-mix(in oklab, var(--panel) 70%, #e4ebe6);
  border-block: 1px solid var(--line);
}
.land-h2 { font-size: clamp(1.35rem, 3vw, 1.85rem); margin: 0 0 0.45rem; }
.land-section-lead { margin: 0 0 1.35rem; max-width: 36rem; line-height: 1.45; }
.land-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.15rem; }
.land-steps > li { display: grid; grid-template-columns: auto 1fr; gap: 0.85rem; align-items: start; }
.land-step-n {
  width: 2.2rem; height: 2.2rem; border-radius: 0.55rem;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--ok-soft); color: var(--ok); font-weight: 700; font-family: Unbounded, Manrope, sans-serif;
}
.land-steps p { margin: 0.25rem 0 0; }
.feat-plus {
  display: flex;
  gap: 0.45rem;
  align-items: flex-start;
  margin: 0.55rem 0 0;
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--ink);
}
.feat-plus-mark {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.2rem;
  height: 1.2rem;
  margin-top: 0.1rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--ok) 22%, #fff);
  color: var(--ok);
  font-weight: 800;
  font-size: 0.85rem;
  line-height: 1;
}
.land-price { font-size: clamp(2rem, 5vw, 3rem); margin: 0.35rem 0 0.65rem; }
.land-price-unit { font-size: 1rem; color: var(--muted); font-family: Manrope, sans-serif; font-weight: 500; }
.land-price-soon {
  margin: -0.2rem 0 0.75rem;
  font-weight: 650;
  color: var(--warn);
}
.price-rise-banner {
  margin: 0 0 1rem;
  padding: 0.7rem 0.9rem;
  border-radius: 0.75rem;
  border: 1px solid color-mix(in oklab, var(--warn) 38%, var(--line));
  background: var(--warn-soft);
  color: var(--warn);
  font-weight: 650;
  font-size: 0.95rem;
  line-height: 1.35;
}
.price-rise-banner.is-land {
  margin: -0.15rem 0 0.85rem;
  max-width: 28rem;
}
.price-rise-banner.is-hero {
  margin: 1.05rem 0 0;
  max-width: 28rem;
  background: color-mix(in oklab, #b8972f 34%, transparent);
  border-color: color-mix(in oklab, #b8972f 70%, #f3f7f4);
  color: #f6e7b8;
}
.land-price-grid {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}
@media (min-width: 900px) {
  .land-price-grid {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
    gap: 2.25rem;
  }
}
.land-price-copy { min-width: 0; }
.land-once-sample { margin: 0; min-width: 0; }
.land-once-sample-cap {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ok);
  font-family: Unbounded, Manrope, sans-serif;
}
.land-once-sample-sheet {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0.9rem;
  padding: 1.05rem 1.1rem 1.15rem;
  box-shadow: 0 16px 36px color-mix(in oklab, #1a2e22 12%, transparent);
  color: #1a2e22;
  font-size: 0.82rem;
  line-height: 1.4;
}
.land-once-sample-sheet h3 {
  font-size: 0.92rem;
  margin: 0.9rem 0 0.45rem;
  padding-bottom: 0.28rem;
  border-bottom: 1px solid #c5d0c8;
}
.land-once-sample-sheet h3:first-child { margin-top: 0; }
.land-once-rows {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.land-once-rows th,
.land-once-rows td {
  padding: 0.28rem 0;
  vertical-align: top;
  text-align: left;
  font-weight: 500;
}
.land-once-rows th {
  width: 38%;
  color: #5c6f64;
  padding-right: 0.7rem;
  font-weight: 500;
}
.land-once-map { margin: 0.55rem 0 0; }
.land-once-map .fact-link {
  color: #1a6b3c;
  text-decoration: underline;
  cursor: default;
}
.land-once-card {
  border: 1px solid #d5ddd8;
  border-radius: 6px;
  padding: 0.55rem 0.7rem;
  margin: 0 0 0.5rem;
  display: grid;
  gap: 0.15rem;
}
.land-once-card:last-child { margin-bottom: 0; }
.land-once-card ul {
  margin: 0.25rem 0 0;
  padding-left: 1.1rem;
}
.land-price-shot {
  margin: 0;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 18px 40px color-mix(in oklab, #1a2e22 12%, transparent);
  background: color-mix(in oklab, var(--panel) 80%, #fff);
}
.land-price-shot picture { display: block; width: 100%; }
.land-price-shot--team picture,
.land-price-shot--team img { aspect-ratio: 1024 / 388; }
.land-price-shot--card picture,
.land-price-shot--card img { aspect-ratio: 1024 / 702; }
.land-price-shot img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  vertical-align: middle;
}
.land-bullets { margin: 0; padding-left: 1.15rem; display: grid; gap: 0.45rem; line-height: 1.45; }
.land-benefits {
  display: grid;
  gap: 1rem;
}
.land-benefit {
  padding: 1.05rem 1.1rem 1.15rem;
  border-left: 3px solid var(--accent);
  background: color-mix(in oklab, var(--panel) 85%, #fff);
}
.land-benefit-q {
  margin: 0 0 0.4rem;
  font-family: Unbounded, Manrope, sans-serif;
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.3;
}
.land-benefit-a {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}
.land-reviews {
  display: grid;
  gap: 1rem;
}
.land-review {
  padding: 1.05rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  background: color-mix(in oklab, var(--panel) 90%, #fff);
}
.land-review-top {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: flex-start;
  margin-bottom: 0.65rem;
}
.land-review-who {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  min-width: 0;
}
.land-review-stars {
  color: var(--accent);
  letter-spacing: 0.06em;
  font-size: 0.95rem;
  flex-shrink: 0;
}
.land-review-date { margin-top: 0.15rem; }
.reviews-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.25rem 0 0;
}
.reviews-filter {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.85rem;
  border-radius: 0.65rem;
  border: 1px solid var(--line);
  background: color-mix(in oklab, var(--panel) 90%, #fff);
  text-decoration: none;
  color: var(--muted);
  font-weight: 600;
  font-size: 0.92rem;
}
.reviews-filter:hover { color: var(--ink); background: var(--chip); }
.reviews-filter.is-active {
  color: var(--ink);
  border-color: color-mix(in oklab, var(--accent) 55%, var(--line));
  background: color-mix(in oklab, var(--accent) 16%, #fff);
}
.land-review-body {
  margin: 0;
  line-height: 1.5;
  white-space: pre-wrap;
}
.land-faq-grid {
  display: grid;
  gap: 2rem;
  align-items: start;
}
.land-faq { display: grid; gap: 0.55rem; }
.land-know {
  padding: 1.15rem 1.2rem 1.3rem;
  border-radius: 1rem;
  border: 1px solid var(--line);
  background: color-mix(in oklab, var(--panel) 92%, #fff);
}
.land-know .land-section-lead {
  max-width: none;
  margin-bottom: 0.75rem;
}
.land-know .muted.small { margin: 0; }
.land-faq-item {
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: color-mix(in oklab, var(--panel) 88%, #fff);
  padding: 0.15rem 0.9rem;
}
.land-faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 0.85rem 0;
  font-weight: 650;
  font-family: Unbounded, Manrope, sans-serif;
  font-size: 0.95rem;
}
.land-faq-item summary::-webkit-details-marker { display: none; }
.land-faq-item summary::after {
  content: "+";
  float: right;
  color: var(--muted);
  font-weight: 700;
}
.land-faq-item[open] summary::after { content: "–"; }
.land-faq-item p {
  margin: 0 0 0.95rem;
  color: var(--muted);
  line-height: 1.5;
}
.land-foot {
  margin-top: auto;
  flex-shrink: 0;
  padding: 2.25rem 0 0;
  border-top: 1px solid var(--line);
  background: color-mix(in oklab, var(--ink) 4%, var(--bg));
}
.land-foot-inner { padding-bottom: 0; }
.land-foot-cols {
  display: grid;
  gap: 1.5rem 1.75rem;
  grid-template-columns: 1fr;
  padding-bottom: 1.5rem;
}
.land-foot-aside .land-foot-note {
  margin: 0;
  max-width: 36rem;
  margin-left: auto;
  line-height: 1.45;
}
.land-foot-brand { font-size: 1.15rem; margin: 0 0 0.45rem; }
.land-foot-operator { margin: 0 0 0.25rem; line-height: 1.4; }
.land-foot-about .muted { margin: 0 0 0.2rem; }
.land-foot-mail {
  color: var(--ok);
  font-weight: 600;
  text-decoration: none;
}
.land-foot-mail:hover { text-decoration: underline; }
.land-foot-messengers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin: 0.55rem 0 0.35rem;
}
.land-foot-msg {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  flex-shrink: 0;
}
.land-foot-msg svg { width: 1.28rem; height: 1.28rem; display: block; }
.land-foot-msg.is-whatsapp { background: #25d366; }
.land-foot-msg.is-telegram { background: #229ed9; }
.land-foot-msg.is-max { background: #4f46e5; }
.land-foot-msg:hover { filter: brightness(1.08); }
.land-foot-title {
  font-family: Unbounded, Manrope, sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 0.65rem;
}
.land-foot-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.land-foot-list a {
  color: var(--muted);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.35;
}
.land-foot-list a:hover { color: var(--ink); }
.land-foot-bottom {
  border-top: 1px solid var(--line);
  padding: 1rem 0 1.35rem;
  display: grid;
  gap: 0.55rem;
}
.land-foot-note {
  margin: 0;
  line-height: 1.45;
  max-width: 52rem;
}
.land-foot-copy {
  margin: 0;
  font-size: 0.82rem;
}
.data-disclaimer {
  margin: 0.85rem 0 1rem;
  padding: 0.65rem 0.75rem;
  border-left: 3px solid var(--warn);
  background: var(--warn-soft);
  line-height: 1.4;
}
@media (max-width: 860px) {
  .land-nav { z-index: 40; }
  .land-nav-burger { display: inline-flex; margin-left: auto; }
  .land-nav.is-nav-open .nav-burger-lines { background: transparent; }
  .land-nav.is-nav-open .nav-burger-lines::before { top: 0; transform: rotate(45deg); }
  .land-nav.is-nav-open .nav-burger-lines::after { top: 0; transform: rotate(-45deg); }
  .land-nav-panel {
    display: none;
    position: absolute;
    top: calc(100% - 0.15rem);
    left: 0;
    right: 0;
    z-index: 45;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    padding: 0.55rem;
    border: 1px solid var(--line);
    border-radius: 0.9rem;
    background: color-mix(in oklab, var(--panel) 97%, #fff);
    box-shadow: 0 14px 32px color-mix(in oklab, #1a2e22 16%, transparent);
  }
  .land-nav.is-nav-open .land-nav-panel { display: flex; }
  .land-nav-links {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.1rem;
  }
  .land-nav-link {
    padding: 0.7rem 0.85rem;
    border-radius: 0.65rem;
    font-size: 0.98rem;
  }
  .land-nav-link.is-active,
  .land-nav-link:hover { background: var(--chip); }
  .land-nav-actions {
    margin: 0.25rem 0 0;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
  .land-nav-actions .btn,
  .land-nav-actions .btn-ghost {
    width: 100%;
    justify-content: center;
  }
  body.is-land-nav-open { overflow: hidden; }
}
@media (min-width: 800px) {
  .land-hero {
    min-height: min(92vh, 56rem);
    align-items: center;
    padding: 2.5rem 0 3.5rem;
  }
  .land-hero-visual {
    width: min(54vw, 720px);
    opacity: 1;
    mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
  }
  .land-hero-copy {
    max-width: min(38rem, 52%);
    padding-right: 1rem;
  }
  .land-steps { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
  .land-steps > li { grid-template-columns: 1fr; }
  .land-benefits { grid-template-columns: repeat(2, 1fr); gap: 1.15rem 1.35rem; }
  .land-reviews { grid-template-columns: repeat(2, 1fr); }
  .land-faq-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
    gap: 2.25rem 2.75rem;
  }
  .land-foot-cols {
    grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr));
    gap: 1.75rem 2rem;
    align-items: start;
  }
  .land-foot.is-cabinet .land-foot-cols {
    grid-template-columns: minmax(12rem, 1.15fr) auto auto minmax(16rem, 1.8fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  .land-hero-bg, .land-kicker, .land-pilot, .land-h1, .land-lead, .land-speed, .land-hero-prices, .land-cta { animation: none; }
}

.a2hs {
  position: fixed;
  left: 0.75rem;
  right: 0.75rem;
  bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
  z-index: 60;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.75rem 0.8rem;
  border-radius: 0.9rem;
  background: #14241c;
  color: #f3f7f4;
  box-shadow: 0 12px 32px rgba(20, 36, 28, 0.35);
}
.a2hs[hidden] { display: none !important; }
.a2hs-icon {
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.65rem;
}
.a2hs-copy { flex: 1 1 auto; min-width: 0; }
.a2hs-copy strong { display: block; font-size: 0.95rem; }
.a2hs-copy p {
  margin: 0.2rem 0 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: color-mix(in oklab, #f3f7f4 78%, #8aa090);
}
.a2hs-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
  flex: 0 0 auto;
}
.a2hs-actions .btn.mini {
  background: #f3f7f4;
  color: var(--ink);
  border: 0;
}
.a2hs-x {
  border: 0;
  background: transparent;
  color: #f3f7f4;
  font-size: 1.35rem;
  line-height: 1;
  padding: 0.1rem 0.25rem;
  cursor: pointer;
  opacity: 0.8;
}
html.has-a2hs body {
  padding-bottom: calc(6.25rem + env(safe-area-inset-bottom, 0px));
}
@media (min-width: 861px) {
  .a2hs { display: none !important; }
  html.has-a2hs body { padding-bottom: 0; }
}

.once-page .once-form-card {
  max-width: 36rem;
  padding: 1.2rem 1.3rem 1.4rem;
}
.once-page .once-form-card--wide {
  max-width: 48rem;
}
.once-page .once-form-card .land-h2 { margin-top: 0.15rem; }
.once-form-card .form,
.once-block .form { margin-top: 0.4rem; }
.once-form-card .btn,
.once-block .btn { width: 100%; }

/* Жёстко две колонки: слева оплата/форма, справа информация */
.once-page.once-page--cols {
  display: flex !important;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 1.15rem;
  align-items: stretch;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.once-page.once-page--cols > .once-crumb {
  flex: 0 0 100%;
  width: 100%;
  margin-bottom: 0;
}
.once-page.once-page--cols > .once-col {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}
.once-block {
  max-width: none !important;
  width: 100%;
  height: 100%;
  padding: 1.2rem 1.3rem 1.4rem;
  box-sizing: border-box;
}
.once-page--pay .manual-pay-box {
  margin: 0 !important;
  border: 0;
  background: transparent;
  padding: 0;
  box-shadow: none;
  border-radius: 0;
}
.once-page--cols .once-copy {
  max-width: none;
  margin-top: 0;
}
.once-lookup-details {
  margin-top: 1.15rem;
  padding-top: 0.95rem;
  border-top: 1px solid color-mix(in oklab, var(--line) 80%, transparent);
}
.once-lookup-details > summary {
  cursor: pointer;
  font-weight: 700;
  list-style: none;
}
.once-lookup-details > summary::-webkit-details-marker { display: none; }
.once-lookup-details > summary::before {
  content: '▸ ';
  color: var(--muted);
}
.once-lookup-details[open] > summary::before { content: '▾ '; }
.once-copy .land-h2 { margin-bottom: 0.4rem; }
.once-copy .land-section-lead { margin-top: 0; }

@media (min-width: 768px) {
  .once-page.once-page--cols {
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1.35rem 1.5rem;
  }
  .once-page.once-page--cols > .once-crumb {
    flex: 0 0 100%;
  }
  .once-page.once-page--cols > .once-col-pay {
    flex: 1 1 calc(46% - 0.75rem);
    max-width: calc(46% - 0.75rem);
  }
  .once-page.once-page--cols > .once-col-info {
    flex: 1 1 calc(54% - 0.75rem);
    max-width: calc(54% - 0.75rem);
  }
  .once-page.once-page--pay > .once-col-pay {
    position: sticky;
    top: 1rem;
  }
}
.once-paid-actions { display: grid; gap: 0.5rem; margin-top: 0.85rem; }
.once-paid-actions .form { margin: 0; }
.once-found-lead {
  margin: 0 0 0.75rem;
  font-size: 1.02rem;
  line-height: 1.45;
}
.once-facts {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1rem;
}
.once-facts > div { min-width: 0; }
.once-facts dt { font-size: 0.75rem; color: var(--muted); margin: 0 0 0.15rem; }
.once-facts dd { margin: 0; line-height: 1.4; }
.once-chip {
  display: grid;
  gap: 0.15rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 0.65rem;
  margin: 0 0 0.45rem;
}
.once-full .block-title { margin: 0.85rem 0 0.45rem; }
.once-map-links { display: grid; gap: 0.2rem; }
.once-map-links .fact-link { margin-top: 0; min-height: 0; }
