/* Страница стандарта /standards/<alias> */

.nsd-std {
    --nsd-accent: #0345BF;
    --nsd-border: #dbe2ea;
    --nsd-muted: #5b6673;
}

.nsd-std__crumbs {
    font-size: .875rem;
    color: var(--nsd-muted);
    margin-bottom: 1rem;
}
.nsd-std__crumbs a { color: var(--nsd-accent); text-decoration: none; }
.nsd-std__crumbs a:hover { text-decoration: underline; }
.nsd-std__sep { margin: 0 .4rem; opacity: .5; }

.nsd-std__h1 { font-size: 1.9rem; line-height: 1.25; margin: 0 0 .5rem; }
.nsd-std__subtitle {
    font-size: 1.1rem;
    color: var(--nsd-muted);
    margin: 0 0 1.5rem;
}

/* Интерактивный поиск по типоразмеру */
.nsd-std__finder {
    border: 1px solid var(--nsd-border);
    border-radius: 12px;
    padding: 1.1rem 1.25rem;
    margin-bottom: 1.75rem;
    background: #f7f9fc;
}
.nsd-std__finder-title { font-size: 1.15rem; margin: 0 0 .85rem; }
.nsd-std__finder-form {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.nsd-std__finder-form label {
    display: flex;
    flex-direction: column;
    font-size: .8rem;
    color: var(--nsd-muted);
    gap: .25rem;
}
.nsd-std__finder-form select {
    min-width: 180px;
    padding: .5rem .6rem;
    border: 1px solid var(--nsd-border);
    border-radius: 8px;
    background: #fff;
    font-size: .95rem;
}
.nsd-std__finder-result { margin-top: 1rem; }
.nsd-std__finder-table {
    border-collapse: collapse;
    width: auto;
    min-width: 320px;
    margin: .5rem 0 1rem;
    font-size: .95rem;
}
.nsd-std__finder-table td {
    border: 1px solid var(--nsd-border);
    padding: .4rem .7rem;
}
.nsd-std__finder-table td:first-child { color: var(--nsd-muted); }
.nsd-std__finder-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.nsd-std__finder-btn {
    display: inline-block;
    padding: .55rem 1.1rem;
    border-radius: 8px;
    background: var(--nsd-accent);
    color: #fff !important;
    text-decoration: none;
    font-weight: 600;
}
.nsd-std__finder-btn:hover { filter: brightness(1.08); }
.nsd-std__finder-btn--ghost {
    background: #fff;
    color: var(--nsd-accent) !important;
    border: 1px solid var(--nsd-accent);
}
.nsd-std__finder-empty { color: var(--nsd-muted); }

/* Оглавление */
.nsd-std__toc {
    border: 1px solid var(--nsd-border);
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin-bottom: 2rem;
}
.nsd-std__toc-title { font-size: 1.1rem; margin: 0 0 .6rem; }
.nsd-std__toc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    columns: 2;
    column-gap: 2rem;
}
.nsd-std__toc-item { break-inside: avoid; margin: 0 0 .3rem; }
.nsd-std__toc-item--h3 { padding-left: 1rem; font-size: .92rem; }
.nsd-std__toc-item a { color: var(--nsd-accent); text-decoration: none; }
.nsd-std__toc-item a:hover { text-decoration: underline; }

