/* SIMUL8OR — confirmed pattern library. Option A index layout. */
.s8pl-page{min-height:60vh}
.s8pl-hero{grid-template-columns:minmax(0,1fr)}
.s8pl-hero>div{max-width:780px}
.s8pl-chip{display:inline-flex;align-items:center;gap:var(--s8-2);height:var(--s8-h-sm);padding:0 9px;border:1px solid var(--s8-line-2);border-radius:var(--s8-r);background:var(--s8-inset);text-decoration:none;transition:background var(--s8-t) var(--s8-ease),border-color var(--s8-t) var(--s8-ease),transform var(--s8-t-fast) var(--s8-ease)}
.s8pl-chip:hover,.s8pl-chip:focus-visible{background:var(--s8-hover);border-color:var(--s8-accent-line);transform:translateY(-1px);outline:none}
.s8pl-chip b{font-size:var(--s8-fs-sm);font-weight:600;color:var(--s8-fg);letter-spacing:.01em}
.s8pl-chip time{font-family:var(--s8-mono);font-variant-numeric:tabular-nums;font-feature-settings:var(--s8-num-feat);font-size:var(--s8-fs-xs);color:var(--s8-fg-4)}
.s8pl-chip:hover b,.s8pl-chip:focus-visible b{color:#fff}
.s8pl-chip:hover time,.s8pl-chip:focus-visible time{color:var(--s8-fg-2)}
.s8pl-chip i{width:5px;height:5px;border-radius:50%;background:var(--s8-line-3);flex:none}
.s8pl-chip--up i{background:var(--s8-up)}
.s8pl-chip--down i{background:var(--s8-down)}
.s8pl-chip svg{width:12px;height:12px;margin-left:2px;fill:var(--s8-fg-4);opacity:0;transition:opacity var(--s8-t) var(--s8-ease),fill var(--s8-t) var(--s8-ease)}
.s8pl-chip:hover svg,.s8pl-chip:focus-visible svg{fill:var(--s8-accent-fg);opacity:1}
.s8pl-chips{display:flex;flex-wrap:wrap;gap:var(--s8-2)}
.s8pl-idx{display:grid;grid-template-columns:232px minmax(0,1fr);gap:var(--s8-8);align-items:start}
.s8pl-rail{position:sticky;top:var(--s8-4);border:1px solid var(--s8-line);border-radius:var(--s8-r-lg);background:var(--s8-panel);overflow:hidden}
.s8pl-rail__k{padding:10px var(--s8-4);border-bottom:1px solid var(--s8-line);background:var(--s8-panel-2);font-family:var(--s8-mono);font-size:var(--s8-fs-micro);font-weight:600;letter-spacing:var(--s8-ls-caps);text-transform:uppercase;color:var(--s8-fg-4)}
.s8pl-rail a{display:flex;align-items:center;justify-content:space-between;gap:var(--s8-3);padding:9px var(--s8-4);border-bottom:1px solid var(--s8-line);font-size:var(--s8-fs-sm);color:var(--s8-fg-2);text-decoration:none}
.s8pl-rail a:last-child{border-bottom:0}
.s8pl-rail a:hover{background:var(--s8-panel-2);color:#fff}
.s8pl-rail a.on{color:#fff;background:var(--s8-panel-2);box-shadow:inset 2px 0 0 var(--s8-accent)}
.s8pl-rail em{font-family:var(--s8-mono);font-variant-numeric:tabular-nums;font-style:normal;font-size:var(--s8-fs-xs);color:var(--s8-fg-4)}
.s8pl-grp{padding-bottom:var(--s8-7);scroll-margin-top:var(--s8-5)}
.s8pl-grp+.s8pl-grp{border-top:1px solid var(--s8-line);padding-top:var(--s8-7)}
.s8pl-grp__h{display:flex;align-items:baseline;gap:var(--s8-3);margin-bottom:6px}
.s8pl-grp__h h2{margin:0;font-size:var(--s8-fs-xl);font-weight:600;letter-spacing:var(--s8-ls-tight);color:#fff}
.s8pl-grp__n{font-family:var(--s8-mono);font-variant-numeric:tabular-nums;font-size:var(--s8-fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--s8-fg-4)}
.s8pl-grp__p{margin:0 0 var(--s8-4);max-width:62ch;font-size:var(--s8-fs-sm);color:var(--s8-fg-3);text-wrap:pretty}
.s8pl-empty{padding:var(--s8-8);border:1px solid var(--s8-line);border-radius:var(--s8-r-lg);background:var(--s8-panel);text-align:center}
.s8pl-empty h2{margin:0;font-size:var(--s8-fs-xl);font-weight:600;color:#fff}
.s8pl-empty p{margin:var(--s8-2) 0 0;color:var(--s8-fg-3)}
@media(max-width:900px){.s8pl-idx{grid-template-columns:minmax(0,1fr);gap:var(--s8-6)}.s8pl-rail{position:static;display:flex;align-items:center;overflow-x:auto;scrollbar-width:none}.s8pl-rail::-webkit-scrollbar{display:none}.s8pl-rail__k{align-self:stretch;display:flex;align-items:center;border-bottom:0;border-right:1px solid var(--s8-line);white-space:nowrap}.s8pl-rail a{flex:none;border-bottom:0;border-right:1px solid var(--s8-line);white-space:nowrap}.s8pl-rail a:last-child{border-right:0}.s8pl-rail a.on{box-shadow:inset 0 -2px 0 var(--s8-accent)}}
@media(max-width:520px){.s8pl-chip{height:auto;min-height:var(--s8-h-sm);flex:1 1 145px;justify-content:flex-start}.s8pl-grp__h{align-items:flex-start;justify-content:space-between}.s8pl-grp__n{white-space:nowrap}}
