/* ═══════════════════════════════════════════════════════
   Candidature Formateur (Public) — Design System Biyn 2026
   Scoped under .candidature-page
   ═══════════════════════════════════════════════════════ */

/* ── Tokens ── */
.candidature-page{
  --bg:#131022;--surface:#1E1A34;--surface-2:#262240;--surface-3:#302C4A;
  --border:#2E2A48;--border-subtle:#241F3C;
  --text:#F0EEF6;--text-2:#B0ACC8;--text-3:#706C8A;
  --violet:#7441BA;--violet-light:#9B7EEA;--violet-glow:rgba(155,126,234,.10);
  --gold:#F4B700;--gold-light:#FFD24E;--gold-glow:rgba(244,183,0,.08);
  --green:#2BA665;--green-light:#6EEAAA;--green-bg:rgba(43,166,101,.08);
  --red:#ED364A;--red-light:#FF8A98;--red-bg:rgba(237,54,74,.08);
  --radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;
  --font:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:'JetBrains Mono',monospace;
}

/* ── Page wrapper ── */
.candidature-page{
  position:relative;font-family:var(--font);color:var(--text);
  -webkit-font-smoothing:antialiased;
  padding:32px 24px 24px;overflow:hidden;
}
.candidature-page *,.candidature-page *::before,.candidature-page *::after{box-sizing:border-box;}

/* ── Ambient orbs ── */
.candidature-page .orb{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0;}
.candidature-page .orb-1{width:500px;height:500px;background:rgba(116,65,186,.06);top:-150px;right:-100px;}
.candidature-page .orb-2{width:400px;height:400px;background:rgba(244,183,0,.04);bottom:-100px;left:-80px;}

/* ── Inner ── */
.candidature-page .cand-inner{position:relative;z-index:1;max-width:1080px;margin:0 auto;}

/* ── Breadcrumb ── */
.candidature-page .cand-breadcrumb{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-3);margin-bottom:20px;}
.candidature-page .cand-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .15s;}
.candidature-page .cand-breadcrumb a:hover{color:var(--violet-light);}
.candidature-page .cand-breadcrumb svg{width:12px;height:12px;opacity:.4;}

/* ── Page title ── */
.candidature-page .cand-title{font-size:24px;font-weight:800;letter-spacing:-.03em;margin-bottom:4px;color:var(--text);}
.candidature-page .cand-sub{font-size:13px;color:var(--text-3);margin-bottom:28px;}

/* ── Grid ── */
.candidature-page .cand-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start;}

/* ── Form card ── */
.candidature-page .form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;position:relative;}
.candidature-page .form-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--violet),var(--gold));}

/* Section inside form */
.candidature-page .form-section{padding:24px 32px;border-bottom:1px solid var(--border-subtle);}
.candidature-page .form-section:last-child{border-bottom:none;}
.candidature-page .section-badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--violet-light);margin-bottom:10px;}
.candidature-page .section-badge .num{width:20px;height:20px;border-radius:50%;background:var(--violet-glow);border:1px solid rgba(116,65,186,.15);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:800;color:var(--violet-light);}
.candidature-page .section-label{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--text);}

/* ── Fields ── */
.candidature-page .field{margin-bottom:16px;}
.candidature-page .field-label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:6px;}
.candidature-page .field-label .required{color:var(--red-light);margin-left:2px;}
.candidature-page .field-input{width:100%;padding:11px 16px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:var(--font);font-size:13px;color:var(--text);outline:none;transition:all .2s;}
.candidature-page .field-input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(116,65,186,.12);}
.candidature-page .field-input::placeholder{color:var(--text-3);}
.candidature-page textarea.field-input{min-height:80px;resize:vertical;line-height:1.6;}
.candidature-page select.field-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23706C8A' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;}
.candidature-page .field-hint{font-size:10px;color:var(--text-3);margin-top:4px;}
.candidature-page .field-error{font-size:11px;color:var(--red-light);margin-top:4px;}
.candidature-page .field-row{display:grid;gap:12px;}
.candidature-page .field-row-3{grid-template-columns:auto 1fr 1fr;}
.candidature-page .field-row-2{grid-template-columns:1fr 1fr;}

/* Upload area */
.candidature-page .upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px 16px;background:var(--surface-2);border:1.5px dashed var(--border);border-radius:var(--radius-md);transition:all .2s;cursor:pointer;text-align:center;}
.candidature-page .upload-area:hover{border-color:var(--violet);background:var(--violet-glow);}
.candidature-page .upload-area.has-files{border-color:var(--green);border-style:solid;background:var(--green-bg);}
.candidature-page .upload-area .upload-icon{font-size:28px;opacity:.7;}
.candidature-page .upload-area .upload-main{font-size:12px;font-weight:600;color:var(--text-2);}
.candidature-page .upload-area .upload-sub{font-size:10px;color:var(--text-3);}

