.application__card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: 48px; padding: 48px; border-radius: 6px; background: var(--color-white); }
.application__intro { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.application__heading { display: flex; flex-direction: column; gap: 16px; }
.application__contacts { display: flex; flex-direction: column; gap: 32px; }
.application__contact-links { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.application__contact-links a { text-decoration: none; }
.application__contact-links a:hover { color: var(--color-accent); }
.application__form { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.application__fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.application__field { position: relative; min-width: 0; opacity: 0.5; transition: opacity 150ms ease; }
.application__field:focus-within, .application__field:has(input:not(:placeholder-shown)) { opacity: 1; }
.application__input, .application__message { display: block; width: 100%; border: 1px solid var(--color-muted); border-radius: 6px; color: var(--color-text); background: var(--color-white); }
.application__input { height: 50px; padding: 0 24px; }
.application__input[required] { padding-right: 48px; }
.application__input::placeholder, .application__message::placeholder { color: var(--color-text); opacity: 1; }
.application__required { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); color: var(--color-accent); pointer-events: none; }
.application__attachment-row { display: flex; align-items: center; gap: 16px; min-width: 0; }
.application__attach { flex: 0 1 calc(50% - 8px); min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 50px; padding: 0 24px; border: 1px solid var(--color-accent); border-radius: 6px; color: var(--color-accent); background: transparent; }
.application__attach svg { width: 16px; height: 16px; flex-shrink: 0; }
.application__attach:hover { background: var(--color-background); }
.application__file { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; }
.application__file[hidden], .application__status[hidden] { display: none; }
.application__filename { overflow-wrap: anywhere; }
.application__remove { display: flex; align-items: center; justify-content: center; flex: 0 0 20px; width: 20px; height: 20px; border: 0; padding: 0; color: var(--color-accent); background: transparent; }
.application__remove svg { width: 20px; height: 20px; }
.application__message { min-height: 140px; padding: 18px 24px; resize: vertical; opacity: 0.5; transition: opacity 150ms ease; }
.application__message:focus, .application__message:not(:placeholder-shown) { opacity: 1; }
.application__consent { display: flex; align-items: center; gap: 10px; }
.application__consent a { color: var(--color-accent); text-decoration: none; }
.application__consent a:hover { text-decoration: underline; }
.application__consent label { cursor: pointer; }
.application__checkbox-wrap { position: relative; flex: 0 0 18px; width: 18px; height: 18px; }
.application__checkbox { display: block; appearance: none; width: 18px; height: 18px; margin: 0; border: 1px solid var(--color-muted); border-radius: 4px; background: var(--color-white); cursor: pointer; }
.application__checkbox:checked { border-color: var(--color-accent); }
.application__check { position: absolute; inset: 3px; width: 12px; height: 12px; opacity: 0; pointer-events: none; }
.application__checkbox:checked + .application__check { opacity: 1; }
.application__submit { display: flex; align-items: center; justify-content: center; width: 100%; height: 50px; padding-inline: 24px; border: 0; border-radius: 6px; color: var(--color-white); background: var(--color-accent); transition: background-color 150ms ease; }
.application__submit:hover { background: var(--color-accent-dark); }
@media (max-width: 1024px) {
  .application__card { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px; padding: 32px; }
  .application__fields { grid-template-columns: minmax(0, 1fr); }
  .application__contacts { gap: 24px; }
  .application__attach { flex: 1; }
  .application__attachment-row:has(.application__file:not([hidden])) { flex-wrap: wrap; }
  .application__attachment-row:has(.application__file:not([hidden])) .application__attach { flex-basis: 100%; }
}
@media (max-width: 767px) {
  .application__card { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 24px; }
  .application__intro { gap: 24px; }
}
