@charset "UTF-8";
/* Банк заданий (v9): /bank, предмет, номер, задание. Макет «Банк заданий WEBEGE — дизайн» (04.11).
   Цвета — токены v9.css (светлая и тёмная тема) + свои ok/bad. */
:root { --ok: #00843A; --ok-line: #00A84A; --ok-soft: #E6F8EC; --bad: #C02828; --bad-line: #D93A3A; --bad-soft: #FDECEC; --ink-btn: #070908; --on-ink: #FFFFFF; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --ok: #3BD67C; --ok-line: #3BD67C; --ok-soft: #0F2A1B; --bad: #FF7A7A; --bad-line: #FF6B6B; --bad-soft: #2E1414; --ink-btn: #EDF3EF; --on-ink: #0B0F0D; } }
:root[data-theme="dark"] { --ok: #3BD67C; --ok-line: #3BD67C; --ok-soft: #0F2A1B; --bad: #FF7A7A; --bad-line: #FF6B6B; --bad-soft: #2E1414; --ink-btn: #EDF3EF; --on-ink: #0B0F0D; }

.bk { padding-bottom: 48px; }
.bk .crumbs { margin-top: 2px; }
.bk-h1 { margin: 6px 0 2px; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.15; letter-spacing: -.03em; font-weight: 800; text-wrap: balance; }
.bk-h1l { font-size: clamp(24px, 3.2vw, 36px); }
.bk-lead { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; max-width: 70ch; }
.bk-hero { padding: 2px 0 6px; }
.bk-hero h1 { margin: 6px 0 0; font-size: clamp(26px, 4vw, 40px); line-height: 1.1; letter-spacing: -.035em; font-weight: 800; text-wrap: balance; }
.bk-hero .bk-lead { margin-top: 10px; font-size: 16px; max-width: none; }
.btn svg { width: 17px; height: 17px; flex: 0 0 auto; }
.bk-lnk { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--green-ink); cursor: pointer; }

/* прогресс */
.bk-prog { height: 6px; border-radius: 9px; background: var(--surface-2); overflow: hidden; }
.bk-prog i { display: block; height: 100%; width: 0; background: var(--green); border-radius: 9px; transition: width .3s; }

/* главная банка: предметы */
.bk-subjects { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 22px; }
.bk-subj { position: relative; display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 14px; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-1); transition: transform .18s, box-shadow .18s; }
a.bk-subj:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); }
.bk-si { width: 52px; height: 52px; border-radius: 15px; background: var(--green-soft); color: var(--green-ink); display: grid; place-items: center; }
.bk-si svg { width: 28px; height: 28px; }
.bk-st { display: grid; gap: 2px; min-width: 0; }
.bk-st small { font-size: 12.5px; font-weight: 700; color: var(--faint); }
.bk-st b { font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
.bk-st em { font-style: normal; font-size: 14px; color: var(--muted); }
.bk-arr { font-size: 20px; color: var(--green-ink); }
.bk-subj .bk-prog2 { position: absolute; left: 18px; right: 18px; bottom: 9px; height: 4px; border-radius: 9px; background: var(--surface-2); overflow: hidden; }
.bk-subj .bk-prog2 i { display: block; height: 100%; width: 0; background: var(--green); border-radius: 9px; }
.bk-soon { grid-template-columns: 1fr; background: transparent; box-shadow: none; border-style: dashed; }
.bk-how { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 26px; }
.bk-how div { display: grid; gap: 4px; padding: 16px 18px; border-radius: var(--r-md); background: var(--surface-2); }
.bk-how b { font-size: 15px; font-weight: 700; }
.bk-how span { font-size: 14px; color: var(--muted); line-height: 1.45; }
@media (max-width: 760px) { .bk-how { grid-template-columns: 1fr; } .bk-subjects { grid-template-columns: 1fr; } }

/* страница предмета */
.bk-shead .bk-lead { margin-top: 8px; font-size: 16px; }
.bk-pbox { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 14px 16px; display: grid; gap: 8px; }
.bk-pbox > small { font-size: 13px; color: var(--faint); }
.bk-pr { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.bk-pr b { font-size: 22px; font-weight: 700; }
.bk-pr b small { font-size: 13px; color: var(--faint); font-weight: 600; }
.bk-pr > small { font-size: 13px; color: var(--faint); }
.bk-acts { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0 4px; }
.bk-acts .btn { width: auto; height: 46px; padding: 0 20px; font-size: 15px; display: inline-flex; align-items: center; gap: 9px; }
.bk-grp { margin-top: 24px; }
.bk-grp h2 { margin: 0 0 10px; font-size: 18px; font-weight: 700; letter-spacing: -.01em; display: flex; gap: 10px; align-items: baseline; }
.bk-grp h2 small { font-size: 13px; font-weight: 600; color: var(--faint); }
.bk-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bk-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) 110px 64px; gap: 14px; align-items: center; padding: 10px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.bk-row:hover { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); box-shadow: var(--shadow-1); }
.bk-nn { width: 40px; height: 40px; border-radius: 11px; background: var(--green-soft); color: var(--green-ink); font-weight: 700; font-size: 17px; display: grid; place-items: center; }
.bk-row.done .bk-nn { background: var(--green); color: var(--on-green); }
.bk-tt { display: grid; min-width: 0; }
.bk-tt b { font-size: 15px; font-weight: 700; line-height: 1.3; }
.bk-tt span { font-size: 13px; color: var(--faint); }
.bk-mp { height: 6px; border-radius: 9px; background: var(--surface-2); overflow: hidden; }
.bk-mp i { display: block; height: 100%; width: 0; background: var(--green); transition: width .3s; }
.bk-ct { text-align: right; font-size: 13px; color: var(--faint); }
.bk-ct b { color: var(--green-ink); font-weight: 700; }
.bk-note { margin: 24px 0 0; font-size: 13.5px; color: var(--faint); max-width: 90ch; }
@media (max-width: 900px) { .bk-shead { grid-template-columns: 1fr; gap: 14px; } .bk-rows { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .bk-rows { gap: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
  .bk-row { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; border: 0; border-top: 1px solid var(--surface-2); border-radius: 0; padding: 10px 12px; }
  .bk-row:first-child { border-top: 0; }
  .bk-row:hover { box-shadow: none; }
  .bk-nn { width: 34px; height: 34px; border-radius: 10px; font-size: 15px; }
  .bk-tt span, .bk-mp { display: none; }
  .bk-tt b { font-size: 14.5px; font-weight: 600; }
  .bk-acts .btn { flex: 1 1 100%; justify-content: center; height: 50px; }
  .bk-grp { margin-top: 18px; }
  .bk-grp h2 { font-size: 16px; margin-bottom: 8px; }
}

/* страница номера: список слева + лента */
.bk-lay { display: grid; grid-template-columns: 268px minmax(0, 1fr); gap: 28px; align-items: start; padding-top: 4px; }
/* 04.11: без внутренней прокрутки — боковая панель едет вместе со страницей и прилипает, когда виден её конец (top считает bank.js stickSide) */
.bk-side { position: sticky; top: 84px; display: grid; gap: 12px; padding-bottom: 4px; }
.bk-sbox { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 14px; }
.bk-sh { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.bk-sh b { font-size: 16px; font-weight: 700; }
.bk-sh a { margin-left: auto; font-size: 13px; font-weight: 600; color: var(--green-ink); }
.bk-psub { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; color: var(--faint); margin-top: 6px; }
.bk-nav { padding: 6px 8px 10px; }
.bn-grp { font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--faint); margin: 10px 6px 4px; }
.bn-list { display: grid; gap: 1px; }
.bn-i { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 10px; color: var(--ink); font-size: 14px; line-height: 1.25; }
.bn-i:hover { background: var(--surface-2); }
.bn-n { font-weight: 700; font-size: 13px; color: var(--muted); text-align: center; }
.bn-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bn-i em { font-style: normal; font-size: 12.5px; color: var(--faint); }
.bn-i em.d { color: var(--green-ink); font-weight: 700; }
.bn-i.on { background: var(--green-soft); color: var(--green-ink); font-weight: 700; }
.bn-i.on .bn-n { color: var(--green-ink); }
.bk-main { min-width: 0; max-width: 820px; }
.bk-mbar { display: none; }
.bk-bar { display: flex; align-items: center; gap: 12px; margin: 16px 0 14px; flex-wrap: wrap; }
.bk-seg { display: inline-flex; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 3px; gap: 2px; }
.bk-seg button { border: 0; background: none; padding: 7px 12px; border-radius: 9px; font: inherit; font-size: 14px; font-weight: 600; color: var(--muted); display: inline-flex; gap: 6px; align-items: center; cursor: pointer; white-space: nowrap; }
.bk-seg button b { font-weight: 700; font-size: 12.5px; color: var(--faint); }
.bk-seg button:hover { color: var(--ink); }
.bk-seg button.on { background: var(--ink-btn); color: var(--on-ink); }
.bk-seg button.on b { color: color-mix(in srgb, var(--on-ink) 70%, transparent); }
.bk-list { display: grid; gap: 14px; }
.bk-empty { margin: 4px 0 0; padding: 18px; border-radius: 16px; background: var(--surface); border: 1px dashed var(--line); color: var(--muted); text-align: center; }
.bk-more { display: grid; justify-items: center; gap: 12px; margin-top: 18px; }
.bk-morebtn { width: auto !important; height: 44px; padding: 0 22px; }
.bk-pager { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.bk-pager a { min-width: 38px; height: 38px; padding: 0 10px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--surface); border: 1px solid var(--line); font-weight: 600; font-size: 14px; color: var(--ink); }
.bk-pager a.on { background: var(--ink-btn); color: var(--on-ink); border-color: transparent; }
.bk-pager[hidden] { display: none; }

.bk-nudge { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border-radius: 18px; background: #E6EBE8; border: 1px solid #D7DED9; color: var(--ink); }
.bk-nudge b { display: block; font-size: 16px; }
.bk-nudge p { margin: 2px 0 0; color: var(--muted); font-size: 14.5px; }
.bk-nudge .btn { width: auto; margin-left: auto; flex: 0 0 auto; height: 44px; padding: 0 20px; }
:root[data-theme="dark"] .bk-nudge { background: #232D28; border-color: #303C35; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .bk-nudge { background: #232D28; border-color: #303C35; } }
.bk-course { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; margin-top: 22px; padding: 18px 20px; border-radius: 18px; background: var(--green-soft); border: 1px solid color-mix(in srgb, var(--green) 25%, var(--line)); }
.bk-course b { font-size: 17px; font-weight: 700; }
.bk-course p { margin: 2px 0 0; color: var(--muted); font-size: 14.5px; }
.bk-course .btn { width: auto; height: 44px; padding: 0 20px; white-space: nowrap; }
.bk-next { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; }
.bk-next a { display: grid; padding: 12px 16px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); min-width: 0; color: var(--ink); }
.bk-next a:hover { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); }
.bk-next small { color: var(--faint); font-size: 12.5px; }
.bk-next b { font-size: 15px; font-weight: 700; }
.bk-next a.r { text-align: right; }

@media (max-width: 960px) {
  .bk-lay { grid-template-columns: 1fr; gap: 0; }
  .bk-side { display: none; }
  .bk-mbar { display: flex; align-items: center; gap: 10px; margin-top: 14px; position: relative; }
  .bk-pick { flex: 1; min-width: 0; position: relative; }
  .bk-pick summary { list-style: none; height: 44px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); display: flex; align-items: center; gap: 8px; padding: 0 12px; font-weight: 700; font-size: 15px; cursor: pointer; }
  .bk-pick summary::-webkit-details-marker { display: none; }
  .bk-pick summary em { font-style: normal; font-weight: 500; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .bk-pick summary svg { width: 16px; height: 16px; margin-left: auto; flex: 0 0 auto; transition: transform .2s; }
  .bk-pick[open] summary svg { transform: rotate(180deg); }
  .bk-pickl { position: absolute; z-index: 30; left: 0; right: 0; top: 50px; max-height: 62vh; overflow: auto; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-2); padding: 4px 8px 10px; }
  .bk-mcnt { font-size: 13px; font-weight: 700; color: var(--green-ink); white-space: nowrap; }
  .bk-bar { gap: 10px; }
  .bk-seg { overflow-x: auto; scrollbar-width: none; max-width: 100%; }
  .bk-seg::-webkit-scrollbar { display: none; }
  .bk-main { max-width: none; }
}
@media (max-width: 560px) {
  .bk-nudge { display: grid; gap: 10px; padding: 14px; }
  .bk-nudge .btn { margin: 0; width: 100% !important; }
  .bk-course { grid-template-columns: 1fr; padding: 16px; }
  .bk-course .btn { width: 100% !important; }
  .bk-next a { padding: 10px 12px; }
  .bk-next b { font-size: 14px; }
}

/* карточка задания */
.bq { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 1px 2px rgba(7, 20, 12, .04); padding: 16px 20px 18px; scroll-margin-top: 140px; }
.bq.is-ok { border-color: color-mix(in srgb, var(--ok-line) 50%, var(--line)); }
.bq.is-bad { border-color: color-mix(in srgb, var(--bad-line) 45%, var(--line)); }
.bq-h { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; min-height: 32px; }
.bq-id { font-size: 13px; color: var(--faint); font-variant-numeric: tabular-nums; white-space: nowrap; }
a.bq-id:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.bq-st { font-size: 12.5px; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.bq-st.ok { background: var(--ok-soft); color: var(--ok); }
.bq-st.bad { background: var(--bad-soft); color: var(--bad); }
.bq-ic { margin-left: auto; display: flex; gap: 2px; }
.bq-icb { width: 32px; height: 32px; border-radius: 9px; border: 0; background: transparent; color: var(--faint); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; position: relative; }
.bq-icb:hover { background: var(--surface-2); color: var(--ink); }
.bq-icb svg { width: 17px; height: 17px; }
.bq-icb.copied::after { content: "Скопировано"; position: absolute; right: 0; top: -26px; font-size: 12px; font-weight: 600; background: var(--ink-btn); color: var(--on-ink); padding: 2px 8px; border-radius: 7px; white-space: nowrap; }

.bq-body { font-size: 16px; line-height: 1.6; overflow-wrap: break-word; }
.bq-body p { margin: 0 0 8px; }
.bq-body p:last-child { margin-bottom: 0; }
.bq-body table { border-collapse: collapse; margin: 6px 0 2px; }
/* карточка не шире колонки: широкая таблица или длинная формула прокручиваются внутри (телефон, 05.11) */
.bk-list > *, .bq { min-width: 0; }
.bq-body table:not(.fig) { display: block; max-width: 100%; overflow-x: auto; }
/* запас 8 px сверху и снизу — дроби и корни выступают за строку и иначе обрезались бы; отступы на экране прежние */
.bq-body > p, .bq-body > p:last-child { max-width: 100%; overflow-x: auto; overflow-y: hidden; padding-block: 8px; margin-block: -8px; }
.bq-body td { padding: 3px 10px 3px 0; vertical-align: top; }
.bq-body img { max-width: 100%; height: auto; background: #fff; border-radius: 10px; padding: 6px; }
.bq-body table.fig { width: 100%; }
.bq-body table.fig td:last-child { text-align: right; }
@media (max-width: 600px) {
  .bq-body table.fig, .bq-body table.fig tbody, .bq-body table.fig tr, .bq-body table.fig td { display: block; width: auto; }
  .bq-body table.fig td { padding: 0; }
  .bq-body table.fig td:last-child { text-align: center; margin-top: 8px; }
}
.bq-body math { font-size: 1.08em; }
.bq-body u { text-decoration-thickness: 1.5px; text-underline-offset: 3px; }

.bq-text { margin: 0 0 12px; border-radius: var(--r-md); background: var(--surface-2); }
.bq-text summary { list-style: none; display: flex; align-items: center; gap: 9px; padding: 11px 14px; cursor: pointer; font-weight: 600; font-size: 14.5px; color: var(--ink); }
.bq-text summary::-webkit-details-marker { display: none; }
.bq-text summary svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--green-ink); }
.bq-text summary .chev { margin-left: auto; color: var(--faint); transition: transform .2s; }
.bq-text[open] summary .chev { transform: rotate(180deg); }
.bq-tx { padding: 0 14px 14px; font-size: 15.5px; max-height: 60vh; overflow: auto; }

.bq-opts { display: grid; gap: 6px; margin-top: 12px; }
.bq-opt { position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 12px; border-radius: 12px; border: 1px solid var(--line); cursor: pointer; transition: border-color .15s, background-color .15s; font-size: 15.5px; line-height: 1.45; }
.bq-opt:hover { border-color: color-mix(in srgb, var(--green) 40%, var(--line)); }
.bq-opt input { position: absolute; opacity: 0; pointer-events: none; }
.bq-on { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-weight: 700; font-size: 14px; background: var(--surface-2); color: var(--muted); transition: all .15s; }
.bq-opt:has(input:checked) { border-color: var(--green); background: var(--green-soft); }
.bq-opt input:checked + .bq-on { background: var(--green); color: var(--on-green); }
.bq-opt input:focus-visible + .bq-on { outline: 3px solid var(--green); outline-offset: 2px; }
.bq-ot p { margin: 0; }
.bq-om { font-size: 12.5px; font-weight: 700; }
.bq-om:empty { display: none; }
.bq-opt.k-ok, .bq-opt.k-ok:has(input:checked) { border-color: var(--ok-line); background: var(--ok-soft); }
.bq-opt.k-ok .bq-on, .bq-opt.k-ok input:checked + .bq-on { background: var(--ok-line); color: #fff; }
.bq-opt.k-ok .bq-om { color: var(--ok); }
.bq-opt.k-wr, .bq-opt.k-wr:has(input:checked) { border-color: var(--bad-line); background: var(--bad-soft); }
.bq-opt.k-wr .bq-on, .bq-opt.k-wr input:checked + .bq-on { background: var(--bad-line); color: #fff; }
.bq-opt.k-wr .bq-om, .bq-opt.k-miss .bq-om { color: var(--bad); }
.bq-opt.k-miss { border-color: var(--bad-line); border-style: dashed; }
.bq-opt.k-miss .bq-on { background: var(--bad-soft); color: var(--bad); }

.bq-match { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 12px; }
.bq-ch { font-size: 12px; font-weight: 700; letter-spacing: .05em; color: var(--faint); margin-bottom: 6px; }
.bq-mi { display: grid; grid-template-columns: 26px 1fr; gap: 6px; font-size: 15px; line-height: 1.5; padding: 5px 0; border-top: 1px solid var(--line); }
.bq-mi:first-of-type { border-top: 0; }
.bq-mi p { margin: 0; }
.bq-mi b { font-weight: 700; color: var(--green-ink); }
@media (max-width: 640px) { .bq-match { grid-template-columns: 1fr; gap: 12px; } }
.bq-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.bq-grid label { display: grid; justify-items: center; gap: 4px; font-weight: 700; font-size: 13px; color: var(--muted); }
.bq-cell { width: 46px; height: 46px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); text-align: center; font-size: 19px; font-weight: 700; }
.bq-cell:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 25%, transparent); }

