/* Part exchange form and the Finance page box (JOB N). Tokens from style.css. */
.px-form { margin-block: 1.5rem 2rem; max-width: 52rem; }
.px-set { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 1rem clamp(1rem, 3vw, 1.5rem) 1.25rem; margin: 0 0 1.25rem; min-width: 0; }
.px-set legend { font-family: var(--serif); font-weight: 600; font-size: var(--step-1); padding: 0 .4rem; margin-left: -.4rem; }
.px-grid { display: grid; gap: 0 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.px-field { margin: 0 0 1rem; min-width: 0; }
.px-field > label { display: block; font-weight: 600; margin-bottom: .3rem; }
.px-field input[type="text"], .px-field input[type="tel"], .px-field input[type="email"], .px-field select, .px-field textarea { width: 100%; min-height: 48px; padding: .6rem .8rem; border: 1px solid rgba(16, 48, 44, .45); border-radius: var(--radius); background: #fff; color: var(--ink); font: inherit; }
.px-field textarea { min-height: 6rem; resize: vertical; }
.px-field input[type="file"] { display: block; width: 100%; max-width: 100%; padding: .7rem; border: 2px dashed rgba(16, 48, 44, .35); border-radius: var(--radius); background: var(--mist); font: inherit; min-height: 48px; }
.px-field input:focus-visible, .px-field select:focus-visible, .px-field textarea:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.px-hint { margin: 0 0 .4rem; font-size: var(--step--1); color: var(--muted); }
.px-err { margin: 0 0 .35rem; color: var(--error); font-weight: 600; font-size: var(--step--1); }
.px-field--err input, .px-field--err select, .px-field--err textarea { border-color: var(--error); border-width: 2px; }
.px-files { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .3rem; font-size: var(--step--1); }
.px-files li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem .6rem; background: var(--mist); border-radius: var(--radius); overflow-wrap: anywhere; }
.px-files li.is-bad { background: #f6e3e3; color: var(--error); font-weight: 600; }
.px-check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; align-items: start; font-weight: 400; cursor: pointer; }
.px-check input { width: 1.4rem; height: 1.4rem; margin: .15rem 0 0; accent-color: var(--marsh); }
.px-trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.px-go .btn { min-height: 48px; min-width: min(100%, 16rem); justify-content: center; }
.px-go .btn[disabled] { opacity: .7; cursor: progress; }
.px-note { font-size: var(--step--1); color: var(--muted); }
.px-errors { border: 2px solid var(--error); border-radius: var(--radius); background: #fbf1f1; padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.px-errors ul { margin: 0 0 .5rem; }
.px-errors a { color: var(--error); }
.px-done { border-left: 5px solid var(--marsh); background: var(--surface); border-radius: var(--radius); padding: 1.25rem 1.5rem; margin-block: 1.5rem; }
.px-done h2 { margin-top: 0; }
/* Finance page box */
.px-callout { margin: 1.5rem 0; padding: 1.1rem 1.25rem; border-radius: var(--radius); background: var(--sand-soft); border-left: 5px solid var(--sand); }
.px-callout__t { font-family: var(--serif); font-weight: 600; font-size: var(--step-1); margin: 0 0 .3rem; }
.px-callout p:last-child { margin-bottom: 0; }
.px-callout .btn { min-height: 44px; }
