/* =========================================================================
   Памятка водителя — Таксимания
   Тёмная тема, mobile-first. Базовая ширина 320–430px, десктоп — от 768px.
   ========================================================================= */

:root {
  --color-bg: #131316;
  --color-bg-alt: #191a1f;
  --color-surface: #17181c;
  --color-card: #1c1d23;
  --color-card-border: rgba(255, 255, 255, .08);
  --color-line: rgba(255, 255, 255, .12);

  --color-text: #ececed;
  --color-muted: #9a9aa4;

  /* фирменный акцент такси — жёлтый шашечный */
  --color-accent: #cf5a22;
  --color-accent-dark: #a8461a;
  --color-accent-ink: #fff7ef;

  --color-danger-bg: rgba(255, 196, 46, .10);
  --color-danger-border: rgba(255, 196, 46, .35);
  --color-danger-text: #ffdca0;

  --glass-bg: rgba(19, 19, 22, .74);
  --glass-border: rgba(255, 255, 255, .08);

  --radius-m: 12px;
  --radius-l: 18px;
  --shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 26px rgba(0, 0, 0, .35);

  --tap-min: 44px;
  --container-max: 720px;
  --ease: cubic-bezier(.4, 0, .2, 1);
  --header-h: 64px;
  --bottom-nav-h: 64px;

  font-size: 16px;
}

* { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; }
html { background: var(--color-bg); }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  padding-top: var(--header-h);
  padding-bottom: var(--bottom-nav-h);
}

h1, h2, h3 { margin: 0; color: #fff; }
p { margin: 0 0 .75em; }
ul, ol, dl { margin: 0; padding: 0; list-style: none; }
a { color: inherit; }
button { font-family: inherit; }

[id] { scroll-margin-top: calc(var(--header-h) + 14px); }

.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 20px;
}

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute;
  left: 8px; top: -60px;
  background: #000;
  color: #fff;
  padding: 10px 16px;
  border-radius: 8px;
  z-index: 1000;
  transition: top .15s ease;
}
.skip-link:focus { top: 8px; }

:focus-visible {
  outline: 3px solid var(--color-accent-dark);
  outline-offset: 2px;
}

/* ---------------------------------------------------------------------
   Header — плавающая, стеклянная, зафиксирована сверху
   --------------------------------------------------------------------- */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 700;
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: var(--glass-bg);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid var(--glass-border);
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.site-header__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.site-header__logo {
  height: 32px;
  width: auto;
  display: block;
  flex: none;
}
.site-header__name {
  color: #fff;
  font-weight: 700;
  letter-spacing: .02em;
  font-size: 1.05rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------------------------------------------------------------------
   Переключатель языка
   --------------------------------------------------------------------- */
.lang-switch {
  position: relative;
  flex: none;
}
.lang-switch__toggle {
  display: flex;
  align-items: center;
  gap: 5px;
  height: 34px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid var(--color-line);
  background: rgba(255,255,255,.05);
  color: var(--color-text);
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .2s var(--ease), background-color .2s var(--ease);
}
.lang-switch__toggle:hover { border-color: var(--color-accent); }
.lang-switch__chevron { width: 14px; height: 14px; fill: var(--color-muted); transition: transform .2s var(--ease); }
.lang-switch.is-open .lang-switch__chevron { transform: rotate(180deg); }

.lang-switch__menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 168px;
  background: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-m);
  box-shadow: 0 12px 30px rgba(0,0,0,.5);
  padding: 6px;
  opacity: 0;
  transform: translateY(-6px) scale(.96);
  pointer-events: none;
  transition: opacity .18s var(--ease), transform .18s var(--ease);
  z-index: 720;
}
.lang-switch.is-open .lang-switch__menu {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.lang-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 10px;
  border-radius: 8px;
  border: none;
  background: none;
  color: var(--color-text);
  font-size: .88rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background-color .15s var(--ease);
}
.lang-opt:hover { background: rgba(255,255,255,.06); }
.lang-opt[aria-current="true"] { color: var(--color-accent); }

