.lb-live{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--on-live,#fff);background:var(--live);padding:3px 9px;border-radius:var(--radius)}
.lb-live .dot{width:7px;height:7px;border-radius:50%;background:var(--on-live,#fff);animation:lb-pulse 1.6s ease-in-out infinite}
.lb-live.off{background:var(--surface-2);color:var(--dim)}
.lb-live.off .dot{animation:none;background:var(--dim)}
.lb-byrow{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--dim);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0;margin-bottom:16px}
/* The rail is hidden by default and revealed by the wide-viewport rule below.
   These base rules MUST come first: the media query has the same specificity,
   so source order is what decides, and putting them after would silently
   re-hide the rail — which also drops the timeline into the 250px column. */
.lb-rail{display:none;position:sticky;top:56px;align-self:start;max-height:calc(100vh - 76px);overflow:auto;padding:16px 0}
.lb-rail h2{font-family:var(--font-mono);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--dim);margin:0 0 10px}
.lb-rail a{display:block;font-size:13px;color:var(--text);text-decoration:none;padding:7px 0 7px 12px;
  border-left:2px solid var(--line);line-height:1.35}
.lb-rail a:hover{border-left-color:var(--accent);color:var(--accent)}
.lb-rail .t{display:block;font-family:var(--font-mono);font-size:10px;color:var(--dim)}
.lb-root.has-rail .lb-rail{display:block}
.lb-post{border-bottom:1px solid var(--line);padding:20px 0;scroll-margin-top:64px}
.lb-post:last-child{border-bottom:0}
.lb-post.pinned{background:var(--surface-2);border-left:3px solid var(--pin);padding-left:14px;margin-bottom:6px}
.lb-post.keyev{border-left:3px solid var(--key);padding-left:14px}
.lb-phead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.lb-rel{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
.lb-time{font-family:var(--font-mono);font-size:11px;color:var(--dim);text-decoration:none}
.lb-time:hover{color:var(--accent)}
.lb-badge{font-family:var(--font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;
  border:1px solid currentColor;padding:1px 6px;border-radius:var(--radius)}
.lb-badge.key{color:var(--key)}
.lb-badge.pin{color:var(--pin)}
.lb-share{margin-left:auto;font-family:var(--font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;
  background:none;border:1px solid var(--line);color:var(--dim);border-radius:var(--radius);padding:3px 9px;cursor:pointer}
.lb-share:hover{color:var(--accent);border-color:var(--accent)}
.lb-hl{font-family:var(--font-display);font-size:1.22rem;line-height:1.25;margin:2px 0 8px}
.lb-by{font-size:12.5px;color:var(--dim);margin-bottom:8px}
.lb-post p{margin:0 0 10px;font-size:15.5px}
.lb-post p:last-child{margin-bottom:0}
.lb-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.lb-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.8px;text-transform:uppercase;
  color:var(--dim);border:1px solid var(--line);padding:2px 7px;border-radius:var(--radius)}
.lb-edited{font-family:var(--font-mono);font-size:10.5px;color:var(--dim);margin-top:8px}
.lb-blk{margin:0 0 12px}
.lb-blk img,.lb-blk video{width:100%;display:block;border-radius:var(--radius)}
.lb-blk iframe{width:100%;aspect-ratio:16/9;border:0;display:block;border-radius:var(--radius)}
.lb-blk audio{width:100%}
.lb-gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px}
.lb-quote{border-left:3px solid var(--accent);padding:2px 0 2px 14px;margin:0 0 12px;font-size:1.05rem;font-style:italic}
.lb-quote cite{display:block;font-size:12.5px;color:var(--dim);font-style:normal;margin-top:6px}
.lb-card{display:flex;gap:12px;align-items:stretch;border:1px solid var(--line);border-radius:var(--radius);
  text-decoration:none;color:inherit;overflow:hidden;background:var(--surface-2)}
.lb-card img{width:120px;min-height:88px;object-fit:cover;flex:none;border-radius:0}
.lb-card .b{padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.lb-card .t{font-weight:600;font-size:14px;line-height:1.3}
.lb-card .d{font-size:12.5px;color:var(--dim);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lb-card .h{font-family:var(--font-mono);font-size:10.5px;color:var(--dim);letter-spacing:.5px;text-transform:uppercase;margin-top:auto}
.lb-credit{font-size:11.5px;color:var(--dim);padding:5px 2px}
.lb-illus{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.8px;text-transform:uppercase;
  color:var(--pin);border-top:1px solid var(--line);padding:6px 2px 2px;margin-top:4px}
/* Social quote card — built from data we hold, so no network's script runs. */
.lb-social{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;background:var(--surface-2);margin:0 0 12px}
.lb-soc-head{display:flex;align-items:center;gap:9px;margin-bottom:8px;min-width:0}
/* Scoped under .lb-social so it outranks the generic ".lb-blk img {width:100%}
"
   media rule — otherwise the avatar goes full-bleed and shoves the byline
   clean out of the card. */
.lb-social .lb-soc-av{width:34px;height:34px;min-width:34px;border-radius:50%;flex:none;object-fit:cover}
.lb-soc-who{display:flex;flex-direction:column;line-height:1.25;min-width:0;overflow:hidden}
.lb-soc-who strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-soc-h{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-soc-h{font-family:var(--font-mono);font-size:11px;color:var(--dim)}
.lb-soc-net{margin-left:auto;font-family:var(--font-mono);font-size:10px;letter-spacing:1px;
  text-transform:uppercase;color:var(--dim);border:1px solid var(--line);padding:2px 7px;border-radius:var(--radius)}
.lb-soc-text{margin:0;font-size:15px}
.lb-soc-text p{margin:0 0 7px}
.lb-soc-text p:last-child{margin-bottom:0}
.lb-soc-foot{margin-top:9px;font-family:var(--font-mono);font-size:10.5px}
.lb-soc-foot a{color:var(--dim);text-decoration:none}
.lb-soc-foot a:hover{color:var(--accent)}
/* Live player, pinned while a show is on air */
.lb-livebox{border:1px solid var(--live);border-radius:var(--radius);overflow:hidden;background:var(--stage,#000);margin:0 0 12px}
.lb-livebox.ended{border-color:var(--line);opacity:.75}
.lb-livebar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-2);flex-wrap:wrap}
.lb-livecap{font-size:13px;color:var(--dim)}
.lb-countdown{font-family:var(--font-mono);font-size:12px;color:var(--live)}
.lb-livebox iframe{width:100%;aspect-ratio:16/9;border:0;display:block}
.lb-livebox audio{width:100%;display:block}
/* Poll */
.lb-poll{border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;background:var(--surface-2)}
.lb-poll-q{font-weight:600;margin-bottom:10px}
.lb-poll-opts{display:flex;flex-direction:column;gap:6px}
.lb-poll-o{position:relative;display:flex;align-items:center;gap:8px;width:100%;text-align:left;
  background:transparent;border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;
  color:inherit;font:inherit;font-size:14px;cursor:pointer;overflow:hidden}
.lb-poll-o:hover:not(:disabled){border-color:var(--accent)}
.lb-poll-o:disabled{cursor:default}
.lb-poll-o.mine{border-color:var(--accent)}
.lb-poll-bar{position:absolute;inset:0 auto 0 0;background:var(--accent);opacity:.18;transition:width .4s ease}
.lb-poll-label{position:relative;flex:1}
.lb-poll-pct{position:relative;font-family:var(--font-mono);font-size:11.5px;color:var(--dim)}
.lb-poll-total{font-family:var(--font-mono);font-size:11px;color:var(--dim);margin-top:8px}
/* Scoreboard */
.lb-score{border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;background:var(--surface-2)}
.lb-score-row{display:flex;align-items:center;gap:12px}
.lb-score-team{flex:1;font-weight:600;font-size:15px}
.lb-score-team.away{text-align:right}
.lb-score-num{font-family:var(--font-mono);font-size:22px;letter-spacing:1px}
.lb-score-status{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;
  color:var(--dim);text-align:center;margin-top:6px}
.lb-score-ev{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;font-size:12.5px;color:var(--dim)}
.lb-score-ev ul{margin:0;padding:0;list-style:none}
.lb-score-ev ul.away{text-align:right}
.lb-score-ev li{padding:1px 0}
.lb-score-ev span{font-family:var(--font-mono);font-size:11px;opacity:.8}
