/* A quiet reading rail, with a compact contents control on smaller screens. */
.page-toc{position:fixed;left:26px;top:130px;width:174px;z-index:30;color:#4c5972;font-family:'DM Sans',Arial,sans-serif}
.toc-panel{max-height:calc(100dvh - 162px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c4cde0 transparent;padding:2px 4px 8px}
.toc-heading{display:flex;align-items:center;gap:9px;margin-bottom:18px;color:#63729a;font-size:11px;line-height:1.5;font-weight:700;letter-spacing:1.05px;text-transform:uppercase}
.toc-heading-icon{display:grid;place-items:center;width:25px;height:25px;border:1px solid #dce2ef;border-radius:7px;background:linear-gradient(145deg,#fff,#f0f3fc);color:#7183b2;box-shadow:0 2px 5px #536ca108}
.toc-heading svg,.toc-toggle svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.toc-links{position:relative;display:flex;flex-direction:column;gap:3px;padding-left:10px}
.toc-links::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:1px;background:linear-gradient(#e7eaf2,#d5ddeb 45%,#edf0f6)}
.toc-marker{position:absolute;left:-1px;top:0;width:3px;height:var(--toc-marker-height,18px);transform:translateY(var(--toc-marker-y,10px));border-radius:5px;background:linear-gradient(#5983d4,#9670cd);box-shadow:0 0 9px #6d82c52b;transition:transform .35s cubic-bezier(.2,.7,.3,1),height .35s;pointer-events:none}
.toc-link{display:flex;align-items:center;gap:10px;min-height:36px;padding:8px 7px;border-radius:7px;color:#56627b;font-size:13px;line-height:1.45;transition:color .2s,background .2s,transform .2s}
.toc-index{font:500 10px/1.4 monospace;color:#8b96ad;flex:none;transition:color .2s}
.toc-link:hover{color:#3e5ca6;background:#eef2fb;transform:translateX(2px)}
.toc-link.is-current{color:#3756a2;font-weight:700;background:linear-gradient(95deg,#eaf0fc,#f4f3fd70)}
.toc-link.is-current .toc-index{color:#6573ad}
.toc-child{min-height:29px;padding:5px 7px 5px 25px;gap:8px;font-size:12px;color:#65748f}
.toc-child-dot{height:3px;width:3px;border-radius:50%;background:#b3bed3;flex:none}
.toc-child.is-current{background:#f0f3fb;color:#4562a5;font-weight:600}
.toc-child.is-current .toc-child-dot{background:#6c83bf;box-shadow:0 0 0 3px #6c83bf15}
.toc-reading{border-top:1px solid #e4e8f1;margin:20px 7px 0 10px;padding-top:15px}
.toc-reading>div:first-child{display:flex;justify-content:space-between;gap:8px;color:#7b879e;font-size:10px;line-height:1.5}
#toc-progress-value{font:500 10px/1.5 monospace;color:#667aa8}
.toc-progress-track{height:3px;border-radius:4px;background:#e4e9f3;overflow:hidden;margin-top:8px}
.toc-progress-track>span{display:block;height:100%;width:100%;transform:scaleX(var(--toc-progress,0));transform-origin:left;background:linear-gradient(90deg,#6f90d1,#a38acb);transition:transform .15s linear}
.toc-back{display:flex;align-items:center;gap:9px;margin:16px 7px 0 10px;font-size:11px;color:#7887a5;padding:4px 0;transition:color .2s}
.toc-back>span:first-child{font-size:15px;color:#8394b6}.toc-back:hover{color:#405fa7}
.toc-toggle{display:none}
@media(min-width:1180px){main,body>footer{width:calc(100% - 220px);margin-left:220px}.page-toc::before{content:'';position:absolute;inset:-25px -13px -20px -13px;z-index:-1;border-radius:18px;background:linear-gradient(145deg,#fbfcffe8,#fafbffad);border:1px solid #e6eaf390;box-shadow:0 8px 35px #5e6f9505}}
@media(min-width:1600px){.page-toc{left:42px;width:182px}main,body>footer{width:calc(100% - 250px);margin-left:250px}}
@media(min-width:1180px) and (max-width:1399px){.method-cards>article>p{min-height:104px}}
@media(max-width:1179px){
  .page-toc{left:18px;top:auto;bottom:19px;width:auto;max-width:calc(100vw - 36px);z-index:50}
  .toc-toggle{display:flex;align-items:center;gap:9px;max-width:100%;border:1px solid #ccd7e9;border-radius:13px;padding:11px 13px;background:#ffffffed;backdrop-filter:blur(18px);color:#3f588c;font-size:13px;font-weight:600;box-shadow:0 6px 25px #344e7e20;min-height:44px}
  .toc-toggle-current{max-width:135px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:12px;font-weight:400;color:#7583a0;border-left:1px solid #dfe5ef;padding-left:9px}
  .toc-toggle .toc-chevron{width:13px;height:13px;margin-left:2px;transition:transform .25s}
  .page-toc.is-open .toc-chevron{transform:rotate(180deg)}
  .toc-panel{display:none;position:absolute;bottom:calc(100% + 10px);left:0;width:254px;max-width:calc(100vw - 36px);max-height:min(67dvh,590px);padding:19px 18px 15px;border:1px solid #d7dfed;border-radius:16px;background:#fffffffa;backdrop-filter:blur(22px);box-shadow:0 15px 50px #30466c26}
  .page-toc.is-open .toc-panel{display:block;animation:tocAppear .2s ease both}
  .toc-heading{margin-bottom:12px;font-size:11px}.toc-link{font-size:14px;min-height:37px}.toc-child{font-size:12px;min-height:31px}.toc-reading{margin-top:14px}.toc-back{font-size:12px}
}
@keyframes tocAppear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:480px){.page-toc{left:12px;bottom:12px;max-width:calc(100vw - 24px)}.toc-toggle{padding:10px 12px;border-radius:12px}.toc-panel{max-width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:reduce){.page-toc *{animation:none!important;transition:none!important}}
