.form-status{display:none;margin:0 0 18px;padding:14px 16px;border:1px solid #f2b39d;border-left:4px solid #f2673a;border-radius:10px;color:#7f341f;background:#fff3ed;font-size:15px;font-weight:700;line-height:1.5}.form-status:not(:empty){display:block}.form-status a{color:inherit}

/* Form notices (draft saved / restored, submission result) */
.form-notice{display:none;margin:0 0 18px;padding:14px 16px;border:1px solid #bfe0d2;border-left:4px solid #258762;border-radius:10px;color:#1f5e47;background:#eaf6f0;font-size:15px;font-weight:700;line-height:1.5}
.form-notice:not(:empty){display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.form-notice a,.form-notice button{min-height:40px;padding:0;border:0;color:inherit;background:none;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* Field-level validation messages */
.field-error{margin:8px 0 0;color:#a13e34;font-size:14px;font-weight:700;line-height:1.45}
.field-error:empty{display:none}
#form [aria-invalid="true"],.join-form [aria-invalid="true"]{border-color:#a13e34;box-shadow:0 0 0 3px #a13e341a}.check:has(input:checked){border-color:#9fd0bb;background:#f1f9f5}.check:has(input[aria-invalid="true"]){border-color:#a13e34;background:#fffafa}
.two>div{min-width:0}
/* A required choice group that is still unanswered after "Send for evaluation": its options get the same red edge as an invalid text field. */
fieldset:has(>.photo-error:not(:empty))>:is(.cats,.brand-options)>button:not(.selected,:hover),.scope-columns>div:has(>.photo-error:not(:empty))>.scope-options>button:not(.selected,:hover){border-color:#a13e34;background:#fffafa}

/* Step indicator */
.form-steps span.done{color:var(--ink)}
.form-steps span.done b{border-color:#258762;color:#fff;background:#258762}

/* Pending submission */
#form[aria-busy="true"]{cursor:progress}
.actions button:disabled,.photo-actions button:disabled{opacity:.6;cursor:progress}
.upload-progress{display:grid;gap:10px;margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:#f8fafb}
.upload-progress[hidden]{display:none}
.upload-progress span{color:var(--ink);font-size:14px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.upload-progress progress{width:100%;height:10px;accent-color:var(--orange)}

/* Sign-in, membership, closed and loading states shown instead of the form */
.form-gate{padding:40px 44px;border:1px solid #12223817;border-radius:18px;background:#fff;box-shadow:0 18px 48px #16284212}
.form-gate[hidden],.form-gate [hidden]{display:none!important}
.form-gate__panel{display:flex;max-width:640px;flex-direction:column;align-items:flex-start;gap:12px}
.form-gate__mark{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;color:#fff;background:var(--ink);font:400 20px Georgia,serif}
.form-gate__panel--error .form-gate__mark{background:#a13e34}
.form-gate__panel>small{color:var(--orange-text);font-size:13px;font-weight:800;letter-spacing:.08em}
.form-gate__panel h2{margin:0;font:400 32px/1.15 Georgia,serif}
.form-gate__panel p{max-width:62ch;margin:0;color:var(--muted);font-size:16px;line-height:1.6;overflow-wrap:break-word}
.form-gate__panel p b{color:var(--ink)}.form-gate__panel .field-error{color:#a13e34;font-size:14px;font-weight:700;line-height:1.45}
.form-gate__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.form-gate__primary{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:0 26px;border:0;border-radius:11px;color:#fff;background:var(--ink);font-size:16px;font-weight:700;text-decoration:none;cursor:pointer}
.form-gate__primary:disabled{opacity:.6;cursor:progress}
.join-form{display:grid;width:100%;max-width:420px;gap:6px;margin-top:6px;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.join-form input{font-size:17px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.join-form label{margin-bottom:4px}

/* Success dialog additions (same orange focus ring as the rest of the site) */
#success :is(button,a):focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.success-warning{margin:0 0 20px;padding:12px 16px;border-radius:10px;color:#7f341f;background:#fff3ed;font-size:15px;line-height:1.5;text-align:left;overflow-wrap:anywhere}
.success-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}
.success-link{display:inline-flex;min-height:50px;align-items:center;padding:0 24px;border:1px solid #b9c2cc;border-radius:11px;color:var(--ink);font-size:16px;font-weight:700;text-decoration:none}

@media(max-width:720px){
  .form-notice a,.form-notice button{min-height:44px}
}

@media(max-width:650px){
  .form-gate{padding:24px 18px}
  .form-gate__panel h2{font-size:27px}
  .form-gate__actions{width:100%;flex-direction:column}
  .form-gate__primary{width:100%}
  .join-form{max-width:none;padding:0}
  .success-actions{flex-direction:column;align-items:stretch}
  .success-link{justify-content:center}
}
