/* The application shares the site's type, ink, surface geometry and metric tokens. */
body.application-open{overflow:hidden;}

/* ---- shared controls: the platform's account, status and home views use these too ---- */
.application-field{display:flex;flex-direction:column;gap:var(--application-label-gap);min-width:0;font:400 var(--fs-12)/var(--lh-tight) var(--font-mono);color:var(--text-soft);}
.application-field input:not([type=checkbox]),.application-field select,.application-field textarea{width:100%;min-width:0;min-height:var(--application-control-height);padding:var(--application-control-padding);font:400 var(--fs-14)/var(--lh-tight) var(--font-mono);color:var(--ink);}
.application-field input::placeholder,.application-field textarea::placeholder{color:var(--text-muted);}
.application-field select,.application-field textarea{display:block;border:0;background:transparent;}
.application-submit{display:flex;align-items:center;justify-content:space-between;gap:var(--application-gap);width:100%;min-height:var(--application-submit-height);padding:var(--application-control-padding);background:var(--ink);color:var(--on-ink);font:400 var(--fs-14)/var(--lh-tight) var(--font-mono);letter-spacing:var(--ls-button);cursor:pointer;transition:background-color var(--t-hover) ease;}
.application-submit:hover{background:var(--ink-soft);}
.application-submit:disabled{opacity:var(--application-disabled-opacity);cursor:not-allowed;}
.application-submit:focus-visible::after{background-image:var(--surface-focus);filter:invert(1);}
.application-error,.application-note{margin:0;font:400 var(--fs-12)/var(--lh-copy) var(--font-mono);color:var(--text-soft);}
.application-error{color:var(--ink);}
.application-retry{justify-self:start;background:transparent;border:0;padding:0;font:400 var(--fs-12)/var(--lh-copy) var(--font-mono);color:var(--ink);text-decoration:underline;cursor:pointer;}
.application-progress p{font:400 var(--fs-14)/var(--lh-copy) var(--font-mono);color:var(--text-soft);margin:0;}
.application-progress a{color:var(--ink);}
.account-page{max-width:var(--application-width);}
.account-form{display:grid;gap:var(--application-gap);margin-bottom:var(--application-gap);}
.account-page .application-submit{text-decoration:none;}

/* ---- one question at a time ----
   A large question, one answer, Continue. The questions share one grid cell so a change of
   question cross-fades in place without moving what is around it (src/application.js). */
.application-flow{display:flex;flex-direction:column;min-height:100%;color:var(--ink);}
.application-flow [hidden]{display:none !important;}
.flow-top{display:flex;align-items:center;gap:14px;min-height:40px;}
.flow-back{display:inline-flex;align-items:center;gap:8px;margin-left:-2px;padding:10px 2px;border:0;background:none;color:var(--text-soft);font:400 var(--fs-12)/1 var(--font-mono);letter-spacing:var(--ls-button);text-transform:uppercase;cursor:pointer;transition:color var(--t-hover) ease,opacity var(--t-hover) ease;}
.flow-back:hover{color:var(--ink);}
.flow-back.is-idle{opacity:0;pointer-events:none;}
.flow-count{margin-left:auto;font:400 var(--fs-11)/1 var(--font-mono);letter-spacing:.06em;color:var(--text-muted);font-variant-numeric:tabular-nums;}
.flow-meter{flex:0 0 clamp(64px,24%,140px);height:var(--rule);background:var(--hairline);overflow:hidden;}
.flow-meter i{display:block;height:100%;width:calc(var(--flow-progress,0) * 100%);min-width:8px;background:var(--ink);transition:width var(--t-in) var(--ease);}
[data-view=verify] .flow-close{margin-left:auto;}
.flow-close{flex:none;display:grid;place-items:center;width:36px;height:36px;margin-right:-8px;padding:0;border:0;border-radius:50%;background:none;color:var(--ink);font:300 26px/1 var(--font-title);cursor:pointer;transition:background-color var(--t-hover) ease;}
.flow-close:hover{background:var(--surface-hover);}

/* Centred in the room below the progress row, a little above the middle: the extra bottom
   padding lifts the block by half its difference. */
.flow-form,.flow-verify{flex:1 0 auto;display:flex;flex-direction:column;justify-content:center;margin:0;padding:clamp(16px,3vh,32px) 0 clamp(64px,14vh,140px);}
.flow-stage{display:grid;}
.flow-question{grid-area:1/1;min-width:0;}
.flow-question h2,.flow-verify h2{margin:0;font:var(--w-title) var(--flow-question)/1.06 var(--font-title);letter-spacing:var(--ls-tight);text-wrap:balance;outline:none;}
.flow-question h2 label{cursor:default;}
.flow-help{margin:14px 0 0;max-width:46ch;font:400 var(--fs-14)/var(--lh-copy) var(--font-mono);color:var(--text-soft);}
.flow-help strong{color:var(--ink);font-weight:500;overflow-wrap:anywhere;}

.flow-city{display:block;margin-top:var(--flow-gap);}
.flow-city .menu{font-size:var(--fs-13);}
.flow-input{display:block;width:100%;height:var(--flow-input-h);margin:var(--flow-gap) 0 0;padding:0 20px;font:400 var(--flow-input-size) var(--font-mono);color:var(--ink);}
.flow-city .flow-input{margin:0;}
.flow-input::placeholder,.flow-textarea textarea::placeholder{color:var(--text-muted);}
.flow-textarea{display:block;width:100%;margin-top:var(--flow-gap);}
.flow-textarea textarea{display:block;width:100%;min-height:136px;max-height:38vh;padding:18px 20px;border:0;background:transparent;resize:none;font:400 var(--flow-input-size)/1.5 var(--font-mono);color:var(--ink);outline:none;}
.flow-textarea:focus-within::after{background-image:var(--surface-focus),var(--surface-edge);}
.flow-input[aria-invalid=true],.flow-textarea:has([aria-invalid=true])::after{background-image:var(--surface-focus),var(--surface-edge);}

