.join-wizard { max-width: 1080px; margin: 0 auto 40px; }
.wizard-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin:12px 0 0; padding-bottom:0; }
.wizard-heading-actions { flex:none; text-align:right; }
.wizard-form-id { margin-bottom:8px; }
.wizard-status-alert { display:flex; justify-content:space-between; align-items:center; gap:16px; background:#fff; border:1px solid #ccc; color:#333; }
.wizard-status-alert .inline-form { margin-left:auto; }
.join-wizard .wizard-contest-name { color:#333; font-size:18px; font-weight:600; line-height:1.35; margin:0 0 5px; }
.wizard-deadline, .wizard-form-type { color:#555; font-size:17px; line-height:1.4; margin:0 0 10px; }
.wizard-progress { display:flex; gap:4px; margin-bottom:20px; }
.wizard-progress-item { flex:1; min-width:0; text-align:center; }
.wizard-progress-item > span, .wizard-progress-item > a { display:flex; width:100%; min-height:60px; align-items:center; justify-content:center; flex-direction:column; border:0; padding:8px 4px; background:#eee; color:#555; text-decoration:none; }
.wizard-progress-item.is-current > span { background:#337ab7; color:#fff; }
.wizard-progress-item.is-reached > span, .wizard-progress-item.is-reached > a { background:#d9edf7; color:#31708f; cursor:pointer; }
.wizard-progress-item.is-locked > span { opacity:.55; }
.wizard-progress-item b, .wizard-progress-item > a span { font-size:18px; }
.wizard-progress-item small { display:block; max-width:100%; min-height:2.4em; overflow:hidden; overflow-wrap:anywhere; white-space:normal; line-height:1.2; text-overflow:clip; }
.wizard-panel { background:#fff; border:1px solid #ddd; border-radius:4px; padding:22px; margin-bottom:16px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.wizard-panel-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.wizard-panel-heading h3 { margin-top:0; padding-top:0; }
.wizard-tip { color:#666; margin-bottom:18px; }
.wizard-group-guidance { margin:0 0 16px; color:#555; }
.wizard-group-guidance p { margin:0 0 6px; }
.wizard-group-guidance p:last-child { margin-bottom:0; }
.wizard-group-guidance ul { margin:0; padding-left:20px; }
.wizard-field-guidance { margin:0 0 16px; color:#555; }
.wizard-field-guidance h4 { margin:0 0 10px; color:#444; font-size:15px; }
.wizard-field-guidance-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; margin:0; padding:0; list-style:none; }
.wizard-field-guidance-list li { margin:0; }
.wizard-field-guidance-list strong, .wizard-field-guidance-list span { display:block; }
.wizard-field-guidance-list strong { margin-bottom:2px; color:#444; }
.wizard-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.wizard-field { display:block; font-weight:600; color:#444; }
.wizard-field .form-control { font-weight:400; }
.wizard-field .form-control-static { display:block; padding:7px 0; font-weight:400; }
.wizard-field-legend { margin:0 0 16px; color:#555; }
.wizard-required-marker { margin-left:3px; color:#a94442; font-weight:700; }
.wizard-optional-marker { margin-left:4px; color:#777; font-size:12px; font-weight:400; }
.wizard-school-phone-fax { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.wizard-school-address { grid-column:1/-1; }
.wizard-school-address h4 { margin:0 0 10px; color:#444; font-size:15px; }
.wizard-school-address-grid { display:grid; grid-template-columns:minmax(120px,.7fr) repeat(2,minmax(0,1fr)); gap:12px 16px; }
.wizard-school-address-grid > .wizard-field { display:flex; align-items:center; gap:5px; margin:0; }
.wizard-school-address-grid > .wizard-field .form-control { min-width:0; flex:1; }
.wizard-school-address-grid > .wizard-field .wizard-optional-marker { white-space:nowrap; }
.wizard-school-address-language { color:#666; font-size:12px; font-weight:600; }
.wizard-school-address-line { align-self:end; color:#444; font-weight:600; }
.wizard-linked-name-edit { margin-left:5px; color:#777; }
.wizard-linked-name-edit:hover, .wizard-linked-name-edit:focus { color:#333; }
.wizard-people { padding:0; margin:0; list-style:none; display:grid; gap:12px; }
.wizard-person-card { border:1px solid #ddd; border-radius:5px; overflow:hidden; background:#fff; }
.wizard-person-header { display:flex; align-items:center; gap:8px; padding:10px 12px; background:#f7f7f7; }
.wizard-person-number { width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:#337ab7; color:#fff; }
.wizard-person-header .wizard-move-up { margin-left:auto; }
.wizard-move-up, .wizard-move-down { border:1px solid #ccc; background:#fff; color:#555; border-radius:3px; padding:1px 7px; text-decoration:none; }
.wizard-move-up:hover, .wizard-move-down:hover, .wizard-move-up:focus, .wizard-move-down:focus { background:#f5f5f5; color:#333; }
.wizard-person-body { padding:14px; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; }
.wizard-person-body > .wizard-field { grid-column:span 4; }
.wizard-person-body > .wizard-field-name-zh { grid-column:span 3; }
.wizard-person-body > .wizard-field-email { grid-column:span 5; }
.wizard-person-body > .wizard-field-gender { grid-column:span 2; }
.wizard-person-body > .wizard-field-role { grid-column:span 7; }
.wizard-field-note { display:block; margin-top:5px; color:#777; font-size:12px; font-weight:400; line-height:1.35; }
.wizard-person-errors { grid-column:1/-1; color:#a94442; background:#f2dede; border:1px solid #ebccd1; border-radius:4px; padding:8px 12px; }
.wizard-person-errors ul { margin:0; padding-left:20px; }
.wizard-group-toolbar { text-align:right; margin-bottom:8px; }
.wizard-contact-sync { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.wizard-group-additions { display:flex; align-items:center; gap:12px; margin-top:16px; }
.wizard-group-or { color:#777; white-space:nowrap; }
.wizard-linked-search { flex:1; min-width:0; max-width:620px; position:relative; }
.wizard-linked-search-results { position:absolute; z-index:10; left:0; right:0; max-height:240px; overflow:auto; box-shadow:0 4px 10px rgba(0,0,0,.16); }
.wizard-actions { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin:16px 0 28px; }
.wizard-actions .wizard-back-button, .wizard-actions .wizard-back-form { margin-right:auto; }
.inline-form { display:inline; }
.wizard-competition { border:1px solid #ddd; padding:14px; margin:14px 0; border-radius:4px; }
.wizard-competition label { display:block; margin:8px 0; font-weight:400; }
.wizard-declaration { margin-left:18px !important; }
.wizard-confirmation { display:block; margin:14px 0; font-weight:400; }
.wizard-submitted-nominations { margin:20px 0; }
.wizard-submitted-nominations > h4 { margin:0 0 14px; font-size:18px; font-weight:600; }
.wizard-nomination-group + .wizard-nomination-group { margin-top:18px; }
.wizard-nomination-group h5 { margin:0 0 8px; font-size:16px; font-weight:600; }
.wizard-nomination-group .table { margin-bottom:0; }
.wizard-nomination-number { width:90px; text-align:center; }
.wizard-nomination-status-value { min-width:280px; }
.wizard-selected-upload-section { margin:18px 0; }
.wizard-selected-upload-section > strong { display:block; margin-bottom:8px; }
.wizard-selected-upload-previews { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,180px)); gap:12px; }
.wizard-selected-upload-empty { grid-column:1/-1; margin:0; color:#777; }
.wizard-selected-upload-preview { display:flex; flex-direction:column; gap:7px; align-items:center; padding:9px; border:1px solid #ddd; border-radius:4px; background:#fafafa; text-align:center; }
.wizard-selected-upload-preview img { display:block; width:100%; height:140px; object-fit:contain; background:#fff; }
.wizard-selected-upload-preview span { font-weight:600; color:#444; }
.wizard-selected-upload-preview small { max-width:100%; overflow-wrap:anywhere; color:#777; }
.wizard-upload-status { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:18px 0; }
.wizard-upload-previews { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,180px)); gap:12px; margin:18px 0 10px; }
.wizard-upload-preview { display:flex; flex-direction:column; gap:7px; align-items:center; padding:9px; border:1px solid #ddd; border-radius:4px; background:#fafafa; color:#444; text-align:center; text-decoration:none; }
.wizard-upload-preview:hover, .wizard-upload-preview:focus { border-color:#337ab7; background:#f4f9fd; color:#23527c; text-decoration:none; }
.wizard-upload-preview img { display:block; width:100%; height:120px; object-fit:contain; background:#fff; }
.wizard-upload-preview span { font-weight:600; }
.wizard-school-summary .row { padding:5px 0; }
.wizard-school-summary-label { font-weight:600; color:#444; }
.wizard-school-summary-value { min-height:30px; }
.wizard-school-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:12px; }
.wizard-grant-access { margin-top:22px; padding-top:18px; border-top:1px solid #ddd; }
.wizard-grant-access h4 { margin-top:0; }
.wizard-grant-access-form { max-width:520px; }
@media (max-width: 767px) {
  .wizard-heading { flex-direction:column; }
  .wizard-heading-actions { align-self:flex-end; }
  .wizard-status-alert { align-items:flex-start; flex-direction:column; }
  .wizard-status-alert .inline-form { align-self:flex-end; }
  .wizard-panel-heading { flex-direction:column; }
  .wizard-progress-item > span, .wizard-progress-item > a { min-height:60px; }
  .wizard-field-guidance-list { grid-template-columns:1fr; }
  .wizard-fields, .wizard-person-body { grid-template-columns:1fr; }
  .wizard-school-phone-fax { grid-template-columns:1fr; gap:16px; }
  .wizard-school-address-grid { grid-template-columns:1fr; }
  .wizard-school-address-language, .wizard-school-address-line { grid-column:1; }
  .wizard-person-body > .wizard-field { grid-column:1; }
  .wizard-group-additions { align-items:stretch; flex-direction:column; }
  .wizard-group-or { text-align:center; }
  .wizard-linked-search { max-width:none; }
  .wizard-panel { padding:16px; }
  .wizard-actions { position:sticky; bottom:0; z-index:5; background:#fff; padding:10px; margin:10px -16px 0; box-shadow:0 -2px 8px rgba(0,0,0,.12); }
  .wizard-actions button { flex:1; }
  .wizard-school-summary .row { padding:6px 0; }
}
