/* Общие стили раздела «Тесты и тренажёры» (vslovarike.ru/tests/).
   Файл кешируется на 30 дней без перепроверки: при любой правке сохранить его
   под следующим номером (tests-8.css) и поменять ссылку во всех страницах. */
:root {
  --chip: #e3ecfa;
  --bg: #f8fafd;
  --card: #ffffff;
  --card2: #f0f4f9;
  --text: #1f1f1f;
  --muted: #5f6368;
  --line: #dde3ea;
  --grid: rgba(11, 87, 208, .08);
  --glow: rgba(11, 87, 208, .12);
  --accent: #0b57d0;
  --pill: #c2e7ff;
  --pill-text: #001d35;
  --c1: #0b57d0;
  --c1-fill: rgba(11, 87, 208, .14);
  --c2: #e8710a;
  --c2-fill: rgba(232, 113, 10, .18);
  --c3: #188038;
  --ok: #137333;
  --ok-soft: #e6f4ea;
  --bad: #c5221f;
  --bad-soft: #fce8e6;
  --gold: #f9ab00;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --chip: #283246;
    --bg: #131314;
    --card: #1e1f20;
    --card2: #282a2c;
    --text: #e3e3e3;
    --muted: #a8abb0;
    --line: #3a3d41;
    --grid: rgba(255, 255, 255, .055);
    --glow: rgba(168, 199, 250, .09);
    --accent: #a8c7fa;
    --pill: #1e3f93;
    --pill-text: #d3e3fd;
    --c1: #7cacf8;
    --c1-fill: rgba(124, 172, 248, .2);
    --c2: #fcad70;
    --c2-fill: rgba(252, 173, 112, .2);
    --c3: #81c995;
    --ok: #81c995;
    --ok-soft: #1d3527;
    --bad: #f28b82;
    --bad-soft: #3d2120;
    --gold: #fdd663;
    color-scheme: dark;
  }
}

* {
  box-sizing: border-box
}

html {
  -webkit-text-size-adjust: 100%
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 17px/1.55 "Google Sans", "Product Sans", -apple-system, BlinkMacSystemFont, "SF Pro Text", Roboto, "Segoe UI", Arial, sans-serif;
  transition: background .3s, color .3s
}

.grid-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 24px 24px;
  -webkit-mask-image: radial-gradient(ellipse 75% 60% at 50% 40%, #000 15%, transparent 72%);
  mask-image: radial-gradient(ellipse 75% 60% at 50% 40%, #000 15%, transparent 72%)
}

.top {
  position: relative;
  z-index: 30;
  background: var(--card);
  border-bottom: 1px solid var(--line)
}

.top-in {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 64px;
  padding: 0 16px 0 12px
}

.logo,
.logo-sec {
  font-size: 24px;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap
}

.logo {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 700;
  letter-spacing: -.5px;
  color: var(--text);
  margin-left: 6px
}

.logo-sec {
  font-weight: 500;
  letter-spacing: -.3px;
  color: var(--accent)
}

.logo:hover,
.logo-sec:hover {
  opacity: .8
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px
}

.top-act {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto
}

.burger {
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  display: grid;
  place-content: center;
  gap: 5px
}

@media (hover:hover) {
  .burger:hover {
    background: var(--card2)
  }
}

.burger span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: var(--text);
  transition: transform .35s cubic-bezier(.77, .2, .05, 1), opacity .25s
}

.menu-open .burger span:nth-child(1) {
  transform: translateY(7px) rotate(45deg)
}

.menu-open .burger span:nth-child(2) {
  opacity: 0
}

.menu-open .burger span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg)
}

.sitemenu {
  overscroll-behavior: contain;
  position: fixed;
  left: 0;
  top: 64px;
  bottom: 0;
  width: 300px;
  max-width: 86vw;
  overflow-y: auto;
  z-index: 40;
  background: var(--card);
  border-right: 1px solid var(--line);
  box-shadow: 8px 0 30px rgba(0, 0, 0, .12);
  transform: translateX(-105%);
  transition: transform .4s cubic-bezier(.77, .2, .05, 1), visibility 0s linear .4s;
  visibility: hidden
}

.menu-open .sitemenu {
  transform: none;
  visibility: visible;
  transition-delay: 0s
}

.sitemenu ul {
  list-style: none;
  margin: 0;
  padding: 8px 0 40px
}

.sitemenu a {
  display: block;
  margin: 1px 8px;
  padding: 10px 16px;
  border-radius: 12px;
  color: var(--text);
  text-decoration: none;
  font-size: 16px;
  line-height: 1.3
}

.sitemenu a:hover {
  background: var(--card2)
}

.sitemenu a.activ {
  background: var(--chip);
  color: var(--accent);
  font-weight: 600
}

.menu-shade {
  position: fixed;
  left: 0;
  right: 0;
  top: 64px;
  bottom: 0;
  z-index: 35;
  background: rgba(0, 0, 0, .28);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s
}

.menu-open .menu-shade {
  opacity: 1;
  pointer-events: auto
}

