/* ===== css/page-transition-v1208.css?v=1208 ===== */
/* v.1359 — compositor-safe native navigation, no black intermediate frame. */

/*
 * Every root HTML page already loads this stylesheet.
 * Modern browsers can therefore keep the old document snapshot visible until
 * the new same-origin document has painted, without JS click interception.
 */
@view-transition {
  navigation: auto;
}

/* Do not animate/fade the snapshots — just bridge the document swap. */
::view-transition-old(root),
::view-transition-new(root) {
  animation: none !important;
  mix-blend-mode: normal !important;
}

/*
 * Permanent non-black compositor backdrop.
 * This is also the fallback for browsers without cross-document View Transition.
 */
html {
  background-color: #314b48 !important;
}

html[data-river-theme="dark"] {
  background-color: #182523 !important;
}

body {
  min-height: 100vh;
}

/* Legacy transition classes must never hide or dim the document. */
:root{
  --grafo-page-out: 0ms;
  --grafo-page-in: 0ms;
}

html.grafo-page-entering body,
html.grafo-page-ready body,
html.grafo-page-leaving body{
  opacity:1 !important;
  transition:none !important;
}

html.grafo-page-leaving body{
  pointer-events:auto !important;
}

html.grafo-page-entering .site-river-background-v640,
html.grafo-page-ready .site-river-background-v640,
html.grafo-page-leaving .site-river-background-v640{
  opacity:1 !important;
}


/* ===== css/header-style-quick-menu-v1210c.css?v=1210c ===== */
/* v.1210c — static HTML quick menu based on native <details>. */
#headerQuickMenuDetails{
  position:fixed!important;
  z-index:10053!important;
  left:var(--floating-edge,14px)!important;
  bottom:var(--floating-bottom,18px)!important;
  width:var(--floating-control-width,112px)!important;
  height:var(--floating-control-height,44px)!important;
  margin:0!important;
  padding:0!important;
  pointer-events:auto!important;
}
#headerQuickMenuDetails > summary{
  box-sizing:border-box!important;
  width:var(--floating-control-width,112px)!important;
  height:var(--floating-control-height,44px)!important;
  min-width:var(--floating-control-width,112px)!important;
  min-height:var(--floating-control-height,44px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:0 13px!important;
  border:2px solid rgba(255,255,255,.92)!important;
  border-radius:999px!important;
  background:var(--floating-dark-green,#0e5f5f)!important;
  color:#fff!important;
  box-shadow:0 4px 16px rgba(0,0,0,.27)!important;
  font:700 15px/1 Arial,sans-serif!important;
  cursor:pointer!important;
  list-style:none!important;
  user-select:none!important;
}
#headerQuickMenuDetails > summary::-webkit-details-marker{display:none!important}
#headerQuickMenuDetails > summary::before{
  content:"☰";
  font:700 19px/1 Arial,sans-serif;
}
#headerQuickMenuDetails[open] > summary{
  background:#0a4f52!important;
}
.header-quick-static-panel{
  position:absolute;
  left:0;
  bottom:calc(100% + 8px);
  width:min(330px,calc(100vw - 28px));
  max-height:min(70vh,620px);
  box-sizing:border-box;
  padding:10px;
  overflow:auto;
  border:2px solid rgba(255,255,255,.92);
  border-radius:16px;
  background:rgba(10,80,82,.97);
  color:#fff;
  box-shadow:0 14px 38px rgba(0,0,0,.34);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.header-quick-static-title{
  padding:5px 7px 9px;
  color:#fff;
  font:800 15px/1.15 Arial,sans-serif;
}
.header-quick-static-links{
  display:grid;
  gap:5px;
}
.header-quick-static-link{
  display:flex;
  align-items:center;
  min-height:38px;
  padding:8px 11px;
  box-sizing:border-box;
  border-radius:9px;
  color:#fff!important;
  text-decoration:none!important;
  font:700 13px/1.2 Arial,sans-serif;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}
.header-quick-static-link:hover,
.header-quick-static-link:focus-visible{
  background:rgba(255,255,255,.17);
  border-color:rgba(255,255,255,.28);
}
.header-quick-static-link[aria-current="page"]{
  background:#07943f;
  border-color:rgba(255,255,255,.55);
}
.header-quick-static-separator{
  height:1px;
  margin:5px 3px;
  background:rgba(255,255,255,.18);
}
.header-quick-static-activity{
  background:rgba(255,255,255,.14);
}
@media(max-width:640px){
  #headerQuickMenuDetails{
    left:var(--floating-edge,10px)!important;
    width:var(--floating-control-width,106px)!important;
  }
  #headerQuickMenuDetails > summary{
    width:var(--floating-control-width,106px)!important;
    min-width:var(--floating-control-width,106px)!important;
  }
  .header-quick-static-panel{
    width:min(310px,calc(100vw - 20px));
  }
}
@media print{
  #headerQuickMenuDetails{display:none!important}
}


