/* Fernando Kylas Brand System. layout.css
   Rules only: the reasoning is in the repository, at lab/publication-engine/platform/design-system/css/layout.css.
   Nothing else is altered. No value, selector or declaration differs
   from source. See publications/brand-system/build/assemble.py. */
.fk-report {
  max-width: var(--fk-shell-max);
  margin-inline: auto;
  padding-inline: var(--fk-gutter);
  padding-bottom: var(--fk-space-10);
}

.fk-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: var(--fk-space-3) 0;
  margin-bottom: var(--fk-space-6);
  background: color-mix(in srgb, var(--fk-surface) 88%, transparent);
  backdrop-filter: saturate(1.1) blur(8px);
  border-bottom: var(--fk-hairline);
}

.fk-topbar__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--fk-space-2) var(--fk-space-4);
  flex-wrap: wrap;
  width: 100%;
  padding-block: 0;
}
.fk-topbar__brand {
  display: flex;
  align-items: baseline;
  gap: var(--fk-space-3);
  min-width: 0;
}

.fk-topbar__brand > .fk-caption {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fk-topbar__nav,
.fk-topbar__controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--fk-space-2);

  flex: 0 1 auto;
  min-width: 0;
}

.fk-topbar__nav a:not(.fk-btn),
.fk-topbar__controls a:not(.fk-btn) {
  font-size: var(--fk-footnote-size);
  white-space: nowrap;
}

.fk-topbar__nav > .fk-themetoggle {
  margin-inline-start: var(--fk-space-3);
}
.fk-topbar__nav > .fk-themetoggle::before {
  content: "";
  position: absolute;
  inset-inline-start: calc(var(--fk-space-2) * -1);
  inset-block: var(--fk-space-2);
  border-inline-start: var(--fk-hairline);
  pointer-events: none;
}

@media (max-width: 30rem) {
  .fk-topbar__nav > .fk-themetoggle { margin-inline-start: 0; }
  .fk-topbar__nav > .fk-themetoggle::before { content: none; }
}

.fk-cover {
  display: flex;
  flex-direction: column;
  min-height: min(88vh, 60rem);
  padding-block: var(--fk-space-10) var(--fk-space-8);
}
.fk-cover__eyebrow { margin-bottom: var(--fk-space-8); }
.fk-cover__title {

  font-family: var(--fk-font-display);
  font-weight: var(--fk-display-weight);
  font-size: var(--fk-display-size);
  line-height: var(--fk-display-lh);
  letter-spacing: var(--fk-display-track);
  max-width: 16ch;
  text-wrap: balance;
}
.fk-cover__subtitle { margin-top: var(--fk-space-6); max-width: var(--fk-measure-lead); }
.fk-cover__spacer { flex: 1 1 auto; min-height: var(--fk-space-9); }
.fk-cover__meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: var(--fk-space-5) var(--fk-space-6);
  padding-top: var(--fk-space-6);
  border-top: var(--fk-hairline);
}
.fk-cover__meta dt { margin-bottom: var(--fk-space-1); }
.fk-cover__meta dd { color: var(--fk-text-primary); }

.fk-signature { margin-top: var(--fk-space-6); }
.fk-signature__rule {
  width: var(--fk-space-9);
  height: 0;
  border-top: var(--fk-rule-accent);
  margin-bottom: var(--fk-space-5);
}
.fk-signature__name {
  font-family: var(--fk-font-text);
  font-weight: var(--fk-weight-medium);
  font-size: var(--fk-label-size);
  letter-spacing: var(--fk-label-track);
  text-transform: uppercase;
  color: var(--fk-text-primary);
}

.fk-contents { padding-block: var(--fk-space-9); }
.fk-toc {
  list-style: none;
  padding: 0;
  max-width: var(--fk-measure-structural);
  margin-top: var(--fk-space-7);
}
.fk-toc__item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  align-items: baseline;
  column-gap: var(--fk-space-4);
  margin: 0;
}
.fk-toc__item + .fk-toc__item { border-top: var(--fk-hairline); }
.fk-toc__num {
  padding-block: var(--fk-space-4);
  font-variant-numeric: tabular-nums;
  color: var(--fk-text-tertiary);
  font-size: var(--fk-body-s-size);
}

.fk-toc__link {
  display: block;
  padding-block: var(--fk-space-4);
  font-weight: var(--fk-weight-medium);
  color: var(--fk-text-primary);
  text-decoration: none;
  text-underline-offset: 3px;
}

.fk-toc__link:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.fk-toc__link:focus-visible { text-decoration: underline; }

.fk-toc__link[aria-current] { text-decoration: underline; text-decoration-color: var(--fk-accent); text-decoration-thickness: 2px; }

.fk-toc__label { font-weight: var(--fk-weight-medium); }

.fk-toc__page {
  display: none;
  padding-block: var(--fk-space-4);
  font-variant-numeric: tabular-nums;
  color: var(--fk-text-tertiary);
  font-size: var(--fk-body-s-size);
}

.fk-toc__part {
  margin-top: var(--fk-space-6);
  padding-top: var(--fk-space-4);
}
.fk-toc__part:first-child { margin-top: 0; }

