/* Tocly – table of contents & reading progress */
.tocly{--tocly-accent:#2563eb;margin:1.6em 0;font-size:16px;line-height:1.5}
.tocly details{border:0}
.tocly__title{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:700;font-size:1.05em;color:#0f172a}
.tocly__title::-webkit-details-marker{display:none}
.tocly__title:focus-visible{outline:2px solid var(--tocly-accent);outline-offset:3px;border-radius:6px}
.tocly__toggle{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-4px;transition:transform .2s}
.tocly details[open] .tocly__toggle{transform:rotate(-135deg);margin-top:4px}
.tocly__list,.tocly__sub{list-style:none;margin:0;padding:0}
.tocly__list{margin-top:12px}
.tocly__sub{padding-left:18px;margin:4px 0}
.tocly li{margin:2px 0}
.tocly a{display:block;padding:5px 10px;border-radius:8px;color:#334155;text-decoration:none;border-left:2px solid transparent;transition:background .15s,color .15s}
.tocly a:hover{background:color-mix(in srgb,var(--tocly-accent) 8%,transparent);color:var(--tocly-accent)}
.tocly a.is-active{color:var(--tocly-accent);font-weight:600;border-left-color:var(--tocly-accent);background:color-mix(in srgb,var(--tocly-accent) 7%,transparent)}
.tocly--numbered .tocly__list{counter-reset:t1}.tocly--numbered .tocly__list>li{counter-increment:t1}.tocly--numbered .tocly__list>li>a:before{content:counter(t1) ". ";color:var(--tocly-accent);font-weight:700}
.tocly--numbered .tocly__sub{counter-reset:t2}.tocly--numbered .tocly__sub>li{counter-increment:t2}.tocly--numbered .tocly__sub>li>a:before{content:counter(t1) "." counter(t2) " ";color:#94a3b8}
.tocly--box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px}
.tocly--line{border-left:3px solid var(--tocly-accent);padding:4px 0 4px 16px}
.tocly-end{display:block;height:0}
.tocly-progress{position:fixed;left:0;right:0;top:0;height:var(--tocly-h,4px);z-index:99999;pointer-events:none;background:transparent}
.admin-bar .tocly-progress{top:32px}
@media (max-width:782px){.admin-bar .tocly-progress{top:46px}}
.tocly-progress span{display:block;height:100%;width:100%;background:var(--tocly-accent);transform-origin:0 50%;transform:scaleX(0)}
@media (prefers-reduced-motion:reduce){.tocly__toggle,.tocly a{transition:none}}
