.application-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); align-items: start; gap: 40px; width: min(1200px, calc(100% - 2 * var(--gutter))); margin: 52px auto 72px; }
.application-intro { position: sticky; top: 28px; }
.application-intro h1 { margin: 16px 0; font-size: clamp(2rem, 3.4vw, 3.3rem); font-weight: 800; line-height: 1.4; text-shadow: 0 4px 22px #34106e70; }
.application-intro h1 span { color: var(--gold); }
.application-intro > p:not(.auth-eyebrow) { color: var(--lilac-200); font-size: .9rem; }
.application-mascot { width: 120px; margin: 20px 0; filter: drop-shadow(0 14px 20px #19063a66); }
.application-steps { display: grid; gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }
.application-steps button { display: flex; align-items: center; gap: 14px; width: 100%; padding: 12px; border: 1px solid #ffffff40; border-radius: 16px; background: #ffffff10; color: #fff; font: 500 .9rem var(--font-body); text-align: left; cursor: pointer; }
.application-steps button span { color: var(--gold); font: 600 .65rem var(--font-display); }
.application-steps [aria-current="step"] { background: #ffffff2b; border-color: var(--gold); box-shadow: 0 0 18px #ffd76a20; }
.application-status-link { color: var(--lilac-200); font-size: .85rem; text-underline-offset: 4px; }
.application-card .auth-card__head { padding-bottom: 20px; }
.application-card #reload-application { margin-bottom: 22px; }
.application-progress { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 14px 0; border-block: 1px solid #e1d6eb; color: #6d5e7d; font-size: .8rem; }
.application-step > h3 { margin: 28px 0 8px; font-size: 1.2rem; }
.application-hint { margin: 8px 0 20px; color: #6d5e7d; font-size: .85rem; }
.application-question { margin-top: 28px; padding-bottom: 28px; border-bottom: 1px solid #e1d6eb; }
.application-question__number { display: inline-block; margin-bottom: 12px; padding: 4px 12px; border-radius: 10px; background: #eee3fa; color: var(--purple-600); font-size: .8rem; font-weight: 600; }
.application-prompt { margin: 0 0 16px; color: var(--ink); font-size: .92rem; line-height: 1.9; white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 4; }
.application-help { padding: 12px 16px; margin: 12px 0 18px; border-radius: 12px; background: #eee3fa; color: #645076; font-size: .8rem; line-height: 1.8; white-space: pre-wrap; }
.application-answer { display: block; }
.application-answer > label { display: block; margin-bottom: 8px; }
.application-answer textarea { min-height: 180px; line-height: 1.7; tab-size: 4; }
.application-answer .code-answer { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: .92rem; }
.application-answer .answer-counter { display: block; margin-top: 8px; text-align: right; color: #7b6a8c; font-size: .72rem; font-weight: 400; }
.application-choices { display: grid; gap: 10px; }
.application-choices label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.application-choices input, .application-consent-check input { flex: 0 0 auto; width: 20px; min-height: 20px; height: 20px; margin: 2px 0 0; padding: 0; accent-color: var(--purple-500); }
.application-answer [aria-invalid="true"] { border-color: #b2284f; }
.application-field-error { display: block; margin-top: 8px; color: #a02145; font-size: .78rem; font-weight: 400; }
.application-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding-top: 24px; margin-top: 24px; border-top: 1px solid #e1d6eb; }
.application-actions .auth-button { min-height: 48px; font-size: .85rem; }
.application-step-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-left: auto; }
.application-actions > p { width: 100%; color: #6d5e7d; font-size: .78rem; }
.application-review-item { margin-top: 16px; padding: 16px; border: 1px solid #e1d6eb; border-radius: 14px; }
.application-review-item summary { cursor: pointer; color: var(--purple-600); font-size: .85rem; font-weight: 600; }
.application-review-item .application-prompt { margin-top: 14px; font-size: .85rem; }
.application-saved-answer { padding: 14px; margin-top: 12px; border-radius: 12px; background: #f2ecf9; color: var(--ink); font: 400 .9rem/1.8 var(--font-body); white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 4; }
.application-missing { color: #a02145; font-weight: 500; }
.application-consent { padding-top: 28px; margin-top: 28px; border-top: 1px solid #e1d6eb; }
.application-consent details { margin-bottom: 16px; padding: 16px; border: 1px solid #d9cde6; border-radius: 14px; }
.application-consent summary { color: var(--purple-600); cursor: pointer; font-weight: 600; }
.application-consent__body { max-height: 320px; overflow-y: auto; padding-top: 16px; color: #5e4b72; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .85rem; line-height: 1.9; }
.application-consent-check { display: flex; gap: 10px; align-items: flex-start; color: var(--ink); font-size: .85rem; }
.application-consent .form-grid { margin-top: 18px; }
#application-review-content > h3, #application-documents > h3 { margin: 28px 0 8px; font-size: 1.2rem; }
.application-document { padding: 22px; margin-top: 18px; border: 1px solid #dfd0ef; border-radius: 18px; background: linear-gradient(135deg, #fbf8ff, #f4edfc); }
.application-document__heading { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.application-document__heading h4 { flex: 1; min-width: 180px; color: var(--ink); font-size: .96rem; line-height: 1.6; }
.application-document__icon { display: grid; place-items: center; width: 42px; height: 48px; flex-shrink: 0; border-radius: 10px; background: #eee0fb; color: var(--purple-600); font: 700 .68rem var(--font-body); }
.application-document__badge { padding: 4px 10px; border-radius: 999px; background: #fcebdc; color: #915322; font-size: .7rem; white-space: nowrap; }
.application-document__badge.is-uploaded { background: #def2e5; color: #23613d; }
.application-document .application-hint { margin: 12px 0; font-size: .8rem; }
.application-document__resources { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid #e1d6eb; }
.application-document__preview { display: grid; gap: 6px; width: 150px; font-size: .74rem; text-align: center; }
.application-document__preview img { display: block; width: 100%; height: 150px; object-fit: contain; padding: 6px; border: 1px solid #dfd0ef; border-radius: 10px; background: #fff; }
.application-document__links { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: .78rem; }
.application-document__links a, .application-document__preview { color: var(--purple-600); text-underline-offset: 3px; }
.application-document__links .application-document__download { display: inline-block; padding: 12px 16px; border-radius: 12px; background: var(--purple-600); color: #fff; font-weight: 500; text-decoration: none; line-height: 1.7; }
.application-document__download:hover { filter: brightness(1.1); }
.application-document__pending { color: #7b6a8c; font-size: .75rem; }
.application-document__saved { display: grid; gap: 6px; padding: 14px; margin-bottom: 14px; border: 1px solid #c6e4d2; border-radius: 12px; background: #f2fbf5; color: #24533c; overflow-wrap: anywhere; }
.application-document__saved strong { font-size: .85rem; }
.application-document__saved small { font-size: .72rem; }
.application-document__remove { padding: 0; border: 0; background: none; color: #a02145; font: inherit; text-decoration: underline; cursor: pointer; }
.application-document__upload { display: block; margin-bottom: 8px; color: var(--ink); font-size: .8rem; font-weight: 500; }
.application-document input[type="file"] { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 8px; border: 1px dashed #b89ad4; border-radius: 12px; background: #fff; color: #645076; font: .75rem var(--font-body); }
.application-document input::file-selector-button { padding: 6px 10px; margin-right: 8px; border: 0; border-radius: 8px; background: #eee0fb; color: var(--purple-600); font: inherit; cursor: pointer; }
.application-document [aria-invalid="true"] { border-color: #b2284f; }
.application-answer-image h4 { margin: 0 0 12px; color: var(--ink); font-size: .9rem; }
.application-answer-image__preview { display: grid; gap: 8px; color: var(--purple-600); font-size: .78rem; }
.application-answer-image__preview img { display: block; width: 100%; max-height: 320px; object-fit: contain; border: 1px solid #dfd0ef; border-radius: 12px; background: #fff; }
.application-answer-image .application-document__links { margin-bottom: 12px; }
@media (max-width: 560px) { .application-document { padding: 16px; } .application-document__heading h4 { min-width: 150px; } }
.application-success { margin-bottom: 24px; padding: 20px; border: 1px solid #9ed4b7; border-radius: 16px; background: #eaf8f0; color: #24533c; line-height: 1.8; }
.application-success strong { display: block; margin-bottom: 4px; font-size: 1.15rem; }
.application-success a { display: inline-block; margin-top: 10px; color: #24533c; font-weight: 600; }
@media (max-width: 900px) {
  .application-layout { grid-template-columns: 1fr; max-width: 760px; gap: 24px; margin-top: 32px; }
  .application-intro { position: relative; top: auto; }
  .application-intro h1 { margin-top: 12px; padding-right: 100px; font-size: 2rem; }
  .application-intro h1 br { display: none; }
  .application-mascot { position: absolute; top: 16px; right: 0; width: 90px; margin: 0; }
  .application-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 20px; }
  .application-steps button { flex-direction: column; align-items: flex-start; gap: 6px; height: 100%; font-size: .76rem; }
}
@media (max-width: 560px) {
  .application-card { padding: 24px 18px; }
  .application-intro h1 { font-size: 1.7rem; }
  .application-steps { gap: 6px; }
  .application-steps button { padding: 10px; }
  .application-prompt { font-size: .87rem; }
  .application-actions, .application-step-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .application-step-actions { margin: 0; }
}
