/* PortfolioLab: общая шапка и оболочка документов, интерфейс 0.13.0.
   Только токены design-system.css и реальные начертания 400/700. Телефон: навигацию даёт mobile-shell.js. */
.site-header,.site-header *,.doc-aside,.doc-aside *,.doc-footer,.doc-breadcrumb{box-sizing:border-box}
.skip-link{position:absolute;left:12px;top:-60px;z-index:60;padding:10px 14px;border-radius:var(--radius-control);background:var(--surface-panel);color:var(--color-action);font-weight:700;text-decoration:none}
.skip-link:focus{top:12px}

.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:28px;min-height:60px;padding:0 28px;background:var(--surface-dark);color:var(--text-on-dark);box-shadow:0 1px 0 #0000001f}
.site-header .site-brand{display:flex;align-items:center;gap:10px;flex:none;color:#fff;text-decoration:none;font-weight:700;font-size:15px;line-height:1.2}
.site-header .site-mark{display:inline-flex;align-items:flex-end;justify-content:center;gap:3px;width:32px;height:32px;padding:8px;border-radius:9px;border:1px solid #ffffff2b;background:#275a45;box-sizing:border-box}
.site-header .site-mark i{display:block;width:4px;background:#d4e8a2;border-radius:1px}
.site-header .site-mark i:nth-child(1){height:7px}.site-header .site-mark i:nth-child(2){height:11px}.site-header .site-mark i:nth-child(3){height:15px}
.site-header .site-nav{display:flex;align-items:center;gap:4px;margin:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;min-width:0}
.site-header .site-nav::-webkit-scrollbar{display:none}
.site-header .site-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;color:var(--text-on-dark-muted);text-decoration:none;font-size:13px;white-space:nowrap}
.site-header .site-nav a:hover{color:#fff;background:#ffffff0d}
.site-header .site-nav a[aria-current]{color:#e0efba;background:#2b4c3d;font-weight:700}
.site-header .site-meta{margin-left:auto;flex:none;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-on-dark-muted);white-space:nowrap}
.site-header .site-meta i{width:6px;height:6px;border-radius:50%;background:#b4d88d}
.site-header a:focus-visible{outline:3px solid #9cc3ef;outline-offset:2px}

/* Документы методики */
body.doc-page{background:var(--surface-page);color:var(--text-body)}
.doc-layout{display:grid;grid-template-columns:268px minmax(0,1fr);gap:48px;max-width:1360px;margin:0 auto;padding:32px 32px 80px;box-sizing:border-box}
.doc-layout>main{max-width:none;margin:0;padding:0;min-width:0}
.doc-aside{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 104px);overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin}
.doc-aside-label{margin:0 0 10px;padding:0 12px;font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-secondary)}
.doc-aside .doc-tabs{display:grid;gap:2px;margin:0 0 22px}
.doc-aside .doc-tabs a{display:flex;align-items:center;min-height:40px;padding:6px 12px;border-radius:var(--radius-control);color:var(--text-body);text-decoration:none;font-size:14px;line-height:1.35}
.doc-aside .doc-tabs a:hover{background:var(--surface-soft)}
.doc-aside .doc-tabs a[aria-current]{background:#dcebe0;color:#0c4f3a;font-weight:700;box-shadow:inset 3px 0 var(--color-action)}
.doc-aside .doc-tabs a.doc-tab-ext::after{content:'↗';margin-left:auto;padding-left:8px;font-size:12px;color:var(--text-secondary)}
.doc-toc{border-top:1px solid var(--color-divider);padding-top:14px}
.doc-toc>summary{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-secondary);list-style:none}
.doc-toc>summary::-webkit-details-marker{display:none}
.doc-toc>summary::before{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.doc-toc[open]>summary::before{transform:rotate(45deg)}
.doc-toc>summary span{margin-left:auto;font-weight:400;letter-spacing:0}
.doc-toc ol{list-style:none;margin:6px 0 0;padding:0}
.doc-toc li{margin:0}
.doc-toc a{display:block;padding:5px 12px 5px 14px;border-left:2px solid var(--color-divider);color:var(--text-secondary);text-decoration:none;font-size:13px;line-height:1.4}
.doc-toc a:hover{color:var(--text-body);border-left-color:var(--color-border)}
.doc-toc a.is-active{color:var(--color-action);border-left-color:var(--color-action);font-weight:700}
.doc-toc .toc-part>a{margin-top:12px;color:var(--text-body);font-weight:700;border-left-color:transparent;padding-left:12px}
.doc-toc .toc-part ol{margin:2px 0 0}

.doc-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px;font-size:13px;color:var(--text-secondary)}
.doc-breadcrumb a{color:var(--text-secondary)}
.doc-layout>main>h1:first-of-type,.doc-layout>main>.doc-breadcrumb+p.metadata+h1,.doc-layout>main>h1{font-size:clamp(28px,3.2vw,40px);line-height:1.15;letter-spacing:-.01em;color:#102a22;margin:6px 0 16px}
.doc-layout>main>h1.doc-part{margin:56px 0 12px;padding-top:28px;border-top:2px solid var(--color-divider);font-size:clamp(23px,2.4vw,30px)}
.doc-layout>main>h1.doc-part::before{content:attr(data-part);display:block;margin-bottom:6px;font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--color-action)}
.doc-layout>main>h2{margin:44px 0 12px;padding-top:4px;font-size:clamp(21px,2vw,25px);line-height:1.3;color:#102a22;scroll-margin-top:84px}
.doc-layout>main :is(h1,h2,h3){scroll-margin-top:84px}
.doc-layout>main>h3{margin:28px 0 8px;font-size:18px;color:#102a22}
.doc-layout>main>:is(p,ul,ol){max-width:78ch}
.doc-layout>main>p.metadata{margin:10px 0 4px;padding:2px 0 2px 12px;border-left:3px solid var(--color-divider);font-size:13px;line-height:1.55;color:var(--text-secondary)}
.doc-layout>main li{margin:6px 0}
.doc-layout>main :not(pre)>code{padding:1px 6px;border-radius:5px;background:#e9efe9;font-size:.85em;color:#173f33}
.doc-layout>main pre{border-radius:10px;border:1px solid var(--color-divider);background:var(--surface-panel);padding:16px 18px;font-size:13px;line-height:1.6}
.doc-layout>main .table-scroll{overflow-x:auto;margin:16px 0 26px;border:1px solid var(--color-divider);border-radius:12px;background:var(--surface-panel)}
.doc-layout>main .table-scroll table{margin:0;border:0;background:transparent}
.doc-layout>main .table-scroll th,.doc-layout>main .table-scroll td{border:0;border-bottom:1px solid var(--color-divider)}
.doc-layout>main .table-scroll tr:last-child td{border-bottom:0}
.doc-layout>main .table-scroll th{background:var(--surface-soft);font-size:12px;letter-spacing:.2px;color:#173f33}
.doc-layout>main .table-scroll tbody tr:nth-child(even){background:#fafcfb}
.doc-layout>main details{margin:10px 0;padding:0 16px;border:1px solid var(--color-divider);border-radius:10px;background:var(--surface-panel)}
.doc-layout>main details>summary{min-height:44px;display:flex;align-items:center;font-size:14px}
.doc-layout>main details[open]{padding-bottom:12px}
.doc-layout>main>p>a[download]{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--surface-panel);text-decoration:none;font-weight:700;font-size:14px}
.doc-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:56px;padding-top:18px;border-top:1px solid var(--color-divider);font-size:13px;color:var(--text-secondary)}
.doc-footer a{color:var(--color-action)}

/* Страницы приложения со своей вёрсткой (денежный рынок, расчётные ряды) */
body.has-site-header:not(.doc-page)>main>nav:first-child,body.has-site-header:not(.doc-page)>main>nav.links{gap:6px 18px;font-size:13px;margin-bottom:18px}

@media (max-width:1100px){
  .site-header{gap:16px;padding:0 18px}
  .site-header .site-meta{display:none}
  .doc-layout{grid-template-columns:minmax(0,1fr);gap:18px;padding:22px 22px 64px}
  .doc-aside{position:static;max-height:none;overflow:visible;padding:0}
  .doc-aside-label{display:none}
  .doc-aside .doc-tabs{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;margin:0 0 12px;padding-bottom:6px;scrollbar-width:thin;overscroll-behavior-inline:contain}
  .doc-aside .doc-tabs a{flex:none;min-height:44px;padding:6px 12px;border:1px solid var(--color-divider);background:var(--surface-panel);white-space:nowrap}
  .doc-aside .doc-tabs a[aria-current]{box-shadow:none;border-color:var(--color-action)}
  .doc-toc{border:1px solid var(--color-divider);border-radius:10px;background:var(--surface-panel);padding:0 4px}
  .doc-toc>summary{min-height:44px}
  .doc-toc[open]{padding-bottom:10px}
  .doc-toc ol{max-height:60vh;overflow:auto}
}
@media (max-width:760px),(max-height:520px) and (pointer:coarse){
  .site-header{display:none}
  .doc-layout{padding:0 0 32px}
  .doc-aside{padding:16px 16px 0}
  .doc-layout>main>h1.doc-part{margin-top:40px}
}
@media (prefers-reduced-motion:reduce){.doc-toc>summary::before{transition:none}}
@media print{
  .site-header,.doc-aside,.skip-link,.doc-footer a{display:none!important}
  .doc-layout{display:block;padding:0;max-width:none}
}
