*, *::before, *::after { box-sizing: border-box; }

.trs-ui {
  margin: 0;
  background: var(--trs-cream);
  color: var(--trs-text);
  font-family: var(--trs-font-body);
  font-size: var(--trs-font-size-md);
  line-height: var(--trs-line-body);
  -webkit-font-smoothing: antialiased;
}

.trs-shell {
  width: min(100%, var(--trs-content-max));
  margin: 0 auto;
  padding: var(--trs-space-7) var(--trs-page-padding) var(--trs-space-9);
}

.trs-tool-header {
  min-height: var(--trs-header-height);
  padding: 8px var(--trs-page-padding);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--trs-space-4);
  background: var(--trs-ink);
  color: var(--trs-on-dark);
  border-bottom: 1px solid var(--trs-border-on-dark);
}

.trs-tool-header__identity,
.trs-tool-header__actions {
  display: flex;
  align-items: center;
  gap: var(--trs-space-3);
}

.trs-tool-header__logo { display: block; width: auto; height: 26px; filter: brightness(0) invert(1); }
.trs-tool-header__divider { width: 1px; height: 20px; background: var(--trs-border-on-dark); }
.trs-tool-header__copy { display: grid; }
.trs-tool-header__title { font-size: var(--trs-font-size-sm); font-weight: 650; }
.trs-tool-header__meta { color: var(--trs-on-dark-muted); font-size: var(--trs-font-size-xs); }

trs-tool-header,
trs-action-bar,
trs-tool-footer { display: block; }

.trs-shell-header {
  width: 100%;
  min-height: var(--trs-header-height) !important;
  padding: 8px var(--trs-page-padding) !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: var(--trs-space-4) !important;
  flex: 0 0 auto;
  background: var(--trs-ink) !important;
  color: var(--trs-on-dark) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--trs-border-on-dark) !important;
  box-shadow: none !important;
}

.trs-shell-header__identity,
.trs-shell-header__actions {
  display: flex !important;
  align-items: center !important;
  gap: var(--trs-space-3) !important;
}

.trs-shell-header__identity { min-width: 0; }
.trs-shell-header__actions { flex: 0 0 auto; }

.trs-shell-header__logo {
  display: block;
  width: auto !important;
  height: 26px !important;
  max-width: 152px;
  filter: brightness(0) invert(1);
}

.trs-shell-header__divider {
  width: 1px !important;
  height: 20px !important;
  background: var(--trs-border-on-dark) !important;
}

.trs-shell-header__title {
  min-width: 0;
  color: var(--trs-on-dark) !important;
  font-size: var(--trs-font-size-sm) !important;
  font-weight: 650 !important;
  line-height: 1.2;
}

.trs-shell-header__meta {
  color: var(--trs-on-dark-muted) !important;
  font-size: var(--trs-font-size-xs) !important;
  line-height: 1.35;
}

