/* Fernando Kylas Brand System. components.css
   Rules only: the reasoning is in the repository, at lab/publication-engine/platform/design-system/css/components.css.
   Nothing else is altered. No value, selector or declaration differs
   from source. See publications/brand-system/build/assemble.py. */
.fk-sev {
  display: inline-flex;
  align-items: center;
  gap: var(--fk-space-2);
  font-family: var(--fk-font-text);
  font-weight: var(--fk-weight-medium);
  font-size: var(--fk-footnote-size);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.25em 0.6em;
  border: 1px solid var(--fk-text-primary);
  border-radius: var(--fk-radius-sm);
  color: var(--fk-text-primary);
  white-space: nowrap;
}
.fk-sev::before {
  content: "";
  width: 0.55em; height: 0.55em;
  border: 1px solid currentColor;
  flex: none;
}
.fk-sev--critical { background: var(--fk-text-primary); color: var(--fk-surface); border-color: var(--fk-text-primary); }
.fk-sev--critical::before { background: currentColor; border-color: currentColor; }
.fk-sev--high { background: transparent; color: var(--fk-text-primary); }
.fk-sev--high::before { background: currentColor; }
.fk-sev--medium { color: var(--fk-text-secondary); border-color: var(--fk-text-secondary); }
.fk-sev--medium::before { background: linear-gradient(135deg, currentColor 50%, transparent 50%); }
.fk-sev--low { color: var(--fk-text-tertiary); border-color: var(--fk-border-strong); font-weight: var(--fk-weight-regular); }
.fk-sev--low::before { background: transparent; }

.fk-sev--positive { color: var(--fk-accent-ink); border-color: var(--fk-accent); }
.fk-sev--positive::before { background: var(--fk-accent); border-color: var(--fk-accent); }

.fk-state {
  display: inline-flex;
  align-items: center;
  gap: var(--fk-space-2);
  font-size: var(--fk-footnote-size);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fk-text-secondary);
  font-weight: var(--fk-weight-medium);
}
.fk-state::before {
  content: "";
  width: 0.6em; height: 0.6em;
  border-radius: 50%;
  border: 1.5px solid currentColor;
  flex: none;
}
.fk-state--measured::before   { background: currentColor; }
.fk-state--estimated::before  { background: radial-gradient(currentColor 40%, transparent 42%); }
.fk-state--qualitative::before{ background: transparent; }
.fk-state--partial::before    { background: linear-gradient(90deg, currentColor 50%, transparent 50%); }
.fk-state--unmeasured::before { border-style: dashed; }
.fk-state--na::before         { border-style: dotted; opacity: 0.6; }

.fk-confidence { display: inline-flex; align-items: center; gap: var(--fk-space-2); }
.fk-confidence__dots { display: inline-flex; gap: 3px; }
.fk-confidence__dots i {
  width: 0.5rem; height: 0.5rem; border-radius: 50%;
  border: 1px solid var(--fk-text-secondary);
}
.fk-confidence--high   .fk-confidence__dots i { background: var(--fk-text-secondary); }
.fk-confidence--medium .fk-confidence__dots i:nth-child(-n+2) { background: var(--fk-text-secondary); }
.fk-confidence--low    .fk-confidence__dots i:nth-child(1)   { background: var(--fk-text-secondary); }
.fk-confidence__label { font-size: var(--fk-footnote-size); color: var(--fk-text-tertiary); text-transform: uppercase; letter-spacing: 0.08em; }

.fk-coverage { display: inline-flex; align-items: center; gap: var(--fk-space-3); font-variant-numeric: tabular-nums; }
.fk-coverage__bar {
  width: 3rem; height: 0.4rem;
  background: var(--fk-border);
  border-radius: var(--fk-radius-pill);
  overflow: hidden;
}
.fk-coverage__bar > i { background: var(--fk-data-1); }
.fk-coverage__value { font-size: var(--fk-footnote-size); color: var(--fk-text-tertiary); }

