
.gr-figure { margin: 1.4rem 0; }
.gr-scroll { overflow-x: auto; overflow-y: hidden; max-width: 100%; }
.gr-scroll:focus-visible { outline: 2px solid var(--gr-focus, currentColor); }
.gr-grid {
  border-collapse: collapse;
  margin: 0 auto;
  width: max-content;
  max-width: none;
  --gr-rule: 1px solid var(--gr-rule-colour, currentColor);
}
.gr-grid td {
  padding: 0.14em 0.5em;
  vertical-align: middle;
  white-space: nowrap;
}
/* An uncaptioned myarray is display maths and gets the space display maths
   gets; an extable sits in a figure, which brings its own margin. */
.gr-array { margin: 1.1rem auto; }
/* A column LaTeX padded because the row was written short. It holds nothing,
   so it does not need a full cell's worth of room. */
.gr-grid td.gr-pad { padding-left: 0.25em; padding-right: 0.25em; }
.gr-al { text-align: left; }
.gr-ac { text-align: center; }
.gr-ar { text-align: right; }
.gr-vl  { border-left: var(--gr-rule); }
.gr-vr  { border-right: var(--gr-rule); }
.gr-vl2 { border-left: 3px double var(--gr-rule-colour, currentColor); }
.gr-vr2 { border-right: 3px double var(--gr-rule-colour, currentColor); }
.gr-grid tr.gr-ht  > td { border-top: var(--gr-rule); }
.gr-grid tr.gr-ht2 > td { border-top: 3px double var(--gr-rule-colour, currentColor); }
.gr-grid tr.gr-hb  > td { border-bottom: var(--gr-rule); }
.gr-grid tr.gr-hb2 > td { border-bottom: 3px double var(--gr-rule-colour, currentColor); }
.gr-grid td.gr-ht { border-top: var(--gr-rule); }

.gr-tiny        { font-size: 0.66em; }
.gr-scriptsize  { font-size: 0.74em; }
.gr-footnotesize{ font-size: 0.82em; }
.gr-small       { font-size: 0.92em; }
.gr-large       { font-size: 1.15em; }

.gr-caption { margin-top: 0.6rem; text-align: center; font-size: 0.92em; }
.gr-caption-label { font-weight: 600; }
/* The table's accessible name. Read out, never drawn: the caption under the
   figure says the same thing to anyone who can see it. */
.gr-table-name {
  position: absolute; width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}

/* The two coloured tables mark cells in raw green and yellow, which is
   unreadable behind light text. Named here so both themes can pick. */
.gr-bg-green  { background: var(--gr-green,  #b8f2c0); color: var(--gr-on-green,  #06210b); }
.gr-bg-yellow { background: var(--gr-yellow, #f6ec9a); color: var(--gr-on-yellow, #241f00); }
@media (prefers-color-scheme: dark) {
  :root {
    --gr-green:  #1f6b34; --gr-on-green:  #e8ffee;
    --gr-yellow: #6d5c14; --gr-on-yellow: #fffbe6;
  }
}
:root[data-theme="dark"] {
  --gr-green:  #1f6b34; --gr-on-green:  #e8ffee;
  --gr-yellow: #6d5c14; --gr-on-yellow: #fffbe6;
}
:root[data-theme="light"] {
  --gr-green:  #b8f2c0; --gr-on-green:  #06210b;
  --gr-yellow: #f6ec9a; --gr-on-yellow: #241f00;
}

/* A row-spanning curly brace. The cell is as tall as the rows it covers and
   the brace is stretched to fill it; vector-effect stops the stroke being
   stretched with it. The svg is taken out of flow on purpose: left in flow its
   10:100 viewBox gives it an intrinsic height of ten times its width, and a
   one-row brace then makes its own row three times too tall. */
.gr-grid td.gr-brace { position: relative; padding-left: 1.15em; }
.gr-brace-box { display: block; }
.gr-brace-mark {
  position: absolute; top: 0.15em; bottom: 0.15em; left: 0.25em; width: 0.6em;
}
.gr-brace-svg { display: block; width: 100%; height: 100%; }
.gr-brace-label { display: inline-block; }

.gr-rot90 {
  display: inline-block;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

.gr-ref-missing { color: var(--gr-warn, #b3261e); }