@media (max-width:420px) {
  .top-in {
    padding: 0 8px 0 4px;
    gap: 6px
  }

  .brand {
    gap: 6px
  }

  .logo,
  .logo-sec {
    font-size: 22px
  }

  .logo {
    margin-left: 2px
  }

  .icon {
    width: 38px;
    height: 38px
  }
}

@media (max-width:560px) {
  .top-in {
    position: relative
  }

  .brand {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%)
  }

  .brand .logo {
    margin-left: 0
  }
}

.icon {
  width: 42px;
  height: 42px;
  padding: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: transparent;
  border: 1px solid transparent;
  color: var(--muted)
}

@media (hover:hover) {
  .icon:hover {
    background: var(--card2);
    color: var(--text)
  }
}

.icon svg {
  width: 21px;
  height: 21px
}

.wrap {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 16px 80px
}

.hero {
  text-align: center;
  padding: 42px 0 26px
}

.eyebrow {
  display: inline-block;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
  /* не 999px: бейдж в две строки (узкая карточка, телефон) иначе становится овалом;
     радиус = половина высоты одной строки, на одной строке это та же «таблетка» */
  border-radius: 16px;
  padding: 6px 14px;
  margin-bottom: 16px;
  background: var(--chip)
}

h1 {
  font-size: clamp(34px, 8vw, 62px);
  line-height: 1.08;
  font-weight: 500;
  letter-spacing: -.025em;
  margin: 0 0 12px
}

.sub {
  font-size: clamp(17px, 3.6vw, 22px);
  color: var(--text);
  opacity: .85;
  margin: 0
}

.tabs {
  display: flex;
  gap: 4px;
  margin: 0 auto 22px;
  padding: 4px;
  max-width: 440px;
  background: var(--card2);
  border-radius: 999px;
  position: sticky;
  top: 8px;
  z-index: 5;
  box-shadow: 0 4px 18px var(--glow)
}

.tabs button {
  flex: 1;
  border: 0;
  background: transparent;
  border-radius: 999px;
  padding: 9px 6px;
  font-weight: 500;
  color: var(--muted)
}

.tabs button.on {
  background: var(--card);
  color: var(--text);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .12)
}

button {
  font: inherit;
  cursor: pointer;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--text);
  padding: 10px 18px;
  transition: background .2s, border-color .2s, transform .15s, box-shadow .2s;
  -webkit-tap-highlight-color: transparent
}

button:active:not(:disabled) {
  transform: scale(.97)
}

button.pri {
  background: var(--pill);
  border-color: var(--pill);
  color: var(--pill-text);
  font-weight: 600
}

button.pri:hover:not(:disabled) {
  box-shadow: 0 0 0 4px var(--glow)
}

button:disabled {
  opacity: .5;
  cursor: default
}

.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 20px;
  margin: 0 0 16px;
  box-shadow: 0 10px 40px var(--glow);
  transition: box-shadow .35s, border-color .35s
}

.card h2 {
  font-size: 19px;
  font-weight: 600;
  margin: 0 0 8px
}

.card h3 {
  font-size: 15px;
  font-weight: 600;
  margin: 14px 0 4px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .04em
}

.sec-h {
  font-size: 22px;
  font-weight: 500;
  margin: 26px 4px 12px
}

.num {
  display: inline-grid;
  place-items: center;
  min-width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--pill);
  color: var(--pill-text);
  font-weight: 700;
  margin-right: 8px;
  font-size: 14px;
  vertical-align: 1px
}

.fig {
  display: block;
  width: 100%;
  max-width: 380px;
  height: auto;
  margin: 10px auto
}

.fig .ln {
  stroke: var(--text);
  stroke-width: 2;
  stroke-linecap: round
}

.fig .ln.c1 {
  stroke: var(--c1);
  stroke-width: 3
}

.fig .ln.c2 {
  stroke: var(--c2);
  stroke-width: 3
}

.fig .ln.dash {
  stroke-dasharray: 5 5;
  stroke-width: 1.5;
  stroke: var(--muted)
}

.fig .dt {
  fill: var(--text)
}

.fig .lb {
  fill: var(--text);
  font: italic 600 17px Georgia, "Times New Roman", serif;
  text-anchor: middle;
  dominant-baseline: central
}

.fig .lb.sm {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  fill: var(--muted)
}

.fig .arc {
  stroke: none
}

.fig .arc.c1 {
  fill: var(--c1-fill)
}

.fig .arc.c2 {
  fill: var(--c2-fill)
}

.fig .mk {
  fill: none;
  stroke-width: 2
}

.fig .mk.c1 {
  stroke: var(--c1)
}

.fig .mk.c2 {
  stroke: var(--c2)
}

.fig .mk.t {
  stroke: var(--text)
}

.fig .poly {
  fill: var(--card);
  stroke: var(--c1);
  stroke-width: 2
}

.def {
  background: var(--card2);
  border-radius: 16px;
  padding: 12px 14px;
  margin: 10px 0
}

.notes {
  margin: 6px 0 0;
  padding-left: 20px
}

.warn {
  color: var(--bad);
  font-size: 15px;
  margin-top: 10px
}

.proof ol {
  margin: 4px 0 0;
  padding-left: 22px
}

