.arr-contract-app {
	--awc-bg: var(--c-bg, #f5f4f0); --awc-surface: var(--c-surface, #fff); --awc-surface-2: var(--c-surface-2, #ebe9e3);
	--awc-text: var(--c-text, #191919); --awc-muted: var(--c-text-muted, #646467); --awc-border: var(--c-border, #d8d5cd); --awc-border-strong: var(--c-border-strong, #a7a7aa);
	--awc-accent: var(--c-accent, #ff5a1f); --awc-accent-soft: var(--c-accent-soft, rgb(255 90 31 / .16)); --awc-radius: var(--radius, 16px);
	--awc-paper: #fff; --awc-ink: #181818; --awc-ink-strong: #111; --awc-ink-muted: #777; --awc-rule: #ddd; --awc-rule-strong: #bbb; --awc-paper-shadow: 0 18px 50px rgb(0 0 0 / .1);
	--awc-scroll: color-mix(in srgb, var(--awc-text) 22%, transparent);
	color-scheme: light; color: var(--awc-text); font-family: var(--font-body, Tahoma, sans-serif);
	inline-size: min(100%, 88rem); margin-inline: auto; padding-block: clamp(1rem, 3vw, 3rem); text-align: right;
}
/* The ararai theme switches modes with html[data-theme]; the paper follows it on screen and stays white in print. */
html[data-theme="dark"] .arr-contract-app {
	--awc-paper: var(--c-surface, #1b1b1d); --awc-ink: #e2e2df; --awc-ink-strong: var(--c-heading, #f7f7f5); --awc-ink-muted: #85858a;
	--awc-rule: var(--c-border, #303034); --awc-rule-strong: var(--c-border-strong, #515155); --awc-paper-shadow: 0 18px 50px rgb(0 0 0 / .45);
	color-scheme: dark;
}
.arr-contract-app * { box-sizing: border-box; }
.arr-contract-hero { padding-block: .5rem 1.5rem; }
.arr-contract-kicker { font-size: .75rem; color: var(--awc-accent); font-weight: 800; }
.arr-contract-hero h2 { margin: .25rem 0 .5rem; font-size: clamp(1.7rem, 3vw, 3rem); }
.arr-contract-hero p { color: var(--awc-muted); margin: 0; }
.arr-contract-layout { display: grid; grid-template-columns: minmax(18rem, 26rem) minmax(0, 1fr); gap: 1.5rem; align-items: start; }

/* Form panel: sticky on wide screens, scrolls on its own with a sticky head and action bar. */
.arr-contract-form { position: sticky; inset-block-start: 5.5rem; max-block-size: calc(100vh - 7rem); overflow: auto; overscroll-behavior: contain; display: flex; flex-direction: column; padding-inline: 1rem; border: 1px solid var(--awc-border); border-radius: var(--awc-radius); background: var(--awc-surface); }
.arr-contract-form__head { position: sticky; inset-block-start: 0; z-index: 2; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .5rem; margin-inline: -1rem; padding: .9rem 1rem .8rem; background: var(--awc-surface); border-block-end: 1px solid var(--awc-border); }
.arr-contract-form__head small { color: var(--awc-muted); font-size: .75rem; }
.arr-contract-progress { grid-column: 1 / -1; block-size: 4px; background: var(--awc-surface-2); border-radius: 9px; overflow: hidden; }
.arr-contract-progress i { display: block; block-size: 100%; inline-size: 0; background: var(--awc-accent); transition: inline-size .2s ease; }

.arr-contract-group { border-block-end: 1px solid var(--awc-border); }
.arr-contract-group:last-of-type { border-block-end: 0; }
.arr-contract-group > summary { display: flex; align-items: center; gap: .5rem; padding-block: .7rem; cursor: pointer; list-style: none; font-size: .85rem; font-weight: 750; user-select: none; }
.arr-contract-group > summary::-webkit-details-marker { display: none; }
.arr-contract-group > summary::after { content: ""; inline-size: .4rem; block-size: .4rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; opacity: .5; transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
.arr-contract-group[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.arr-contract-group > summary small { margin-inline-start: auto; color: var(--awc-muted); font-size: .72rem; font-weight: 500; }
.arr-contract-group.is-complete > summary small { color: var(--awc-text); font-weight: 700; }
.arr-contract-group__fields { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; padding-block: .1rem 1rem; }

.arr-contract-field { display: flex; flex-direction: column; gap: .3rem; min-inline-size: 0; }
.arr-contract-field--wide { grid-column: 1 / -1; }
.arr-contract-field > span { font-size: .72rem; font-weight: 600; color: var(--awc-muted); transition: color .15s ease; }
.arr-contract-field:focus-within > span { color: var(--awc-text); }
.arr-contract-field b { color: var(--awc-accent); }
.arr-contract-field input, .arr-contract-field textarea, .arr-contract-field select { inline-size: 100%; block-size: 2.25rem; margin: 0; padding: 0 .65rem; border: 1px solid var(--awc-border); border-radius: 8px; background-color: var(--awc-bg); color: var(--awc-text); font: inherit; font-size: .85rem; line-height: 1.6; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.arr-contract-field textarea { block-size: auto; min-block-size: 3.6rem; max-block-size: 12rem; padding-block: .45rem; resize: vertical; field-sizing: content; }
.arr-contract-field select { appearance: none; padding-inline-end: 2rem; cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, var(--awc-muted) 50%), linear-gradient(135deg, var(--awc-muted) 50%, transparent 50%); background-position: .8rem 50%, calc(.8rem + 5px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.arr-contract-field ::placeholder { color: var(--awc-muted); opacity: .65; }
.arr-contract-field input:hover, .arr-contract-field textarea:hover, .arr-contract-field select:hover { border-color: var(--awc-border-strong); }
.arr-contract-field input:focus, .arr-contract-field textarea:focus, .arr-contract-field select:focus { outline: none; border-color: var(--awc-accent); background-color: var(--awc-surface); box-shadow: 0 0 0 3px var(--awc-accent-soft); }

.arr-contract-form__actions { position: sticky; inset-block-end: 0; z-index: 2; display: flex; gap: .5rem; margin-block-start: auto; margin-inline: -1rem; padding: .75rem 1rem; background: var(--awc-surface); border-block-start: 1px solid var(--awc-border); }
.arr-contract-btn { border: 1px solid var(--awc-border); border-radius: 999px; padding: .55rem 1.1rem; cursor: pointer; font: inherit; font-size: .85rem; font-weight: 700; transition: filter .15s ease, border-color .15s ease; }
.arr-contract-btn--primary { flex: 1; background: var(--awc-accent); color: #111; border-color: var(--awc-accent); }
.arr-contract-btn--primary:hover { filter: brightness(1.08); }
.arr-contract-btn--ghost { background: var(--awc-surface-2); color: var(--awc-text); }
.arr-contract-btn--ghost:hover { border-color: var(--awc-border-strong); }

/* Scrollbars: WebKit/Blink get the pseudo-elements, Firefox the standard properties. */
.arr-contract-form::-webkit-scrollbar, .arr-contract-field textarea::-webkit-scrollbar { width: 10px; height: 10px; }
.arr-contract-form::-webkit-scrollbar-track, .arr-contract-field textarea::-webkit-scrollbar-track { background: transparent; }
.arr-contract-form::-webkit-scrollbar-track { margin-block: var(--awc-radius); }
.arr-contract-form::-webkit-scrollbar-thumb, .arr-contract-field textarea::-webkit-scrollbar-thumb { background-color: var(--awc-scroll); border: 3px solid transparent; border-radius: 999px; background-clip: padding-box; }
.arr-contract-form::-webkit-scrollbar-thumb:hover, .arr-contract-field textarea::-webkit-scrollbar-thumb:hover { background-color: var(--awc-muted); }
.arr-contract-form::-webkit-scrollbar-corner, .arr-contract-field textarea::-webkit-scrollbar-corner { background: transparent; }
@supports not selector(::-webkit-scrollbar) {
	.arr-contract-form, .arr-contract-field textarea { scrollbar-width: thin; scrollbar-color: var(--awc-scroll) transparent; }
}

.arr-contract-paper { min-inline-size: 0; background: var(--awc-paper); color: var(--awc-ink); padding: clamp(1.5rem, 4vw, 4rem); border: 1px solid var(--awc-border); box-shadow: var(--awc-paper-shadow); border-radius: 3px; line-height: 2; }
.arr-contract-paper__top { display: flex; justify-content: space-between; gap: 1rem; font-size: .8rem; border-block-end: 1px solid var(--awc-rule); padding-block-end: .75rem; }
.arr-contract-paper h1 { text-align: center; color: var(--awc-ink-strong); font-size: 1.5rem; margin: 2rem 0; }
.arr-contract-clause { break-inside: avoid; margin-block-end: 1.5rem; }
.arr-contract-clause h3 { color: var(--awc-ink-strong); font-size: 1rem; margin: 0 0 .35rem; border-inline-start: 3px solid var(--awc-accent); padding-inline-start: .65rem; }
.arr-contract-clause p { margin: 0 0 .55rem; text-align: justify; }
.arr-wc-value { white-space: pre-line; font-weight: 650; border-radius: 4px; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background-color .15s ease, box-shadow .15s ease; }
.arr-wc-value.is-empty { color: var(--awc-ink-muted); font-weight: 400; }
.arr-contract-paper [data-contract-value] { cursor: pointer; }
.arr-wc-value.is-active { background-color: var(--awc-accent-soft); box-shadow: 0 0 0 3px var(--awc-accent-soft); }
.arr-contract-signatures { white-space: pre-wrap; margin-block-start: 3rem; padding-block-start: 1.5rem; border-block-start: 1px solid var(--awc-rule-strong); font-weight: 650; line-height: 3; }
.arr-contract-witnesses { margin-block-start: 2rem; font-weight: 400; }
.arr-contract-disclaimer { margin-block-start: 1rem; padding: 1rem 1.2rem; border-inline-start: 4px solid var(--awc-accent); background: var(--awc-surface-2); color: var(--awc-muted); font-size: .85rem; }

@media (max-width: 900px) {
	.arr-contract-layout { grid-template-columns: 1fr; }
	.arr-contract-form { position: static; max-block-size: none; overflow: visible; }
	.arr-contract-form__head { position: static; }
}
@media (max-width: 520px) {
	.arr-contract-group__fields { grid-template-columns: 1fr; }
	/* 16px keeps iOS from zooming into focused fields. */
	.arr-contract-field input, .arr-contract-field select { block-size: 2.5rem; font-size: 1rem; }
	.arr-contract-field textarea { font-size: 1rem; }
	.arr-contract-paper { padding: 1.1rem; font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
	.arr-contract-app *, .arr-contract-app *::after { transition: none !important; }
}
@media print {
	@page { size: A4; margin: 16mm; }
	html body.arr-contract-printing .arr-contract-app { --awc-paper: #fff; --awc-ink: #181818; --awc-ink-strong: #111; --awc-ink-muted: #777; --awc-rule: #ddd; --awc-rule-strong: #bbb; color-scheme: light; }
	body.arr-contract-printing { background: #fff !important; }
	body.arr-contract-printing * { visibility: hidden !important; }
	body.arr-contract-printing .arr-contract-app.is-print-target, body.arr-contract-printing .arr-contract-app.is-print-target * { visibility: visible !important; }
	body.arr-contract-printing .arr-contract-app.is-print-target { position: absolute; inset: 0; inline-size: 100%; margin: 0; padding: 0; }
	body.arr-contract-printing .arr-contract-hero, body.arr-contract-printing .arr-contract-form, body.arr-contract-printing .arr-contract-disclaimer { display: none !important; }
	body.arr-contract-printing .arr-contract-layout { display: block; }
	body.arr-contract-printing .arr-contract-paper { border: 0; box-shadow: none; padding: 0; font-size: 10.5pt; line-height: 1.9; }
	body.arr-contract-printing .arr-wc-value.is-active { background: none; box-shadow: none; }
	body.arr-contract-printing .arr-contract-clause { break-inside: auto; }
	body.arr-contract-printing .arr-contract-clause h3 { break-after: avoid; }
}
