:root {
  --ui-panel: #F7F3EA;
  --ui-soft: #FBF8F1;
  --ui-text: #2F383C;
  --ui-muted: #6F7A76;
  --ui-border: #D8D0C2;
  --ui-terracotta: #D97945;
  --ui-terracotta-hover: #C86536;
  --ui-terracotta-soft: #F0BE98;
  --ui-green: #6F8279;
  --ui-green-dark: #596D64;
  --ui-green-soft: #DDE7E2;
  --ui-sand: #CDBB96;
  --ui-amber: #D9A052;
  --ui-graphite: #5A666C;
  --ui-plum: #8D6A73;
  --ui-ochre: #D6A34A;
  --ui-water: #D6E2E5;

  --bg-page: #FBF8F1;
  --bg-surface: #F7F3EA;
  --bg-surface-soft: #FBF8F1;
  --bg-surface-glass: rgba(247,243,234,0.88);
  --map-water: #D6E2E5;
  --map-land: #FBF8F1;
  --map-green: #DDE7E2;
  --line-soft: #D8D0C2;
  --map-district: #CDBB96;
  --map-micro: #DDE7E2;
  --map-prom: #D6E2E5;
  --map-cemetery: #8D6A73;
  --object-muted: #5A666C;

  --accent-apricot: #D97945;
  --accent-clay: #D97945;
  --accent-terracotta: #C86536;
  --accent-straw: #CDBB96;
  --accent-amber: #D9A052;
  --accent-plum: #8D6A73;

  --cat-history: #C86536;
  --cat-nature: #6F8279;
  --cat-food: #D97945;
  --cat-routes: #D9A052;
  --cat-stories: #8D6A73;
  --cat-building: #D97945;

  --text-main: #2F383C;
  --text-muted: #6F7A76;
  --text-soft: #6F7A76;
  --text-invert: #FBF8F1;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 30px;

  --shadow-soft: 0 10px 30px rgba(47,56,60,0.08);
  --shadow-card: 0 18px 45px rgba(47,56,60,0.13);
  --shadow-pin: 0 10px 22px rgba(47,56,60,0.22);

  --sidebar-width: 370px;
  --object-panel-width: 520px;
  --transition-fast: 160ms ease;
  --transition-base: 240ms ease;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 18% 5%, rgba(217,121,69,.14), transparent 30%),
    linear-gradient(135deg, #FBF8F1 0%, var(--bg-page) 52%, #D6E2E5 100%);
  color: var(--text-main);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, "Noto Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button, input, select, textarea { font: inherit; }
button { color: inherit; }

.app-shell {
  --dock-width: var(--sidebar-width);
  height: 100vh;
  padding: 18px;
  display: grid;
  grid-template-columns: var(--dock-width) minmax(0, 1fr);
  gap: 18px;
  overflow: hidden;
}

.app-shell.has-object-card {
  --dock-width: var(--sidebar-width);
}

.left-dock {
  position: relative;
  min-height: 0;
  height: 100%;
  overflow: visible;
  z-index: 8;
}

.sidebar,
.object-panel,
.mapWrap {
  position: relative;
  z-index: 1;
  min-height: 0;
  border: 1px solid rgba(47,56,60,0.10);
  background: var(--bg-surface-glass);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(16px);
}

 .sidebar {
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(47,56,60,.20) transparent;
  transition:
    transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 220ms ease,
    filter 220ms ease;
}

 .app-shell.has-object-card .sidebar {
  transform: translateX(-22px) scale(.988);
  opacity: 0;
  pointer-events: none;
  filter: blur(1px);
}

 .object-panel {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(calc(100vw - 56px), var(--object-panel-width));
  z-index: 20;
  display: flex;
  flex-direction: column;
  border-radius: 22px;
  overflow: hidden;
  visibility: hidden;
  transform: translateX(-18px) scale(.985);
  opacity: 0;
  pointer-events: none;
  will-change: transform, opacity;
  transition:
    transform 340ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 240ms ease,
    box-shadow 340ms cubic-bezier(0.22, 1, 0.36, 1),
    width var(--transition-base);
}

.object-panel[hidden] {
  display: flex !important;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.object-panel.is-open {
  visibility: visible;
  transform: translateX(0) scale(1);
  opacity: 1;
  pointer-events: auto;
  box-shadow: var(--shadow-card);
}

.object-panel-head {
  flex: 0 0 auto;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(47,56,60,.08);
  background: rgba(247,243,234,.86);
}

.object-panel-close {
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(47,56,60,.10);
  background: rgba(251,248,241,.48);
  color: var(--text-muted);
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.object-panel-close:hover {
  background: rgba(251,248,241,.78);
  color: var(--text-main);
  border-color: rgba(217,121,69,.52);
}

.object-panel-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 14px;
  scrollbar-width: thin;
  scrollbar-color: rgba(47,56,60,.20) transparent;
}

.object-panel-content .tg-card {
  max-width: none;
  padding: 0;
}

.object-panel-content .tg-photo img {
  height: 220px;
}

.object-panel-content .tg-card-head {
  gap: 10px;
}

.object-panel-content .tg-title {
  font-size: 24px;
}

.object-panel-content .tg-card-actions {
  flex-wrap: wrap;
}

.sidebar::-webkit-scrollbar,
.cats::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-thumb,
.cats::-webkit-scrollbar-thumb { background: rgba(47,56,60,.18); border-radius: 999px; }

.block {
  padding: 18px 18px 16px;
  border-bottom: 1px solid rgba(47,56,60,0.08);
}
.block:last-child { border-bottom: 0; }

.brand-block {
  display: flex;
  align-items: center;
  gap: 13px;
  padding-top: 20px;
}
.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: rgba(217,121,69,.17);
  color: var(--accent-apricot);
  font-size: 22px;
  line-height: 1;
}
.brand-title {
  font-size: 15px;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.brand-subtitle {
  margin-top: 3px;
  color: var(--text-muted);
  font-size: 13px;
}

.eyebrow {
  color: var(--accent-clay);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 760;
  font-size: 11px;
}

h1 {
  margin: 7px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 1.03;
  letter-spacing: -0.035em;
  color: var(--text-main);
}

p {
  margin: 0;
  color: var(--text-muted);
  line-height: 1.55;
  font-size: 14px;
}

.field { display: block; margin: 0 0 14px; }
.label {
  margin: 0 0 6px;
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 650;
}
.input,
.search-input,
select {
  width: 100%;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid rgba(47,56,60,0.12);
  border-radius: var(--radius-md);
  outline: none;
  background: rgba(251,248,241,.55);
  color: var(--text-main);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}
.input::placeholder { color: rgba(47,56,60,.42); }
.input:focus,
.search-input:focus,
select:focus {
  background: rgba(251,248,241,.78);
  border-color: rgba(217,121,69,.76);
  box-shadow: 0 0 0 4px rgba(217,121,69,.17);
}

.toggle {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 12px 0;
  color: var(--text-main);
  font-size: 13px;
  user-select: none;
}
.toggle input,
.cat input,
#territoryToggleBox input[type="checkbox"] {
  width: 17px;
  height: 17px;
  accent-color: var(--accent-apricot);
}

.rowBtns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  background: var(--bg-surface-soft);
  cursor: pointer;
  font-size: 13px;
  font-weight: 650;
  transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}
.btn:hover { transform: translateY(-1px); }
.btn-primary {
  background: var(--accent-apricot);
  color: #FBF8F1;
  box-shadow: 0 10px 22px rgba(217,121,69,.24);
}
.btn-primary:hover { background: var(--accent-clay); }
.btn-secondary {
  background: rgba(251,248,241,.48);
  border-color: rgba(47,56,60,.12);
  color: var(--text-main);
}
.btn-secondary:hover { border-color: rgba(217,121,69,.58); background: rgba(251,248,241,.75); }
.btn-secondary.is-active { border-color: rgba(200,101,54,.62); background: rgba(217,121,69,.20); box-shadow: 0 8px 18px rgba(200,101,54,.12); }
.btn-ghost {
  background: transparent;
  color: var(--text-muted);
  border-color: rgba(47,56,60,.10);
}
.btn-ghost:hover { color: var(--text-main); background: rgba(251,248,241,.45); }

.section-row,
.catsHead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
}
.hint { margin-top: 5px; font-size: 12px; color: var(--text-muted); line-height: 1.35; }

#shownCountBox,
#territoryToggleBox {
  margin: 0 0 12px !important;
  padding: 12px 13px !important;
  border: 1px solid rgba(47,56,60,.10) !important;
  border-radius: var(--radius-lg) !important;
  background: rgba(251,248,241,.46) !important;
  color: var(--text-main) !important;
  box-shadow: none !important;
}
#shownCountBox div:first-child,
#territoryToggleBox > div:first-child {
  color: var(--text-main) !important;
  font-size: 12px !important;
  letter-spacing: .06em;
  text-transform: uppercase;
}
#shownCount { color: var(--accent-terracotta); }

.cats {
  max-height: 34vh;
  overflow: auto;
  padding-right: 4px;
}
.catGroupHeader,
.groupHead {
  margin: 14px 0 7px !important;
  color: var(--text-muted) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.cat {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  padding: 8px 9px;
  border-radius: 13px;
  transition: background var(--transition-fast);
}
.cat:hover { background: rgba(251,248,241,.45); }

.cat.is-selected {
  background: rgba(251,248,241,.62);
  box-shadow: inset 0 0 0 1px rgba(47,56,60,.08);
}
.cat-study-emphasis {
  background: linear-gradient(90deg, rgba(200,101,54,.18) 0%, rgba(205,187,150,.10) 100%);
  box-shadow: inset 0 0 0 1px rgba(200,101,54,.18);
}
.cat-study-emphasis .catName {
  color: #C86536;
  font-weight: 600;
}
.cat-study-emphasis .catCount {
  background: rgba(200,101,54,.14);
  color: #C86536;
}
.cat-study-emphasis.is-selected {
  background: linear-gradient(90deg, rgba(200,101,54,.24) 0%, rgba(205,187,150,.14) 100%);
  box-shadow: inset 0 0 0 1px rgba(200,101,54,.24);
}
.cat-walk-emphasis {
  background: linear-gradient(90deg, rgba(111,130,121,.14) 0%, rgba(221,231,226,.10) 100%);
}
.cat-live-emphasis {
  background: linear-gradient(90deg, rgba(217,121,69,.14) 0%, rgba(217,121,69,.08) 100%);
}
.catName { min-width: 0; color: var(--text-main); font-size: 13px; line-height: 1.25; }
.catCount {
  min-width: 28px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(47,56,60,.06);
  color: var(--text-muted);
  font-size: 11px;
  text-align: center;
}
.info-note { color: var(--text-muted); }
.detailsBody { margin-top: 8px; font-size: 13px; line-height: 1.45; color: var(--text-muted); }
.muted { color: var(--text-muted); }

.mapWrap {
  position: relative;
  z-index: 1;
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr;
  background: var(--map-water);
}

.mapWrap::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 240ms ease;
  background:
    linear-gradient(90deg,
      rgba(47,56,60,.18) 0%,
      rgba(47,56,60,.12) 18%,
      rgba(47,56,60,.06) 38%,
      rgba(47,56,60,.00) 62%);
  z-index: 420;
}

.app-shell.has-object-card .mapWrap::after {
  opacity: 1;
}
.map-topbar {
  min-height: 72px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: rgba(247,243,234,.82);
  border-bottom: 1px solid rgba(47,56,60,.09);
  backdrop-filter: blur(14px);
  z-index: 500;
}
.map-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  letter-spacing: -.025em;
  color: var(--text-main);
}
.map-subtitle { margin-top: 2px; color: var(--text-muted); font-size: 13px; }
.legend-mini { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--text-muted); font-size: 12px; }
.legend-mini span { display: inline-flex; align-items: center; gap: 5px; padding: 7px 9px; border-radius: 999px; background: rgba(251,248,241,.42); }
.dot { width: 9px; height: 9px; display: inline-block; border-radius: 999px; }
.dot.history { background: var(--cat-history); }
.dot.nature { background: var(--cat-nature); }
.dot.food { background: var(--cat-food); }
.dot.routes { background: var(--cat-routes); }

#map { width: 100%; height: 100%; background: var(--map-water); }
.leaflet-container {
  /* фон виден во время загрузки тайлов и вокруг карты */
  background: linear-gradient(180deg, #D6E2E5 0%, var(--map-water) 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.leaflet-tile-pane {
  /* без hue-rotate: он и превращал воду в малиновую */
  filter: saturate(1) brightness(1) contrast(1);
}
.leaflet-control-attribution {
  background: rgba(247,243,234,.74) !important;
  color: rgba(47,56,60,.62) !important;
  border-radius: 10px 0 0 0;
}
.leaflet-control-zoom,
.leaflet-bar {
  border: 0 !important;
  box-shadow: var(--shadow-soft) !important;
}
.leaflet-control-zoom a,
.leaflet-bar a {
  background: rgba(247,243,234,.92) !important;
  color: var(--text-main) !important;
  border-color: rgba(47,56,60,.10) !important;
}
.leaflet-control-zoom a:hover,
.leaflet-bar a:hover { background: #FBF8F1 !important; color: var(--accent-clay) !important; }

.status {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 700;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(247,243,234,.88);
  border: 1px solid rgba(47,56,60,.10);
  box-shadow: var(--shadow-soft);
  color: var(--text-muted);
  font-size: 12px;
}

/* Year control created from app.js */
.tg-year-control {
  background: rgba(247,243,234,.92) !important;
  border: 1px solid rgba(47,56,60,.12) !important;
  border-radius: 18px !important;
  box-shadow: var(--shadow-card) !important;
  color: var(--text-main) !important;
}
.tg-year-control input[type="range"] { accent-color: var(--accent-apricot); }

/* Leaflet popups/cards */
.leaflet-popup-content { margin: 0; }
.leaflet-popup-content-wrapper {
  border-radius: 22px !important;
  background: var(--bg-surface) !important;
  color: var(--text-main) !important;
  box-shadow: var(--shadow-card) !important;
}
.leaflet-popup-tip { background: var(--bg-surface) !important; }
.leaflet-tooltip {
  border: 1px solid rgba(47,56,60,.12) !important;
  border-radius: 999px !important;
  background: rgba(247,243,234,.88) !important;
  color: var(--text-main) !important;
  box-shadow: 0 8px 20px rgba(47,56,60,.12) !important;
  font-size: 12px !important;
  font-weight: 650;
}

.districtLabelIcon,
.territoryLabelIcon {
  background: transparent;
  border: none;
}
.districtLabelIcon .district-label,
.territoryLabelIcon .territory-label,
.territory-label {
  transform: translate(-50%, -50%);
  transform-origin: 0 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  border: 0;
  backdrop-filter: none;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 400;
  line-height: 1.12;
  color: rgba(47,56,60,.38);
  letter-spacing: .006em;
  white-space: pre-line;
  pointer-events: none;
  user-select: none;
  text-align: center;
  text-shadow:
    0 1px 0 rgba(247,243,234,.78),
    1px 0 0 rgba(247,243,234,.62),
    -1px 0 0 rgba(247,243,234,.62),
    0 0 4px rgba(247,243,234,.58);
}
.territory-label--district {
  font-size: 11.7px;
  font-weight: 400;
  color: rgba(47,56,60,.40);
}
.territory-label--district-combo {
  font-size: 11.9px;
  color: rgba(47,56,60,.39);
}
.territory-label--district-combo-kasperovka {
  transform: translate(-58%, -42%);
}
.territory-label--district-combo-skaramangovka {
  transform: translate(-43%, -58%);
}
.territory-label--micro {
  font-size: 10.6px;
  font-weight: 400;
  color: rgba(47,56,60,.32);
  letter-spacing: 0;
}
.territory-label--quarter-number {
  font-size: 14.4px;
  font-weight: 500;
  color: rgba(47,56,60,.28);
  letter-spacing: .01em;
}



.tg-year-control.is-hidden {
  display: none !important;
}
.tg-year-range {
  position: relative;
  height: 30px;
  margin-top: 2px;
}
.tg-year-range__track,
.tg-year-range__fill {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 6px;
  border-radius: 999px;
  transform: translateY(-50%);
}
.tg-year-range__track {
  background: rgba(47,56,60,.10);
}
.tg-year-range__fill {
  left: calc(var(--from-pct, 0) * 1%);
  right: calc(100% - (var(--to-pct, 100) * 1%));
  background: var(--accent-apricot);
  box-shadow: 0 3px 8px rgba(217,121,69,.24);
}
.tg-year-range input[type="range"] {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 30px;
  margin: 0;
  background: transparent;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}
.tg-year-range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid #FBF8F1;
  background: var(--accent-clay);
  box-shadow: 0 3px 10px rgba(47,56,60,.18);
  pointer-events: auto;
  cursor: pointer;
}
.tg-year-range input[type="range"]::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid #FBF8F1;
  background: var(--accent-clay);
  box-shadow: 0 3px 10px rgba(47,56,60,.18);
  pointer-events: auto;
  cursor: pointer;
}
.tg-year-range input[type="range"]::-webkit-slider-runnable-track,
.tg-year-range input[type="range"]::-moz-range-track {
  background: transparent;
  height: 6px;
}


.selected-object-pin-wrap {
  width: 28px !important;
  height: 28px !important;
  background: transparent !important;
  border: 0 !important;
}

.selected-object-pin {
  position: relative;
  width: 28px;
  height: 28px;
}
.selected-object-pin::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50% 50% 50% 12%;
  transform: rotate(-45deg);
  background: var(--accent-terracotta);
  border: 2px solid rgba(251,248,241,.94);
  box-shadow: 0 10px 22px rgba(47,56,60,.22);
}
.selected-object-pin::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: rgba(251,248,241,.96);
  box-shadow: 0 0 0 1px rgba(251,248,241,.35);
}
.leaflet-interactive.tg-selected-outline {
  stroke: var(--accent-terracotta);
  stroke-width: 3px;
}
@media (max-width: 980px) {
  .app-shell { grid-template-columns: 1fr; grid-template-rows: minmax(260px, 42vh) minmax(0, 1fr); padding: 10px; gap: 10px; }
  .left-dock { order: 2; min-height: 48vh; }
  .sidebar { border-radius: 16px; }
  .object-panel { border-radius: 16px; }
  .mapWrap {
  position: relative;
  z-index: 1; order: 1; min-height: 42vh; border-radius: 22px; }
  .map-topbar { padding: 12px; min-height: auto; align-items: flex-start; }
  .mode-switch {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
  margin-left: 150px;
}
  .mode-btn { flex: 1; padding: 0 12px; font-size: 15px; }
  h1 { font-size: 26px; }
  .cats { max-height: 260px; }
}

