/* Ranking as a compact decision tool, shared editorial tokens. */
.ranking-shell { max-width:1240px; margin:auto; padding:0 24px; }
.ranking-intro { padding:36px 0 24px; border-bottom:1px solid var(--line); }
.ranking-intro h1 { font-size:clamp(32px,4vw,52px); margin:12px 0; letter-spacing:-.035em; }
.ranking-intro > p:not(.eyebrow) { max-width:760px; font-size:18px; color:var(--muted); }
.ranking-dates { display:flex; flex-wrap:wrap; gap:12px 24px; font-size:13px; color:var(--muted); }
.ranking-dates a { color:var(--accent); display:inline-flex; align-items:center; gap:6px; }
.ranking-presets { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; }
.ranking-presets button { border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:30px; padding:10px 16px; cursor:pointer; font:inherit; font-size:14px; }
.ranking-presets button[aria-pressed=true] { background:var(--ink); color:var(--surface); }
.ranking-controls { display:grid; grid-template-columns:1.4fr repeat(4,minmax(0,1fr)); gap:12px; }
.ranking-filter-toggle { display:none; }
.ranking-table .rank-model { background:transparent; }
.rank-more { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--accent); border:1px solid var(--line); border-radius:5px; padding:5px 9px; margin:3px 0 9px; }
.ranking-controls input[type=search],.ranking-controls select { width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); }
.ranking-explainer { font-size:13px; line-height:1.7; color:var(--muted); max-width:920px; margin:18px 0; }
.ranking-table-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; font-size:13px; padding:16px 0; }
.ranking-table-meta p { margin:0; }.ranking-table-meta > span { margin-left:auto; color:var(--muted); }
.ranking-table-meta button,.ranking-comparison button { background:none; color:var(--accent); border:0; text-decoration:underline; cursor:pointer; padding:5px; }
.ranking-table { width:100%; border-collapse:collapse; text-align:left; }
.ranking-table thead th { padding:14px 12px; font-size:12px; color:var(--muted); background:var(--chip); font-weight:600; }
.ranking-table tbody td,.ranking-table tbody th { padding:20px 12px; vertical-align:top; border-bottom:1px solid var(--line); }
.ranking-table tbody tr[hidden] { display:none; }
.rank-position { width:70px; font-size:19px; color:var(--muted); font-variant-numeric:tabular-nums; }
.rank-model { width:58%; font-weight:400; }.rank-model h2 { font-size:20px; margin:0 0 4px; line-height:1.4; }
.rank-vendor { font-size:12px; color:var(--muted); margin:0 0 8px; }
.rank-badges { display:flex; flex-wrap:wrap; gap:5px; }.rank-badges span { font-size:11px; padding:3px 7px; border-radius:4px; background:var(--chip); color:var(--muted); }
.rank-score { white-space:nowrap; }.rank-score strong { display:block; font-size:24px; color:var(--accent); }.rank-score small { font-size:11px; color:var(--muted); }
.rank-price { font-size:18px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.rank-check label { cursor:pointer; display:flex; align-items:center; gap:8px; }.rank-check input { width:20px; height:20px; accent-color:var(--accent); }.rank-check span { display:none; }
.rank-details { margin-top:12px; }.rank-details summary { font-size:13px; color:var(--accent); cursor:pointer; padding:4px 0; }
.rank-details dl { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:16px 0; }
.rank-details dl > div { padding:10px; background:var(--chip); border-radius:5px; }.rank-details dt { font-size:11px; color:var(--muted); }.rank-details dd { margin:4px 0 0; font-weight:700; }.rank-details p { font-size:12px; color:var(--muted); font-weight:400; }
.rank-details a { font-size:14px; }
.ranking-load { display:block; margin:24px auto; }.ranking-load[hidden],.ranking-empty[hidden],.ranking-comparison[hidden] { display:none; }
.ranking-table-note { color:var(--muted); font-size:12px; }
.ranking-comparison { border:1px solid var(--line); border-radius:12px; background:var(--surface); padding:20px; margin:16px 0; }.ranking-comparison .section-title { margin:0; }.ranking-comparison h2 { font-size:23px; }.ranking-compare-scroll { overflow:auto; }.ranking-compare-scroll table { width:100%; border-collapse:collapse; }.ranking-compare-scroll th,.ranking-compare-scroll td { text-align:left; padding:12px; border-bottom:1px solid var(--line); min-width:120px; font-size:14px; }.ranking-compare-scroll th { background:var(--chip); }
.ranking-section { padding:48px 0; scroll-margin-top:24px; }.ranking-section + .ranking-section { border-top:1px solid var(--line); }
.ranking-section__head { max-width:800px; margin-bottom:24px; }.ranking-section__head h2 { font-size:32px; margin:8px 0 12px; }.ranking-section__head p { color:var(--muted); }.ranking-kicker { font-size:11px; color:var(--accent); letter-spacing:.08em; }.ranking-index { display:none; }
.ranking-formula { display:grid; grid-template-columns:repeat(5,1fr); border-block:1px solid var(--line); margin:24px 0; }.ranking-formula__main { display:none; }.ranking-formula article { padding:20px 16px; border-right:1px solid var(--line); }.ranking-formula article:last-child { border:0; }.ranking-formula b { color:var(--accent); font-size:30px; }.ranking-formula h3 { font-size:17px; }.ranking-formula p { font-size:13px; color:var(--muted); line-height:1.7; }
.ranking-method-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }.ranking-method-grid article { padding:20px 0; border-bottom:1px solid var(--line); }.ranking-method-grid span { font-size:11px; color:var(--muted); }.ranking-method-grid h3 { font-size:20px; }.ranking-method-grid p { font-size:15px; line-height:1.75; }
.ranking-caveat { background:var(--chip); padding:24px; border-left:3px solid var(--accent); margin-top:24px; }.ranking-caveat p { margin-bottom:0; }
.ranking-sources { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }.ranking-sources > * { padding:20px; border:1px solid var(--line); border-radius:8px; }.ranking-sources span,.ranking-sources strong,.ranking-sources small { display:block; }.ranking-sources span,.ranking-sources small { font-size:12px; color:var(--muted); }.ranking-sources strong { margin:8px 0; }
.ranking-faq { margin-top:32px; }.ranking-faq details { border-bottom:1px solid var(--line); padding:18px 0; }.ranking-faq summary { cursor:pointer; font-weight:700; }
@media(max-width:1000px) { .ranking-controls { grid-template-columns:1fr 1fr; }.ranking-search { grid-column:1/-1; }.ranking-formula { grid-template-columns:1fr 1fr; } }
@media(max-width:640px) {
.ranking-enhanced .ranking-filter-toggle { display:block; order:1; padding:10px; color:var(--accent); background:var(--surface); border:1px solid var(--line); border-radius:6px; cursor:pointer; }
.ranking-controls .ranking-search { order:0; }.ranking-controls > .filter-field:not(.ranking-search) { order:2; }
.ranking-enhanced:not(.ranking-filters-open) .ranking-controls > .filter-field:not(.ranking-search) { display:none; }
.ranking-shell { padding-inline:18px; }.ranking-section.ranking-shell { padding-inline:0; }.ranking-controls { grid-template-columns:1fr; }.ranking-intro { padding-top:24px; }.ranking-intro > p:not(.eyebrow) { font-size:16px; }.ranking-table-meta > span { margin-left:0; flex-basis:100%; }
.ranking-table,.ranking-table tbody { display:block; }.ranking-table thead { display:none; }.ranking-table tbody tr { display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:8px 12px; padding:20px 0; border-bottom:1px solid var(--line); }
.ranking-table tbody td,.ranking-table tbody th { border:0; padding:0; width:auto; }.rank-position { grid-column:1; grid-row:1; font-size:16px; }.rank-model { grid-column:2/-1; grid-row:1; }.rank-model h2 { font-size:19px; }.rank-score { grid-column:2; grid-row:2; display:flex; gap:5px; align-items:baseline; }.rank-score strong { font-size:22px; }.rank-price { grid-column:3; grid-row:2; font-size:18px; }.rank-price::before { content:'API / 1 млн'; display:block; font-size:10px; color:var(--muted); }.rank-check { grid-column:2/-1; grid-row:3; }.rank-check span { display:inline; font-size:12px; }
.rank-details dl { grid-template-columns:1fr 1fr; gap:8px; }.rank-details dd { font-size:15px; }.ranking-formula,.ranking-method-grid,.ranking-sources { grid-template-columns:1fr; }.ranking-formula article { border-right:0; border-bottom:1px solid var(--line); }.ranking-formula article p { margin-bottom:0; }.ranking-section__head h2 { font-size:27px; }.ranking-comparison { padding:14px; }
}