.self .ans {
  filter: blur(6px);
  cursor: pointer;
  user-select: none;
  transition: filter .25s
}

.self .ans.show {
  filter: none
}

.tip {
  font-size: 14px;
  color: var(--muted)
}

.toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 4px 16px;
  cursor: pointer;
  font-size: 16px
}

.toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none
}

.sw {
  width: 44px;
  height: 26px;
  border-radius: 999px;
  background: var(--line);
  position: relative;
  transition: background .2s;
  flex: none
}

.sw::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  transition: transform .2s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .3)
}

.toggle input:checked+.sw {
  background: var(--accent)
}

.toggle input:checked+.sw::after {
  transform: translateX(18px)
}

.bar {
  height: 6px;
  background: var(--card2);
  border-radius: 999px;
  overflow: hidden;
  margin: 0 0 14px
}

.bar i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--c1), var(--accent), var(--c1));
  background-size: 200% 100%;
  animation: shimmer 2.4s linear infinite;
  transition: width .45s cubic-bezier(.2, .8, .2, 1)
}

.meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--muted);
  font-size: 14px;
  margin: 0 4px 8px
}

.streak {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  border-radius: 999px;
  background: var(--card2);
  color: var(--text);
  font-weight: 600
}

.streak.hot {
  background: linear-gradient(90deg, rgba(249, 171, 0, .25), rgba(232, 113, 10, .25));
  animation: pop .4s
}

.qt {
  font-size: 19px;
  font-weight: 400;
  margin: 4px 0 8px;
  line-height: 1.4
}

.qt b {
  font-weight: 600
}

/* указание к заданию («один шаг лишний») — разметка !!…!! в тексте вопроса */
.qt .hl,
#printout .p-t .hl {
  color: var(--accent)
}

.opts {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px
}

.opts button {
  text-align: left;
  padding: 13px 16px;
  border-radius: 16px;
  background: var(--card2);
  border-color: transparent
}

.opts button:hover:not(:disabled) {
  border-color: var(--accent)
}

.opts button.ok {
  background: var(--ok-soft);
  border-color: var(--ok);
  color: var(--text);
  animation: pop .35s
}

.opts button.bad {
  background: var(--bad-soft);
  border-color: var(--bad);
  color: var(--text)
}

.opts button.ok:disabled,
.opts button.bad:disabled {
  opacity: 1
}

.numin {
  display: flex;
  gap: 8px;
  margin-top: 12px
}

.numin input {
  font: inherit;
  flex: 1;
  min-width: 0;
  padding: 11px 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card2);
  color: var(--text);
  outline: none;
  transition: border-color .2s, box-shadow .2s
}

.numin .pm {
  flex: none;
  width: 48px;
  padding: 0;
  font-size: 22px;
  line-height: 1;
  border-radius: 999px;
  background: var(--card2);
  border-color: var(--line)
}

.numin input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px var(--glow)
}

.fb {
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 14px;
  animation: rise .3s ease both
}

.fb.ok {
  background: var(--ok-soft);
  border-left: 4px solid var(--ok)
}

.fb.bad {
  background: var(--bad-soft);
  border-left: 4px solid var(--bad)
}

.fb b {
  display: block;
  margin-bottom: 2px
}

.fb .fire {
  margin-top: 6px;
  font-weight: 600
}

.next {
  margin-top: 12px;
  width: 100%
}

.ord-h {
  font-size: 14px;
  color: var(--muted);
  margin: 12px 0 6px
}

.chosen {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 48px;
  border: 2px dashed var(--line);
  border-radius: 16px;
  padding: 6px
}

.chosen button {
  text-align: left;
  border-radius: 12px;
  background: var(--pill);
  border-color: transparent;
  color: var(--pill-text);
  animation: rise .25s ease both
}

.chosen .empty {
  color: var(--muted);
  font-size: 15px;
  padding: 8px
}

.pool {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.pool button {
  text-align: left;
  border-radius: 12px;
  background: var(--card2);
  border-color: transparent
}

.pool button.used {
  display: none
}

.big {
  font-size: 56px;
  font-weight: 500;
  letter-spacing: -.03em;
  margin: 0;
  line-height: 1.1
}

.grade {
  display: inline-grid;
  place-items: center;
  width: 78px;
  height: 78px;
  font-size: 36px;
  font-weight: 700;
  border-radius: 50%;
  background: var(--pill);
  color: var(--pill-text);
  animation: pop .6s
}

.grade.lvl {
  width: auto;
  min-width: 78px;
  height: auto;
  padding: 14px 26px;
  border-radius: 999px;
  font-size: 26px
}

.grade.g5 {
  background: linear-gradient(135deg, var(--gold), #e8710a);
  color: #fff;
  box-shadow: 0 0 40px rgba(249, 171, 0, .45)
}

.res {
  text-align: center
}

.tl {
  list-style: none;
  padding: 0;
  margin: 10px 0;
  text-align: left
}

.tl li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 2px;
  border-bottom: 1px solid var(--line)
}

.tl .y {
  color: var(--ok);
  font-weight: 700
}

.tl .n {
  color: var(--bad);
  font-weight: 700
}

.row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 16px
}