.fk-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--fk-space-1);
  font-size: var(--fk-footnote-size);
  letter-spacing: 0.02em;
  color: var(--fk-text-secondary);
  border: var(--fk-hairline);
  border-radius: var(--fk-radius-sm);
  padding: 0.2em 0.55em;
}
.fk-tag--plain { border: 0; padding: 0; color: var(--fk-text-tertiary); }
.fk-tag--strong { color: var(--fk-text-primary); border-color: var(--fk-border-strong); }

.fk-priority {
  display: inline-flex; align-items: baseline; gap: var(--fk-space-2);
  font-size: var(--fk-footnote-size); text-transform: uppercase; letter-spacing: 0.08em;
  font-weight: var(--fk-weight-medium);
}
.fk-priority__rank {
  font-variant-numeric: tabular-nums;
  border: 1px solid currentColor; border-radius: var(--fk-radius-sm);
  padding: 0 0.4em; font-weight: var(--fk-weight-bold);
}
.fk-priority--p1 { color: var(--fk-text-primary); }
.fk-priority--p2 { color: var(--fk-text-secondary); }
.fk-priority--p3 { color: var(--fk-text-tertiary); }

.fk-scale { display: inline-flex; align-items: center; gap: var(--fk-space-2); }
.fk-scale__label { font-size: var(--fk-footnote-size); text-transform: uppercase; letter-spacing: 0.08em; color: var(--fk-text-tertiary); }
.fk-scale__track { display: inline-flex; gap: 3px; }
.fk-scale__track i { width: 0.85rem; height: 0.5rem; border: 1px solid var(--fk-text-secondary); border-radius: 1px; }
.fk-scale--1 .fk-scale__track i:nth-child(1),
.fk-scale--2 .fk-scale__track i:nth-child(-n+2),
.fk-scale--3 .fk-scale__track i:nth-child(-n+3) { background: var(--fk-text-secondary); }

.fk-callout {
  padding: var(--fk-space-5) 0 var(--fk-space-5) var(--fk-space-6);
  border-left: var(--fk-rule);
  max-width: var(--fk-measure-wide);
}
.fk-callout__label { margin-bottom: var(--fk-space-3); }

.fk-insight {
  padding-top: var(--fk-space-5);
  border-top: var(--fk-rule-accent);
  max-width: var(--fk-measure-wide);
}
.fk-insight__label { margin-bottom: var(--fk-space-4); }
.fk-insight__statement {
  font-family: var(--fk-font-display);
  font-weight: var(--fk-quote-weight);
  font-size: var(--fk-quote-size);
  line-height: var(--fk-quote-lh);
  letter-spacing: var(--fk-quote-track);
  text-wrap: balance;
}

.fk-summary,
.fk-evidence,
.fk-chart,
.fk-diagram,
.fk-pubcard {
  --fk-text-tertiary: var(--fk-text-tertiary-raised);
}

.fk-summary {
  background: var(--fk-surface-raised);
  border: var(--fk-hairline);
  border-radius: var(--fk-radius-lg);
  padding: var(--fk-space-6);
}
.fk-summary__title { margin-bottom: var(--fk-space-4); }

.fk-pullquote { max-width: var(--fk-measure-wide); }
.fk-pullquote__cite {
  display: block;
  margin-top: var(--fk-space-4);
  font-size: var(--fk-caption-size);
  letter-spacing: var(--fk-caption-track);
  color: var(--fk-text-tertiary);
  font-style: normal;
}

.fk-finding {
  --fk-rail: var(--fk-border-strong);
  --fk-rail-w: 2px;
  padding: var(--fk-space-5) 0 var(--fk-space-5) var(--fk-space-6);
  border-left: var(--fk-rail-w) solid var(--fk-rail);
}
.fk-finding + .fk-finding { margin-top: var(--fk-space-6); }
.fk-finding__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--fk-space-4);
  margin-bottom: var(--fk-space-3);

  flex-wrap: wrap;
}