/* Select2 overrides */
.candidature-page .select2-container{width:100%!important;}
.candidature-page .select2-container .select2-selection--multiple{
  background:var(--surface-2)!important;border:1.5px solid var(--border)!important;border-radius:var(--radius-md)!important;
  min-height:42px!important;padding:4px 8px!important;
}
.candidature-page .select2-container--focus .select2-selection--multiple{border-color:var(--violet)!important;box-shadow:0 0 0 3px rgba(116,65,186,.12)!important;}
.candidature-page .select2-container .select2-selection--multiple .select2-selection__choice{
  background:var(--violet-glow)!important;border:1px solid rgba(116,65,186,.15)!important;border-radius:var(--radius-sm)!important;
  color:var(--violet-light)!important;font-size:11px!important;font-weight:600!important;padding:2px 8px!important;
}
.candidature-page .select2-container .select2-selection--multiple .select2-selection__choice__remove{color:var(--violet-light)!important;margin-right:4px!important;}
.candidature-page .select2-container .select2-search__field{color:var(--text)!important;font-family:var(--font)!important;font-size:13px!important;}
.candidature-page .select2-container .select2-search__field::placeholder{color:var(--text-3)!important;}

/* Select2 dropdown */
.select2-dropdown{background:var(--surface)!important;border:1.5px solid var(--border)!important;border-radius:var(--radius-md)!important;}
.select2-results__option{color:var(--text-2)!important;font-size:12px!important;padding:8px 14px!important;}
.select2-results__option--highlighted{background:var(--violet-glow)!important;color:var(--violet-light)!important;}
.select2-results__option--selected{background:var(--surface-3)!important;color:var(--text)!important;}
.select2-search--dropdown .select2-search__field{background:var(--surface-2)!important;border:1.5px solid var(--border)!important;border-radius:var(--radius-sm)!important;color:var(--text)!important;font-size:12px!important;padding:8px 12px!important;}

/* ── Buttons ── */
.candidature-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-weight:700;border:none;cursor:pointer;transition:all .15s ease;text-decoration:none;line-height:1.4;}
.candidature-page .btn:active{transform:scale(.97);}
.candidature-page .btn-lg{font-size:14px;padding:14px 28px;border-radius:var(--radius-md);width:100%;}
.candidature-page .btn-accent{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#1a1030;box-shadow:0 4px 16px rgba(244,183,0,.2);}
.candidature-page .btn-accent:hover{transform:translateY(-1px);color:#1a1030;}

/* ── Info panel ── */
.candidature-page .info-panel{display:flex;flex-direction:column;gap:20px;}
.candidature-page .info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 28px;}
.candidature-page .info-card-title{font-size:15px;font-weight:800;letter-spacing:-.01em;margin-bottom:12px;color:var(--text);display:flex;align-items:center;gap:8px;}
.candidature-page .info-card p{font-size:12.5px;line-height:1.7;color:var(--text-2);margin-bottom:10px;}
.candidature-page .info-card p:last-child{margin-bottom:0;}
.candidature-page .info-card strong{color:var(--text);font-weight:600;}
.candidature-page .info-card em{color:var(--gold);font-style:normal;font-weight:600;}

/* Perks list */
.candidature-page .perks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.candidature-page .perks li{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.6;color:var(--text-2);}
.candidature-page .perks li strong{color:var(--text);}
.candidature-page .perk-icon{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;}
.candidature-page .perk-icon.violet{background:var(--violet-glow);border:1px solid rgba(116,65,186,.12);}
.candidature-page .perk-icon.gold{background:var(--gold-glow);border:1px solid rgba(244,183,0,.12);}
.candidature-page .perk-icon.green{background:var(--green-bg);border:1px solid rgba(43,166,101,.12);}

/* Profile checklist */
.candidature-page .checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;}
.candidature-page .checklist li{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-2);}
.candidature-page .checklist li::before{content:'✓';width:18px;height:18px;border-radius:50%;background:var(--green-bg);border:1px solid rgba(43,166,101,.12);display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--green-light);flex-shrink:0;}

/* ── Responsive ── */
@media(max-width:768px){
  .candidature-page{padding:20px 16px 24px;}
  .candidature-page .cand-grid{grid-template-columns:1fr;gap:20px;}
  .candidature-page .form-section{padding:20px 20px;}
  .candidature-page .cand-title{font-size:20px;}
  .candidature-page .field-row-3{grid-template-columns:1fr;}
  .candidature-page .field-row-2{grid-template-columns:1fr;}
}
