/* ================== Шрифты ================== */
/* Stapel — фирменный шрифт ФВВСР (дисплейный): заголовки, цифры, акценты */
@font-face { font-family:'Stapel'; font-weight:400; font-display:swap; src:url('vendor/fonts/Stapel-Regular.ttf') format('truetype'); }
@font-face { font-family:'Stapel'; font-weight:500; font-display:swap; src:url('vendor/fonts/Stapel-Medium.ttf') format('truetype'); }
@font-face { font-family:'Stapel'; font-weight:700; font-display:swap; src:url('vendor/fonts/Stapel-Bold.ttf') format('truetype'); }
/* Manrope — текстовый шрифт (читабельность в параграфах/UI) */
@font-face { font-family:'Manrope'; font-weight:400; font-display:swap; src:url('vendor/fonts/manrope-400.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-weight:600; font-display:swap; src:url('vendor/fonts/manrope-600.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-weight:700; font-display:swap; src:url('vendor/fonts/manrope-700.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-weight:800; font-display:swap; src:url('vendor/fonts/manrope-800.woff2') format('woff2'); }

/* ================== Токены ФВВСР ================== */
:root {
  /* фирменная палитра */
  --navy: #001E62;       /* Pantone 281c — тёмно-синий */
  --blue: #0F7BFF;       /* Pantone 2727c — голубой (основной акцент) */
  --swim: #39BDF5;       /* Pantone 298c — цвет направления «Плавание» */
  --red:  #DB282C;       /* триколор-красный (минимально) */

  --bg: #00102e;         /* база страницы (глубже навигационного синего) */
  --navy-2: #001844;
  --ink: #eaf2fd;
  --muted: #8ba6cf;
  --line: rgba(120,165,235,.16);
  --line-2: rgba(120,165,235,.30);

  --glass: rgba(0,28,92,.46);
  --glass-2: rgba(0,18,52,.72);
  --glass-brd: rgba(120,165,235,.20);
  --shadow: 0 18px 50px rgba(0,5,25,.55);

  /* тиры ИРОП — фирменная водная шкала (ярче = развитее) */
  --t5: #39BDF5; --t4: #1f9ae6; --t3: #0F7BFF; --t2: #0c4f9e; --t1: #234271;
  --land-nodata: #11223f;

  --grad: linear-gradient(135deg, #001E62 0%, #0F7BFF 70%, #39BDF5 100%);
  --grad-cta: linear-gradient(135deg, #0F7BFF 0%, #39BDF5 100%);
  --maxw: 1060px;
}

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  background: var(--bg); color: var(--ink);
  font: 15px/1.55 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  -webkit-font-smoothing: antialiased; letter-spacing: .1px;
}
h1, h2, h3, .display { font-family:'Stapel','Manrope',system-ui,sans-serif; letter-spacing: .2px; }
a { color: var(--swim); text-decoration: none; }
a:hover { text-decoration: underline; }
::selection { background: rgba(57,189,245,.32); }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: rgba(120,165,235,.22); border-radius: 8px; }
*::-webkit-scrollbar-thumb:hover { background: rgba(120,165,235,.36); }

/* ================== Фон: градиент + аврора + фирменный паттерн ================== */
.bg-aurora { position: fixed; inset: 0; z-index: -3; overflow: hidden; background:
  radial-gradient(1100px 700px at 80% -12%, rgba(15,123,255,.20), transparent 60%),
  radial-gradient(900px 700px at 10% 6%, rgba(0,30,98,.55), transparent 62%),
  radial-gradient(800px 800px at 50% 120%, rgba(57,189,245,.12), transparent 60%),
  linear-gradient(160deg, #001233 0%, #00102e 60%); }
.bg-aurora::before, .bg-aurora::after {
  content: ''; position: absolute; width: 58vmax; height: 58vmax; border-radius: 50%;
  filter: blur(95px); opacity: .4; mix-blend-mode: screen;
}
.bg-aurora::before { background: radial-gradient(circle, #0F7BFF, transparent 60%); top: -22%; left: -8%; animation: drift1 28s ease-in-out infinite alternate; }
.bg-aurora::after  { background: radial-gradient(circle, #39BDF5, transparent 60%); bottom: -26%; right: -10%; animation: drift2 34s ease-in-out infinite alternate; }
.bg-pattern { position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background: url('assets/pattern.svg'); background-size: 72px 72px; opacity: .06;
  mask-image: radial-gradient(ellipse 90% 80% at 50% 25%, #000 35%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 90% 80% at 50% 25%, #000 35%, transparent 100%); }
@keyframes drift1 { from { transform: translate(0,0) scale(1); } to { transform: translate(7%,5%) scale(1.14); } }
@keyframes drift2 { from { transform: translate(0,0) scale(1); } to { transform: translate(-6%,-4%) scale(1.1); } }
@media (prefers-reduced-motion: reduce){ .bg-aurora::before,.bg-aurora::after{ animation:none; } }

/* ================== Топбар ================== */
#topbar {
  position: relative; z-index: 10; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 13px 22px; background: var(--glass); border-bottom: 1px solid var(--glass-brd);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
}
.brand a { display: flex; align-items: center; gap: 14px; color: inherit; }
.brand a:hover { text-decoration: none; }
.logo-fvvsr { height: 34px; width: auto; display: block; filter: invert(1) drop-shadow(0 2px 8px rgba(0,0,0,.45)); }
.brand-div { width: 1px; height: 30px; background: var(--line-2); }
#topbar h1 { font-size: 18px; margin: 0; font-weight: 700; color: #fff; line-height: 1.05; }
.sub { margin: 3px 0 0; font-size: 12px; color: var(--muted); letter-spacing: .2px; font-family: 'Manrope'; }
.controls { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.controls input, .controls select {
  background: rgba(0,12,36,.6); color: var(--ink); border: 1px solid var(--line-2); border-radius: 11px;
  padding: 9px 13px; font: inherit; font-size: 13.5px; outline: none; transition: border-color .15s, box-shadow .15s;
}
.controls input { width: 220px; }
.controls input::placeholder { color: #6a83a8; }
.controls input:focus, .controls select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(15,123,255,.22); }
.controls select {
  cursor: pointer; -webkit-appearance: none; -moz-appearance: none; appearance: none; padding-right: 34px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%238ba6cf' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center;
}

/* ================== Карта ================== */
body.map-page { display: flex; flex-direction: column; overflow: hidden; }
.map-page #app { position: relative; flex: 1 1 auto; display: flex; min-height: 0; }
#map-wrap { position: relative; flex: 1 1 auto; min-width: 0; }
#map { width: 100%; height: 100%; display: block; }

#map path.country { stroke: rgba(0,6,20,.85); stroke-width: .4px; cursor: pointer; transition: fill .25s ease, opacity .15s, filter .15s; }
#map path.country:hover { filter: brightness(1.28) drop-shadow(0 0 7px rgba(57,189,245,.75)); }
#map path.country.selected { stroke: #fff; stroke-width: 1.4px; filter: drop-shadow(0 0 10px rgba(57,189,245,.95)); }
#map path.sphere { fill: rgba(0,16,40,.5); stroke: var(--line-2); stroke-width: .6px; }
#map path.graticule { fill: none; stroke: rgba(120,165,235,.07); stroke-width: .4px; }
#map circle.marker { cursor: pointer; stroke: #00060f; stroke-width: .6px; transition: filter .15s; }
#map circle.marker:hover { filter: brightness(1.3) drop-shadow(0 0 7px rgba(57,189,245,.85)); }

#tooltip {
  position: absolute; pointer-events: none; z-index: 20; background: var(--glass-2);
  border: 1px solid var(--line-2); border-radius: 12px; padding: 9px 12px; font-size: 13px; max-width: 260px;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: var(--shadow);
}
#tooltip .tt-name { font-weight: 700; margin-bottom: 2px; }
#tooltip .tt-idx { color: var(--swim); font-weight: 800; font-family:'Stapel'; }
#tooltip .tt-tier { font-size: 11px; color: var(--muted); }
.hidden { display: none !important; }

#legend {
  position: absolute; left: 18px; bottom: 18px; z-index: 10; background: var(--glass);
  border: 1px solid var(--glass-brd); border-radius: 14px; padding: 12px 14px; font-size: 12px;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: var(--shadow);
}
#legend h4 { margin: 0 0 9px; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; color: var(--muted); font-weight: 700; font-family:'Manrope'; }
#legend .row { display: flex; align-items: center; gap: 9px; margin: 5px 0; }
#legend .sw { width: 18px; height: 12px; border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
#legend .ramp { width: 170px; height: 12px; border-radius: 6px; }
#legend .ramp-labels { display: flex; justify-content: space-between; color: var(--muted); margin-top: 4px; }

#loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 14px; }
#loading::after { content: ''; width: 16px; height: 16px; margin-left: 10px; border: 2px solid rgba(120,165,235,.3); border-top-color: var(--swim); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ================== Боковая панель ================== */
#panel {
  position: relative; flex: 0 0 460px; max-width: 48vw; background: var(--glass-2);
  border-left: 1px solid var(--glass-brd); overflow-y: auto; box-shadow: -24px 0 60px rgba(0,5,25,.55);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
#panel-body { padding: 20px 24px 44px; animation: slidein .35s cubic-bezier(.2,.7,.2,1); }
@keyframes slidein { from { opacity: 0; transform: translateX(26px); } to { opacity: 1; transform: none; } }

/* список стран в панели (когда страна не выбрана) */
.clist-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.clist-head select {
  background: rgba(0,12,36,.6); color: var(--ink); border: 1px solid var(--line-2); border-radius: 9px;
  padding: 6px 30px 6px 11px; font: inherit; font-size: 12.5px; cursor: pointer; -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%238ba6cf' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 10px center;
}
.clist { display: flex; flex-direction: column; gap: 3px; }
.clist-item { display: flex; align-items: center; gap: 11px; width: 100%; text-align: left; background: transparent; border: 1px solid transparent; border-radius: 10px; padding: 8px 10px; cursor: pointer; color: var(--ink); font: inherit; transition: background .12s, border-color .12s; }
.clist-item:hover { background: rgba(15,123,255,.10); border-color: var(--line); }
.ci-flag { font-size: 18px; width: 22px; text-align: center; flex: 0 0 auto; }
.ci-name { flex: 1; font-size: 14px; }
.ci-idx { font-family: 'Stapel'; font-weight: 700; font-size: 16px; min-width: 30px; text-align: right; flex: 0 0 auto; }
.dotc { display: inline-block; width: 11px; height: 11px; border-radius: 50%; }

/* ссылка на методологию в легенде */
.legend-link { display: inline-block; margin-top: 9px; padding-top: 8px; border-top: 1px solid var(--line); font-size: 11.5px; color: var(--swim); text-decoration: none; font-weight: 600; }
.legend-link:hover { text-decoration: underline; }

/* страница методологии */
.meth-tbl { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 6px; }
.meth-tbl th, .meth-tbl td { border: 1px solid var(--line); padding: 9px 12px; text-align: left; vertical-align: top; color: #cdd9ea; }
.meth-tbl th { background: rgba(0,12,36,.5); color: #dbe6f6; font-weight: 700; font-family: 'Manrope'; }
.meth-tbl .w { text-align: center; font-family: 'Stapel'; font-weight: 700; color: var(--swim); width: 80px; }
.tier-sw { display: inline-block; width: 36px; height: 14px; border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.back-btn { background: rgba(0,12,36,.6); color: var(--muted); border: 1px solid var(--line-2); border-radius: 9px; padding: 7px 13px; font: inherit; font-size: 13px; cursor: pointer; margin-bottom: 16px; transition: .15s; }
.back-btn:hover { color: #fff; border-color: var(--blue); }
#panel-close {
  position: sticky; top: 12px; float: right; margin: 12px 12px 0 0; background: rgba(0,12,36,.7);
  color: var(--muted); border: 1px solid var(--line-2); width: 32px; height: 32px; border-radius: 10px;
  cursor: pointer; font-size: 16px; line-height: 1; z-index: 5; transition: .15s;
}
#panel-close:hover { color: #fff; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(15,123,255,.18); }

/* ================== Профильные блоки ================== */
.p-head { display: flex; align-items: center; gap: 12px; }
.p-flag { font-size: 26px; line-height: 1; filter: drop-shadow(0 3px 8px rgba(0,0,0,.45)); }
.p-name { font-size: 25px; font-weight: 700; margin: 0; line-height: 1; color: #fff; }
.p-sub-name { font-size: 13px; color: var(--muted); font-weight: 500; font-family:'Manrope'; margin: 7px 0 0; }
.p-region { color: var(--muted); font-size: 12px; margin: 6px 0 16px; text-transform: uppercase; letter-spacing: .7px; font-family:'Manrope'; }

.score-row { display: flex; align-items: center; gap: 18px; margin-bottom: 6px; }
.ring { display: block; }
.ring-num { font-family:'Stapel'; font-size: 42px; font-weight: 700; fill: #fff; }
.ring-cap { font-size: 9.5px; letter-spacing: 1.5px; fill: var(--muted); text-transform: uppercase; font-family:'Manrope'; font-weight: 600; }
.ring-arc { transition: stroke-dashoffset 1s cubic-bezier(.2,.7,.2,1); }
.tier-chip { display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px; border-radius: 999px; font-weight: 700; font-size: 13px; border: 1px solid var(--line-2); background: rgba(0,12,36,.5); font-family:'Manrope'; }
.tier-chip .dot { width: 10px; height: 10px; border-radius: 50%; }

.radar { width: 100%; max-width: 300px; height: auto; display: block; margin: 4px auto; }
.radar-grid { fill: none; stroke: rgba(120,165,235,.13); }
.radar-axis { stroke: rgba(120,165,235,.17); }
.radar-area { stroke: var(--swim); stroke-width: 2; filter: drop-shadow(0 0 8px rgba(57,189,245,.5)); }
.radar-dot { fill: #fff; stroke: var(--swim); stroke-width: 1.4; }
.radar-label { fill: var(--muted); font-size: 11px; font-weight: 600; font-family:'Manrope'; }

.btn-full {
  display: inline-flex; align-items: center; gap: 8px; margin: 14px 0 18px; padding: 12px 18px;
  background: var(--grad-cta); color: #021b33; font-weight: 800; border-radius: 12px; font-size: 14px;
  box-shadow: 0 10px 24px rgba(15,123,255,.3); transition: transform .15s, box-shadow .15s; font-family:'Manrope';
}
.btn-full:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(57,189,245,.42); text-decoration: none; }

.card { background: var(--glass); border: 1px solid var(--glass-brd); border-radius: 16px; padding: 16px 18px; margin: 14px 0; }
.section-h { font-size: 11.5px; text-transform: uppercase; letter-spacing: .8px; color: var(--muted); margin: 0 0 12px; font-weight: 700; font-family:'Manrope'; }
.summary p { color: var(--ink); margin: 0; display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }

.sub-row { margin: 9px 0; }
.sub-top { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 5px; gap: 10px; }
.sub-top .w { color: var(--muted); font-size: 11px; white-space: nowrap; }
.bar { height: 8px; background: rgba(120,165,235,.13); border-radius: 6px; overflow: hidden; }
.bar > span { display: block; height: 100%; background: var(--grad-cta); border-radius: 6px; box-shadow: 0 0 10px rgba(15,123,255,.5); transition: width .9s cubic-bezier(.2,.7,.2,1); }
.sub-note { font-size: 12px; color: var(--muted); margin: 5px 0 0; }

.docs ul { list-style: none; padding: 0; margin: 0; }
.docs li { padding: 11px 13px; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 9px; background: rgba(0,12,36,.4); transition: border-color .15s, transform .15s; }
.docs li:hover { border-color: var(--blue); transform: translateX(2px); }
.docs a { font-weight: 700; }
.docs .doc-meta { font-size: 11px; color: var(--muted); margin-top: 3px; }
.docs .dl { display: inline-block; margin-top: 7px; font-size: 12px; }
.docs .empty { color: var(--muted); font-size: 13px; }

/* ================== Страница страны ================== */
.country-page main { max-width: var(--maxw); margin: 0 auto; padding: 30px 22px 90px; }
.crumbs { font-size: 12.5px; color: var(--muted); margin-bottom: 18px; letter-spacing: .3px; }
.country-page .hero { display: flex; gap: 26px; align-items: center; flex-wrap: wrap; }
.country-page .hero .meta { flex: 1 1 280px; min-width: 260px; }
.country-page .hero .gauge { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.country-page .lead { font-size: 16px; color: #cfdcef; max-width: 620px; margin: 14px 0 0; }

.toolbar { display: flex; gap: 10px; margin: 22px 0; flex-wrap: wrap; }
.toolbar button, .toolbar a.btn {
  background: var(--glass); color: var(--ink); border: 1px solid var(--line-2); border-radius: 11px;
  padding: 10px 16px; font: inherit; font-size: 13px; cursor: pointer; transition: .15s;
}
.toolbar button:hover, .toolbar a.btn:hover { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(15,123,255,.16); }

.grid2 { display: grid; grid-template-columns: 1.05fr .95fr; gap: 20px; margin-top: 8px; }
@media (max-width: 820px){ .grid2 { grid-template-columns: 1fr; } }

.report-head { display: flex; align-items: center; gap: 12px; margin: 34px 0 6px; }
.report-head h2 { font-size: 21px; margin: 0; font-weight: 700; color: #fff; }
.report-head .badge { font-size: 11px; color: var(--swim); border: 1px solid var(--line-2); border-radius: 999px; padding: 3px 10px; font-family:'Manrope'; text-transform: uppercase; letter-spacing: .6px; }

.profile-md { background: var(--glass); border: 1px solid var(--glass-brd); border-radius: 18px; padding: 26px 30px; margin-top: 14px; }
.profile-md > :first-child { margin-top: 0; }
.profile-md h1 { font-size: 25px; margin: 0 0 10px; color:#fff; }
.profile-md h2 { font-size: 19px; margin: 26px 0 10px; padding-bottom: 7px; border-bottom: 1px solid var(--line); color: var(--swim); }
.profile-md h3 { font-size: 15px; margin: 18px 0 7px; color: #cfddf1; }
.profile-md p, .profile-md li { color: #cdd9ea; }
.profile-md blockquote { border-left: 3px solid var(--blue); margin: 14px 0; padding: 8px 16px; color: #b9c8dc; background: rgba(15,123,255,.07); border-radius: 0 10px 10px 0; }
.profile-md table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 12px 0; }
.profile-md th, .profile-md td { border: 1px solid var(--line); padding: 8px 11px; text-align: left; vertical-align: top; }
.profile-md th { background: rgba(0,12,36,.5); color: #dbe6f6; font-weight: 700; }
.profile-md a { word-break: break-word; }
.profile-md code { background: rgba(0,12,36,.6); padding: 1px 6px; border-radius: 5px; font-size: .9em; }
.profile-md hr { border: none; border-top: 1px solid var(--line); margin: 22px 0; }

/* ================== Вкладка «Россия» ================== */
.tabs { display: flex; gap: 6px; align-items: center; }
.tabs a {
  color: var(--muted); font-size: 13.5px; font-weight: 600; padding: 8px 15px; border-radius: 11px;
  border: 1px solid transparent; transition: .15s; font-family: 'Manrope';
}
.tabs a:hover { color: var(--ink); text-decoration: none; background: rgba(15,123,255,.10); }
.tabs a.active { color: #fff; background: var(--glass); border-color: var(--line-2); }

.stat-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 6px; }
.stat {
  flex: 1 1 150px; min-width: 140px; background: var(--glass); border: 1px solid var(--glass-brd);
  border-radius: 14px; padding: 14px 16px;
}
.stat-num { font-family: 'Stapel'; font-weight: 700; font-size: 30px; color: var(--swim); line-height: 1; }
.stat-lbl { font-size: 12px; color: var(--muted); margin-top: 6px; letter-spacing: .2px; }

.picker { display: flex; flex-direction: column; gap: 10px; }
.picker-label { font-size: 11.5px; text-transform: uppercase; letter-spacing: .8px; color: var(--muted); font-weight: 700; font-family: 'Manrope'; }
.picker-controls { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.subject-select {
  flex: 1 1 320px; min-width: 240px; background: rgba(0,12,36,.6); color: var(--ink);
  border: 1px solid var(--line-2); border-radius: 11px; padding: 11px 36px 11px 14px; font: inherit; font-size: 15px;
  cursor: pointer; -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%238ba6cf' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 13px center;
}
.subject-select:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(15,123,255,.2); }
.btn-ghost {
  background: rgba(0,12,36,.5); color: var(--ink); border: 1px solid var(--line-2); border-radius: 11px;
  padding: 11px 16px; font: inherit; font-size: 13.5px; cursor: pointer; transition: .15s; font-family: 'Manrope'; font-weight: 600;
}
.btn-ghost:hover { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(15,123,255,.16); }

.region-head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin: 26px 0 4px; }
.region-name { font-size: 26px; margin: 0; color: #fff; font-weight: 700; }
.region-fo { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .7px; font-family: 'Manrope'; }

.region-card { margin: 14px 0; }
.rc-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rc-head .section-h { margin: 0; }
.badge { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 4px 11px; font-family: 'Manrope'; letter-spacing: .3px; white-space: nowrap; }
.badge-ok { color: #7df0c4; border: 1px solid rgba(80,220,170,.4); background: rgba(40,180,130,.12); }
.badge-warn { color: #ffd089; border: 1px solid rgba(240,180,80,.4); background: rgba(220,150,40,.12); }

.kv { margin: 12px 0 4px; display: flex; flex-direction: column; gap: 10px; }
.kv > div { display: grid; grid-template-columns: 190px 1fr; gap: 14px; }
.kv dt { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .5px; font-family: 'Manrope'; font-weight: 700; }
.kv dd { margin: 0; color: #cdd9ea; font-size: 14px; }
@media (max-width: 640px){ .kv > div { grid-template-columns: 1fr; gap: 3px; } }

.mini-h { font-size: 12px; color: #cfddf1; margin: 16px 0 8px; font-weight: 700; font-family: 'Manrope'; }
.docs-list, .prog-list { list-style: none; padding: 0; margin: 0; }
.docs-list li { padding: 11px 13px; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 9px; background: rgba(0,12,36,.4); transition: .15s; }
.docs-list li:hover { border-color: var(--blue); }
.docs-list a { font-weight: 700; }
.docs-list .doc-meta { font-size: 11px; color: var(--muted); margin-left: 8px; }
.docs-list .dl { display: inline-block; margin-left: 10px; font-size: 12px; font-weight: 600; }
.empty { color: var(--muted); font-size: 13.5px; margin: 4px 0 0; }

.count-pill { display: inline-block; min-width: 20px; text-align: center; font-family: 'Stapel'; font-size: 13px; color: var(--swim); border: 1px solid var(--line-2); border-radius: 999px; padding: 1px 9px; margin-left: 6px; vertical-align: middle; }
.prog-list li.prog { padding: 13px 15px; border: 1px solid var(--line); border-radius: 13px; margin-bottom: 10px; background: rgba(0,12,36,.4); }
.prog-title { font-weight: 700; color: #eaf2fd; font-size: 15px; }
.prog-org { color: var(--swim); font-size: 12.5px; margin-top: 3px; }
.prog-sum { color: #cdd9ea; margin: 8px 0 0; font-size: 13.5px; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.tag { font-size: 11px; color: var(--muted); border: 1px solid var(--line); border-radius: 7px; padding: 3px 9px; background: rgba(0,12,36,.4); }
.prog-links { margin-top: 9px; font-size: 12.5px; display: flex; gap: 6px; flex-wrap: wrap; }
.prog-links a { font-weight: 600; }
.prog-links a + a::before { content: ''; }

.sp-fo { font-size: 14px; color: var(--swim); margin: 22px 0 8px; font-family: 'Manrope'; font-weight: 700; }
.sp-tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.sp-tbl th, .sp-tbl td { border: 1px solid var(--line); padding: 9px 12px; text-align: left; vertical-align: top; }
.sp-tbl th { background: rgba(0,12,36,.5); color: #dbe6f6; font-weight: 700; font-size: 12px; }
.sp-tbl td { color: #cdd9ea; }
.sp-tbl td:first-child { width: 230px; }
.sp-prog { margin: 2px 0; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.sp-prog + .sp-prog { margin-top: 9px; padding-top: 9px; border-top: 1px dashed var(--line); }
.sp-prog-title { font-weight: 600; color: #eaf2fd; }
.sp-prog-actions { display: inline-flex; gap: 6px; margin-left: auto; }
.mini-btn {
  display: inline-block; font-size: 11.5px; font-weight: 600; font-family: 'Manrope'; line-height: 1;
  color: var(--swim); background: rgba(15,123,255,.10); border: 1px solid var(--line-2);
  border-radius: 8px; padding: 5px 11px; white-space: nowrap; transition: .15s;
}
.mini-btn:hover { color: #fff; background: var(--blue); border-color: var(--blue); text-decoration: none; }

/* сегментный фильтр */
.seg { display: inline-flex; gap: 4px; background: rgba(0,12,36,.5); border: 1px solid var(--line-2); border-radius: 12px; padding: 4px; flex-wrap: wrap; }
.seg button {
  background: transparent; color: var(--muted); border: none; border-radius: 9px; padding: 8px 13px;
  font: inherit; font-size: 12.5px; font-weight: 600; font-family: 'Manrope'; cursor: pointer; transition: .15s; white-space: nowrap;
}
.seg button:hover { color: var(--ink); }
.seg button.active { color: #fff; background: var(--blue); box-shadow: 0 4px 12px rgba(15,123,255,.3); }

/* большая таблица-реестр */
.reg-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; margin-top: 8px; }
.reg-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.reg-tbl thead th {
  position: sticky; top: 0; z-index: 2; background: #03132f; color: #dbe6f6; font-weight: 700; font-size: 11.5px;
  text-transform: uppercase; letter-spacing: .4px; text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line-2); font-family: 'Manrope';
}
.reg-tbl td { padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; color: #cdd9ea; }
.reg-tbl tbody tr:hover td { background: rgba(15,123,255,.05); }
.reg-fo td { background: rgba(0,30,98,.4); color: var(--swim); font-weight: 700; font-size: 12px; text-transform: uppercase;
  letter-spacing: .6px; font-family: 'Manrope'; padding: 8px 12px; border-bottom: 1px solid var(--line-2); }
.reg-subj { border-right: 1px solid var(--line); background: rgba(0,12,36,.25); min-width: 170px; }
.reg-subj-link { font-weight: 700; color: #eaf2fd; font-size: 13.5px; }
.reg-subj-link:hover { color: var(--swim); }
.reg-name { max-width: 460px; }
.reg-name .rn { color: #eaf2fd; font-weight: 600; }
.reg-note { display: block; color: var(--muted); font-size: 11.5px; margin-top: 3px; }
.reg-act { white-space: nowrap; min-width: 150px; }
.reg-act .mini-btn { margin: 0 4px 4px 0; }
.muted-dash { color: var(--muted); }
.mb-sz { opacity: .7; font-weight: 400; }

.cat { display: inline-block; font-size: 10.5px; font-weight: 700; font-family: 'Manrope'; letter-spacing: .3px;
  border-radius: 7px; padding: 3px 9px; white-space: nowrap; border: 1px solid transparent; }
.cat-pdv { color: #9ec5ff; background: rgba(15,123,255,.16); border-color: rgba(15,123,255,.35); }
.cat-add { color: #7df0c4; background: rgba(40,180,130,.14); border-color: rgba(80,220,170,.35); }
.cat-school { color: #ffd089; background: rgba(220,150,40,.13); border-color: rgba(240,180,80,.35); }

@media (max-width: 720px){
  .tabs a { padding: 7px 11px; font-size: 12.5px; }
  #topbar { flex-wrap: wrap; gap: 10px; }
  .reg-name { max-width: none; }
}

/* ================== Статусбар ================== */
#statusbar { position: relative; z-index: 5; display: flex; justify-content: space-between; gap: 12px; padding: 7px 22px; font-size: 12px; color: var(--muted); background: var(--glass); border-top: 1px solid var(--glass-brd); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.map-page #statusbar { flex: 0 0 auto; }

@media (max-width: 860px) {
  .map-page #app { flex-direction: column; }
  #map-wrap { min-height: 46vh; }
  #panel { position: static; flex: 1 1 auto; max-width: none; border-left: none; border-top: 1px solid var(--glass-brd); box-shadow: none; }
  .controls input { width: 150px; }
  #topbar h1 { font-size: 16px; }
}
@media print {
  .bg-aurora, .bg-pattern, #topbar .controls, .toolbar, .crumbs { display: none !important; }
  body { background: #fff; color: #111; }
  .profile-md, .card { background: #fff; border-color: #ddd; }
  .profile-md p, .profile-md li, .profile-md h3 { color: #111; }
  .profile-md h2 { color: #0F7BFF; }
  .profile-md a { color: #06c; }
}
