@font-face {
  font-family: "IBM Plex Sans";
  src: url("assets/plex-sans-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans";
  src: url("assets/plex-sans-semibold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
:root {
  color-scheme: light;
  --font: "IBM Plex Sans", system-ui, sans-serif;
  --font-subtle: 12px;
  --font-normal: 14px;
  --font-header: 16px;
  --ink: #202020;
  --muted: #686868;
  --strong: #111111;
  --canvas: #ffffff;
  --surface: #f6f6f6;
  --selected: #eeeeee;
  --line: #d8d8d8;
  --boundary: #888888;
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --hit: 36px;
  --control-face: 28px;
  --control-inset: calc((var(--hit) - var(--control-face)) / 2);
  --rule: 1px;
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-padding-top: 64px; }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font: 400 var(--font-normal)/1.5 var(--font);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; color: inherit; }
button, select, input { border-radius: 0; }
p, h1, h2, h3, h4, figure, blockquote, dl, dd { margin: 0; }
h1, h2, h3, h4, .ms-heading {
  color: var(--strong);
  font-size: var(--font-header);
  font-weight: 600;
  line-height: 1.5;
}
strong, b { font-weight: 600; }
.ms-normal { font-size: var(--font-normal); color: var(--ink); }
.ms-subtle, small { font-size: var(--font-subtle); color: var(--muted); }
code, kbd, pre { font: inherit; font-variant-numeric: tabular-nums; }
.ms-id, .ms-numeric { font-variant-numeric: tabular-nums; }
a { color: inherit; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
svg { flex-shrink: 0; }
button { cursor: pointer; }
button:disabled, input:disabled, textarea:disabled, select:disabled {
  cursor: not-allowed;
  color: var(--muted);
  background: var(--surface);
}
:focus-visible {
  outline: 2px solid var(--strong);
  outline-offset: 2px;
}
.ms-icon { width: 16px; height: 16px; vertical-align: middle; }
.ms-button {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: var(--hit);
  min-width: var(--hit);
  padding: 0 var(--space-2);
  border: 0;
  background: transparent;
  color: var(--ink);
  text-decoration: none;
  line-height: 1.5;
  white-space: nowrap;
}
.ms-button::before { content: ""; position: absolute; inset: var(--control-inset) 0; border: 1px solid var(--boundary); background: var(--canvas); z-index: -1; }
.ms-button:hover:not(:disabled)::before, .ms-button--hover::before { background: var(--surface); }
.ms-button--primary { color: var(--canvas); }
.ms-button--primary::before { background: var(--strong); border-color: var(--strong); }
.ms-button--primary:hover:not(:disabled)::before { background: var(--ink); }
.ms-button--quiet::before { border-color: transparent; background: transparent; }
.ms-button:disabled { background: transparent; }
.ms-button:disabled::before { background: var(--surface); border-color: var(--line); }
.ms-button[aria-busy=true] { cursor: progress; }
.ms-icon-button { width: var(--hit); padding: 0; }
.ms-icon-button::before { inset-inline: var(--control-inset); }
.ms-button:focus-visible { outline: none; }
.ms-button:focus-visible::before, .ms-button--focus::before { outline: 2px solid var(--strong); outline-offset: 2px; }
.ms-field { display: grid; gap: var(--space-1); min-width: 0; }
.ms-field label { display: block; }
.ms-input, .ms-textarea {
  min-width: 0;
  width: 100%;
  min-height: var(--hit);
  border: var(--rule) solid var(--boundary);
  background: var(--canvas);
  padding: var(--space-2);
  border-radius: 0;
}
.ms-textarea { resize: vertical; }
.ms-select-shell { position: relative; display: inline-grid; min-width: 0; max-width: 100%; }
.ms-select-shell::before { content: ""; position: absolute; inset: var(--control-inset) 0; border: 1px solid var(--boundary); background: var(--canvas); }
.ms-select { appearance: none; position: relative; min-width: 0; max-width: 100%; height: var(--hit); border: 0; background: transparent; padding: 0 28px 0 var(--space-2); cursor: pointer; }
.ms-select-shell > .ms-icon { position: absolute; right: var(--space-2); top: calc(50% - 8px); pointer-events: none; }
.ms-select:focus-visible { outline: none; }
.ms-select-shell:has(.ms-select:focus-visible)::before { outline: 2px solid var(--strong); outline-offset: 2px; }
.ms-select-shell:has(.ms-select:disabled)::before { background: var(--surface); border-color: var(--line); }
.ms-select:disabled { background: transparent; }
.ms-input::placeholder, .ms-textarea::placeholder { color: var(--muted); opacity: 1; }
[aria-invalid=true] { border-color: var(--strong); border-width: 2px; padding: 7px; }
.ms-field__help { display: flex; align-items: start; gap: var(--space-1); }
.ms-field__help .ms-icon { margin-top: 1px; }
.ms-check { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--hit); }
.ms-check input { accent-color: var(--strong); width: 16px; height: 16px; margin: 0; }
.ms-switch {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--hit);
  border: 0;
  padding: 0;
  background: transparent;
}
.ms-switch__track { width: 28px; height: 16px; border: 1px solid var(--boundary); padding: 2px; }
.ms-switch__track::after { content: ""; display: block; width: 10px; height: 10px; background: var(--muted); }
.ms-switch[aria-checked=true] .ms-switch__track { background: var(--strong); border-color: var(--strong); }
.ms-switch[aria-checked=true] .ms-switch__track::after { margin-left: auto; background: var(--canvas); }
.ms-tabs { display: inline-flex; flex-wrap: wrap; }
.ms-tabs .ms-button::before { border-color: var(--line); }
.ms-tabs .ms-button + .ms-button::before { border-left: 0; }
.ms-tabs [aria-pressed=true] { color: var(--canvas); }
.ms-tabs [aria-pressed=true]::before { background: var(--strong); border-color: var(--strong); }
.ms-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.ms-stack { display: grid; gap: var(--space-3); min-width: 0; align-content: start; }
.ms-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-2) var(--space-4); border-bottom: var(--rule) solid var(--line); }
.ms-divider { height: 1px; border: 0; background: var(--line); margin: 0; }
.ms-status { display: inline-flex; align-items: center; gap: var(--space-1); white-space: nowrap; }
.ms-status .ms-icon { width: 14px; height: 14px; }
.ms-status__circle { display: inline-block; width: 8px; height: 8px; border: 1px solid var(--muted); }
.ms-requirement {
  display: flex;
  align-items: start;
  gap: var(--space-3);
  text-align: left;
  padding: var(--space-3) var(--space-4);
  width: 100%;
  border: 0;
  border-bottom: var(--rule) solid var(--line);
  background: var(--canvas);
  line-height: 1.5;
}
.ms-requirement:hover, .ms-scope:hover { background: var(--surface); }
.ms-requirement.is-selected, .ms-scope.is-selected { background: var(--selected); }
.ms-requirement__body { display: grid; gap: var(--space-1); min-width: 0; flex: 1; }
.ms-requirement__meta { display: flex; flex-wrap: wrap; gap: var(--space-2); overflow-wrap: anywhere; }
.ms-requirement__state { margin-left: auto; flex-shrink: 0; }
.ms-scope { display: flex; align-items: center; gap: var(--space-2); width: 100%; text-align: left; min-height: var(--hit); border: 0; background: transparent; padding: var(--space-2) var(--space-3); }
.ms-scope--1 { padding-left: 28px; }
.ms-scope--2 { padding-left: 44px; }
.ms-scope--3 { padding-left: 60px; }
.ms-scope > span:first-of-type { min-width: 0; overflow-wrap: anywhere; }
.ms-scope__count { margin-left: auto; white-space: nowrap; }
.ms-path { display: flex; flex-wrap: wrap; gap: var(--space-1); font-size: var(--font-subtle); color: var(--muted); overflow-wrap: anywhere; }
.ms-path a { min-height: var(--hit); display: inline-flex; align-items: center; }
.ms-disclosure { border-bottom: var(--rule) solid var(--line); }
.ms-disclosure > summary { cursor: pointer; padding: var(--space-2) 0; min-height: var(--hit); }
.ms-disclosure__body { padding: var(--space-2) 0 var(--space-3); }
.ms-diff { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); border: var(--rule) solid var(--line); }
.ms-diff > div { padding: var(--space-3); min-width: 0; overflow-wrap: anywhere; display: grid; gap: var(--space-2); align-content: start; }
.ms-diff__before { background: var(--surface); border-right: var(--rule) solid var(--line); }
.ms-diff del { color: var(--muted); }
.ms-diff ins { text-decoration: none; }
.ms-activity, .ms-thread { list-style: none; margin: 0; padding: 0; }
.ms-activity li { display: grid; grid-template-columns: 56px minmax(0,1fr); gap: var(--space-3); padding: var(--space-2) 0; border-bottom: var(--rule) solid var(--line); }
.ms-activity li:last-child, .ms-thread li:last-child { border-bottom: 0; }
.ms-thread li { padding: var(--space-3) 0; border-bottom: var(--rule) solid var(--line); }
.ms-thread__by { justify-content: space-between; margin-bottom: var(--space-1); }
.ms-thread p { overflow-wrap: anywhere; }
.ms-empty { display: grid; gap: var(--space-2); padding: var(--space-4); justify-items: start; }
.ms-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); background: var(--surface); padding: var(--space-3) var(--space-4); border-bottom: var(--rule) solid var(--line); }
.ms-banner > span { display: flex; align-items: center; gap: var(--space-2); }
.ms-table-scroll { overflow-x: auto; max-width: 100%; }
.ms-table { border-collapse: collapse; width: 100%; text-align: left; }
.ms-table caption { text-align: left; padding-bottom: var(--space-2); }
.ms-table th { font-weight: 600; }
.ms-table td, .ms-table th { border-bottom: var(--rule) solid var(--line); padding: var(--space-2) var(--space-3); white-space: nowrap; }
.ms-metric { display: grid; gap: var(--space-1); }
.ms-metrics { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.ms-definition { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: var(--space-2) var(--space-3); }
.ms-definition dt { font-size: var(--font-subtle); color: var(--muted); }
.ms-definition dd { overflow-wrap: anywhere; }
.ms-code { background: var(--surface); border: var(--rule) solid var(--line); padding: var(--space-3); white-space: pre-wrap; overflow-wrap: anywhere; }
.ms-skeleton { height: 16px; width: 100%; background: var(--selected); }
.ms-skeleton--short { width: 60%; }
.ms-progress { appearance: none; height: 4px; width: 100%; border: 0; background: var(--line); display: block; }
.ms-progress::-webkit-progress-bar { background: var(--line); }
.ms-progress::-webkit-progress-value { background: var(--ink); }
.ms-progress::-moz-progress-bar { background: var(--ink); }
.ms-dialog { max-width: 560px; width: calc(100% - 32px); max-height: calc(100dvh - 32px); overflow: auto; border: 1px solid var(--boundary); padding: var(--space-4); color: var(--ink); background: var(--canvas); }
.ms-dialog::backdrop { background: rgb(0 0 0 / 24%); }
.ms-dialog__heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); }
.ms-dialog__actions { display: flex; justify-content: end; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
.ms-drawer { position: fixed; inset: 0 0 0 auto; height: 100dvh; max-height: 100dvh; margin: 0; width: min(360px,100%); max-width: 100%; }
.ms-skip { position: fixed; left: var(--space-2); top: -100px; z-index: 100; background: var(--canvas); padding: var(--space-2); }
.ms-skip:focus { top: var(--space-2); }
@media (pointer: coarse), (max-width: 719px) {
  :root { --hit: 44px; }
  .ms-input, .ms-textarea, .ms-select { font-size: var(--font-header); color: var(--strong); }
}
@media (max-width: 719px) {
  .ms-diff { grid-template-columns: minmax(0,1fr); }
  .ms-diff__before { border-right: 0; border-bottom: 1px solid var(--line); }
  .ms-requirement { flex-wrap: wrap; gap: var(--space-2); }
  .ms-requirement__body { flex-basis: 100%; }
  .ms-requirement__state { margin-left: 0; }
  .ms-definition { grid-template-columns: 88px minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