.row button,
.row a.btn {
  flex: 1 1 200px;
  text-align: center
}

/* блок «Решать на бумаге» стоит после ряда кнопок «Начала» */
.prow {
  margin-top: 16px
}

.hidden {
  display: none
}

.anim {
  animation: rise .4s cubic-bezier(.2, .8, .2, 1) both
}

.card.flash-ok {
  border-color: var(--ok);
  box-shadow: 0 0 0 1px var(--ok), 0 0 50px rgba(30, 142, 62, .25)
}

.card.flash-bad {
  border-color: var(--bad)
}

.shake {
  animation: shake .45s
}

.fx {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 50
}

.ex {
  background: var(--card2);
  border-radius: 16px;
  padding: 12px 14px;
  margin: 10px 0;
  font-size: 18px;
  line-height: 1.6
}

.ex-s+.ex-s {
  margin-top: 8px
}

.ex-n {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.4
}

.ex-sc {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  font-size: 15px;
  color: var(--muted)
}

.mn {
  color: var(--c1)
}

.sb {
  color: var(--c2)
}

.kw {
  text-decoration: underline;
  text-underline-offset: 3px
}

.types {
  display: grid;
  gap: 8px;
  margin-top: 10px
}

.ty {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px
}

.ty-h {
  font-weight: 600
}

.ty-h span {
  font-weight: 400;
  color: var(--muted)
}

.ty-u {
  font-size: 15px;
  color: var(--c2)
}

.ty-e {
  font-size: 16px
}

.alg {
  margin: 0;
  padding-left: 22px
}

.cm {
  font-size: 20px;
  line-height: 2.1;
  background: var(--card2);
  border-radius: 16px;
  padding: 12px 10px;
  margin-top: 12px
}

.cw {
  white-space: nowrap
}

.gap {
  display: inline-block;
  width: 20px;
  height: 34px;
  margin: 0 0 0 -1px;
  padding: 0 0 0 1px;
  text-align: left;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--accent);
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  vertical-align: baseline;
  position: relative;
  top: 4px
}

.gap:not(.on):not(.miss)::before {
  content: "\B7";
  color: var(--muted);
  opacity: .55
}

@media (hover:hover) {
  .gap:hover:not(:disabled) {
    background: var(--line)
  }
}

.gap.ok {
  color: var(--ok)
}

.gap.miss {
  color: var(--bad);
  background: var(--bad-soft)
}

.gap.extra {
  color: var(--bad);
  text-decoration: line-through
}

.gap:disabled {
  opacity: 1
}

.cm-tip {
  margin-top: 6px
}

.cm-ok {
  color: var(--ok);
  font-weight: 700
}

.fig.plane {
  max-width: 330px
}

.fig .gr {
  stroke: var(--line);
  stroke-width: 1
}

.fig .ax {
  stroke: var(--text);
  stroke-width: 1.6
}

.fig .ar {
  fill: var(--text)
}

.fig .ln.c3 {
  stroke: var(--c3);
  stroke-width: 3
}

.fig .pt {
  fill: var(--text)
}

.fig .pl {
  fill: var(--text);
  font: 600 13px -apple-system, BlinkMacSystemFont, Roboto, sans-serif
}

.fig .fl {
  font: italic 700 14px Georgia, "Times New Roman", serif;
  paint-order: stroke;
  stroke: var(--card);
  stroke-width: 4px
}

.fig .fl.c1 {
  fill: var(--c1)
}

.fig .fl.c2 {
  fill: var(--c2)
}

.fig .fl.c3 {
  fill: var(--c3)
}

.lg {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 16px;
  margin: -2px 0 10px;
  font: italic 700 16px Georgia, "Times New Roman", serif
}

.lg .c1 {
  color: var(--c1)
}

.lg .c2 {
  color: var(--c2)
}

.lg .c3 {
  color: var(--c3)
}

.lg span::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 3px;
  border-radius: 2px;
  background: currentColor;
  vertical-align: middle;
  margin-right: 6px
}

.fig .nm {
  font: 500 9px -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
  fill: var(--muted);
  text-anchor: middle
}

.fig .nm.ny {
  text-anchor: end
}

.fig .ln.pth {
  stroke: var(--c2);
  stroke-width: 2;
  stroke-dasharray: 5 4
}

.fig .pt2 {
  fill: var(--c2)
}

.fig .ah.c1 {
  fill: var(--c1)
}

.fig .ah.c2 {
  fill: var(--c2)
}

.fig .kb {
  font: italic 700 15px Georgia, "Times New Roman", serif;
  fill: var(--text);
  text-anchor: middle
}

.fig .bdot {
  fill: var(--accent)
}

.fig .bl {
  font: italic 700 15px Georgia, "Times New Roman", serif;
  fill: var(--accent)
}

.mini4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 10px 0
}

.mini4 div {
  text-align: center;
  font-size: 14px
}

.mini4 .fig {
  margin: 0 auto 4px
}

@media (max-width:560px) {
  .mini4 {
    grid-template-columns: 1fr 1fr
  }
}

.syn {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px
}