.fk-finding__head > :is(h1, h2, h3, h4, h5, h6, .fk-finding__title) { margin-inline-end: auto; }
.fk-finding__id { font-variant-numeric: tabular-nums; color: var(--fk-text-tertiary); font-size: var(--fk-caption-size); white-space: nowrap; }
.fk-finding__meta { margin-top: var(--fk-space-3); }
.fk-finding__facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: var(--fk-space-3) var(--fk-space-5);
  margin-top: var(--fk-space-4);
}
.fk-finding__facts dt { font-size: var(--fk-footnote-size); text-transform: uppercase; letter-spacing: 0.08em; color: var(--fk-text-tertiary); margin-bottom: var(--fk-space-1); }
.fk-finding__facts dd { font-size: var(--fk-body-s-size); color: var(--fk-text-primary); }
.fk-finding__section { margin-top: var(--fk-space-4); }
.fk-finding__section > .fk-label { display: block; margin-bottom: var(--fk-space-2); }

.fk-finding--critical    { --fk-rail: var(--fk-text-primary); --fk-rail-w: 4px; }
.fk-finding--high, .fk-finding--risk { --fk-rail: var(--fk-text-primary); --fk-rail-w: 3px; }
.fk-finding--medium      { --fk-rail: var(--fk-text-secondary); --fk-rail-w: 2px; }
.fk-finding--low, .fk-finding--observation { --fk-rail: var(--fk-border); --fk-rail-w: 1px; }
.fk-finding--opportunity, .fk-finding--positive { --fk-rail: var(--fk-accent); --fk-rail-w: 3px; }

.fk-evidence {
  margin-top: var(--fk-space-4);
  padding: var(--fk-space-4) var(--fk-space-5);
  background: var(--fk-surface-raised);
  border: var(--fk-hairline);
  border-radius: var(--fk-radius-md);
  font-size: var(--fk-body-s-size);
}
.fk-evidence__label { margin-bottom: var(--fk-space-2); }
.fk-evidence__data { font-variant-numeric: tabular-nums; }
.fk-evidence code { background: transparent; border: 0; padding: 0; }

.fk-blocker {
  border: 1px dashed var(--fk-border-strong);
  border-radius: var(--fk-radius-md);
  padding: var(--fk-space-5);
}
.fk-blocker__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--fk-space-4); margin-bottom: var(--fk-space-3); }
.fk-blocker__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: var(--fk-space-3) var(--fk-space-5); margin-top: var(--fk-space-3); }
.fk-blocker__facts dt { font-size: var(--fk-footnote-size); text-transform: uppercase; letter-spacing: 0.08em; color: var(--fk-text-tertiary); margin-bottom: var(--fk-space-1); }

.fk-rec {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: var(--fk-space-3) var(--fk-space-5);
  padding: var(--fk-space-6) 0;
}

.fk-rec > :not(.fk-rec__num) { grid-column: 2; }
.fk-rec + .fk-rec { border-top: var(--fk-hairline); }
.fk-rec__num {
  font-family: var(--fk-font-text);
  font-weight: var(--fk-weight-bold);
  font-variant-numeric: tabular-nums;
  font-size: var(--fk-card-title-size);
  color: var(--fk-text-tertiary);
  line-height: var(--fk-card-title-lh);
}
.fk-rec__title { margin-bottom: var(--fk-space-3); }
.fk-rec__meta { display: flex; flex-wrap: wrap; gap: var(--fk-space-3) var(--fk-space-6); margin-top: var(--fk-space-4); align-items: center; }
.fk-nextstep {
  display: inline-flex; align-items: center; gap: var(--fk-space-2);
  font-weight: var(--fk-weight-medium); color: var(--fk-text-primary);
}

.fk-nextstep::before {
  content: ""; display: inline-block; flex: none;
  width: 0; height: 0;
  border-top: 0.32em solid transparent; border-bottom: 0.32em solid transparent;
  border-left: 0.42em solid var(--fk-accent-ink);
}

