.doc-page {
    color: var(--text-white-color);
    font-family: var(--text-font);
}

.doc-page .page-inner {
    max-width: 110rem;
    margin: 0 auto;
    padding: clamp(16px, 2vw, 28px);
}

/* Header + breadcrumbs */
.doc-page .header-wrap {
    margin-bottom: 24px;
}
.doc-page .header-title {
    color: var(--text-white-color);
    margin: 6px 0 0;
    font-weight: 800;
    letter-spacing: 0.2px;
    font-family: var(--title-font);
}
.doc-page .breadcrumbs__list {
    display: flex;
    gap: 8px;
    align-items: center;
    opacity: 0.85;
    font-size: 14px;
    margin-bottom: 12px;
}
.doc-page .breadcrumbs__item a {
    color: var(--light-grey);
    text-decoration: none;
}

/* Layout: TOC + content */
.doc-page .content-wrap {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 28px;
}
@media (max-width: 1024px) {
    .doc-page .content-wrap {
        grid-template-columns: 1fr;
    }
}

/* TOC */
.doc-page .toc {
    position: sticky;
    top: 16px;
    align-self: start;
    background: var(--background-black);
    border: 1px solid var(--background-50);
    border-radius: 14px;
    padding: 16px 14px;
    font-size: 15px;
}
.doc-page .toc h3 {
    margin: 0 0 8px;
    font-size: 14px;
    color: var(--light-grey);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.doc-page .toc ul {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 62vh;
    overflow: auto;
}
.doc-page .toc li {
    margin: 6px 0;
}
.doc-page .toc a {
    display: block;
    text-decoration: none;
    color: var(--text-white-color);
    opacity: 0.85;
    border-radius: 8px;
    padding: 6px 8px;
}
.doc-page .toc a:hover {
    opacity: 1;
    background: rgba(255, 255, 255, 0.08);
}
.doc-page .lvl-3 {
    margin-left: 10px;
    font-size: 0.95em;
    opacity: 0.9;
}

/* Card */
.doc-page .card {
    background: var(--background-70);
    border: 1px solid var(--background-50);
    border-radius: 18px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
    width: 100%;
}
.doc-page .doc-body {
    padding: 28px 24px;
}

/* Prose / typography */
.doc-page .prose {
    color: var(--text-white-color);
    line-height: 1.75;
    font-size: 18px;
    /* комфортная ширина текста и центрирование */

    margin-inline: auto;
    word-wrap: break-word;
    overflow-wrap: anywhere;
}
.doc-page .prose > * + * {
    margin-top: 1em;
}
.doc-page .prose h2,
.doc-page .prose h3,
.doc-page .prose h4 {
    scroll-margin-top: 90px;
}
.doc-page .prose h2 {
    margin-top: 1.6em;
    margin-bottom: 0.6em;
    font-weight: 800;
    font-size: clamp(22px, 2.2vw, 28px);
    letter-spacing: 0.2px;
}
.doc-page .prose h3 {
    margin-top: 1.4em;
    margin-bottom: 0.4em;
    font-weight: 700;
    font-size: clamp(18px, 1.9vw, 22px);
}
.doc-page .prose h4 {
    margin-top: 1.2em;
    margin-bottom: 0.3em;
    font-weight: 700;
    font-size: 16px;
    opacity: 0.95;
}
.doc-page .prose p {
    opacity: 0.95;
    text-wrap: pretty;
}
.doc-page .prose a {
    color: var(--blue);
    text-decoration: underline;
    text-decoration-color: rgba(0, 148, 232, 0.35);
}
.doc-page .prose a:hover {
    text-decoration-color: rgba(0, 148, 232, 0.7);
}

/* Lists */
.doc-page .prose ul,
.doc-page .prose ol {
    padding-left: 1.2em;
}
.doc-page .prose li + li {
    margin-top: 0.35em;
}

/* Tables */
.doc-page .prose table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--background-50);
    border-radius: 12px;
    overflow: hidden;
}
.doc-page .prose thead th {
    background: var(--background-grey);
    text-align: left;
    font-weight: 700;
}
.doc-page .prose th,
.doc-page .prose td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--background-50);
}
.doc-page .prose tr:last-child td {
    border-bottom: 0;
}
.doc-page .prose tbody tr:hover {
    background: rgba(255, 255, 255, 0.05);
}

/* Media */
.doc-page .prose img,
.doc-page .prose video {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--background-50);
}

/* Code */
.doc-page .prose code {
    background: rgba(255, 255, 255, 0.07);
    padding: 0.1em 0.35em;
    border-radius: 6px;
    border: 1px solid var(--background-50);
    font-family:
        ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.95em;
}
.doc-page .prose pre {
    background: var(--background-black);
    border: 1px solid var(--background-50);
    border-radius: 12px;
    padding: 14px 16px;
    overflow: auto;
}
.doc-page .prose pre code {
    background: transparent;
    border: 0;
    padding: 0;
}

/* Callouts */
.doc-page .callout {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    border: 1px solid var(--background-50);
    border-radius: 12px;
    padding: 14px 16px;
}
.doc-page .callout.info {
    background: rgba(0, 148, 232, 0.08);
}
.doc-page .callout.warn {
    background: rgba(255, 165, 0, 0.08);
}
.doc-page .callout.ok {
    background: rgba(36, 193, 108, 0.08);
}

/* Width overrides to kill legacy narrow blocks */
.doc-page .card__wrapper,
.doc-page .main__text,
.doc-page .main__text--tiny,
.doc-page .main__content,
.doc-page .page-wrapper__content,
.doc-page [class*="__text"] {
    max-width: none !important;
    width: 100% !important;
}

/* Animation */
.doc-page .fade-in {
    animation: fade 0.4s ease-out;
}
@keyframes fade {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}
@media (max-width: 768px) {
  .content-wrap aside.toc {
    display: none !important;
  }
}

/* Print */
@media print {
    .doc-page .toc,
    .doc-page .breadcrumbs,
    .doc-page .header-wrap {
        display: none;
    }
    .doc-page .page-inner {
        max-width: 100%;
        padding: 0;
    }
    .doc-page .card {
        box-shadow: none;
        border: 0;
    }
    .doc-page .prose a {
        text-decoration: none;
    }
}