.lang-note {
  margin: 0;
  padding: 10px 20px;
  text-align: center;
  font-size: .82rem;
  color: var(--color-danger-text);
  background: var(--color-danger-bg);
  border-bottom: 1px solid var(--color-danger-border);
}

/* ---------------------------------------------------------------------
   Hero
   --------------------------------------------------------------------- */
.hero {
  background:
    radial-gradient(circle at 18% -10%, rgba(255, 196, 46, .16) 0%, transparent 55%),
    var(--color-surface);
  color: #fff;
  padding: 32px 0 40px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .55s var(--ease), transform .55s var(--ease);
}
.hero.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.hero__title {
  color: #fff;
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: -.01em;
  margin-bottom: 10px;
}
.hero__subtitle {
  font-size: 1.1rem;
  background: linear-gradient(90deg, var(--color-accent), #ffb98a);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-weight: 700;
  margin-bottom: 10px;
}
.hero__lead {
  color: #cfcfcf;
  font-size: .98rem;
  margin-bottom: 22px;
}
.hero__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.hero__bot-note {
  margin: 12px 0 0;
  text-align: center;
  color: #a8a8a8;
  font-size: .85rem;
}

/* ---------------------------------------------------------------------
   Buttons
   --------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--tap-min);
  padding: 12px 20px;
  border-radius: var(--radius-m);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .06s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
  text-align: center;
  line-height: 1.2;
}
.btn:active { transform: scale(.98); }
.btn__icon { width: 20px; height: 20px; flex: none; fill: currentColor; }
.btn--block { width: 100%; }

.btn--primary {
  background: #fff;
  color: #161616;
}
.hero .btn--primary { background: #fff; color: #161616; }
.section .btn--primary,
.inspection-card .btn--primary { background: var(--color-accent); color: var(--color-accent-ink); }
.section .btn--primary:hover,
.inspection-card .btn--primary:hover { background: var(--color-accent-dark); }

.btn--secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,.5);
}
.section .btn--secondary,
.inspection-card .btn--secondary {
  color: var(--color-text);
  border-color: var(--color-line);
  background: transparent;
}
.section .btn--secondary:hover,
.inspection-card .btn--secondary:hover {
  border-color: var(--color-accent);
  color: #fff;
}

.btn--accent {
  background: var(--color-accent);
  color: var(--color-accent-ink);
}
.btn--accent:hover { background: var(--color-accent-dark); }

/* ---------------------------------------------------------------------
   Плавность: скролл-реveal и мягкие переходы
   --------------------------------------------------------------------- */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Мягкий "подъём" карточек при наведении — только на устройствах с реальным hover */
@media (hover: hover) and (pointer: fine) {
  .manager-card,
  .checklist li,
  .fact-row,
  .earnings-list li,
  .fine-row,
  .rules-list li,
  .faq-item,
  .inspection-card {
    transition: transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s var(--ease);
  }
  .manager-card:hover,
  .checklist li:hover,
  .fact-row:hover,
  .earnings-list li:hover,
  .fine-row:hover,
  .rules-list li:hover,
  .faq-item:hover,
  .inspection-card:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 196, 46, .35);
    box-shadow: 0 4px 10px rgba(0,0,0,.3), 0 16px 32px rgba(0,0,0,.4);
  }
}

.word-highlight {
  color: var(--color-accent-ink);
  font-weight: 800;
  background: var(--color-accent);
  padding: 0 5px;
  border-radius: 4px;
}

.warning-box--glow {
  position: relative;
  border-color: var(--color-accent-dark);
  animation: warning-glow 2.6s ease-in-out infinite;
}
@keyframes warning-glow {
  0%, 100% { box-shadow: 0 0 0 1px var(--color-danger-border), 0 0 0 rgba(240, 168, 20, 0); }
  50% { box-shadow: 0 0 0 1px var(--color-accent-dark), 0 0 26px rgba(240, 168, 20, .5); }
}

/* ---------------------------------------------------------------------
   Sections
   --------------------------------------------------------------------- */
.section {
  padding: 36px 0;
  border-bottom: 1px solid var(--color-line);
  background: var(--color-bg);
}
.section--alt { background: var(--color-bg-alt); }

