/* Редакционный стиль Протокота: палитра и шкалы определены в tokens.css.
   Разметка страниц и адаптивная навигация остаются общими для приложения. */
body { -webkit-font-smoothing:antialiased; }
.public-page { background:var(--page); background-repeat:no-repeat; }
.public-header { backdrop-filter:none; background:var(--win); }
.topbar, .page-head { background:var(--page); border-color:var(--line); min-height:92px; padding-block:22px; }
.topbar h1, .page-head h1 {
  font-family:var(--serif); font-size:var(--fs-editorial-title); font-weight:400;
  line-height:1.15; letter-spacing:-.03em;
}
.ws-hero-copy h2, .welcome h1 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; }
.ws-section-head h2, .ws-start h2, .pp-section-title h2, .pp-filter-head h2 {
  font-family:var(--serif); font-weight:400; font-size:var(--fs-editorial-section); letter-spacing:-.015em;
}
.ws-feature h3 { font-family:var(--serif); font-weight:400; font-size:var(--fs-h1); }
.ws-hero { background:var(--win); padding:32px; border-color:var(--line); }
.ws-hero-copy h2 { font-size:var(--fs-editorial-hero); }
.ws-shortcuts { background:var(--accent-sunk); border-color:color-mix(in srgb,var(--accent) 18%,var(--line)); box-shadow:none; }
.ws-feature, .ws-start { box-shadow:none; }
.ws-feature:hover { box-shadow:none; }
.ws-feature-icon { background:transparent; }
.ws-features { gap:16px; }
.ws-scenarios { gap:8px; }
.workspace-page .product-main > main { gap:36px; }
.ws-start { background:transparent; }
.pp-overview { border-bottom:1px solid var(--line); padding-bottom:24px; }
.pp-summary button { box-shadow:none; }
:where(.shell, .public-page) .btn { box-shadow:none; }
/* The rail has its own colors so the native controls and mobile drawer retain contrast. */
.shell > .rail {
  --ink:var(--design-rail-ink); --ink-2:var(--design-rail-muted); --muted:var(--design-rail-muted);
  --faint:var(--design-rail-muted); --line:var(--design-rail-line); --line-soft:var(--design-rail-line);
  --win:var(--rail); --chrome:var(--rail); --sunk:var(--design-rail-hover);
  --hover:var(--design-rail-hover); --selected:var(--design-rail-selected);
  --accent:var(--design-rail-accent); --accent-ink:var(--design-rail-accent-ink); --accent-sunk:var(--design-rail-selected);
  color:var(--ink);
}
.shell > .rail .brand { gap:10px; padding:0 8px; max-width:100%; }
.rail .brand .mark { width:40px; height:37px; background:transparent; border-radius:0; }
.protokot-mark { display:block; width:40px; height:37px; object-fit:contain; }
.rail .brand .label { display:flex; min-width:0; }
.protokot-wordmark { display:block; width:130px; height:13px; object-fit:contain; max-width:100%; }
.rail-top { padding-block:24px; }
.shell > .rail a.nav[aria-current] { background:var(--design-rail-selected); color:var(--design-rail-ink); }
.rail a.nav[aria-current] .ic { color:var(--design-rail-accent); }
.rail a.nav[aria-current]::before { background:var(--design-rail-accent); }
.shell > .rail h4 { font-size:var(--fs-editorial-overline); letter-spacing:.08em; }
.shell > .rail .foot { border-top:1px solid var(--design-rail-line); }
.public-mark { width:40px; height:37px; background:transparent; border-radius:0; }
.public-mark img { display:block; width:40px; height:37px; object-fit:contain; }
@media (min-width:641px) and (max-width:1199px) {
  .shell > .rail .rail-top-actions { display:none; }
  .rail .brand .mark, .protokot-mark { width:36px; height:34px; }
  .shell > .rail .brand { padding:0; }
  .rail-top { padding:18px 0 10px; }
  .rail .brand .label { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
}
@media (max-width:640px) {
  .rail-top { padding:0; }
  .rail .brand .mark, .protokot-mark { width:32px; height:30px; }
  .rail .brand .label { display:none; }
  .shell > .rail .brand { padding:0; }
  .topbar, .page-head { min-height:76px; padding-block:18px; }
  /* На модульных страницах шапка компактнее: маршрут ближе к началу экрана. */
  .module-page .page-head { min-height:var(--header-h); padding-block:var(--sp-3); }
  .topbar h1, .page-head h1 { font-size:var(--fs-editorial-title-mobile); }
  .ws-hero { padding:20px; }
  .ws-hero-copy h2 { font-size:var(--fs-editorial-hero-mobile); }
  .ws-section-head h2, .ws-start h2, .pp-filter-head h2 { font-size:var(--fs-editorial-section-mobile); }
  .workspace-page .product-main > main { gap:28px; }
}
/* Native status rows sit in the workspace column, independent of rail colors. */
.shell > .main > .statusbar {
  background:var(--page); color:var(--muted); border-top:1px solid var(--line);
}
/* При увеличении масштаба высота окна карты тоже уменьшается: компактная
   шапка оставляет её поиск и навигацию целиком в видимой области. */
@media (max-height:480px) {
  .shell:has(.stm) > .main > .topbar { min-height:var(--header-h); padding-block:var(--sp-3); }
}