.fk-kpi {
  padding: var(--fk-space-5) 0;
  border-top: var(--fk-rule);
}
.fk-kpi__label { margin-bottom: var(--fk-space-3); }
.fk-kpi__value {  }
.fk-kpi__meta { margin-top: var(--fk-space-2); color: var(--fk-text-tertiary); font-size: var(--fk-caption-size); }
.fk-kpi__delta { display: inline-flex; align-items: center; gap: 0.4em; font-size: var(--fk-body-s-size); font-variant-numeric: tabular-nums; }

.fk-kpi__delta::before { content: ""; display: inline-block; flex: none; }
.fk-kpi__delta--up::before   { width: 0; height: 0; border-left: 0.3em solid transparent; border-right: 0.3em solid transparent; border-bottom: 0.42em solid currentColor; }
.fk-kpi__delta--down::before { width: 0; height: 0; border-left: 0.3em solid transparent; border-right: 0.3em solid transparent; border-top: 0.42em solid currentColor; }
.fk-kpi__delta--flat::before { width: 0.6em; height: 0.14em; background: currentColor; }

.fk-score { display: inline-grid; place-items: center; }
.fk-score__dial {
  --fk-score: 0;
  width: 7rem; aspect-ratio: 1;
  border-radius: 50%;
  display: grid; place-items: center;
  background:
    radial-gradient(closest-side, var(--fk-surface) 79%, transparent 80% 100%),
    conic-gradient(var(--fk-text-primary) calc(var(--fk-score) * 1%), var(--fk-border) 0);
}
.fk-score__dial--sm { width: 4.5rem; }
.fk-score__dial--lg { width: 9.5rem; }
.fk-score__value { font-family: var(--fk-font-text); font-weight: var(--fk-weight-bold); font-variant-numeric: tabular-nums; font-size: var(--fk-card-title-size); }
.fk-score__caption { margin-top: var(--fk-space-2); text-align: center; }

.fk-meter { }
.fk-meter__head { display: flex; justify-content: space-between; gap: var(--fk-space-4); margin-bottom: var(--fk-space-2); }
.fk-meter__value { font-variant-numeric: tabular-nums; color: var(--fk-text-primary); }
.fk-meter__track { height: 0.5rem; background: var(--fk-border); border-radius: var(--fk-radius-pill); overflow: hidden; }
.fk-meter__fill { background: var(--fk-data-1); }
.fk-meter + .fk-meter { margin-top: var(--fk-space-4); }

.fk-meter--benchmark { position: relative; }
.fk-meter--benchmark .fk-meter__track { position: relative; }
.fk-meter--benchmark .fk-meter__track::after {
  content: "";
  position: absolute; top: -3px; bottom: -3px;
  left: calc(var(--fk-target, 0) * 1%);
  width: 2px; background: var(--fk-accent-ink);
}

.fk-compare { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--fk-space-5); align-items: center; }
.fk-compare__side { }
.fk-compare__side .fk-metric-value { font-size: var(--fk-metric-size); }

.fk-compare__arrow { display: inline-flex; align-items: center; justify-content: center; }
.fk-compare__arrow::before {
  content: ""; display: inline-block;
  width: 0; height: 0;
  border-top: 0.34em solid transparent; border-bottom: 0.34em solid transparent;
  border-left: 0.46em solid var(--fk-text-tertiary);
}

.fk-phase { padding: var(--fk-space-6) 0; }
.fk-phase + .fk-phase { border-top: var(--fk-hairline); }
.fk-phase__head { display: flex; align-items: baseline; gap: var(--fk-space-4); flex-wrap: wrap; margin-bottom: var(--fk-space-4); }
.fk-phase__num {
  font-family: var(--fk-font-text); font-weight: var(--fk-weight-bold);
  font-variant-numeric: tabular-nums; font-size: var(--fk-subsection-size);
  color: var(--fk-text-tertiary);
}
.fk-phase__title { }
.fk-phase__meta { margin-left: auto; color: var(--fk-text-tertiary); font-size: var(--fk-caption-size); }

