:root{--bg:#f6f7fb;--surface:#fff;--surface2:#f0f3f8;--text:#16181d;--muted:#6f7785;--line:#e4e8ef;--brand:#ff5a1f;--brand2:#ef4510;--brandsoft:#fff0e9;--sidebar:#1b1e25;--sidebar2:#242932;--sideText:#f7f8fb;--sideMuted:#9ba3b1;--success:#16895a;--danger:#c83434;--shadow:0 12px 32px rgba(24,32,50,.08);--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"Segoe UI Variable Text","Segoe UI",Tahoma,Arial,sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:292px;background:var(--sidebar);color:var(--sideText);display:flex;flex-direction:column;z-index:20}.brand{height:78px;padding:16px 20px;display:flex;align-items:center;gap:12px}.brand img{width:44px;height:44px;object-fit:contain}.brand div{display:flex;flex-direction:column}.brand strong{font-size:18px;letter-spacing:.03em}.brand span{font-size:12px;color:var(--sideMuted);margin-top:2px}.search-wrap{padding:0 14px 14px;position:relative}.search-wrap form{display:flex;align-items:center;background:var(--sidebar2);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:0 10px}.search-wrap svg{width:17px;height:17px;fill:none;stroke:#aab2bf;stroke-width:2}.search-wrap input{flex:1;min-width:0;height:40px;background:transparent;border:0;outline:0;color:white;padding:0 9px}.search-wrap kbd{font-size:10px;background:#343b47;color:#aeb6c3;border-radius:6px;padding:4px 6px}.docs-nav{overflow:auto;padding:0 10px 24px}.nav-section{margin:10px 0 18px}.nav-section-title{padding:8px 10px;display:flex;align-items:center;gap:8px;color:#8f98a8;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.nav-icon,.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}.nav-link{display:flex;align-items:center;gap:10px;color:#d9dde5;text-decoration:none;border-radius:10px;padding:9px 10px;margin:2px 0;font-size:14px}.nav-link:hover{background:rgba(255,255,255,.06);color:#fff}.nav-link.active{background:rgba(255,90,31,.17);color:#fff}.nav-link.active .nav-icon{color:#ff7d4d}.nav-children{margin-left:18px;border-left:1px solid #363b46;padding-left:7px}.nav-link.child{font-size:13px}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:15px 20px;color:#707a89;font-size:12px}.content{margin-left:292px;min-height:100vh}.article{width:min(920px,calc(100% - 64px));margin:0 auto;padding:64px 0 72px}.article-head{padding-bottom:28px;border-bottom:1px solid var(--line)}.crumb{color:var(--brand);font-size:12px;font-weight:700;margin-bottom:12px}.article h1{font-size:40px;line-height:1.12;margin:0 0 14px;letter-spacing:-.025em}.lead{font-size:18px;line-height:1.65;color:var(--muted);margin:0;max-width:760px}.article-body{font-size:16px;line-height:1.78;padding-top:28px}.article-body h2{font-size:27px;margin:38px 0 14px;letter-spacing:-.015em}.article-body h3{font-size:21px;margin:28px 0 10px}.article-body p{margin:12px 0}.article-body ul,.article-body ol{padding-left:25px}.article-body li{margin:7px 0}.article-body code{font-family:Consolas,"SFMono-Regular",monospace;background:#eef1f6;border:1px solid #e0e5ed;border-radius:6px;padding:2px 6px;font-size:.92em}.article-body pre{background:#1f232b;color:#f5f6f8;border-radius:14px;padding:18px;overflow:auto}.article-body pre code{background:transparent;border:0;padding:0;color:inherit}.article-body blockquote{margin:20px 0;padding:14px 18px;border-left:4px solid var(--brand);background:var(--brandsoft);border-radius:0 12px 12px 0}.article-body a{color:#db4b17;text-decoration-thickness:1px;text-underline-offset:3px}.article-body hr{border:0;border-top:1px solid var(--line);margin:34px 0}.article-body table{border-collapse:collapse;width:100%;margin:18px 0}.article-body th,.article-body td{border:1px solid var(--line);padding:10px 12px;text-align:left}.gallery-block{margin-top:40px}.gallery-block h2{font-size:27px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gallery figure{margin:0}.gallery-image{padding:0;border:1px solid var(--line);background:white;border-radius:14px;overflow:hidden;cursor:zoom-in;display:block;width:100%;box-shadow:var(--shadow)}.gallery-image img{display:block;width:100%;height:250px;object-fit:cover}.gallery figcaption{font-size:13px;color:var(--muted);padding:8px 2px}.article-footer{margin-top:42px;color:#9299a5;font-size:12px}.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}.pager a{display:flex;flex-direction:column;text-decoration:none;color:var(--text);padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}.pager a:hover{border-color:#ffbea5}.pager .next{text-align:right}.pager small{color:var(--muted);margin-bottom:5px}.search-popover{display:none;position:absolute;left:14px;right:14px;top:48px;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:50}.search-popover.open{display:block}.search-popover a{display:block;padding:11px 12px;color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}.search-popover a:last-child{border:0}.search-popover a:hover{background:#fafafa}.search-popover strong{display:block}.search-popover span{font-size:12px;color:var(--muted)}.search-results{display:grid;gap:12px;margin-top:26px}.search-results a{background:white;border:1px solid var(--line);padding:18px;border-radius:14px;text-decoration:none;color:inherit}.search-results a:hover{border-color:#ffbea5}.search-results p{color:var(--muted);margin:7px 0 0}.lightbox{position:fixed;inset:0;background:rgba(8,10,14,.9);z-index:100;display:flex;align-items:center;justify-content:center;padding:50px}.lightbox[hidden]{display:none}.lightbox img{max-width:calc(100vw - 160px);max-height:calc(100vh - 120px);object-fit:contain;border-radius:10px}.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.12);color:white;cursor:pointer;border-radius:50%;width:46px;height:46px;font-size:32px}.lightbox-close{right:24px;top:20px}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-caption{position:absolute;bottom:18px;color:white;font-size:14px}.mobile-menu{display:none}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#1b1e25,#2b313b)}.login-card{width:min(420px,calc(100% - 30px));background:white;border-radius:20px;padding:32px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.login-card img{width:58px;display:block;margin:auto}.login-card h1{text-align:center;margin:12px 0 3px}.login-card p{text-align:center;color:var(--muted);margin:0 0 24px}.login-card label,.admin-dialog label,.editor-card label,.media-card label{display:grid;gap:7px;font-size:13px;font-weight:700;margin:12px 0}.login-card input,.admin-dialog input,.admin-dialog select,.editor-card input,.editor-card select,.editor-card textarea,.media-card input{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font:inherit;outline:none}.login-card input:focus,.editor-card input:focus,.editor-card textarea:focus,.editor-card select:focus{border-color:#ff9a73;box-shadow:0 0 0 3px rgba(255,90,31,.1)}button,.primary,.ghost,.danger{font:inherit}.primary,.ghost,.danger{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 14px;text-decoration:none;cursor:pointer;border:0;font-weight:700}.primary{background:var(--brand);color:#fff}.primary:hover{background:var(--brand2)}.ghost{background:#eef1f5;color:#333}.danger{background:#fff0f0;color:#b92f2f}.form-error{background:#fff0f0;color:#a72828;padding:10px;border-radius:9px;margin-bottom:10px}.admin-body{background:#f5f6fa}.admin-top{height:72px;background:var(--sidebar);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.admin-top .brand{height:auto;padding:0}.admin-top .brand img{width:38px;height:38px}.admin-top>div:last-child{display:flex;gap:8px;align-items:center}.admin-top form{margin:0}.admin-main,.editor-main{max-width:1280px;margin:auto;padding:28px}.admin-intro{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:20px}.admin-intro h1{margin:0 0 5px}.admin-intro p{color:var(--muted)}.admin-section{background:#fff;border:1px solid var(--line);border-radius:16px;margin:14px 0;overflow:hidden}.admin-section-head{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line)}.admin-section-head>div:nth-child(2){display:flex;flex-direction:column}.admin-section-head span{color:var(--muted);font-size:12px}.admin-actions{margin-left:auto;display:flex;gap:8px}.smallbtn{padding:8px 11px;font-size:12px}.admin-pages{padding:8px}.admin-page-row{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px}.admin-page-row:hover{background:#f7f8fa}.admin-page-row.child{margin-left:28px}.admin-page-row a{display:flex;flex-direction:column;text-decoration:none;color:inherit;flex:1}.admin-page-row small,.pos,.visibility{font-size:11px;color:var(--muted)}.pos{width:24px}.visibility{background:#eef8f3;color:#247253;padding:4px 7px;border-radius:999px}.admin-dialog{border:0;border-radius:18px;padding:22px;width:min(520px,calc(100% - 30px));box-shadow:0 20px 70px rgba(0,0,0,.2)}.admin-dialog::backdrop{background:rgba(20,22,28,.45)}.admin-dialog h2{margin-top:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important}.check input{width:auto!important}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.editor-card{background:white;border:1px solid var(--line);border-radius:18px;padding:20px}.editor-title-row{display:flex;align-items:center;justify-content:space-between}.editor-title-row h1{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.rich-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:9px;background:#f3f5f8;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;margin-top:16px}.rich-toolbar button{border:1px solid #dfe3e9;background:white;border-radius:7px;padding:6px 9px;cursor:pointer}.rich-editor{min-height:520px;border:1px solid var(--line);border-radius:0 0 12px 12px;padding:18px;outline:none;font-size:16px;line-height:1.7}.rich-editor:focus{border-color:#ffae8f}.rich-editor h2{font-size:26px}.rich-editor code{font-family:Consolas,monospace;background:#eef1f6;padding:2px 5px;border-radius:5px}.savebar{display:flex;gap:10px;margin-top:14px}.media-card{align-self:start}.media-card h2{margin-top:0}.media-card>p{color:var(--muted);font-size:13px;line-height:1.5}.media-list{display:grid;gap:12px;margin-top:18px}.media-item{border:1px solid var(--line);border-radius:12px;padding:10px}.media-item img{width:100%;height:150px;object-fit:cover;border-radius:8px}.media-item form{display:grid;gap:6px;margin-top:8px}.media-item input{margin:0}.empty{padding:22px;color:var(--muted)}@media(max-width:980px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.content{margin-left:0}.mobile-menu{display:block;position:fixed;left:14px;top:14px;z-index:30;border:0;background:var(--sidebar);color:white;border-radius:10px;width:44px;height:44px;font-size:21px}.article{width:min(900px,calc(100% - 34px));padding-top:80px}.editor-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}}@media(max-width:620px){.article h1{font-size:32px}.lead{font-size:16px}.pager{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.admin-main,.editor-main{padding:14px}.admin-top{padding:0 12px}.admin-top .ghost{font-size:12px}.article{width:calc(100% - 26px)}.gallery-image img{height:210px}}

/* =========================================================
   Sprut Docs 1.0.2 - consolidated UI/editor update
   ========================================================= */

/* Public documentation typography */
.article-head h1,.article h1{font-size:26px!important;line-height:1.18!important;letter-spacing:-.01em!important;margin:0 0 8px!important;font-weight:700!important}
.article-head .lead,.lead{font-size:15px!important;line-height:1.45!important;margin:0!important}
.article-head{padding-bottom:18px!important}
.article-body{padding-top:18px!important;font-size:15px!important;line-height:1.65!important}
.article-body h2{font-size:20px!important;line-height:1.25!important;font-weight:700!important;margin-top:26px!important;margin-bottom:10px!important;letter-spacing:0!important}
.article-body h3{font-size:17px!important;line-height:1.3!important;font-weight:700!important;margin-top:20px!important;margin-bottom:8px!important}
.article-body h4{font-size:16px!important;line-height:1.3!important;margin-top:18px!important;margin-bottom:7px!important}
.article-body p{margin:9px 0!important}.article-body li{margin:5px 0!important}.article-body blockquote{margin:16px 0!important;padding:12px 16px!important}.crumb{margin-bottom:10px!important}
@media(max-width:900px){.article-head h1,.article h1{font-size:24px!important}.article-body h2{font-size:19px!important}.article-body h3{font-size:17px!important}}
@media(max-width:600px){.article-head h1,.article h1{font-size:22px!important}.article-head .lead,.lead{font-size:14px!important}.article-body{font-size:14px!important}.article-body h2{font-size:18px!important}.article-body h3{font-size:16px!important}}

/* Sidebar scrollbar: invisible until hover */
.docs-nav{scrollbar-width:thin;scrollbar-color:transparent transparent}
.sidebar:hover .docs-nav{scrollbar-color:rgba(155,163,177,.42) transparent}
.docs-nav::-webkit-scrollbar{width:4px}.docs-nav::-webkit-scrollbar-track{background:transparent}.docs-nav::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}.sidebar:hover .docs-nav::-webkit-scrollbar-thumb{background:rgba(155,163,177,.42)}.docs-nav::-webkit-scrollbar-thumb:hover{background:rgba(190,197,208,.62)}

