th, td{ padding: 5px; }
.lt-table {
  --b: 1px solid; --bg: 4px solid transparent;
  --c-head: #888; --c-span: #bbb; --c-row: #ddd; --c-foot: #aaa; --c-grp: #ccc;

  border-collapse: separate;
  margin: auto;
  border-spacing: 0;
  border-top: var(--b);
  border-bottom: var(--b);

  caption {
    border-top: var(--b);
    padding: .5em;
    text-align: center;
    .lt-title    { font-size: 1.2em; font-weight: 600; }
    .lt-subtitle { font-size: 0.9em; }
  }

  tbody tr:not(:last-child) :is(td, th) { border-bottom: var(--b) var(--c-row); }
  thead th { border-bottom: var(--b) var(--c-head); border-left: var(--bg); border-right: var(--bg); }
  thead .lt-spanner-row {
    .lt-spanner       { border-bottom: var(--b) var(--c-span); text-align: center; }
    .lt-spanner-empty { border-bottom: none; }
  }

  tbody {
    th.lt-stub { text-align: left; }
    .lt-row-group th {
      text-align: left;
      background: radial-gradient(circle, #ccc 0.75px, transparent 0.75px);
      background-size: 8px 8px;
    }
    .lt-row-group ~ tr:not(.lt-row-group) > :first-child { padding-left: 1em; }
  }

  tfoot.lt-footer {
    font-size: 0.85em;
    .lt-footnote:first-child td { border-top: var(--b) var(--c-foot); }
    .lt-source-note:first-child td { border-top: 1px dashed var(--c-foot); }
    .lt-source-note td { font-style: italic; }
  }

  .al-r { text-align: right; }
  .al-c { text-align: center; }

  sup.lt-fnref {
    color: #06c;
    &::before { content: " ["; }
    &::after  { content: "]"; }
  }
}