.section__title {
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -.01em;
  display: inline-block;
  background: linear-gradient(90deg, #ffffff, var(--color-accent) 130%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.fade-divider {
  height: 1px;
  margin: 12px 0 22px;
  background: linear-gradient(90deg, var(--color-accent) 0%, rgba(255,196,46,0) 75%);
  opacity: .55;
}
.section__hint {
  color: var(--color-muted);
  margin-bottom: 18px;
  font-size: .95rem;
}
.section__note {
  color: var(--color-muted);
  font-size: .9rem;
  font-style: italic;
  margin: 14px 0 0;
}

/* ---------------------------------------------------------------------
   Column picker + managers
   --------------------------------------------------------------------- */
.column-picker {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 20px;
}
.column-btn {
  min-height: var(--tap-min);
  padding: 14px 16px;
  border-radius: var(--radius-m);
  border: 2px solid var(--color-line);
  background: var(--color-card);
  color: var(--color-text);
  font-weight: 700;
  font-size: 1rem;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  box-shadow: var(--shadow-card);
  transition: background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .12s var(--ease);
}
.column-btn:active { transform: scale(.98); }
.column-btn__chevron {
  width: 18px; height: 18px; flex: none;
  transition: transform .15s ease;
  fill: var(--color-muted);
}
.column-btn[aria-pressed="true"] {
  border-color: var(--color-accent);
  background: var(--color-accent);
  color: var(--color-accent-ink);
}
.column-btn[aria-pressed="true"] .column-btn__chevron { fill: var(--color-accent-ink); transform: rotate(180deg); }

.managers-list__placeholder {
  color: var(--color-muted);
  font-size: .95rem;
  padding: 8px 2px;
}

.manager-card {
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-card);
  padding: 18px;
  margin-bottom: 14px;
}
.manager-card--supervisor { border-style: dashed; }
.manager-card__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.manager-card__name {
  font-size: 1.15rem;
  font-weight: 800;
  color: #fff;
}
.manager-card__badge {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--color-muted);
  border: 1px solid var(--color-line);
  border-radius: 999px;
  padding: 3px 8px;
  white-space: nowrap;
}
.manager-card__meta {
  display: grid;
  grid-template-columns: auto 1fr;
  row-gap: 4px;
  column-gap: 10px;
  font-size: .92rem;
  color: var(--color-muted);
  margin-bottom: 14px;
}
.manager-card__meta dt { font-weight: 600; color: var(--color-text); }
.manager-card__meta dd { margin: 0; }
.manager-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.manager-card__actions .btn {
  flex: 1 1 100%;
  white-space: nowrap;
}

/* ---------------------------------------------------------------------
   Checklist
   --------------------------------------------------------------------- */
.checklist {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}
.checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-m);
  padding: 14px 16px;
  font-size: 1rem;
  box-shadow: var(--shadow-card);
}
.checklist__icon {
  flex: none;
  width: 22px; height: 22px;
  margin-top: 1px;
  fill: none;
  stroke: var(--color-accent);
  stroke-width: 2;
}

.warning-box {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: var(--color-danger-bg);
  border: 1px solid var(--color-danger-border);
  color: var(--color-danger-text);
  border-radius: var(--radius-m);
  padding: 14px 16px;
  font-size: .92rem;
  font-weight: 600;
}
.warning-box svg { flex: none; width: 20px; height: 20px; fill: var(--color-danger-text); margin-top: 1px; }

/* ---------------------------------------------------------------------
   Fact list (аренда и выплаты)
   --------------------------------------------------------------------- */
.fact-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.fact-row {
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-m);
  padding: 14px 16px;
  box-shadow: var(--shadow-card);
}
.fact-row dt {
  font-size: .85rem;
  color: var(--color-muted);
  margin-bottom: 4px;
}
.fact-row dd {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: #fff;
}
.fact-row__note {
  margin-top: 4px;
  font-size: .82rem;
  color: var(--color-muted);
  font-weight: 400;
}

/* ---------------------------------------------------------------------
   Earnings
   --------------------------------------------------------------------- */
