:root {
	--ripro-doc-border: rgba(38, 51, 77, .08);
	--ripro-doc-surface: #fff;
	--ripro-doc-muted: #697386;
	--ripro-doc-primary: #3b6ff5;
	--ripro-doc-text: #4b5563;
	--ripro-doc-heading: #344054;
	--ripro-doc-nav: #5f6b7a;
	--ripro-doc-active: #365fc6;
}

.ripro-doc-page { padding: 0 0 3.5rem; background: #f7f8fa; font-weight:400; }
.ripro-doc-container { width: calc(100% - 32px); margin: 0 auto; }
.ripro-doc-panel-toggle { border:1px solid var(--ripro-doc-border); border-radius:999px; background:#fff; color:#394150; cursor:pointer; padding:.5rem .8rem; font-size:.8125rem; transition:.2s ease; }
.ripro-doc-panel-toggle:hover { border-color:var(--ripro-doc-primary); color:var(--ripro-doc-primary); }
.ripro-doc-panel-backdrop { display:none; }
.ripro-doc-panel-close { display:none; }
.ripro-doc-panel-lock { overflow:hidden; }
.ripro-doc-mobile-actions { display:none; }
.ripro-doc-layout { display:grid; grid-template-columns:clamp(220px, 18vw, 300px) minmax(0, 1fr) clamp(200px, 16vw, 260px); align-items:start; gap:.65rem; }
.ripro-doc-series, .ripro-doc-toc { position:sticky; top:var(--ripro-doc-sticky-top, 60px); max-height:calc(100dvh - var(--ripro-doc-sticky-top, 60px) - 16px); overflow:auto; scrollbar-width:thin; min-width:0; padding:1rem; border:1px solid var(--ripro-doc-border); border-radius:.6rem; background:var(--ripro-doc-surface); box-shadow:0 1px 3px rgba(27,39,65,.035); overscroll-behavior:contain; }
.ripro-doc-side-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; padding:.15rem .25rem .75rem; font-size:.9375rem; line-height:1.5; font-weight:600; color:var(--ripro-doc-heading); }
.ripro-doc-side-heading > span { min-width:0; overflow-wrap:anywhere; }
.ripro-doc-side-heading small { color:var(--ripro-doc-muted); font-weight:400; white-space:nowrap; flex-shrink:0; }
.ripro-doc-series { padding:1rem .5rem; }
.ripro-doc-series .ripro-doc-side-heading { flex-direction:column; align-items:center; gap:.2rem; text-align:center; }
.ripro-doc-series-list ol, .ripro-doc-toc-nav ol { margin:0; padding:0; list-style:none; }
.ripro-doc-series-list li { margin:.12rem 0; }
.ripro-doc-series-list a { display:flex; gap:.25rem; align-items:flex-start; padding:.6rem .25rem; border-radius:.45rem; color:var(--ripro-doc-nav); font-size:.875rem; font-weight:400; line-height:1.6; text-decoration:none; }
.ripro-doc-series-list a:hover { background:rgba(59,111,245,.07); color:var(--ripro-doc-primary); }
.ripro-doc-series-list li.is-current a { background:rgba(59,111,245,.075); color:var(--ripro-doc-active); font-weight:500; box-shadow:inset 2px 0 var(--ripro-doc-primary); }
.ripro-doc-series-index { flex:0 0 auto; min-width:2ch; color:#9aa3b2; font-variant-numeric:tabular-nums; }
.ripro-doc-series-list li.is-current .ripro-doc-series-index { color:var(--ripro-doc-primary); }
.ripro-doc-series-title { min-width:0; overflow-wrap:anywhere; }
.ripro-doc-main { min-width:0; }
.ripro-doc-article { margin:0; padding:clamp(1.35rem, 3vw, 3rem); border:1px solid var(--ripro-doc-border); background:var(--ripro-doc-surface); box-shadow:0 1px 3px rgba(27,39,65,.035); }
.ripro-doc-article.card:hover { transform:none; box-shadow:0 1px 3px rgba(27,39,65,.035); }
.ripro-doc-article-header { max-width:780px; margin:0 auto 2rem; padding-bottom:1.25rem; border-bottom:1px solid var(--ripro-doc-border); text-align:center; }
.ripro-doc-title { margin:0 0 1rem; color:var(--ripro-doc-heading); font-size:clamp(1.75rem, 2.6vw, 2.1rem); font-weight:600; line-height:1.4; letter-spacing:0; }
.ripro-doc-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.25rem .75rem; color:var(--ripro-doc-muted); font-size:.8125rem; }
.ripro-doc-meta > span + span { margin-left:0; }
.ripro-doc-reading-time { white-space:nowrap; }
.ripro-doc-article .post-content { max-width:780px; margin:0 auto 1.25rem; font-size:17px; font-weight:400; line-height:1.9; color:var(--ripro-doc-text); }
.ripro-doc-article .post-content p { line-height:1.9; margin-bottom:1.3em; }
.ripro-doc-article .post-content strong, .ripro-doc-article .post-content b { font-weight:600; }
.ripro-doc-article .post-content h2, .ripro-doc-article .post-content h3, .ripro-doc-article .post-content h4 { scroll-margin-top:calc(var(--ripro-doc-sticky-top, 60px) + 20px); font-weight:600; color:var(--ripro-doc-heading); }
.ripro-doc-article .post-content h2 { margin-top:2em; font-size:1.5rem; border-image:none; border-bottom:1px solid var(--ripro-doc-border); }
.ripro-doc-article .post-content h3 { margin-top:1.7em; padding-left:0; font-size:1.1875rem; }
.ripro-doc-article .post-content h4 { margin-top:1.45em; padding-left:0; font-size:1.05rem; }
.ripro-doc-article .post-content h3::before { display:none; }
.ripro-doc-article .post-content > :first-child { margin-top:0; }
.ripro-doc-article .post-content pre { overflow:auto; }
.ripro-doc-toc-nav li { margin:.08rem 0; }
.ripro-doc-toc-nav a { display:block; padding:.45rem .55rem; border-left:2px solid transparent; color:var(--ripro-doc-nav); font-size:.875rem; font-weight:400; line-height:1.6; overflow-wrap:anywhere; text-decoration:none; }
.ripro-doc-toc-nav a:hover, .ripro-doc-toc-nav li.is-active > a { border-left-color:var(--ripro-doc-primary); color:var(--ripro-doc-active); background:rgba(59,111,245,.055); }
.ripro-doc-toc-nav .is-h3 a { padding-left:1.25rem; font-size:.8125rem; }
.ripro-doc-toc-nav .is-h4 a { padding-left:2rem; font-size:.79rem; }
.ripro-doc-empty { color:var(--ripro-doc-muted); font-size:.8125rem; }
.ripro-doc-toc-empty { display:none; padding:.25rem; }
.ripro-doc-adjacent { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; margin-top:1.25rem; }
.ripro-doc-adjacent-link { display:flex; flex-direction:column; gap:.4rem; min-width:0; padding:1rem 1.1rem; border:1px solid var(--ripro-doc-border); border-radius:.55rem; background:#fff; color:#293142; text-decoration:none; transition:.2s ease; }
.ripro-doc-adjacent-link:hover { border-color:rgba(59,111,245,.45); transform:translateY(-1px); }
.ripro-doc-adjacent-link.is-next { text-align:right; }
.ripro-doc-adjacent-label { color:var(--ripro-doc-muted); font-size:.75rem; }
.ripro-doc-adjacent-link strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.9rem; }

@media (max-width: 1199px) {
	.ripro-doc-layout { grid-template-columns:190px minmax(0, 1fr) 180px; gap:.65rem; }
}
@media (max-width: 991px) {
	.ripro-doc-container { width:min(100% - 24px, 780px); }
	.ripro-doc-layout { display:block; }
	.ripro-doc-series, .ripro-doc-toc { display:none; position:fixed; z-index:1051; inset:0 auto 0 0; width:min(330px, 88vw); max-height:none; padding:1.25rem; overflow:auto; background:var(--ripro-doc-surface); box-shadow:8px 0 30px rgba(20,30,50,.18); }
	.ripro-doc-toc { inset:0 0 0 auto; box-shadow:-8px 0 30px rgba(20,30,50,.18); }
	.ripro-doc-series { padding:1.25rem .5rem; }
	.ripro-doc-series .ripro-doc-side-heading { padding-top:2rem; }
	.ripro-doc-series.is-panel-open, .ripro-doc-toc.is-panel-open { display:block; }
	.ripro-doc-panel-backdrop { display:block; position:fixed; z-index:1050; inset:0; background:rgba(20,30,50,.28); opacity:0; pointer-events:none; transition:opacity .2s ease; }
	.ripro-doc-panel-backdrop.is-visible { opacity:1; pointer-events:auto; }
	.ripro-doc-panel-close { display:inline-flex; position:absolute; top:.85rem; right:.85rem; z-index:1; align-items:center; justify-content:center; width:2rem; height:2rem; padding:0; border:1px solid var(--ripro-doc-border); border-radius:50%; background:var(--ripro-doc-surface); color:var(--ripro-doc-muted); cursor:pointer; }
	.ripro-doc-panel-close:hover { border-color:var(--ripro-doc-primary); color:var(--ripro-doc-primary); }
	.ripro-doc-series, .ripro-doc-toc { isolation:isolate; }
	.ripro-doc-mobile-actions { display:flex; gap:.5rem; margin-bottom:.85rem; }
	.ripro-doc-mobile-actions .ripro-doc-panel-toggle { flex:1; }
	.ripro-doc-article { padding:clamp(1.15rem, 4vw, 2rem); }
}
@media (max-width: 575px) {
	.ripro-doc-page { padding-top:.75rem; }
	.ripro-doc-container { width:calc(100% - 20px); }
	.ripro-doc-title { font-size:1.65rem; }
	.ripro-doc-article .post-content { font-size:16px; }
	.ripro-doc-adjacent { grid-template-columns:1fr; }
	.ripro-doc-adjacent-link.is-next { text-align:left; }
}
[data-bs-theme=dark] .ripro-doc-page { --ripro-doc-surface:#20242d; --ripro-doc-border:rgba(255,255,255,.09); --ripro-doc-text:#c5ccd6; --ripro-doc-heading:#e0e5ed; --ripro-doc-nav:#b2bdcc; --ripro-doc-active:#9ab6ff; --ripro-doc-muted:#a4afbe; background:#171a21; }
[data-bs-theme=dark] .ripro-doc-panel-toggle, [data-bs-theme=dark] .ripro-doc-article, [data-bs-theme=dark] .ripro-doc-adjacent-link, [data-bs-theme=dark] .ripro-doc-series, [data-bs-theme=dark] .ripro-doc-toc { background:#20242d; color:#e4e8ef; }
