.application-layout { min-width: 0; display: grid; grid-template-columns: minmax(280px, .40fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 42px); align-items: start; }
.programme-selection-gate { max-width: 940px; margin: 0 auto; }
.programme-selection-card { overflow: hidden; }
.programme-selection-card .card__body { padding: clamp(24px, 5vw, 48px); }
.programme-selection-card h2 { max-width: 22ch; }
.programme-selection-progress { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: baseline; margin: 24px 0; padding: 16px 18px; border-radius: 14px; background: var(--surface-soft, #eef7f7); }
.programme-selection-progress strong { color: var(--heading, #061f2a); }
.programme-selection-progress span { color: var(--muted, #48616b); }
.programme-selection-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.programme-selection-fieldset legend { margin-bottom: 12px; font-weight: 700; }
.programme-selection-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.programme-selection-option { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; min-width: 0; padding: 18px; border: 2px solid var(--border, #cad8dc); border-radius: 14px; background: var(--surface, #fff); cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.programme-selection-option:hover { border-color: var(--accent, #008f95); transform: translateY(-1px); }
.programme-selection-option:focus-within { outline: 3px solid color-mix(in srgb, var(--accent, #008f95) 32%, transparent); outline-offset: 2px; }
.programme-selection-option.is-selected { border-color: var(--accent, #008f95); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #008f95) 16%, transparent); }
.programme-selection-option input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--accent, #008f95); }
.programme-selection-option__copy { min-width: 0; }
.programme-selection-option__copy strong { display: block; color: var(--heading, #061f2a); line-height: 1.35; }
.programme-selection-option__copy span { display: block; margin-top: 6px; color: var(--muted, #48616b); font-size: .92rem; line-height: 1.45; }
.programme-selection-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 24px; }
@media (max-width: 700px) { .programme-selection-options { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .programme-selection-actions { align-items: stretch; flex-direction: column; } .programme-selection-actions .button { width: 100%; } }
.application-layout > *, .application-side, .application-main, .application-side .card, .application-side .card__body, .readonly-grid, .readonly-value { min-width: 0; }
.application-side { position: sticky; top: calc(var(--header-h) + 20px); display: grid; gap: 18px; }
.application-side h2 { overflow-wrap: normal; word-break: normal; }
.application-side .progress-nav { min-width: 0; width: 100%; display: grid; grid-template-columns: 1fr; gap: 8px; overflow: visible; padding: 4px 0 0; }
.application-side .progress-nav a, .application-side .progress-nav > span {
  position: relative;
  min-width: 0;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  text-align: left;
  white-space: normal;
}
.progress-nav__label { min-width: 0; overflow-wrap: anywhere; }
.progress-completion { margin: 14px 0 4px; color: var(--muted); font-size: .76rem; font-weight: 720; }
.progress-completion strong { color: var(--ink); font-size: .9rem; font-variant-numeric: tabular-nums; }
.progress-nav__status {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: transparent;
  background: transparent;
}
.progress-nav__check { width: 15px; height: 15px; display: block; opacity: 0; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.progress-nav [data-complete="true"] { border-color: rgba(35,122,89,.38); color: #155a43; background: rgba(35,122,89,.09); }
.progress-nav [data-complete="true"] .progress-nav__status { color: #fff; background: var(--green); }
.progress-nav [data-complete="true"] .progress-nav__check { opacity: 1; }
.progress-nav [aria-current="step"]:not([data-complete="true"]) { color: #fff; border-color: var(--ink); background: var(--ink); }
.progress-nav [aria-current="step"]:not([data-complete="true"]) .progress-nav__status::after { width: 7px; height: 7px; border-radius: 50%; background: #fff; content: ""; }
.progress-nav [data-complete="true"][aria-current="step"] { border-color: var(--ink); color: #155a43; background: rgba(35,122,89,.11); box-shadow: inset 4px 0 0 var(--ink); }
.application-main { min-width: 0; }
.save-bar { position: static; z-index: auto; margin-top: 24px; padding: 12px; border: 1px solid rgba(219,229,232,.94); border-radius: 20px; background: rgba(255,255,255,.98); box-shadow: 0 10px 30px rgba(6,31,42,.08); display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.save-state-panel { min-width: 0; display: grid; gap: 2px; }
.save-state { color: var(--muted); font-size: .79rem; font-weight: 820; }
.save-state-detail { max-width: 68ch; color: var(--muted); font-size: .73rem; line-height: 1.4; }
.save-state-detail[hidden] { display: none; }
.save-bar[data-state="saving"] .save-state { color: var(--focus); }
.save-bar[data-state="saved"] .save-state { color: var(--green); }
.save-bar[data-state="unsaved"] .save-state,
.save-bar[data-state="projection-pending"] .save-state,
.save-bar[data-state="refresh-warning"] .save-state { color: #73530b; }
.save-bar[data-state="failed"] .save-state,
.save-bar[data-state="conflict"] .save-state { color: var(--red); }
.save-bar[data-state="projection-pending"],
.save-bar[data-state="refresh-warning"] { border-color: rgba(216, 165, 45, .45); background: rgba(255, 249, 231, .98); }
.save-bar[data-state="failed"],
.save-bar[data-state="conflict"] { border-color: rgba(185, 56, 56, .35); background: rgba(255, 247, 247, .98); }
.readonly-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.readonly-value { padding: 12px; border-radius: 13px; background: var(--soft); }
.readonly-value span, .readonly-value label, .readonly-value strong { display: block; }
.readonly-value label.field-label { display: inline-flex; align-items: center; gap: .5rem; }
.readonly-value span, .readonly-value label { color: var(--muted); font-size: .72rem; font-weight: 760; text-transform: uppercase; letter-spacing: .06em; }
.readonly-value strong { min-width: 0; margin-top: 3px; font-size: .92rem; overflow-wrap: break-word; }
.application-form .field { scroll-margin-top: calc(var(--header-h) + 18px); }


.key-dates-band {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 18px;
  align-items: start;
  margin-top: 14px;
  padding: 18px 20px;
  border: 1px solid rgba(19,107,120,.22);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(108,198,208,.09));
  box-shadow: 0 8px 24px rgba(6,31,42,.045);
}
.key-dates-band__heading { min-width: 0; grid-column: 1 / -1; }
.key-dates-band__eyebrow { margin: 0; color: var(--magenta); font-size: .68rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.key-dates-band__heading h2 { margin-top: 4px; font-size: clamp(1.08rem, 2vw, 1.34rem); line-height: 1.2; }
.key-dates-list { min-width: 0; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; margin: 0; }
.key-dates-list > div { min-width: 0; padding-left: 12px; border-left: 2px solid rgba(19,107,120,.24); }
.key-dates-list dt { min-width: 0; color: var(--muted); font-size: .67rem; font-weight: 760; line-height: 1.35; overflow-wrap: normal; word-break: normal; }
.key-dates-list dd { min-width: 0; margin: 5px 0 0; color: var(--ink); font-size: .84rem; font-weight: 880; line-height: 1.28; overflow-wrap: normal; word-break: normal; }
.key-dates-band__source { grid-column: 2; justify-self: end; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); background: #fff; font-size: .72rem; font-weight: 820; text-align: center; text-decoration: none; }
.key-dates-band__source:hover { border-color: #78949d; }
.application-status-row { min-width: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 10px 2px 14px; color: var(--muted); }
.application-status-row__item { min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; font-size: .72rem; }
.application-status-row__item span { font-weight: 760; text-transform: uppercase; letter-spacing: .06em; }
.application-status-row__item strong { color: var(--ink-2); font-size: .78rem; }


.applicant-status-card { margin: 0 0 16px; border: 1px solid rgba(19,107,120,.18); border-radius: 18px; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(108,198,208,.08)); box-shadow: 0 10px 28px rgba(6,31,42,.045); }
.applicant-status-card__body { display: grid; gap: 8px; padding: 18px clamp(18px, 3vw, 24px); }
.applicant-status-card h2 { font-size: clamp(1.12rem, 2vw, 1.38rem); line-height: 1.22; }
.applicant-status-card p { margin: 0; color: var(--ink-2); }
.applicant-status-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.applicant-status-actions:empty { display: none; }
.applicant-status-note { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 10px; border: 1px solid rgba(19,107,120,.18); border-radius: 999px; color: var(--ink-2); background: #fff; font-size: .78rem; font-weight: 760; }
.applicant-identity-grid, .guardian-identity-grid { display: grid; grid-template-columns: minmax(110px, .45fr) minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.applicant-identity-grid .field, .guardian-identity-grid .field { min-width: 0; }
.applicant-identity-grid .field select, .applicant-identity-grid .field input, .guardian-identity-grid .field select, .guardian-identity-grid .field input { min-height: 44px; }

.consultant-card { overflow: hidden; }
.consultant-card .kicker { margin-bottom: 18px; }
.consultant-card__identity { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: center; }
.consultant-card__logo-link { width: 72px; height: 72px; display: block; border-radius: 50%; text-decoration: none; }
.consultant-card__logo-link[aria-disabled="true"] { pointer-events: none; }
.consultant-card__logo { width: 72px; height: 72px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 50%; background: var(--soft); }
.consultant-card__logo img, .consultant-card__logo svg { width: 100%; height: 100%; display: block; object-fit: contain; }
.consultant-card h3 { font-size: 1.05rem; line-height: 1.25; letter-spacing: -.02em; overflow-wrap: break-word; }
.consultant-card__website { min-height: 32px; display: inline-flex; align-items: center; margin-top: 4px; color: var(--ink-2); font-size: .78rem; font-weight: 760; overflow-wrap: anywhere; text-underline-offset: 3px; }

.address-block {
  min-width: 0;
  display: grid;
  gap: 16px;
  margin: 22px 0 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--soft);
}
.address-block legend { padding: 0 7px; color: var(--ink); font-weight: 880; }
.address-block__intro { margin: -4px 0 0; }
.address-search { min-width: 0; }
.address-search__control { position: relative; min-width: 0; }
.address-search__input { width: 100%; color: var(--ink); background: #fff; }
.address-suggestions {
  position: absolute;
  z-index: 60;
  inset: calc(100% + 6px) 0 auto;
  max-height: min(320px, 48vh);
  margin: 0;
  padding: 6px;
  overflow-y: auto;
  list-style: none;
  border: 1px solid #aebfc5;
  border-radius: 14px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 18px 42px rgba(6, 31, 42, .20);
}
.address-suggestions[hidden] { display: none; }
.address-suggestion { min-height: 48px; display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 9px 11px; border-radius: 10px; color: var(--ink); background: #fff; cursor: pointer; }
.address-suggestion strong { color: var(--ink); font-size: .88rem; line-height: 1.35; }
.address-suggestion span { color: #405d67; font-size: .76rem; line-height: 1.35; }
.address-suggestion[aria-selected="true"], .address-suggestion:hover { color: var(--ink); background: #e9f4f6; }
.address-search__attribution { justify-self: end; color: #536b74; font-size: .68rem; font-weight: 760; letter-spacing: .01em; }

.guardian-block { border-color: rgba(145, 0, 72, .25); background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(145,0,72,.045)); }
.guardian-block__intro h2 { font-size: clamp(1.35rem, 2.4vw, 1.85rem); }
.guardian-block__intro .field__help { margin-top: 7px; }

@media (min-width: 641px) {
  #application-form .field--paired-control .field__head { min-height: 48px; align-items: center; }
}
@media (max-width: 900px) {
  .application-layout { grid-template-columns: 1fr; }
  .application-side { position: static; }
  .application-side .progress-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .readonly-grid { grid-template-columns: 1fr 1fr; }
  .key-dates-band { grid-template-columns: minmax(0, 1fr) auto; }
  .key-dates-band__source { justify-self: end; }
}
@media (max-width: 760px) {
  .key-dates-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .applicant-identity-grid, .guardian-identity-grid { grid-template-columns: minmax(100px, .4fr) minmax(0, 1fr); }
  .applicant-identity-grid .field:last-child, .guardian-identity-grid .field:last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .address-block { padding: 16px; }
  .applicant-identity-grid, .guardian-identity-grid { grid-template-columns: 1fr; }
  .applicant-identity-grid .field:last-child, .guardian-identity-grid .field:last-child { grid-column: auto; }
}
@media (max-width: 560px) {
  .readonly-grid { grid-template-columns: 1fr; }
  .save-bar { align-items: stretch; flex-direction: column; }
  .save-bar .button { width: 100%; }
}
@media (max-width: 430px) {
  .application-side .progress-nav { grid-template-columns: 1fr; }
  .key-dates-list { grid-template-columns: 1fr; }
  .key-dates-list > div { padding: 9px 0 0; border-top: 1px solid rgba(19,107,120,.18); border-left: 0; }
  .key-dates-list > div:first-child { padding-top: 0; border-top: 0; }
  .key-dates-band__source { grid-column: 1 / -1; justify-self: stretch; width: 100%; }
}

@media (max-width: 360px) {
  .address-block { padding: 14px; }
  .consultant-card__identity { grid-template-columns: 58px minmax(0, 1fr); }
  .consultant-card__logo-link, .consultant-card__logo { width: 58px; height: 58px; }
}
@media (max-width: 320px) {
  .application-side .card__body { padding-inline: 16px; }
  .application-side .progress-nav a, .application-side .progress-nav > span { padding-inline: 8px; font-size: .74rem; }
}

.application-save-notice { width: 100%; margin-top: 2px; }

.autosave-toast {
  position: fixed;
  z-index: 140;
  top: calc(env(safe-area-inset-top, 0px) + var(--header-h) + clamp(8px, 1.4vw, 14px));
  left: 50%;
  width: max-content;
  max-width: min(420px, calc(100vw - 24px));
  padding: clamp(9px, 1.4vw, 12px) clamp(13px, 2vw, 18px);
  border: 1px solid rgba(35, 122, 89, .26);
  border-radius: 999px;
  color: #155a43;
  background: rgba(245, 253, 249, .98);
  box-shadow: 0 12px 30px rgba(6, 31, 42, .16);
  font-size: clamp(.78rem, 1.6vw, .9rem);
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -8px);
  transition: opacity 180ms ease, transform 180ms ease;
}
.autosave-toast::before { content: "✓"; margin-right: .45em; }
.autosave-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.autosave-toast[hidden] { display: none; }

@media (max-width: 420px) {
  .autosave-toast { width: calc(100vw - 24px); border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .autosave-toast { transition: none; }
}


.form-section-anchor { scroll-margin-top: calc(var(--header-h) + 22px); }
.studies-section { display: grid; gap: 18px; margin-top: clamp(34px, 6vw, 58px); padding-top: clamp(28px, 4vw, 42px); border-top: 1px solid var(--line); }
.studies-section__intro { max-width: 76ch; }
.studies-section__intro h2 { font-size: clamp(1.8rem, 4vw, 3rem); }
.studies-save-note { margin-top: 13px; color: var(--muted); font-size: .84rem; font-weight: 700; }
.question-card { min-width: 0; display: grid; gap: 20px; padding: clamp(18px, 3vw, 26px); border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 7px 22px rgba(6,31,42,.045); }
.question-card--soft { background: linear-gradient(145deg, #fff, rgba(108,198,208,.07)); }
.question-card--route { border-color: rgba(19,107,120,.28); background: linear-gradient(145deg, #fff, rgba(108,198,208,.10)); }
.route-requirements {
  margin-top: 14px;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border: 1px solid rgba(19,107,120,.24);
  border-radius: 12px;
  background: rgba(108,198,208,.10);
  color: var(--ink-2);
  font-size: .88rem;
  font-weight: 720;
}
.route-requirements[data-state="error"] {
  border-color: rgba(185,56,56,.30);
  background: rgba(185,56,56,.08);
}
.route-requirements[hidden] { display: none; }
@media (max-width: 520px) {
  .route-requirements { align-items: flex-start; flex-direction: column; }
}
.question-card__heading { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr); gap: 0; align-items: start; }
.question-card__number { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--ink); font-size: .82rem; font-weight: 900; }
.eyebrow { margin: 0 0 5px; color: var(--magenta); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.question-card h3 { font-size: clamp(1.2rem, 2.4vw, 1.6rem); }
.question-card__reassurance { max-width: 72ch; margin-top: -8px; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.choice-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.choice-field + .choice-field { margin-top: 18px; }
.choice-field > legend { max-width: 72ch; padding: 0; color: var(--ink); font-size: .95rem; font-weight: 850; line-height: 1.45; }
.choice-grid { display: grid; gap: 12px; margin-top: 13px; }
.choice-grid--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.choice-card { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 11px; align-items: start; min-height: 86px; padding: 15px; border: 1px solid #b9c9ce; border-radius: 16px; background: #fff; cursor: pointer; }
.choice-card:hover { border-color: #78949d; background: #fbfdfd; }
.choice-card:has(input:checked) { border-color: var(--focus); box-shadow: 0 0 0 3px rgba(19,107,120,.10); background: rgba(108,198,208,.08); }
.choice-card input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--focus); }
.choice-card strong, .choice-card small { display: block; }
.choice-card strong { color: var(--ink); font-size: .92rem; }
.choice-card small { margin-top: 4px; color: var(--muted); font-size: .77rem; line-height: 1.38; }
.segmented-choices { display: inline-grid; grid-template-columns: repeat(2,minmax(90px,1fr)); gap: 8px; margin-top: 12px; }
.segmented-choices label { cursor: pointer; }
.segmented-choices input { position: absolute; opacity: 0; pointer-events: none; }
.segmented-choices span { min-height: 44px; display: grid; place-items: center; padding: 9px 18px; border: 1px solid #b9c9ce; border-radius: 999px; color: var(--ink-2); background: #fff; font-weight: 850; }
.segmented-choices input:checked + span { color: #fff; border-color: var(--focus); background: var(--focus); }
.segmented-choices input:focus-visible + span { outline: 3px solid rgba(19,107,120,.48); outline-offset: 3px; }
.conditional-panel { min-width: 0; padding: clamp(16px,2.5vw,22px); border-left: 4px solid var(--teal); border-radius: 0 16px 16px 0; background: var(--soft); }
.conditional-panel--language { margin-top: 18px; }
.requirement-guidance {
  display: grid;
  gap: 7px;
  padding: 15px 17px;
  border: 1px solid rgba(19,107,120,.24);
  border-radius: 14px;
  color: var(--ink-2);
  background: rgba(108,198,208,.08);
  line-height: 1.5;
}
.requirement-guidance[hidden] { display: none; }
.requirement-guidance > strong { color: var(--ink); font-size: .94rem; }
.requirement-guidance > p { margin: 0; font-size: .84rem; }
.requirement-guidance__evidence { margin: 2px 0 0; padding-left: 20px; font-size: .82rem; }
.requirement-guidance__evidence:empty { display: none; }
.requirement-guidance[data-status="required"] { border-color: rgba(193,113,30,.30); background: #fff8ec; }
.requirement-guidance[data-status="waived"],
.requirement-guidance[data-status="satisfied"],
.requirement-guidance[data-status="not_applicable"] { border-color: rgba(55,150,78,.24); background: #f3fbf4; }
.conditional-panel__intro { margin-bottom: 18px; color: var(--ink-2); font-size: .86rem; line-height: 1.5; }
.criteria-note { margin: 9px 0 0; padding: 11px 13px; border-radius: 12px; color: var(--ink-2); background: #fff; font-size: .8rem; line-height: 1.45; }
.blocking-note { margin-top: 18px; }
@media (max-width: 640px) {
  .choice-grid--two { grid-template-columns: 1fr; }
  .choice-card { min-height: 0; }
  .segmented-choices { width: 100%; }
}

/* V1.94: spacious editable study mode/intake controls and contextual key dates. */
.readonly-value--control select {
  width: 100%;
  min-height: 44px;
  margin-top: 7px;
  padding: 8px 10px;
  border: 1px solid #aebfc5;
  border-radius: 11px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: .88rem;
  font-weight: 760;
}
.readonly-value--control select:hover { border-color: #78949d; }
.readonly-value--control select:focus-visible { outline: 3px solid rgba(19,107,120,.35); outline-offset: 2px; }
.readonly-value__help { display: block; margin-top: 6px; color: var(--muted); font-size: .7rem; font-weight: 650; line-height: 1.35; }
.readonly-value--control .field__error { margin-top: 5px; font-size: .72rem; }
.progress-nav [aria-disabled="true"] { opacity: .72; }
.progress-nav [aria-disabled="true"][data-complete="true"] { opacity: 1; }

@media (min-width: 641px) {
  .academic-background-grid > .field:not(.field--full) .field__head {
    min-height: 55px;
    align-items: center;
  }
}
@media (min-width: 641px) and (max-width: 1100px) {
  .academic-background-grid > .field:not(.field--full) .field__head { min-height: 70px; }
}

/* Keep save confirmation visible without covering focused controls in short landscape viewports. */
@media (max-height: 600px) and (orientation: landscape) {
  .autosave-toast {
    position: static;
    width: fit-content;
    max-width: min(420px, calc(100vw - 24px));
    margin: 8px auto 12px;
    opacity: 0;
    transform: none;
  }
  .autosave-toast.is-visible { opacity: 1; transform: none; }
}


.document-upload-toast {
  position: fixed;
  z-index: 145;
  top: calc(env(safe-area-inset-top, 0px) + var(--header-h) + 66px);
  left: 50%;
  width: max-content;
  max-width: min(560px, calc(100vw - 24px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 13px 12px 16px;
  border: 1px solid rgba(169, 91, 0, .45);
  border-radius: 16px;
  color: #4d2d00;
  background: #fff4dc;
  box-shadow: 0 16px 42px rgba(68, 38, 0, .20);
  transform: translateX(-50%);
  font-size: .8rem;
  font-weight: 780;
  line-height: 1.4;
}
.document-upload-toast--success { border-color: rgba(19,107,120,.42); color: #103f48; background: #e8f6f8; }
.document-upload-toast__close { width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid currentColor; border-radius: 50%; color: inherit; background: rgba(255,255,255,.72); font: inherit; font-size: 1.25rem; line-height: 1; cursor: pointer; }
.document-upload-toast[hidden] { display: none; }
.document-card__message--error { padding: 11px 13px; border: 1px solid rgba(185,56,56,.25); border-radius: 12px; color: #7e1f1f; background: rgba(185,56,56,.07); font-weight: 720; }
.document-card__message--info { padding: 11px 13px; border: 1px solid rgba(19,107,120,.22); border-radius: 12px; color: #174f5a; background: rgba(108,198,208,.09); }

/* V2.02 document-processing responsive applicant document workspace. */
.documents-section { display: grid; gap: 18px; margin-top: clamp(38px, 6vw, 66px); padding-top: clamp(30px, 5vw, 48px); border-top: 1px solid var(--line); }
.documents-section__intro { max-width: 76ch; }
.documents-section__intro h2 { font-size: clamp(1.8rem, 4vw, 3rem); }
.document-care-note { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 13px; align-items: start; padding: 17px 19px; border: 1px solid rgba(35,122,89,.26); border-radius: 16px; color: #155a43; background: rgba(35,122,89,.07); }
.document-care-note__icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font-weight: 900; }
.document-care-note p { margin: 3px 0 0; color: #365f50; font-size: .81rem; line-height: 1.45; }
.documents-summary { display: grid; gap: 10px; padding: 18px 20px; border: 1px solid rgba(19,107,120,.2); border-radius: 17px; background: linear-gradient(135deg,#fff,rgba(108,198,208,.08)); }
.documents-summary__meter { display: grid; gap: 11px; }
.documents-summary__label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 18px; }
.documents-summary__label strong { font-size: .94rem; }
.documents-summary__label span, .documents-summary__supplemental { color: var(--muted); font-size: .78rem; }
.documents-summary__track { height: 8px; overflow: hidden; border-radius: 999px; background: #dce8eb; }
.documents-summary__fill { height: 100%; display: block; border-radius: inherit; background: var(--teal); transition: width 220ms ease; }
.documents-summary__supplemental { margin: 0; }
.document-cards { display: grid; gap: 15px; }
.document-card { min-width: 0; display: grid; gap: 15px; padding: clamp(17px,2.5vw,23px); border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 7px 24px rgba(6,31,42,.045); }
.document-card--minimum { border-left: 4px solid var(--magenta); }
.document-card--locked { background: linear-gradient(145deg,#fff,rgba(35,122,89,.025)); }
.document-card--reopened { border-color: rgba(175,104,0,.42); background: linear-gradient(145deg,#fff,rgba(255,184,77,.07)); }
.document-card__header { min-width: 0; display: flex; justify-content: space-between; gap: 18px; align-items: start; }
.document-card__heading { min-width: 0; }
.document-card__heading h3 { font-size: clamp(1.03rem,2vw,1.25rem); line-height: 1.3; }
.document-card__heading p { margin: 4px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.document-status { flex: 0 0 auto; max-width: 210px; padding: 6px 10px; border-radius: 999px; font-size: .68rem; font-weight: 850; line-height: 1.25; text-align: center; }
.document-status--required { color: #7a1245; background: rgba(196,42,135,.11); }
.document-status--supplemental { color: #305a64; background: rgba(108,198,208,.16); }
.document-status--success { color: #155a43; background: rgba(35,122,89,.11); }
.document-status--warning { color: #754600; background: rgba(255,184,77,.2); }
.document-status--busy { color: #174f5a; background: rgba(19,107,120,.12); }
.document-dropzone { min-width: 0; max-width: 100%; display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 15px; align-items: center; min-height: 112px; padding: 18px; border: 2px dashed #abc0c6; border-radius: 17px; background: #fbfdfd; transition: border-color 160ms ease, background 160ms ease, transform 160ms ease; }
.document-dropzone:hover, .document-dropzone:focus-visible, .document-dropzone.is-dragging { border-color: var(--teal); background: rgba(108,198,208,.08); }
.document-dropzone.is-dragging { transform: scale(1.005); }
.document-dropzone__icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; color: var(--teal); background: rgba(108,198,208,.14); font-size: 1.45rem; }
.document-dropzone__copy strong, .document-dropzone__copy span { display: block; }
.document-dropzone__copy strong { font-size: .9rem; }
.document-dropzone__copy span { margin-top: 3px; color: var(--muted); font-size: .75rem; }
.document-actions { min-width: 0; max-width: 100%; display: flex; flex-wrap: wrap; gap: 8px; justify-content: end; }
.document-actions .button { min-height: 42px; padding-inline: 13px; font-size: .77rem; }
.document-file-input { position: absolute !important; }
.document-actions--compact { justify-content: start; }
.document-received { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: center; padding: 15px 16px; border: 1px solid rgba(35,122,89,.2); border-radius: 15px; background: rgba(35,122,89,.055); }
.document-received__meta { min-width: 0; display: grid; gap: 3px; }
.document-received__meta strong { font-size: .88rem; }
.document-received__meta span { color: var(--muted); font-size: .73rem; }
.document-received__meta .document-preserved { color: #155a43; font-weight: 760; }
.document-received__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: end; align-items: center; }
.document-card__message { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.document-card__message--warning { color: #754600; }
.document-card__message.document-card__message--error { color: #6b1717; }
.document-draft { display: grid; gap: 12px; padding: 15px; border: 1px solid rgba(19,107,120,.2); border-radius: 15px; background: var(--soft); }
.document-draft__title { margin: 0; font-size: .79rem; font-weight: 850; }
.document-source-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.document-source { min-width: 0; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 10px 11px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.document-source__index { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--ink); font-size: .7rem; font-weight: 900; }
.document-source__copy { min-width: 0; }
.document-source__copy strong, .document-source__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-source__copy strong { font-size: .79rem; }
.document-source__copy small { margin-top: 2px; color: var(--muted); font-size: .68rem; }
.document-source__controls { display: flex; gap: 5px; align-items: center; }
.icon-button { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #aebfc5; border-radius: 10px; color: var(--ink); background: #fff; font: inherit; font-weight: 900; cursor: pointer; }
.icon-button:disabled { opacity: .35; cursor: default; }
.text-button { min-height: 34px; padding: 4px 8px; border: 0; color: var(--ink-2); background: transparent; font: inherit; font-size: .72rem; font-weight: 820; cursor: pointer; }
.text-button--danger { color: #8a1d2f; }
.document-draft__actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: center; }
.document-empty { padding: 26px; border: 1px dashed #abc0c6; border-radius: 17px; color: var(--muted); background: #fbfdfd; text-align: center; }
.application-fee-card { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 16px; align-items: start; padding: clamp(18px,3vw,24px); border: 1px solid rgba(19,107,120,.24); border-radius: 20px; background: linear-gradient(135deg,#fff,rgba(108,198,208,.11)); box-shadow: 0 8px 24px rgba(6,31,42,.045); }
.application-fee-card[hidden] { display: none; }
.application-fee-card__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; color: #fff; background: var(--teal); font-size: 1.2rem; font-weight: 900; }
.application-fee-card h3 { margin: 2px 0 6px; font-size: clamp(1.05rem,2vw,1.3rem); }
.application-fee-card p { margin: 0; color: var(--ink-2); font-size: .84rem; line-height: 1.55; }
.application-fee-card .application-fee-card__support { margin-top: 8px; color: #155a43; font-weight: 760; }
.submit-panel { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: center; padding: clamp(18px,3vw,25px); border: 1px solid rgba(19,107,120,.24); border-radius: 20px; background: linear-gradient(135deg,#fff,rgba(108,198,208,.09)); }
.submit-panel h3 { font-size: clamp(1.15rem,2.5vw,1.55rem); }
.submit-panel p:last-child { margin: 5px 0 0; color: var(--muted); font-size: .82rem; }
.submit-panel--complete { border-color: rgba(35,122,89,.3); background: rgba(35,122,89,.07); }
.application-form--submitted .save-bar { display: flex; }

.document-scanner-dialog { width: min(920px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 22px; color: var(--ink); background: transparent; }
.document-scanner-dialog::backdrop { background: rgba(3,18,24,.76); backdrop-filter: blur(4px); }
.document-scanner-dialog__surface { max-height: calc(100vh - 24px); display: grid; grid-template-rows: auto minmax(0,1fr) auto auto; gap: 13px; padding: clamp(16px,3vw,24px); overflow: hidden; border-radius: 22px; background: #fff; box-shadow: 0 24px 70px rgba(0,0,0,.3); }
.document-scanner-dialog__surface > header { display: flex; justify-content: space-between; gap: 16px; align-items: start; }
.document-scanner-dialog__surface h2 { font-size: clamp(1.25rem,3vw,1.8rem); }
.document-scanner-dialog__surface header p:last-child { margin: 5px 0 0; color: var(--muted); font-size: .8rem; }
.dialog-close { width: 40px; height: 40px; flex: 0 0 40px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: #fff; font-size: 1.5rem; cursor: pointer; }
.document-scanner-stage { position: relative; min-height: 220px; display: grid; place-items: center; overflow: auto; border-radius: 15px; background: #10242b; }
.document-scanner-stage canvas { max-width: 100%; max-height: min(64vh, 720px); display: block; object-fit: contain; }
.document-corner-handles { position: absolute; inset: 0; pointer-events: none; }
.document-corner-handle { position: absolute; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: transparent; pointer-events: auto; cursor: grab; transform: translate(-50%,-50%); touch-action: none; }
.document-corner-handle::after { content: ""; position: absolute; inset: 8px; border: 4px solid #fff; border-radius: 50%; background: var(--magenta); box-shadow: 0 2px 10px rgba(0,0,0,.45); }
.document-corner-handle:focus-visible { outline: 3px solid #fff; outline-offset: 1px; }
.document-corner-handle:active { cursor: grabbing; }
.document-scanner-dialog footer { display: flex; justify-content: end; gap: 10px; }

@media (max-width: 780px) {
  .document-dropzone { grid-template-columns: 40px minmax(0,1fr); }
  .document-dropzone > .document-actions { grid-column: 1 / -1; justify-content: stretch; }
  .document-dropzone > .document-actions .button { flex: 1 1 150px; }
  .document-received { grid-template-columns: 1fr; }
  .document-received__actions { justify-content: start; }
}
@media (max-width: 640px) {
  .document-card__header { display: grid; gap: 10px; }
  .document-status { justify-self: start; max-width: none; }
  .document-dropzone { display: block; min-height: 0; padding: 12px; border: 1px solid rgba(19,107,120,.22); background: rgba(108,198,208,.045); }
  .document-dropzone__icon, .document-dropzone__copy { display: none; }
  .document-dropzone .document-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .document-dropzone .document-actions .button { width: auto; min-width: 0; padding-inline: 9px; font-size: .72rem; }
  .document-card { max-width: 100%; padding: 17px 15px; }
  .document-draft, .document-received { max-width: 100%; }
  .document-received__actions .button { width: 100%; }
  .document-received__actions, .document-actions--compact { width: 100%; display: grid; grid-template-columns: 1fr; }
  .document-source { grid-template-columns: 28px minmax(0,1fr); }
  .document-source__controls { grid-column: 2; justify-content: start; }
  .document-draft__actions { display: grid; }
  .document-draft__actions > * { width: 100%; }
  .submit-panel { grid-template-columns: 1fr; }
  .submit-panel .button { width: 100%; }
  .document-scanner-dialog { width: 100vw; max-height: 100dvh; }
  .document-scanner-dialog__surface { min-height: 100dvh; max-height: 100dvh; border-radius: 0; padding: max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom)); }
  .document-scanner-stage canvas { max-height: 60dvh; }
  .document-scanner-dialog footer { display: grid; grid-template-columns: 1fr; }
  .document-scanner-dialog footer .button { width: 100%; }
}
@media (max-width: 360px) {
  .document-dropzone .document-actions { grid-template-columns: 1fr; }
  .document-dropzone .document-actions .button { width: 100%; }
}
@media (max-width: 640px) {
  .document-upload-toast { top: calc(env(safe-area-inset-top, 0px) + var(--header-h) + 62px); width: calc(100vw - 24px); }
}
@media (max-height: 600px) and (orientation: landscape) {
  .document-upload-toast { top: calc(env(safe-area-inset-top, 0px) + var(--header-h) + 8px); max-width: min(520px, calc(100vw - 24px)); }
}
@media (hover: none) and (pointer: coarse) {
  .document-action--camera { display: inline-flex; }
  .document-dropzone { border-style: solid; }
}
@media (min-width: 641px) and (hover: hover) and (pointer: fine) {
  .document-action--camera { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .documents-summary__fill, .document-dropzone { transition: none; }
}

/* V2.02 deterministic upload activity and portal actions. */
.document-status--busy { display: inline-flex; align-items: center; gap: 7px; }
.document-status__spinner {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: document-status-spin .8s linear infinite;
}
@keyframes document-status-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .document-status__spinner { animation-duration: 1.8s; } }
.document-dropzone__icon { color: #0b5964; }

.document-status--optional { color: #315268; background: rgba(49,82,104,.1); }
.document-optional-cue { display: inline-flex; margin-left: 8px; padding: 2px 7px; border-radius: 999px; color: #315268; background: rgba(49,82,104,.1); font-size: .72rem; font-weight: 760; vertical-align: middle; }
.document-card h3 .required-cue { margin-left: 8px; }
.trusted-actor-banner { margin-bottom: 16px; border-color: rgba(145,0,72,.28); background: #fff9fc; color: #5b173c; font-weight: 850; }

.trusted-actor-banner__link { color: inherit; font-weight: 950; text-decoration: underline; text-underline-offset: 3px; }
.trusted-actor-banner__link:focus-visible { outline: 3px solid rgba(145,0,72,.30); outline-offset: 3px; border-radius: 6px; }

.application-status-card--action-needed, .applicant-action-needed { border-color: rgba(193, 113, 30, .28); background: #fff8ec; }
.application-status-card--informational { border-color: rgba(55, 150, 78, .24); background: #f3fbf4; }
