
@font-face {
	font-family: "IBM Plex Sans";
	src: url("../fonts/plex-sans-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Sans";
	src: url("../fonts/plex-sans-500.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Sans";
	src: url("../fonts/plex-sans-600.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Mono";
	src: url("../fonts/plex-mono-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Mono";
	src: url("../fonts/plex-mono-500.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
.nxo-form {
	--nxo-bg: #ffffff;
	--nxo-fg: #0a0a0a;
	--nxo-muted: #5c5c5c;
	--nxo-line: #0a0a0a;
	--nxo-soft: #f6f6f5;
	--nxo-accent: #ff1f1f;
	--nxo-on-accent: #000000;
	--nxo-radius: 5px;
	--nxo-radius-chip: 4px;
	--nxo-control: 44px;
	--nxo-pad: 0;
	--nxo-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%230a0a0a' stroke-width='2'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
	--nxo-font: "IBM Plex Sans", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--nxo-mono: "IBM Plex Mono", "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
	color: var(--nxo-fg);
	background: var(--nxo-bg);
	font-family: var(--nxo-font);
	font-size: 1rem;
	line-height: 1.5;
	max-width: 40rem;
	padding: var(--nxo-pad);
	border-radius: var(--nxo-radius);
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .nxo-form {
		--nxo-bg: #000000;
		--nxo-fg: #ffffff;
		--nxo-muted: #a3a3a3;
		--nxo-line: #ffffff;
		--nxo-soft: #111111;
		--nxo-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
		--nxo-pad: 1rem;
	}
}
:root[data-theme="dark"] .nxo-form,
.nxo-form[data-theme="dark"] {
	--nxo-bg: #000000;
	--nxo-fg: #ffffff;
	--nxo-muted: #a3a3a3;
	--nxo-line: #ffffff;
	--nxo-soft: #111111;
	--nxo-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
	--nxo-pad: 1rem;
}
.nxo-form *,
.nxo-form *::before,
.nxo-form *::after {
	box-sizing: border-box;
}
.nxo-form__title,
.nxo-summary__title,
.nxo-receipt__title {
	font-family: var(--nxo-font);
	font-weight: 600;
	line-height: 1.25;
	margin: 0 0 0.75rem;
}
.nxo-form__title { font-size: 1.5rem; }
.nxo-summary__title,
.nxo-receipt__title { font-size: 1.25rem; }
.nxo-mono { font-family: var(--nxo-mono); letter-spacing: 0.02em; }
.nxo-note,
.nxo-description,
.nxo-required-note {
	margin: 0 0 1rem;
}
.nxo-note {
	border-left: 4px solid var(--nxo-fg);
	padding: 0.5rem 0 0.5rem 0.75rem;
}
.nxo-required-note,
.nxo-hint,
.nxo-purpose { color: var(--nxo-muted); }
.nxo-field { margin: 0 0 1.5rem; }
.nxo-field--invalid {
	border-left: 4px solid var(--nxo-fg);
	padding-left: 0.75rem;
}
.nxo-label,
.nxo-legend {
	display: block;
	font-weight: 600;
	margin: 0 0 0.25rem;
	padding: 0;
}
.nxo-required { font-weight: 400; }
.nxo-hint,
.nxo-purpose { margin: 0 0 0.5rem; font-size: 0.9375rem; }
.nxo-error {
	margin: 0 0 0.5rem;
	font-weight: 600;
	color: var(--nxo-fg);
}
.nxo-error::before {
	content: "";
	display: inline-block;
	width: 0.75em;
	height: 0.75em;
	margin-right: 0.4em;
	border-radius: 0;
	background: var(--nxo-fg);
	vertical-align: baseline;
}
.nxo-error[hidden] { display: none; }
.nxo-fieldset {
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
}
.nxo-input,
.nxo-select,
.nxo-textarea {
	display: block;
	width: 100%;
	min-height: var(--nxo-control);
	padding: 0.5rem 0.75rem;
	font: inherit;
	color: var(--nxo-fg);
	background: var(--nxo-bg);
	border: 2px solid var(--nxo-line);
	border-radius: var(--nxo-radius);
	appearance: none;
}
.nxo-select {
	padding-right: 2.5rem;
	background-image: var(--nxo-chevron);
	background-position: right 0.9rem center;
	background-size: 0.75rem 0.5rem;
	background-repeat: no-repeat;
}
.nxo-textarea { min-height: 8rem; resize: vertical; }
.nxo-field--invalid .nxo-input,
.nxo-field--invalid .nxo-select,
.nxo-field--invalid .nxo-textarea {
	border-color: var(--nxo-fg);
	border-width: 3px;
}
.nxo-choices { display: grid; gap: 0.25rem; }
.nxo-choice {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	min-height: var(--nxo-control);
	padding: 0.5rem 0;
}
.nxo-choice__input {
	flex: 0 0 auto;
	width: 1.5rem;
	height: 1.5rem;
	margin: 0;
	accent-color: var(--nxo-fg);
}
.nxo-choice__label { cursor: pointer; }
.nxo-form :focus-visible {
	outline: 3px solid var(--nxo-accent);
	outline-offset: 2px;
}
.nxo-input:focus,
.nxo-select:focus,
.nxo-textarea:focus {
	outline: 3px solid var(--nxo-accent);
	outline-offset: 2px;
}
.nxo-notice {
	margin: 0 0 1.5rem;
	padding: 0.75rem 1rem;
	background: var(--nxo-soft);
	border-radius: var(--nxo-radius);
}
.nxo-notice__text { margin: 0; }
.nxo-notice__text[hidden] { display: none; }
.nxo-placeholder {
	font-family: var(--nxo-mono);
	font-size: 0.875em;
	border: 1px dashed var(--nxo-fg);
	border-radius: var(--nxo-radius-chip);
	padding: 0 0.25em;
}
.nxo-form a { color: inherit; text-decoration: underline; text-underline-offset: 0.15em; }
.nxo-form a:hover { text-decoration-thickness: 2px; }
.nxo-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}
.nxo-button {
	min-height: var(--nxo-control);
	min-width: var(--nxo-control);
	padding: 0.5rem 1.25rem;
	font: inherit;
	font-weight: 600;
	color: var(--nxo-bg);
	background: var(--nxo-fg);
	border: 2px solid var(--nxo-fg);
	border-radius: var(--nxo-radius);
	cursor: pointer;
}
.nxo-button:hover,
.nxo-button:active {
	color: var(--nxo-on-accent);
	background: var(--nxo-accent);
	border-color: var(--nxo-accent);
}
.nxo-button[aria-disabled="true"] { cursor: progress; opacity: 0.7; }
.nxo-progress { font-family: var(--nxo-mono); font-size: 0.875rem; }
.nxo-summary,
.nxo-alert,
.nxo-receipt {
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	border: 3px solid var(--nxo-fg);
	border-radius: var(--nxo-radius);
}
.nxo-summary[hidden],
.nxo-alert[hidden] { display: none; }
.nxo-summary__list { margin: 0; padding-left: 1.25rem; }
.nxo-summary__list a { font-weight: 600; }
.nxo-receipt { border-color: var(--nxo-fg); }
.nxo-receipt p { margin: 0 0 0.5rem; }
.nxo-receipt p:last-child { margin-bottom: 0; }
.nxo-receipt-region:empty { display: none; }
.nxo-receipt-region:focus { outline: none; }
.nxo-receipt-region:focus-visible .nxo-receipt { outline: 3px solid var(--nxo-accent); outline-offset: 2px; }
.nxo-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.nxo-hp {
	position: absolute !important;
	inset-inline-start: 0;
	inset-block-start: auto;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
@media (forced-colors: active) {
	.nxo-error::before { forced-color-adjust: none; background: CanvasText; }
	.nxo-field--invalid { border-left-color: CanvasText; }
}
@media (prefers-reduced-motion: reduce) {
	.nxo-form * { transition: none !important; scroll-behavior: auto !important; }
}
.nxo-stepper { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 0.5rem; counter-reset: none; }
.nxo-stepper[hidden] { display: none; }
.nxo-stepper__item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0; border-top: 2px solid var(--nxo-muted); color: var(--nxo-muted); font-size: 0.8125rem; line-height: 1.3; }
.nxo-stepper__item.is-done { border-top-color: var(--nxo-fg); color: var(--nxo-fg); }
.nxo-stepper__item.is-current { border-top-color: var(--nxo-accent); color: var(--nxo-fg); font-weight: 600; }
.nxo-stepper__n { font-family: var(--nxo-mono); font-size: 0.75rem; flex: none; }
.nxo-step { margin: 0 0 1.5rem; padding: 0; border: 0; min-width: 0; }
.nxo-step[hidden] { display: none; }
.nxo-step__title { padding: 0; margin: 0 0 1rem; font-weight: 600; font-size: 1.0625rem; }
.nxo-step__count { display: block; font-family: var(--nxo-mono); font-size: 0.75rem; font-weight: 400; color: var(--nxo-muted); letter-spacing: 0.04em; margin-bottom: 0.25rem; }
.nxo-form--steps .nxo-step__count { display: none; }
.nxo-step__nav { display: flex; gap: 0.75rem; margin-top: 1.25rem; }
.nxo-button--quiet { background: transparent; color: var(--nxo-fg); border: 1px solid var(--nxo-line); }
.nxo-button--quiet:hover { background: var(--nxo-soft); color: var(--nxo-fg); }
.nxo-context { margin: 1.5rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--nxo-muted); }
.nxo-context__text { margin: 0 0 0.5rem; color: var(--nxo-muted); font-size: 0.9375rem; }
.nxo-context__details { margin: 0.25rem 0 0; font-size: 0.875rem; color: var(--nxo-muted); }
.nxo-context__details summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--nxo-fg); }
.nxo-context__details p { margin: 0 0 0.75rem; max-width: 36rem; }
.nxo-receipt__status { margin-top: 0.75rem; }
.nxo-receipt__link { font-weight: 600; }
.nxo-alert--ok { border-color: var(--nxo-fg); }
.nxo-status__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1rem 1.5rem; margin: 0 0 2rem; padding: 0 0 1.25rem; border-bottom: 1px solid var(--nxo-muted); }
.nxo-status__facts dt { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--nxo-muted); font-family: var(--nxo-mono); }
.nxo-status__facts dd { margin: 0.25rem 0 0; }
.nxo-status__h { font-size: 1.125rem; margin: 2rem 0 0.75rem; }
.nxo-chip { display: inline-block; padding: 0.125rem 0.5rem; border: 1px solid var(--nxo-fg); border-radius: var(--nxo-radius-chip); font-size: 0.8125rem; font-weight: 600; }
.nxo-chip--waiting { border-style: dashed; border-color: var(--nxo-accent); }
.nxo-chip--resolved, .nxo-chip--closed { border-color: var(--nxo-muted); color: var(--nxo-muted); }
.nxo-timeline { list-style: none; margin: 0; padding: 0; border-inline-start: 2px solid var(--nxo-muted); }
.nxo-timeline__item { position: relative; margin: 0; padding: 0 0 1.25rem 1.25rem; }
.nxo-timeline__item::before { content: ""; position: absolute; inset-inline-start: -6px; top: 0.35rem; width: 10px; height: 10px; border-radius: 50%; background: var(--nxo-fg); }
.nxo-timeline__item:last-child::before { background: var(--nxo-accent); }
.nxo-timeline__head { margin: 0; }
.nxo-timeline__at { color: var(--nxo-muted); font-size: 0.875rem; margin-inline-start: 0.5rem; }
.nxo-timeline__text { margin: 0.5rem 0 0; padding: 0.75rem 1rem; border: 1px solid var(--nxo-muted); border-radius: var(--nxo-radius); white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 30rem) {
	.nxo-stepper { grid-auto-flow: row; gap: 0; }
	.nxo-stepper__item { display: none; }
	.nxo-stepper__item.is-current { display: flex; }
	.nxo-stepper__item.is-current .nxo-stepper__label::after { content: " / " attr(data-n); }
}
.nxo-form .nxo-hp { position: absolute !important; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
[dir="rtl"] .nxo-form .nxo-select { background-position: left 0.75rem center; padding-inline-start: 2.5rem; padding-inline-end: 0.75rem; }
.nxo-actions[hidden], .nxo-context[hidden] { display: none; }
