/* ============================================================
 *  ТЮМ_72 — стили WYSIWYG-редактора и математики.
 *  Математические классы (.m-frac, .m-sqrt, sup, sub) используются
 *  и в редакторе, и при выводе на сайте (теория, условия задач).
 * ============================================================ */

/* ── Редактор ── */
.rte {
  border: 1px solid var(--gray-200, #d6dbe6);
  border-radius: 10px;
  overflow: visible;
  background: #fff;
}
.rte-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  align-items: center;
  padding: .4rem .5rem;
  background: var(--off-white, #f4f6fb);
  border-bottom: 1px solid var(--gray-200, #d6dbe6);
  border-radius: 10px 10px 0 0;
  position: relative;
}
.rte-btn {
  min-width: 32px;
  height: 30px;
  padding: 0 .55rem;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 6px;
  cursor: pointer;
  font-size: .92rem;
  line-height: 1;
  color: var(--gray-700, #2b3650);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .12s, border-color .12s;
}
.rte-btn:hover { background: #fff; border-color: var(--gray-200, #d6dbe6); }
.rte-btn:active { background: var(--accent, #e8eefc); }
.rte-btn.active { background: var(--accent, #e8eefc); border-color: var(--accent-mid, #9bb6f0); color: var(--blue, #163A84); }
.rte-sep { width: 1px; height: 20px; background: var(--gray-200, #d6dbe6); margin: 0 5px; }
.rte-editor {
  min-height: 240px;
  max-height: 620px;
  overflow-y: auto;
  padding: 1rem 1.15rem;
  font-size: .96rem;
  line-height: 1.65;
  color: var(--gray-700, #2b3650);
  outline: none;
}
.rte-editor:focus { box-shadow: inset 0 0 0 2px var(--accent-mid, #9bb6f0); border-radius: 0 0 10px 10px; }
.rte-editor p { margin: 0 0 .7em; }
.rte-editor h3 { margin: .7em 0 .4em; font-size: 1.15rem; color: var(--blue, #163A84); }
.rte-editor ul, .rte-editor ol { margin: 0 0 .7em; padding-left: 1.6em; }
.rte-editor:empty::before { content: attr(data-placeholder); color: var(--gray-400, #8a97b1); }

/* Степени/индексы: фиксированный размер, без компаундинга при вложенности
   (иначе при повторном включении индекса шрифт «съёживается»). */
.rte-editor sub, .rte-editor sup { font-size: .75em; }
.rte-editor sub sub, .rte-editor sub sup,
.rte-editor sup sub, .rte-editor sup sup { font-size: 1em; }

/* Палитра символов */
.rte-sym-wrap { position: relative; display: inline-flex; }
.rte-symbols {
  display: none;
  position: absolute;
  top: 34px;
  left: 0;
  z-index: 30;
  background: #fff;
  border: 1px solid var(--gray-200, #d6dbe6);
  border-radius: 10px;
  box-shadow: var(--shadow-lg, 0 12px 30px rgba(20,40,90,.18));
  padding: .45rem;
  grid-template-columns: repeat(10, 1fr);
  gap: 2px;
  width: 320px;
}
.rte-symbols.open { display: grid; }
.rte-symbols button {
  height: 28px;
  border: none;
  background: transparent;
  border-radius: 5px;
  cursor: pointer;
  font-size: 1.05rem;
  color: var(--gray-700, #2b3650);
}
.rte-symbols button:hover { background: var(--accent, #e8eefc); }

/* ── Рендер математики (редактор + публичные страницы) ── */
.m-frac {
  display: inline-flex;
  flex-direction: column;
  vertical-align: middle;
  text-align: center;
  margin: 0 .18em;
  font-size: .95em;
}
.m-frac > .m-num { border-bottom: 1.5px solid currentColor; padding: 0 .35em .05em; line-height: 1.25; }
.m-frac > .m-den { padding: .05em .35em 0; line-height: 1.25; }

/* Корень: знак — масштабируемый SVG (растягивается по высоте подкоренного,
   соединяется с чертой без зазора). Подкоренное — на базовой линии; вложенные
   корни растут ВВЕРХ от низа строки. */
.m-sqrt { display: inline-flex; align-items: stretch; vertical-align: -.12em; margin: 0 .12em; }
.m-sqrt > .m-sqrt-sign { width: .55em; align-self: stretch; flex: 0 0 auto; }
.m-sqrt > .m-rad { display: inline-block; border-top: 1.6px solid currentColor; padding: .14em .3em 0 .02em; }

/* Корень n-й степени: степень — приподнятый индекс над знаком корня */
.m-nroot { display: inline-block; }
.m-nroot > .m-rootn { display: inline-block; font-size: .6em; vertical-align: 1.1em; margin-right: -.5em; position: relative; z-index: 1; }