.tg-map-point {
  filter: drop-shadow(0 8px 14px rgba(47,56,60,.20));
  transition: opacity var(--transition-fast), transform var(--transition-fast), filter var(--transition-fast);
}
.tg-map-point-study {
  filter: drop-shadow(0 12px 20px rgba(200,101,54,.26)) drop-shadow(0 3px 10px rgba(47,56,60,.14));
}
.tg-map-point-muted {
  filter: none;
}
.tg-object-study {
  filter: saturate(1.06);
}
.tg-object-muted {
  filter: none;
}


.mode-switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.mode-btn {
  min-height: 42px;
  padding: 0 22px;
  border: 1px solid rgba(47,56,60,0.08);
  border-radius: 999px;
  background: rgba(251,248,241,0.48);
  color: var(--text-muted);
  font: inherit;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition:
    background var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    transform var(--transition-fast);
}
.mode-btn:hover {
  color: var(--text-main);
  border-color: rgba(217,121,69,0.45);
  background: rgba(247,243,234,0.82);
  transform: translateY(-1px);
}
.mode-btn.is-active {
  color: #FBF8F1;
  background: var(--accent-apricot);
  border-color: var(--accent-apricot);
  box-shadow: 0 10px 22px rgba(217,121,69,0.22);
}
.mode-btn[data-mode="study"].is-active {
  background: var(--accent-terracotta);
  border-color: var(--accent-terracotta);
}
.mode-btn[data-mode="live"].is-active {
  background: var(--accent-clay);
  border-color: var(--accent-clay);
}
.dot { width: 8px; height: 8px; display: inline-block; border-radius: 999px; }
.dot.history { background: var(--cat-history); }
.dot.nature { background: var(--cat-nature); }
.dot.food { background: var(--cat-food); }
.dot.routes { background: var(--cat-routes); }

/* Territory layers: districts stay clickable on overview zooms; other layers only where readable */
.tg-territory-clickable {
  cursor: pointer;
  transition: fill-opacity 160ms ease, stroke-opacity 160ms ease;
}
.tg-territory-clickable:hover {
  filter: drop-shadow(0 4px 9px rgba(47,56,60,.10));
}
.tg-territory-card .tg-title {
  font-size: 21px;
}


/* Rich side card layout */
.object-panel-content {
  padding: 18px;
}

.object-panel-content .tg-object-card,
.object-panel-content .tg-editor-card {
  background: transparent;
}

.tg-card-inner {
  padding: 18px;
}

.tg-object-card .tg-card-inner {
  padding-top: 18px;
}

.tg-photo-hero {
  margin: 0;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid rgba(47,56,60,.08);
}

.tg-photo-hero img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  display: block;
}

.tg-object-head {
  align-items: flex-start;
}

.tg-object-head .tg-title {
  font-size: 28px;
  line-height: 1.05;
}

.tg-edit-main {
  flex: 0 0 auto;
}

.tg-edit-icon-btn {
  width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
}

.tg-edit-icon-btn svg {
  width: 18px;
  height: 18px;
  display: block;
  fill: currentColor;
}

.tg-address {
  margin-top: -2px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(47,56,60,.08);
}

.tg-cats-section {
  margin-top: 14px;
}

.tg-description-section {
  margin-top: 18px;
}

.tg-rich-text {
  color: var(--text-main);
  font-size: 14.5px;
  line-height: 1.62;
}

.tg-rich-text p {
  margin: 0 0 10px;
  color: var(--text-main);
}

.tg-rich-text h2,
.tg-rich-text h3,
.tg-rich-text h4 {
  margin: 16px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: -.025em;
  color: var(--text-main);
}

.tg-rich-text h2 { font-size: 23px; }
.tg-rich-text h3 { font-size: 19px; }
.tg-rich-text h4 { font-size: 16px; }

.tg-rich-text ul,
.tg-rich-text ol {
  margin: 8px 0 12px 18px;
  padding: 0;
}

.tg-rich-text li {
  margin: 4px 0;
}

.tg-rich-text blockquote {
  margin: 12px 0;
  padding: 10px 12px;
  border-left: 3px solid var(--accent-clay);
  background: rgba(217,121,69,.10);
  border-radius: 0 12px 12px 0;
  color: var(--text-main);
}

.tg-rich-text a {
  color: var(--accent-terracotta);
  text-decoration: none;
  border-bottom: 1px solid rgba(200,101,54,.28);
}

.tg-rich-text a:hover {
  border-bottom-color: rgba(200,101,54,.75);
}

/* Editor */
.tg-editor-title {
  margin: 4px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -.025em;
}

.tg-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px;
}

.tg-editor-toolbar button {
  min-height: 30px;
  padding: 0 9px;
  border-radius: 10px;
  border: 1px solid rgba(47,56,60,.12);
  background: rgba(251,248,241,.54);
  color: var(--text-main);
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.tg-editor-toolbar button:hover {
  background: #FBF8F1;
  border-color: rgba(217,121,69,.62);
}

.tg-edit-color {
  max-width: 160px;
}

.tg-edit-cats {
  min-height: 74px;
}

.tg-edit-description {
  min-height: 260px;
}

.tg-editor-help {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.35;
  color: var(--text-muted);
}


/* Card editor and manual object form */
.object-panel-content .tg-editor-card.manual-object-form {
  background: rgba(247,243,234,.96);
  border: 1px solid rgba(47,56,60,.10);
  border-radius: 22px;
  box-shadow: 0 14px 34px rgba(47,56,60,.08);
  padding: 18px;
}

.tg-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 16px;
}

.tg-section-title {
  margin-bottom: 4px;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 850;
  letter-spacing: .075em;
  text-transform: uppercase;
  color: var(--accent-terracotta);
}

.tg-edit-row {
  display: block;
  margin: 0 0 14px;
}

.tg-edit-title {
  margin: 0 0 6px;
  font-size: 12px;
  line-height: 1.25;
  font-weight: 850;
  color: var(--text-main);
}

.tg-edit-input,
.tg-edit-textarea {
  width: 100%;
  border: 1px solid rgba(47,56,60,.14);
  border-radius: 14px;
  background: rgba(251,248,241,.78);
  color: var(--text-main);
  outline: none;
  box-shadow: inset 0 1px 0 rgba(251,248,241,.62);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.tg-edit-input {
  min-height: 40px;
  padding: 0 12px;
}

.tg-edit-textarea {
  min-height: 110px;
  padding: 11px 12px;
  line-height: 1.45;
  resize: vertical;
}

.tg-edit-input:focus,
.tg-edit-textarea:focus {
  border-color: rgba(200,101,54,.58);
  background: #FBF8F1;
  box-shadow: 0 0 0 4px rgba(200,101,54,.10);
}

.tg-edit-color {
  max-width: 170px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: .02em;
}

.tg-edit-description {
  min-height: 190px;
}

.tg-edit-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(47,56,60,.08);
}

.tg-edit-btn {
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid rgba(47,56,60,.12);
  border-radius: 999px;
  background: rgba(251,248,241,.74);
  color: var(--text-main);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(47,56,60,.06);
  transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.tg-edit-btn:hover {
  transform: translateY(-1px);
  background: #FBF8F1;
  border-color: rgba(217,121,69,.70);
  box-shadow: 0 10px 22px rgba(47,56,60,.10);
}

.tg-edit-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
}

.tg-edit-btn-primary {
  border-color: var(--accent-terracotta);
  background: var(--accent-terracotta);
  color: #FBF8F1;
}

.tg-edit-btn-primary:hover {
  background: #C86536;
  border-color: #C86536;
}

.tg-edit-btn-danger {
  margin-left: auto;
  border-color: rgba(200,101,54,.26);
  background: rgba(200,101,54,.10);
  color: #C86536;
}

.tg-edit-btn-danger:hover {
  background: #C86536;
  border-color: #C86536;
  color: #FBF8F1;
}

.tg-edit-status {
  font-size: 12px;
  line-height: 1.3;
  color: var(--text-muted);
}

.tg-category-editor {
  border: 1px solid rgba(47,56,60,.10);
  border-radius: 16px;
  background: rgba(251,248,241,.48);
  padding: 10px;
}

.tg-category-editor-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 30px;
  margin-bottom: 9px;
}

.tg-category-editor-add {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
}

.tg-category-editor .cat-chip,
.tg-category-editor-list .cat-chip,
.tg-edit-cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 6px 8px 6px 10px;
  border: 1px solid rgba(200,101,54,.20);
  border-radius: 999px;
  background: rgba(217,121,69,.12);
  color: var(--text-main);
  font-size: 12px;
  font-weight: 760;
}

.tg-category-editor .cat-chip button,
.tg-category-editor-list .cat-chip button,
.tg-edit-cat-chip button {
  width: 18px;
  height: 18px;
  min-height: 18px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(47,56,60,.10);
  color: var(--text-main);
  cursor: pointer;
  font-size: 13px;
  line-height: 18px;
}

.tg-category-editor .cat-chip button:hover,
.tg-category-editor-list .cat-chip button:hover,
.tg-edit-cat-chip button:hover {
  background: rgba(200,101,54,.22);
}

.tg-category-editor-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 6px 8px 6px 10px;
  border: 1px solid rgba(200,101,54,.20);
  border-radius: 999px;
  background: rgba(217,121,69,.12);
  color: var(--text-main);
  font-size: 12px;
  font-weight: 760;
}

.tg-category-editor-remove {
  width: 18px;
  height: 18px;
  min-height: 18px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(47,56,60,.10);
  color: var(--text-main);
  cursor: pointer;
  font-size: 13px;
  line-height: 18px;
}

.tg-category-editor-remove:hover {
  background: rgba(200,101,54,.22);
}

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

.manual-object-form .tg-editor-help {
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(47,56,60,.045);
}


.top-page-switch {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

.top-page-btn {
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid rgba(47,56,60,.20);
  border-radius: 999px;
  background: rgba(251,248,241,.82);
  color: var(--text-main);
  font: inherit;
  font-size: 14px;
  font-weight: 750;
  letter-spacing: .01em;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(47,56,60,.10), inset 0 1px 0 rgba(251,248,241,.72);
  backdrop-filter: blur(10px);
  transition:
    background var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast),
    transform var(--transition-fast),
    box-shadow var(--transition-fast);
}

.top-page-btn:hover {
  transform: translateY(-2px);
  color: var(--text-main);
  background: rgba(251,248,241,.96);
  border-color: rgba(217,121,69,.70);
  box-shadow: 0 12px 26px rgba(47,56,60,.16), 0 0 0 3px rgba(217,121,69,.13);
}

.top-page-btn.is-active {
  background: var(--text-main);
  border-color: var(--text-main);
  color: #FBF8F1;
  box-shadow: 0 14px 30px rgba(47,56,60,.24), 0 0 0 3px rgba(217,121,69,.20);
}

.map-page-overlay {
  position: absolute;
  left: 18px;
  right: 18px;
  top: 88px;
  bottom: 18px;
  z-index: 760;
  display: flex;
  align-items: stretch;
  justify-content: center;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition:
    opacity 220ms ease,
    transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.map-page-overlay[hidden] {
  display: none;
}

.map-page-overlay.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.map-page-panel {
  width: min(980px, 100%);
  background: rgba(247,243,234,.94);
  border: 1px solid rgba(47,56,60,.10);
  border-radius: 26px;
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(18px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.map-page-head {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid rgba(47,56,60,.08);
}

.map-page-title {
  margin-top: 4px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  line-height: 1.05;
  letter-spacing: -.035em;
  color: var(--text-main);
}

.map-page-close {
  min-height: 34px;
  padding: 0 13px;
  border-radius: 999px;
  border: 1px solid rgba(47,56,60,.10);
  background: rgba(251,248,241,.55);
  color: var(--text-muted);
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
}

.map-page-close:hover {
  background: #FBF8F1;
  color: var(--text-main);
  border-color: rgba(217,121,69,.50);
}

.map-page-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 20px;
}

.map-page-lead {
  max-width: 720px;
  margin: 0 0 18px;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.55;
}

.map-page-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.map-page-card,
.map-alpha-group {
  border: 1px solid rgba(47,56,60,.09);
  border-radius: 18px;
  background: rgba(251,248,241,.48);
  padding: 14px;
}

.map-page-card-date {
  color: var(--accent-clay);
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: 11px;
  font-weight: 800;
  margin-bottom: 7px;
}

.map-page-card-title {
  color: var(--text-main);
  font-size: 16px;
  font-weight: 760;
  line-height: 1.2;
  margin-bottom: 7px;
}

.map-page-card-text {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.45;
}

.map-alpha-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.map-alpha-letter {
  color: var(--accent-terracotta);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  line-height: 1;
  margin-bottom: 8px;
}

.map-alpha-group a {
  display: block;
  padding: 5px 0;
  color: var(--text-main);
  text-decoration: none;
  border-bottom: 1px solid rgba(47,56,60,.06);
  font-size: 13.5px;
}

.map-alpha-group a:hover {
  color: var(--accent-terracotta);
}

@media (max-width: 980px) {
  .map-topbar {
    flex-direction: column;
    align-items: stretch;
  }

  .mode-switch {
    margin-left: 0;
    width: 100%;
  }

  .top-page-switch {
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
  }

  .top-page-btn {
    flex: 1;
    padding: 0 10px;
    font-size: 13px;
  }

  .map-page-overlay {
    left: 10px;
    right: 10px;
    top: 122px;
    bottom: 10px;
  }

  .map-page-grid,
  .map-alpha-list {
    grid-template-columns: 1fr;
  }

  .map-page-title {
    font-size: 25px;
  }
}


/* Fix: keep scenario buttons clear of the wide object card */
@media (min-width: 981px) {
  .map-topbar {
    justify-content: space-between !important;
    padding-left: calc(var(--object-panel-width) - var(--sidebar-width) + 2px) !important;
  }

  .map-topbar .mode-switch {
    margin-left: 0 !important;
    flex: 0 0 auto;
  }

  .map-topbar .top-page-switch {
    margin-left: auto !important;
    flex: 0 0 auto;
  }
}


.site-header-logo {
  flex: 0 0 94px;
  width: 94px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  opacity: .96;
  pointer-events: none;
}

.site-header-logo img {
  display: block;
  width: 94px;
  height: 34px;
  object-fit: contain;
}

@media (max-width: 980px) {
  .site-header-logo {
    flex-basis: 84px;
    width: 84px;
    height: 30px;
    margin-right: 2px;
  }

  .site-header-logo img {
    width: 84px;
    height: 30px;
  }
}


/* Fix: move logo and scenario buttons 24px left */
@media (min-width: 981px) {
  .map-topbar {
    padding-left: calc(var(--object-panel-width) - var(--sidebar-width) + 2px) !important;
  }
}


/* Hide Leaflet/CARTO attribution and zoom controls in the map UI */
.leaflet-control-attribution,
.leaflet-control-zoom {
  display: none !important;
}


/* Make left panel scrollbar shorter and less intrusive */
.sidebar::-webkit-scrollbar-track,
.object-panel-content::-webkit-scrollbar-track {
  background: transparent;
  margin-block: 18px;
}

.sidebar::-webkit-scrollbar-thumb,
.object-panel-content::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  background-clip: content-box;
}

.sidebar,
.object-panel-content {
  scrollbar-gutter: stable;
}


/* Sidebar scrollbar repair: inset scrollbar inside rounded panel */
.sidebar-scroll {
  height: calc(100% - 22px);
  margin: 11px 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(47,56,60,.18) transparent;
}

.sidebar-scroll::-webkit-scrollbar {
  width: 8px;
}

.sidebar-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar-scroll::-webkit-scrollbar-thumb {
  background: rgba(47,56,60,.18);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: content-box;
}

.sidebar-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(47,56,60,.26);
  background-clip: content-box;
}

.sidebar::-webkit-scrollbar {
  width: 0;
  height: 0;
}

/* Keep the object card scroll inset too */
.object-panel-content::-webkit-scrollbar-track {
  background: transparent;
  margin-block: 14px;
}


/* Hide Leaflet attribution and zoom controls */
.leaflet-control-attribution,
.leaflet-control-zoom {
  display: none !important;
}


/* Card category/layout refinement */
.tg-object-head .tg-title {
  color: var(--accent-clay);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 800;
  letter-spacing: .01em;
}

.tg-card-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(47,56,60,.08);
}

.tg-cats-bottom {
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid rgba(47,56,60,.08);
}

.tg-chip-clickable {
  border: 1px solid rgba(47,56,60,.08);
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition:
    background var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast),
    transform var(--transition-fast);
}

.tg-chip-clickable:hover {
  transform: translateY(-1px);
  background: rgba(217,121,69,.16);
  border-color: rgba(217,121,69,.40);
  color: var(--accent-terracotta);
}

/* Multiple selected categories on the map */
.category-focus-box {
  position: absolute;
  left: 16px;
  bottom: 18px;
  z-index: 735;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  max-width: calc(100% - 32px);
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  padding: 0;
  pointer-events: auto;
  transition: left 260ms cubic-bezier(0.22, 1, 0.36, 1), max-width 260ms cubic-bezier(0.22, 1, 0.36, 1), bottom 180ms ease;
}

@media (min-width: 981px) {
  .app-shell.has-object-card .mapWrap .category-focus-box {
    left: calc(var(--object-panel-width) - var(--sidebar-width) + 28px) !important;
    max-width: calc(100% - (var(--object-panel-width) - var(--sidebar-width)) - 56px) !important;
  }

  .category-focus-box.is-shifted {
    left: 198px;
    max-width: calc(100% - 232px);
  }
}

.category-focus-box[hidden] {
  display: none;
}

.category-focus-chip {
  --category-chip-fill: rgba(247,243,234,.92);
  --category-chip-accent: var(--accent-terracotta);
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 36px;
  max-width: 300px;
  padding: 7px 8px 7px 11px;
  border-radius: 13px;
  border: 1px solid rgba(47,56,60,.10);
  border-left: 4px solid var(--category-chip-accent);
  background:
    linear-gradient(180deg, rgba(251,248,241,.64), rgba(247,243,234,.22)),
    var(--category-chip-fill);
  box-shadow: 0 10px 24px rgba(47,56,60,.10);
  backdrop-filter: blur(12px);
  color: var(--text-main);
  text-align: left;
  transition:
    transform var(--transition-fast),
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    background var(--transition-fast);
}

.category-focus-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(47,56,60,.16);
  box-shadow: 0 14px 30px rgba(47,56,60,.13);
}

.category-focus-chip .category-focus-name {
  color: var(--text-main);
  font-weight: 760;
  letter-spacing: .01em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(251,248,241,.70);
}

.category-focus-close {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(47,56,60,.08);
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: rgba(251,248,241,.54);
  color: var(--category-chip-accent);
  font: inherit;
  font-size: 17px;
  font-weight: 820;
  line-height: 1;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast);
}

.category-focus-close:hover,
.category-focus-close:focus-visible {
  background: var(--category-chip-accent);
  border-color: var(--category-chip-accent);
  color: #FBF8F1;
  outline: none;
  transform: translateY(-1px);
}