.fk-timeline { list-style: none; padding: 0; margin: 0; }
.fk-timeline > li {
  position: relative;
  padding-left: var(--fk-space-6);
  padding-bottom: var(--fk-space-6);
  border-left: var(--fk-hairline);
  margin: 0;
}
.fk-timeline > li:last-child { border-left-color: transparent; padding-bottom: 0; }
.fk-timeline > li::before {
  content: "";
  position: absolute; left: calc(-0.4rem - 0.5px); top: 0.35rem;
  width: 0.8rem; height: 0.8rem; border-radius: 50%;
  background: var(--fk-surface); border: 2px solid var(--fk-text-primary);
}
.fk-timeline > li.fk-milestone::before { background: var(--fk-text-primary); }
.fk-timeline__date { font-variant-numeric: tabular-nums; color: var(--fk-text-tertiary); font-size: var(--fk-caption-size); margin-bottom: var(--fk-space-1); }
.fk-dependency { display: inline-flex; align-items: center; gap: var(--fk-space-2); font-size: var(--fk-footnote-size); color: var(--fk-text-tertiary); }

.fk-dependency::before {
  content: ""; display: inline-block; flex: none;
  width: 0.5em; height: 0.5em;
  border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
}

@media (max-width: 640px) {
  .fk-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .fk-table--stack tr { display: block; border-bottom: var(--fk-rule); padding: var(--fk-space-3) 0; }
  .fk-table--stack td {
    display: flex; justify-content: space-between; gap: var(--fk-space-4);
    border: 0; padding: var(--fk-space-2) 0; text-align: right;
  }
  .fk-table--stack td::before {
    content: attr(data-label);
    text-align: left; color: var(--fk-text-tertiary);
    font-size: var(--fk-footnote-size); text-transform: uppercase; letter-spacing: 0.06em;
    font-weight: var(--fk-weight-medium);
  }
}

.fk-figure { margin: 0; max-width: 100%; }
.fk-figure__caption, figcaption {
  margin-top: var(--fk-space-3);
  font-size: var(--fk-caption-size);
  letter-spacing: var(--fk-caption-track);
  color: var(--fk-text-tertiary);
}
.fk-chart, .fk-diagram {
  border: var(--fk-hairline);
  border-radius: var(--fk-radius-md);
  padding: var(--fk-space-5);
  background: var(--fk-surface-raised);
}
.fk-diagram { display: grid; place-items: center; min-height: 8rem; }

:is(.fk-bars__bar, .fk-signal__bar, .fk-meter__fill, .fk-coverage__bar > i, .fk-scoreline__track > i) {
  display: block;
  block-size: 100%;
  inline-size: min(100%, calc(var(--fk-value, 0) / var(--fk-scale, 100) * 100%));
}

.fk-bars { display: grid; gap: var(--fk-space-3); }
.fk-bars__row { display: grid; grid-template-columns: minmax(6rem, 10rem) minmax(0, 1fr) auto; gap: var(--fk-space-4); align-items: center; }
.fk-bars__label { font-size: var(--fk-body-s-size); color: var(--fk-text-secondary); }
.fk-bars__track { height: 0.9rem; background: var(--fk-border); border-radius: var(--fk-radius-sm); overflow: hidden; }
.fk-bars__bar { background: var(--fk-data-1); }
.fk-bars__bar--muted { background: var(--fk-data-2); }
.fk-bars__value { font-variant-numeric: tabular-nums; font-size: var(--fk-body-s-size); color: var(--fk-text-primary); }

.fk-note {
  padding-left: var(--fk-space-5);
  border-left: var(--fk-hairline);
  color: var(--fk-text-secondary);
  max-width: var(--fk-measure);
}
.fk-note__label { display: block; margin-bottom: var(--fk-space-2); }

.fk-warning {
  padding: var(--fk-space-4) var(--fk-space-5);
  border: var(--fk-hairline);
  border-left: var(--fk-rule);
  border-radius: var(--fk-radius-md);
  max-width: var(--fk-measure);
}
.fk-warning__label { display: inline-flex; align-items: center; gap: var(--fk-space-2); margin-bottom: var(--fk-space-2); color: var(--fk-text-primary); }
.fk-warning__label::before { content: "!"; display: inline-grid; place-items: center; width: 1.1em; height: 1.1em; border: 1.5px solid currentColor; border-radius: 50%; font-weight: var(--fk-weight-bold); font-size: 0.8em; }