/* Sprut-style custom selects */
.sprut-native-select-hidden{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.sprut-custom-select{position:relative;width:100%;font-weight:400}
.sprut-select-button{width:100%;height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:#20242b;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.sprut-select-button:hover{border-color:#cfd5de;background:#fbfbfc}.sprut-custom-select.open .sprut-select-button{border-color:#ff7a49;box-shadow:0 0 0 3px rgba(255,90,31,.11)}
.sprut-select-value{min-width:0;display:flex;align-items:center;gap:9px}.sprut-select-value span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sprut-select-value svg,.sprut-select-option>svg:first-child{width:18px;height:18px;flex:none;fill:none;stroke:#69717d;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sprut-select-chevron{width:17px;height:17px;fill:none;stroke:#737b87;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}.sprut-custom-select.open .sprut-select-chevron{transform:rotate(180deg)}
.sprut-select-menu{display:none;position:absolute;z-index:300;left:0;right:0;top:calc(100% + 6px);max-height:280px;overflow-y:auto;padding:6px;background:#fff;border:1px solid #dfe3ea;border-radius:11px;box-shadow:0 12px 30px rgba(26,31,40,.14),0 2px 6px rgba(26,31,40,.06);scrollbar-width:thin;scrollbar-color:#c9ced6 transparent}.sprut-custom-select.open .sprut-select-menu{display:block}.sprut-select-menu::-webkit-scrollbar{width:5px}.sprut-select-menu::-webkit-scrollbar-track{background:transparent}.sprut-select-menu::-webkit-scrollbar-thumb{background:#c9ced6;border-radius:999px}
.sprut-select-option{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:#272b31;font:inherit;font-size:14px;text-align:left;cursor:pointer}.sprut-select-option:hover{background:#f3f4f7}.sprut-select-option.selected{background:rgba(255,90,31,.10);color:#d94b17}.sprut-select-option.selected>svg:first-child{stroke:#ef5a24}.sprut-option-check{width:16px!important;height:16px!important;margin-left:auto;opacity:0;fill:none;stroke:#ef5a24!important;stroke-width:2.2!important}.sprut-select-option.selected .sprut-option-check{opacity:1}

/* Normal document editor toolbar */
.rich-toolbar{display:flex!important;align-items:center;flex-wrap:wrap;gap:5px;padding:8px;background:#f3f5f8;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;margin-top:16px;position:sticky;top:71px;z-index:5}
.editor-format-wrap{min-width:165px}.editor-block-style{height:36px;width:100%;border:1px solid #d9dee7;border-radius:8px;background:#fff;color:#20242b;padding:0 30px 0 10px;font:inherit;font-size:14px;outline:none;cursor:pointer}.editor-block-style:focus{border-color:#ff7a49;box-shadow:0 0 0 3px rgba(255,90,31,.10)}
.toolbar-separator{width:1px;height:25px;background:#d8dde5;margin:0 3px}.toolbar-btn{height:36px;min-width:36px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d9dee7!important;background:#fff!important;color:#252a31!important;border-radius:8px!important;font:inherit;font-size:14px;cursor:pointer;transition:.12s ease;user-select:none}.toolbar-btn:hover{background:#f8f9fb!important;border-color:#c8cfd9!important}.toolbar-btn.active{background:#fff0e9!important;border-color:#ff9b75!important;color:#d94914!important;box-shadow:inset 0 0 0 1px rgba(255,90,31,.08)}.toolbar-wide{min-width:auto;padding:0 11px}.toolbar-clear{margin-left:auto;color:#5f6875!important}

/* Editor body mirrors article typography for normal text */
.rich-editor{min-height:520px;border:1px solid #ff8d65!important;border-radius:0 0 12px 12px;padding:22px 18px!important;outline:none;font-family:"Segoe UI Variable Text","Segoe UI",Tahoma,Arial,sans-serif!important;font-size:15px!important;font-weight:400!important;line-height:1.45!important;letter-spacing:0!important;color:#16181d!important;caret-color:#16181d!important;background:#fff}
.rich-editor:focus{border-color:#ff6a34!important;box-shadow:inset 0 0 0 1px rgba(255,90,31,.06)}
.rich-editor p,.rich-editor div,.rich-editor span,.rich-editor li{font-family:inherit!important;font-size:15px!important;line-height:1.45!important;letter-spacing:0!important;color:#16181d!important}.rich-editor p{margin:9px 0!important}.rich-editor strong,.rich-editor b{font:inherit!important;font-weight:700!important}.rich-editor em,.rich-editor i{font:inherit!important;font-style:italic!important}.rich-editor h2{font-family:inherit!important;font-size:20px!important;line-height:1.25!important;font-weight:700!important;letter-spacing:0!important;margin:26px 0 10px!important}.rich-editor h3{font-family:inherit!important;font-size:17px!important;line-height:1.3!important;font-weight:700!important;letter-spacing:0!important;margin:20px 0 8px!important}.rich-editor blockquote{margin:16px 0!important;padding:12px 16px!important;border-left:4px solid var(--brand);background:var(--brandsoft);border-radius:0 10px 10px 0}.rich-editor ul,.rich-editor ol{padding-left:25px}.rich-editor code{font-family:Consolas,"SFMono-Regular",monospace!important;background:#eef1f6;border:1px solid #e0e5ed;border-radius:6px;padding:2px 6px;font-size:13.8px!important;line-height:1.45!important}.rich-editor a{color:#db4b17;text-decoration-thickness:1px;text-underline-offset:3px}.editor-help{font-size:12px;color:#8a929f;margin-top:8px}

@media(max-width:760px){.rich-toolbar{position:static}.editor-format-wrap{width:100%}.toolbar-clear{margin-left:0}.toolbar-separator{display:none}}

/* Page editor form is an independent grid column */
.editor-page-form {
    min-width: 0;
    margin: 0;
}


/* =====================================================
   Editor headings = published article headings
   ===================================================== */

/* Обычный текст */
.rich-editor {
    font-family:
        "Segoe UI Variable Text",
        "Segoe UI",
        Tahoma,
        Arial,
        sans-serif !important;

    font-size: 15px !important;
    line-height: 1.65 !important;
    color: #16181d !important;
}

/* Обычный абзац */
.rich-editor p {
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.65 !important;
    margin: 9px 0 !important;
}

/* H2 - точно как на странице */
.rich-editor h2 {
    font-family:
        "Segoe UI Variable Text",
        "Segoe UI",
        Tahoma,
        Arial,
        sans-serif !important;

    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;

    letter-spacing: 0 !important;

    margin-top: 26px !important;
    margin-bottom: 10px !important;
}

/* H3 - точно как на странице */
.rich-editor h3 {
    font-family:
        "Segoe UI Variable Text",
        "Segoe UI",
        Tahoma,
        Arial,
        sans-serif !important;

    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;

    letter-spacing: 0 !important;

    margin-top: 20px !important;
    margin-bottom: 8px !important;
}

/* H4, если появится */
.rich-editor h4 {
    font-family:
        "Segoe UI Variable Text",
        "Segoe UI",
        Tahoma,
        Arial,
        sans-serif !important;

    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;

    margin-top: 18px !important;
    margin-bottom: 7px !important;
}

/* Старые inline-стили не должны перебивать размер */
.rich-editor h2[style],
.rich-editor h3[style],
.rich-editor h4[style] {
    font-size: inherit;
}

/* Убираем возможные browser font-size внутри заголовков */
.rich-editor h2 span,
.rich-editor h2 font {
    font-size: 20px !important;
    line-height: 1.25 !important;
}

.rich-editor h3 span,
.rich-editor h3 font {
    font-size: 17px !important;
    line-height: 1.3 !important;
}

.rich-editor h4 span,
.rich-editor h4 font {
    font-size: 16px !important;
    line-height: 1.3 !important;
}


/* ===== Screenshot upload UX ===== */

.image-upload-status {
    margin: 8px 0 10px;
    padding: 9px 11px;

    border-radius: 9px;

    background: #f3f5f8;
    color: #6f7785;

    font-size: 12px;
    line-height: 1.4;
}

.image-upload-status.loading {
    background: #fff3ed;
    color: #d94b17;
}

.image-upload-status.error {
    background: #fff0f0;
    color: #b92f2f;
}

/* ===== SPRUT DOCS 1.0.5 INLINE+CENTER START ===== */

/* Whole documentation shell is centered on wide screens, like modern GitBook docs. */
@media (min-width: 1180px) {
  .sidebar {
    width: 270px !important;
    left: calc(50% - 520px) !important;
    right: auto !important;
  }
  .content {
    margin-left: 0 !important;
  }
  .article {
    width: 720px !important;
    max-width: 720px !important;
    margin-left: calc(50% - 220px) !important;
    margin-right: auto !important;
  }
}

/* Inline screenshots live inside the article exactly where the editor caret was. */
.doc-inline-image {
  display: block !important;
  width: 100% !important;
  margin: 22px auto !important;
  text-align: center !important;
}
.doc-inline-image img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  max-height: 760px !important;
  margin: 0 auto !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 26px rgba(24,32,50,.08) !important;
  cursor: zoom-in !important;
}
.doc-inline-image figcaption {
  margin-top: 8px !important;
  color: var(--muted) !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  text-align: center !important;
}

/* Same image appearance inside the editor. */
.rich-editor .doc-inline-image {
  margin: 18px auto !important;
  padding: 8px !important;
  border-radius: 10px !important;
  background: #f7f8fb !important;
}
.rich-editor .doc-inline-image img {
  max-width: 100% !important;
  max-height: 520px !important;
  margin: 0 auto !important;
  cursor: default !important;
}
.toolbar-image.loading {
  opacity: .6;
  pointer-events: none;
}
.toolbar-image.loading::after {
  content: '…';
  margin-left: 3px;
}

/* Old right-side screenshot upload is obsolete: images are inserted through toolbar. */
.image-save-with-page { display: none !important; }
.editor-grid { grid-template-columns: minmax(0,1fr) !important; }
.media-card { display: none !important; }
.editor-main { max-width: 1040px !important; }

/* ===== SPRUT DOCS 1.0.5 INLINE+CENTER END ===== */


/* =====================================================
   Wider centered documentation layout
   ===================================================== */

@media (min-width: 1200px) {

    .app-shell {
        max-width: 1420px !important;
        margin: 0 auto !important;
        position: relative !important;
    }

    .sidebar {
        left: calc(50% - 710px) !important;
        width: 292px !important;
    }

    .content {
        margin-left: 292px !important;
        width: auto !important;
    }

    .article {
        width: min(1040px, calc(100% - 72px)) !important;
        margin-left: 44px !important;
        margin-right: auto !important;
    }

}

/* Очень широкие мониторы */
@media (min-width: 1700px) {

    .app-shell {
        max-width: 1520px !important;
    }

    .sidebar {
        left: calc(50% - 760px) !important;
    }

    .article {
        width: min(1120px, calc(100% - 80px)) !important;
    }

}


.media-empty {
    text-align: center;
    padding: 18px 12px;
    border: 1px dashed #d9dee7;
    border-radius: 10px;
    background: #fafbfc;
    color: #8b93a1;
    font-size: 13px;
}


/* ===== Inline image editor ===== */

.inline-doc-image {
    margin: 18px auto !important;
    text-align: center;
}

.inline-doc-image img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 10px;
    border: 1px solid #e3e7ed;
}

.inline-image-status {
    margin: 8px 0;
    padding: 8px 10px;
    border-radius: 8px;
    background: #fff3ed;
    color: #d94b17;
    font-size: 12px;
}


/* =====================================================
   Lightbox controls alignment
   ===================================================== */

.lightbox button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 !important;
    margin: 0 !important;

    line-height: 1 !important;

    font-family: Arial, sans-serif !important;
    font-weight: 400 !important;

    text-align: center !important;

    border: 0 !important;

    width: 46px !important;
    height: 46px !important;

    border-radius: 50% !important;

    background: rgba(255,255,255,.14) !important;
    color: #fff !important;
}

/* Крестик */
.lightbox-close {
    right: 24px !important;
    top: 20px !important;

    font-size: 0 !important;
}

.lightbox-close::before {
    content: "×";

    display: block;

    font-size: 32px;
    line-height: 1;
    font-weight: 300;

    transform: translateY(-1px);
}


/* Стрелка назад */
.lightbox-prev {
    left: 24px !important;

    font-size: 0 !important;
}

.lightbox-prev::before {
    content: "‹";

    display: block;

    font-size: 38px;
    line-height: 1;
    font-weight: 300;

    transform: translateY(-2px);
}


/* Стрелка вперёд */
.lightbox-next {
    right: 24px !important;

    font-size: 0 !important;
}

.lightbox-next::before {
    content: "›";

    display: block;

    font-size: 38px;
    line-height: 1;
    font-weight: 300;

    transform: translateY(-2px);
}


/* Скрытие навигации при одном изображении */
.lightbox.single-image .lightbox-prev,
.lightbox.single-image .lightbox-next {
    display: none !important;
}


/* =====================================================
   All documentation images are zoomable
   ===================================================== */

.article-body img,
.gallery img {
    cursor: zoom-in !important;
}


/*
 * Inline screenshots use full available article width,
 * but never upscale beyond their native aspect ratio.
 */
.article-body .inline-doc-image {
    display: block !important;
    width: 100% !important;
    margin: 22px auto !important;
    text-align: center !important;
}

.article-body .inline-doc-image img {
    display: block !important;

    max-width: 100% !important;
    width: auto !important;
    height: auto !important;

    margin-left: auto !important;
    margin-right: auto !important;

    border-radius: 10px;
}


/* Lightbox controls */
.lightbox button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 !important;

    line-height: 1 !important;
}

.lightbox.single-image .lightbox-prev,
.lightbox.single-image .lightbox-next {
    display: none !important;
}


/* =====================================================
   SPRUT DOCS 1.0.8
   Main image + vertical thumbnails
   ===================================================== */

.gallery[data-gallery].gallery-thumbs-ready {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 104px !important;
    gap: 16px !important;
    align-items: start !important;
}

.gallery-main-view {
    min-width: 0;
}

.gallery-main-media {
    margin: 0 !important;
}

.gallery-main-image-wrap {
    display: block;
    width: 100%;
    cursor: zoom-in;
    border: 1px solid #dfe5ee;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

.gallery-main-image-wrap img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 760px;
    object-fit: contain;
    background: #fff;
}

.gallery-main-caption {
    margin-top: 10px;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.45;
}

.gallery-thumb-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 760px;
    overflow-y: auto;
    padding-right: 4px;
}

.gallery-thumb-item {
    width: 100%;
    border: 1px solid #dfe5ee;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    cursor: pointer;
    padding: 0;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.gallery-thumb-item img {
    display: block;
    width: 100%;
    height: 72px;
    object-fit: cover;
}

.gallery-thumb-item:hover {
    border-color: #ff6a2a;
    transform: translateY(-1px);
}

.gallery-thumb-item.is-active {
    border-color: #ff6a2a;
    box-shadow: 0 0 0 2px rgba(255, 106, 42, 0.14);
}

.gallery[data-gallery].gallery-single-ready {
    display: block !important;
}

.gallery[data-gallery].gallery-single-ready .gallery-main-view {
    max-width: 100%;
}

.gallery[data-gallery].gallery-single-ready .gallery-thumb-list {
    display: none !important;
}

@media (max-width: 980px) {
    .gallery[data-gallery].gallery-thumbs-ready {
        grid-template-columns: 1fr !important;
    }

    .gallery-thumb-list {
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        padding-right: 0;
        padding-bottom: 4px;
    }

    .gallery-thumb-item {
        min-width: 96px;
        max-width: 96px;
        flex: 0 0 96px;
    }

    .gallery-thumb-item img {
        height: 72px;
    }
}


/* =====================================================
   SPRUT DOCS 1.0.9
   Inline screenshot gallery
   ===================================================== */

.inline-thumb-gallery {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) 112px;

    gap: 14px;

    width: 100%;

    margin: 22px 0 28px;

    align-items: start;
}


.inline-thumb-gallery-main {
    min-width: 0;
}


.inline-thumb-gallery-main > img {
    display: block;

    width: 100%;
    height: auto;

    max-height: 720px;

    object-fit: contain;

    border: 1px solid #dfe4ec;
    border-radius: 12px;

    background: #fff;

    cursor: zoom-in;
}


.inline-thumb-gallery-caption {
    margin-top: 8px;

    color: #7a8290;

    font-size: 13px;
    line-height: 1.4;
}


.inline-thumb-gallery-caption:empty {
    display: none;
}


.inline-thumb-gallery-thumbs {
    display: flex;
    flex-direction: column;

    gap: 9px;

    max-height: 720px;

    overflow-y: auto;

    padding-right: 3px;

    scrollbar-width: thin;
    scrollbar-color:
        #cbd1da transparent;
}


.inline-thumb-gallery-item {
    display: block;

    width: 100%;

    padding: 3px;

    border:
        1px solid #dfe4ec;

    border-radius: 10px;

    background: #fff;

    cursor: pointer;

    transition:
        border-color .15s ease,
        box-shadow .15s ease;
}


.inline-thumb-gallery-item:hover {
    border-color:
        rgba(255,90,31,.65);
}


.inline-thumb-gallery-item.active {
    border-color: #ff5a1f;

    box-shadow:
        0 0 0 2px
        rgba(255,90,31,.14);
}


.inline-thumb-gallery-item img {
    display: block;

    width: 100%;
    height: 70px;

    object-fit: cover;

    border-radius: 7px;
}


@media (max-width: 850px) {

    .inline-thumb-gallery {
        grid-template-columns: 1fr;
    }


    .inline-thumb-gallery-thumbs {
        flex-direction: row;

        overflow-x: auto;
        overflow-y: hidden;

        max-height: none;

        padding-bottom: 4px;
    }


    .inline-thumb-gallery-item {
        flex: 0 0 96px;
        width: 96px;
    }

}


/* =====================================================
   SPRUT DOCS 1.0.13
   Collapsible sidebar navigation
   ===================================================== */

.sprut-nav-parent-row {
    position: relative;

    display: flex;
    align-items: center;

    width: 100%;

    min-width: 0;
}


/*
 * Родительская ссылка занимает всю доступную ширину,
 * кроме области стрелки.
 */
.sprut-nav-parent-row > a {
    flex: 1 1 auto;

    min-width: 0;

    padding-right: 38px !important;
}


/*
 * Кнопка раскрытия.
 */
.sprut-nav-toggle {
    position: absolute;

    right: 6px;
    top: 50%;

    transform:
        translateY(-50%);

    display: flex;
    align-items: center;
    justify-content: center;

    width: 28px;
    height: 28px;

    padding: 0;

    border: 0;
    border-radius: 7px;

    background: transparent;

    color: #9097a4;

    cursor: pointer;

    transition:
        background .15s ease,
        color .15s ease;
}


.sprut-nav-toggle:hover {
    background:
        rgba(255,255,255,.07);

    color: #fff;
}


/*
 * Стрелка сделана CSS,
 * чтобы не зависеть от шрифтов.
 */
.sprut-nav-chevron {
    display: block;

    width: 7px;
    height: 7px;

    border-right:
        1.7px solid currentColor;

    border-bottom:
        1.7px solid currentColor;

    transform:
        rotate(-45deg);

    transition:
        transform .18s ease;
}


.sprut-nav-parent-row.is-open
.sprut-nav-chevron {
    transform:
        rotate(45deg)
        translate(-1px, -1px);
}


/*
 * Дочерний блок.
 */
.sprut-nav-children {
    display: none;

    margin:
        1px 0 5px 0;

    overflow: hidden;
}


.sprut-nav-children.is-open {
    display: block;
}


/*
 * Подкатегории.
 */
.sprut-nav-child {
    position: relative;
}


/*
 * Дополнительный отступ для дочерних ссылок.
 */
.sprut-nav-child > a,
.sprut-nav-child a {
    padding-left:
        42px !important;

    font-size:
        13.5px !important;
}


/*
 * Маленькая вертикальная линия,
 * чтобы визуально было понятно,
 * что это подкатегория.
 */
.sprut-nav-children {
    position: relative;
}


.sprut-nav-children::before {
    content: "";

    position: absolute;

    left: 27px;
    top: 4px;
    bottom: 5px;

    width: 1px;

    background:
        rgba(255,255,255,.08);
}


/*
 * Активная дочерняя страница.
 */
.sprut-nav-child a.active,
.sprut-nav-child.active > a {
    font-weight: 600;
}


/*
 * На мобильном сохраняем ту же механику.
 */
@media (max-width: 760px) {

    .sprut-nav-child > a,
    .sprut-nav-child a {
        padding-left:
            38px !important;
    }

    .sprut-nav-children::before {
        left: 23px;
    }
}


/* =====================================================
   SPRUT DOCS 1.0.14
   Collapse visibility fix
   ===================================================== */

.sprut-nav-children {
    display: none !important;
}

.sprut-nav-children.is-open {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
}

.sprut-nav-toggle {
    pointer-events: auto !important;
    z-index: 5 !important;
}

.sprut-nav-chevron {
    pointer-events: none !important;
}


/* =====================================================
   SPRUT DOCS 1.0.15
   Native sidebar collapse
   ===================================================== */

.nav-parent-group {
    width: 100%;
}

.nav-parent-row {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.nav-parent-row > .nav-link {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;

    padding-right: 42px !important;
}


/* Кнопка стрелки */

.nav-parent-toggle {
    position: absolute;

    right: 7px;
    top: 50%;

    transform: translateY(-50%);

    display: flex;
    align-items: center;
    justify-content: center;

    width: 28px;
    height: 28px;

    padding: 0;

    border: 0;
    border-radius: 7px;

    background: transparent;
    color: #8e96a3;

    cursor: pointer;

    z-index: 4;

    transition:
        color .15s ease,
        background .15s ease;
}

.nav-parent-toggle:hover {
    color: #ffffff;
    background: rgba(255,255,255,.07);
}


/* Стрелка */

.nav-parent-chevron {
    width: 7px;
    height: 7px;

    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;

    transform: rotate(-45deg);

    transition: transform .18s ease;

    pointer-events: none;
}

.nav-parent-group.is-open
.nav-parent-chevron {
    transform: rotate(45deg);
}


/* Подкатегории */

.nav-parent-group > .nav-children {
    display: none !important;

    position: relative;

    margin:
        1px 0 5px 0;
}

.nav-parent-group > .nav-children.is-open {
    display: block !important;
}


/* Вертикальная линия подкатегорий */

.nav-parent-group > .nav-children::before {
    content: "";

    position: absolute;

    left: 29px;
    top: 2px;
    bottom: 3px;

    width: 1px;

    background:
        rgba(255,255,255,.10);
}


/* Сами дочерние пункты */

.nav-parent-group
.nav-children
.nav-link.child {
    position: relative;

    padding-left: 47px !important;

    font-size: 13.5px;
}


/* Активная дочерняя страница */

.nav-parent-group
.nav-children
.nav-link.child.active {
    font-weight: 600;
}


/* Убираем влияние старых sprut-collapse классов */

.sprut-nav-parent-row,
.sprut-nav-children,
.sprut-nav-toggle {
    all: revert;
}


/* Mobile */

@media (max-width: 760px) {

    .nav-parent-group
    .nav-children
    .nav-link.child {
        padding-left: 43px !important;
    }

    .nav-parent-group
    > .nav-children::before {
        left: 26px;
    }
}


/* =====================================================
   SPRUT DOCS 1.0.15
   Native sidebar collapse
   ===================================================== */

.nav-parent-group {
    width: 100%;
}

.nav-parent-row {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.nav-parent-row > .nav-link {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;

    padding-right: 42px !important;
}


/* Кнопка стрелки */

.nav-parent-toggle {
    position: absolute;

    right: 7px;
    top: 50%;

    transform: translateY(-50%);

    display: flex;
    align-items: center;
    justify-content: center;

    width: 28px;
    height: 28px;

    padding: 0;

    border: 0;
    border-radius: 7px;

    background: transparent;
    color: #8e96a3;

    cursor: pointer;

    z-index: 4;

    transition:
        color .15s ease,
        background .15s ease;
}

.nav-parent-toggle:hover {
    color: #ffffff;
    background: rgba(255,255,255,.07);
}


/* Стрелка */

.nav-parent-chevron {
    width: 7px;
    height: 7px;

    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;

    transform: rotate(-45deg);

    transition: transform .18s ease;

    pointer-events: none;
}

.nav-parent-group.is-open
.nav-parent-chevron {
    transform: rotate(45deg);
}


/* Подкатегории */

.nav-parent-group > .nav-children {
    display: none !important;

    position: relative;

    margin:
        1px 0 5px 0;
}

.nav-parent-group > .nav-children.is-open {
    display: block !important;
}


/* Вертикальная линия подкатегорий */

.nav-parent-group > .nav-children::before {
    content: "";

    position: absolute;

    left: 29px;
    top: 2px;
    bottom: 3px;

    width: 1px;

    background:
        rgba(255,255,255,.10);
}


/* Сами дочерние пункты */

.nav-parent-group
.nav-children
.nav-link.child {
    position: relative;

    padding-left: 47px !important;

    font-size: 13.5px;
}


/* Активная дочерняя страница */

.nav-parent-group
.nav-children
.nav-link.child.active {
    font-weight: 600;
}


/* Убираем влияние старых sprut-collapse классов */

.sprut-nav-parent-row,
.sprut-nav-children,
.sprut-nav-toggle {
    all: revert;
}


/* Mobile */

@media (max-width: 760px) {

    .nav-parent-group
    .nav-children
    .nav-link.child {
        padding-left: 43px !important;
    }

    .nav-parent-group
    > .nav-children::before {
        left: 26px;
    }
}


/* =====================================================
   SPRUT DOCS 1.0.17
   Whole parent row clickable
   ===================================================== */

.nav-parent-row {
    cursor: pointer !important;
}

.nav-parent-row > .nav-link {
    cursor: pointer !important;
}

/*
 * Стрелка теперь только визуальный элемент.
 * Сам клик ловит вся строка.
 */
.nav-parent-toggle {
    pointer-events: none !important;
}

/*
 * Визуально вся строка воспринимается
 * как единая кнопка.
 */
.nav-parent-row:hover > .nav-link {
    background:
        rgba(255,255,255,.045);
}


/* =====================================================
   SPRUT DOCS 1.0.19
   Parent link and toggle are separate controls
   ===================================================== */

/*
 * Название родителя снова является обычной ссылкой.
 */
.nav-parent-row > .nav-link {
    cursor: pointer !important;
}


/*
 * Стрелка снова отдельная рабочая кнопка.
 */
.nav-parent-toggle {
    pointer-events: auto !important;
    cursor: pointer !important;
}


/*
 * Вся строка визуально остаётся одной кнопкой,
 * но ссылка и стрелка имеют разные действия.
 */
.nav-parent-row {
    cursor: default !important;
}


/*
 * Небольшое выделение стрелки при наведении.
 */
.nav-parent-toggle:hover {
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
}


/* =========================================================
   SPRUT DOCS 1.0.20
   Navigation line cleanup + universal responsive layout
   ========================================================= */

/* One hierarchy guide only.
   Old .nav-children already had border-left, while the newer
   implementation also draws ::before, which produced two lines. */
.nav-parent-group > .nav-children{
    border-left:0 !important;
    margin-left:0 !important;
    padding-left:0 !important;
}
.nav-parent-group > .nav-children::before{
    display:block !important;
    left:29px !important;
    width:1px !important;
    background:rgba(255,255,255,.11) !important;
}
.nav-parent-group .nav-children .nav-link.child{
    padding-left:47px !important;
}

/* Base robustness */
html,body{
    max-width:100%;
    overflow-x:hidden;
}
.content,.article,.article-body,
.article-body pre,.article-body table,
.gallery,.gallery figure{
    min-width:0;
}
.article-body img,
.article-body video,
.article-body iframe{
    max-width:100%;
    height:auto;
}
.article-body pre{
    max-width:100%;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
}
.article-body table{
    display:block;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.nav-link span,
.nav-section-title span{
    min-width:0;
    overflow-wrap:anywhere;
}

/* Narrow desktop / tablet landscape */
@media (min-width:981px) and (max-width:1199px){
    .sidebar{
        left:0 !important;
        width:272px !important;
    }
    .content{
        margin-left:272px !important;
        width:auto !important;
    }
    .article{
        width:min(860px,calc(100% - 48px)) !important;
        margin:0 auto !important;
        padding:46px 0 58px !important;
    }
    .docs-nav{padding-inline:8px !important}
    .nav-link{font-size:13.5px !important}
    .gallery-image img{height:auto !important;aspect-ratio:16/9;object-fit:cover}
}

/* Tablet and phones: sidebar becomes a proper off-canvas drawer */
@media (max-width:980px){
    .sidebar{
        width:min(292px,calc(100vw - 34px)) !important;
        max-width:292px !important;
        transform:translateX(-105%) !important;
        transition:transform .2s ease,box-shadow .2s ease !important;
        box-shadow:none !important;
        will-change:transform;
        overscroll-behavior:contain;
    }
    .sidebar.open{
        transform:translateX(0) !important;
        box-shadow:18px 0 46px rgba(0,0,0,.28) !important;
    }
    .content{
        margin-left:0 !important;
        width:100% !important;
    }
    .mobile-menu{
        display:grid !important;
        place-items:center !important;
        position:fixed !important;
        left:14px !important;
        top:14px !important;
        z-index:40 !important;
        width:42px !important;
        height:42px !important;
        padding:0 !important;
        border:1px solid rgba(255,255,255,.10) !important;
        border-radius:10px !important;
        background:#1b1e25 !important;
        color:#fff !important;
        box-shadow:0 8px 22px rgba(0,0,0,.16) !important;
    }
    .article{
        width:min(900px,calc(100% - 34px)) !important;
        margin:0 auto !important;
        padding:78px 0 54px !important;
    }
    .article-head{
        padding-bottom:16px !important;
    }
    .article-body{
        padding-top:16px !important;
    }
    .gallery{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
    .gallery-image img{
        height:auto !important;
        aspect-ratio:16/9;
        object-fit:cover;
    }

    .nav-parent-group > .nav-children::before{
        left:26px !important;
    }
    .nav-parent-group .nav-children .nav-link.child{
        padding-left:43px !important;
    }

    .lightbox{
        padding:44px 54px !important;
    }
    .lightbox img{
        max-width:calc(100vw - 118px) !important;
        max-height:calc(100vh - 100px) !important;
    }
}

/* Small tablet / large phone */
@media (max-width:720px){
    .brand{
        height:70px !important;
        padding:13px 16px !important;
    }
    .brand img{
        width:40px !important;
        height:40px !important;
    }
    .search-wrap{
        padding:0 10px 10px !important;
    }
    .docs-nav{
        padding:0 7px 18px !important;
    }
    .nav-section{
        margin:7px 0 13px !important;
    }
    .nav-section-title{
        padding:7px 9px !important;
    }
    .nav-link{
        padding:9px !important;
        font-size:13.5px !important;
    }

    .article{
        width:calc(100% - 28px) !important;
        padding-top:72px !important;
        padding-bottom:44px !important;
    }
    .article-head h1,.article h1{
        font-size:23px !important;
    }
    .lead,.article-head .lead{
        font-size:14px !important;
    }
    .article-body{
        font-size:14px !important;
        line-height:1.62 !important;
    }
    .article-body h2{
        font-size:18px !important;
        margin-top:24px !important;
    }
    .article-body h3{
        font-size:16px !important;
        margin-top:19px !important;
    }
    .article-body ul,.article-body ol{
        padding-left:21px !important;
    }

    .gallery{
        grid-template-columns:1fr !important;
        gap:12px !important;
    }
    .gallery-block{
        margin-top:28px !important;
    }
    .pager{
        grid-template-columns:1fr !important;
        gap:10px !important;
    }
    .pager a{
        padding:14px 15px !important;
    }

    .lightbox{
        padding:56px 12px 74px !important;
    }
    .lightbox img{
        max-width:calc(100vw - 24px) !important;
        max-height:calc(100vh - 140px) !important;
    }
    .lightbox button{
        width:40px !important;
        height:40px !important;
        font-size:27px !important;
    }
    .lightbox-close{
        right:12px !important;
        top:10px !important;
    }
    .lightbox-prev{
        left:calc(50% - 50px) !important;
        top:auto !important;
        bottom:17px !important;
    }
    .lightbox-next{
        right:calc(50% - 50px) !important;
        top:auto !important;
        bottom:17px !important;
    }
    .lightbox-caption{
        bottom:62px !important;
        left:14px;
        right:14px;
        text-align:center;
        font-size:12px !important;
    }

    /* Admin / editor pages */
    .admin-top{
        min-height:64px !important;
        height:auto !important;
        gap:10px !important;
        padding:10px 12px !important;
        flex-wrap:wrap !important;
    }
    .admin-top .brand{
        height:auto !important;
        padding:0 !important;
    }
    .admin-top>div:last-child{
        flex-wrap:wrap !important;
        justify-content:flex-end !important;
    }
    .admin-main,.editor-main{
        padding:14px !important;
    }
    .admin-intro,.editor-card{
        border-radius:14px !important;
        padding:16px !important;
    }
    .admin-section-head{
        align-items:flex-start !important;
        flex-wrap:wrap !important;
    }
    .admin-actions{
        width:100% !important;
        margin-left:0 !important;
        flex-wrap:wrap !important;
    }
    .admin-page-row{
        align-items:flex-start !important;
        flex-wrap:wrap !important;
    }
    .editor-title-row{
        gap:10px !important;
        align-items:flex-start !important;
        flex-wrap:wrap !important;
    }
    .dialog-actions{
        flex-wrap:wrap !important;
    }
}

/* Phones */
@media (max-width:480px){
    .sidebar{
        width:min(286px,calc(100vw - 22px)) !important;
    }
    .mobile-menu{
        left:10px !important;
        top:10px !important;
        width:40px !important;
        height:40px !important;
    }
    .article{
        width:calc(100% - 22px) !important;
        padding-top:64px !important;
        padding-bottom:36px !important;
    }
    .article-head h1,.article h1{
        font-size:21px !important;
    }
    .article-body{
        font-size:13.8px !important;
    }
    .article-body h2{
        font-size:17px !important;
    }
    .article-body h3{
        font-size:15.5px !important;
    }
    .article-body pre{
        padding:13px !important;
        border-radius:10px !important;
        font-size:12px !important;
    }
    .article-body th,.article-body td{
        padding:8px 9px !important;
        font-size:12.5px !important;
    }
    .doc-inline-image{
        margin:16px auto !important;
    }
    .pager a{
        padding:13px !important;
    }
    .search-wrap kbd{
        display:none !important;
    }

    .nav-parent-group > .nav-children::before{
        left:24px !important;
    }
    .nav-parent-group .nav-children .nav-link.child{
        padding-left:40px !important;
    }

    .login-card{
        width:calc(100% - 22px) !important;
        padding:22px !important;
        border-radius:16px !important;
    }
    .admin-dialog{
        width:calc(100% - 20px) !important;
        padding:16px !important;
    }
}

/* =========================================================
   SPRUT DOCS 1.0.21
   Child nav active state / timeline overlap fix
   ========================================================= */

/*
  Проблема:
  у дочерних пунктов активная подсветка начиналась слишком рано
  и визуально залезала на вертикальную направляющую линию.

  Решение:
  оставляем линию отдельно слева, а сами child-пункты сдвигаем вправо.
  Подсветка активной кнопки теперь начинается после линии.
*/

.nav-parent-group > .nav-children{
    position:relative !important;
}

.nav-parent-group .nav-children .nav-link.child{
    position:relative !important;
    display:flex !important;
    width:calc(100% - 16px) !important;
    margin-left:16px !important;
    padding-left:31px !important;
    z-index:1 !important;
}

.nav-parent-group > .nav-children::before{
    z-index:0 !important;
    left:28px !important;
}

@media (max-width:980px){
    .nav-parent-group .nav-children .nav-link.child{
        width:calc(100% - 14px) !important;
        margin-left:14px !important;
        padding-left:29px !important;
    }
    .nav-parent-group > .nav-children::before{
        left:25px !important;
    }
}

@media (max-width:480px){
    .nav-parent-group .nav-children .nav-link.child{
        width:calc(100% - 12px) !important;
        margin-left:12px !important;
        padding-left:28px !important;
    }
    .nav-parent-group > .nav-children::before{
        left:23px !important;
    }
}

/* =========================================================
   SPRUT DOCS 1.0.22
   Final child active background offset
   ========================================================= */

/*
  Final alignment:
  the hierarchy line remains at the left,
  while the entire child-button background starts AFTER it.
*/

.nav-parent-group .nav-children .nav-link.child{
    width:calc(100% - 36px) !important;
    margin-left:36px !important;
    padding-left:15px !important;
}

.nav-parent-group > .nav-children::before{
    left:28px !important;
}

@media (max-width:980px){
    .nav-parent-group .nav-children .nav-link.child{
        width:calc(100% - 34px) !important;
        margin-left:34px !important;
        padding-left:14px !important;
    }
    .nav-parent-group > .nav-children::before{
        left:25px !important;
    }
}

@media (max-width:480px){
    .nav-parent-group .nav-children .nav-link.child{
        width:calc(100% - 32px) !important;
        margin-left:32px !important;
        padding-left:13px !important;
    }
    .nav-parent-group > .nav-children::before{
        left:23px !important;
    }
}

/* =========================================================
   SPRUT DOCS 1.0.23
   Whole parent row interaction
   ========================================================= */
.nav-parent-group > .nav-parent-row{
    cursor:pointer !important;
}

.nav-parent-group > .nav-parent-row > .nav-link,
.nav-parent-group > .nav-parent-row > .nav-parent-toggle{
    cursor:pointer !important;
}

/* The full row behaves as one control; avoid a visual split on hover. */
.nav-parent-group > .nav-parent-row:hover > .nav-link{
    color:#fff;
}

/* =========================================================
   SPRUT DOCS 1.0.24
   Compact one-line previous / next buttons
   ========================================================= */

.pager{
    gap:12px !important;
    margin-top:24px !important;
}

.pager a{
    min-height:50px !important;
    padding:10px 14px !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:9px !important;
    border-radius:12px !important;
    overflow:hidden !important;
}

.pager small{
    flex:0 0 auto !important;
    margin:0 !important;
    font-size:12px !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

.pager strong{
    min-width:0 !important;
    font-size:14px !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}

/* Previous: direction first, title after it */
.pager a:not(.next){
    justify-content:flex-start !important;
    text-align:left !important;
}

/* Next: keep both parts on one line and aligned to the right */
.pager .next{
    justify-content:flex-end !important;
    text-align:right !important;
}

/* On phones each button can occupy its own row, but text stays one line. */
@media (max-width:720px){
    .pager{
        gap:8px !important;
    }
    .pager a{
        min-height:46px !important;
        padding:9px 12px !important;
    }
    .pager small{
        font-size:11px !important;
    }
    .pager strong{
        font-size:13px !important;
    }
}

@media (max-width:480px){
    .pager a{
        min-height:44px !important;
    }
}

/* =========================================================
   SPRUT DOCS 1.0.25
   Pager direction + stable page width
   ========================================================= */

/*
  1) Next button:
     title first, "Далее →" on the far right.
  2) Keep viewport width stable between short/long pages:
     scrollbar space is reserved, so content doesn't jump sideways.
*/

html{
    overflow-y:scroll !important;
    scrollbar-gutter:stable !important;
}

/* Previous: ← Назад | Page title */
.pager a:not(.next) small{
    order:1 !important;
}
.pager a:not(.next) strong{
    order:2 !important;
}

/* Next: Page title | Далее → */
.pager .next strong{
    order:1 !important;
}
.pager .next small{
    order:2 !important;
    margin-left:auto !important;
}

/* Keep both cells visually balanced and prevent layout jump */
.pager{
    width:100% !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
}
.pager a{
    min-width:0 !important;
    width:100% !important;
}
.pager strong{
    flex:0 1 auto !important;
}
.pager small{
    flex:0 0 auto !important;
}

/* On narrow screens one button per row, but order remains logical */
@media (max-width:720px){
    .pager{
        grid-template-columns:1fr !important;
    }
}

/* Fallback for browsers without scrollbar-gutter support */
@supports not (scrollbar-gutter: stable){
    body{
        width:100vw !important;
        overflow-x:hidden !important;
    }
}


/* Sprut Docs 1.1: module guides, right TOC and simpler editor */
.article-layout{width:min(1320px,calc(100% - 56px));margin:0 auto;display:grid;grid-template-columns:minmax(0,900px) 220px;gap:48px;align-items:start}
.article-layout .article{width:auto;max-width:none;margin:0;padding-left:0;padding-right:0}
.page-toc{position:sticky;top:30px;align-self:start;padding-top:28px;max-height:calc(100vh - 60px);overflow:auto;border-left:1px solid var(--line)}
.page-toc-title{font-size:11px;font-weight:800;color:var(--muted);padding:0 0 10px 14px;letter-spacing:.02em}
.page-toc nav{display:flex;flex-direction:column}.page-toc a{padding:7px 12px 7px 14px;text-decoration:none;color:var(--muted);font-size:13px;line-height:1.35;border-left:2px solid transparent;margin-left:-1px}.page-toc a:hover,.page-toc a.active{color:var(--brand);border-left-color:var(--brand)}.page-toc a.toc-h3{padding-left:26px;font-size:12px}
.article-body h2,.article-body h3{scroll-margin-top:24px}
.doc-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 26px}.doc-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;text-decoration:none!important;color:inherit!important;background:var(--surface,#fff);font-weight:700}.doc-card:hover{border-color:#ff9c78;background:#fff8f4}.doc-card::after{content:'›';font-size:23px;font-weight:400;color:var(--muted)}
.doc-image-placeholder{display:flex;align-items:center;justify-content:center;min-height:160px;margin:18px 0;padding:20px;border:1px dashed #b9c0ca;border-radius:12px;background:#f7f8fa;color:#7a8490;font-weight:800;letter-spacing:.08em}
.doc-settings{width:100%;border-collapse:separate;border-spacing:0;margin:14px 0 24px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.doc-settings th,.doc-settings td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.doc-settings tr:last-child td{border-bottom:0}.doc-settings th{background:#f6f7f9;font-size:12px}.doc-settings td:first-child{width:34%;font-weight:700}.doc-settings code{white-space:nowrap}
.editor-advanced{margin:14px 0;border:1px solid var(--line);border-radius:10px;background:#f8f9fb}.editor-advanced summary{cursor:pointer;padding:12px 14px;font-weight:700;color:#56606d}.editor-advanced .form-grid{padding:0 14px 12px}
@media(max-width:1180px){.article-layout{display:block;width:min(900px,calc(100% - 34px))}.page-toc{display:none}.article-layout .article{width:auto}.doc-card-grid{grid-template-columns:1fr}}

/* =====================================================
   SPRUT DOCS 1.1.2 - stable desktop sidebar + responsive layout
   Desktop navigation keeps one fixed geometry; article/toc adapt.
   ===================================================== */

/* The navigation itself must scroll instead of being cut by viewport height. */
.sidebar{overflow:hidden}
.docs-nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#424957 transparent}
.docs-nav::-webkit-scrollbar{width:6px}
.docs-nav::-webkit-scrollbar-track{background:transparent}
.docs-nav::-webkit-scrollbar-thumb{background:#424957;border-radius:999px}

/* PC / laptop: sidebar dimensions never shrink or move. */
@media (min-width:981px){
  .app-shell{max-width:none!important;width:100%!important;margin:0!important;position:relative!important}
  .sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    left:0!important;
    width:292px!important;
    min-width:292px!important;
    max-width:292px!important;
    height:100vh!important;
    height:100dvh!important;
    transform:none!important;
  }
  .brand{height:78px!important;min-height:78px!important;padding:16px 20px!important}
  .brand img{width:44px!important;height:44px!important}
  .brand strong{font-size:18px!important}
  .brand span{font-size:12px!important}
  .search-wrap{padding:0 14px 14px!important}
  .nav-section-title{font-size:11px!important;padding:8px 10px!important}
  .nav-link{font-size:14px!important;padding:9px 10px!important;min-height:38px!important}
  .nav-link.child{font-size:13px!important}
  .nav-icon,.icon{width:18px!important;height:18px!important}
  .sidebar-footer{font-size:12px!important;padding:15px 20px!important}

  .content{
    margin-left:292px!important;
    width:calc(100% - 292px)!important;
    min-width:0!important;
    max-width:none!important;
  }
  .mobile-menu{display:none!important}
}

/* Medium laptop windows: keep desktop menu fixed, hide TOC to protect article width. */
@media (min-width:981px) and (max-width:1239px){
  .article-layout{
    display:block!important;
    width:min(900px,calc(100% - 40px))!important;
    margin:0 auto!important;
  }
  .article-layout .article{
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:52px 0 64px!important;
  }
  .page-toc{display:none!important}
}

/* Normal and wide desktop: article and right TOC share remaining area. */
@media (min-width:1240px){
  .article-layout{
    width:min(1320px,calc(100% - 56px))!important;
    margin:0 auto!important;
    display:grid!important;
    grid-template-columns:minmax(0,900px) 220px!important;
    gap:clamp(28px,3.4vw,48px)!important;
    align-items:start!important;
  }
  .article-layout .article{
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:56px 0 72px!important;
  }
  .page-toc{display:block!important;position:sticky!important;top:30px!important;min-width:0!important}
}

/* Tablet and phone: off-canvas menu, full-width content. */
@media (max-width:980px){
  .app-shell{max-width:none!important;width:100%!important;margin:0!important}
  .sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    left:0!important;
    width:min(320px,86vw)!important;
    min-width:0!important;
    max-width:320px!important;
    height:100vh!important;
    height:100dvh!important;
    transform:translateX(-105%)!important;
    transition:transform .2s ease!important;
    box-shadow:0 0 0 rgba(0,0,0,0)!important;
    z-index:50!important;
  }
  .sidebar.open{transform:translateX(0)!important;box-shadow:18px 0 50px rgba(0,0,0,.24)!important}
  .content{margin-left:0!important;width:100%!important;min-width:0!important}
  .mobile-menu{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    position:fixed!important;
    left:14px!important;
    top:14px!important;
    z-index:60!important;
    width:44px!important;
    height:44px!important;
  }
  .article-layout{
    display:block!important;
    width:min(900px,calc(100% - 34px))!important;
    margin:0 auto!important;
  }
  .article-layout .article{
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:78px 0 56px!important;
  }
  .page-toc{display:none!important}
  .article-head{padding-bottom:22px!important}
  .article-body{padding-top:22px!important}
  .article-body img,.doc-inline-image img,.inline-doc-image img{max-width:100%!important;height:auto!important}
  .article-body table{display:block!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .article-body pre{max-width:100%!important;overflow-x:auto!important}
}

@media (max-width:720px){
  .article-layout{width:calc(100% - 28px)!important}
  .article-layout .article{padding-top:72px!important}
  .article h1,.article-head h1{font-size:30px!important;line-height:1.16!important}
  .lead,.article-head .lead{font-size:15px!important;line-height:1.55!important}
  .article-body{font-size:15px!important;line-height:1.65!important}
  .article-body h2{font-size:21px!important;line-height:1.25!important;margin-top:30px!important}
  .article-body h3{font-size:18px!important;line-height:1.3!important}
  .pager{grid-template-columns:1fr!important}
}

@media (max-width:480px){
  .sidebar{width:min(300px,88vw)!important}
  .article-layout{width:calc(100% - 22px)!important}
  .article h1,.article-head h1{font-size:26px!important}
  .lead,.article-head .lead{font-size:14px!important}
  .article-body{font-size:14.5px!important}
  .article-body h2{font-size:20px!important}
  .article-body h3{font-size:17px!important}
  .article-body ul,.article-body ol{padding-left:21px!important}
  .article-body blockquote{padding:12px 14px!important}
}


/* =========================================================
   SPRUT DOCS 1.1.5
   Stable sidebar: no jump when subcategories open/close
   ========================================================= */
.sidebar{
  overflow:hidden!important;
}
.docs-nav{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
  overscroll-behavior:contain!important;
}
.nav-parent-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 36px!important;
  align-items:stretch!important;
  width:100%!important;
  min-width:0!important;
}
.nav-parent-row > .nav-link{
  min-width:0!important;
  width:auto!important;
  margin-right:0!important;
}
.nav-parent-toggle{
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  flex:0 0 36px!important;
}
.nav-parent-group > .nav-children{
  width:100%!important;
  box-sizing:border-box!important;
}
/* The old TOC title is intentionally not shown. */
.page-toc-title{display:none!important}


/* =========================================================
   SPRUT DOCS 1.1.6 - zero-jitter sidebar
   ========================================================= */
.docs-nav{
  overflow-anchor:none!important;
  contain:layout style!important;
}
.nav-parent-group,
.nav-parent-row,
.nav-parent-group > .nav-children{
  overflow-anchor:none!important;
}
.nav-parent-group > .nav-children{
  transition:none!important;
  animation:none!important;
}
.nav-parent-toggle,
.nav-parent-chevron{
  transition:none!important;
  animation:none!important;
}
