/* Genesis Crew Application Form — CSS */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
  --gc-primary:#1a365d; --gc-secondary:#2c7a7b; --gc-accent:#ecc94b;
  --gc-success:#10b981; --gc-danger:#ef4444; --gc-radius:16px; --gc-radius-sm:10px;
}

.genesis-apply-form-wrap { font-family:'Inter',sans-serif; max-width:780px; margin:0 auto; }

/* Progress Steps */
.gaf-steps { display:flex; align-items:flex-start; justify-content:center; gap:0; margin-bottom:40px; position:relative; }
.gaf-steps::before { content:''; position:absolute; top:20px; left:10%; right:10%; height:2px; background:#e2e8f0; z-index:0; }
.gaf-step-item { display:flex; flex-direction:column; align-items:center; gap:8px; flex:1; position:relative; z-index:1; }
.gaf-step-dot { width:40px; height:40px; border-radius:50%; background:#e2e8f0; border:3px solid #fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; color:#94a3b8; box-shadow:0 2px 8px rgba(0,0,0,.08); transition:all .35s; }
.gaf-step-item.active .gaf-step-dot { background:var(--gc-primary); color:#fff; transform:scale(1.1); }
.gaf-step-item.done   .gaf-step-dot { background:var(--gc-success); color:#fff; }
.gaf-step-label { font-size:11px; font-weight:700; color:#94a3b8; text-align:center; text-transform:uppercase; letter-spacing:.5px; transition:color .3s; }
.gaf-step-item.active .gaf-step-label, .gaf-step-item.done .gaf-step-label { color:var(--gc-primary); }

/* Progress Bar */
.gaf-progress-bar-wrap { height:4px; background:#e2e8f0; border-radius:99px; margin-bottom:32px; overflow:hidden; }
.gaf-progress-bar-fill { height:100%; background:linear-gradient(90deg,var(--gc-primary),var(--gc-secondary)); border-radius:99px; transition:width .5s cubic-bezier(.4,0,.2,1); }

/* Card */
.gaf-card { background:#fff; border-radius:24px; border:1px solid #e2e8f0; box-shadow:0 8px 40px rgba(26,54,93,.10); padding:44px 48px; }
@media(max-width:600px){ .gaf-card{ padding:24px 18px; } }
.gaf-step-panel { display:none; animation:gaf-in .35s ease; }
.gaf-step-panel.active { display:block; }
@keyframes gaf-in { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

/* Headings */
.gaf-section-title { font-size:22px; font-weight:800; color:var(--gc-primary); margin:0 0 6px; }
.gaf-section-sub   { font-size:14px; color:#64748b; margin:0 0 32px; font-weight:500; }

/* Grid & Fields */
.gaf-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media(max-width:600px){ .gaf-grid-2{ grid-template-columns:1fr; } }
.gaf-field { display:flex; flex-direction:column; gap:8px; }
.gaf-field.full { grid-column:1/-1; }
.gaf-label { font-size:12px; font-weight:800; color:var(--gc-primary); text-transform:uppercase; letter-spacing:.7px; }
.gaf-label .req { color:var(--gc-danger); margin-left:2px; }
.gaf-input,.gaf-select,.gaf-textarea { font-family:'Inter',sans-serif; font-size:15px; font-weight:500; padding:14px 16px; border:2px solid #e2e8f0; border-radius:var(--gc-radius-sm); background:#f8fafc; color:#1e293b; outline:none; transition:all .2s; width:100%; box-sizing:border-box; }
.gaf-input:focus,.gaf-select:focus,.gaf-textarea:focus { border-color:var(--gc-primary); background:#fff; box-shadow:0 0 0 4px rgba(26,54,93,.08); }
.gaf-input.error,.gaf-select.error { border-color:var(--gc-danger); }
.gaf-error-msg { font-size:12px; color:var(--gc-danger); font-weight:600; display:none; }
.gaf-error-msg.show { display:block; }

/* Position Cards */
.gaf-positions-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; margin-bottom:28px; }
.gaf-pos-card { border:2px solid #e2e8f0; border-radius:14px; padding:18px 16px; cursor:pointer; transition:all .2s; position:relative; background:#fff; }
.gaf-pos-card:hover { border-color:var(--gc-primary); background:#f0f4ff; }
.gaf-pos-card.selected { border-color:var(--gc-primary); background:linear-gradient(135deg,#f0f4ff,#e8f5f5); box-shadow:0 4px 20px rgba(26,54,93,.12); }
.gaf-pos-card .pos-icon { font-size:28px; margin-bottom:10px; display:block; }
.gaf-pos-card .pos-name { font-size:14px; font-weight:800; color:var(--gc-primary); margin-bottom:4px; }
.gaf-pos-card .pos-desc { font-size:11px; color:#64748b; line-height:1.5; font-weight:500; }
.gaf-pos-card .pos-check { position:absolute; top:12px; right:12px; width:22px; height:22px; border-radius:50%; background:var(--gc-success); color:#fff; display:none; align-items:center; justify-content:center; font-size:13px; font-weight:900; }
.gaf-pos-card.selected .pos-check { display:flex; }

/* Requirements */
.gaf-requirements { background:linear-gradient(135deg,#eff6ff,#ecfdf5); border:1px solid #bfdbfe; border-radius:var(--gc-radius-sm); padding:18px 20px; margin-bottom:24px; display:none; animation:gaf-in .3s ease; }
.gaf-requirements.show { display:block; }
.gaf-requirements h4 { font-size:13px; font-weight:800; color:var(--gc-primary); margin:0 0 8px; }
.gaf-requirements li  { font-size:13px; color:#334155; line-height:1.8; font-weight:500; }

/* Upload */
.gaf-upload-zone { border:2px dashed #cbd5e1; border-radius:var(--gc-radius-sm); padding:32px 24px; text-align:center; cursor:pointer; transition:all .2s; background:#f8fafc; position:relative; }
.gaf-upload-zone:hover { border-color:var(--gc-primary); background:#f0f4ff; }
.gaf-upload-zone.has-file { border-color:var(--gc-success); background:#f0fdf4; }
.gaf-upload-zone input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.gaf-upload-icon { font-size:36px; margin-bottom:10px; display:block; }
.gaf-upload-text  { font-size:14px; font-weight:600; color:#64748b; }
.gaf-upload-hint  { font-size:11px; color:#94a3b8; margin-top:6px; font-weight:700; text-transform:uppercase; }
.gaf-file-name    { font-size:13px; font-weight:700; color:var(--gc-success); margin-top:8px; display:none; }

/* Review */
.gaf-review-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:28px; }
@media(max-width:600px){ .gaf-review-grid{ grid-template-columns:1fr; } }
.gaf-review-item { background:#f8fafc; border-radius:10px; padding:16px; }
.gaf-review-item .rv-label { font-size:11px; font-weight:800; color:#94a3b8; text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.gaf-review-item .rv-value { font-size:15px; font-weight:700; color:var(--gc-primary); }

/* Buttons */
.gaf-nav { display:flex; justify-content:space-between; align-items:center; margin-top:36px; gap:16px; }
.gaf-btn { font-family:'Inter',sans-serif; font-size:15px; font-weight:800; padding:16px 36px; border-radius:50px; border:none; cursor:pointer; transition:all .2s; display:inline-flex; align-items:center; gap:8px; }
.gaf-btn-primary { background:linear-gradient(135deg,var(--gc-primary),#234e8a); color:#fff; box-shadow:0 8px 24px rgba(26,54,93,.30); }
.gaf-btn-primary:hover { transform:translateY(-2px); }
.gaf-btn-secondary { background:#f1f5f9; color:#64748b; }
.gaf-btn-secondary:hover { background:#e2e8f0; }
.gaf-btn-submit { background:linear-gradient(135deg,var(--gc-accent),#d4a017); color:var(--gc-primary); box-shadow:0 8px 24px rgba(236,201,75,.40); flex:1; justify-content:center; }
.gaf-btn-submit:hover { transform:translateY(-2px); }
.gaf-btn[disabled] { opacity:.55; cursor:not-allowed; transform:none!important; }

/* Success */
.gaf-success { text-align:center; padding:60px 40px; display:none; animation:gaf-in .5s ease; }
.gaf-success.show { display:block; }
.gaf-success-icon { width:96px; height:96px; border-radius:50%; background:linear-gradient(135deg,var(--gc-success),#059669); display:flex; align-items:center; justify-content:center; margin:0 auto 28px; box-shadow:0 12px 40px rgba(16,185,129,.30); font-size:48px; }
.gaf-success h2 { font-size:28px; font-weight:900; color:var(--gc-primary); margin:0 0 12px; }
.gaf-success p  { font-size:16px; color:#64748b; line-height:1.7; max-width:440px; margin:0 auto; font-weight:500; }

/* Toast */
.gaf-toast { position:fixed; bottom:28px; right:28px; z-index:99999; background:#1e293b; color:#fff; padding:16px 24px; border-radius:14px; font-size:14px; font-weight:600; font-family:'Inter',sans-serif; box-shadow:0 8px 32px rgba(0,0,0,.20); display:flex; align-items:center; gap:12px; transform:translateY(80px); opacity:0; transition:all .3s cubic-bezier(.4,0,.2,1); max-width:360px; }
.gaf-toast.show { transform:translateY(0); opacity:1; }
.gaf-toast.success .gaf-toast-icon { color:var(--gc-success); }
.gaf-toast.error   .gaf-toast-icon { color:var(--gc-danger); }

/* Spinner */
.gaf-spinner { width:20px; height:20px; border:3px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:spin .7s linear infinite; display:none; }
.gaf-spinner.show { display:block; }
@keyframes spin { to{ transform:rotate(360deg); } }