.fk-def {
  max-width: var(--fk-measure-structural);
  container-type: inline-size;
  container-name: fk-def;
}
.fk-def > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--fk-space-1) var(--fk-space-5);
  padding: var(--fk-space-4) 0;
  border-top: var(--fk-hairline);
}
.fk-def dt { font-weight: var(--fk-weight-medium); color: var(--fk-text-primary); }
.fk-def dd {
  color: var(--fk-text-secondary);

  overflow-wrap: break-word;
}
@container fk-def (min-width: 34rem) {
  .fk-def > div {
    grid-template-columns: minmax(9rem, 15rem) minmax(0, 1fr);
    row-gap: 0;
    align-items: baseline;
    padding-block: var(--fk-space-3);
  }
}

.fk-source { font-size: var(--fk-caption-size); color: var(--fk-text-tertiary); }
.fk-source::before { content: "Source\00a0\2014\00a0"; }

.fk-footnotes { counter-reset: fk-fn; list-style: none; padding: 0; margin-top: var(--fk-space-6); border-top: var(--fk-hairline); padding-top: var(--fk-space-4); max-width: var(--fk-measure-structural); }
.fk-footnotes > li {
  counter-increment: fk-fn;
  position: relative;
  padding: var(--fk-space-1) 0 var(--fk-space-1) calc(1.5rem + var(--fk-space-3));
  margin: 0;
  font-size: var(--fk-footnote-size);
  line-height: var(--fk-footnote-lh);
  color: var(--fk-text-tertiary);
  overflow-wrap: break-word;
}
.fk-footnotes > li::before {
  content: counter(fk-fn);
  position: absolute;
  left: 0;
  top: var(--fk-space-1);
  width: 1.5rem;
  font-size: inherit;
  line-height: inherit;
  font-variant-numeric: tabular-nums;
}
.fk-fnref { font-size: 0.7em; vertical-align: super; line-height: 0; font-variant-numeric: tabular-nums; }
.fk-fnref a { text-decoration: none; }

.fk-pubcard {
  display: flex;
  flex-direction: column;
  gap: var(--fk-space-4);
  padding: var(--fk-space-6);
  border: var(--fk-hairline);
  border-radius: var(--fk-radius-lg);
  background: var(--fk-surface-raised);
}
.fk-pubcard__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--fk-space-3) var(--fk-space-4);
  flex-wrap: wrap;
}
.fk-pubcard__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fk-space-2) var(--fk-space-3);
  margin-top: auto;
}

.fk-pubcard--developing { background: transparent; border-style: dashed; }

.fk-pubstatus {
  display: inline-flex;
  align-items: center;
  gap: var(--fk-space-2);
  font-size: var(--fk-footnote-size);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: var(--fk-weight-medium);
  white-space: nowrap;
}
.fk-pubstatus::before { content: ""; width: 0.55em; height: 0.55em; flex: none; }
.fk-pubstatus--ready { color: var(--fk-accent-ink); }
.fk-pubstatus--ready::before { background: var(--fk-accent); border: 1px solid var(--fk-accent); }
.fk-pubstatus--developing { color: var(--fk-text-tertiary); }
.fk-pubstatus--developing::before { border: 1.5px dashed currentColor; border-radius: 50%; }
.fk-pubstatus--internal { color: var(--fk-text-secondary); }
.fk-pubstatus--internal::before { border: 1.5px solid currentColor; transform: rotate(45deg); }

.fk-pagemeta { display: flex; flex-wrap: wrap; gap: var(--fk-space-3) var(--fk-space-6); color: var(--fk-text-tertiary); font-size: var(--fk-caption-size); }
.fk-pagemeta dt { text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--fk-footnote-size); }
.fk-pagemeta dd { color: var(--fk-text-secondary); }