.syn th,
.syn td {
  border: 1px solid var(--line);
  padding: 8px 10px;
  vertical-align: top;
  text-align: left
}

.syn th {
  background: var(--card);
  text-align: center;
  font-size: 18px
}

.aft {
  margin-top: 10px
}

.aft .fig {
  max-width: 260px;
  margin: 0 auto
}

.opts button.sel {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 2px var(--accent)
}

/* v17 (28.10.2026): фигуры внутри белые (в тёмной теме — цвет карточки), по просьбе учителя математики;
   цветная заливка — только у особых классов: tri1, tri2, tz2, area, earth */
.fig .tz {
  fill: var(--card);
  stroke: var(--text);
  stroke-width: 2;
  stroke-linejoin: round
}

.fig .tri1 {
  fill: var(--c1-fill);
  stroke: none
}

.fig .tri2 {
  fill: var(--c2-fill);
  stroke: none
}

.fig .cc {
  fill: none;
  stroke: var(--c2);
  stroke-width: 2
}

.fig .water {
  fill: rgba(66, 133, 244, .28)
}

.fig .earth {
  fill: var(--c2-fill);
  stroke: var(--text);
  stroke-width: 2;
  stroke-linejoin: round
}

.fig .lb.val {
  font: 700 16px -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
  fill: var(--c1)
}

.fig .lb.c2t {
  fill: var(--c2)
}

.frm {
  margin: 8px 0;
  padding: 8px 12px;
  border-radius: 12px;
  background: var(--card);
  text-align: center;
  font: italic 700 19px Georgia, "Times New Roman", serif
}

.mini3.two {
  grid-template-columns: 1fr 1fr
}

.fig .tz2 {
  fill: var(--c2-fill);
  stroke: none
}

.fig .arc.c3 {
  fill: rgba(24, 128, 56, .18)
}

.fig .mk.c3 {
  stroke: var(--c3)
}

.fig .lb.an {
  font: 600 13px -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
  fill: var(--c1)
}

/* подпись угла оранжевым — к дуге c2 (класс 'an c2t') */
.fig .lb.an.c2t {
  fill: var(--c2)
}

.nums {
  display: grid;
  gap: 8px;
  margin-top: 12px
}

.nf {
  display: flex;
  align-items: center;
  gap: 10px
}

.nf>.nl {
  min-width: 40px;
  text-align: right
}

.nf>.ne {
  margin-left: -4px
}

.nf input {
  font: inherit;
  flex: 1;
  min-width: 0;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card2);
  color: var(--text)
}

.nf input.ok {
  border-color: var(--ok);
  background: var(--ok-soft)
}

.nf input.bad {
  border-color: var(--bad);
  background: var(--bad-soft)
}

.proof p {
  margin: 6px 0
}

.mini3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 10px 0
}

.mini3 div {
  text-align: center;
  font-size: 14px;
  color: var(--muted)
}

.mini3 .fig {
  margin: 0 auto 4px
}

.opts.pics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px
}

.opts.pics button {
  padding: 6px
}

.opts.pics .fig {
  margin: 0;
  max-width: none
}

.vt {
  border-collapse: collapse;
  margin: 10px auto;
  font-size: 17px
}

.vt th,
.vt td {
  border: 1px solid var(--line);
  padding: 6px 16px;
  text-align: center
}

.vt th {
  background: var(--card2);
  font-style: italic
}

.katex {
  font-size: 1.06em;
  white-space: nowrap
}

.fig.small .kb,
.fig.small .bl {
  font-size: 30px
}

.fig.small .bdot {
  r: 8px
}

.fig.small .ah {
  transform-box: fill-box;
  transform-origin: center;
  scale: 1.6
}

.foot {
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  margin-top: 32px
}

.foot p {
  margin: 6px 0
}

.foot a {
  color: var(--accent);
  text-decoration: none
}

.foot a:hover {
  text-decoration: underline
}

.foot .copy {
  margin-top: 40px
}

.foot .copy .all-tests {
  margin-left: 18px
}

.foot-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px
}

@media (max-width:420px) {
  .foot-top {
    gap: 8px 6px
  }

  .foot .share-btn {
    font-size: 14px;
    padding: 6px 10px;
    gap: 4px
  }

  .foot .foot-top .counter {
    font-size: 14px;
    padding: 6px 0;
    gap: 4px
  }

  .foot .share-btn svg,
  .counter .ctr-ic {
    width: 18px;
    height: 18px
  }
}

.foot .foot-top .counter {
  margin: 0
}

.share {
  position: relative
}

.share-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--text);
  font-size: 15px;
  line-height: 1.5;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06)
}

.share-btn svg {
  width: 20px;
  height: 20px
}

.share-menu {
  position: absolute;
  bottom: calc(100% + 10px);
  right: 0;
  z-index: 20;
  min-width: 236px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 6px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .18);
  text-align: left;
  animation: shpop .18s ease both
}

.share-menu[hidden] {
  display: none
}

.foot .sh-it {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--text);
  font-size: 15px;
  text-decoration: none;
  cursor: pointer
}

.foot .sh-it:hover {
  text-decoration: none
}