.bq-inrow { margin-top: 14px; }
.bq-in { width: 100%; max-width: 320px; height: 48px; padding: 0 14px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); font-size: 17px; }
.bq-in:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 25%, transparent); }
.bq.is-ok .bq-in, .bq.is-ok .bq-cell { border-color: var(--ok-line); background: var(--ok-soft); }
.bq.is-bad .bq-in, .bq.is-bad .bq-cell { border-color: var(--bad-line); }
.bq-act { display: flex; align-items: center; gap: 16px; margin-top: 14px; flex-wrap: wrap; }
.bq-act .btn { width: auto; height: 44px; padding: 0 22px; font-size: 15px; }
.bq-show { border: 0; background: none; padding: 6px 2px; font: inherit; font-weight: 600; font-size: 14.5px; color: var(--green-ink); cursor: pointer; }
.bq-show:hover { text-decoration: underline; text-underline-offset: 4px; }
.bq-res { margin-top: 12px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; padding: 11px 14px; border-radius: 12px; font-size: 15px; }
.bq-res.ok { background: var(--ok-soft); color: var(--ok); }
.bq-res.bad { background: var(--bad-soft); color: var(--bad); }
.bq-res b { font-weight: 700; }
.bq-res .tx { color: var(--muted); }
.bq-res .go { margin-left: auto; border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: inherit; cursor: pointer; }
.bq-res .go:hover { text-decoration: underline; text-underline-offset: 3px; }
.bq-key { margin-top: 10px; padding: 10px 14px; border-radius: 12px; background: var(--surface-2); font-size: 15px; }
.bq-key b { font-weight: 700; }
.bq-key span { color: var(--muted); }
@media (max-width: 560px) {
  .bq { padding: 14px 14px 16px; border-radius: 16px; }
  .bq-body { font-size: 15.5px; }
  .bq-in { max-width: none; }
  .bq-act { gap: 12px; }
  .bq-act .btn { flex: 1 1 auto; height: 48px; }
  .bq-opt { padding: 9px 10px; gap: 10px; font-size: 15px; }
}

