/* Страница «БВИ по физике» (/bvi/). Собирает build/build_bvi.py.
   Палитра — только переменные из style.css; морковного здесь нет. */

.bvi-kicker{margin:0 0 10px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--t-text)}
.bvi-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:-14px 0 28px}
.bvi-meta{font-size:14px;color:var(--ink-2)}
.bvi-toc{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 30px;counter-reset:toc}
.bvi-toc a{font-size:15px;color:var(--ink-2);text-decoration:none}
.bvi-toc a::before{counter-increment:toc;content:counter(toc) ". ";color:var(--t-text);font-weight:600}
.bvi-toc a:hover{color:var(--ink)}
.bvi-warn{max-width:var(--measure);margin:0 0 48px;padding:16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.bvi-warn p{margin:0;font-size:15px;color:var(--ink-2)}
.bvi-warn p+p{margin-top:8px}

.bvi section{margin:0 0 60px;scroll-margin-top:20px}
.bvi .h2{margin:0 0 6px}
.bvi-sub{margin:0 0 22px;font-size:17px;color:var(--ink-2)}
.bvi p{max-width:var(--measure);line-height:1.55}
.bvi-h3{margin:26px 0 10px;font-size:19px;letter-spacing:-.01em}
.bvi-fine{font-size:14.5px;color:var(--ink-2);margin-top:12px}

/* термины */
.terms{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 22px}
.term{padding:16px 18px;border:1px solid var(--line);border-radius:12px}
.term b{display:block;margin-bottom:6px;font-size:19px;letter-spacing:-.01em;color:var(--t-text)}
.term p{margin:0;font-size:15px;max-width:none}
.bvi-ex{margin:22px 0;padding-left:18px;border-left:3px solid var(--t-mark)}
.bvi-ex h3{margin:0 0 8px;font-size:18px}
.bvi-ex p{margin:0 0 6px}
.models{padding-left:22px;max-width:var(--measure)}
.models li{margin-bottom:10px;line-height:1.55}

/* таблицы */
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.bvi-t{width:100%;border-collapse:collapse;font-size:15px}
.bvi-t th,.bvi-t td{padding:11px 14px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top}
.bvi-t thead th{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:var(--panel)}
.bvi-t tbody tr:last-child td{border-bottom:none}
.bvi-t .u{font-weight:600;white-space:nowrap}

/* фильтр */
.bvi-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 22px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:inherit;font-size:14px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink-2);cursor:pointer}
.chip:hover{border-color:var(--t-mark)}
.chip.on{border-color:var(--t-text);color:var(--t-text);font-weight:600}
.bvi-sel{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2)}
.bvi-sel select{font:inherit;font-size:15px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink)}
.bvi-count{font-size:14px;color:var(--ink-2)}

/* карточки олимпиад */
.olys{display:grid;gap:14px}
.oly{padding:20px 22px;border:1px solid var(--line);border-radius:14px}
.oly-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 4px}
.oly-t{margin:0;font-size:21px;letter-spacing:-.015em}
.lvl{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--t-text);white-space:nowrap}
.oly-org{margin:0 0 6px;font-size:15px;color:var(--ink-2);max-width:none}
.oly-org a{color:var(--t-text);text-decoration:none}
.oly-org a:hover{text-decoration:underline}
.oly-sched{margin:0 0 16px;font-size:14.5px;color:var(--ink-2);max-width:none}
.st{display:inline-block;margin-right:8px;padding:2px 8px;font-size:12.5px;font-weight:600;border:1px solid var(--line);border-radius:999px;color:var(--ink-2)}
.st-go{border-color:var(--t-mark);background:var(--t-soft);color:var(--t-text)}
.st-ok{color:var(--ink)}
.oly-for{margin:0 0 12px;font-size:15px;font-weight:500;max-width:none}
.oly-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 14px}
.oly-col h4{margin:0 0 8px;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.oly-b{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 8px}
.oly-k{font-size:13px;font-weight:600;white-space:nowrap;color:var(--ink-2)}
.k-bvi{color:var(--t-text)}
.uni{display:inline-block;margin:0 6px 6px 0;padding:3px 9px;font-size:14px;border:1px solid var(--line-2);border-radius:7px;background:var(--panel)}
.b-bvi .uni{border-color:var(--t-soft);background:var(--t-soft);color:var(--t-text)}
.uni.on{outline:2px solid var(--t-mark);outline-offset:1px}
.oly-note{margin:0;font-size:15px;color:var(--ink-2);max-width:none}

/* сводная таблица */
.bvi-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 14px;font-size:14px;color:var(--ink-2)}
.bvi-tbl{border-collapse:collapse;font-size:13.5px;min-width:1040px}
.bvi-tbl th,.bvi-tbl td{padding:9px 10px;border-bottom:1px solid var(--line-2);text-align:center;white-space:nowrap}
.bvi-tbl thead th{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:var(--panel)}
.bvi-tbl th:first-child,.bvi-tbl td:first-child{position:sticky;left:0;min-width:210px;max-width:260px;text-align:left;white-space:normal;background:var(--white);border-right:1px solid var(--line-2)}
.bvi-tbl thead th:first-child{background:var(--panel)}
.bvi-tbl tbody tr:last-child td{border-bottom:none}
.bvi-tbl td:first-child a{color:var(--ink);text-decoration:none}
.bvi-tbl td:first-child a:hover{color:var(--t-text)}
.c-bvi{font-weight:700;color:var(--t-text)}
.c-100{color:var(--ink)}
.c-none,.c-unknown{color:var(--ink-2)}
.bvi-tbl td.pale{opacity:.5}

/* вузы */
.vuzy{display:grid;gap:14px}
.vuz{padding:20px 22px;border:1px solid var(--line);border-radius:14px}
.vuz h3{margin:0;font-size:21px;letter-spacing:-.015em}
.vuz .vuz-full{margin:0 0 14px;font-size:15px;color:var(--ink-2);max-width:none}
.vuz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 18px;margin:0 0 14px}
.vuz-grid dt{margin:0 0 4px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.vuz-grid dd{margin:0;font-size:15px;line-height:1.45}
.vuz p{margin:0;font-size:15px;color:var(--ink-2);max-width:none}

/* списки и источники */
.bvi-list{padding-left:20px;max-width:var(--measure)}
.bvi-list li{margin-bottom:12px;line-height:1.55}
.bvi-src{margin:0 0 18px;padding:0;list-style:none;columns:2;column-gap:30px}
.bvi-src li{margin:0 0 8px;font-size:15px;break-inside:avoid}
.bvi-src a{color:var(--t-text);text-decoration:none}
.bvi-src a:hover{text-decoration:underline}
.bvi-author{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);font-size:15px;color:var(--ink-2);max-width:none}
.bvi-author a{color:var(--t-text);text-decoration:none}
.bvi-author a:hover{text-decoration:underline}

@media(max-width:640px){
  .terms,.oly-cols,.vuz-grid{grid-template-columns:1fr}
  .oly,.vuz{padding:16px}
  .bvi-src{columns:1}
  .bvi-toc{gap:6px 14px}
  .bvi-tbl th:first-child,.bvi-tbl td:first-child{min-width:150px;max-width:170px}
  .bvi section{margin-bottom:44px}
}