@media (hover:hover) {
  .foot .sh-it:hover {
    background: var(--card2)
  }
}

.sh-ic {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex: none;
  color: #fff;
  font: 700 11px -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
  letter-spacing: .02em
}

.sh-ic svg {
  width: 18px;
  height: 18px
}

.sh-ic.tg {
  background: #2aabee
}

.sh-ic.wa {
  background: #25d366
}

.sh-ic.vk {
  background: #0077ff
}

.sh-ic.mx {
  background: linear-gradient(135deg, #3f8cff, #8a3ffc)
}

.sh-ic.cp {
  background: var(--card2);
  color: var(--text)
}

@keyframes shpop {
  from {
    opacity: 0;
    transform: translateY(6px)
  }

  to {
    opacity: 1;
    transform: none
  }
}

.foot .copy,
.foot-links {
  font-size: 14px
}

.foot-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 18px
}

/* счётчик — просто строка текста с иконкой, без рамки и тени: чтобы не казался кнопкой */
.counter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: var(--text);
  background: transparent;
  border: 0;
  padding: 6px 0;
  animation: rise .4s ease both
}

.counter b {
  color: #000;
  font-weight: 500
}

@media (prefers-color-scheme: dark) {
  .counter b {
    color: var(--text)
  }
}

.counter .ctr-ic {
  width: 20px;
  height: 20px;
  flex: none
}

.counter.hidden {
  display: none
}

/* карточка результата для учителя */
.send-f {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px
}

.send-f input {
  font: inherit;
  flex: 1;
  min-width: 200px;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card2);
  color: var(--text)
}

.send-img {
  display: block;
  width: 100%;
  max-width: 420px;
  margin: 14px auto 0;
  border-radius: 16px;
  border: 1px solid var(--line);
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06)
}

a.btn {
  display: inline-block;
  font: inherit;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--text);
  padding: 10px 18px;
  text-decoration: none;
  transition: background .2s, border-color .2s
}

@media (hover:hover) {
  a.btn:hover {
    background: var(--card2)
  }
}

/* печатная версия теста (кнопка «Распечатать тест» и PDF): на экране не видна */
#printout {
  display: none
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(12px)
  }

  to {
    opacity: 1;
    transform: none
  }
}

@keyframes pop {
  0% {
    transform: scale(1)
  }

  40% {
    transform: scale(1.04)
  }

  100% {
    transform: scale(1)
  }
}

@keyframes shake {

  0%,
  100% {
    transform: none
  }

  20% {
    transform: translateX(-8px)
  }

  40% {
    transform: translateX(7px)
  }

  60% {
    transform: translateX(-5px)
  }

  80% {
    transform: translateX(3px)
  }
}

@keyframes shimmer {
  to {
    background-position: -200% 0
  }
}

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important
  }
}

@media print {

  body.ptest .wrap,
  body.ptest .top,
  body.ptest .sitemenu,
  body.ptest .menu-shade,
  body.ptest .grid-bg,
  body.ptest .fx {
    display: none !important
  }

  body.ptest {
    background: #fff
  }

  body.ptest #printout {
    display: block
  }

  @page {
    size: A4;
    margin: 14mm 14mm 16mm
  }

  .tabs,
  .toggle,
  #quiz,
  #home,
  .top,
  .sitemenu,
  .menu-shade,
  .grid-bg,
  .hero .eyebrow {
    display: none !important
  }

  #sheet {
    display: block !important
  }

  body {
    background: #fff;
    color: #000
  }

  .card {
    break-inside: avoid;
    border-color: #bbb;
    box-shadow: none
  }

  .self .ans {
    filter: none
  }
}

/* вёрстка печатной версии: всегда светлая, шрифт и поля под A4 */
#printout {
  --text: #1f1f1f;
  --muted: #5f6368;
  --line: #c9d1da;
  --card: #fff;
  --card2: #f0f4f9;
  --accent: #0b57d0;
  --c1: #0b57d0;
  --c1-fill: rgba(11, 87, 208, .14);
  --c2: #e8710a;
  --c2-fill: rgba(232, 113, 10, .18);
  --c3: #188038;
  --ok: #137333;
  --bad: #c5221f;
  color: #111;
  background: #fff;
  font: 11.5pt/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact
}

#printout .p-head {
  border-bottom: 1.5pt solid #111;
  padding-bottom: 8pt;
  margin-bottom: 12pt
}

#printout .p-brand {
  font-weight: 700;
  color: var(--accent);
  font-size: 10pt
}

#printout .p-badge {
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 9pt;
  color: var(--muted);
  margin-top: 4pt
}

#printout h1 {
  font-size: 17pt;
  margin: 2pt 0 10pt;
  line-height: 1.2
}

#printout .p-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 6pt 18pt
}

#printout .p-fields i,
#printout .p-ans i {
  display: inline-block;
  width: 28mm;
  border-bottom: 1px solid #111;
  height: 1.1em;
  vertical-align: bottom
}

#printout .p-fields i.l,
#printout .p-ans i.l {
  width: 62mm
}

#printout .p-ans i.s {
  width: 18mm
}