/* вторая часть и сочинение: самопроверка */
.bq-selfnote { margin: 12px 0 0; font-size: 13.5px; color: var(--faint); }
.bq-keyself { display: grid; gap: 6px; }
.bq-kp { display: grid; grid-template-columns: 28px 1fr; gap: 4px; align-items: baseline; }
.bq-kp:not(:has(.bq-kl)) { grid-template-columns: 1fr; }
.bq-kl { color: var(--green-ink); }
.bq-kproof { color: var(--muted); font-style: italic; }
.bq-kn { margin: 4px 0 0; font-size: 13px; color: var(--faint); }
.bq-selfask { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--line); font-weight: 600; }
.bq-sbtn { height: 36px; padding: 0 16px; border-radius: 10px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-weight: 700; font-size: 14px; cursor: pointer; }
.bq-sbtn.ok:hover { border-color: var(--ok-line); color: var(--ok); }
.bq-sbtn.bad:hover { border-color: var(--bad-line); color: var(--bad); }

/* одно задание */
.bk-tlay { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; margin-top: 18px; }
.bk-tmain { min-width: 0; }
.bk-tnav { display: flex; justify-content: space-between; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.bk-tnav .btn { width: auto; height: 46px; padding: 0 20px; display: inline-flex; align-items: center; }
.bk-tside { display: grid; gap: 14px; position: sticky; top: 84px; }
.bk-tside .bk-course { grid-template-columns: 1fr; margin-top: 0; }
.bk-tside .bk-course .btn { width: 100%; }
.bk-sbt { margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.bk-li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 6px; border-radius: 10px; color: var(--ink); font-size: 14px; }
.bk-li:hover { background: var(--surface-2); }
.bk-li i { width: 10px; height: 10px; border-radius: 99px; background: var(--line); }
.bk-li i.ok { background: var(--ok-line); }
.bk-li i.bad { background: var(--bad-line); }
.bk-li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bk-li em { font-style: normal; font-size: 12.5px; color: var(--faint); }
.bk-full { width: 100% !important; margin-top: 10px; height: 46px; display: flex !important; align-items: center; justify-content: center; gap: 8px; }
@media (max-width: 960px) { .bk-tlay { grid-template-columns: 1fr; } .bk-tside { position: static; } }

/* режим «По одному» */
@media (prefers-reduced-motion: reduce) { .bk-subj, .bk-row, .bk-mp i, .bk-prog i, .bq-text summary .chev { transition: none; } }
.bk .btn:not(.pri) { background: var(--surface); color: var(--ink); border: 1px solid var(--line); box-shadow: none; }
@media (max-width: 560px) { .bk-seg button { padding: 7px 9px; font-size: 13.5px; gap: 4px; } .bk-seg button b { font-size: 12px; } }

/* «Нашли ошибку?» и «Работа над ошибками» */
.bq-rep { margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; background: var(--surface-2); display: grid; gap: 8px; }
.bq-rep[hidden] { display: none; }
.bq-rep label { display: grid; gap: 6px; font-size: 13.5px; color: var(--muted); }
.bq-rep textarea { width: 100%; box-sizing: border-box; min-height: 64px; resize: vertical; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-size: 15px; }
.bq-rep textarea:focus { outline: none; border-color: var(--green); }
.bq-repa { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.bq-repa .btn { width: auto; height: 40px; padding: 0 18px; font-size: 14.5px; }
.bq-repok { font-size: 13.5px; color: var(--green-ink); font-weight: 600; }
.bk-errbtn { width: auto; height: 46px; padding: 0 18px; display: inline-flex !important; align-items: center; gap: 8px; }
.bk-errbtn[hidden] { display: none !important; }
.bk-errbtn em { font-style: normal; background: var(--bad-soft); color: var(--bad); font-size: 12.5px; font-weight: 700; padding: 1px 8px; border-radius: 99px; }
@media (max-width: 560px) { .bk-errbtn { flex: 1 1 100%; justify-content: center; height: 50px; } }
.bq-repx { border: 0; background: none; padding: 6px 2px; font: inherit; font-weight: 600; font-size: 14.5px; color: var(--green-ink); cursor: pointer; }
.bq-body + .bq-text { margin: 12px 0 4px; }

/* главный экран предмета (04.11): справа блоки «что решать», номера — слева (на телефоне — списком ниже) */
.bk-pbox-m { margin-top: 16px; }
.bk-hub { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.bk-hc { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.bk-hc h2 { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
.bk-hc p { margin: 0; color: var(--muted); font-size: 14.5px; line-height: 1.45; }
.bk-hc .btn { width: auto; height: 44px; padding: 0 20px; font-size: 15px; display: inline-flex; align-items: center; gap: 9px; align-self: flex-start; margin-top: auto; }
.bk-hc .btn svg { width: 16px; height: 16px; }
.bk-hc-rand { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 18px; background: var(--green-soft); border-color: color-mix(in srgb, var(--green) 25%, var(--line)); padding: 20px 24px; overflow: hidden; }
.bk-hc-tx { display: flex; flex-direction: column; gap: 10px; flex: 1; min-width: 0; }
.bk-hc-rand h2 { font-size: 21px; }
.bk-hc-rand .btn { margin-top: 4px; }
.bk-hc-mas { width: 160px; height: auto; flex: 0 0 auto; margin: -8px -4px -12px 0; filter: drop-shadow(0 8px 14px rgba(7, 20, 12, .12)); }
.bk-hc-btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: auto; }
.bk-hc-btns .btn { margin-top: 0; }
.bk-weak { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bk-weak a { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 12px; background: var(--surface-2); color: var(--ink); }
.bk-weak a:hover { background: var(--bad-soft); }
.bk-wn { width: 32px; height: 32px; border-radius: 9px; background: var(--bad-soft); color: var(--bad); font-weight: 700; font-size: 14px; display: grid; place-items: center; }
.bk-wt { font-size: 14.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bk-weak em { font-style: normal; font-size: 12.5px; color: var(--bad); white-space: nowrap; }
.bk-mnums { display: none; }
@media (max-width: 960px) {
  .bk-mnums { display: block; }
}
@media (max-width: 640px) {
  .bk-hub { grid-template-columns: 1fr; gap: 10px; }
  .bk-hc { padding: 16px; }
  .bk-hc-rand { padding: 16px; gap: 10px; }
  .bk-hc-mas { width: 108px; margin: -4px -6px -8px 0; }
  .bk-hc .btn { width: 100% !important; justify-content: center; }
  .bk-hc-rand .btn { width: auto !important; }
}
@media (max-width: 380px) { .bk-hc-mas { width: 88px; } }

/* подпись номера в варианте, задания не из банка ФИПИ */
.bq-lbl { font-size: 14px; font-weight: 700; color: var(--ink); white-space: nowrap; }

/* «Разбор» */
.bq-solb { border: 0; background: none; padding: 6px 2px; font: inherit; font-weight: 600; font-size: 14.5px; color: var(--muted); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.bq-solb svg { width: 16px; height: 16px; }
.bq-solb:hover { color: var(--ink); }
.bq-solb[aria-expanded="true"] { color: var(--green-ink); }
.bq-sol { margin-top: 12px; padding: 14px 16px; border-radius: 14px; background: var(--surface-2); }
.bq-solh { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--faint); margin-bottom: 6px; }
.bq-sol .bq-body { font-size: 15px; line-height: 1.55; }

.bk-vlist > *, .bk-hub > * { min-width: 0; }
.bq-sol, .bq-res { overflow-wrap: anywhere; }
/* вариант (демоверсия) — полосой во всю ширину: текст слева, кнопка справа */
.bk-hc-var, .bk-hc-go { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 20px; row-gap: 4px; align-items: center; }
.bk-hc-var h2, .bk-hc-go h2 { grid-column: 1; }
.bk-hc-var p, .bk-hc-go p { grid-column: 1; }
.bk-hc-var .btn, .bk-hc-go .btn { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
@media (max-width: 640px) { .bk-hc-var, .bk-hc-go { grid-template-columns: 1fr; } .bk-hc-var .btn, .bk-hc-go .btn { grid-column: 1; grid-row: auto; margin-top: 6px; } }
.bk-hc-weak { grid-column: 1 / -1; }
.bq-h { flex-wrap: wrap; row-gap: 4px; }

/* страница варианта (04.11): задания слева, справа — таймер, сетка номеров, «Завершить», результат */
.bk-vlay { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; align-items: start; }
.bk-vmain { min-width: 0; }
.bk-vcode { font-size: .5em; font-weight: 700; color: var(--muted); background: var(--surface-2); padding: 3px 10px; border-radius: 99px; vertical-align: middle; letter-spacing: .02em; }
.bk-vmain .bk-lead { margin: 6px 0 18px; }
.bk-vend { margin: 18px 0 0; display: flex; }
.bk-vend .btn { width: auto; height: 48px; padding: 0 26px; font-size: 15.5px; }
.bk-vside { position: sticky; top: 84px; display: grid; gap: 12px; }
.bk-vbox { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 16px; display: grid; gap: 12px; box-shadow: var(--shadow-1); }
.bk-vtop { display: flex; align-items: center; gap: 8px; }
.bk-tmw { gap: 8px; flex: 1; min-width: 0; color: var(--ink); }
.bk-tmw svg { width: 20px; height: 20px; align-self: center; color: var(--green-ink); flex: 0 0 auto; }
.bk-tm { font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.bk-tml { color: var(--faint); font-weight: 600; }
.bk-tmw.off .bk-tm { font-size: 16px; font-weight: 600; color: var(--faint); }
.bk-tmw.over .bk-tm, .bk-tmw.over svg { color: var(--bad); }
.bk-tmb { display: flex; gap: 2px; }
.bk-icb { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.bk-icb:hover { color: var(--ink); background: var(--surface-2); }
.bk-icb:disabled { opacity: .45; cursor: default; }
.bk-icb svg { width: 16px; height: 16px; }
.bk-tmhint { margin: -6px 0 0; font-size: 12.5px; color: var(--faint); }
.bk-vsc { display: flex; justify-content: space-between; font-size: 14px; color: var(--muted); }
.bk-vsc b { color: var(--ink); }
.bk-vsc .ok b { color: var(--ok); }
.bk-vgd summary { list-style: none; display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 700; color: var(--muted); cursor: pointer; padding: 2px 0; }
.bk-vgd summary::-webkit-details-marker { display: none; }
.bk-vgd summary svg { width: 15px; height: 15px; transition: transform .2s; }
.bk-vgd[open] summary svg { transform: rotate(180deg); }
.bk-vgrid { display: grid; margin-top: 10px; }
.bk-vgrid a { display: grid; place-items: center; font-weight: 700; color: var(--ink); background: var(--surface-2); border: 1px solid transparent; }
.bk-vgrid a:hover { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); }
.bk-vgrid a.ok { background: var(--ok-soft); color: var(--ok); }
.bk-vgrid a.bad { background: var(--bad-soft); color: var(--bad); }
.bk-vfin { width: 100% !important; height: 44px; font-size: 15px; }
.bk-vlinks { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.bk-vlinks .bk-lnk { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.bk-vlinks svg { width: 15px; height: 15px; }
.bk-vres-h { font-size: 15px; }
.bk-vres-n { display: flex; align-items: baseline; gap: 8px; }
.bk-vres-n b { font-size: 34px; font-weight: 800; color: var(--green-ink); }
.bk-vres-n span { color: var(--muted); font-size: 15px; }
.bk-vres p { margin: 0; font-size: 13.5px; color: var(--muted); line-height: 1.45; }
.bk-vres-a { display: grid; gap: 8px; }
.bk-vres-a .btn { width: 100% !important; height: 42px; font-size: 14.5px; }
.bk-vitem { scroll-margin-top: 90px; }
.bk-vlist { display: grid; gap: 14px; }
@media (max-width: 960px) {
  .bk-vlay { grid-template-columns: 1fr; gap: 0; }
  .bk-vside { order: -1; z-index: 6; margin: 0 0 14px; }
  .bk-vmain .bk-lead { margin-bottom: 12px; }
  .bk-vbox { padding: 10px 12px; gap: 8px; border-radius: 14px; }
  .bk-tmhint { display: none; }
  .bk-vbox > .bk-vfin { display: none; }
  .bk-vgrid { grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 5px; }
  .bk-vgrid a { height: 32px; font-size: 13px; }
  .bk-vres { position: static; }
  .bk-vend .btn { width: 100% !important; }
}
@media (max-width: 400px) { .bk-vgrid { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
.bk-weak-tx { font-size: 14px !important; }
.bk-hc .bk-errbtn { margin-top: 4px; align-self: flex-start; }
.bk-hc .bk-errbtn em { font-style: normal; font-size: 12.5px; font-weight: 700; color: var(--bad); background: var(--bad-soft); padding: 1px 8px; border-radius: 99px; }
.bk-vres-m { margin-top: 14px; }
@media (min-width: 961px) { .bk-vres-m { display: none !important; } }
@media (max-width: 960px) { .bk-vres-s { display: none !important; } }

.bk-vlinks a.bk-lnk { color: var(--green-ink); }
/* телефон: панель варианта ниже шапки (761–960 px — шапка ~85 px; до 760 px — шапка 65 + строка разделов 49 = 114 px) */
@media (max-width: 960px) {
  .bk-vside { top: calc(env(safe-area-inset-top, 0px) + 92px); }
  .bk-vside .bk-vlinks { display: none; }
}
@media (max-width: 760px) { .bk-vside { top: calc(env(safe-area-inset-top, 0px) + 122px); } }
.bk-vend { gap: 12px 18px; flex-wrap: wrap; align-items: center; }
@media (min-width: 961px) { .bk-vend .bk-vlinks { display: none; } }
/* «Работа над ошибками» — одна колонка по центру */
.bk-errpage > * { max-width: 860px; margin-inline: auto; }
.bk-errpage .bk-lead { margin-bottom: 18px; }

/* «Мои варианты» (главный экран предмета) */
.bk-hc-att { grid-column: 1 / -1; }
.bk-att { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bk-att a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-radius: 12px; background: var(--surface-2); color: var(--ink); }
.bk-att a:hover { background: var(--green-soft); }
.bk-at-l { display: grid; gap: 2px; min-width: 0; }
.bk-at-t { font-weight: 600; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bk-att small { color: var(--muted); font-size: 12.5px; }
.bk-att b { font-size: 16px; color: var(--green-ink); white-space: nowrap; }
.bk-att-n { color: var(--faint); font-size: 12.5px; }
.bk-att-n:empty { display: none; }
/* таймер варианта: «Начать», результат в баллах */
.bk-tmstart { width: 100% !important; height: 42px; font-size: 14.5px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.bk-tmstart svg { width: 15px; height: 15px; }
.bk-tm { font-size: 24px; }
.bk-vres-t { font-size: 15px; color: var(--ink); }
.bk-vres-t b { font-size: 22px; font-weight: 800; color: var(--green-ink); margin: 0 2px; }
.bk-vres-t small { display: block; color: var(--muted); font-size: 12.5px; }
.bk-vres-e { font-size: 13.5px; color: var(--muted); line-height: 1.6; }
.bk-vres-e input { width: 56px; height: 34px; margin: 0 4px; padding: 0 8px; border-radius: 9px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-weight: 700; text-align: center; }
.bk-vres-note { font-size: 12.5px !important; color: var(--faint) !important; }
@media (max-width: 960px) { .bk-tm { font-size: 19px; } .bk-tmstart { height: 38px; } }

/* 04.11 (владелец 22:56): таймер — лимит строкой под временем */
.bk-tmw { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 8px; row-gap: 0; align-items: center; }
.bk-tmw svg { grid-row: 1 / span 2; }
.bk-tm { line-height: 1.1; }
.bk-tml { grid-column: 2; white-space: nowrap; font-size: 12.5px; line-height: 1.2; }
/* режим проверки */
.bk-vmode { display: grid; grid-template-columns: auto auto; gap: 3px; padding: 3px; background: var(--surface-2); border-radius: 12px; }
.bk-vmode button { white-space: nowrap; border: 0; background: none; border-radius: 9px; padding: 8px 6px; font: inherit; font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; line-height: 1.2; }
.bk-vmode button.on { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.bk-vmode button:disabled { opacity: .45; cursor: default; }
.bk-vmodeh { font-size: 12px; color: var(--faint); margin-top: -6px; line-height: 1.35; }
.bk-vgrid a.ans { background: var(--surface); border-color: var(--green); color: var(--green-ink); }
.is-exam .bq-show, .is-exam .bq[data-check*='"self"'] .bq-reveal { display: none; }
.bq-exnote { margin: 8px 0 0; font-size: 13.5px; color: var(--muted); }
.bq-res.saved { background: var(--surface-2); color: var(--ink); }
/* поле закрыто: решено верно или открыт ответ */
.bq-lock { margin: 10px 0 0; font-size: 13.5px; color: var(--muted); line-height: 1.45; }
.bq .bq-go:disabled { opacity: .45; cursor: default; box-shadow: none; }
.bq .bq-in:disabled, .bq .bq-cell:disabled { opacity: .75; }
.bq[data-locked="1"] .bq-opt { cursor: default; }
.bq[data-locked="1"] .bq-go { display: none; }
@media (max-width: 960px) { .bk-vmode button { padding: 6px 4px; font-size: 12.5px; } .bk-vmodeh { display: none; } }
@media (max-width: 960px) { .bk-varpage.mode-used .bk-vmode { display: none; } }

/* 04.11 (владелец 23:10): панель варианта компактнее, итог — сначала тестовый балл */
.bk-vgrid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.bk-vgrid a { height: 32px; font-size: 13.5px; border-radius: 9px; }
.bk-varpage.mode-used .bk-vmode { display: none; }
.bk-icb.bk-icb-l svg { width: 15px; height: 15px; }
.bk-icb.done { color: var(--green-ink); border-color: var(--green); }
.bk-vres-main { display: grid; gap: 2px; }
.bk-vres-big { display: flex; align-items: baseline; gap: 8px; }
.bk-vres-big b { font-size: 40px; font-weight: 800; line-height: 1; color: var(--green-ink); }
.bk-vres-big span { font-size: 15px; color: var(--ink); font-weight: 600; }
.bk-vres-big em { font-style: normal; font-size: 20px; font-weight: 700; color: var(--green-ink); margin-left: -6px; }
.bk-echg { margin-left: 6px; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.bk-estep { display: grid; gap: 12px; }
.bk-estep p { margin: 0; font-size: 14px; line-height: 1.45; color: var(--muted); }
.bk-estep-in { display: flex; align-items: center; gap: 8px; }
.bk-estep-in input { width: 64px; height: 40px; text-align: center; font-size: 20px; font-weight: 800; border: 1.5px solid var(--line); border-radius: 10px; -moz-appearance: textfield; }
.bk-estep-in input::-webkit-outer-spin-button, .bk-estep-in input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bk-estep-in span { font-weight: 600; }
.bk-estep .bk-lnk { justify-self: start; font-size: 13px; font-weight: 600; color: var(--muted); }
.is-exam .bq-go { display: none; }
.is-exam .bq-res { font-size: 13px; }
.bk-vres-main small { color: var(--muted); font-size: 12.5px; }
.bk-vres-sub { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; color: var(--muted); }
.bk-vres-sub b { color: var(--ink); }
.bq-res { column-gap: 8px; }
.bk-att-more { border: 0; background: none; padding: 4px 0; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--green-ink); cursor: pointer; justify-self: start; }

/* итог варианта (05.11): белая карточка, крупный балл, плитки, «Посмотреть ошибки» */
.bk-vres { background: var(--surface); border-color: var(--line); box-shadow: var(--shadow-1); }
.bk-rscores { display: grid; gap: 12px; }
.bk-rhead { display: flex; align-items: center; gap: 8px; font-size: 15px; }
.bk-rcheck { width: 22px; height: 22px; border-radius: 50%; background: var(--green); color: var(--on-green); display: grid; place-items: center; flex: none; }
.bk-rcheck svg { width: 13px; height: 13px; }
.bk-rtime { margin-left: auto; font-size: 13px; color: var(--muted); font-weight: 600; }
.bk-rhero { display: flex; align-items: flex-end; gap: 12px; }
.bk-rbig { display: flex; align-items: baseline; line-height: 1; white-space: nowrap; }
.bk-rbig b { font-size: 48px; font-weight: 800; color: var(--green-ink); letter-spacing: -.02em; }
.bk-rbig em { font-style: normal; font-size: 20px; font-weight: 700; color: var(--muted); margin-left: 2px; }
.bk-rlbl { display: grid; gap: 2px; padding-bottom: 4px; min-width: 0; }
.bk-rlbl b { font-size: 15px; font-weight: 700; color: var(--ink); }
.bk-rlbl small { font-size: 12.5px; color: var(--muted); }
.bk-rbar { height: 6px; border-radius: 99px; background: var(--line); overflow: hidden; }
.bk-rbar i { display: block; height: 100%; background: var(--green); border-radius: inherit; transition: width .4s; }
.bk-rstats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.bk-rst { display: grid; gap: 2px; padding: 8px 10px; border-radius: 12px; background: var(--bg, #f6f7f6); border: 1px solid var(--line); min-width: 0; }
.bk-rst small { font-size: 11.5px; color: var(--muted); font-weight: 600; }
.bk-rst b { font-size: 15px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.bk-rst.ok b { color: var(--ok); } .bk-rst.bad b { color: var(--bad); }
.bk-rst.wide { grid-column: 1 / -1; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 8px; }
.bk-rst.wide .bk-echg { margin: 0; font-size: 13px; }
.bk-rerr { width: 100%; height: 40px; font-size: 14px; color: var(--bad); border-color: color-mix(in srgb, var(--bad) 35%, var(--line)); background: var(--bad-soft); }
.bk-rlogin { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-size: 13px; color: var(--muted); padding: 8px 10px; border-radius: 12px; border: 1px dashed var(--line); }
.bk-rlogin .bk-lnk { font-size: 13px; }
/* сочинение по критериям */
.bk-ecrit { display: grid; gap: 4px; }
.bk-ek { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 6px; font-size: 12.5px; padding: 3px 0; border-bottom: 1px solid var(--line); }
.bk-ek:last-child { border-bottom: 0; }
.bk-ek > b { color: var(--green-ink); font-size: 13px; }
.bk-ekn { color: var(--muted); line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.bk-ekb { display: flex; gap: 3px; }
.bk-ekb button { width: 26px; height: 26px; border-radius: 8px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; padding: 0; }
.bk-ekb button.on { background: var(--green); border-color: var(--green); color: #fff; }
.bk-ek.off { opacity: .45; }
.bk-ek.off button { cursor: default; }
.bk-e150 { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); cursor: pointer; }
.bk-esum { font-size: 14px; } .bk-esum b { font-size: 20px; color: var(--green-ink); }
/* критерии в карточке сочинения: максимум и как ставить */
.bq-kp.bq-kc { grid-template-columns: 38px 1fr auto; }
.bq-kc small { display: block; color: var(--muted); font-size: 12.5px; margin-top: 1px; }
.bq-kmax { font-style: normal; font-size: 12.5px; font-weight: 700; color: var(--green-ink); white-space: nowrap; }
.bq-khow { color: var(--ink) !important; }

/* телефон: панель варианта — тонкая строка (таймер · решено N/M · ▾), остальное по кнопке */
.bk-vmini, .bk-vexp { display: none; }
@media (max-width: 960px) {
  .bk-vmini { display: inline; font-size: 14px; color: var(--muted); font-weight: 600; white-space: nowrap; }
  .bk-vmini b { color: var(--ink); }
  .bk-vexp { display: grid; }
  .bk-vexp svg { transition: transform .2s; }
  .bk-vside.open .bk-vexp svg { transform: rotate(180deg); }
  .bk-vside:not(.open) .bk-vbox > :not(.bk-vtop):not(.bk-prog) { display: none !important; }
  .bk-vside:not(.open) .bk-tml { display: none; }
  .bk-vside:not(.open) .bk-vbox { gap: 6px; padding: 8px 10px; }
  .bk-vside:not(.open) .bk-prog { height: 3px; }
  .bk-vside:not(.open) .bk-tmw { display: flex; align-items: center; }
  .bk-vside:not(.open) .bk-tm { font-size: 18px; }
  .bk-vside.open .bk-vbox > .bk-vfin { display: flex; }
  .bk-vitem { scroll-margin-top: 170px; }
  .bk-varpage .bk-vlay { display: flex; flex-direction: column; }
  .bk-varpage .bk-vside, .bk-varpage .bk-vmain { width: 100%; align-self: stretch; }
}
@media (max-width: 760px) { .bk-vitem { scroll-margin-top: 190px; } }
.bk-hc[hidden] { display: none !important; }
.bk-att-login { font-size: 13px !important; color: var(--muted); margin: 0; }
/* главный экран предмета (05.11): шапка «заголовок | решено», ниже номера слева и два блока «Начать решать» | «Случайный вариант» */
.bk-subjpage > .crumbs { margin-bottom: 6px; }
.bk-shead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 28px; align-items: center; margin: 4px 0 20px; max-width: calc(268px + 28px + 820px); }
@media (max-width: 960px) { .bk-shead { max-width: none; } }
.bk-shead .bk-h1 { margin: 0 0 6px; }
.bk-shead .bk-lead { margin: 0; }
.bk-pbox-h { padding: 12px 16px; gap: 6px; }
.bk-subjpage .bk-hub { margin-top: 0; }
.bk-subjpage .bk-hc-rand { grid-column: auto; padding: 18px 20px; gap: 8px; }
.bk-subjpage .bk-hc-rand h2, .bk-hc-start h2 { font-size: 19px; }
.bk-subjpage .bk-hc-mas { width: 118px; margin: -6px -6px -10px 0; align-self: flex-end; }
.bk-hc-start { justify-content: flex-start; }
.bk-only-m { display: none; }
@media (max-width: 960px) {
  .bk-shead { grid-template-columns: 1fr; gap: 12px; align-items: stretch; }
  .bk-only-d { display: none; } .bk-only-m { display: inline; }
}
@media (max-width: 640px) { .bk-subjpage .bk-hc-mas { width: 92px; } }
.bq-kc .bq-kt { font-weight: 600; color: var(--ink); }
.bk-estep-in .bk-icb { width: 40px; height: 40px; font-size: 20px; font-weight: 700; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
/* шапка страницы номера и варианта (05.11): как у экрана предмета */
.bk > .crumbs { margin-bottom: 6px; }
.bk-pall { margin-left: auto; font-size: 13.5px; font-weight: 600; color: var(--green-ink); white-space: nowrap; }
.bk-pbox-h .bk-pr { display: flex; align-items: baseline; gap: 10px; }
.bk-pbox-h > small[data-bk-subjok]:empty { display: none; }
.bk-vhead { margin: 0 0 18px; max-width: 900px; }
.bk-vhead .bk-lead { margin: 6px 0 0; }
@media (max-width: 960px) { .bk-vhead { margin-bottom: 12px; } }
.bk .bk-pall { color: var(--green-ink); }
@media (max-width: 960px) { .bk-shead { margin-bottom: 12px; } .bk-numpage .bk-mbar { margin-top: 0; } .bk-lay { padding-top: 0; } }
/* страница номера: фильтр вровень с номерами слева (05.11) */
@media (min-width: 961px) { .bk-numpage .bk-bar { margin-top: 0; } }
/* «Составить свой вариант» (05.11) */
.bk-hc-build .btn { margin-top: auto; }
.bk-build { grid-column: 1 / -1; gap: 14px; }
.bk-bhead { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bk-bq { display: flex; gap: 6px; flex-wrap: wrap; }
.bk-chip { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 99px; padding: 6px 12px; font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.bk-chip:hover { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); }
.bk-bgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; }
.bk-brow { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 5px 6px 5px 8px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); }
.bk-brow.on { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); background: var(--green-soft); }
.bk-brow .bk-nn { width: 28px; height: 28px; font-size: 13px; }
.bk-bt { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bk-bc { display: flex; align-items: center; gap: 4px; }
.bk-bc b { min-width: 20px; text-align: center; font-size: 15px; }
.bk-bc .bk-icb { width: 30px; height: 30px; font-size: 17px; font-weight: 700; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.bk-bfoot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 15px; }
.bk-bfoot small { color: var(--muted); }
.bk-bfoot .btn { margin-top: 0; }
.bk-bfoot .btn.off { opacity: .45; pointer-events: none; box-shadow: none; }
@media (max-width: 640px) { .bk-bgrid { grid-template-columns: 1fr; } .bk-bfoot .btn { width: 100% !important; } }
@media (max-width: 640px) { .bk-subjpage .bk-hc-rand { order: 1; } .bk-subjpage .bk-hc-att, .bk-subjpage .bk-hc-var, .bk-subjpage .bk-hc-weak { order: 2; } .bk-subjpage .bk-hc-stat { order: 3; } }
/* 05.11: кнопка в строчных карточках — по центру по высоте; конструктор открывается плавно */
.bk-hc-go .btn, .bk-hc-var .btn { align-self: center; }
@keyframes bkIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.bk-brow { transition: background-color .15s, border-color .15s; }
/* «+ В вариант» и полоска подборки внизу экрана (05.11) */
.bq-add { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px; margin-right: 4px; border-radius: 99px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: background-color .15s, color .15s, border-color .15s; }
.bq-add svg { width: 14px; height: 14px; }
.bq-add:hover { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); color: var(--ink); }
.bq-add.on { background: var(--green-soft); border-color: color-mix(in srgb, var(--green) 45%, var(--line)); color: var(--green-ink); }
.bq-add .i-on, .bq-add.on .i-add { display: none; }
.bq-add.on .i-on { display: block; }
.bk-varpage .bq-add { display: none; }
@media (max-width: 360px) { .bq-add span { display: none; } .bq-add { padding: 0 8px; } }
.bk-basket { position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 60; display: flex; align-items: center; gap: 14px; padding: 10px 10px 10px 18px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 12px 34px rgba(7, 20, 12, .18); font-size: 14.5px; max-width: calc(100vw - 24px); }
.bk-basket[hidden] { display: none; }
.bk-basket .btn { height: 40px; padding: 0 20px; width: auto !important; }
.bk-basket .bk-lnk { font-size: 13.5px; color: var(--muted); }
.bk-bk-t { white-space: nowrap; }
body.has-basket .bk-wrap-end, body.has-basket footer { padding-bottom: 72px; }
@media (max-width: 560px) {
  .bk-basket { left: 12px; right: 12px; transform: none; justify-content: space-between; gap: 8px; padding: 8px 8px 8px 14px; font-size: 14px; }
  .bk-basket .btn { padding: 0 16px; height: 38px; }
}
/* 05.11: «Текст к заданию» в свёрнутом виде — первые строки текста (видно, что можно открыть) */
.bq-text summary { flex-wrap: wrap; }
.bq-tpeek { flex: 0 0 100%; order: 3; margin: 2px 0 0; font-weight: 400; font-size: 14.5px; line-height: 1.5; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); mask-image: linear-gradient(180deg, #000 55%, transparent); }
.bq-text[open] .bq-tpeek { display: none; }
.bq-text:not([open]) summary:hover .bq-tpeek { color: var(--ink); }
/* 05.11: полоска подборки — появляется на своём месте (раньше анимация сбрасывала сдвиг -50%) */
@keyframes bkBar { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; transform: translate(-50%, 0); } }
.bk-basket { animation: bkBar .2s ease-out; }
@media (max-width: 560px) { @keyframes bkBarM { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } } .bk-basket { animation: bkBarM .2s ease-out; } }
/* 05.11: «Составить свой вариант» и «Случайный вариант» — одинаковые белые блоки, значок сверху, кнопка внизу на одной высоте */
.bk-subjpage .bk-hc-pick { display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 8px; background: var(--surface); border-color: var(--line); padding: 18px 20px; overflow: visible; }
.bk-hc-ic { width: 40px; height: 40px; border-radius: 11px; background: var(--green-soft); color: var(--green-ink); display: grid; place-items: center; margin-bottom: 2px; }
.bk-hc-ic svg { width: 22px; height: 22px; }
.bk-subjpage .bk-hc-pick h2 { font-size: 18px; }
.bk-subjpage .bk-hc-pick .btn { margin-top: auto; align-self: flex-start; }
.bk-subjpage .bk-hc-pick p { margin-bottom: 6px; }
@media (max-width: 640px) { .bk-subjpage .bk-hc-pick .btn { width: 100% !important; justify-content: center; } }
/* 05.11: значок пауза/продолжить переключается (svg[hidden] перебивалось display у svg) */
.bk-icb svg[hidden], .btn svg[hidden] { display: none !important; }
.bk-bopen svg { transition: transform .25s; }
.bk-bopen[aria-expanded="true"] svg { transform: rotate(180deg); }
/* 05.11: кнопки двух блоков одной ширины */
.bk-subjpage .bk-hc-pick .btn { min-width: 220px; justify-content: center; }

/* 05.11: на узком телефоне в шапке номера — короткое название предмета, чтобы «решено» не переносилось */
.bk-pall-s { display: none; }
@media (max-width: 400px) { .bk-pall-l { display: none; } .bk-pall-s { display: inline; } }

/* поиск по тексту задания (05.11): поле + предмет (список как «Школа» в магазине) + «Найти»; страница /bank/poisk */
.bk-search { display: flex; gap: 10px; align-items: stretch; margin: 16px 0 4px; max-width: 820px; }
.bk-sfield { flex: 1 1 auto; min-width: 0; position: relative; display: flex; align-items: center; }
.bk-sic { position: absolute; left: 16px; width: 19px; height: 19px; color: var(--faint); pointer-events: none; transition: color .15s; }
.bk-search input[type=search] { width: 100%; height: 52px; padding: 0 46px 0 44px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); color: var(--ink); font: inherit; font-size: 15px; font-weight: 600; transition: border-color .15s, box-shadow .15s; -webkit-appearance: none; appearance: none; }
.bk-search input[type=search]::-webkit-search-cancel-button, .bk-search input[type=search]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
.bk-search input[type=search]::placeholder { color: var(--faint); font-weight: 500; }
.bk-search input[type=search]:hover { border-color: color-mix(in srgb, var(--green) 40%, var(--line)); }
.bk-search input[type=search]:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 18%, transparent); }
.bk-sfield:focus-within .bk-sic { color: var(--green-ink); }
/* «стереть»: появляется, когда в поле что-то есть (без скрипта — по :placeholder-shown) */
.bk-sclr { position: absolute; right: 10px; width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--surface-2); color: var(--muted); cursor: pointer; transition: opacity .16s ease, transform .16s ease, background .15s, color .15s; }
.bk-sclr svg { width: 15px; height: 15px; }
.bk-sclr:hover { background: var(--green-soft); color: var(--green-ink); }
.bk-sfield:has(input:placeholder-shown) .bk-sclr { opacity: 0; transform: scale(.6) rotate(-90deg); pointer-events: none; visibility: hidden; transition: opacity .16s ease, transform .16s ease, visibility 0s .16s; }
.bk-sdd { flex: 0 0 236px; min-width: 0; }
.bk-sdd .dd-pop { min-width: 260px; }
.bk-search .bk-sgo { width: auto; height: 52px; padding: 0 26px; flex: 0 0 auto; display: inline-flex; align-items: center; border-radius: 16px; }
.bk-shead .bk-search { margin-top: 14px; }
.bk-searchpage .bk-search { margin: 14px 0 10px; }
.bk-sres { margin: 6px 0 16px; }
.bk-sitem { display: grid; gap: 6px; min-width: 0; }
.bk-sw { font-size: 13.5px; font-weight: 600; color: var(--green-ink); justify-self: start; }
.bk-sw:hover { text-decoration: underline; text-underline-offset: 3px; }
.bk-pager { display: flex; gap: 10px; justify-content: center; margin: 22px 0 6px; }
.bk-pager .btn { width: auto; height: 44px; padding: 0 20px; display: inline-flex; align-items: center; }
@media (prefers-reduced-motion: reduce) { .bk-sclr, .bk-sfield:has(input:placeholder-shown) .bk-sclr { transition: none; } }
@media (max-width: 640px) {
  .bk-search { flex-wrap: wrap; gap: 8px; }
  .bk-sfield { flex-basis: 100%; }
  .bk-sdd { flex: 1 1 0; }
  .bk-search:not(:has(.bk-sdd)) .bk-sfield { flex-basis: 0; }
}


/* значки предметов в банке — как в кнопках предметов магазина (.ca-chip .sj-ic в v9.css): тёмные линии, зелёные детали,
   тонкая линия одной толщины при любом размере (05.11) */
.bk-si .sj-ic, .bk-sdd .sj-ic { color: var(--ink); --sj-acc: var(--green-ink); --sj-bg: var(--surface); }
.bk-si .sj-ic { --sj-bg: var(--green-soft); }
.bk-si .sj-ic [stroke] { vector-effect: non-scaling-stroke; stroke-width: 1.5px; }
.bk-sdd .sj-ic [stroke] { vector-effect: non-scaling-stroke; stroke-width: 1.1px; }
/* стартовый вариант «Проверить уровень» (05.11): третий блок рядом, цель в шапке варианта, итог «что тренировать» */
@media (min-width: 641px) { .bk-subjpage .bk-hub { grid-template-columns: repeat(3, minmax(0, 1fr)); } .bk-subjpage .bk-hc-pick .btn { min-width: 0; width: 100%; } }

.bk-lvl-last { font-size: 13px; color: var(--green-ink); font-weight: 600; margin: -4px 0 4px; }
.bk-goal { display: grid; grid-template-columns: auto minmax(140px, 320px); align-items: center; gap: 8px 16px; margin: 12px 0 4px; padding: 12px 16px; border-radius: 14px; border: 1px solid var(--line); background: var(--surface); width: fit-content; max-width: 100%; }
.bk-goal label { font-size: 15px; font-weight: 600; white-space: nowrap; }
.bk-goal label b { font-size: 19px; color: var(--green-ink); }
.bk-goal input[type=range] { --p: 66.67%; -webkit-appearance: none; appearance: none; width: 100%; height: 28px; margin: 0; background: transparent; cursor: pointer; touch-action: pan-y; }
.bk-goal input[type=range]:focus { outline: none; }
.bk-goal input[type=range]::-webkit-slider-runnable-track { height: 8px; border-radius: 999px; background: linear-gradient(to right, var(--green) var(--p), var(--surface-2) var(--p)); box-shadow: inset 0 0 0 1px var(--line); }
.bk-goal input[type=range]::-moz-range-track { height: 8px; border-radius: 999px; background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--line); }
.bk-goal input[type=range]::-moz-range-progress { height: 8px; border-radius: 999px; background: var(--green); }
.bk-goal input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -7px; border-radius: 50%; background: var(--green); border: 3px solid var(--surface); box-shadow: 0 1px 4px rgba(0,0,0,.22); transition: transform .15s, box-shadow .15s; }
.bk-goal input[type=range]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--green); border: 3px solid var(--surface); box-shadow: 0 1px 4px rgba(0,0,0,.22); transition: transform .15s, box-shadow .15s; }
.bk-goal input[type=range]:hover::-webkit-slider-thumb { transform: scale(1.08); box-shadow: 0 1px 4px rgba(0,0,0,.22), 0 0 0 6px color-mix(in srgb, var(--green) 16%, transparent); }
.bk-goal input[type=range]:hover::-moz-range-thumb { transform: scale(1.08); box-shadow: 0 1px 4px rgba(0,0,0,.22), 0 0 0 6px color-mix(in srgb, var(--green) 16%, transparent); }
.bk-goal input[type=range]:active::-webkit-slider-thumb { transform: scale(1.12); }
.bk-goal input[type=range]:active::-moz-range-thumb { transform: scale(1.12); }
.bk-goal input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--green); }
.bk-goal input[type=range]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--green); }
@media (prefers-reduced-motion: reduce) { .bk-goal input[type=range]::-webkit-slider-thumb { transition: none; } .bk-goal input[type=range]::-moz-range-thumb { transition: none; } }
@media (max-width: 560px) { .bk-goal { grid-template-columns: 1fr; width: 100%; } }
.bk-varpage[data-level] .bk-vmode, .bk-varpage[data-level] .bk-vmodeh { display: none; }
.bk-lvl { background: var(--surface); border: 1px solid color-mix(in srgb, var(--green) 35%, var(--line)); border-radius: 18px; padding: 18px 20px; margin: 0 0 16px; scroll-margin-top: 96px; }
.bk-lvl[hidden] { display: none; }
.bk-lvl h2 { margin: 0 0 10px; font-size: 20px; font-weight: 700; }
.bk-lvl-now { display: flex; gap: 10px; flex-wrap: wrap; }
.bk-lvl-st { display: flex; flex-direction: column; padding: 8px 14px; border-radius: 12px; background: var(--surface-2); min-width: 96px; }
.bk-lvl-st b { font-size: 26px; font-weight: 800; line-height: 1.1; }
.bk-lvl-st small { font-size: 12.5px; color: var(--muted); }
.bk-lvl-st.goal b { color: var(--green-ink); }
.bk-lvl-tx { margin: 12px 0; font-size: 15px; line-height: 1.45; }
.bk-lvl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.bk-lvl-list li { border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; display: grid; gap: 8px; }
.bk-lvl-list li.need { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); background: var(--green-soft); }
.bk-lvl-t { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.bk-lvl-t b { font-size: 15.5px; font-weight: 700; }
.bk-lvl-t em { font-style: normal; font-weight: 700; color: var(--green-ink); white-space: nowrap; font-size: 15px; }
.bk-lvl-ns { display: flex; flex-wrap: wrap; gap: 6px; }
.bk-lvl-n { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 10px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-size: 13.5px; font-weight: 600; max-width: 100%; }
.bk-lvl-n:hover { border-color: color-mix(in srgb, var(--green) 50%, var(--line)); }
.bk-lvl-n small { font-weight: 500; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; }
.bk-lvl-ft { margin: 12px 0 0; font-size: 12.5px; color: var(--muted); }
.bk-lvl { min-width: 0; } .bk-lvl-list li { grid-template-columns: minmax(0, 1fr); min-width: 0; } .bk-lvl-n { min-width: 0; } .bk-lvl-n small { min-width: 0; }
@media (max-width: 560px) { .bk-lvl { padding: 14px; } .bk-lvl-n small { max-width: 52vw; } }
/* печать / PDF варианта (05.11) */
.bk-pkey, .bk-phead { display: none; }
.bk-vprint { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; margin-top: 2px; border-top: 1px solid var(--line); }
.bk-print { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.bk-print:hover { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); }
.bk-print svg { width: 16px; height: 16px; }
.bk-sw { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; white-space: nowrap; user-select: none; }
.bk-sw input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.bk-sw i { position: relative; width: 32px; height: 18px; border-radius: 99px; background: var(--line); transition: background-color .15s; flex: 0 0 auto; }
.bk-sw i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform .15s; }
.bk-sw input:checked + i { background: var(--green); }
.bk-sw input:checked + i::after { transform: translateX(14px); }
.bk-sw input:focus-visible + i { outline: 2px solid var(--green); outline-offset: 2px; }
.bk-sw input:checked ~ span { color: var(--ink); }
@media print {
  @page { size: A4; margin: 14mm 13mm 14mm; }
  html, body, body.v9-bank { background: #fff !important; color: #000 !important; }
  body * { box-shadow: none !important; text-shadow: none !important; animation: none !important; transition: none !important; }
  header.top, .mnav, footer.sfoot, #layer, .crumbs, .bk-vside, .bk-vend, .bk-vres, .bk-lvl, .bk-nudge, .bk-course, .bk-goal, .bk-basket, .bk-vprint,
  .bq-ic, .bq-st, .bq-act, .bq-res, .bq-key, .bq-rep, .bq-exnote, .bq-tpeek, .bq-text .chev, details[data-bq-seen], .bk-vhead .bk-lead { display: none !important; }
  .wrap, .bk, .bk-vlay, .bk-vmain, .bk-vlist { display: block !important; max-width: none !important; width: auto !important; padding: 0 !important; margin: 0 !important; }
  .bk-phead { display: block; margin: 0 0 4mm; font-size: 9pt; color: #555; }
  .bk-vhead { margin: 0 0 5mm !important; }
  .bk-vhead .bk-h1 { font-size: 17pt; margin: 0; color: #000; }
  .bk-vcode { color: #000 !important; background: none !important; }
  html { font-size: 10.5pt; }
  .bk-vitem { margin: 0 0 3mm !important; }
  .bq-h, .bq-opts, .bq-grid, .bq-inrow, .bq-match, .bq-opt, .bq-mi { break-inside: avoid; page-break-inside: avoid; }
  .bq-h { break-after: avoid; }
  .bq-body, .bq-tx { font-size: 10.5pt !important; line-height: 1.4 !important; }
  .bq-opts { gap: 0 !important; margin: 1.5mm 0 !important; }
  .bq-opt { padding: .8mm 1mm !important; border: 0 !important; min-height: 0 !important; font-size: 10.5pt !important; }
  .bq-opt .bq-on { width: auto !important; height: auto !important; background: none !important; font-weight: 700; }
  .bq-match { gap: 4mm !important; } .bq-mi { padding: .6mm 0 !important; font-size: 10pt !important; }
  .bq { border: 1px solid #bbb !important; border-radius: 6px !important; background: #fff !important; padding: 3mm 4mm !important; color: #000 !important; }
  .bq-text { break-inside: auto; border: 0 !important; background: none !important; }
  .bq-text summary { list-style: none; font-weight: 700; padding: 0 !important; color: #000 !important; }
  .bq-text summary::-webkit-details-marker { display: none; }
  .bq-text summary svg { display: none; }
  .bq-tx { font-size: 10.5pt; }
  .bq-opt, .bq-mi, .bq-col { background: none !important; border-color: #ccc !important; color: #000 !important; }
  .bq-opt input { -webkit-appearance: none; appearance: none; width: 11px; height: 11px; border: 1px solid #000; border-radius: 2px; }
  .bq-in { border: 0 !important; border-bottom: 1px solid #000 !important; border-radius: 0 !important; background: none !important; height: 28px !important; width: 60mm !important; }
  .bq-in::placeholder { color: transparent; }
  .bq-inrow::before { content: "Ответ:"; margin-right: 6px; font-weight: 600; }
  .bq-inrow { display: flex !important; align-items: flex-end; }
  .bq-cell { border: 1px solid #000 !important; background: none !important; }
  .bq-lbl { color: #000 !important; }
  img { max-width: 100% !important; break-inside: avoid; }
  a { color: #000 !important; text-decoration: none !important; }
  body.bk-print-ans .bk-pkey { display: block; break-before: page; page-break-before: always; }
  .bk-pkey h2 { font-size: 14pt; margin: 0 0 4mm; }
  .bk-pkey table { width: 100%; border-collapse: collapse; font-size: 10.5pt; }
  .bk-pkey th, .bk-pkey td { border: 1px solid #999; padding: 1.6mm 3mm; text-align: left; vertical-align: top; }
  .bk-pkey th:first-child, .bk-pkey td:first-child { width: 14mm; text-align: center; }
  .bk-pkey tr { break-inside: avoid; }
  .bk-pkey p { margin: 4mm 0 0; font-size: 9pt; color: #555; }
  .bk-pkey small { color: #444; }
}
/* «Моя статистика» на экране предмета (05.11) */
.bk-hc-stat { grid-column: 1 / -1; }
.bk-hc-stat[hidden] { display: none; }
.bk-st-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.bk-st-t { display: flex; flex-direction: column; padding: 10px 12px; border-radius: 12px; background: var(--surface-2); min-width: 0; }
.bk-st-t b { font-size: 22px; font-weight: 800; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-st-t small { font-size: 12.5px; color: var(--muted); }
.bk-st-sec { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.bk-st-sec b { font-size: 15px; font-weight: 700; }
.bk-st-sec small { font-size: 12.5px; color: var(--muted); }
.bk-st-weeks { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; align-items: end; }
.bk-st-w { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.bk-st-w > b { font-size: 12px; font-weight: 700; min-height: 15px; }
.bk-st-tr { display: flex; align-items: flex-end; width: 100%; max-width: 44px; height: 72px; border-radius: 8px; background: var(--surface-2); overflow: hidden; }
.bk-st-tr i { display: flex; align-items: flex-end; width: 100%; background: color-mix(in srgb, var(--green) 30%, var(--surface-2)); border-radius: 8px 8px 0 0; }
.bk-st-tr i em { display: block; width: 100%; background: var(--green); border-radius: 8px 8px 0 0; }
.bk-st-w small { font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.bk-st-nums { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; }
.bk-st-n { display: grid; grid-template-columns: 26px minmax(0, 1fr) 36px; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; }
.bk-st-n:hover { border-color: color-mix(in srgb, var(--green) 45%, var(--line)); }
.bk-st-n > b { font-size: 13.5px; font-weight: 700; text-align: center; }
.bk-st-n i { height: 6px; border-radius: 99px; background: var(--surface-2); overflow: hidden; }
.bk-st-n i em { display: block; height: 100%; border-radius: 99px; background: var(--green); }
.bk-st-n.mid i em { background: #E2A200; } .bk-st-n.low i em { background: var(--bad); }
.bk-st-n small { font-size: 12px; color: var(--muted); text-align: right; }
.bk-st-n.none { opacity: .6; }
@media (max-width: 640px) { .bk-st-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bk-st-tr { height: 56px; } .bk-st-w small { font-size: 10px; } }

/* ползунок цели не двигает вёрстку (05.11 16:19): подпись фиксированной ширины, цифры моноширинные */
.bk-goal { grid-template-columns: 16em minmax(160px, 320px); }
.bk-goal label { white-space: nowrap; }
.bk-goal label b { display: inline-block; min-width: 1.9em; text-align: center; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .bk-goal { grid-template-columns: 1fr; } .bk-goal label { width: auto; } }
.bk-lvl-sub { font-size: 12px !important; color: var(--muted); margin-top: 2px; }

/* самопроверка по элементам ответа (вторая часть истории, обществознания) */
.bq-el { position: relative; display: grid; grid-template-columns: 24px 22px minmax(0, 1fr); gap: 8px; align-items: start; padding: 9px 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); cursor: pointer; transition: border-color .15s, background-color .15s; line-height: 1.45; }
.bq-el:hover { border-color: color-mix(in srgb, var(--green) 40%, var(--line)); }
.bq-el input { position: absolute; opacity: 0; pointer-events: none; }
.bq-elbox { width: 22px; height: 22px; margin-top: 1px; border-radius: 7px; border: 1.5px solid var(--line); background: var(--surface-2); display: grid; place-items: center; transition: all .15s; }
.bq-elbox::after { content: ""; width: 10px; height: 5px; margin-top: -3px; border: solid var(--on-green); border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg); opacity: 0; transition: opacity .15s; }
.bq-el:has(input:checked) { border-color: var(--green); background: var(--green-soft); }
.bq-el input:checked + .bq-elbox { background: var(--green); border-color: var(--green); }
.bq-el input:checked + .bq-elbox::after { opacity: 1; }
.bq-el input:focus-visible + .bq-elbox { outline: 3px solid var(--green); outline-offset: 2px; }
.bq-el input:disabled ~ * { cursor: default; }
.bq-el .bq-kl { line-height: 1.45; }
.bq-elt { overflow-wrap: anywhere; }
.bq-keyel .bq-selfask b { font-size: 17px; color: var(--green-ink); }
.bq-elw { margin-left: 4px; font-style: normal; font-weight: 700; font-size: 12.5px; color: var(--green-ink); white-space: nowrap; }

/* профиль, вторая часть: критерии ФИПИ и свой балл */
.bq-kp.bq-kpts { grid-template-columns: 64px 1fr; align-items: baseline; }
.bq-ptsask .bq-pt { min-width: 44px; padding: 0 12px; }
.bq-ptsask .bq-pt:hover { border-color: var(--ok-line); color: var(--ok); }
.bq-ptsask .bq-pt.on { background: var(--ok-soft); border-color: var(--ok-line); color: var(--ok); }

/* 06.11, телефон (владелец): короткие названия предметов в карточках банка, «Предмет» и «Найти» одного размера,
   кнопка курсов в узкой колонке не вылезает за карточку */
.bk-subj-s { display: none; }
@media (max-width: 640px) {
  .bk-subj-l { display: none; } .bk-subj-s { display: inline; }
  .bk-sdd .dd-btn { height: 52px; }
  .bk-search .bk-sdd { flex: 1 1 0; min-width: 0; }
  .bk-search .bk-sgo { flex: 1 1 0; min-width: 0; justify-content: center; padding: 0; }
  .bk-course > div { min-width: 0; }
  .bk-sdd .dd-btn { padding: 0 10px 0 14px; }
  .bk-course .btn { white-space: normal; height: auto; min-height: 44px; padding: 10px 16px; line-height: 1.25; text-align: center; justify-content: center; }
}
@media (max-width: 400px) { .bk-sdd .dd-v .dd-i { display: none; } }
/* 06.11, проверка: длинная подпись «Предмет · №N тема» в поиске растягивала карточку на 1 px за экран; фильтр номера
   («Все / Нерешённые / С ошибкой / Верно») на телефоне — все четыре кнопки видны без прокрутки */
.bk-sitem { grid-template-columns: minmax(0, 1fr); }
.bk-sw { max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 420px) {
  .bk-seg { display: grid; grid-template-columns: 1fr 1fr; width: 100%; box-sizing: border-box; }
  .bk-seg button { justify-content: center; padding: 8px 6px; }
}
.bk-searchpage { overflow-x: clip; }
/* «Ещё задания №N» у задания с ошибкой (итог варианта, «Работа над ошибками») */
.bq-more { display: inline-block; margin-top: 12px; font-size: 14.5px; font-weight: 600; color: var(--green-ink); }
.bq-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.bq-more[hidden] { display: none; }

/* проверка сочинения ИИ из карточки №27 (10.11): только если страница проверки открыта (body.es-on) */
.bq-essay-go { display: none; }
.es-on .bq-essay-go { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 12px 0 0; padding: 10px 14px; border-radius: 12px; background: var(--green-soft); color: var(--green-ink); text-decoration: none; font-size: 14px; }
.es-on .bq-essay-go b { font-weight: 700; }
.es-on .bq-essay-go span { color: var(--muted); font-size: 13px; }
.es-on .bq-essay-go:hover { box-shadow: inset 0 0 0 1px var(--green); }