.earnings-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.earnings-list li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-m);
  padding: 14px 16px;
  box-shadow: var(--shadow-card);
  font-size: 1rem;
}
.earnings-list__badge {
  flex: none;
  background: var(--color-accent);
  color: var(--color-accent-ink);
  font-size: .78rem;
  font-weight: 800;
  border-radius: 999px;
  padding: 4px 10px;
  white-space: nowrap;
}

/* ---------------------------------------------------------------------
   Fines
   --------------------------------------------------------------------- */
.fines-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 8px;
}
.fine-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-m);
  padding: 14px 16px;
  box-shadow: var(--shadow-card);
}
.fine-row__code {
  flex: none;
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 2px solid var(--color-accent);
  color: var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: .9rem;
}
.fine-row__body { flex: 1; min-width: 0; }
.fine-row__name { font-weight: 700; font-size: .96rem; color: #fff; }
.fine-row__note { font-size: .8rem; color: var(--color-muted); margin-top: 2px; }
.fine-row__amount {
  flex: none;
  font-weight: 800;
  font-size: 1.05rem;
  white-space: nowrap;
  color: #fff;
}

/* ---------------------------------------------------------------------
   Inspection + map
   --------------------------------------------------------------------- */
.inspection-card {
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-card);
  padding: 18px;
}
.inspection-card__facts {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}
.inspection-fact {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px dashed var(--color-line);
  padding-bottom: 8px;
  font-size: .95rem;
}
.inspection-fact:last-child { border-bottom: none; padding-bottom: 0; }
.inspection-fact__label { color: var(--color-muted); }
.inspection-fact__value { font-weight: 700; text-align: right; color: #fff; }
.inspection-fact__value--mono { font-variant-numeric: tabular-nums; }

.inspection-card__note {
  font-size: .85rem;
  color: var(--color-muted);
  font-style: italic;
  margin: 6px 0 14px;
}

.map-wrap { margin-bottom: 14px; }
.map {
  width: 100%;
  height: 260px;
  border-radius: var(--radius-m);
  overflow: hidden;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-card-border);
}
/* дешёвый "тёмный режим" для тайлов OpenStreetMap */
.map .leaflet-tile-pane {
  filter: invert(92%) hue-rotate(180deg) brightness(95%) contrast(90%);
}
.map-fallback {
  padding: 16px;
  border-radius: var(--radius-m);
  background: var(--color-bg-alt);
  border: 1px solid var(--color-card-border);
  text-align: center;
}
.mono { font-variant-numeric: tabular-nums; font-family: "SFMono-Regular", Consolas, monospace; }

.inspection-card__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.copy-toast {
  margin: 10px 0 0;
  text-align: center;
  font-size: .85rem;
  font-weight: 700;
  color: #7be495;
}

/* ---------------------------------------------------------------------
   Return rules
   --------------------------------------------------------------------- */
.rules-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 18px;
  counter-reset: rule;
}
.rules-list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-m);
  padding: 14px 16px;
  box-shadow: var(--shadow-card);
  font-size: 1rem;
}
.rules-list li::before {
  counter-increment: rule;
  content: counter(rule);
  flex: none;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--color-accent);
  color: var(--color-accent-ink);
  font-size: .8rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ---------------------------------------------------------------------
   FAQ
   --------------------------------------------------------------------- */
.faq-search {
  position: relative;
  margin-bottom: 14px;
}
.faq-search__icon {
  position: absolute;
  left: 14px; top: 50%;
  transform: translateY(-50%);
  width: 18px; height: 18px;
  color: var(--color-muted);
  pointer-events: none;
}
.faq-search input {
  width: 100%;
  min-height: var(--tap-min);
  padding: 10px 14px 10px 40px;
  border-radius: var(--radius-m);
  border: 1px solid var(--color-line);
  font-size: 1rem;
  background: var(--color-card);
  color: var(--color-text);
}
.faq-search input::placeholder { color: var(--color-muted); }

.faq-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.faq-cat-btn {
  min-height: 36px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--color-line);
  background: var(--color-card);
  color: var(--color-text);
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .22s var(--ease), border-color .22s var(--ease), color .22s var(--ease), transform .12s var(--ease);
}
.faq-cat-btn:active { transform: scale(.96); }
.faq-cat-btn[aria-pressed="true"] {
  background: var(--color-accent);
  color: var(--color-accent-ink) !important;
  border-color: var(--color-accent);
}