#printout .p-q {
  display: flex;
  gap: 6pt;
  break-inside: avoid;
  page-break-inside: avoid;
  margin: 0 0 12pt
}

#printout .p-n {
  font-weight: 700;
  min-width: 20pt
}

#printout .p-b {
  flex: 1;
  min-width: 0
}

#printout .p-t b {
  font-weight: 600
}

#printout .fig {
  width: auto;
  max-width: 64mm;
  max-height: 52mm;
  margin: 6pt 0
}

#printout .p-b.has-fig {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 62mm;
  column-gap: 12pt;
  align-items: start
}

#printout .p-r .fig {
  width: 100%;
  max-width: 62mm;
  margin: 0
}

#printout .p-opts {
  list-style: none;
  padding: 0;
  margin: 6pt 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3pt 14pt
}

#printout .p-opts.pics .fig {
  max-width: 40mm;
  max-height: 36mm;
  margin: 2pt 0
}

#printout .p-steps {
  margin: 6pt 0;
  padding-left: 18pt
}

#printout .p-steps li {
  margin: 2pt 0
}

#printout .p-ans {
  margin-top: 6pt
}

#printout .p-note {
  font-size: 10pt;
  color: var(--muted);
  margin: 4pt 0
}

#printout .p-cm {
  font-size: 13pt;
  line-height: 2;
  margin: 6pt 0
}

#printout .p-key {
  break-before: page;
  page-break-before: always
}

#printout .p-key h2 {
  font-size: 15pt;
  margin: 0 0 4pt
}

#printout .p-keyl {
  list-style: none;
  padding: 0;
  margin: 8pt 0 0
}

#printout .p-keyl li {
  break-inside: avoid;
  page-break-inside: avoid;
  margin: 0 0 7pt;
  padding-bottom: 6pt;
  border-bottom: .5pt solid #ddd
}

#printout .p-why {
  font-size: 10pt;
  color: var(--muted);
  margin-top: 2pt
}

#printout .p-foot {
  margin-top: 14pt;
  font-size: 9pt;
  color: var(--muted)
}

/* v8 (26.10.2026): шапка и меню разделов — как на основном сайте. Шапка 50px, от 1024px — 60px (вместе с нижней рамкой 1px). */
.top-in {
  height: 49px
}

.sitemenu,
.menu-shade {
  top: 50px
}

.sitemenu {
  left: -10px;
  width: 280px;
  background: #fff;
  border-right: 0;
  box-shadow: -1px 8px 7px #85888c
}

.sitemenu ul {
  padding: 10px 0 50px
}

/* v15 (27.10.2026): разделители пунктов меню #f0f5fd, как на основном сайте */
.sitemenu li {
  padding: 15px 25px;
  border-bottom: 1px solid #f0f5fd;
  font-size: 18px;
  line-height: 1.3
}

.sitemenu a {
  display: block;
  margin: 0;
  padding: 0 5px;
  border-radius: 12px;
  color: #000;
  font: 16.92px/1.3 system-ui, -apple-system, BlinkMacSystemFont, sans-serif
}

.sitemenu a:hover {
  background: #f5f8fc
}

.sitemenu a.activ,
.sitemenu a.activ:hover {
  background: #f0f5fd;
  color: #000;
  font-weight: 500;
  padding: 5px 10px;
  margin: -5px
}

@media (min-width:769px) {
  .sitemenu {
    width: 240px
  }

  .sitemenu ul {
    padding-bottom: 100px
  }

  .sitemenu li {
    padding: 10px 30px
  }

  .sitemenu a.activ,
  .sitemenu a.activ:hover {
    padding: 0 5px;
    margin: 0
  }
}

@media (min-width:1024px) {
  .top-in {
    height: 59px
  }

  .sitemenu,
  .menu-shade {
    top: 60px
  }

  .sitemenu {
    width: 320px
  }

  .sitemenu li {
    padding: 5px 30px
  }

  .sitemenu a,
  .sitemenu a.activ,
  .sitemenu a.activ:hover {
    padding: 7px 10px;
    font-size: 16.2px
  }
}

@media (min-width:1200px) {
  .sitemenu {
    width: 325px
  }
}

@media (prefers-color-scheme:dark) {
  .sitemenu {
    background: #121212;
    box-shadow: -1px 8px 7px #000
  }

  .sitemenu li {
    border-bottom-color: #222
  }

  .sitemenu a {
    color: #f2f2f2
  }

  .sitemenu a:hover {
    background: rgba(255, 255, 255, .04)
  }

  .sitemenu a.activ,
  .sitemenu a.activ:hover {
    background: #1e3f93;
    color: #f2f2f2
  }
}

/* v9 (26.10.2026): затемнение под открытым меню ещё и размывает страницу — как на основном сайте и у окна поиска; закрытое скрыто через visibility */
.menu-shade {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  visibility: hidden;
  transition: opacity .3s, visibility 0s linear .3s
}

.menu-open .menu-shade {
  visibility: visible;
  transition-delay: 0s
}

