/* Talstrom Designsystem v1 · Schicht 0.5: Reset und Atome. */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: none;
}

.ts-sheet {
  min-width: 0;
  background: var(--ts-paper);
  color: var(--ts-text);
  font-family: var(--ts-face-text);
  font-size: var(--ts-font-body);
  line-height: var(--ts-leading-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.ts-a-box { display: block; min-width: 0; }
.ts-a-box--inline { display: inline-block; }
.ts-a-shell { width: min(100% - 64px, var(--ts-page-width)); margin-inline: auto; }
.ts-a-stack { display: flex; min-width: 0; flex-direction: column; }
.ts-a-stack--1 { gap: var(--ts-space-1); }
.ts-a-stack--2 { gap: var(--ts-space-2); }
.ts-a-stack--3 { gap: var(--ts-space-3); }
.ts-a-stack--4 { gap: var(--ts-space-4); }
.ts-a-stack--5 { gap: var(--ts-space-5); }
.ts-a-stack--6 { gap: var(--ts-space-6); }
.ts-a-stack--7 { gap: var(--ts-space-7); }
.ts-a-row { display: flex; min-width: 0; align-items: center; }
.ts-a-row--top { align-items: flex-start; }
.ts-a-row--base { align-items: baseline; }
.ts-a-row--end { align-items: flex-end; }
.ts-a-row--spread { justify-content: space-between; }
.ts-a-row--wrap { flex-wrap: wrap; }
.ts-a-row--1 { gap: var(--ts-space-1); }
.ts-a-row--2 { gap: var(--ts-space-2); }
.ts-a-row--3 { gap: var(--ts-space-3); }
.ts-a-row--4 { gap: var(--ts-space-4); }
.ts-a-row--5 { gap: var(--ts-space-5); }
.ts-a-row--6 { gap: var(--ts-space-6); }
.ts-a-grid { display: grid; min-width: 0; gap: var(--ts-space-4); }

.ts-a-text { max-width: var(--ts-measure); color: var(--ts-text); hyphens: auto; }
.ts-a-text--display,
.ts-a-text--title,
.ts-a-text--section {
  color: var(--ts-ink);
  font-family: var(--ts-face-display);
  font-weight: 600;
  line-height: var(--ts-leading-compact);
  text-wrap: balance;
  overflow-wrap: break-word;
}
.ts-a-text--display { font-size: var(--ts-font-h1); letter-spacing: -0.02em; }
.ts-a-text--title { font-size: var(--ts-font-h2); letter-spacing: -0.015em; }
.ts-a-text--section { font-size: var(--ts-font-h3); letter-spacing: -0.01em; }
.ts-a-text--lead { font-size: var(--ts-font-lead); line-height: 1.42; }
.ts-a-text--small { font-size: var(--ts-font-small); line-height: 1.5; color: var(--ts-muted); }
.ts-a-text--label {
  font-family: var(--ts-face-data);
  font-size: var(--ts-font-min);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: var(--ts-track-label);
  text-transform: uppercase;
  color: var(--ts-muted);
}
.ts-a-text--inline { display: inline; }
.ts-a-text--strong { font-weight: 600; color: var(--ts-ink); }
.ts-a-text--quiet { color: var(--ts-faint); }

.ts-a-num {
  display: inline-flex;
  align-items: baseline;
  color: var(--ts-ink);
  font-family: var(--ts-face-data);
  font-weight: 500;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: var(--ts-track-data);
  white-space: nowrap;
}
.ts-a-num--xl { font-size: var(--ts-font-metric); line-height: 0.9; }
.ts-a-num--l { font-size: var(--ts-font-h2); line-height: 1; }
.ts-a-num--m { font-size: var(--ts-font-lead); }
.ts-a-num--s { font-size: var(--ts-font-body); }
.ts-a-num--rise { color: var(--ts-ok); }
.ts-a-num--fall { color: var(--ts-alarm); }
.ts-a-num--lead { color: var(--ts-lead-ink); }
.ts-a-num__unit {
  margin-left: 0.36em;
  color: var(--ts-muted);
  font-family: var(--ts-face-text);
  font-size: clamp(var(--ts-font-min), 0.45em, var(--ts-font-lead));
  font-weight: 400;
  letter-spacing: 0;
}

.ts-a-line { width: 100%; border-top: var(--ts-line-hair) solid var(--ts-line); }
.ts-a-line--strong { border-top-width: var(--ts-line-heavy); border-color: var(--ts-line-strong); }
.ts-a-line--signal { border-top-width: var(--ts-line-signal); border-color: var(--ts-signal); }
.ts-a-line--v { align-self: stretch; width: 0; border-top: 0; border-left: var(--ts-line-hair) solid var(--ts-line); }

.ts-a-field {
  display: inline-block;
  align-self: flex-start;
  padding: var(--ts-space-1) var(--ts-space-2);
  font-family: var(--ts-face-data);
  font-size: var(--ts-font-min);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: var(--ts-track-label);
  text-transform: uppercase;
}
.ts-a-field--signal { background: var(--ts-signal); color: var(--ts-ink); }
.ts-a-field--ink { background: var(--ts-ink); color: var(--ts-paper); }
.ts-a-field--lead { background: var(--ts-lead-ink); color: var(--ts-paper); }
.ts-a-field--outline { border: var(--ts-line-hair) solid var(--ts-ink); color: var(--ts-ink); }
.ts-a-field--run {
  display: inline;
  padding-inline: 0.12em;
  font: inherit;
  letter-spacing: inherit;
  text-transform: none;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.ts-a-mark { display: inline-block; width: 0.62em; height: 1em; vertical-align: -0.12em; }
.ts-a-mark__svg { display: block; width: 100%; height: 100%; fill: currentColor; }

.ts-a-table { width: 100%; border-collapse: collapse; border-spacing: 0; }
.ts-a-th {
  padding: var(--ts-space-2) var(--ts-space-3) var(--ts-space-2) 0;
  border-bottom: var(--ts-line-heavy) solid var(--ts-ink);
  color: var(--ts-ink);
  font-family: var(--ts-face-data);
  font-size: var(--ts-font-min);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.035em;
  text-align: left;
  vertical-align: bottom;
}
.ts-a-td {
  padding: var(--ts-space-2) var(--ts-space-3) var(--ts-space-2) 0;
  border-bottom: var(--ts-line-hair) solid var(--ts-line);
  color: var(--ts-text);
  font-size: var(--ts-font-small);
  line-height: 1.4;
  text-align: left;
  vertical-align: baseline;
}
.ts-a-th--num,
.ts-a-td--num { padding-right: 0; font-family: var(--ts-face-data); font-variant-numeric: tabular-nums; text-align: right; }
.ts-a-td--num { color: var(--ts-ink); font-weight: 500; }
.ts-a-td--lead { background: var(--ts-paper-soft); }

.ts-a-btn {
  padding: var(--ts-space-2) var(--ts-space-3);
  border: var(--ts-line-hair) solid var(--ts-ink);
  color: var(--ts-ink);
  cursor: pointer;
  font-family: var(--ts-face-data);
  font-size: var(--ts-font-min);
  font-weight: 500;
}
.ts-a-btn--on { background: var(--ts-ink); color: var(--ts-paper); }
.ts-a-link { color: var(--ts-lead-ink); font-weight: 600; border-bottom: var(--ts-line-hair) solid currentColor; }
.ts-a-btn:focus-visible,
.ts-a-link:focus-visible { outline: var(--ts-line-heavy) solid var(--ts-lead-ink); outline-offset: 3px; }

@media (max-width: 48rem) {
  .ts-a-shell { width: min(100% - 36px, var(--ts-page-width)); }
}

@media (max-width: 32rem) {
  .ts-a-shell { width: min(100% - 28px, var(--ts-page-width)); }
  .ts-a-row--mobile-stack { align-items: stretch; flex-direction: column; }
  .ts-a-grid--mobile-one { grid-template-columns: minmax(0, 1fr) !important; }
}