.fk-masthead {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: var(--fk-space-5) var(--fk-space-6);
  padding: var(--fk-space-6) 0;
  border-top: var(--fk-hairline);
  border-bottom: var(--fk-hairline);
}
.fk-masthead > div { min-width: 0; }
.fk-masthead dt { margin-bottom: var(--fk-space-1); }
.fk-masthead dd { color: var(--fk-text-primary); overflow-wrap: anywhere; }

.fk-scoreline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: var(--fk-space-5);
  row-gap: var(--fk-space-3);
  align-items: baseline;
  padding: var(--fk-space-5) 0;
  border-top: var(--fk-hairline);
}
.fk-scoreline--head { border-top: var(--fk-rule); }
.fk-scoreline__name { grid-column: 1; }
.fk-scoreline__value {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  text-align: right;
  font-family: var(--fk-font-text);
  font-weight: var(--fk-weight-bold);
  font-variant-numeric: tabular-nums lining-nums;
  font-size: var(--fk-metric-size);
  line-height: 1;
  letter-spacing: var(--fk-metric-track);
  white-space: nowrap;
}
.fk-scoreline__value small { font-size: var(--fk-caption-size); font-weight: var(--fk-weight-regular); color: var(--fk-text-tertiary); }

.fk-scoreline__track {
  grid-column: 1;
  position: relative;
  height: 0.35rem;
  background: var(--fk-border);
  border-radius: var(--fk-radius-pill);
  overflow: hidden;
}
.fk-scoreline__track > i { background: var(--fk-data-1); }
.fk-scoreline__interp { grid-column: 1 / -1; color: var(--fk-text-secondary); }
.fk-scoreline__meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: var(--fk-space-2) var(--fk-space-5); }
.fk-scoreline__src { color: var(--fk-text-tertiary); }

.fk-threshold { max-width: var(--fk-measure); }
.fk-threshold__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--fk-space-1) var(--fk-space-4); margin-bottom: var(--fk-space-4); }
.fk-threshold__value { font-variant-numeric: tabular-nums; font-weight: var(--fk-weight-medium); color: var(--fk-text-primary); }
.fk-threshold__scale { position: relative; height: 0.5rem; background: var(--fk-border); border-radius: var(--fk-radius-pill); margin-top: var(--fk-space-6); }

.fk-threshold__scale::before,
.fk-threshold__scale::after {
  content: ""; position: absolute; top: -3px; bottom: -3px; width: 1px; background: var(--fk-border-strong);
}
.fk-threshold__scale::before { left: calc(var(--fk-t1, 50) * 1%); }
.fk-threshold__scale::after  { left: calc(var(--fk-t2, 80) * 1%); }

.fk-threshold__mark { position: absolute; top: -0.62rem; left: calc(var(--fk-pos, 0) * 1%); transform: translateX(-50%); width: 0; height: 0; border-left: 0.4rem solid transparent; border-right: 0.4rem solid transparent; border-top: 0.5rem solid var(--fk-text-primary); }
.fk-threshold__zones { display: flex; justify-content: space-between; margin-top: var(--fk-space-3); }
.fk-threshold__zones span { font-size: var(--fk-footnote-size); color: var(--fk-text-tertiary); text-transform: uppercase; letter-spacing: 0.06em; }
.fk-threshold__meaning { margin-top: var(--fk-space-4); color: var(--fk-text-secondary); }

.fk-checks { list-style: none; margin: 0; padding: 0; }

.fk-check {
  display: grid;
  grid-template-columns: 1.3rem minmax(0, 1fr) auto;
  align-items: baseline;
  gap: var(--fk-space-2) var(--fk-space-4);
  padding: var(--fk-space-3) 0;
  border-top: var(--fk-hairline);
}
.fk-check__marker { position: relative; width: 1.05em; height: 1.05em; align-self: center; flex: none; color: var(--fk-text-primary); }
.fk-check__name { color: var(--fk-text-primary); }
.fk-check__note { grid-column: 2 / -1; color: var(--fk-text-secondary); font-size: var(--fk-body-s-size); }
.fk-check__state { font-size: var(--fk-footnote-size); text-transform: uppercase; letter-spacing: 0.08em; color: var(--fk-text-tertiary); font-weight: var(--fk-weight-medium); white-space: nowrap; }

