/* Form owns compact layout, inset group titles, field contrast, and visible focus.
   Shared public styles own navigation; schema and client own answers/validation. */
.application-page { --answer-background: #28545d; --answer-text: #f1f7f5; --answer-border: #90bbae; }
.application-wrap { width: 100%; max-width: 54rem; }
.application-page :is(h1,h2,p,legend,label) { overflow-wrap: anywhere; }
#job-application,#application-unlock { display: grid; grid-template-columns: minmax(0,1fr); gap: 1.1rem; margin-top: 1.25rem; }
#job-application fieldset { min-width: 0; border: 1px solid #87a79e; border-radius: .85rem; padding: 1rem; background: #203f5b; }
#job-application legend { float: left; width: 100%; box-sizing: border-box; font-size: 1.15rem; line-height: 1.35; font-weight: 700; text-align: left; padding: 0; margin-bottom: .75rem; max-width: 100%; }
/* Floating the semantic legend puts it inside the panel; clear the next row. */
#job-application legend + * { clear: both; }
#job-application .application-shifts { border: 0; border-radius: 0; padding: 0; background: transparent; }
.application-field { display: grid; gap: .4rem; margin: .75rem 0 1rem; }
.application-field label { font-weight: 700; }
.application-field p { margin: 0; }
.application-field :is(input,select,textarea) { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; font: inherit; color: var(--answer-text); background: var(--answer-background); border: 2px solid var(--answer-border); color-scheme: dark; caret-color: var(--answer-text); border-radius: .5rem; padding: .7rem; }
.application-field textarea { resize: vertical; min-height: 6rem; }
#job-application :is(input,select,textarea,button,a):focus-visible { outline: 3px solid #ffad84; outline-offset: 3px; }
.application-shifts label,.application-consent { display: flex; align-items: flex-start; gap: .65rem; padding: .75rem 0; }
.application-consent span { min-width: 0; flex: 1; }
.application-shifts input,.application-consent input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin-top: .25rem; }
.application-notice { padding: .75rem 1rem; border-left: 4px solid #f16f43; background: #203f5b; }
.application-notice h2 { margin-top: 0; }
.application-notice p:last-child { margin-bottom: 0; }
.application-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.application-page .button { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
#application-status { padding: .75rem 0; white-space: pre-wrap; }
/* One mobile gutter avoids stacked shared-wrapper padding at enlarged text. */
@media(max-width: 480px) { .application-page .content-section { padding-inline: 12px; } #job-application fieldset { padding: clamp(.5rem,3vw,1rem); } .application-page .actions { flex-direction: column; } }

.application-source {margin-block:1rem;min-width:0;}
.application-source a {overflow-wrap:anywhere;}
.application-source summary {cursor:pointer;font-weight:600;}
.application-test-banner {border:2px solid #8c4c00;padding:1rem;background:#fff3d6;color:#29201a;}

.application-contact-grid { display: grid; grid-template-columns: minmax(0,1fr); column-gap: 1rem; }
.application-contact-grid .application-field { margin-block: .5rem; }
.application-field option { color: var(--answer-text); background: var(--answer-background); }
.application-shifts input,.application-consent input { accent-color: #aee2cf; color-scheme: dark; }
@media(max-width: 600px) { .application-contact-grid { grid-template-columns: minmax(0,1fr); } }

.application-field :is(input,textarea):autofill { box-shadow: inset 0 0 0 1000px var(--answer-background); -webkit-text-fill-color: var(--answer-text); }

.application-field .application-field-error { color: #ffd1bd; font-weight: 600; }
.application-field [aria-invalid="true"] { border-color: #ffad84; }

.application-follow-up[hidden] { display:none; }
#application-security { display:flex; justify-content:center; width:150px; max-width:100%; margin-inline:auto; }

.application-character-count { color: #d4e6e0; font-size: .9rem; line-height: 1.4; }

/* Cognitive presentation: short chunks, named controls, quiet help and linked corrections. */
.application-question-prompt :is(p,ul) { margin: .6rem 0; }
.application-question-prompt ul { padding-left: 1.25rem; }
.application-question-prompt li { margin-block: .5rem; }
.application-field-help { color: #d4e6e0; line-height: 1.45; }
.application-sections { display: flex; flex-wrap: wrap; gap: .5rem; margin-block: 1rem; }
.application-sections a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: .55rem .75rem; border: 1px solid #90bbae; border-radius: .5rem; }
#job-application .application-field-error { color: #ffd1bd; font-weight: 600; }
.application-error-summary { padding: 1rem; border: 2px solid #ffad84; border-radius: .5rem; background: #203f5b; }
.application-error-summary[hidden] { display: none; }
.application-error-summary h2 { margin-top: 0; font-size: 1.2rem; }
.application-error-summary li { margin-block: .55rem; }
.application-error-summary a { overflow-wrap: anywhere; }
.application-security-help { text-align: center; }
#application-copy-status { min-height: 1.5em; }

/* Contact pairs share label/help/input rows so the confirmation is easy to compare. */
.application-contact-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .4rem 1rem; }
.application-contact-pair .application-field { grid-template-rows: subgrid; grid-row: span 5; }
@media(max-width:600px) { .application-contact-pair { grid-template-columns:minmax(0,1fr); } .application-contact-pair .application-field { grid-template-rows:none; grid-row:auto; } }

.application-notice h2 { font-size: 1.25rem; line-height: 1.35; }
.application-start li,.application-notice li { margin-block: .5rem; }
#application-copy-status:empty { display:none; }

.application-screenreader-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* Closed means no questionnaire in the document; hidden regions stay closed. */
#application-unlock[hidden],#application-region[hidden] { display:none; }
#application-unlock { padding:1rem; border:1px solid #87a79e; border-radius:.85rem; background:#203f5b; }
#application-unlock h2 { font-size:1.25rem; margin-top:0; }
#gate-security { display:flex; justify-content:center; width:150px; max-width:100%; margin-inline:auto; }
#application-unlock :is(input,button,a):focus-visible { outline:3px solid #ffad84; outline-offset:3px; }