/* Текст стандарта */
.nsd-std__body { font-size: 1.0625rem; line-height: 1.7; color: #1f2733; }
.nsd-std__body h2 {
    font-size: 1.55rem;
    line-height: 1.3;
    margin: 2.2rem 0 1rem;
    padding-bottom: .4rem;
    border-bottom: 2px solid var(--nsd-accent);
    scroll-margin-top: 90px;
}
.nsd-std__body h3 {
    font-size: 1.25rem;
    margin: 1.6rem 0 .75rem;
    scroll-margin-top: 90px;
}
.nsd-std__body h4 { font-size: 1.08rem; margin: 1.2rem 0 .5rem; }
.nsd-std__body p { margin: 0 0 .9rem; }
.nsd-std__body ul { margin: 0 0 1rem 1.1rem; padding: 0; }
.nsd-std__body li { margin: 0 0 .3rem; }
.nsd-std__body a { color: var(--nsd-accent); }
.nsd-std__caption,
.nsd-std__figcaption {
    font-size: .95rem;
    color: var(--nsd-muted);
    text-align: center;
    margin: .75rem 0;
}
.nsd-std__figure { margin: 1rem 0; text-align: center; }
.nsd-std__figure img {
    max-width: 100%;
    height: auto;
    border: 1px solid var(--nsd-border);
    border-radius: 8px;
    background: #fff;
}

/* Таблицы стандарта */
.nsd-std__table-wrap {
    overflow-x: auto;
    margin: 1rem 0 1.5rem;
    -webkit-overflow-scrolling: touch;
}
.nsd-std__body table {
    border-collapse: collapse;
    font-size: .85rem;
    min-width: 100%;
}
.nsd-std__body caption {
    caption-side: top;
    text-align: left;
    font-size: .95rem;
    color: var(--nsd-muted);
    padding: .3rem 0 .5rem;
}
.nsd-std__body th,
.nsd-std__body td {
    border: 1px solid var(--nsd-border);
    padding: .3rem .45rem;
    text-align: center;
    vertical-align: middle;
}
.nsd-std__body th { background: #eef3fb; font-weight: 600; }

.nsd-std__filterbar {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    margin: 1.5rem 0 .5rem;
}
.nsd-std__filterbar input {
    flex: 1 1 260px;
    padding: .5rem .7rem;
    border: 1px solid var(--nsd-border);
    border-radius: 8px;
    font-size: .95rem;
}

@media (max-width: 700px) {
    .nsd-std__h1 { font-size: 1.45rem; }
    .nsd-std__toc-list { columns: 1; }
}

/* Таблицы данных с двухуровневой шапкой (Ряд 1 / Ряд 2) */
.nsd-std__body table.nsd-std__dt {
    border-collapse: collapse;
    font-size: .8rem;
    width: 100%;
}
.nsd-std__body table.nsd-std__dt caption {
    caption-side: top;
    text-align: left;
    font-weight: 600;
    color: #1f2733;
    padding: .2rem 0 .5rem;
}
.nsd-std__body table.nsd-std__dt thead th {
    background: #eef3fb;
    font-weight: 600;
    padding: .3rem .4rem;
    white-space: nowrap;
}
.nsd-std__body table.nsd-std__dt thead tr:nth-child(2) th {
    font-weight: 400;
    font-size: .72rem;
    color: #5b6673;
}
.nsd-std__body table.nsd-std__dt th[scope="row"] {
    background: #f7f9fc;
    font-weight: 600;
    position: sticky;
    left: 0;
    z-index: 1;
}
.nsd-std__body table.nsd-std__dt .nsd-std__pn { left: 3.5rem; }
.nsd-std__body table.nsd-std__dt td {
    padding: .25rem .4rem;
    text-align: center;
    border: 1px solid #dbe2ea;
    white-space: nowrap;
}

/* Текстовые таблицы (11–15): перенос строк и фиксированная ширина */
.nsd-std__body table.nsd-std__dt--text {
    table-layout: fixed;
}
.nsd-std__body table.nsd-std__dt--text thead th,
.nsd-std__body table.nsd-std__dt--text td {
    white-space: normal;
    text-align: left;
    vertical-align: top;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.nsd-std__body table.nsd-std__dt--text td p {
    margin: .25rem 0;
}
.nsd-std__body table.nsd-std__dt--text td p:first-child { margin-top: 0; }
.nsd-std__body table.nsd-std__dt--text td p:last-child { margin-bottom: 0; }
.nsd-std__body table.nsd-std__dt--numeric thead th { text-align: center; }
.nsd-std__body table.nsd-std__dt--numeric tbody td { text-align: center; font-variant-numeric: tabular-nums; }
.nsd-std__body table.nsd-std__dt--numeric tbody td:first-child { text-align: left; }
.nsd-std__body table.nsd-std__subtable {
    width: 100%;
    border-collapse: collapse;
    margin: .45rem 0;
    font-size: .95em;
}
.nsd-std__body table.nsd-std__subtable th,
.nsd-std__body table.nsd-std__subtable td {
    border: 1px solid var(--nsd-border);
    padding: .2rem .35rem;
    white-space: normal;
    text-align: center;
    vertical-align: middle;
}
.nsd-std__body table.nsd-std__subtable th {
    background: #eef3fb;
    font-weight: 600;
}
.nsd-std__body table.nsd-std__subtable--plain th,
.nsd-std__body table.nsd-std__subtable--plain td {
    border: 0;
    padding: .1rem .3rem;
}
.nsd-std__body p.nsd-std__note {
    font-size: .85rem;
    color: var(--nsd-muted);
    margin: .4rem 0 0;
}
.nsd-std__mass-title { font-size: 1.05rem; margin: 1.4rem 0 .5rem; }
.nsd-std__units {
    text-align: right;
    font-size: .78rem;
    color: #5b6673;
    padding: 0 0 .25rem;
}
.nsd-std__notes-title {
    margin: .6rem 0 .25rem;
    font-weight: 600;
}

@media print {
    .nsd-std__finder,
    .nsd-std__toc,
    .nsd-std__filterbar { display: none !important; }
    .nsd-std__body { font-size: 10pt; }
    .nsd-std__table-wrap { overflow: visible; }
}


/* --- Главы стандарта (разбивка на отдельные страницы) --- */
.nsd-std__layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 1rem;
}
.nsd-std__side {
    position: sticky;
    top: 1rem;
    padding: 14px 16px;
    border: 1px solid #e3e8ef;
    border-radius: 10px;
    background: #fbfcfe;
    font-size: .95rem;
}
.nsd-std__side-title { font-size: 1rem; margin: .2rem 0 .6rem; }
.nsd-std__side .nsd-std__toc-list { list-style: none; padding-left: 0; margin: 0 0 1rem; columns: 1; column-count: 1; }
.nsd-std__side .nsd-std__toc-item { padding: .15rem 0; }
.nsd-std__main { min-width: 0; }
.nsd-std__pager {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid #e3e8ef;
}
.nsd-std__pager a { max-width: 48%; }
.nsd-std__pager-next { margin-left: auto; text-align: right; }

@media (max-width: 900px) {
    .nsd-std__layout { grid-template-columns: 1fr; }
    .nsd-std__side { position: static; }
}

@media print {
    .nsd-std__side,
    .nsd-std__pager { display: none !important; }
}
.nsd-std__side .nsd-std__toc-item--current { font-weight: 600; }
.nsd-std__side .nsd-std__toc-item--current a { color: #0b3d91; }
/* --- Текст по ширине + списки/сноска (1.2.6) --- */
.nsd-std__body p,
.nsd-std__body li { text-align: justify; }
.nsd-std__body ul.nsd-std__list,
.nsd-std__body ol.nsd-std__olist { padding-left: 1.4rem; margin: .6rem 0; }
.nsd-std__body ul.nsd-std__list > li,
.nsd-std__body ol.nsd-std__olist > li { margin-bottom: .35rem; }
.nsd-std__body p.nsd-std__footnote {
    margin-top: 1.2rem;
    padding-top: .6rem;
    border-top: 1px solid #e3e8ef;
    font-size: .95rem;
    color: #444;
}
/* Приложение Д — форма паспорта */
.nsd-std__passport {
    max-width: 900px;
    margin: 1.25rem auto 2rem;
}
.nsd-std__passport-kind { text-align: center; margin: 0 0 .25rem; }
.nsd-std__passport-doc-title { text-align: center; font-size: 1.25rem; margin: 0 0 1.25rem; }
.nsd-std__passport-head th { width: 58%; }
.nsd-std__passport-passport-title { font-weight: 700; font-size: 1.1rem; letter-spacing: .08em; }
.nsd-std__form {
    width: 100%;
    border-collapse: collapse;
    margin: .5rem 0 1rem;
    table-layout: fixed;
}
.nsd-std__form th,
.nsd-std__form td {
    border: 1px solid var(--nsd-border);
    padding: .5rem .65rem;
    vertical-align: top;
}
.nsd-std__form th { background: #f5f8fc; font-weight: 600; text-align: left; }
.nsd-std__form td { height: 2.1rem; }
.nsd-std__form-inner { margin: 0; table-layout: auto; }
.nsd-std__form-inner th,
.nsd-std__form-inner td { padding: .3rem .45rem; font-size: .925em; }
.nsd-std__passport-params > tbody > tr > th:first-child { width: 32%; }
.nsd-std__passport-params .nsd-std__form-inner thead th { text-align: center; }
.nsd-std__passport-section {
    margin: 1.75rem 0 .5rem;
    padding-bottom: .35rem;
    border-bottom: 2px solid var(--nsd-accent);
    font-size: 1.05rem;
}
.nsd-std__passport-note {
    border: 1px solid var(--nsd-border);
    background: #fafbfd;
    padding: .75rem .9rem;
    margin: .75rem 0 1rem;
}
.nsd-std__passport-note p { margin: 0 0 .5rem; }
.nsd-std__fill-area { min-height: 2.5rem; border-bottom: 1px dashed #aab6c4; }
.nsd-std__fill-line {
    display: block;
    border-bottom: 1px solid #6b7785;
    height: 1.4rem;
    margin: .25rem 0 .1rem;
}
.nsd-std__fill-line--inline {
    display: inline-block;
    width: 7rem;
    height: 1em;
    margin: 0 .3rem;
    vertical-align: baseline;
}
.nsd-std__fill-line--short { width: 4.5rem; }
.nsd-std__fill-line--long { width: 100%; max-width: 26rem; height: 1.1em; }
.nsd-std__passport-hint { color: var(--nsd-muted); font-size: .8rem; }
.nsd-std__form-scroll { overflow-x: auto; }
.nsd-std__passport-sign th { width: 32%; }
.nsd-std__passport-sign td { height: 2.2rem; }
@media (max-width: 640px) {
    .nsd-std__passport { margin: 1rem 0; }
    .nsd-std__form th,
    .nsd-std__form td { padding: .35rem .4rem; font-size: .85rem; }
    .nsd-std__passport-params > tbody > tr > th:first-child { width: 38%; }
}
@media print {
    .nsd-std__passport { max-width: none; }
    .nsd-std__form-scroll { overflow: visible; }
}

/* Библиография */
.nsd-std__bib { list-style: none; margin: 1rem 0 1.5rem; padding: 0; }
.nsd-std__bib li { position: relative; padding-left: 3.2rem; margin: 0 0 .65rem; line-height: 1.5; }
.nsd-std__bib-num { position: absolute; left: 0; top: 0; color: var(--nsd-muted); font-variant-numeric: tabular-nums; }
.nsd-std__bib-source { font-weight: 600; }
.nsd-std__bib-colophon {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--nsd-border);
    font-size: .85rem;
    color: var(--nsd-muted);
}
.nsd-std__bib-colophon p { margin: .25rem 0; }
@media (max-width: 640px) {
    .nsd-std__bib li { padding-left: 2.6rem; }
}

/* --- Метаданные, интро, действия, FAQ, related (1.2.29) --- */
.nsd-std__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .9rem;
    align-items: center;
    margin: 0 0 1.25rem;
    font-size: .9rem;
    color: var(--nsd-muted);
}
.nsd-std__badge {
    display: inline-block;
    padding: .2rem .6rem;
    border-radius: 999px;
    background: #eaf1ff;
    color: #0b3d91;
    font-weight: 600;
    font-size: .8rem;
}
.nsd-std__facts {
    margin: 0 0 1.5rem;
    padding: .9rem 1.1rem .9rem 2rem;
    border: 1px solid var(--nsd-border);
    border-radius: 10px;
    background: #f7f9fc;
}
.nsd-std__facts li { margin: .25rem 0; }
.nsd-std__intro { margin: 0 0 1.75rem; }
.nsd-std__intro p { text-align: justify; }
.nsd-std__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin: 0 0 1.75rem;
}
.nsd-std__action {
    display: inline-block;
    padding: .55rem 1.1rem;
    border: 1px solid var(--nsd-accent);
    border-radius: 8px;
    color: var(--nsd-accent) !important;
    background: #fff;
    text-decoration: none;
    font-weight: 600;
}
.nsd-std__action:hover { background: #f0f5ff; }
.nsd-std__action--primary {
    background: var(--nsd-accent);
    color: #fff !important;
}
.nsd-std__action--primary:hover { filter: brightness(1.08); background: var(--nsd-accent); }
.nsd-std__section-title { font-size: 1.25rem; margin: 2rem 0 .85rem; }
.nsd-std__faq-item {
    border: 1px solid var(--nsd-border);
    border-radius: 8px;
    padding: .65rem .9rem;
    margin: 0 0 .5rem;
    background: #fff;
}
.nsd-std__faq-item summary { cursor: pointer; font-weight: 600; }
.nsd-std__faq-answer { margin-top: .5rem; color: #333; }
.nsd-std__related-list { margin: 0; padding-left: 1.2rem; }
.nsd-std__related-list li { margin: .3rem 0; }
.nsd-std__related-list a { color: var(--nsd-accent); }

/* Схемы условных обозначений (28919) */
.nsd-std__scheme {
    margin: 1.25rem 0 1.5rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--nsd-border);
    border-radius: 12px;
    background: #f8fafc;
}
.nsd-std__scheme-title { font-weight: 600; margin: 0 0 .9rem; }
.nsd-std__scheme-line {
    display: flex;
    align-items: flex-start;
    gap: .35rem;
    overflow-x: auto;
    padding-bottom: .25rem;
}
.nsd-std__scheme-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 112px;
    padding-top: 1.1rem;
    position: relative;
}
.nsd-std__scheme-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: .9rem;
    background: var(--nsd-accent);
}
.nsd-std__scheme-value { font-weight: 700; font-size: 1.05rem; line-height: 1.2; }
.nsd-std__scheme-label {
    margin-top: .2rem;
    font-size: .72rem;
    line-height: 1.25;
    color: var(--nsd-muted);
    text-align: center;
}
.nsd-std__scheme-label small { display: block; font-size: .68rem; }
.nsd-std__scheme-sep {
    font-weight: 700;
    font-size: 1.05rem;
    padding-top: 1.1rem;
}
.nsd-std__scheme-note {
    margin: .5rem 0 0;
    font-size: .82rem;
    color: var(--nsd-muted);
}
@media (max-width: 700px) {
    .nsd-std__scheme-item { min-width: 96px; }
    .nsd-std__scheme-label { font-size: .68rem; }
}

/* Нумерованные пункты стандарта (3.1, 4.1, 5.1 …) */
.nsd-std__clause {
    margin: 1rem 0;
    text-align: justify;
}
.nsd-std__clause-num {
    display: inline-block;
    min-width: 3.2em;
    font-weight: 700;
    color: var(--nsd-accent);
}

/* Формы приложений Б и В (ГОСТ 34655-2020) */
.nsd-form {
    margin: 1.5rem 0;
    border: 1px solid var(--nsd-border);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.nsd-form__head {
    padding: 1rem 1.1rem;
    text-align: center;
    border-bottom: 1px solid var(--nsd-border);
    background: #f8fafc;
}
.nsd-form__title { font-size: 1.25rem; font-weight: 700; letter-spacing: .08em; }
.nsd-form__subtitle { margin-top: .25rem; font-size: .95rem; }
.nsd-form__date { margin-top: .6rem; font-size: .9rem; color: var(--nsd-muted); }
.nsd-form__row {
    display: grid;
    grid-template-columns: minmax(180px, 32%) 1fr;
    border-bottom: 1px solid var(--nsd-border);
}
.nsd-form__row:last-child { border-bottom: 0; }
.nsd-form__label {
    padding: .6rem .8rem;
    background: #f5f8fc;
    font-weight: 600;
    font-size: .9rem;
}
.nsd-form__value { padding: .6rem .8rem; font-size: .95rem; }
.nsd-form__checks { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
.nsd-form__check,
.nsd-form__check-line { display: flex; align-items: flex-start; gap: .45rem; font-size: .9rem; }
.nsd-form__check-line { margin: .2rem 0; }
.nsd-form__box {
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    margin-top: .1rem;
    border: 1px solid #6b7785;
    border-radius: 2px;
    background: #fff;
}
.nsd-form__blank {
    display: inline-block;
    min-width: 8rem;
    height: 1.1em;
    border-bottom: 1px solid #6b7785;
    vertical-align: baseline;
}
.nsd-form__blank--short { min-width: 4rem; }
.nsd-form__blank--mid { min-width: 10rem; }
.nsd-form__blank--tiny { min-width: 2rem; }
.nsd-form__field { margin: .2rem 0; }
.nsd-form__parties {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid var(--nsd-border);
}
.nsd-form__party { padding: .8rem; }
.nsd-form__party + .nsd-form__party { border-left: 1px solid var(--nsd-border); }
.nsd-form__party-title { font-weight: 700; margin-bottom: .4rem; }
.nsd-form__party-field { font-size: .9rem; margin: .3rem 0; }
.nsd-form__party-field .nsd-form__blank { min-width: 9rem; }
.nsd-form__sign { padding: .9rem; }
.nsd-form__sign-title { font-weight: 700; margin-bottom: .5rem; }
.nsd-form__sign-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.nsd-form__sign-cell small { display: block; margin-top: .15rem; font-size: .75rem; color: var(--nsd-muted); }
.nsd-form__sign-cell .nsd-form__blank { width: 100%; min-width: 0; }
.nsd-std__form--passport th { width: 42%; }
.nsd-form__passport-title { text-align: center; font-size: 1.1rem; letter-spacing: .08em; }
.nsd-std__form--sign th { text-align: center; }
.nsd-std__form--sign td { height: auto; padding-top: .5rem; }
.nsd-std__form--sign small { display: block; margin-top: .15rem; font-size: .72rem; color: var(--nsd-muted); text-align: center; }
.nsd-std__form--sign .nsd-std__fill-line { margin: 0 auto; width: 85%; }
@media (max-width: 700px) {
    .nsd-form__row { grid-template-columns: 1fr; }
    .nsd-form__label { border-bottom: 1px solid var(--nsd-border); }
    .nsd-form__parties { grid-template-columns: 1fr; }
    .nsd-form__party + .nsd-form__party { border-left: 0; border-top: 1px solid var(--nsd-border); }
    .nsd-form__sign-grid { grid-template-columns: 1fr; }
}
@media print {
    .nsd-form { break-inside: avoid; }
    .nsd-form__row { break-inside: avoid; }
    .nsd-std__form { break-inside: avoid; }
}

/* Паспорт: значения и параметры — по левому краю, шапка — по центру */
.nsd-std__form--passport td { text-align: left; }
.nsd-std__form--passport-head td { text-align: center; }
.nsd-std__form--passport tr > th:last-child { text-align: center; }