.fk-section { padding-block: var(--fk-section-gap); }
.fk-section + .fk-section { border-top: var(--fk-hairline); }
.fk-section__head { margin-bottom: var(--fk-space-8); }
.fk-section__num {
  display: block;
  font-variant-numeric: tabular-nums;
  color: var(--fk-text-tertiary);
  margin-bottom: var(--fk-space-3);
}
.fk-section__eyebrow { margin-bottom: var(--fk-space-3); }
.fk-section__intro { margin-top: var(--fk-space-5); }
.fk-section__body > * + * { margin-top: var(--fk-flow-loose); }

.fk-section--exec .fk-section__intro { max-width: var(--fk-measure-wide); }

.fk-part {
  padding-block: var(--fk-space-9) var(--fk-space-7);
  border-top: var(--fk-rule);
}
.fk-part__label { margin-bottom: var(--fk-space-4); }
.fk-part__title { max-width: 20ch; }
.fk-part__desc { margin-top: var(--fk-space-5); max-width: var(--fk-measure); }

.fk-measure       { max-width: var(--fk-measure); }
.fk-measure-wide  { max-width: var(--fk-measure-wide); }
.fk-measure-lead  { max-width: var(--fk-measure-lead); }

.fk-split {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--fk-col-gap);
  align-items: start;
}
.fk-split > * { min-width: 0; }
.fk-split__aside {
  padding-left: var(--fk-space-6);
  border-left: var(--fk-hairline);
}

.fk-duo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--fk-col-gap);
  align-items: start;
}
.fk-duo > * { min-width: 0; }

@media (max-width: 768px) {
  .fk-split, .fk-duo { grid-template-columns: 1fr; }
  .fk-split__aside {
    padding-left: 0;
    border-left: 0;
    padding-top: var(--fk-space-6);
    border-top: var(--fk-hairline);
  }
}

.fk-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(var(--fk-grid-min, 15rem), 100%), 1fr));
  gap: var(--fk-space-5);
}
.fk-grid--2 { --fk-grid-min: 20rem; }
.fk-grid--3 { --fk-grid-min: 15rem; }
.fk-grid--4 { --fk-grid-min: 11rem; }

.fk-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--fk-space-2) var(--fk-space-3);
}

.fk-stack      > * + * { margin-top: var(--fk-flow); }
.fk-stack-sm   > * + * { margin-top: var(--fk-flow-tight); }
.fk-stack-lg   > * + * { margin-top: var(--fk-flow-loose); }

.fk-closing {
  padding-block: var(--fk-space-10);
  text-align: left;
}
.fk-closing__statement { max-width: 22ch; }

.fk-references {
  counter-reset: fk-ref;
  list-style: none;
  padding: 0;
  max-width: var(--fk-measure-structural);
}
.fk-references > li {
  counter-increment: fk-ref;
  position: relative;
  margin: 0;
  padding: var(--fk-space-4) 0 var(--fk-space-4) calc(2.5rem + var(--fk-space-4));
  border-top: var(--fk-hairline);
  overflow-wrap: break-word;
}
.fk-references > li::before {
  content: counter(fk-ref, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: var(--fk-space-4);
  width: 2.5rem;
  font-size: inherit;
  line-height: inherit;
  font-variant-numeric: tabular-nums;
  color: var(--fk-text-tertiary);
}

.fk-references__meta {
  display: block;
  margin-top: var(--fk-space-1);
}

.fk-references__meta a,
.fk-references a[href^="http"] { overflow-wrap: anywhere; }

.fk-report-footer {
  margin-top: var(--fk-space-10);
  padding-top: var(--fk-space-6);
  border-top: var(--fk-hairline);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--fk-space-4);
}

.fk-colophon {
  margin-top: var(--fk-space-10);
  padding-top: var(--fk-space-6);
  border-top: var(--fk-hairline);
  max-width: var(--fk-measure-structural);
}
.fk-colophon__title { margin-bottom: var(--fk-space-4); }
.fk-colophon__body > * + * { margin-top: var(--fk-flow); }

.fk-pubfooter {
  margin-top: var(--fk-space-10);
  padding-top: var(--fk-space-7);
  padding-bottom: var(--fk-space-8);
  border-top: var(--fk-rule);
}
.fk-pubfooter__row {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: var(--fk-space-6) var(--fk-col-gap);
  align-items: start;
}
.fk-pubfooter__about { max-width: var(--fk-measure); }
.fk-pubfooter__what { margin-top: var(--fk-space-3); color: var(--fk-text-secondary); }
.fk-pubfooter__nav > .fk-label { display: block; margin-bottom: var(--fk-space-3); }
.fk-pubfooter__nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: none;
  display: flex;
  flex-direction: column;
  gap: var(--fk-space-2);
}
.fk-pubfooter__nav li { margin: 0; }

.fk-pubfooter__slot:not(:empty) {
  margin-top: var(--fk-space-6);
  padding-top: var(--fk-space-4);
  border-top: var(--fk-hairline);
}
.fk-pubfooter__legal {
  margin-top: var(--fk-space-7);
  padding-top: var(--fk-space-4);
  border-top: var(--fk-hairline);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--fk-space-2) var(--fk-space-5);
}
@media (max-width: 768px) {
  .fk-pubfooter__row { grid-template-columns: minmax(0, 1fr); }
}
