/* Editorial Threads rail: progressive-enhancement sidebar for individual timelines. */
.threads-detail-layout{display:grid;grid-template-columns:minmax(188px,230px) minmax(0,820px);gap:clamp(26px,4.5vw,72px);max-width:1200px;margin:26px auto 0;align-items:start;}
.threads-detail-layout>.threads-detail{min-width:0;width:100%;max-width:none;margin:0;}
.thread-rail{position:sticky;top:94px;align-self:start;min-width:0;color:#262626;font-family:Inter,Arial,sans-serif;}
.thread-rail-fold{margin:0;padding:0;border:0;}
.thread-rail-fold>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:8px 0 13px;border:0;color:#292929;font:550 12px/1.5 Inter,Arial,sans-serif;}
.thread-rail-fold>summary::-webkit-details-marker{display:none;}
.thread-rail-fold>summary span{color:#626262;font:400 10px/1.4 Inter,Arial,sans-serif;white-space:nowrap;}
.thread-rail-scroll{margin:13px 0 0;overflow-y:auto;overscroll-behavior:contain;max-height:calc(100vh - 185px);max-height:calc(100dvh - 185px);scrollbar-width:thin;scrollbar-color:#d6d6d6 transparent;}
.thread-rail-track{position:relative;min-width:0;}
.thread-rail-list{margin:0;padding:0;list-style:none;position:relative;}
.thread-rail-row{margin:0;padding:0;min-width:0;position:relative;}
.thread-rail-row a{box-sizing:border-box;display:block;min-height:34px;padding:8px 4px 8px 26px;border-radius:6px;color:#626262;text-decoration:none;font:400 11.5px/1.5 Inter,Arial,sans-serif;letter-spacing:-.012em;overflow-wrap:anywhere;transition:color .15s ease,background-color .15s ease;}
.thread-rail-row[data-rail-depth="1"] a{padding-left:40px;font-size:11px;}
.thread-rail-row a:hover{color:#252525;background:#f9f9f9;}
.thread-rail-row a[aria-current="location"]{font-weight:550;color:#191919;}
.thread-rail-row a:focus-visible,.thread-rail-fold>summary:focus-visible{outline:2px solid #707070;outline-offset:2px;}
.thread-rail-svg{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;z-index:1;}
.thread-rail-marker{position:absolute;top:0;left:0;width:17px;height:17px;transform-origin:50% 50%;pointer-events:none;z-index:2;color:#202020;filter:drop-shadow(0 0 2px #ffffff);}
.thread-rail-marker svg{width:100%;height:100%;display:block;}
.threads-detail-layout :is(#thread-overview,#thread-developments,#thread-record-notes){scroll-margin-top:112px;}
@media(min-width:961px){.thread-rail-fold>summary{cursor:default;pointer-events:none;}}
@media(max-width:960px){
 .threads-detail-layout{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:18px;}
 .thread-rail{position:static;top:auto;}
 .thread-rail-fold{padding:0 12px;background:#f9f9f9;border-radius:8px;}
 .thread-rail-fold>summary{padding:13px 3px;border-bottom:0;}
 .thread-rail-fold>summary:after{content:'+';color:#666;font:400 17px/1 Inter,Arial,sans-serif;margin-left:auto;}
 .thread-rail-fold[open]>summary:after{content:'−';}
 .thread-rail-fold[open]>summary{border:0;}
 .thread-rail-scroll{max-height:250px;margin:9px 0 0;padding-bottom:9px;}
 .threads-detail-layout>.threads-detail{margin:0;}
}
@media(prefers-reduced-motion:reduce){.thread-rail-row a{transition:none;}}

/* The archive stylesheet has a specific detail-margin rule; the rail owns detail spacing. */
.threads-explorer:not(:has(.threads-archive-controls:not([hidden]))) .threads-detail-layout > .threads-detail{margin:0;}
.thread-rail-marker{background:#fff;border-radius:50%;}