/* v10 (26.10.2026): плашка cookie как на основном сайте (скрипт /js/cookieinfo.js; правила перенесены из mystyle.css и mystyle-dark.css) */
.cb--mounted::before {
  content: "";
  display: block;
  width: 34px;
  height: 32px;
  flex-shrink: 0;
  background: url("/img/cookie.svg") no-repeat;
  background-size: contain;
  margin-right: 16px
}

#cookblock {
  box-shadow: 0 0 10px rgba(0, 0, 0, .1);
  border-radius: 15px;
  transform: translateX(-50%) !important;
  z-index: 99 !important
}

#cookblock .cb__btn {
  padding: 8px 16px !important
}

.menu-open #cookblock {
  z-index: 30 !important
}

@media (max-width:767px) {
  #cookblock {
    width: 100% !important;
    font-size: 14px !important;
    bottom: 0 !important;
    border-radius: 0 !important
  }

  #cookblock::before {
    margin-right: 0 !important
  }

  #cookblock .cb__btn {
    margin-left: 0 !important;
    font-size: 14px !important
  }
}

@media (max-width:768px) {
  #cookblock.cb--mounted.cb--morph.cookblock_hid.cb-right {
    width: 43px !important;
    font-size: 14px !important;
    border-radius: 12px !important;
    right: 0 !important
  }
}

@media (min-width:769px) {
  .cb--mounted {
    width: 600px
  }

  .cb--mounted.cb--morph.cookblock_hid.cb-right {
    width: 43px
  }

  #cookblock.cookblock_hid {
    background-size: 26px 26px !important
  }
}

@media (prefers-color-scheme:dark) {
  #cookblock {
    background: #282a2c !important;
    color: #e3e3e3 !important;
    border: 1px solid #3a3d41 !important
  }

  #cookblock .cb__text {
    color: #e3e3e3 !important
  }

  #cookblock .cb__link {
    color: #a8c7fa !important
  }

  #cookblock .cb__btn {
    background: #e3e3e3 !important;
    color: #131314 !important
  }

  .cb--mounted::before {
    background-image: url(/img/dark/cookie.svg)
  }

  html #cookblock.cookblock_hid {
    background: #272727 url(/img/dark/icons-myCookie3.svg?v=1) center/60% no-repeat !important;
    border: 1px solid #353535 !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .35) !important
  }
}

/* плашка cookie не печатается: ни кнопкой «Распечатать тест», ни в PDF */
@media print {
  #cookblock {
    display: none !important
  }
}

/* «Другие тесты» в подвале после счётчика и «Поделиться»: три карточки, на широком экране в ряд;
   подвал центрирует и мельчит текст и красит ссылки — здесь возвращаем обычный вид */
.rel {
  margin: 36px 0 0;
  text-align: left;
  font-size: 16px
}

.rel .sec-h {
  color: var(--text)
}

.foot .rcard,
.foot .rcard:hover {
  color: var(--text);
  text-decoration: none
}

.foot .rcard p {
  margin: 0 0 14px
}

.rel-list {
  display: grid;
  gap: 12px
}

@media (min-width:720px) {
  .rel-list {
    grid-template-columns: repeat(3, 1fr)
  }
}

.rcard {
  display: flex;
  flex-direction: column;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 18px;
  color: var(--text);
  text-decoration: none;
  box-shadow: 0 0 50px 6px var(--glow);
  transition: transform .2s, box-shadow .25s, border-color .25s
}

@media (hover:hover) {
  .rcard:hover {
    transform: translateY(-2px);
    border-color: var(--accent);
    box-shadow: 0 0 70px 10px var(--glow)
  }
}

.rcard .eyebrow {
  align-self: flex-start;
  font-size: 11px;
  border-radius: 14px;
  padding: 5px 10px;
  margin-bottom: 10px
}

.rcard h3 {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.01em;
  margin: 0 0 6px
}

.rcard p {
  margin: 0 0 14px;
  font-size: 15px;
  color: var(--muted);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden
}

.rcard .rgo {
  margin-top: auto;
  align-self: flex-start;
  background: var(--pill);
  color: var(--pill-text);
  font-weight: 600;
  font-size: 15px;
  border-radius: 999px;
  padding: 8px 16px
}

@media print {
  .rel {
    display: none !important
  }
}

/* v20 (30.10.2026): бургер и логотип – в тех же координатах, что на основном сайте (без полупикселей). */
.top .burger {
  position: relative;
  left: -3px;
  top: .5px
}

.top .burger span {
  width: 20px;
  border-radius: 3px
}

.top .logo {
  position: relative;
  top: -.5px;
  margin-left: -4px
}

@media (max-width:1023px) {
  .top .top-in {
    position: relative;
    padding: 0 8px 0 12px;
    gap: 10px
  }

  .top .burger {
    top: 1.5px
  }

  .top .brand {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    gap: 6px
  }

  .top .logo,
  .top .logo-sec {
    position: relative;
    top: 1.5px;
    font-size: 22px;
    margin-left: 0
  }
}

@media (prefers-color-scheme: dark) {
  .top .burger span {
    background: #c4c7cc
  }
}

@media (prefers-color-scheme: light) {
  .top .burger span {
    background: #000
  }

  .top .logo {
    color: #000
  }
}