.flow-choices{display:grid;gap:10px;margin-top:var(--flow-gap);}
.flow-choice{display:flex;align-items:center;gap:14px;min-height:var(--flow-choice-h);padding:12px 18px 12px 14px;cursor:pointer;font:400 var(--fs-15)/1.35 var(--font-mono);transition:background-color var(--t-tap) ease,color var(--t-tap) ease;}
.flow-choice input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none;}
.flow-key{flex:none;display:grid;place-items:center;width:26px;height:26px;border:var(--rule) solid currentColor;border-radius:8px;font:500 var(--fs-11)/1 var(--font-mono);}
.flow-choice:hover{background-color:var(--surface-hover);}
.flow-choice:has(input:checked){background-color:var(--ink);color:var(--on-ink);}
.flow-choice:has(input:focus-visible)::after{background-image:var(--surface-focus),var(--surface-edge);}
.flow-choice:has(input:checked:focus-visible)::after{filter:invert(1);}

.flow-note{margin:14px 0 0;max-width:52ch;font:400 var(--fs-12)/var(--lh-copy) var(--font-mono);color:var(--text-muted);}
.flow-error{display:flex;gap:10px;margin:16px 0 0;font:500 var(--fs-13)/var(--lh-copy) var(--font-mono);color:var(--ink);outline:none;}
.flow-error::before{content:'!';flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:2px;border-radius:50%;background:var(--ink);color:var(--on-ink);font:600 var(--fs-11)/1 var(--font-mono);}
.flow-terms{margin:24px 0 0;max-width:48ch;font:400 var(--fs-12)/var(--lh-copy) var(--font-mono);color:var(--text-soft);}
.flow-terms a{color:var(--ink);text-underline-offset:var(--application-link-offset);}
.flow-availability{display:grid;justify-items:start;gap:4px;margin:14px 0 0;}

.flow-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 22px;margin-top:var(--flow-gap);}
.flow-next{width:auto;min-width:188px;min-height:52px;gap:32px;padding:0 20px 0 22px;text-transform:uppercase;text-decoration:none;}
.flow-next-mark{font-size:var(--fs-15);}
/* Quiet until the answer is valid, then eases to ink. Pressing it early still explains why. */
.flow-next{transition:background-color var(--t-base) ease,color var(--t-base) ease;}
.flow-next.is-waiting,.flow-next.is-waiting:hover{background-color:var(--hairline);color:var(--text-soft);cursor:default;}
.flow-next.is-waiting:focus-visible::after{filter:none;}
.flow-hint{font:400 var(--fs-12)/1.4 var(--font-mono);color:var(--text-muted);}
.flow-secondary{display:inline-flex;align-items:center;min-height:52px;padding:0 22px;font:400 var(--fs-14)/1 var(--font-mono);letter-spacing:var(--ls-button);text-transform:uppercase;color:var(--ink);cursor:pointer;transition:background-color var(--t-hover) ease;}
.flow-secondary:hover{background-color:var(--surface-hover);}
.flow-secondary:disabled{opacity:var(--application-disabled-opacity);cursor:wait;}
.flow-link{padding:10px 0;border:0;background:none;font:400 var(--fs-13)/1.4 var(--font-mono);color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:pointer;}
.flow-form[aria-busy=true] .flow-next:disabled{cursor:wait;}

.flow-kicker{display:flex;align-items:center;gap:10px;margin:0 0 20px;font:500 var(--fs-11)/1 var(--font-mono);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-soft);}
.flow-pulse{flex:none;width:8px;height:8px;border-radius:50%;background:var(--ink);}
.flow-verify.is-active .flow-pulse{animation:flow-pulse 1.8s ease-in-out infinite;}
@keyframes flow-pulse{50%{opacity:.2;transform:scale(.7);}}
.flow-verify-note{min-height:1.6em;margin-top:16px;}
.flow-verify [data-verify-restart]{align-self:flex-start;margin-top:8px;color:var(--text-soft);font-size:var(--fs-12);}

@media(pointer:coarse){.flow-hint{display:none;}}
@media(max-width:860px){
 .flow-form,.flow-verify{justify-content:flex-start;padding:10px 0 12px;}
 .flow-help{margin-top:10px;font-size:var(--fs-13);}
 .flow-textarea textarea{min-height:104px;max-height:30vh;padding:14px 16px;}
 .flow-input{padding:0 16px;}
 .flow-choice{font-size:var(--fs-14);}
 .flow-next{min-width:0;flex:1 1 auto;}
 .flow-secondary{flex:1 1 auto;justify-content:center;}
 .flow-kicker{margin-bottom:14px;}
}
@media(prefers-reduced-motion:reduce){.flow-meter i,.flow-choice,.flow-back,.flow-next{transition:none;}.flow-verify.is-active .flow-pulse{animation:none;}}

/* The platform revises a brief in a sheet of its own, with the same questions. */
.application-sheet{position:fixed;inset:12px auto 12px 12px;width:min(640px,calc(100% - 24px));height:auto;max-width:none;max-height:none;margin:0;padding:0;color:var(--ink);overflow:hidden;}
.application-sheet::backdrop{background:var(--scrim);}
.application-sheet .application-flow{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:18px clamp(22px,4vw,48px) 28px;}