.trs-shell-header :where(.hdr-back, .back-link, .toolkit-back, .hdr-home, .header-reset) {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 7px 12px !important;
  border: 1px solid var(--trs-border-on-dark) !important;
  border-radius: var(--trs-radius-md) !important;
  background: transparent !important;
  color: var(--trs-on-dark-mid) !important;
  font: 400 var(--trs-font-size-xs)/1 var(--trs-font-mono) !important;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

.trs-shell-header :where(.hdr-reset, .btn-reset) {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px !important;
  border: 1px solid transparent !important;
  border-radius: var(--trs-radius-md) !important;
  background: transparent !important;
  color: var(--trs-on-dark-muted) !important;
  font-size: var(--trs-font-size-xs) !important;
  font-weight: 500 !important;
}

.trs-shell-header :where(.hdr-back, .back-link, .toolkit-back, .hdr-home, .header-reset, .hdr-reset, .btn-reset):hover {
  border-color: rgba(244, 240, 232, 0.42) !important;
  color: var(--trs-on-dark) !important;
}

.trs-shell-header [hidden],
.trs-shell-header [style*="display:none"],
.trs-shell-header [style*="display: none"] { display: none !important; }

.trs-shell-action-bar {
  width: 100%;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: var(--trs-space-4) !important;
  flex: 0 0 auto;
}

.trs-shell-footer {
  width: 100%;
  min-height: 38px;
  padding: 8px var(--trs-page-padding) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: var(--trs-space-3) !important;
  flex: 0 0 auto;
  border-top: 1px solid var(--trs-border-subtle) !important;
  background: var(--trs-ink) !important;
  color: var(--trs-on-dark-muted) !important;
  font-size: var(--trs-font-size-xs) !important;
}

.trs-shell-footer :where(a, span, div) {
  color: inherit !important;
  font-size: inherit !important;
  text-decoration: none;
}

.trs-icon {
  --trs-icon: none;
  width: 1em;
  height: 1em;
  display: inline-block;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: var(--trs-icon) center / contain no-repeat;
  mask: var(--trs-icon) center / contain no-repeat;
}

.trs-icon[data-icon="arrow-left"] { --trs-icon: url('/toolkit-system/icons/arrow-left.svg'); }
.trs-icon[data-icon="arrow-right"] { --trs-icon: url('/toolkit-system/icons/arrow-right.svg'); }
.trs-icon[data-icon="check"] { --trs-icon: url('/toolkit-system/icons/check.svg'); }
.trs-icon[data-icon="chevron-down"] { --trs-icon: url('/toolkit-system/icons/chevron-down.svg'); }
.trs-icon[data-icon="chevron-up"] { --trs-icon: url('/toolkit-system/icons/chevron-up.svg'); }
.trs-icon[data-icon="download"] { --trs-icon: url('/toolkit-system/icons/download.svg'); }
.trs-icon[data-icon="external-link"] { --trs-icon: url('/toolkit-system/icons/external-link.svg'); }
.trs-icon[data-icon="home"] { --trs-icon: url('/toolkit-system/icons/home.svg'); }
.trs-icon[data-icon="plus"] { --trs-icon: url('/toolkit-system/icons/plus.svg'); }
.trs-icon[data-icon="rotate-ccw"] { --trs-icon: url('/toolkit-system/icons/rotate-ccw.svg'); }
.trs-icon[data-icon="x"] { --trs-icon: url('/toolkit-system/icons/x.svg'); }

.trs-icon-control {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  gap: 0.45em;
}

.trs-icon-only { min-width: 36px; min-height: 36px; padding: 0 !important; }

/* Accessible contrast variants for small interface text. */
.site-nav .nav-active,
.site-nav .nav-cta { color: var(--trs-red-on-dark) !important; }
.tool-card .tool-num { color: var(--trs-red-dark) !important; }
.tools-body > p,
.tools-body > p a { color: var(--trs-text-mid) !important; opacity: 1 !important; }

body.trs-legacy-tool .btn-sm { color: var(--trs-on-dark) !important; }
body.trs-legacy-tool #ref-bar { color: #875000 !important; }
body.trs-legacy-tool .pool-label,
body.trs-legacy-tool .intro-chip,
body.trs-legacy-tool .link-action { color: var(--trs-text-mid) !important; }
body.trs-legacy-tool .phase-btn.active > .n { color: var(--trs-red-on-dark) !important; }
body.trs-legacy-tool .count-badge { color: var(--trs-success-strong) !important; }

.trs-kicker,
.trs-label {
  font-family: var(--trs-font-mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.trs-kicker { color: var(--trs-red); font-size: var(--trs-font-size-xs); }
.trs-label { color: var(--trs-text-muted); font-size: 0.625rem; }

.trs-page-title {
  margin: var(--trs-space-3) 0 var(--trs-space-4);
  max-width: 18ch;
  color: var(--trs-ink);
  font-size: var(--trs-font-size-2xl);
  font-weight: 800;
  line-height: var(--trs-line-tight);
  letter-spacing: 0;
}

.trs-lead {
  max-width: var(--trs-reading-max);
  color: var(--trs-text-mid);
  font-size: var(--trs-font-size-lg);
}

.trs-card {
  background: var(--trs-paper);
  border: 1px solid var(--trs-border);
  border-radius: var(--trs-radius-lg);
  box-shadow: var(--trs-shadow-sm);
}

.trs-card--flat { box-shadow: none; }
.trs-card--dark { background: var(--trs-ink); color: var(--trs-on-dark); border-color: var(--trs-ink); }
.trs-card__body { padding: var(--trs-space-5); }
.trs-card__title { margin: 0 0 var(--trs-space-2); color: inherit; font-size: var(--trs-font-size-lg); line-height: 1.2; }
.trs-card__copy { margin: 0; color: var(--trs-text-mid); }
.trs-card--dark .trs-card__copy { color: var(--trs-on-dark-mid); }

.trs-button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--trs-space-2);
  padding: 9px 16px;
  border: 1px solid transparent;
  border-radius: var(--trs-radius-md);
  font: 650 var(--trs-font-size-sm)/1 var(--trs-font-body);
  text-decoration: none;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease, transform 100ms ease;
}

.trs-button:focus-visible,
.trs-input:focus-visible,
.trs-select:focus-visible,
.trs-textarea:focus-visible { outline: none; box-shadow: var(--trs-focus); }
.trs-button:active { transform: translateY(1px); }
.trs-button:disabled { cursor: not-allowed; opacity: 0.45; }
.trs-button--primary { background: var(--trs-ink); color: var(--trs-on-dark); border-color: var(--trs-ink); }
.trs-button--primary:hover { background: #000; border-color: #000; }
.trs-button--secondary { background: var(--trs-paper); color: var(--trs-ink); border-color: var(--trs-border); }
.trs-button--secondary:hover { border-color: var(--trs-ink); }
.trs-button--accent { background: var(--trs-red); color: #fff; border-color: var(--trs-red); }
.trs-button--accent:hover { background: var(--trs-red-dark); border-color: var(--trs-red-dark); }
.trs-button--ghost { background: transparent; color: inherit; border-color: transparent; }
.trs-button--ghost:hover { background: rgba(20, 16, 11, 0.06); }
.trs-button--danger { background: transparent; color: var(--trs-error); border-color: rgba(180, 35, 53, 0.28); }
.trs-button--small { min-height: 34px; padding: 7px 12px; font-size: var(--trs-font-size-xs); }
.trs-button--icon { width: 42px; padding: 0; }

.trs-field { display: grid; gap: var(--trs-space-2); }
.trs-input,
.trs-select,
.trs-textarea {
  width: 100%;
  border: 1px solid var(--trs-border);
  border-radius: var(--trs-radius-md);
  background: var(--trs-paper);
  color: var(--trs-text);
  padding: 11px 12px;
  font: inherit;
}
.trs-textarea { min-height: 96px; resize: vertical; }
.trs-input::placeholder,
.trs-textarea::placeholder { color: #918c84; }
.trs-help { color: var(--trs-text-muted); font-size: var(--trs-font-size-xs); }

.trs-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: var(--trs-radius-sm);
  font: 400 0.625rem/1 var(--trs-font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.trs-status--pending { background: rgba(20, 16, 11, 0.06); color: var(--trs-text-muted); }
.trs-status--progress { background: var(--trs-warning-soft); color: #765016; }
.trs-status--complete { background: var(--trs-success-soft); color: var(--trs-success); }
.trs-status--error { background: var(--trs-error-soft); color: var(--trs-error); }

.trs-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--trs-space-4);
  padding-top: var(--trs-space-5);
  border-top: 1px solid var(--trs-border-subtle);
}
.trs-action-bar__group { display: flex; align-items: center; gap: var(--trs-space-2); flex-wrap: wrap; }

.trs-stepper {
  display: grid;
  grid-template-columns: repeat(var(--trs-step-count, 3), minmax(0, 1fr));
  border: 1px solid var(--trs-border);
  border-radius: var(--trs-radius-md);
  overflow: hidden;
  background: var(--trs-paper);
}
.trs-step {
  min-height: 64px;
  padding: 12px 14px;
  display: grid;
  align-content: center;
  gap: 2px;
  border-right: 1px solid var(--trs-border);
  color: var(--trs-text-muted);
}
.trs-step:last-child { border-right: 0; }
.trs-step.is-active { background: var(--trs-ink); color: var(--trs-on-dark); }
.trs-step.is-complete { box-shadow: inset 0 3px 0 var(--trs-success); }
.trs-step__number { font: 400 0.625rem/1 var(--trs-font-mono); color: var(--trs-red); letter-spacing: 0.1em; }
.trs-step__label { font-size: var(--trs-font-size-sm); font-weight: 650; }

.trs-notice {
  padding: var(--trs-space-4);
  display: grid;
  grid-template-columns: 4px minmax(0, 1fr);
  gap: var(--trs-space-3);
  background: var(--trs-paper);
  border: 1px solid var(--trs-border);
  border-radius: var(--trs-radius-md);
}
.trs-notice::before { content: ""; background: var(--trs-info); border-radius: var(--trs-radius-xs); }
.trs-notice--success::before { background: var(--trs-success); }
.trs-notice--warning::before { background: var(--trs-warning); }
.trs-notice--error::before { background: var(--trs-error); }

.trs-table { width: 100%; border-collapse: collapse; background: var(--trs-paper); }
.trs-table th {
  padding: 11px 12px;
  background: var(--trs-ink);
  color: var(--trs-on-dark);
  font: 400 0.625rem/1.2 var(--trs-font-mono);
  letter-spacing: 0.1em;
  text-align: left;
  text-transform: uppercase;
}
.trs-table td { padding: 14px 12px; border-bottom: 1px solid var(--trs-border); vertical-align: top; }

.trs-report-footer {
  margin-top: var(--trs-space-7);
  padding-top: var(--trs-space-4);
  border-top: 1px solid var(--trs-border);
  color: var(--trs-text-muted);
  font-size: 0.6875rem;
  line-height: 1.55;
}

@media (max-width: 720px) {
  .trs-tool-header { align-items: flex-start; }
  .trs-tool-header__title,
  .trs-tool-header__divider,
  .trs-tool-header__copy { display: none; }
  .trs-tool-header .trs-button { width: auto; }
  .trs-action-bar { align-items: stretch; flex-direction: column; }
  .trs-action-bar__group { display: grid; grid-template-columns: 1fr; }
  .trs-button { width: 100%; }
  .trs-stepper { grid-template-columns: 1fr; }
  .trs-step { min-height: 52px; border-right: 0; border-bottom: 1px solid var(--trs-border); }
  .trs-step:last-child { border-bottom: 0; }

  .trs-shell-header {
    min-height: var(--trs-header-height) !important;
    padding-inline: 14px !important;
    flex-direction: row !important;
    overflow: hidden;
  }

  .trs-shell-header__meta,
  .trs-shell-header__divider { display: none !important; }
  .trs-shell-header__identity { min-width: 0; }
  .trs-shell-header__identity {
    width: auto !important;
    flex: 1 1 auto !important;
  }
  .trs-shell-header__actions {
    width: auto !important;
    flex: 0 0 auto !important;
  }
  .trs-shell-header > .trs-shell-header__title {
    max-width: 38vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .trs-shell-header__actions { margin-left: auto; }
  .trs-shell-header :where(.hdr-reset, .btn-reset) { display: none !important; }
  .trs-shell-action-bar { align-items: stretch !important; flex-direction: column; }
  .trs-shell-footer { align-items: flex-start !important; flex-direction: column; }
}
