/* terminal-shell.css — the two-column terminal shell: rail (left, sticky under the nav; a chip strip on ≤820px)
   + main column. Shared by / (index.html) and /watchlist (Terminal step 3, Sep 11 2026). Site tokens only.
   The rail markup itself is generated by tools/build-rail.mjs into <!-- RAIL:START/END -->. */
.term { display:grid; grid-template-columns:248px minmax(0,1fr); max-width:1440px; margin:0 auto; align-items:start; }
.rail { position:sticky; top:58px; max-height:calc(100vh - 58px); overflow-y:auto; background:var(--bg2); border-right:1px solid var(--border2); padding:12px 12px 22px; scrollbar-width:thin; }
.rail h4 { font-family:var(--fd); font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--text-dim); margin:16px 6px 6px; font-weight:700; display:flex; justify-content:space-between; align-items:center; }
.rail h4 a { font-family:var(--fm); font-size:11px; letter-spacing:0; text-transform:none; color:var(--accent); }
.rl { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; text-align:left; padding:7px 8px; border-radius:3px; color:var(--text); font-size:13.5px; font-weight:500; line-height:1.3; cursor:pointer; }
.rl:hover { background:rgba(255,255,255,0.04); color:var(--text-head); text-decoration:none; }
.rl.on { background:var(--accent-dim, rgba(0,204,245,0.1)); color:var(--text-head); box-shadow:inset 2px 0 0 var(--accent); }
.rl .ico { width:16px; color:var(--text-dim); font-family:var(--fm); font-size:11px; text-align:center; margin-right:4px; flex:0 0 auto; }
.rl .lbl { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rl .pill { font-family:var(--fm); font-size:11px; font-weight:700; padding:2px 6px; border-radius:2px; background:var(--bg4); color:var(--text-dim); flex:0 0 auto; }
.rl .pill.on { background:var(--green-dim); color:var(--green); }
.rl.sub { padding:5px 8px 5px 30px; font-size:12.5px; color:var(--text-dim); }
.rl.sub:hover { color:var(--text-head); }
.rl.sub.all { color:var(--accent); font-family:var(--fm); font-size:11px; }
.rl-glabel { font-family:var(--fm); font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--text-dim); opacity:0.7; padding:8px 8px 2px 30px; }
.rl-grp > summary { list-style:none; }
.rl-grp > summary::-webkit-details-marker { display:none; }
.rl-grp[open] > summary .ico { transform:rotate(90deg); }
.rl-grp > summary .ico { transition:transform 0.15s; }
.rl-guides-chip { display:none; }
.rail-foot { margin-top:20px; padding:12px 8px 0; border-top:1px solid var(--border); font-family:var(--fm); font-size:11px; color:var(--text-dim); line-height:1.7; }
.tmain { padding:16px 22px 40px; min-width:0; }
@media (max-width:820px) {
  .term { grid-template-columns:1fr; }
  .rail { position:static; max-height:none; overflow:visible; border-right:0; border-bottom:1px solid var(--border2); padding:8px 12px; display:flex; flex-wrap:nowrap; gap:6px; overflow-x:auto; scrollbar-width:none; }
  .rail .rl-sec, .rail [data-rail] { display:contents; }
  .rail h4, .rl-grp, .rail-foot, .rl.pf-empty { display:none; }
  .rl-guides-chip { display:flex; }
  .rl { flex:0 0 auto; width:auto; padding:6px 10px; border:1px solid var(--border2); border-radius:2px; font-size:12px; white-space:nowrap; }
  .rl.on { box-shadow:none; border-color:var(--accent); }
  .rl .ico { display:none; }
  .tmain { padding:12px 16px 32px; }
}