.faq-item {
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-m);
  margin-bottom: 10px;
  overflow: hidden;
  box-shadow: var(--shadow-card);
}
.faq-item__question {
  width: 100%;
  min-height: var(--tap-min);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  background: none;
  border: none;
  text-align: left;
  font-size: .98rem;
  font-weight: 700;
  cursor: pointer;
  color: #fff;
}
.faq-item__chevron {
  flex: none;
  width: 18px; height: 18px;
  transition: transform .15s ease;
  fill: var(--color-muted);
}
.faq-item__question[aria-expanded="true"] .faq-item__chevron { transform: rotate(180deg); }
.faq-item__answer {
  padding: 0 16px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .28s var(--ease), padding .28s var(--ease), opacity .22s ease;
  font-size: .92rem;
  color: var(--color-text);
}
.faq-item__answer.is-open {
  padding: 0 16px 16px;
  max-height: 480px;
  opacity: 1;
}
.faq-item__category {
  display: inline-block;
  font-size: .72rem;
  color: var(--color-muted);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.faq-item .btn { margin-top: 10px; }

.faq-empty {
  text-align: center;
  color: var(--color-muted);
  padding: 20px 0;
}

/* ---------------------------------------------------------------------
   Footer
   --------------------------------------------------------------------- */
.site-footer {
  background: var(--color-surface);
  color: #c9c9c9;
  padding: 28px 0 calc(var(--bottom-nav-h) + 32px);
  text-align: center;
  font-size: .85rem;
  border-top: 1px solid var(--color-line);
}
.site-footer__logo { height: 26px; opacity: .85; margin-bottom: 10px; }
.site-footer a {
  color: var(--color-accent);
  text-decoration: none;
  font-weight: 700;
  display: inline-block;
  margin-top: 6px;
}

.footer-forms {
  margin: 18px auto 0;
  padding-top: 14px;
  max-width: 320px;
  border-top: 1px solid rgba(255,255,255,.14);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.footer-forms__title {
  color: #9a9a9a;
  font-size: .78rem;
  margin: 0 0 2px;
  font-weight: 400;
}
.footer-forms__link {
  color: #e7e7e7 !important;
  font-size: .88rem;
  font-weight: 600 !important;
  text-decoration: none;
  border-bottom: 1px dashed rgba(255,255,255,.35);
  margin-top: 0 !important;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}
.footer-forms__link:hover {
  color: var(--color-accent) !important;
  border-color: var(--color-accent);
}

/* ---------------------------------------------------------------------
   Быстрые действия: бот + онлайн-заявки (раскрывающийся FAB)
   --------------------------------------------------------------------- */
.quick-actions {
  position: fixed;
  right: 16px;
  bottom: calc(var(--bottom-nav-h) + 14px);
  z-index: 610;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.quick-actions__menu {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  margin-bottom: 12px;
}
.quick-actions__item {
  background: var(--color-card);
  border: 1px solid var(--color-line);
  color: #fff !important;
  font-size: .85rem;
  font-weight: 700 !important;
  text-decoration: none;
  padding: 11px 18px;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,.4);
  white-space: nowrap;
  opacity: 0;
  transform: translateY(10px) scale(.92);
  pointer-events: none;
  transition: opacity .22s var(--ease), transform .22s var(--ease), background-color .2s var(--ease);
}
.quick-actions__item--bot {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-accent-ink) !important;
}
.quick-actions__item:hover { background: var(--color-accent-dark); border-color: var(--color-accent-dark); color: var(--color-accent-ink) !important; }
.quick-actions.is-open .quick-actions__item {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.quick-actions.is-open .quick-actions__item:nth-child(1) { transition-delay: .1s; }
.quick-actions.is-open .quick-actions__item:nth-child(2) { transition-delay: .07s; }
.quick-actions.is-open .quick-actions__item:nth-child(3) { transition-delay: .04s; }
.quick-actions.is-open .quick-actions__item:nth-child(4) { transition-delay: .01s; }

.fixed-tg-btn {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--color-accent);
  color: var(--color-accent-ink);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,.4);
  cursor: pointer;
  flex: none;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.fixed-tg-btn svg { width: 26px; height: 26px; fill: currentColor; transition: transform .3s var(--ease); }
.quick-actions.is-open .fixed-tg-btn {
  box-shadow: 0 0 0 4px rgba(255,196,46,.35), 0 6px 18px rgba(0,0,0,.4);
}
.quick-actions.is-open .fixed-tg-btn svg { transform: rotate(20deg); }
.fixed-tg-btn:active { transform: scale(.94); }

.back-to-top {
  position: fixed;
  left: 16px;
  bottom: calc(var(--bottom-nav-h) + 14px);
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--color-card);
  border: 1px solid var(--color-line);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,.4);
  cursor: pointer;
  z-index: 500;
  transition: transform .2s var(--ease);
}
.back-to-top:active { transform: scale(.92); }
.back-to-top svg { width: 20px; height: 20px; fill: currentColor; }