.fk-check--pass .fk-check__marker::after { content: ""; position: absolute; left: 0.32em; top: 0.02em; width: 0.34em; height: 0.66em; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); }

.fk-check--fail .fk-check__marker::before,
.fk-check--fail .fk-check__marker::after { content: ""; position: absolute; left: 0.48em; top: 0.05em; width: 2px; height: 0.95em; background: currentColor; }
.fk-check--fail .fk-check__marker::before { transform: rotate(45deg); }
.fk-check--fail .fk-check__marker::after  { transform: rotate(-45deg); }

.fk-check--warning .fk-check__marker::after { content: ""; position: absolute; left: 50%; top: 0.05em; transform: translateX(-50%); width: 0; height: 0; border-left: 0.5em solid transparent; border-right: 0.5em solid transparent; border-bottom: 0.85em solid transparent; border-bottom-color: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.fk-check--warning .fk-check__marker { color: var(--fk-text-secondary); }

.fk-check--untested .fk-check__marker::after { content: ""; position: absolute; left: 0.18em; top: 0.5em; width: 0.7em; height: 2px; background: currentColor; }
.fk-check--untested .fk-check__marker { color: var(--fk-text-tertiary); }

.fk-check--blocked .fk-check__marker::after { content: ""; position: absolute; inset: 0.08em; border: 1.5px dashed currentColor; border-radius: 1px; }
.fk-check--blocked .fk-check__marker { color: var(--fk-text-tertiary); }

.fk-scale--0 .fk-scale__track i { background: transparent; }

.fk-estimate { padding: var(--fk-space-5) 0; border-top: var(--fk-hairline); }
.fk-estimate__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--fk-space-3); }
.fk-estimate__label { color: var(--fk-text-tertiary); }
.fk-estimate__value { margin-top: var(--fk-space-2); }
.fk-estimate__basis { margin-top: var(--fk-space-2); color: var(--fk-text-tertiary); font-size: var(--fk-footnote-size); line-height: var(--fk-footnote-lh); max-width: var(--fk-measure); }

.fk-perspective { border-top: var(--fk-rule-accent); padding-top: var(--fk-space-6); max-width: var(--fk-measure-wide); }
.fk-perspective__label { margin-bottom: var(--fk-space-5); }
.fk-perspective__lead {
  font-family: var(--fk-font-display);
  font-weight: var(--fk-quote-weight);
  font-size: var(--fk-quote-size);
  line-height: var(--fk-quote-lh);
  letter-spacing: var(--fk-quote-track);
  text-wrap: balance;
  margin-bottom: var(--fk-space-5);
}
.fk-perspective__body > * + * { margin-top: var(--fk-flow); }

.fk-table--matrix :is(th, td).fk-col-self {
  border-inline: 1px solid var(--fk-border-strong);
  color: var(--fk-text-primary);
  font-weight: var(--fk-weight-medium);
}
.fk-table--matrix thead th.fk-col-self { color: var(--fk-text-primary); }
.fk-table--matrix tbody tr:last-child td.fk-col-self { border-bottom: 1px solid var(--fk-border-strong); }

.fk-signal { display: grid; grid-template-columns: minmax(7rem, 12rem) minmax(0, 1fr) auto; gap: var(--fk-space-3) var(--fk-space-4); align-items: center; }
.fk-signal + .fk-signal { margin-top: var(--fk-space-3); }
.fk-signal__term { color: var(--fk-text-primary); }

.fk-signal__track { height: 0.75rem; background: var(--fk-border); border-radius: var(--fk-radius-sm); overflow: hidden; }

.fk-signal__bar { background: var(--fk-data-1); }
.fk-signal__note { font-size: var(--fk-footnote-size); color: var(--fk-text-tertiary); white-space: nowrap; }

@media (max-width: 560px) {
  .fk-signal { grid-template-columns: 1fr auto; }
  .fk-signal__track { grid-column: 1 / -1; order: 3; }
}