.category-logic-chip {
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 46px;
  height: 30px;
  padding: 0 9px;
  border-radius: 11px;
  border: 1px solid rgba(47,56,60,.12);
  background: rgba(247,243,234,.88);
  color: var(--text-muted);
  box-shadow: 0 8px 20px rgba(47,56,60,.08);
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .045em;
  transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}

.category-logic-chip:hover,
.category-logic-chip:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(217,121,69,.42);
  background: rgba(240,190,152,.34);
  color: var(--accent-terracotta);
  outline: none;
}

.category-logic-chip.is-and {
  color: var(--accent-terracotta);
  background: rgba(217,121,69,.14);
  border-color: rgba(217,121,69,.30);
}

.category-logic-chip.is-or {
  color: var(--ui-green-dark);
  background: rgba(221,231,226,.78);
  border-color: rgba(111,130,121,.34);
}

.category-logic-symbol {
  font-size: 14px;
  line-height: 1;
  opacity: .84;
}

.tg-map-point-focus {
  filter:
    drop-shadow(0 0 12px rgba(200,101,54,.36))
    drop-shadow(0 10px 20px rgba(47,56,60,.22));
}

.tg-object-focus {
  filter: saturate(1.12);
}

@media (max-width: 980px) {
  .category-focus-box {
    left: 12px;
    right: 12px;
    top: 128px;
    max-width: none;
  }
}

/* Admin settings / import */
.settings-gear-btn {
  min-width: 44px;
  padding-inline: 13px;
  font-size: 18px;
  line-height: 1;
}

.settings-panel {
  display: grid;
  gap: 16px;
}

.settings-card {
  border: 1px solid rgba(47,56,60,.10);
  border-radius: 20px;
  background: rgba(251,248,241,.72);
  box-shadow: 0 12px 36px rgba(47,56,60,.08);
  padding: 18px;
}

.settings-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}

.settings-card h3 {
  margin: 4px 0 0;
  color: var(--text-main);
  font-size: 18px;
  line-height: 1.2;
}

.settings-note {
  margin: 8px 0 14px;
  color: rgba(47,56,60,.76);
  font-size: 14px;
  line-height: 1.45;
}

.settings-note code {
  padding: 1px 5px;
  border-radius: 7px;
  background: rgba(47,56,60,.07);
  color: var(--accent-terracotta);
}

.settings-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}

.settings-row-between {
  justify-content: space-between;
}

.settings-file-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(47,56,60,.14);
  background: rgba(247,243,234,.86);
  color: var(--text-main);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.settings-file-label input {
  max-width: 230px;
  font-size: 12px;
}

.settings-textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 220px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(47,56,60,.14);
  border-radius: 16px;
  resize: vertical;
  background: rgba(251,248,241,.82);
  color: var(--text-main);
  font: 13px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  outline: none;
}

.settings-textarea:focus {
  border-color: rgba(200,101,54,.45);
  box-shadow: 0 0 0 3px rgba(200,101,54,.12);
}

.settings-mode {
  display: grid;
  gap: 6px;
  color: rgba(47,56,60,.82);
  font-size: 14px;
}

.settings-mode label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-danger {
  background: #C86536;
  color: #FBF8F1;
  border-color: rgba(200,101,54,.25);
}

.btn-danger:hover {
  background: #C86536;
}

.settings-result {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 13px;
  line-height: 1.4;
}

.settings-result.is-ok {
  border: 1px solid rgba(89,109,100,.22);
  background: rgba(89,109,100,.10);
  color: #596D64;
}

.settings-result.is-error {
  border: 1px solid rgba(200,101,54,.24);
  background: rgba(200,101,54,.10);
  color: #C86536;
}

.settings-danger-zone {
  border-color: rgba(200,101,54,.20);
}

