.fraction-table{
  border-collapse:collapse;
  width:auto;
  display:inline-table;
  vertical-align:middle;
  margin:0 2px;
  line-height:1;
}
.fraction-table td{
  text-align:center;
  padding:1px 6px;
  line-height:1.05;
}
.fraction-table tr:nth-child(1) td{
  border-bottom:1px solid currentColor;
  padding-bottom:2px;
}
.fraction-table tr:nth-child(2) td{ padding-top:2px; }

.tuple-frac-wrap{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  line-height:1;
  margin:0 2px;
  white-space:nowrap;
}
.tuple-paren{
  font-weight:800;
  line-height:1;
  padding:0 2px;
}
.tuple-frac{
  border-collapse:collapse;
  width:auto;
  display:inline-table;
  vertical-align:middle;
  line-height:1;
}
.tuple-frac td{
  text-align:center;
  padding:1px 6px;
  white-space:nowrap;
  vertical-align:middle;
}
.tuple-frac .tf-bar{ padding:0; }
.tuple-frac .tf-bar-line{
  display:block;
  width:100%;
  border-top:1px solid currentColor;
  margin:4px 0;
}
.tuple-frac .tf-sep{
  padding:0 4px;
  font-weight:800;
  line-height:1;
  vertical-align:middle;
}

.math-expr{ display:inline-block; line-height:1.45; vertical-align:baseline; }

:root{
  --script-size:0.72em;
  --sup-shift:-0.46em;
  --sub-shift:0.26em;
}

.sub{
  display:inline-block;
  font-size:var(--script-size);
  line-height:1;
  position:relative;
  top:var(--sub-shift);
  margin-left:1px;
  vertical-align:baseline;
}

.op{
  display:inline-block;
  padding:0 0.18em;
  line-height:1;
  vertical-align:baseline;
  font-weight:800;
}

.vec{
  position:relative;
  display:inline-block;
  font-weight:800;
  line-height:1;
  vertical-align:baseline;
}
.vec::after{
  content:"→";
  position:absolute;
  left:0; right:0;
  top:-0.62em;
  text-align:center;
  font-size:0.85em;
  line-height:1;
  font-weight:800;
  pointer-events:none;
}

.pow{ display:inline-flex; align-items:baseline; vertical-align:baseline; }
.pow-base{ display:inline; }
.pow-exp{
  display:inline-block;
  font-size:var(--script-size);
  line-height:1;
  position:relative;
  top:var(--sup-shift);
  margin-left:1px;
  vertical-align:baseline;
}

.root{ display:inline-flex; align-items:flex-start; vertical-align:middle; }
.root-symbol{
  font-weight:900;
  font-size:1.15em;
  line-height:1;
  padding-right:2px;
  transform:translateY(6px);
}
.root-body{
  display:inline-grid;
  grid-template-rows:1px auto;
  grid-template-columns:max-content;
  justify-items:stretch;
  align-items:start;
}
.root-line{
  width:100%;
  border-top:1px solid currentColor;
  margin:2px 0 4px 0;
  justify-self:stretch;
}
.root-radicand{ padding:2px 4px; white-space:nowrap; }

.step-answer{
  padding:20px 18px;
  min-height:90px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.step-layout{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  white-space:normal;
  text-align:center;
  width:100%;
  max-width:100%;
  margin:0 auto;
}
.layout-lines{
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:center;
  white-space:normal;
  text-align:center;
  width:100%;
}
.layout-line{
  display:flex;
  justify-content:center;
  width:100%;
}

.step.step-formula .step-answer{ justify-content:center; }

.formula-scroll{
  width:100%;
  display:flex;
  justify-content:center;
}
.formula-grid{
  width:100%;
  max-width:980px;
  display:grid;
  grid-template-columns:1fr;
  row-gap:12px;
}
.formula-item{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  white-space:normal;
  text-align:center;
  font-weight:700;
  line-height:1.55;
  min-width:0;
}

.final-answer-box{
  font-weight:700;
  margin-top:12px;
  font-size:1.1em;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.final-answer-box .answer-label{ line-height:1; }