/* ===== css/fullscreen-fit-drag-v1214.css?v=1214 ===== */
/* v.1214 — fullscreen stage must always contain the active document. */

/* Cancel the many late "top: 72/108/136px" rules which move the grid stage
   without reducing its grid allocation correctly.  The grid itself owns sizing. */
#viewer2026Overlay.viewer4.open {
  grid-template-rows: minmax(72px,1fr) auto auto !important;
  grid-template-columns: minmax(0,1fr) !important;
  gap: 7px !important;
  overflow: hidden !important;
}

#viewer2026Overlay.viewer4.open > .viewer4__stage {
  grid-row: 1 !important;
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 72px !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: hidden !important;
}

#viewer2026Overlay.viewer4.open > .viewer4__controls {
  grid-row: 2 !important;
  position: relative !important;
  margin: 0 auto !important;
  z-index: 40 !important;
}

#viewer2026Overlay.viewer4.open > .viewer4__thumbs {
  grid-row: 3 !important;
  position: relative !important;
  margin: 0 !important;
  z-index: 35 !important;
}

/* Fast snap after release. */
#viewer2026Overlay .viewer4__card {
  transition:
    transform 140ms cubic-bezier(.22,.72,.26,1),
    opacity 115ms ease,
    filter 115ms ease !important;
}

/* Exact mouse-follow while held. */
#viewer2026Overlay .viewer4__stage.grafo-drag-v1214 .viewer4__card,
#viewer2026Overlay .viewer4__stage.grafo-drag-v1214 .viewer4__track {
  transition: none !important;
}

#viewer2026Overlay .viewer4__stage.grafo-drag-v1214 {
  cursor: grabbing !important;
}

#viewer2026Overlay .viewer4__stage.grafo-drag-v1214 .viewer4__card.near {
  visibility: visible !important;
  opacity: .92 !important;
  filter: none !important;
}

/* Very low / ultra-wide browser windows: controls and thumbs remain usable,
   but the scene gets guaranteed room rather than pushing the document away. */
@media (max-height: 520px) {
  #viewer2026Overlay.viewer4.open {
    padding: 5px 8px !important;
    gap: 4px !important;
    grid-template-rows: minmax(86px,1fr) auto auto !important;
  }

  #viewer2026Overlay.viewer4.open > .viewer4__controls {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    min-height: 40px !important;
  }

  #viewer2026Overlay.viewer4.open > .viewer4__thumbs {
    min-height: 82px !important;
    max-height: 108px !important;
  }
}

@media (max-height: 390px) {
  #viewer2026Overlay.viewer4.open {
    grid-template-rows: minmax(92px,1fr) auto 94px !important;
  }

  #viewer2026Overlay.viewer4.open > .viewer4__thumbs {
    height: 94px !important;
    min-height: 94px !important;
    max-height: 94px !important;
  }
}


/* ===== css/remove-password-buttons-v1215.css?v=1215 ===== */
/* v.1215 — no Password/Access Lock button in any Viewer button row. */
#viewer2026Overlay [data-action="access-lock"],
#viewer2026Overlay .viewer122-access-lock,
.doc2026 [data-action="access-lock"],
.doc2026 .viewer122-access-lock,
.viewer4 [data-password-button],
.viewer4 [data-action="password"],
.viewer4 button[name="password"],
.viewer4 button[id*="password" i],
.viewer4 button[class*="password" i] {
  display:none !important;
  visibility:hidden !important;
  width:0 !important;
  min-width:0 !important;
  max-width:0 !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
}


/* ===== css/document-footer-gap-v1236.css?v=1236 ===== */
/* v.1236 — реальное устранение пустого пространства перед футером.
   На страницах с doc2026 просмотрщик находится внутри вложенных .practice.
   Общий layout добавляет padding-block до 96px каждой .practice, поэтому после
   линейки миниатюр суммировался большой пустой участок. */
body.page-documents .page__practice:has(.doc2026),
body.page-documents .practice:has(.doc2026),
body.documentation-page .page__practice:has(.doc2026),
body.documentation-page .practice:has(.doc2026) {
  padding-bottom: 0 !important;
}

/* В documentation.html doc2026 вложен в секцию documents2026; именно её нижний
   padding непосредственно находится между миниатюрами и закрытием секций. */
body.page-documents #documents2026,
body.documentation-page #documents2026 {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* Родительская секция также не должна добавлять второй нижний отступ. */
body.page-documents .page__practice:has(#documents2026),
body.documentation-page .page__practice:has(#documents2026) {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* Сама линейка получает небольшой зазор, сопоставимый с rules.html. */
body.page-documents .doc2026__thumbs-wrap,
body.documentation-page .doc2026__thumbs-wrap {
  padding-bottom: 12px !important;
  margin-bottom: 12px !important;
}