/* Manual object creation */
.manual-create-active{cursor:crosshair!important;}
.leaflet-interactive.manual-create-point{
  cursor:pointer;
  filter: drop-shadow(0 3px 7px rgba(47,56,60,.18));
}
.leaflet-interactive.manual-create-point:hover{
  stroke-width:3px;
}
.manual-create-control{
  min-width:286px;
  max-width:340px;
  padding:14px 14px 12px;
  border:1px solid rgba(47,56,60,.16);
  border-radius:18px;
  background:rgba(247,243,234,.96);
  box-shadow:0 18px 42px rgba(47,56,60,.18);
  color:var(--text-main,#2F383C);
  font-family:inherit;
}
.manual-create-title{
  font-weight:850;
  font-size:14px;
  margin-bottom:6px;
}
.manual-create-text{
  font-size:13px;
  line-height:1.38;
  color:var(--text-muted,#6F7A76);
  margin-bottom:10px;
}
.manual-create-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.manual-create-actions button{
  border:1px solid rgba(47,56,60,.12);
  border-radius:12px;
  min-height:32px;
  padding:0 10px;
  background:#FBF8F1;
  color:var(--text-main,#2F383C);
  cursor:pointer;
  font-weight:750;
  font-size:12px;
}
.manual-create-actions button[data-manual-finish]{
  border-color:var(--accent-apricot,#D97945);
  background:var(--accent-apricot,#D97945);
  color:#FBF8F1;
}
.manual-create-actions button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.manual-create-hint{
  margin-top:8px;
  font-size:11.5px;
  color:var(--text-soft,#6F7A76);
}
.manual-object-form .tg-editor-title{
  margin:0;
}

/* Study sliders: only one active at a time */
.tg-study-slider-row {
  padding: 8px 0 10px;
  border-top: 1px solid rgba(47,56,60,.08);
}
.tg-study-slider-row:first-child { border-top: 0; padding-top: 0; }
.tg-study-slider-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  font-weight: 800;
  font-size: 12px;
  color: #2F383C;
}
.tg-study-slider-label {
  font-size: 12px;
  color: #5A666C;
  margin-bottom: 8px;
}
.tg-study-slider-check {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
  font-size: 12px;
  color: #5A666C;
}
.tg-study-hidden-check {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(47,56,60,.08);
  font-size: 12px;
  line-height: 1.25;
  color: #5A666C;
}
.tg-study-hidden-check input {
  margin-top: 1px;
  accent-color: var(--accent-terracotta);
}
.tg-study-hidden-check span {
  max-width: 200px;
}

.tg-study-slider-badge {
  border: 1px solid rgba(47,56,60,.12);
  border-radius: 999px;
  padding: 3px 8px;
  background: rgba(251,248,241,.62);
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.tg-study-slider-row.is-active .tg-study-slider-badge {
  background: var(--accent-terracotta);
  border-color: var(--accent-terracotta);
  color: #FBF8F1;
}
.tg-study-slider-row.is-muted {
  opacity: .62;
}
.tg-study-slider-row.is-muted input[type="range"] {
  filter: grayscale(.35);
}
.tg-single-range input[type="range"] {
  width: 100%;
  accent-color: var(--accent-terracotta);
}
.mode-btn { position: relative; }
.mode-btn.is-modified::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 8px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #FBF8F1;
  box-shadow: 0 0 0 2px rgba(47,56,60,.10), 0 0 0 4px rgba(217,121,69,.36);
}
.mode-btn.is-active.is-modified::after {
  background: var(--accent-straw);
  box-shadow: 0 0 0 2px rgba(251,248,241,.9), 0 5px 12px rgba(47,56,60,.22);
}
.manual-create-control.is-invalid {
  border-color: rgba(200,101,54,.42);
  box-shadow: 0 18px 42px rgba(200,101,54,.16);
}
.manual-create-control.is-invalid .manual-create-text {
  color: #C86536;
  font-weight: 700;
}
.manual-create-control.is-invalid .manual-create-hint::after {
  content: " Проверь самопересечения и дубли точек.";
}


/* UI polish: align left brand header with top map toolbar */
.brand-block {
  min-height: 72px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.brand-title {
  font-size: 17px;
  letter-spacing: .04em;
}

.brand-subtitle {
  margin-top: 4px;
  font-size: 13px;
}

.map-topbar {
  min-height: 72px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.map-topbar .mode-switch,
.map-topbar .top-page-switch {
  align-self: center;
}

@media (min-width: 981px) {
  .map-topbar {
    min-height: 74px;
  }
}


/* Card polish: close button, bottom-pinned categories/footer, icon alignment */
.object-panel-head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 60px;
  padding: 12px 14px;
}

.object-panel-close {
  width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  border-radius: 999px;
  font-size: 24px;
  line-height: 1;
  font-weight: 400;
}

.object-panel-content {
  display: flex;
  flex-direction: column;
}

.object-panel-content .tg-object-card,
.object-panel-content .tg-editor-card {
  min-height: 100%;
}

.tg-card-inner {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.tg-cats-bottom {
  margin-top: auto;
}

.tg-card-footer {
  flex: 0 0 auto;
}

.tg-edit-icon-btn {
  width: 24px;
  height: 24px;
  min-height: 24px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--text-muted);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tg-edit-icon-btn:hover {
  background: transparent;
  color: var(--accent-terracotta);
  transform: none;
  box-shadow: none;
}

.tg-edit-icon-btn svg {
  width: 20px;
  height: 20px;
  transform: translate(-0.5px, -0.5px);
}

.tg-photo-caption {
  padding: 8px 18px 10px;
  color: var(--text-muted);
  font-size: 12.5px;
  line-height: 1.35;
  border-top: 1px solid rgba(47,56,60,.06);
  background: rgba(251,248,241,.4);
}

.tg-photo-caption em {
  font-style: italic;
}


/* Card polish fix: back button, true bottom pinning, plain edit icon */
.object-panel-head {
  justify-content: flex-start;
  min-height: 58px;
  padding: 12px 18px;
}

.object-panel-close {
  width: auto;
  height: 34px;
  min-height: 34px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
  font-weight: 650;
}

.object-panel-content > .tg-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.object-panel-content .tg-object-card,
.object-panel-content .tg-editor-card {
  flex: 1 0 auto;
}

.tg-card-inner {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.tg-cats-bottom {
  margin-top: auto !important;
}

.tg-card-footer {
  margin-top: 14px;
}

.tg-edit-icon-btn {
  appearance: none;
  -webkit-appearance: none;
  border: 0 !important;
  outline: none;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  width: 22px;
  height: 22px;
  min-height: 22px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  cursor: pointer;
}

.tg-edit-icon-btn:hover {
  color: var(--accent-terracotta);
  transform: none !important;
}

.tg-edit-icon-btn svg {
  width: 20px;
  height: 20px;
  display: block;
  overflow: visible;
}

/* Left navigation rail: main modes moved out of the map header */
:root {
  --rail-width: 78px;
  --rail-accent: var(--accent-terracotta);
  --rail-sage: #6F8279;
  --rail-teal: #6F8279;
  --rail-blue: #5A666C;
}

.app-shell {
  grid-template-columns: var(--rail-width) var(--dock-width) minmax(0, 1fr);
  gap: 14px;
}

.side-rail {
  position: relative;
  z-index: 9;
  min-height: 0;
  height: 100%;
  border: 1px solid rgba(47,56,60,.10);
  border-radius: 22px;
  background: rgba(247,243,234,.90);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(16px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 14px 8px;
  overflow: hidden;
}

.side-rail::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 6%, rgba(217,121,69,.13), transparent 22%),
    linear-gradient(180deg, rgba(251,248,241,.46), rgba(251,248,241,0));
}

.rail-nav-btn,
.side-rail .mode-btn {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 76px;
  padding: 0;
  border: 0;
  border-radius: 16px;
  background: transparent;
  box-shadow: none;
  color: var(--rail-teal);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  font: inherit;
  transition: transform var(--transition-fast), color var(--transition-fast), background var(--transition-fast);
}

.rail-nav-btn:hover,
.side-rail .mode-btn:hover {
  transform: translateY(-1px);
  background: rgba(251,248,241,.28);
  color: var(--text-main);
  border: 0;
  box-shadow: none;
}

.rail-icon {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: var(--rail-teal);
  background:
    radial-gradient(circle at 35% 25%, rgba(251,248,241,.95), rgba(247,243,234,.64)),
    linear-gradient(180deg, rgba(251,248,241,.88), rgba(247,243,234,.70));
  border: 1px solid rgba(47,56,60,.08);
  box-shadow: 0 10px 24px rgba(47,56,60,.10), inset 0 1px 0 rgba(251,248,241,.75);
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.rail-icon svg {
  width: 31px;
  height: 31px;
  display: block;
  overflow: visible;
}

.rail-label {
  color: var(--text-main);
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.01em;
  text-align: center;
}

.rail-nav-btn.is-active .rail-icon,
.side-rail .mode-btn.is-active .rail-icon,
.side-rail .rail-page-btn.is-active .rail-icon {
  color: #FBF8F1;
  background:
    radial-gradient(circle at 35% 22%, rgba(251,248,241,.18), transparent 34%),
    linear-gradient(160deg, var(--accent-terracotta), var(--accent-clay));
  border-color: rgba(200,101,54,.88);
  box-shadow: 0 14px 28px rgba(200,101,54,.28), inset 0 1px 0 rgba(251,248,241,.22);
}

.rail-nav-btn.is-active .rail-label,
.side-rail .mode-btn.is-active .rail-label,
.side-rail .rail-page-btn.is-active .rail-label {
  color: var(--text-main);
}

.side-rail .mode-btn[data-mode="study"].is-active .rail-icon {
  background: linear-gradient(160deg, #C86536, #8D6A73);
}

.side-rail .mode-btn[data-mode="live"].is-active .rail-icon {
  background: linear-gradient(160deg, #6F8279, #6F8279);
}

.side-rail .rail-page-btn.is-active .rail-icon {
  background: linear-gradient(160deg, #6F8279, #5A666C);
}

.side-rail .mode-btn.is-modified::after {
  top: 6px;
  right: 9px;
  width: 8px;
  height: 8px;
  background: var(--accent-straw);
  box-shadow: 0 0 0 2px rgba(251,248,241,.95), 0 5px 12px rgba(47,56,60,.20);
}

.map-logo-slot {
  justify-content: flex-start;
  flex: 0 0 auto;
}

.map-logo-slot .site-header-logo {
  margin-right: 0;
}

@media (max-width: 980px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .side-rail {
    display: none;
  }
}


/* Rail buttons now use prepared PNG pairs: *_0 normal, *_1 pressed */
.rail-icon {
  width: 58px;
  height: 58px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible;
}

.rail-icon svg {
  display: none !important;
}

.rail-img {
  width: 46px;
  height: 46px;
  object-fit: contain;
  display: block;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 8px 16px rgba(47,56,60,.12));
}

.rail-img-on {
  display: none;
}

.rail-nav-btn.is-active .rail-img-off,
.side-rail .mode-btn.is-active .rail-img-off,
.side-rail .rail-page-btn.is-active .rail-img-off {
  display: none;
}

.rail-nav-btn.is-active .rail-img-on,
.side-rail .mode-btn.is-active .rail-img-on,
.side-rail .rail-page-btn.is-active .rail-img-on {
  display: block;
}

.rail-nav-btn,
.side-rail .mode-btn {
  min-height: 86px;
  gap: 3px;
}

.rail-nav-btn:hover .rail-img,
.side-rail .mode-btn:hover .rail-img {
  filter: drop-shadow(0 10px 20px rgba(47,56,60,.16));
}

.rail-nav-btn:active .rail-img,
.side-rail .mode-btn:active .rail-img {
  transform: translateY(1px) scale(.985);
}

.side-rail .mode-btn.is-modified::after {
  top: 8px;
  right: 6px;
}


/* Rail compact mode: tighter vertical spacing and icon-only buttons */
.side-rail {
  gap: 4px;
  padding: 12px 6px;
}

.rail-nav-btn,
.side-rail .mode-btn {
  min-height: 72px;
  gap: 0;
  padding: 0;
  justify-content: center;
  background: transparent !important;
  box-shadow: none !important;
}

.rail-nav-btn:hover,
.side-rail .mode-btn:hover,
.rail-nav-btn:focus-visible,
.side-rail .mode-btn:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  outline: none;
}

.rail-label {
  display: none !important;
}

.rail-icon {
  width: 60px;
  height: 60px;
}

.rail-img {
  width: 64px;
  height: 64px;
}


/* Top header navigation: key-like tabs, active = sunken */
.top-page-switch {
  gap: 10px;
  margin-left: auto;
  padding-left: 12px;
}

.top-page-btn {
  position: relative;
  min-height: 42px;
  padding: 0 17px;
  border: 1px solid rgba(47,56,60,.16);
  border-bottom-color: rgba(47,56,60,.22);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(251,248,241,.95), rgba(247,243,234,.94));
  color: var(--text-main);
  box-shadow:
    0 2px 0 rgba(47,56,60,.08),
    0 7px 18px rgba(47,56,60,.08),
    inset 0 1px 0 rgba(251,248,241,.95);
  backdrop-filter: blur(10px);
}

.top-page-btn:hover {
  transform: translateY(-1px);
  color: var(--text-main);
  background: linear-gradient(180deg, rgba(251,248,241,.98), rgba(247,243,234,.96));
  border-color: rgba(217,121,69,.58);
  box-shadow:
    0 3px 0 rgba(47,56,60,.08),
    0 10px 22px rgba(47,56,60,.10),
    0 0 0 3px rgba(217,121,69,.08),
    inset 0 1px 0 rgba(251,248,241,.98);
}

.top-page-btn.is-active {
  transform: translateY(1px);
  background: linear-gradient(180deg, rgba(221,231,226,.98), rgba(221,231,226,.95));
  color: #5A666C;
  border-color: rgba(111,130,121,.34);
  box-shadow:
    inset 0 2px 5px rgba(47,56,60,.12),
    inset 0 1px 0 rgba(251,248,241,.64),
    0 1px 0 rgba(251,248,241,.65);
}

.top-page-btn[data-page="events"].is-active {
  background: linear-gradient(180deg, rgba(240,190,152,.95), rgba(217,121,69,.92));
  color: #FBF8F1;
  border-color: rgba(200,101,54,.72);
  box-shadow:
    inset 0 2px 5px rgba(200,101,54,.20),
    inset 0 1px 0 rgba(251,248,241,.22),
    0 1px 0 rgba(251,248,241,.55);
}

.top-page-btn.settings-gear-btn {
  width: 42px;
  min-width: 42px;
  padding: 0;
  border-radius: 14px;
  font-size: 18px;
}


/* Top navigation as prepared PNG image pairs: *_0 normal, *_1 pressed */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.top-nav-image-switch {
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 10px;
  margin-left: 14px !important;
  margin-right: auto !important;
  padding-left: 0;
}

.top-nav-image-switch .top-img-btn {
  min-height: 0;
  height: auto;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  color: inherit;
  box-shadow: none !important;
  backdrop-filter: none;
  overflow: visible;
  transform: none;
}

.top-nav-image-switch .top-img-btn:hover,
.top-nav-image-switch .top-img-btn:focus-visible {
  transform: translateY(-1px);
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none;
}

.top-nav-image-switch .top-img-btn:active {
  transform: translateY(1px);
}

.top-img-wrap {
  display: block;
  position: relative;
  line-height: 0;
}

.top-nav-img {
  display: block;
  width: auto;
  height: 44px;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 7px 14px rgba(47,56,60,.10));
  transition: filter var(--transition-fast), transform var(--transition-fast);
}

.top-img-btn:hover .top-nav-img {
  filter: drop-shadow(0 10px 18px rgba(47,56,60,.14));
}

.top-nav-img-on {
  display: none;
}

.top-img-btn.is-active .top-nav-img-off {
  display: none;
}

.top-img-btn.is-active .top-nav-img-on {
  display: block;
}

.top-nav-image-switch .settings-gear-btn {
  width: auto;
  min-width: 0;
}

.top-nav-image-switch .settings-gear-btn .top-nav-img {
  height: 44px;
}

@media (max-width: 980px) {
  .top-nav-image-switch {
    width: 100%;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .top-nav-img {
    height: 40px;
  }
}


/* Top navigation alignment: coordinates before logo, buttons closer to logo */
.map-logo-slot {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  flex: 0 0 auto;
}

.map-coordinates {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(251,248,241,.48);
  border: 1px solid rgba(47,56,60,.07);
  color: rgba(47,56,60,.58);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .02em;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(251,248,241,.70);
}

.map-coordinates span + span::before {
  content: "·";
  margin-right: 6px;
  color: rgba(200,101,54,.72);
}

.top-nav-image-switch {
  margin-left: 4px !important;
  gap: 8px;
}

@media (min-width: 981px) {
  .map-topbar {
    justify-content: flex-start !important;
  }
}

@media (max-width: 980px) {
  .map-coordinates {
    display: none;
  }
}


/* Top nav: keep settings slightly separated on the right */
.top-nav-image-switch .settings-gear-btn {
  margin-left: 20px;
}

@media (max-width: 980px) {
  .top-nav-image-switch .settings-gear-btn {
    margin-left: 10px;
  }
}


/* Topbar final alignment: coordinates left, main buttons closer to logo, settings isolated right */
@media (min-width: 981px) {
  .map-topbar {
    justify-content: flex-start !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .map-topbar .mode-switch.map-logo-slot {
    margin-right: 10px;
  }

  .map-topbar .top-page-switch.top-nav-image-switch {
    flex: 1 1 auto;
    justify-content: flex-start;
    margin-left: 8px !important;
    gap: 8px;
  }

  .top-nav-image-switch .settings-gear-btn {
    margin-left: auto;
  }
}

.map-coordinates {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: rgba(251,248,241,.22);
}

/* Floating city achievements / daily topics */
.achievement-toasts {
  position: absolute;
  left: 22px;
  top: 92px;
  z-index: 730;
  width: min(410px, calc(100% - 44px));
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

.achievement-toasts[hidden] { display: none; }

.achievement-toast {
  pointer-events: auto;
  display: grid;
  grid-template-columns: 72px minmax(0,1fr) 34px;
  align-items: center;
  gap: 14px;
  min-height: 86px;
  padding: 12px 14px 12px 12px;
  border-radius: 24px;
  background: rgba(251,248,241,.92);
  border: 1px solid rgba(47,56,60,.08);
  box-shadow: 0 18px 40px rgba(47,56,60,.13), inset 0 1px 0 rgba(251,248,241,.78);
  backdrop-filter: blur(14px);
  cursor: pointer;
  transform: translateY(0);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.achievement-toast:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 48px rgba(47,56,60,.17), inset 0 1px 0 rgba(251,248,241,.86);
}

.achievement-icon {
  width: 70px;
  height: 62px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: rgba(111,130,121,.13);
  box-shadow: inset 0 1px 0 rgba(251,248,241,.72);
}

.achievement-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.achievement-emoji {
  font-size: 32px;
  line-height: 1;
  filter: drop-shadow(0 5px 7px rgba(47,56,60,.12));
}

.achievement-topic {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--accent-clay);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 10.5px;
  font-weight: 850;
  margin-bottom: 4px;
}

.achievement-topic::before {
  content: "✦";
  letter-spacing: 0;
  opacity: .86;
}

.achievement-title {
  color: var(--text-main);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.achievement-close {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: rgba(251,248,241,.62);
  color: rgba(47,56,60,.55);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow: inset 0 1px 0 rgba(251,248,241,.75), 0 4px 12px rgba(47,56,60,.08);
}

.achievement-close:hover { color: var(--accent-terracotta); background: #FBF8F1; }

.achievement-toast.is-eco { border-color: rgba(111,130,121,.30); }
.achievement-toast.is-eco .achievement-icon { background: linear-gradient(160deg, rgba(111,130,121,.18), rgba(221,231,226,.78)); }
.achievement-toast.is-eco .achievement-topic { color: #6F8279; }

.achievement-toast.is-improve { border-color: rgba(217,121,69,.28); }
.achievement-toast.is-improve .achievement-icon { background: linear-gradient(160deg, rgba(217,121,69,.18), rgba(247,243,234,.75)); }
.achievement-toast.is-improve .achievement-topic { color: var(--accent-terracotta); }

.achievement-toast.is-utility { border-color: rgba(111,130,121,.26); }
.achievement-toast.is-utility .achievement-icon { background: linear-gradient(160deg, rgba(111,130,121,.16), rgba(214,226,229,.76)); }
.achievement-toast.is-utility .achievement-topic { color: #6F8279; }

.achievement-toast.is-transport { border-color: rgba(200,101,54,.24); }
.achievement-toast.is-transport .achievement-icon { background: linear-gradient(160deg, rgba(200,101,54,.16), rgba(247,243,234,.70)); }
.achievement-toast.is-transport .achievement-topic { color: #C86536; }

.achievement-toast.is-culture { border-color: rgba(217,160,82,.28); }
.achievement-toast.is-culture .achievement-icon { background: linear-gradient(160deg, rgba(217,160,82,.16), rgba(247,243,234,.78)); }
.achievement-toast.is-culture .achievement-topic { color: #D6A34A; }

/* Article view and editor */
.article-view { max-width: 860px; margin: 0 auto; }
.article-hero { border-radius: 24px; overflow: hidden; margin-bottom: 18px; box-shadow: var(--shadow-soft); }
.article-hero img { width: 100%; max-height: 360px; object-fit: cover; display: block; }
.article-topic { color: var(--accent-clay); text-transform: uppercase; letter-spacing: .14em; font-size: 11px; font-weight: 850; margin-bottom: 8px; }
.article-view h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(30px,4vw,48px); line-height: 1.03; letter-spacing: -.04em; color: var(--text-main); }
.article-subtitle { margin: 12px 0 0; color: var(--text-muted); font-size: 17px; line-height: 1.45; max-width: 720px; }
.article-chip-row { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0 10px; }
.article-chip-row span { padding: 7px 10px; border-radius: 999px; background: rgba(47,56,60,.06); color: var(--text-muted); font-size: 12.5px; font-weight: 650; }
.article-body { margin-top: 22px; font-size: 16px; line-height: 1.65; }
.article-meta-box { margin-top: 24px; padding: 14px; border-radius: 18px; background: rgba(47,56,60,.045); color: var(--text-muted); font-size: 13px; line-height: 1.45; display: grid; gap: 8px; }
.article-meta-box button { margin: 2px 4px 2px 0; border: 1px solid rgba(47,56,60,.10); border-radius: 999px; padding: 4px 8px; background: #FBF8F1; color: var(--text-main); cursor: pointer; }
.article-editor-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.settings-field { display: grid; gap: 6px; color: var(--text-muted); font-size: 12px; font-weight: 700; }
.settings-field span { color: var(--text-muted); }
.article-editor-wide { grid-column: 1 / -1; }
.settings-textarea-small { min-height: 88px; }
.article-list { margin-top: 14px; display: grid; gap: 8px; }
.article-list-title { color: var(--text-main); font-weight: 800; font-size: 13px; margin-top: 4px; }
.article-list-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 16px; background: rgba(251,248,241,.48); border: 1px solid rgba(47,56,60,.07); }
.article-list-item b { display: block; color: var(--text-main); font-size: 13px; }
.article-list-item span { display: block; color: var(--text-muted); font-size: 12px; margin-top: 2px; }

@media (max-width: 980px) {
  .achievement-toasts { top: 132px; left: 12px; width: calc(100% - 24px); }
  .achievement-toast { grid-template-columns: 58px minmax(0,1fr) 30px; border-radius: 20px; }
  .achievement-icon { width: 56px; height: 52px; border-radius: 16px; }
  .achievement-title { font-size: 16px; }
  .article-editor-grid { grid-template-columns: 1fr; }
}

/* Achievement toasts v2: real HTML cards, not image plaques */
.achievement-toasts {
  left: 22px;
  top: 84px;
  width: min(430px, calc(100% - 44px));
  gap: 9px;
}

.achievement-toast {
  grid-template-columns: 62px minmax(0,1fr) 30px;
  min-height: 74px;
  padding: 10px 12px 10px 10px;
  border-radius: 20px;
  background: rgba(251,248,241,.94);
  border: 1px solid rgba(47,56,60,.07);
  box-shadow: 0 14px 34px rgba(47,56,60,.12), inset 0 1px 0 rgba(251,248,241,.82);
}

.achievement-toast::before {
  content: "";
  position: absolute;
  left: 68px;
  top: 14px;
  bottom: 14px;
  border-left: 1px dashed rgba(47,56,60,.14);
}

.achievement-icon {
  width: 56px;
  height: 54px;
  border-radius: 16px;
  overflow: visible;
  position: relative;
}

.achievement-glyph {
  width: 38px;
  height: 38px;
  border-radius: 14px;
  display: inline-grid;
  place-items: center;
  font-size: 24px;
  line-height: 1;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-weight: 900;
  filter: drop-shadow(0 4px 8px rgba(47,56,60,.10));
}

.achievement-icon-alert .achievement-glyph,
.achievement-icon-warning .achievement-glyph {
  background: rgba(217,121,69,.22);
  color: #C86536;
}

.achievement-icon-siren .achievement-glyph {
  background: rgba(200,101,54,.20);
  color: #C86536;
}

.achievement-icon-info .achievement-glyph {
  background: rgba(111,130,121,.14);
  color: #6F8279;
}

.achievement-icon-eco .achievement-glyph {
  background: rgba(111,130,121,.18);
}

.achievement-icon-improve .achievement-glyph {
  background: rgba(217,121,69,.18);
}

.achievement-icon-utility .achievement-glyph {
  background: rgba(111,130,121,.16);
}

.achievement-icon-transport .achievement-glyph {
  background: rgba(200,101,54,.16);
}

.achievement-icon-culture .achievement-glyph {
  background: rgba(217,160,82,.17);
}

.achievement-topic {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 10px;
  letter-spacing: .13em;
  margin-bottom: 3px;
}

.achievement-title {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 14.5px;
  line-height: 1.22;
  font-weight: 760;
  letter-spacing: -.01em;
}

.achievement-close {
  width: 28px;
  height: 28px;
  font-size: 18px;
}

.article-achievement-extra {
  display: grid;
  grid-template-columns: minmax(0,1fr) 190px;
  gap: 12px;
  align-items: end;
}

@media (max-width: 980px) {
  .achievement-toast {
    grid-template-columns: 54px minmax(0,1fr) 30px;
  }
  .achievement-toast::before { left: 60px; }
  .article-achievement-extra { grid-template-columns: 1fr; }
}


/* Achievement visibility hard-fix */
.achievement-toasts {
  z-index: 1200 !important;
  pointer-events: none;
}
.achievement-toast {
  pointer-events: auto;
}


/* Achievement render hard-fix: body-mounted fixed toasts above the map */
.achievement-toasts {
  position: fixed !important;
  left: var(--achievement-left, 520px) !important;
  top: var(--achievement-top, 106px) !important;
  z-index: 9999 !important;
  width: min(430px, calc(100vw - var(--achievement-left, 520px) - 24px)) !important;
  display: flex;
  flex-direction: column;
  pointer-events: none;
}

.achievement-toasts[hidden] {
  display: none !important;
}

.achievement-toast {
  pointer-events: auto !important;
}


/* Achievement toasts UI polish: smaller, translucent, to the right of left menu */
.achievement-toasts {
  left: var(--achievement-left, 470px) !important;
  top: var(--achievement-top, 112px) !important;
  width: min(340px, calc(100vw - var(--achievement-left, 470px) - 28px)) !important;
  gap: 10px;
}

.achievement-toast {
  grid-template-columns: 52px minmax(0,1fr) 28px !important;
  min-height: 78px;
  padding: 10px 12px 10px 10px;
  border-radius: 20px;
  background: rgba(251,248,241,.72) !important;
  border: 1px solid rgba(251,248,241,.28);
  box-shadow: 0 10px 24px rgba(47,56,60,.14), 0 2px 10px rgba(47,56,60,.06);
  backdrop-filter: blur(14px) saturate(1.05);
  -webkit-backdrop-filter: blur(14px) saturate(1.05);
}

.achievement-toast::before {
  left: 62px;
  top: 11px;
  bottom: 11px;
  background: linear-gradient(180deg, rgba(47,56,60,.02), rgba(47,56,60,.09), rgba(47,56,60,.02));
}

.achievement-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  box-shadow: inset 0 1px 0 rgba(251,248,241,.55);
}

.achievement-glyph {
  font-size: 20px;
}

.achievement-body {
  min-width: 0;
}

.achievement-topic {
  font-size: 10.5px;
  letter-spacing: .10em;
  margin-bottom: 4px;
  opacity: .88;
}

.achievement-title {
  font-size: 14px;
  line-height: 1.24;
  letter-spacing: -.01em;
}

.achievement-close {
  width: 24px;
  height: 24px;
  align-self: start;
  border-radius: 999px;
  background: rgba(251,248,241,.55);
  box-shadow: inset 0 1px 0 rgba(251,248,241,.55);
}

.achievement-close:hover {
  background: rgba(251,248,241,.86);
}

@media (max-width: 980px) {
  .achievement-toasts {
    left: 12px !important;
    top: 124px !important;
    width: calc(100vw - 24px) !important;
  }

  .achievement-toast {
    grid-template-columns: 48px minmax(0,1fr) 26px !important;
    min-height: 72px;
  }

  .achievement-icon {
    width: 40px;
    height: 40px;
  }
}


/* Achievement toast position/size final tweak */
.achievement-toasts {
  width: min(266px, calc(100vw - var(--achievement-left, 490px) - 28px)) !important;
}

.achievement-toast {
  grid-template-columns: 34px minmax(0,1fr) 20px !important;
  gap: 10px;
  min-height: 47px;
  padding: 6px 10px 6px 8px;
  border-radius: 15px;
  background:
    linear-gradient(135deg, rgba(247,243,234,.84), rgba(221,231,226,.72)) !important;
  border: 1px solid rgba(217,121,69,.16);
  box-shadow:
    0 10px 20px rgba(47,56,60,.14),
    0 2px 7px rgba(217,121,69,.07),
    inset 0 1px 0 rgba(251,248,241,.50);
}

.achievement-toast::before {
  left: 46px;
  top: 7px;
  bottom: 7px;
  background: linear-gradient(180deg, rgba(217,121,69,.04), rgba(217,121,69,.16), rgba(217,121,69,.04));
}

.achievement-icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
}

.achievement-glyph {
  font-size: 15px;
}

.achievement-topic {
  font-size: 8.5px;
  margin-bottom: 1px;
  letter-spacing: .07em;
}

.achievement-title {
  font-size: 12px;
  line-height: 1.12;
}

.achievement-close {
  width: 18px;
  height: 18px;
  font-size: 14px;
  background: rgba(247,243,234,.55);
}

/* Patch: top events button removed; achievements stay on the map layer and yield to panels */
.achievement-toasts {
  position: absolute !important;
  left: var(--achievement-left, 22px) !important;
  top: var(--achievement-top, 92px) !important;
  z-index: 730 !important;
  width: min(266px, calc(100% - var(--achievement-left, 22px) - 24px)) !important;
  max-width: calc(100% - var(--achievement-left, 22px) - 24px);
  transition: left 260ms cubic-bezier(.22,1,.36,1), top 180ms ease, opacity 160ms ease;
}

.achievement-toasts.is-shifted {
  width: min(266px, calc(100% - var(--achievement-left, 22px) - 18px)) !important;
}

.map-page-overlay {
  z-index: 820 !important;
}

.map-page-overlay.is-open ~ .achievement-toasts,
.mapWrap:has(.map-page-overlay.is-open) .achievement-toasts {
  pointer-events: none !important;
}

@media (max-width: 980px) {
  .achievement-toasts {
    left: 12px !important;
    top: 124px !important;
    width: calc(100% - 24px) !important;
    max-width: calc(100% - 24px);
  }
}

/* Profile / participant block in top toolbar */
.top-user-summary {
  align-self: center;
  display: grid;
  gap: 1px;
  min-width: 118px;
  max-width: 164px;
  margin-left: auto;
  margin-right: 8px;
  padding: 7px 10px 7px 12px;
  border-radius: 16px;
  background: rgba(251,248,241,.76);
  border: 1px solid rgba(47,56,60,.08);
  color: var(--text-main);
  box-shadow: 0 8px 18px rgba(47,56,60,.08), inset 0 1px 0 rgba(251,248,241,.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.top-user-line {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10.5px;
  line-height: 1.15;
  color: var(--text-muted);
  font-weight: 750;
}

.top-user-nick {
  font-size: 13px;
  color: var(--text-main);
  font-weight: 900;
  letter-spacing: -.01em;
}

.top-user-summary.is-guest {
  background: linear-gradient(135deg, rgba(251,248,241,.78), rgba(221,231,226,.58));
}

.top-user-summary.is-admin {
  border-color: rgba(217,121,69,.22);
  background: linear-gradient(135deg, rgba(247,243,234,.86), rgba(240,190,152,.35));
}

.top-nav-image-switch .profile-account-btn {
  width: auto;
  min-width: 0;
  margin-left: 0;
}

.top-nav-image-switch .profile-account-btn .top-nav-img {
  height: 44px;
}

.profile-card {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr);
  gap: 14px;
  align-items: center;
  padding: 14px;
  margin-bottom: 14px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(251,248,241,.96), rgba(221,231,226,.56));
  border: 1px solid rgba(47,56,60,.08);
  box-shadow: 0 12px 28px rgba(47,56,60,.08), inset 0 1px 0 rgba(251,248,241,.75);
}

.profile-card.is-admin {
  background: linear-gradient(135deg, rgba(251,248,241,.96), rgba(240,190,152,.42));
  border-color: rgba(217,121,69,.20);
}

.profile-avatar {
  width: 58px;
  height: 58px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  background: var(--accent-green-soft);
  color: var(--accent-green-dark);
  font-size: 28px;
  font-weight: 900;
  box-shadow: inset 0 1px 0 rgba(251,248,241,.7), 0 8px 16px rgba(47,56,60,.08);
}

.profile-card.is-admin .profile-avatar {
  background: rgba(217,121,69,.16);
  color: var(--accent-terracotta-hover);
}

.profile-main h3 {
  margin: 2px 0 5px;
  color: var(--text-main);
  font-size: 22px;
  line-height: 1.08;
  letter-spacing: -.02em;
}

.profile-lines {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.profile-lines span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(247,243,234,.78);
  border: 1px solid rgba(47,56,60,.07);
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
}

@media (min-width: 981px) {
  .map-topbar .top-page-switch.top-nav-image-switch {
    align-items: center;
  }
}

@media (max-width: 980px) {
  .top-user-summary {
    order: 20;
    min-width: 138px;
    margin-left: 0;
    margin-right: 0;
  }
  .top-nav-image-switch .profile-account-btn .top-nav-img {
    height: 40px;
  }
}

/* Compact profile/auth popup */
.map-page-overlay.is-auth-page,
.map-page-overlay.is-user-page {
  left: auto;
  right: 18px;
  top: 82px;
  bottom: auto;
  width: min(392px, calc(100vw - 36px));
  align-items: flex-start;
  justify-content: flex-end;
}

.map-page-overlay.is-auth-page .map-page-panel,
.map-page-overlay.is-user-page .map-page-panel {
  width: 100%;
  max-height: calc(100vh - 104px);
  border-radius: 22px;
  box-shadow: 0 18px 48px rgba(47,56,60,.22), 0 3px 10px rgba(217,121,69,.08);
}

.map-page-overlay.is-auth-page .map-page-head,
.map-page-overlay.is-user-page .map-page-head {
  padding: 12px 14px 10px;
  align-items: center;
}

.map-page-overlay.is-auth-page .map-page-title,
.map-page-overlay.is-user-page .map-page-title {
  font-size: 21px;
  margin-top: 1px;
}

.map-page-overlay.is-auth-page .map-page-close,
.map-page-overlay.is-user-page .map-page-close {
  min-height: 30px;
  padding: 0 10px;
  font-size: 12px;
}

.map-page-overlay.is-auth-page .map-page-content,
.map-page-overlay.is-user-page .map-page-content {
  padding: 12px;
}

.auth-panel,
.profile-mini-panel {
  display: block;
}

.auth-card {
  padding: 13px;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(251,248,241,.98), rgba(221,231,226,.55));
}

.auth-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}

.auth-head h3 {
  margin: 1px 0 0;
  color: var(--text-main);
  font-size: 17px;
  line-height: 1.12;
  letter-spacing: -.02em;
}

.auth-note {
  margin: 0 0 10px;
  color: var(--text-muted);
  font-size: 12.5px;
  line-height: 1.35;
}

.auth-card .settings-field {
  margin-bottom: 8px;
}

.auth-card .settings-field span {
  font-size: 11px;
}

.auth-card .input {
  min-height: 37px;
  border-radius: 12px;
  background: rgba(251,248,241,.92);
}

.auth-captcha-wrap {
  display: grid;
  grid-template-columns: minmax(0,1fr) 38px;
  gap: 8px;
  align-items: end;
}

.auth-captcha-field b {
  color: var(--accent-terracotta);
  font-weight: 900;
}

.auth-refresh {
  width: 38px;
  min-height: 37px;
  padding: 0;
  border-radius: 12px;
  font-size: 17px;
  line-height: 1;
}

.auth-actions {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 8px;
  margin-top: 3px;
}

.auth-actions .btn {
  min-height: 38px;
  padding: 0 11px;
  border-radius: 13px;
  font-size: 13px;
}

.auth-card .settings-result {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.35;
}

.map-page-overlay.is-user-page .profile-card {
  margin-bottom: 10px;
}

.profile-mini-actions {
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 520px) {
  .map-page-overlay.is-auth-page,
  .map-page-overlay.is-user-page {
    left: 12px;
    right: 12px;
    top: 92px;
    width: auto;
  }
  .auth-actions {
    grid-template-columns: 1fr;
  }
}

/* Profile cleanup: role/rank/karma instead of numeric level */
.map-page-overlay.is-profile-page .map-page-head .eyebrow {
  display: none;
}

.map-page-overlay.is-profile-page .map-page-title {
  margin-top: 0;
}

.profile-card.profile-card-compact {
  display: block;
  padding: 12px;
  margin-bottom: 10px;
}

.profile-card.profile-card-compact .profile-main {
  min-width: 0;
}

.profile-one-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
}

.profile-nick {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-main);
  font-size: 18px;
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: -.02em;
}

.profile-chip,
.profile-chip-select,
.profile-small-select {
  min-height: 28px;
  border-radius: 999px;
  border: 1px solid rgba(47,56,60,.10);
  background: rgba(251,248,241,.86);
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1;
  font-weight: 850;
  box-shadow: inset 0 1px 0 rgba(251,248,241,.8);
}

.profile-chip {
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
}

.profile-chip-button {
  cursor: pointer;
  transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.profile-chip-button:hover,
.profile-chip-select:hover,
.profile-small-select:hover {
  color: var(--text-main);
  background: rgba(251,248,241,.98);
  border-color: rgba(217,121,69,.42);
}

.profile-chip-button:active {
  transform: translateY(1px);
}

.profile-chip-select,
.profile-small-select {
  padding: 0 28px 0 10px;
  outline: none;
  cursor: pointer;
  appearance: auto;
}

.profile-chip-select {
  color: var(--accent-green-dark);
  background: rgba(221,231,226,.72);
  border-color: rgba(111,130,121,.22);
}

.profile-chip.is-empty {
  color: var(--accent-terracotta-hover);
  background: rgba(217,121,69,.13);
  border-color: rgba(217,121,69,.25);
}

.profile-karma {
  cursor: help;
  color: var(--accent-terracotta-hover);
  background: rgba(240,190,152,.25);
  border-color: rgba(217,121,69,.20);
}

.profile-tune-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.profile-tune-field {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 850;
}

.profile-small-select {
  min-height: 30px;
  padding-left: 10px;
}

.profile-popover {
  margin-top: 10px;
  padding: 10px;
  border-radius: 16px;
  border: 1px solid rgba(47,56,60,.09);
  background: rgba(251,248,241,.96);
  box-shadow: 0 12px 28px rgba(47,56,60,.10), inset 0 1px 0 rgba(251,248,241,.82);
}

.profile-popover-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
  color: var(--text-main);
}

.profile-popover-head strong {
  font-size: 13px;
  letter-spacing: -.01em;
}

.profile-popover p {
  margin: 0;
  color: var(--text-muted);
  font-size: 12.5px;
  line-height: 1.42;
}

.profile-popover-close {
  width: 26px;
  height: 26px;
  border: 1px solid rgba(47,56,60,.10);
  border-radius: 999px;
  background: rgba(247,243,234,.9);
  color: var(--text-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

.profile-district-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  max-height: 260px;
  overflow: auto;
  padding-right: 2px;
}

.profile-district-option {
  min-height: 32px;
  padding: 0 10px;
  border-radius: 12px;
  border: 1px solid rgba(47,56,60,.08);
  background: rgba(247,243,234,.82);
  color: var(--text-main);
  text-align: left;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.profile-district-option:hover {
  border-color: rgba(217,121,69,.36);
  background: rgba(240,190,152,.18);
}

.top-user-summary [data-user-karma] {
  cursor: help;
}

@media (max-width: 520px) {
  .profile-one-line {
    align-items: stretch;
  }
  .profile-chip,
  .profile-chip-select,
  .profile-small-select,
  .profile-chip-button {
    max-width: 100%;
  }
}

/* Admin rail + work panels */
.rail-admin-actions {
  position: relative;
  z-index: 2;
  margin-top: auto;
  width: 100%;
  display: grid;
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid rgba(47,56,60,.08);
}

.rail-admin-actions[hidden] { display: none !important; }

.rail-admin-btn {
  min-height: 58px !important;
  gap: 2px !important;
}

.rail-admin-glyph {
  width: 34px;
  height: 34px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: rgba(221,231,226,.74);
  color: #596D64;
  border: 1px solid rgba(47,56,60,.10);
  box-shadow: inset 0 1px 0 rgba(251,248,241,.75), 0 8px 16px rgba(47,56,60,.08);
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
}

.rail-admin-btn .rail-label {
  display: block !important;
  font-size: 9.6px;
  line-height: 1;
  color: rgba(47,56,60,.74);
  max-width: 68px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rail-admin-btn:hover .rail-admin-glyph,
.rail-admin-btn.is-active .rail-admin-glyph {
  background: linear-gradient(160deg, #D97945, #C86536);
  color: #FBF8F1;
  border-color: rgba(200,101,54,.62);
  box-shadow: 0 10px 18px rgba(200,101,54,.20), inset 0 1px 0 rgba(251,248,241,.24);
}

.map-page-overlay.is-admin-work-page {
  z-index: 840 !important;
}

.map-page-overlay.is-admin-work-page .map-page-panel {
  width: min(980px, calc(100vw - 150px));
}

.admin-work-panel {
  gap: 14px;
}

.admin-work-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background:
    radial-gradient(circle at 0 0, rgba(217,121,69,.12), transparent 28%),
    linear-gradient(135deg, rgba(251,248,241,.96), rgba(221,231,226,.48));
}

.admin-work-hero h3,
.admin-stream-current h3,
.admin-empty-state h3 {
  margin: 2px 0 0;
  color: var(--text-main);
  font-size: 20px;
  line-height: 1.14;
  letter-spacing: -.02em;
}

.admin-work-hero .settings-note {
  margin-bottom: 0;
  max-width: 680px;
}

.admin-collapsed-card {
  padding: 0;
  overflow: hidden;
}

.admin-collapsed-card summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 18px;
  color: var(--text-main);
}

.admin-collapsed-card summary::-webkit-details-marker { display: none; }

.admin-collapsed-card summary::after {
  content: "↓";
  color: var(--accent-terracotta-hover);
  font-weight: 900;
  transition: transform var(--transition-fast);
}

.admin-collapsed-card[open] summary::after { transform: rotate(180deg); }

.admin-collapsed-card summary b {
  display: block;
  margin-top: 3px;
  font-size: 16px;
  letter-spacing: -.01em;
}

.admin-summary-hint {
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.admin-collapsed-body {
  padding: 0 18px 18px;
}

.admin-review-tabs,
.admin-stream-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-review-tabs button {
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(47,56,60,.10);
  background: rgba(251,248,241,.72);
  color: var(--text-muted);
  font-weight: 850;
  cursor: pointer;
}

.admin-review-tabs button:hover,
.admin-review-tabs button.is-active {
  color: var(--text-main);
  background: rgba(240,190,152,.22);
  border-color: rgba(217,121,69,.34);
}

.admin-review-list,
.admin-stream-list {
  display: grid;
  gap: 8px;
}

.admin-review-item {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 13px 14px;
  border-radius: 18px;
  background: rgba(251,248,241,.76);
  border: 1px solid rgba(47,56,60,.08);
  box-shadow: 0 8px 22px rgba(47,56,60,.06);
}

.admin-review-kind {
  color: var(--accent-terracotta-hover);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 900;
}

.admin-review-title {
  margin-top: 3px;
  color: var(--text-main);
  font-weight: 900;
  font-size: 15px;
  line-height: 1.2;
}

.admin-review-note {
  margin-top: 4px;
  color: var(--text-muted);
  font-size: 12.5px;
  line-height: 1.35;
}

.admin-review-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.admin-stream-controls {
  display: grid;
  gap: 12px;
}

.admin-stream-current {
  position: relative;
  min-height: 118px;
  background: linear-gradient(135deg, rgba(251,248,241,.96), rgba(240,190,152,.20));
}

.admin-stream-counter {
  position: absolute;
  top: 14px;
  right: 16px;
  min-width: 54px;
  text-align: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(47,56,60,.07);
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 900;
}

.admin-stream-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.admin-stream-cats span {
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(221,231,226,.66);
  color: #596D64;
  font-size: 11px;
  font-weight: 850;
}

.admin-stream-row {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 8px 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(47,56,60,.08);
  border-radius: 15px;
  background: rgba(251,248,241,.66);
  color: var(--text-main);
  text-align: left;
  cursor: pointer;
}

.admin-stream-row span {
  grid-row: span 2;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(47,56,60,.06);
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 900;
}

.admin-stream-row b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13.5px;
}

.admin-stream-row em {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-muted);
  font-style: normal;
  font-size: 11px;
}

.admin-stream-row:hover,
.admin-stream-row.is-active {
  border-color: rgba(217,121,69,.34);
  background: rgba(240,190,152,.18);
}

@media (max-width: 980px) {
  .map-page-overlay.is-admin-work-page .map-page-panel {
    width: calc(100vw - 24px);
  }
  .admin-review-item {
    grid-template-columns: 1fr;
  }
  .admin-review-actions {
    justify-content: flex-start;
  }
  .admin-work-hero {
    display: grid;
  }
}

/* Admin article polishing */
.map-page-eyebrow[hidden] { display: none !important; }
.article-list-main { min-width: 0; }
.article-list-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.article-list-actions .btn { min-height: 30px; padding: 0 10px; border-radius: 10px; font-size: 12px; }
.compact-actions { gap: 8px; justify-content: flex-end; }
@media (max-width: 760px) {
  .article-list-item { align-items: flex-start; flex-direction: column; }
  .article-list-actions { width: 100%; justify-content: flex-start; }
}

/* Stream editor controls */
.tg-stream-editor-card .tg-card-inner {
  gap: 14px;
}

.tg-stream-editor-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(217,121,69,.22);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(240,190,152,.30), rgba(251,248,241,.78));
  color: var(--text-main);
}

.tg-stream-editor-kicker {
  margin-bottom: 2px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tg-stream-editor-bar strong {
  font-size: 14px;
  font-weight: 900;
}

.tg-stream-editor-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.tg-stream-editor-actions .tg-edit-btn:disabled {
  opacity: .45;
  cursor: default;
}

/* Patch: card and news-button layout cleanup */
.app-shell.has-object-card {
  --dock-width: var(--sidebar-width) !important;
}
.left-dock {
  z-index: 760;
}
.object-panel {
  top: 0 !important;
  left: 0 !important;
  bottom: 0 !important;
  width: min(var(--object-panel-width), calc(100vw - 48px)) !important;
  max-width: min(var(--object-panel-width), calc(100vw - 48px)) !important;
  z-index: 780 !important;
}
.object-panel.is-open {
  width: min(var(--object-panel-width), calc(100vw - 48px)) !important;
  height: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateX(0) scale(1) !important;
}
.app-shell.has-object-card .sidebar {
  transform: translateX(-10px) scale(.992) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  filter: blur(.6px) !important;
}
.app-shell.has-object-card .mapWrap::after {
  opacity: .68 !important;
}
.article-panel-card {
  min-height: 100%;
  background: rgba(251,248,241,.84);
}
.article-panel-card .article-view {
  padding: 22px;
}

.send-news-floating {
  position: absolute;
  top: 96px;
  right: 20px;
  z-index: 735;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(47,56,60,.10);
  border-radius: 22px;
  background: rgba(251,248,241,.88);
  box-shadow: 0 16px 34px rgba(47,56,60,.15), inset 0 1px 0 rgba(251,248,241,.82);
  backdrop-filter: blur(14px);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: transform 150ms ease, box-shadow 150ms ease, opacity 150ms ease;
}
.send-news-floating:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 42px rgba(47,56,60,.18), inset 0 1px 0 rgba(251,248,241,.9);
}
.send-news-floating.is-hidden {
  display: none !important;
}
.send-news-icon {
  position: relative;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
}
.send-news-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.send-news-icon img:not([src]),
.send-news-icon img[src=""] {
  display: none;
}
.send-news-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: var(--accent-terracotta-hover);
  background: rgba(217,121,69,.14);
  font-size: 25px;
  font-weight: 900;
}
.send-news-icon img + .send-news-fallback {
  z-index: -1;
}
.send-news-panel {
  position: absolute;
  top: 162px;
  right: 20px;
  z-index: 736;
  width: min(340px, calc(100% - 40px));
  padding: 14px;
  border-radius: 24px;
  border: 1px solid rgba(47,56,60,.10);
  background: rgba(251,248,241,.96);
  box-shadow: 0 24px 54px rgba(47,56,60,.20), inset 0 1px 0 rgba(251,248,241,.88);
  backdrop-filter: blur(16px);
  display: grid;
  gap: 10px;
  opacity: 0;
  transform: translateY(-6px) scale(.985);
  pointer-events: none;
  transition: opacity 140ms ease, transform 140ms ease;
}
.send-news-panel[hidden] {
  display: none !important;
}
.send-news-panel.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.send-news-textarea {
  width: 100%;
  min-height: 112px;
  resize: vertical;
  border: 1px solid rgba(47,56,60,.12);
  border-radius: 18px;
  background: rgba(247,243,234,.86);
  color: var(--text-main);
  padding: 12px 13px;
  outline: 0;
  line-height: 1.38;
}
.send-news-textarea:focus,
.send-news-captcha-row .input:focus {
  border-color: rgba(217,121,69,.46);
  box-shadow: 0 0 0 4px rgba(217,121,69,.13);
}
.send-news-file {
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(221,231,226,.42);
  border: 1px dashed rgba(111,130,121,.34);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12.5px;
  font-weight: 850;
}
.send-news-file input {
  max-width: 142px;
  font-size: 11px;
}
.send-news-captcha-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border-radius: 16px;
  background: rgba(240,190,152,.18);
}
.send-news-captcha-row span {
  min-width: 58px;
  color: var(--accent-terracotta-hover);
  font-weight: 900;
  text-align: center;
}
.send-news-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.send-news-submit,
.article-save-btn {
  background: linear-gradient(135deg, var(--accent-terracotta), var(--accent-terracotta-hover)) !important;
  color: #FBF8F1 !important;
  border-color: rgba(200,101,54,.48) !important;
  box-shadow: 0 12px 24px rgba(200,101,54,.22) !important;
}
.send-news-result {
  padding: 9px 11px;
  border-radius: 14px;
  font-size: 12.5px;
  line-height: 1.35;
}
.send-news-result.is-ok { background: rgba(221,231,226,.62); color: #596D64; }
.send-news-result.is-error { background: rgba(217,121,69,.15); color: #9B4F2F; }

.achievement-toasts {
  top: var(--achievement-top, 132px) !important;
}
.achievement-icon {
  transform: translateY(-5px);
}

.article-save-strip {
  justify-content: flex-end !important;
}
.article-publish-grid {
  grid-template-columns: repeat(3, max-content) minmax(150px, 190px) minmax(110px, 130px) !important;
}
.article-table-list {
  display: grid;
  gap: 4px;
}
.article-table-head,
.article-table-row {
  display: grid;
  grid-template-columns: minmax(180px,1.6fr) 134px minmax(92px,.8fr) 34px 34px 54px 34px 34px;
  gap: 6px;
  align-items: center;
}
.article-table-head {
  padding: 0 8px 5px;
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.article-table-row {
  min-height: 38px;
  padding: 5px 8px;
  border-radius: 14px;
  background: rgba(251,248,241,.72);
  border: 1px solid rgba(47,56,60,.07);
}
.article-cell,
.article-title-cell,
.article-time-cell,
.article-flag-cell,
.article-icon-action {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.article-title-cell,
.article-time-cell,
.article-flag-cell,
.article-icon-action {
  border: 0;
  background: transparent;
  cursor: pointer;
}
.article-title-cell {
  color: var(--text-main);
  font-weight: 850;
  text-align: left;
}
.article-time-cell {
  color: var(--text-muted);
  font-size: 12px;
  text-align: left;
}
.article-time-cell.is-scheduled {
  color: var(--accent-terracotta-hover);
  font-weight: 900;
}
.article-topic-cell,
.article-views-cell {
  color: var(--text-muted);
  font-size: 12px;
}
.article-flag-cell,
.article-icon-action {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: var(--text-muted);
  font-weight: 900;
}
.article-flag-cell.is-on {
  background: rgba(217,121,69,.14);
  color: var(--accent-terracotta-hover);
}
.article-icon-action:hover,
.article-flag-cell:hover {
  background: rgba(221,231,226,.62);
}
.article-icon-action.is-danger:hover {
  color: #9B4F2F;
  background: rgba(217,121,69,.13);
}
@media (max-width: 980px) {
  .send-news-floating { top: 88px; right: 12px; }
  .send-news-panel { top: 150px; right: 12px; width: calc(100% - 24px); }
  .article-table-head { display: none; }
  .article-table-row { grid-template-columns: 1fr auto auto auto; }
  .article-time-cell,
  .article-topic-cell,
  .article-views-cell { display: none; }
  .article-publish-grid { grid-template-columns: 1fr !important; }
}
.send-news-icon img[hidden] + .send-news-fallback { z-index: 0; }

/* Study mode cleanup: full map, no left info panel, no send-news button */
.app-shell.is-study-mode {
  --dock-width: 0px !important;
}
.app-shell.is-study-mode .sidebar {
  display: none !important;
}
.app-shell.is-study-mode:not(.has-object-card) .left-dock {
  width: 0 !important;
  min-width: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: visible !important;
}
.app-shell.is-study-mode .send-news-floating,
.app-shell.is-study-mode .send-news-panel {
  display: none !important;
}

/* Compact scale grid for study mode */
.study-scale-grid {
  position: absolute;
  right: 22px;
  bottom: 22px;
  z-index: 620;
  width: 154px;
  min-height: 82px;
  padding: 12px 12px 10px;
  border-radius: 18px;
  border: 1px solid rgba(47,56,60,.14);
  background: rgba(247,243,234,.88);
  box-shadow: 0 14px 32px rgba(47,56,60,.13), inset 0 1px 0 rgba(251,248,241,.74);
  backdrop-filter: blur(12px);
  color: var(--text-main);
  pointer-events: none;
}
.study-scale-grid[hidden] { display: none !important; }
.study-scale-grid-field {
  height: 34px;
  border-radius: 12px;
  background-image:
    linear-gradient(rgba(111,130,121,.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(111,130,121,.22) 1px, transparent 1px),
    linear-gradient(rgba(217,121,69,.20) 1px, transparent 1px),
    linear-gradient(90deg, rgba(217,121,69,.20) 1px, transparent 1px);
  background-size: 12px 12px, 12px 12px, 48px 48px, 48px 48px;
  background-position: 0 0;
  background-color: rgba(251,248,241,.62);
  border: 1px solid rgba(47,56,60,.08);
}
.study-scale-bar {
  position: relative;
  height: 16px;
  margin-top: 8px;
}
.study-scale-bar span {
  position: absolute;
  left: 0;
  bottom: 2px;
  width: var(--scale-bar-width, 96px);
  height: 6px;
  border-left: 2px solid var(--text-main);
  border-right: 2px solid var(--text-main);
  border-bottom: 2px solid var(--text-main);
  opacity: .86;
}
.study-scale-label {
  font-size: 11px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-soft);
}

/* Profile: ordinary user edits only district and avatar */
.profile-card .profile-avatar img,
.profile-avatar-editable img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}
.profile-chip-locked {
  cursor: default;
  background: rgba(221,231,226,.48) !important;
  color: var(--text-soft) !important;
}
.profile-user-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
}
.profile-avatar-upload {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(47,56,60,.10);
  background: rgba(251,248,241,.74);
  color: var(--text-soft);
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
}
.profile-avatar-upload:hover {
  border-color: rgba(217,121,69,.28);
  background: rgba(240,190,152,.18);
  color: var(--text-main);
}
.profile-avatar-upload input {
  max-width: 118px;
  font-size: 10.5px;
}

/* Article scheduler: date and time on one line */
.article-publish-grid {
  grid-template-columns: repeat(3, max-content) minmax(260px, 1fr) !important;
  align-items: center !important;
}
.article-schedule-field {
  display: grid !important;
  grid-template-columns: max-content minmax(0,1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.article-schedule-field > span:first-child {
  white-space: nowrap;
}
.article-schedule-inputs {
  display: grid;
  grid-template-columns: minmax(128px, 1fr) minmax(98px, .75fr);
  gap: 8px;
  min-width: 0;
}
.article-schedule-inputs .input {
  width: 100%;
  min-width: 0;
}

/* Notification vertical correction */
.achievement-toasts {
  top: var(--achievement-top, 142px) !important;
}

@media (max-width: 980px) {
  .app-shell.is-study-mode {
    grid-template-columns: 1fr !important;
  }
  .study-scale-grid {
    right: 12px;
    bottom: 12px;
  }
  .article-schedule-field,
  .article-schedule-inputs {
    grid-template-columns: 1fr !important;
  }
}

/* Final UI corrections: empty left panel. In study mode the dock really collapses;
   Leaflet keeps the visual anchor from app.js. */
.sidebar-scroll > :not(.brand-block) {
  display: none !important;
}

/* Opening a card must never resize or visually shift the map. */
.app-shell.has-object-card {
  --dock-width: var(--sidebar-width) !important;
  grid-template-columns: var(--rail-width) var(--dock-width) minmax(0, 1fr) !important;
}
.app-shell.has-object-card .mapWrap,
.app-shell.has-object-card #map,
.app-shell.has-object-card .leaflet-map-pane,
.app-shell.has-object-card .leaflet-tile-pane {
  transform: none !important;
  margin: 0 !important;
}
.app-shell.has-object-card .mapWrap::after {
  opacity: 0 !important;
}

.article-flag-cell {
  border: 1px solid rgba(47,56,60,.12) !important;
  background: rgba(247,243,234,.82) !important;
  color: #6F7A76 !important;
}
.article-flag-cell.is-on {
  color: #FBF8F1 !important;
  border-color: rgba(47,56,60,.10) !important;
  box-shadow: 0 8px 18px rgba(47,56,60,.13) !important;
}
.article-flag-cell.is-on[data-toggle-article-notification] {
  background: #D97945 !important;
}
.article-flag-cell.is-on[data-toggle-article-encyclopedia] {
  background: #6F8279 !important;
}
.article-flag-cell:hover {
  border-color: rgba(217,121,69,.34) !important;
  background: rgba(240,190,152,.18) !important;
  color: #2F383C !important;
}
.article-flag-cell.is-on:hover {
  filter: saturate(1.08) contrast(1.03);
  color: #FBF8F1 !important;
}

.encyclopedia-live-list {
  align-items: stretch;
}
.encyclopedia-alpha-group {
  gap: 7px;
}
.encyclopedia-article-link {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: baseline;
  gap: 10px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(47,56,60,.08);
  border-radius: 12px;
  background: rgba(251,248,241,.62);
  color: #2F383C;
  font: inherit;
  font-size: 14px;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}
.encyclopedia-article-link span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.encyclopedia-article-link small {
  color: #6F7A76;
  font-size: 11px;
  font-weight: 750;
}
.encyclopedia-article-link:hover {
  background: rgba(240,190,152,.18);
  border-color: rgba(217,121,69,.32);
  color: #C86536;
}

@media (max-width: 980px) {
  .app-shell.is-study-mode,
  .app-shell.has-object-card {
    grid-template-columns: 1fr !important;
  }
  .app-shell.is-study-mode .left-dock {
    display: none !important;
  }
}

/* Final layout pass: Study mode slides the left panel away while the map grows into its place. */
.app-shell {
  transition: grid-template-columns 360ms cubic-bezier(0.22, 1, 0.36, 1), column-gap 360ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}
.left-dock,
.sidebar,
.mapWrap {
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1), opacity 260ms ease, filter 260ms ease, width 360ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}
.app-shell.is-study-mode {
  --dock-width: 0px !important;
  grid-template-columns: var(--rail-width) 0px minmax(0, 1fr) !important;
  column-gap: 7px !important;
}
.app-shell.is-study-mode .left-dock {
  width: 0 !important;
  min-width: 0 !important;
  opacity: 1 !important;
  pointer-events: none !important;
  overflow: visible !important;
  z-index: 7 !important;
}
.app-shell.is-study-mode .sidebar {
  display: block !important;
  visibility: visible !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateX(calc(-1 * var(--sidebar-width) - 32px)) !important;
  filter: blur(.8px) !important;
}
.app-shell.is-study-mode .mapWrap {
  grid-column: 3 !important;
  min-width: 0 !important;
}
.app-shell.is-study-mode .send-news-floating,
.app-shell.is-study-mode .send-news-panel {
  display: none !important;
}

/* Send-news submit: keep it visible in the approved palette. */
.send-news-submit,
.send-news-submit.btn,
.article-save-btn,
.article-save-btn.btn {
  background: linear-gradient(135deg, var(--ui-terracotta), var(--ui-terracotta-hover)) !important;
  color: var(--text-invert) !important;
  border: 1px solid rgba(200,101,54,.58) !important;
  box-shadow: 0 13px 24px rgba(200,101,54,.24) !important;
}
.send-news-submit:hover,
.article-save-btn:hover {
  background: linear-gradient(135deg, var(--ui-terracotta-hover), #B9562F) !important;
  color: var(--text-invert) !important;
}

/* Publication editor: save/cancel live at the top, not at the bottom. */
.article-editor-toolbar {
  position: sticky;
  top: -1px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: -4px -4px 12px;
  padding: 8px 8px 10px;
  border-radius: 18px;
  background: rgba(247,243,234,.94);
  border: 1px solid rgba(47,56,60,.08);
  box-shadow: 0 10px 22px rgba(47,56,60,.07), inset 0 1px 0 rgba(251,248,241,.78);
  backdrop-filter: blur(12px);
}
.article-editor-state {
  min-width: 0;
  color: var(--text-soft);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.article-editor-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}
.article-cancel-btn {
  min-height: 36px;
  border-color: rgba(47,56,60,.12) !important;
  background: rgba(251,248,241,.72) !important;
}
.article-save-btn {
  min-height: 38px;
  padding-inline: 15px !important;
  border-radius: 14px !important;
  font-weight: 950 !important;
}
.article-save-strip { display: none !important; }

/* Scheduler row stays one line on desktop. */
.article-publish-grid {
  grid-template-columns: repeat(3, max-content) minmax(292px, 1fr) !important;
  align-items: center !important;
}
.article-schedule-field {
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  gap: 8px !important;
  align-items: center !important;
}
.article-schedule-inputs {
  display: grid !important;
  grid-template-columns: minmax(134px, 1fr) minmax(104px, .72fr) !important;
  gap: 8px !important;
}

/* Admin profile cleanup: compact, operational, no oversized filler. */
.admin-profile-panel-compact {
  width: min(520px, calc(100vw - 40px));
  display: grid;
  gap: 10px;
}
.admin-profile-compact-card {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(251,248,241,.96), rgba(240,190,152,.30));
  border: 1px solid rgba(217,121,69,.18);
  box-shadow: 0 12px 28px rgba(47,56,60,.08), inset 0 1px 0 rgba(251,248,241,.78);
}
.admin-profile-compact-card .profile-avatar {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: rgba(217,121,69,.14);
  color: var(--ui-terracotta-hover);
}
.admin-profile-compact-main {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.admin-profile-title-row,
.admin-profile-meta-row,
.admin-session-inline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
}
.profile-chip-admin {
  background: rgba(217,121,69,.16) !important;
  border-color: rgba(217,121,69,.22) !important;
  color: var(--ui-terracotta-hover) !important;
}
.admin-profile-note {
  color: var(--text-soft);
  font-size: 12px;
  line-height: 1.25;
}
.admin-session-card-compact {
  padding: 10px 12px !important;
}
.admin-session-inline {
  justify-content: space-between;
}
.admin-session-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(221,231,226,.55);
  border: 1px solid rgba(111,130,121,.18);
  color: var(--ui-green-dark);
  font-size: 12px;
  font-weight: 900;
}
.admin-profile-panel-compact .admin-collapsed-card {
  margin: 0 !important;
}
.admin-profile-panel-compact .settings-note {
  font-size: 12.5px;
  line-height: 1.35;
}

@media (max-width: 760px) {
  .article-editor-toolbar,
  .article-editor-actions,
  .admin-session-inline {
    align-items: stretch;
  }
  .article-editor-toolbar {
    display: grid;
  }
  .article-editor-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .article-publish-grid,
  .article-schedule-field,
  .article-schedule-inputs {
    grid-template-columns: 1fr !important;
  }
}

/* Palette aliases used by older components; keep them tied to the approved palette. */
:root {
  --accent-terracotta-hover: var(--ui-terracotta-hover);
  --accent-green-soft: var(--ui-green-soft);
  --accent-green-dark: var(--ui-green-dark);
}

/* Final polish pass 2026-05-08: profile, article warmth, study motion, admin account size */
.top-user-summary {
  border: 0 !important;
  background:
    radial-gradient(circle at 12% 8%, rgba(217,121,69,.18), transparent 34%),
    linear-gradient(135deg, rgba(247,243,234,.88), rgba(221,231,226,.58)) !important;
  box-shadow: 0 10px 24px rgba(47,56,60,.10), inset 0 1px 0 rgba(251,248,241,.86) !important;
}
.top-user-summary .top-user-nick,
.top-user-summary [data-user-nick] {
  color: var(--ui-terracotta-hover) !important;
}
.top-user-summary [data-user-role] {
  color: var(--ui-green-dark) !important;
}
.top-user-summary [data-user-rank] {
  color: var(--ui-graphite) !important;
  font-weight: 900;
}
.top-user-summary [data-user-karma] {
  color: var(--ui-amber) !important;
  font-weight: 950;
}
.top-user-summary.is-admin {
  background:
    radial-gradient(circle at 10% 0%, rgba(217,121,69,.28), transparent 34%),
    linear-gradient(135deg, rgba(247,243,234,.90), rgba(240,190,152,.34)) !important;
}
.top-user-summary.is-admin [data-user-nick] {
  color: var(--ui-terracotta-hover) !important;
}

.article-panel-card {
  min-height: 100%;
  background:
    radial-gradient(circle at 6% 3%, rgba(217,121,69,.14), transparent 30%),
    linear-gradient(145deg, rgba(247,243,234,.98), rgba(251,248,241,.88) 54%, rgba(221,231,226,.56)) !important;
}
.article-panel-card .article-view,
.map-page-content .article-view {
  padding: 22px;
  border-radius: 26px;
  border: 1px solid rgba(47,56,60,.08);
  background:
    linear-gradient(135deg, rgba(247,243,234,.94), rgba(251,248,241,.78) 58%, rgba(240,190,152,.16));
  box-shadow: 0 16px 36px rgba(47,56,60,.09), inset 0 1px 0 rgba(251,248,241,.80);
}
.article-body {
  color: var(--ui-text);
}
.article-chip-row span,
.article-meta-box {
  background: rgba(221,231,226,.46) !important;
}
.article-meta-box {
  border: 1px solid rgba(47,56,60,.07);
}

.app-shell,
.left-dock,
.sidebar,
.mapWrap {
  transition-duration: 560ms !important;
}
.app-shell.is-study-mode .sidebar {
  transition-duration: 620ms !important;
  transform: translateX(calc(-1 * var(--sidebar-width) - 44px)) !important;
}

.map-page-overlay.is-profile-page,
.map-page-overlay.is-auth-page,
.map-page-overlay.is-user-page {
  z-index: 1180 !important;
}
.map-page-overlay.is-profile-page.is-admin-page {
  left: auto !important;
  right: 28px !important;
  top: 82px !important;
  bottom: auto !important;
  width: min(340px, calc(100vw - 56px)) !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  z-index: 1190 !important;
}
.map-page-overlay.is-profile-page.is-admin-page .map-page-panel {
  width: 100% !important;
  max-height: calc(100vh - 106px) !important;
  border-radius: 22px !important;
}
.map-page-overlay.is-profile-page.is-admin-page .map-page-head {
  padding: 11px 12px 9px !important;
}
.map-page-overlay.is-profile-page.is-admin-page .map-page-title {
  font-size: 20px !important;
  letter-spacing: -.025em;
}
.map-page-overlay.is-profile-page.is-admin-page .map-page-content {
  padding: 10px !important;
}
.admin-profile-panel-compact {
  width: 100% !important;
  max-width: 100% !important;
  gap: 8px !important;
}
.admin-profile-compact-card {
  grid-template-columns: 42px minmax(0, 1fr) !important;
  gap: 9px !important;
  padding: 10px !important;
  border-radius: 18px !important;
}
.admin-profile-compact-card .profile-avatar {
  width: 42px !important;
  height: 42px !important;
  border-radius: 15px !important;
  font-size: 21px !important;
}
.admin-profile-compact-main {
  gap: 6px !important;
}
.admin-profile-title-row,
.admin-profile-meta-row {
  gap: 5px !important;
}
.admin-profile-note {
  display: none !important;
}
.admin-session-card-compact,
.admin-profile-panel-compact .settings-card,
.admin-profile-panel-compact .admin-collapsed-card {
  width: 100% !important;
  min-width: 0 !important;
  padding: 10px !important;
  border-radius: 17px !important;
}
.admin-profile-panel-compact .admin-collapsed-card summary {
  padding: 10px 12px !important;
}
.admin-profile-panel-compact .admin-collapsed-body {
  padding: 0 12px 12px !important;
}
.admin-profile-panel-compact .profile-chip,
.admin-profile-panel-compact .profile-chip-button,
.admin-profile-panel-compact .profile-small-select {
  min-height: 26px !important;
  padding: 0 8px !important;
  font-size: 11px !important;
}
.admin-session-inline {
  gap: 8px !important;
}
.admin-session-badge {
  min-height: 28px !important;
  padding: 0 9px !important;
  font-size: 11px !important;
}
.admin-session-inline .btn {
  min-height: 30px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
}

@media (max-width: 760px) {
  .map-page-overlay.is-profile-page.is-admin-page {
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
  }
}

/* Current pass: smoother two-way study animation. */
.app-shell {
  transition:
    grid-template-columns 760ms cubic-bezier(0.22, 1, 0.36, 1),
    column-gap 760ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}
.left-dock {
  width: var(--dock-width) !important;
  transition:
    width 760ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 760ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 520ms ease,
    filter 520ms ease !important;
}
.sidebar {
  transition:
    transform 820ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 560ms ease,
    filter 560ms ease !important;
}
.mapWrap {
  transition:
    transform 760ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 520ms ease !important;
}
.app-shell.is-study-mode .left-dock {
  width: 0 !important;
}
.app-shell.is-study-mode .sidebar {
  transform: translateX(calc(-1 * var(--sidebar-width) - 48px)) !important;
}
.article-time-cell {
  cursor: pointer;
}
.article-time-cell:hover {
  color: var(--ui-terracotta-hover) !important;
  background: rgba(240,190,152,.18) !important;
  border-color: rgba(217,121,69,.30) !important;
}

/* Inline publication-time editing */
.article-time-cell.is-editing {
  overflow: visible !important;
  padding: 0 !important;
  background: rgba(251,248,241,.94) !important;
  border: 1px solid rgba(217,121,69,.34) !important;
  box-shadow: 0 6px 16px rgba(47,56,60,.10) !important;
}
.article-time-inline-input {
  width: 100%;
  min-width: 162px;
  height: 28px;
  border: 0;
  outline: 0;
  border-radius: 9px;
  padding: 0 7px;
  color: #2F383C;
  background: #FBF8F1;
  font: inherit;
  font-size: 11.5px;
  font-weight: 800;
}
.article-time-cell.is-saving {
  opacity: .62;
  pointer-events: none;
}

/* Admin users table */
.admin-users-panel {
  max-width: 980px;
}
.admin-users-head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
}
.admin-users-head h3 {
  margin: 2px 0 6px;
  color: var(--text-main);
}
.admin-users-total {
  min-width: 66px;
  height: 52px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: rgba(217,121,69,.14);
  color: var(--accent-terracotta-hover);
  font-size: 24px;
  font-weight: 950;
  box-shadow: inset 0 1px 0 rgba(251,248,241,.78);
}
.admin-users-tools {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}
.admin-users-table-card {
  padding: 10px !important;
}
.admin-users-table {
  display: grid;
  gap: 5px;
}
.admin-user-head,
.admin-user-row {
  display: grid;
  grid-template-columns: minmax(138px,1.15fr) minmax(116px,.9fr) minmax(108px,.8fr) minmax(150px,1.1fr) 78px minmax(112px,.75fr) 34px 34px;
  gap: 6px;
  align-items: center;
}
.admin-user-head {
  padding: 0 8px 5px;
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.admin-user-row {
  min-height: 42px;
  padding: 6px 8px;
  border-radius: 14px;
  background: rgba(251,248,241,.72);
  border: 1px solid rgba(47,56,60,.07);
}
.admin-user-login {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.admin-user-login strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-main);
  font-size: 13px;
}
.admin-user-login span {
  color: var(--text-muted);
  font-size: 10.5px;
}
.admin-user-select,
.admin-user-input {
  width: 100%;
  min-width: 0;
  height: 32px;
  border-radius: 10px;
  border: 1px solid rgba(47,56,60,.12);
  background: rgba(247,243,234,.86);
  color: var(--text-main);
  padding: 0 9px;
  font: inherit;
  font-size: 12px;
  outline: none;
}
.admin-user-select:focus,
.admin-user-input:focus {
  border-color: rgba(217,121,69,.52);
  box-shadow: 0 0 0 3px rgba(217,121,69,.13);
}
.admin-user-karma {
  text-align: center;
  font-weight: 800;
  color: var(--accent-terracotta-hover);
}
.admin-user-password::placeholder {
  color: rgba(111,122,118,.72);
}
.admin-users-empty {
  min-height: 96px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  gap: 4px;
  text-align: center;
  color: var(--text-muted);
  background: rgba(251,248,241,.62);
  border: 1px dashed rgba(47,56,60,.14);
}
.admin-users-empty strong {
  color: var(--text-main);
}
@media (max-width: 980px) {
  .admin-users-tools { grid-template-columns: 1fr; }
  .admin-user-head { display: none; }
  .admin-user-row {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .admin-user-login { grid-column: 1 / -1; }
  .admin-user-district { grid-column: 1 / -1; }
}
.admin-user-create-inline {
  display: grid;
  grid-template-columns: minmax(110px, 150px) minmax(110px, 150px) auto;
  gap: 8px;
  align-items: center;
}
.admin-user-create-inline .input {
  min-width: 0;
}
@media (max-width: 980px) {
  .admin-user-create-inline { grid-template-columns: 1fr; }
}

.map-page-overlay.is-suspended-for-stream {
  opacity: 0 !important;
  transform: translateX(-18px) scale(.985) !important;
  pointer-events: none !important;
  visibility: hidden;
}

/* Stream review + study colors pass */
.leaflet-interactive.tg-selected-outline-object {
  stroke: var(--accent-terracotta-hover, #C86536) !important;
  stroke-width: 3.2px !important;
  fill: var(--accent-terracotta, #D97945) !important;
  fill-opacity: .18 !important;
  filter: drop-shadow(0 8px 18px rgba(47,56,60,.18));
}
.tg-map-point-study-photo {
  filter: drop-shadow(0 12px 20px rgba(111,130,121,.28)) drop-shadow(0 3px 10px rgba(47,56,60,.14));
}
.tg-map-point-study-no-photo {
  filter: drop-shadow(0 12px 20px rgba(217,121,69,.28)) drop-shadow(0 3px 10px rgba(47,56,60,.14));
}
.tg-map-point-study-no-title {
  filter: drop-shadow(0 12px 20px rgba(141,106,115,.30)) drop-shadow(0 3px 10px rgba(47,56,60,.14));
}
.tg-map-point-study-no-description {
  filter: drop-shadow(0 12px 20px rgba(217,160,82,.30)) drop-shadow(0 3px 10px rgba(47,56,60,.14));
}


/* Notifications: keep them available, but let the study card breathe. */
.achievement-toasts.is-hidden-by-card {
  opacity: 0 !important;
  transform: translateY(-5px) scale(.985);
  pointer-events: none !important;
}
.achievement-read-all {
  display: block;
  margin: 7px 0 0 auto;
  width: max-content;
  border: 1px solid rgba(47,56,60,.12);
  border-radius: 999px;
  padding: 5px 10px 6px;
  background: rgba(251,248,241,.82);
  color: var(--text-muted,#6F7A76);
  font-size: 12px;
  font-weight: 760;
  letter-spacing: .01em;
  box-shadow: 0 8px 18px rgba(47,56,60,.08);
  cursor: pointer;
  pointer-events: auto !important;
  position: relative;
  z-index: 2;
}
.achievement-read-all:hover {
  background: rgba(247,243,234,.96);
  color: var(--text-main,#2F383C);
}

/* Publications feed */
.feed-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}
.feed-card {
  display: grid;
  grid-template-rows: 132px 1fr;
  padding: 0;
  overflow: hidden;
  text-align: left;
  border: 1px solid rgba(47,56,60,.12);
  border-radius: 22px;
  background: rgba(251,248,241,.82);
  box-shadow: 0 12px 28px rgba(47,56,60,.09);
  cursor: pointer;
}
.feed-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(47,56,60,.13);
}
.feed-card-image {
  display: block;
  min-width: 0;
  background: linear-gradient(135deg, rgba(221,231,226,.85), rgba(240,190,152,.38));
}
.feed-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.feed-card-placeholder {
  height: 100%;
  display: grid;
  place-items: center;
  color: rgba(47,56,60,.55);
  font-weight: 900;
  letter-spacing: .14em;
}
.feed-card-body {
  display: grid;
  gap: 7px;
  padding: 13px 14px 15px;
}
.feed-card-topic {
  color: var(--text-muted,#6F7A76);
  font-size: 11px;
  font-weight: 820;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.feed-card-title {
  color: var(--text-main,#2F383C);
  font-size: 15px;
  line-height: 1.22;
  font-weight: 860;
}
.feed-card-date {
  color: var(--text-muted,#6F7A76);
  font-size: 12px;
}
@media (max-width: 1120px) {
  .feed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .feed-grid { grid-template-columns: 1fr; }
}

/* ADMIN_RAIL_IMAGES_PATCH_VERSION=2026-05-09-admin-rail-images-v1
   Нижние админ-кнопки левого меню используют PNG-пары вместо текстовых глифов. */
.rail-admin-actions .rail-admin-glyph {
  display: none !important;
}
.rail-admin-actions .rail-admin-icon {
  display: grid;
}
.rail-admin-actions .rail-admin-icon .rail-img {
  width: 56px;
  height: 56px;
}

/* Rail size patch: left buttons 20% smaller */
.side-rail {
  gap: 2px;
  padding: 10px 6px;
}

.rail-nav-btn,
.side-rail .mode-btn {
  min-height: 58px !important;
}

.rail-icon {
  width: 48px !important;
  height: 48px !important;
}

.rail-img {
  width: 51px !important;
  height: 51px !important;
}

.rail-nav-btn:active .rail-img,
.side-rail .mode-btn:active .rail-img {
  transform: translateY(1px) scale(.985);
}


/* RAIL_SIZE_MINUS_15_PATCH_VERSION=2026-05-09-rail-size-minus15-v1
   Дополнительное уменьшение левых кнопок примерно на 15% от текущего состояния. */
.side-rail {
  gap: 1px;
  padding: 9px 6px;
}

.rail-nav-btn,
.side-rail .mode-btn,
.rail-admin-btn {
  min-height: 49px !important;
}

.rail-icon {
  width: 41px !important;
  height: 41px !important;
}

.rail-img,
.rail-admin-actions .rail-admin-icon .rail-img {
  width: 43px !important;
  height: 43px !important;
}

.rail-admin-glyph {
  width: 29px !important;
  height: 29px !important;
  border-radius: 12px;
  font-size: 15px;
}

.rail-admin-btn .rail-label {
  font-size: 8.2px;
  max-width: 58px;
}

.rail-nav-btn:active .rail-img,
.side-rail .mode-btn:active .rail-img {
  transform: translateY(1px) scale(.98);
}

/* RAIL_SIZE_MINUS_25_PATCH_VERSION=2026-05-09-rail-size-minus25-v1
   Ещё одно уменьшение левых кнопок примерно на 25% от состояния rail-size-minus15. */
:root {
  --rail-width: 62px;
}

.side-rail {
  gap: 1px;
  padding: 8px 5px;
  border-radius: 18px;
}

.rail-nav-btn,
.side-rail .mode-btn,
.rail-admin-btn {
  min-height: 37px !important;
  gap: 1px !important;
  border-radius: 13px;
}

.rail-icon {
  width: 31px !important;
  height: 31px !important;
}

.rail-icon svg {
  width: 18px !important;
  height: 18px !important;
}

.rail-img,
.rail-admin-actions .rail-admin-icon .rail-img {
  width: 32px !important;
  height: 32px !important;
}

.rail-admin-glyph {
  width: 22px !important;
  height: 22px !important;
  border-radius: 9px;
  font-size: 12px;
}

.rail-label,
.rail-admin-btn .rail-label {
  font-size: 7px !important;
  line-height: .95;
  max-width: 46px;
}

.rail-admin-actions {
  gap: 3px;
  padding-top: 6px;
}

.rail-nav-btn:active .rail-img,
.side-rail .mode-btn:active .rail-img {
  transform: translateY(1px) scale(.975);
}

/* RAIL_ADMIN_MINUS_THIRD_PATCH_VERSION=2026-05-09-rail-admin-minus-third-v1
   Нижние три админ-кнопки левого меню уменьшены примерно на треть.
   Верхние кнопки навигации не затронуты. */
.rail-admin-actions {
  gap: 2px !important;
  padding-top: 4px !important;
}

.rail-admin-actions .rail-admin-btn {
  min-height: 25px !important;
  gap: 0 !important;
  border-radius: 9px !important;
  padding: 1px 0 !important;
}

.rail-admin-actions .rail-admin-icon {
  width: 23px !important;
  height: 23px !important;
}

.rail-admin-actions .rail-admin-icon .rail-img {
  width: 21px !important;
  height: 21px !important;
}

.rail-admin-actions .rail-admin-glyph {
  width: 15px !important;
  height: 15px !important;
  border-radius: 6px !important;
  font-size: 9px !important;
}

.rail-admin-actions .rail-admin-btn .rail-label {
  font-size: 6px !important;
  line-height: .9 !important;
  max-width: 40px !important;
}

/* RAIL_ALL_MINUS_20_KEEP_ADMIN_SMALLER_PATCH_VERSION=2026-05-09-rail-all-minus20-keep-admin-smaller-v1
   Все кнопки левого меню уменьшены ещё примерно на 20%.
   Нижние три админ-кнопки сохраняют отдельный меньший размер. */
:root {
  --rail-width: 50px;
}

.side-rail {
  gap: 1px !important;
  padding: 6px 4px !important;
  border-radius: 15px !important;
}

.rail-nav-btn,
.side-rail .mode-btn,
.rail-admin-btn {
  min-height: 30px !important;
  gap: 0 !important;
  border-radius: 10px !important;
  padding: 0 !important;
}

.rail-icon {
  width: 25px !important;
  height: 25px !important;
}

.rail-icon svg {
  width: 14px !important;
  height: 14px !important;
}

.rail-img,
.rail-admin-actions .rail-admin-icon .rail-img {
  width: 20px !important;
  height: 20px !important;
}

.rail-label,
.rail-admin-btn .rail-label {
  font-size: 5.6px !important;
  line-height: .9 !important;
  max-width: 37px !important;
}

.rail-admin-actions {
  gap: 1px !important;
  padding-top: 3px !important;
  border-top-color: rgba(47,56,60,.07) !important;
}

.rail-admin-actions .rail-admin-btn {
  min-height: 20px !important;
  gap: 0 !important;
  border-radius: 7px !important;
  padding: 0 !important;
}

.rail-admin-actions .rail-admin-icon {
  width: 18px !important;
  height: 18px !important;
}

.rail-admin-actions .rail-admin-icon .rail-img {
  width: 15px !important;
  height: 15px !important;
}

.rail-admin-actions .rail-admin-glyph {
  width: 12px !important;
  height: 12px !important;
  border-radius: 5px !important;
  font-size: 7px !important;
}

.rail-admin-actions .rail-admin-btn .rail-label {
  font-size: 5px !important;
  line-height: .85 !important;
  max-width: 32px !important;
}

.rail-nav-btn:active .rail-img,
.side-rail .mode-btn:active .rail-img {
  transform: translateY(1px) scale(.97) !important;
}

/* RAIL_ALL_PLUS_25_KEEP_ADMIN_SMALLER_PATCH_VERSION=2026-05-09-rail-all-plus25-keep-admin-smaller-v1
   Левые боковые кнопки увеличены примерно на 25% от предыдущего компактного состояния.
   Нижние три админ-кнопки остаются меньше основных. */
:root {
  --rail-width: 63px;
}

.side-rail {
  gap: 1px !important;
  padding: 8px 5px !important;
  border-radius: 18px !important;
}

.rail-nav-btn,
.side-rail .mode-btn,
.rail-admin-btn {
  min-height: 38px !important;
  gap: 0 !important;
  border-radius: 13px !important;
  padding: 0 !important;
}

.rail-icon {
  width: 31px !important;
  height: 31px !important;
}

.rail-icon svg {
  width: 18px !important;
  height: 18px !important;
}

.rail-img,
.rail-admin-actions .rail-admin-icon .rail-img {
  width: 25px !important;
  height: 25px !important;
}

.rail-label,
.rail-admin-btn .rail-label {
  font-size: 7px !important;
  line-height: .9 !important;
  max-width: 46px !important;
}

.rail-admin-actions {
  gap: 1px !important;
  padding-top: 4px !important;
  border-top-color: rgba(47,56,60,.07) !important;
}

.rail-admin-actions .rail-admin-btn {
  min-height: 25px !important;
  gap: 0 !important;
  border-radius: 9px !important;
  padding: 0 !important;
}

.rail-admin-actions .rail-admin-icon {
  width: 23px !important;
  height: 23px !important;
}

.rail-admin-actions .rail-admin-icon .rail-img {
  width: 19px !important;
  height: 19px !important;
}

.rail-admin-actions .rail-admin-glyph {
  width: 15px !important;
  height: 15px !important;
  border-radius: 6px !important;
  font-size: 9px !important;
}

.rail-admin-actions .rail-admin-btn .rail-label {
  font-size: 6px !important;
  line-height: .85 !important;
  max-width: 40px !important;
}

.rail-nav-btn:active .rail-img,
.side-rail .mode-btn:active .rail-img {
  transform: translateY(1px) scale(.975) !important;
}

/* RAIL_ALL_PLUS_15_KEEP_ADMIN_SMALLER_PATCH_VERSION=2026-05-09-rail-all-plus15-keep-admin-smaller-v1
   Левые боковые кнопки увеличены ещё примерно на 15% от текущего состояния.
   Нижние три админ-кнопки остаются меньше основных. */
:root {
  --rail-width: 72px;
}

.side-rail {
  gap: 2px !important;
  padding: 9px 6px !important;
  border-radius: 19px !important;
}

.rail-nav-btn,
.side-rail .mode-btn,
.rail-admin-btn {
  min-height: 44px !important;
  gap: 0 !important;
  border-radius: 15px !important;
  padding: 0 !important;
}

.rail-icon {
  width: 36px !important;
  height: 36px !important;
}

.rail-icon svg {
  width: 21px !important;
  height: 21px !important;
}

.rail-img,
.rail-admin-actions .rail-admin-icon .rail-img {
  width: 29px !important;
  height: 29px !important;
}

.rail-label,
.rail-admin-btn .rail-label {
  font-size: 8px !important;
  line-height: .9 !important;
  max-width: 53px !important;
}

.rail-admin-actions {
  gap: 2px !important;
  padding-top: 5px !important;
  border-top-color: rgba(47,56,60,.07) !important;
}

.rail-admin-actions .rail-admin-btn {
  min-height: 29px !important;
  gap: 0 !important;
  border-radius: 10px !important;
  padding: 0 !important;
}

.rail-admin-actions .rail-admin-icon {
  width: 26px !important;
  height: 26px !important;
}

.rail-admin-actions .rail-admin-icon .rail-img {
  width: 22px !important;
  height: 22px !important;
}

.rail-admin-actions .rail-admin-glyph {
  width: 17px !important;
  height: 17px !important;
  border-radius: 7px !important;
  font-size: 10px !important;
}

.rail-admin-actions .rail-admin-btn .rail-label {
  font-size: 7px !important;
  line-height: .85 !important;
  max-width: 46px !important;
}

.rail-nav-btn:active .rail-img,
.side-rail .mode-btn:active .rail-img {
  transform: translateY(1px) scale(.975) !important;
}


/* Search input clear button + result map highlights */
.search-main-field {
  margin-bottom: 10px;
}
.search-input-wrap {
  position: relative;
  display: block;
  width: 100%;
}
.search-input-wrap .search-input {
  padding-right: 42px;
}
.search-clear-btn {
  position: absolute;
  right: 9px;
  top: 50%;
  transform: translateY(-50%);
  width: 26px;
  height: 26px;
  border: 1px solid rgba(47,56,60,.16);
  border-radius: 999px;
  background: rgba(247,243,234,.92);
  color: var(--text-muted);
  font-size: 20px;
  line-height: 22px;
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 3;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}
.search-clear-btn:hover {
  background: rgba(217,121,69,.16);
  border-color: rgba(217,121,69,.45);
  color: var(--accent-terracotta);
}
.search-clear-btn:active {
  transform: translateY(-50%) scale(.94);
}
.search-clear-btn[hidden] {
  display: none !important;
}
.search-results {
  margin-top: 10px;
}
.search-result-card {
  cursor: pointer;
}
.tg-search-highlight,
.tg-search-highlight-point {
  filter: drop-shadow(0 0 6px rgba(217,121,69,.55));
}

/* Stage 2: category-display config markers */
.cat.cat-default-visible .catName::after{
  content:"по умолчанию";
  display:inline-flex;
  margin-left:6px;
  padding:1px 6px;
  border-radius:999px;
  background:rgba(217,121,69,.14);
  color:#C86536;
  font-size:10px;
  font-weight:700;
  vertical-align:middle;
}
.tg-object-config{ transition:opacity .12s ease, fill-opacity .12s ease; }
.tg-outline-only_outline,
.tg-outline-only-outline{ fill-opacity:0 !important; }
.tg-outline-no_outline,
.tg-outline-no-outline{ stroke-opacity:0 !important; }
.tg-map-point-config{ transition:opacity .12s ease; }

/* SEARCH_RAIL_RESTORE_PATCH_VERSION=2026-05-09-search-rail-restore-v1
   Search mode: return the search/category panel to the left menu.
   The old empty-left-panel rule hides everything except the brand globally;
   these overrides show only useful controls in search mode. */
.app-shell.is-search-mode .sidebar-scroll > .controls-block,
.app-shell.is-search-mode .sidebar-scroll > .categories-block {
  display: block !important;
}

.app-shell.is-search-mode .sidebar-scroll > .details.info-note {
  display: none !important;
}

.app-shell.is-search-mode .search-main-field,
.app-shell.is-search-mode .search-input-wrap,
.app-shell.is-search-mode .search-options,
.app-shell.is-search-mode .search-results {
  display: block !important;
}

.app-shell.is-search-mode .search-option {
  display: flex !important;
}

/* SEARCH_RAIL_ICON_PLUS_PATCH_VERSION=2026-05-09-search-rail-icon-plus-v1
   Slightly larger rail icons without widening the rail itself. */
:root {
  --rail-width: 72px;
}

.side-rail {
  padding-left: 3px !important;
  padding-right: 3px !important;
  gap: 1px !important;
}

.rail-nav-btn,
.side-rail .mode-btn,
.rail-admin-btn {
  min-height: 48px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.rail-icon {
  width: 40px !important;
  height: 40px !important;
}

.rail-img {
  width: 34px !important;
  height: 34px !important;
}

.rail-admin-actions .rail-admin-btn {
  min-height: 31px !important;
}

.rail-admin-actions .rail-admin-icon {
  width: 28px !important;
  height: 28px !important;
}

.rail-admin-actions .rail-admin-icon .rail-img {
  width: 25px !important;
  height: 25px !important;
}

/* Stage 3: admin category display config */
.admin-map-config-panel {
  max-width: 1180px;
}
.admin-map-config-head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 18px;
  align-items: end;
}
.admin-map-config-actions,
.admin-map-config-toolbar {
  display: flex;
  gap: 10px;
  align-items: end;
  flex-wrap: wrap;
}
.admin-map-mode-field {
  min-width: 180px;
  margin: 0;
}
.admin-map-config-table-card {
  padding: 0 !important;
  overflow: hidden;
}
.admin-map-config-table-head {
  display: grid;
  grid-template-columns: minmax(230px, 1.15fr) 180px 160px minmax(420px, 2fr) 210px 150px;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(247,243,234,.76);
  border-bottom: 1px solid rgba(216,208,194,.76);
  color: var(--text-muted,#6F7A76);
  font-size: 11px;
  font-weight: 820;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.admin-map-config-list {
  display: grid;
  gap: 0;
}
.admin-map-rule-row {
  display: grid;
  grid-template-columns: minmax(230px, 1.15fr) 180px 160px minmax(420px, 2fr) 210px 150px;
  gap: 10px;
  align-items: start;
  padding: 13px 14px;
  border-bottom: 1px solid rgba(216,208,194,.62);
  background: rgba(251,248,241,.52);
}
.admin-map-rule-row:nth-child(even) {
  background: rgba(247,243,234,.44);
}
.admin-map-rule-row.is-dirty {
  box-shadow: inset 4px 0 0 rgba(217,121,69,.55);
}
.admin-map-rule-row.is-filtered-out {
  display: none;
}
.admin-map-rule-main,
.admin-map-rule-checks,
.admin-map-rule-zoom,
.admin-map-rule-style,
.admin-map-rule-labels,
.admin-map-rule-actions {
  display: grid;
  gap: 8px;
}
.admin-map-rule-style {
  grid-template-columns: repeat(4, minmax(88px, 1fr));
}
.admin-map-rule-zoom {
  grid-template-columns: 1fr 1fr;
}
.admin-map-rule-checks,
.admin-map-rule-labels {
  align-content: start;
}
.admin-map-rule-actions {
  align-content: start;
}
.admin-map-rule-row .settings-field {
  margin: 0;
  gap: 4px;
}
.admin-map-rule-row .settings-field span,
.admin-map-rule-row .toggle span {
  font-size: 11px;
}
.admin-map-rule-row .input,
.admin-map-config-toolbar .input {
  min-height: 34px;
  font-size: 12px;
}
.admin-map-tag-field input {
  font-weight: 760;
}
.admin-color-input {
  min-width: 44px;
  padding: 4px !important;
}
.admin-map-empty {
  padding: 22px;
  display: grid;
  gap: 6px;
  color: var(--text-muted,#6F7A76);
}
.rail-admin-glyph {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(247,243,234,.78);
  color: var(--text-main,#2F383C);
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(47,56,60,.08);
}
.rail-nav-btn.is-active .rail-admin-glyph,
.rail-admin-btn.is-active .rail-admin-glyph {
  background: rgba(217,121,69,.18);
  color: var(--accent,#D97945);
}
.achievement-toasts,
.achievement-toast,
.achievement-read-all,
.achievement-close {
  pointer-events: auto !important;
}
.achievement-read-all {
  position: relative !important;
  z-index: 10001 !important;
}
@media (max-width: 1180px) {
  .admin-map-config-table-head { display: none; }
  .admin-map-rule-row {
    grid-template-columns: 1fr;
  }
  .admin-map-rule-style {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }
  .admin-map-config-head {
    grid-template-columns: 1fr;
  }
}

/* CATEGORY_CONFIG_STAGE4_PATCH_VERSION=2026-05-09-category-config-stage4-v1
   Compact layer rules table, larger top rail icons, and readable map zoom status. */
.status#status {
  min-width: 164px;
  text-align: left;
  white-space: nowrap;
}

/* Main top rail icons: slightly larger without widening the rail. Admin icons keep their smaller size. */
.side-rail > .rail-nav-btn:not(.rail-admin-btn),
.side-rail > .mode-btn:not(.rail-admin-btn) {
  min-height: 52px !important;
}
.side-rail > .rail-nav-btn:not(.rail-admin-btn) .rail-icon,
.side-rail > .mode-btn:not(.rail-admin-btn) .rail-icon {
  width: 44px !important;
  height: 44px !important;
}
.side-rail > .rail-nav-btn:not(.rail-admin-btn) .rail-img,
.side-rail > .mode-btn:not(.rail-admin-btn) .rail-img {
  width: 39px !important;
  height: 39px !important;
}

/* Admin map-config table: denser rows and smaller controls. */
.admin-map-config-panel {
  max-width: none !important;
}
.admin-map-config-head {
  gap: 12px !important;
  margin-bottom: 10px !important;
}
.admin-map-config-toolbar,
.admin-map-config-actions {
  gap: 7px !important;
}
.admin-map-config-table-head {
  grid-template-columns: minmax(170px,.95fr) 120px 92px minmax(520px,2fr) 150px 102px !important;
  gap: 6px !important;
  padding: 8px 10px !important;
  font-size: 9.5px !important;
  letter-spacing: .045em !important;
}
.admin-map-rule-row {
  grid-template-columns: minmax(170px,.95fr) 120px 92px minmax(520px,2fr) 150px 102px !important;
  gap: 6px !important;
  padding: 8px 10px !important;
}
.admin-map-rule-main,
.admin-map-rule-checks,
.admin-map-rule-zoom,
.admin-map-rule-style,
.admin-map-rule-labels,
.admin-map-rule-actions {
  gap: 5px !important;
}
.admin-map-rule-style {
  grid-template-columns: repeat(6, minmax(60px, 1fr)) !important;
}
.admin-map-rule-row .settings-field {
  gap: 2px !important;
}
.admin-map-rule-row .settings-field span,
.admin-map-rule-row .toggle span {
  font-size: 9.6px !important;
  line-height: 1.05 !important;
}
.admin-map-rule-row .input,
.admin-map-config-toolbar .input {
  min-height: 28px !important;
  height: 28px !important;
  padding: 4px 7px !important;
  font-size: 11px !important;
  border-radius: 9px !important;
}
.admin-map-rule-row select.input {
  padding-right: 18px !important;
}
.admin-color-input {
  min-width: 34px !important;
  padding: 2px !important;
}
.admin-map-rule-checks .toggle,
.admin-map-rule-labels .toggle {
  min-height: 26px !important;
  padding: 4px 5px !important;
  border-radius: 9px !important;
}
.admin-map-rule-actions .btn {
  min-height: 28px !important;
  padding: 4px 7px !important;
  font-size: 11px !important;
  border-radius: 10px !important;
}
.admin-map-config-table-card {
  overflow-x: auto !important;
}
.admin-map-config-list,
.admin-map-config-table-head {
  min-width: 1160px;
}
@media (max-width: 1180px) {
  .admin-map-config-list,
  .admin-map-config-table-head {
    min-width: 0;
  }
  .admin-map-rule-row {
    grid-template-columns: 1fr !important;
  }
  .admin-map-rule-style {
    grid-template-columns: repeat(2, minmax(120px, 1fr)) !important;
  }
}

/* CATEGORY_CONFIG_STAGE5_PATCH_VERSION=2026-05-09-layer-icons-tag-editor-v1
   Admin rail icons for Layers/Stream and explicit tag add/remove controls. */
.rail-admin-actions .rail-admin-glyph-icon {
  display: grid !important;
  width: 28px !important;
  height: 28px !important;
  place-items: center;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.rail-admin-actions .rail-admin-glyph-icon .rail-admin-glyph {
  display: grid !important;
  width: 25px !important;
  height: 25px !important;
  place-items: center;
  border-radius: 10px;
  background: rgba(221,231,226,.78);
  color: #596D64;
  border: 1px solid rgba(47,56,60,.10);
  box-shadow: inset 0 1px 0 rgba(251,248,241,.68), 0 5px 10px rgba(47,56,60,.08);
  font-size: 14px;
  line-height: 1;
  font-weight: 950;
}
.rail-admin-btn:hover .rail-admin-glyph-icon .rail-admin-glyph,
.rail-admin-btn.is-active .rail-admin-glyph-icon .rail-admin-glyph {
  background: linear-gradient(160deg, #D97945, #C86536);
  color: #FBF8F1;
  border-color: rgba(200,101,54,.68);
  box-shadow: 0 8px 14px rgba(200,101,54,.20), inset 0 1px 0 rgba(251,248,241,.22);
}
.admin-map-tag-add {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) max-content;
  gap: 6px;
  min-width: 330px;
}
.admin-map-tag-add .input {
  min-width: 0;
}
.admin-map-rule-row.is-attention {
  animation: adminRuleAttention .9s ease-out 1;
}
@keyframes adminRuleAttention {
  0% { box-shadow: inset 4px 0 0 rgba(217,121,69,.85), 0 0 0 2px rgba(217,121,69,.26); }
  100% { box-shadow: inset 4px 0 0 rgba(217,121,69,0), 0 0 0 0 rgba(217,121,69,0); }
}
@media (max-width: 920px) {
  .admin-map-tag-add {
    grid-template-columns: 1fr;
    min-width: 0;
  }
}

/* UI_FEED_AUTH_LAYERS_PATCH_VERSION=2026-05-09-feed-auth-layers-v1 */
.map-page-head-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}
.map-page-header-save {
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(200,101,54,.42);
  background: var(--accent-terracotta,#D97945);
  color: #FBF8F1;
  font: inherit;
  font-size: 13px;
  font-weight: 760;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(200,101,54,.16);
}
.map-page-header-save:hover {
  background: var(--accent-terracotta-hover,#C86536);
  border-color: rgba(200,101,54,.68);
}
.map-page-header-save[hidden] { display: none !important; }
.map-page-overlay.is-feed-page {
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  z-index: 910 !important;
  transform: none !important;
}
.map-page-overlay.is-feed-page .map-page-panel {
  width: 100% !important;
  height: 100% !important;
  border-radius: var(--radius-xl, 28px) !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(217,121,69,.12), transparent 28%),
    linear-gradient(135deg, rgba(247,243,234,.98), rgba(251,248,241,.94) 56%, rgba(221,231,226,.76));
  box-shadow: none;
}
.map-page-overlay.is-feed-page .map-page-head {
  padding: 18px 22px 14px;
  background: rgba(247,243,234,.78);
  backdrop-filter: blur(14px);
}
.map-page-overlay.is-feed-page .map-page-content {
  padding: 22px;
}
.map-page-overlay.is-feed-page .map-page-lead {
  max-width: 820px;
  margin-bottom: 16px;
}
.map-page-overlay.is-feed-page .feed-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
  align-content: start;
}
.map-page-overlay.is-feed-page .feed-card {
  min-height: 255px;
  background: rgba(251,248,241,.86);
}
.admin-map-config-head-compact {
  padding: 12px 14px !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
.admin-map-config-head-compact .admin-map-config-actions {
  width: 100%;
  justify-content: flex-start;
}
.admin-map-config-head-compact .admin-map-mode-field {
  max-width: 260px;
}
.rail-admin-actions .rail-admin-glyph-icon {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.rail-inline-icon {
  width: 26px;
  height: 26px;
  display: block;
  overflow: visible;
}
.rail-inline-icon path,
.rail-inline-icon circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.rail-inline-icon circle {
  fill: rgba(251,248,241,.72);
}
.rail-admin-btn:hover .rail-inline-icon circle,
.rail-admin-btn.is-active .rail-inline-icon circle {
  fill: rgba(251,248,241,.22);
}
/* Иконки чуть крупнее без увеличения боковых отступов/ширины рейла. */
.rail-icon {
  width: 40px !important;
  height: 40px !important;
}
.rail-img {
  width: 34px !important;
  height: 34px !important;
}
.rail-admin-actions .rail-admin-btn {
  min-height: 34px !important;
}
.rail-admin-actions .rail-admin-icon {
  width: 30px !important;
  height: 30px !important;
}
.rail-admin-actions .rail-admin-icon .rail-img {
  width: 27px !important;
  height: 27px !important;
}
.rail-admin-actions .rail-admin-glyph-icon .rail-inline-icon {
  width: 27px !important;
  height: 27px !important;
}
@media (max-width: 720px) {
  .map-page-overlay.is-feed-page .map-page-content { padding: 14px; }
  .map-page-overlay.is-feed-page .feed-grid { grid-template-columns: 1fr; }
}
.rail-icon .rail-inline-icon {
  display: block !important;
}


/* FEED_LEFT_MENU_AND_HEADER_PATCH_VERSION=2026-05-09-feed-left-menu-v1 */
.app-shell.is-feed-page-mode .left-dock {
  z-index: 18;
}
.app-shell.is-feed-page-mode .sidebar {
  background:
    radial-gradient(circle at 20% 0%, rgba(217,121,69,.20), transparent 34%),
    linear-gradient(180deg, rgba(247,243,234,.96), rgba(251,248,241,.90));
  border-color: rgba(217,121,69,.22);
  box-shadow: 0 18px 38px rgba(47,56,60,.12), inset 0 1px 0 rgba(251,248,241,.86);
}
.app-shell.is-feed-page-mode .sidebar-scroll > :not(.brand-block) {
  display: none !important;
}
.app-shell.is-feed-page-mode .brand-block {
  min-height: 120px;
  display: flex;
  align-items: flex-start;
  padding-top: 22px;
  background: transparent;
}
.app-shell.is-feed-page-mode .brand-subtitle {
  display: none !important;
}
.app-shell.is-feed-page-mode .brand-title::after {
  content: " Лента";
  display: inline;
  margin-left: 8px;
  color: var(--ui-terracotta, #D97945);
  font-style: italic;
  font-weight: 820;
  letter-spacing: -.02em;
}
.map-page-overlay.is-feed-page {
  top: 88px !important;
  left: 18px !important;
  right: 18px !important;
  bottom: 18px !important;
  z-index: 760 !important;
  align-items: stretch !important;
  justify-content: center !important;
  transform: translateY(10px) !important;
}
.map-page-overlay.is-feed-page.is-open {
  transform: translateY(0) !important;
}
.map-page-overlay.is-feed-page .map-page-panel {
  width: min(1180px, 100%) !important;
  height: 100% !important;
  border-radius: 26px !important;
  border: 1px solid rgba(47,56,60,.10) !important;
  background:
    radial-gradient(circle at 12% 0%, rgba(217,121,69,.12), transparent 30%),
    linear-gradient(135deg, rgba(247,243,234,.98), rgba(251,248,241,.94) 58%, rgba(221,231,226,.76)) !important;
  box-shadow: var(--shadow-card) !important;
}
.map-page-overlay.is-feed-page .map-page-head {
  min-height: 46px;
  padding: 10px 14px !important;
  justify-content: flex-end !important;
  background: rgba(247,243,234,.72) !important;
  backdrop-filter: blur(14px);
}
.map-page-overlay.is-feed-page .map-page-title,
.map-page-overlay.is-feed-page .map-page-eyebrow {
  display: none !important;
}
.map-page-overlay.is-feed-page .map-page-content {
  padding: 20px 22px 22px !important;
}

/* MAP_SETTINGS_LINE_NO_OUTLINE_PATCH_VERSION=2026-05-09-line-no-outline-v1 */
.admin-map-config-panel {
  max-width: none !important;
}
