/* Rankings composition; tokens come from the shared foundation. */
.lb-main { max-width:1160px; padding-block:56px 36px; }
.lb-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 48px; margin-bottom:40px; }
.lb-head .tag,.lb-head h1,.lb-sub { grid-column:1; }
.lb-head .tag { margin-bottom:4px; }
.lb-head h1 { font-size:clamp(42px,5.5vw,68px); line-height:1.06; letter-spacing:-.05em; margin:0 0 12px; }
.lb-sub { color:var(--text-2); font-size:17px; line-height:1.75; max-width:610px; margin:0; }
.lb-actions { grid-column:2; grid-row:2 / 4; display:flex; flex-direction:column; align-self:end; gap:12px; }
.lb-board { border-radius:var(--radius-lg); border:1px solid var(--line); background:var(--panel); overflow:hidden; }
.lb-board-head { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:28px 32px; }
.lb-board-head h2 { font-size:24px; letter-spacing:-.03em; margin:0; }
.lb-board-head p { margin:6px 0 0; font-size:13px; color:var(--text-3); }
.lb-board-head > span { font:11px/1.5 var(--mono); color:var(--text-2); padding:7px 10px; border:1px solid var(--line); border-radius:8px; white-space:nowrap; }
.lb-columns,.lb-row { display:grid; grid-template-columns:48px minmax(0,1fr) 130px 90px; align-items:center; gap:24px; padding-inline:32px; }
.lb-columns { background:var(--ink); border-block:1px solid var(--line); padding-block:12px; font:10px/1.5 var(--mono); text-transform:uppercase; letter-spacing:.09em; color:var(--text-3); }
.lb-columns span:first-child { text-align:center; }
.lb-columns span:last-child { text-align:right; }
.lb-status { color:var(--text-3); text-align:center; padding:56px 24px; font-size:14px; margin:0; }
.lb-list { list-style:none; margin:0; padding:0; }
.lb-row { padding-block:24px; border-bottom:1px solid var(--line); transition:background .15s; }
.lb-row:last-child { border-bottom:0; }
.lb-row:hover,.lb-row:focus-within { background:var(--ink); }
.lb-rank { font:500 18px var(--mono); color:var(--text-3); text-align:center; font-variant-numeric:tabular-nums; }
.lb-rank-1 { background:var(--panel-2); color:var(--text); border:1px solid var(--line); border-radius:var(--radius); padding-block:9px; }
.lb-agent { display:flex; flex-direction:column; gap:6px; min-width:0; padding-block:3px; }
.lb-agent b { font-size:18px; font-weight:650; letter-spacing:-.025em; overflow-wrap:anywhere; }
.lb-agent code { font:11px/1.6 var(--mono); color:var(--text-3); overflow-wrap:anywhere; }
.lb-agent:hover b { text-decoration:underline; text-underline-offset:4px; }
.lb-row .tierpill { justify-self:start; font-size:10px; border-radius:7px; padding:6px 9px; background:var(--ink); border-color:var(--line); }
.lb-row .tier-1 { color:var(--amber); }
.lb-row .tier-2 { color:var(--green); }
.lb-row .tier-3,.lb-row .tier-4 { color:var(--signal); background:#edf3e8; border-color:#c2d2b7; }
.lb-score { display:flex; flex-direction:column; align-items:flex-end; font-variant-numeric:tabular-nums; }
.lb-score b { font:600 27px/1.25 var(--mono); letter-spacing:-.05em; color:var(--text); }
.lb-score span { font:10px/1.6 var(--mono); color:var(--text-3); }
.lb-board-note { margin:0; padding:18px 32px; border-top:1px solid var(--line); background:var(--ink); color:var(--text-3); font-size:12px; line-height:1.7; }
.lb-board noscript p { margin:24px 32px; }
.lb-board noscript a { text-decoration:underline; }
.lb-foot { margin:24px 0 0; font-size:14px; color:var(--text-2); }
.lb-foot a { color:var(--signal); text-decoration:underline; text-underline-offset:4px; }
@media(max-width:800px) {
	.lb-head { grid-template-columns:minmax(0,1fr); gap:16px; }
	.lb-actions { grid-column:1; grid-row:auto; flex-direction:row; flex-wrap:wrap; margin-top:8px; }
	.lb-columns,.lb-row { grid-template-columns:36px minmax(0,1fr) 115px 72px; gap:16px; padding-inline:24px; }
	.lb-board-head { padding:24px; }
}
@media(max-width:560px) {
	.lb-main { padding-top:32px; }
	.lb-head { margin-bottom:28px; }
	.lb-board-head { padding:20px; flex-wrap:wrap; }
	.lb-board-head h2 { font-size:22px; }
	.lb-columns { display:none; }
	.lb-list { border-top:1px solid var(--line); }
	.lb-row { grid-template-columns:28px minmax(0,1fr) 66px; gap:8px 12px; padding:20px 16px; }
	.lb-rank { font-size:14px; align-self:start; margin-top:4px; }
	.lb-rank-1 { padding-block:3px; border-radius:7px; }
	.lb-agent b { font-size:16px; }
	.lb-agent code { font-size:10px; }
	.lb-row .tierpill { grid-column:2; grid-row:2; }
	.lb-score { grid-column:3; grid-row:1 / 3; }
	.lb-score b { font-size:23px; }
	.lb-board-note { padding:16px 20px; }
}
