@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/IBMPlexSans-Regular.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/IBMPlexSans-Medium.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/IBMPlexSans-SemiBold.woff2") format("woff2");
}
@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/IBMPlexMono-Regular.woff2") format("woff2");
}
*, *::before, *::after { box-sizing: border-box; }
body {
    margin: 0;
    min-height: 100dvh;
    background: var(--ui-canvas);
    color: var(--ui-text);
    font-family: var(--ui-font);
    font-synthesis: none;
    font-size: var(--ui-type-body);
    line-height: 1.47;
    letter-spacing: 0;
}
button, input, select, textarea { font-family: inherit; }
strong, b { font-weight: 600; }
label { font-weight: 500; }
a { color: var(--ui-action); text-underline-offset: .18em; }
a:hover { color: var(--ui-action-hover); }
:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
[hidden] { display: none !important; }
h1, h2, h3, h4, h5, h6 { color: var(--ui-text); font-weight: 600; }
h1 { font-size: var(--ui-type-page); line-height: 1.22; letter-spacing: -.015em; }
h2 { font-size: var(--ui-type-section); line-height: 1.45; }
p { overflow-wrap: break-word; }
img { max-width: 100%; }
code, pre, .ui-mono { font-family: var(--ui-font-mono); font-size: .875em; }
pre { max-width: 100%; overflow: auto; }
.ui-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
.ui-skip-link {
    position: fixed;
    top: .5rem;
    left: .5rem;
    padding: .75rem 1rem;
    background: var(--ui-surface);
    color: var(--ui-action);
    border: 2px solid var(--ui-focus);
    border-radius: var(--ui-radius-control);
    z-index: 40;
    transform: translateY(-200%);
}
.ui-skip-link:focus { transform: none; }
.ui-icon { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; vertical-align: middle; }
.ui-icon-small { width: 1rem; height: 1rem; }
.ui-number { font-variant-numeric: tabular-nums; }
.ui-muted { color: var(--ui-text-muted); }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; }
    .ui-shell *, .ui-public-layout *, .ui-access-layout * { transition-duration: 0ms !important; animation: none !important; }
}
@media (forced-colors: active) {
    :focus-visible { outline-color: Highlight; }
    .ui-status, .ui-alert, .ui-nav-link[aria-current="page"] { border: 1px solid currentColor; }
}