/* ---------------------------------------------------------------------
   Нижняя плавающая навигация
   --------------------------------------------------------------------- */
.floating-bottom-nav {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 550;
  height: var(--bottom-nav-h);
  display: flex;
  justify-content: space-around;
  align-items: stretch;
  background: var(--glass-bg);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border-top: 1px solid var(--glass-border);
  padding: 0 4px;
}
.nav-item {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--color-muted);
  text-decoration: none;
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: -.01em;
  white-space: nowrap;
  transition: color .2s var(--ease);
}
.nav-item__icon {
  width: 21px; height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  transition: transform .2s var(--ease);
}
.nav-item.is-active { color: var(--color-accent); }
.nav-item.is-active .nav-item__icon { transform: translateY(-1px); }

/* =========================================================================
   Breakpoints
   ========================================================================= */

/* Small phones */
@media (max-width: 359px) {
  :root { font-size: 15px; }
  .container { padding: 0 16px; }
  .nav-item { font-size: .6rem; }
}

/* Larger phones / phablets */
@media (min-width: 431px) {
  .hero__actions { flex-direction: row; flex-wrap: wrap; }
  .hero__actions .btn { flex: 1 1 auto; }
}

/* Tablet and up */
@media (min-width: 768px) {
  :root { --container-max: 900px; }

  .hero { padding: 56px 0 64px; }
  .hero__title { font-size: 2.6rem; }
  .hero__subtitle { font-size: 1.3rem; }
  .hero__lead { font-size: 1.05rem; max-width: 640px; }
  .hero__actions { justify-content: flex-start; }

  .section { padding: 56px 0; }
  .section__title { font-size: 1.75rem; }

  .column-picker { grid-template-columns: repeat(2, 1fr); }
  .managers-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .managers-list .manager-card { margin-bottom: 0; }
  .manager-card__actions .btn { flex: 1 1 auto; }

  .checklist { display: grid; grid-template-columns: repeat(2, 1fr); }
  .fact-list { display: grid; grid-template-columns: repeat(2, 1fr); }
  .earnings-list { display: grid; grid-template-columns: repeat(2, 1fr); }
  .fines-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 14px; }

  .inspection-card__actions { flex-direction: row; }
  .inspection-card__actions .btn { flex: 1; }

  .rules-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 14px; }

  .nav-item { font-size: .72rem; }
  .nav-item__icon { width: 22px; height: 22px; }
}

/* Desktop */
@media (min-width: 1024px) {
  :root { --container-max: 1080px; }
  .managers-list { grid-template-columns: repeat(3, 1fr); }
  .fines-list { grid-template-columns: repeat(1, 1fr); max-width: 720px; }
  .inspection-card { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; padding: 24px; }
  .inspection-card__facts,
  .inspection-card__note,
  .inspection-card__actions,
  .copy-toast { grid-column: 1; }
  .map-wrap { grid-column: 2; grid-row: 1 / span 4; margin-bottom: 0; }
  .map { height: 100%; min-height: 340px; }
}

@media (min-width: 1440px) {
  :root { --container-max: 1200px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  .reveal, .hero { opacity: 1 !important; transform: none !important; }
}
