.application { max-width: 720px; padding-block: clamp(2rem, 5vw, 4.5rem); }
.application h1 { margin-block: 0 .65rem; font-size: clamp(2.25rem, 6vw, 3.9rem); }
.application-intro { max-width: 65ch; color: var(--muted); }
.test-note { margin-top: .6rem; color: #73422f; font-size: .88rem; font-weight: 600; }
.application-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1rem; margin-block: 1rem 1.5rem; }
.application-actions a { text-underline-offset: .2em; }
.application .button { cursor: pointer; font-family: inherit; }
.application .button:disabled { cursor: default; opacity: .6; }
.application :is(button, input, select, textarea):focus-visible { outline: 2px solid var(--clay); outline-offset: 3px; }
.application form {
  margin-top: 1.35rem;
  padding: clamp(.9rem, 3.5vw, 1.65rem);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fffdf8;
}
.application [hidden] { display: none; }
.step-track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5rem;
  margin-bottom: 1.25rem;
  list-style: none;
}
.step-track li {
  padding-bottom: .45rem;
  border-bottom: 2px solid var(--border);
  color: var(--muted);
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.4;
}
.step-track [aria-current="step"] { color: var(--green); border-color: var(--green); }
.step-track .is-complete { border-color: #a7ada2; }
.wizard-step {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.wizard-step legend {
  margin-bottom: .9rem;
  padding: 0;
  font-size: 1.15rem;
  font-weight: 700;
  scroll-margin-top: 1rem;
}
.wizard-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.wizard-actions .button-primary { margin-left: auto; }
.field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1rem; }
.field-row + .field, .field + .field { margin-top: .85rem; }
.field-row .field { margin: 0; }
.field label { display: block; margin-bottom: .3rem; font-weight: 600; line-height: 1.45; }
.field small, .field-hint { color: var(--muted); font-size: .86rem; font-weight: 400; }
.field small { display: inline-block; margin-left: .2rem; }
.field-hint { margin-bottom: .8rem; }
.application :is(input:not([type=checkbox]), select, textarea) {
  width: 100%;
  padding: .65rem .75rem;
  border: 1px solid #8d978b;
  border-radius: 5px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.application textarea { display: block; resize: vertical; }
.confirmations { margin-top: 1.05rem; padding-top: .8rem; border-top: 1px solid var(--border); }
.checkbox { display: flex; align-items: baseline; gap: .55rem; }
.checkbox + .checkbox { margin-top: .35rem; }
.checkbox input { accent-color: var(--green); }
.demo-tools { margin-top: .95rem; color: var(--muted); font-size: .88rem; }
.demo-links { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: .4rem; }
.demo-links a, .demo-links button { color: var(--green); text-decoration: underline; text-underline-offset: .2em; }
.demo-links button { padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }
.demo-links button:disabled { color: var(--muted); cursor: default; }
.form-message, .empty-state {
  margin-block: 1rem;
  padding: 1.15rem;
  border-left: 3px solid var(--green);
  background: var(--leaf);
}
.form-message[role=alert] { border-color: var(--clay); background: #efe7dc; }
.form-message h2 { font-size: clamp(1.9rem, 5vw, 2.6rem); }
.form-message p { margin-top: .55rem; }
.form-message .application-actions { margin-bottom: 0; }
.application-list { display: grid; gap: .9rem; }
.application-entry { border: 1px solid var(--border); border-radius: 8px; background: #fffdf8; }
.application-entry summary { padding: .9rem 1rem; align-items: center; }
.application-entry summary > span:first-child { flex: 1; overflow-wrap: anywhere; }
.application-entry summary::after { flex: none; }
.review-stage {
  flex: none;
  max-width: 46%;
  padding: .15rem .45rem;
  border-radius: 4px;
  background: var(--leaf);
  color: var(--green);
  font-size: .75rem;
  line-height: 1.4;
}
.review-body { padding: 0 1rem 1.1rem; }
.review-body time { display: block; color: var(--muted); font-size: .83rem; }
.review-answers { margin-top: .7rem; }
.review-answers div { padding-block: .6rem; border-top: 1px solid var(--border); }
.review-answers dt { font-size: .83rem; font-weight: 700; }
.review-answers dd { overflow-wrap: anywhere; white-space: pre-wrap; }
.review-body label { display: block; margin-top: .65rem; font-weight: 600; }
.review-body select { max-width: 310px; margin-top: .3rem; }
.screen-reader { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 580px) {
  .field-row { grid-template-columns: 1fr; }
  .wizard-actions .button-primary { flex: 1 1 auto; }
  .application-entry summary { gap: .5rem; }
}
