/* Morphology Lab: paradigm grids and morpheme colouring. */

:root {
  --morph-root-change: #b45309;
  --morph-core: #1d4ed8;
  --morph-spatial: #047857;
  --morph-outer: var(--color-suffix, #9b2226);
}

[data-theme="dark"] {
  --morph-root-change: #fbbf24;
  --morph-core: #93c5fd;
  --morph-spatial: #6ee7b7;
  --morph-outer: #fca5a5;
}

.morph-mode .btn {
  font-weight: 500;
}

.morph-refine {
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
}

.morph-refine summary,
.morph-notes summary {
  cursor: pointer;
}

.morph-headword,
.morph-form,
.morph-lemma,
.morph-breakdown-word,
.morph-breakdown-text {
  font-family: var(--font-family-serif, Georgia, serif);
}

.morph-form,
.morph-breakdown-text {
  font-size: 1.1rem;
}

.morph-breakdown-word {
  font-size: 1.6rem;
}

.morph-table th,
.morph-table td {
  padding: 0.45rem 0.6rem;
}

.morph-table thead th {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--bs-secondary-color);
  white-space: nowrap;
}

.morph-row-label {
  font-weight: 500;
  color: var(--bs-secondary-color);
  white-space: nowrap;
}

.morph-alt {
  font-size: 0.65rem;
  font-weight: 500;
  vertical-align: middle;
}

.morph-directive {
  font-size: 0.85rem;
  color: var(--bs-secondary-color);
}

.morph-filter {
  max-width: 18rem;
}

.morph-root-change {
  color: var(--morph-root-change);
  font-weight: 700;
  text-decoration: underline dotted;
  text-underline-offset: 0.2em;
}

.morph-core-element {
  color: var(--morph-core);
  font-weight: 600;
}

.morph-spatial-base {
  color: var(--morph-spatial);
  font-weight: 600;
}

.morph-outer-suffix {
  color: var(--morph-outer);
  font-weight: 600;
}

.morph-root-element {
  font-weight: 700;
}

.morph-breakdown-plus {
  color: var(--bs-secondary-color);
  margin: 0 0.3rem;
  font-family: var(--bs-body-font-family);
}

.morph-breakdown {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.75rem;
}

.morph-breakdown-part {
  border: 1px solid var(--bs-border-color);
  border-top-width: 3px;
  border-radius: 0.5rem;
  padding: 0.6rem 0.75rem;
}

.morph-kind-core { border-top-color: var(--morph-core); }
.morph-kind-spatial { border-top-color: var(--morph-spatial); }
.morph-kind-suffix { border-top-color: var(--morph-outer); }

.morph-breakdown-explanation {
  color: var(--bs-secondary-color);
}

.morph-prov {
  font-weight: 500;
  border: 1px solid var(--bs-border-color);
  color: var(--bs-body-color);
  background: var(--bs-tertiary-bg);
}

.morph-prov-attested {
  color: #fff;
  background: var(--bs-success);
  border-color: var(--bs-success);
}

.morph-prov-hypothesis {
  color: #000;
  background: var(--bs-warning);
  border-color: var(--bs-warning);
}
