.auth-layout { min-height:100vh;display:grid;grid-template-columns:1fr 1fr; }

/* ── Panneau gauche ── */
.auth-visual {
  background:linear-gradient(145deg,#1a1d3b 0%,#2d1060 55%,#0f3460 100%);
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(40px,6vw,72px);
}
.auth-visual::before { content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none; }
.av-orb { position:absolute;border-radius:50%;pointer-events:none; }
.av-orb-1 { width:500px;height:500px;top:-150px;right:-150px;background:radial-gradient(circle,rgba(130,190,96,.25),transparent 70%); }
.av-orb-2 { width:400px;height:400px;bottom:-120px;left:-100px;background:radial-gradient(circle,rgba(78,43,134,.35),transparent 70%); }
.av-orb-3 { width:250px;height:250px;top:40%;left:15%;background:radial-gradient(circle,rgba(54,162,206,.18),transparent 70%); }
.av-logo img { height:46px;width:auto; }
.av-title { font-family:var(--font-heading);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800;color:#fff;line-height:1.2;margin-bottom:10px; }
.av-sub { font-size:.88rem;color:rgba(255,255,255,.65);line-height:1.8;margin-bottom:22px; }
.av-steps { list-style:none;padding:0;margin:0;counter-reset:steps; }
.av-steps li { counter-increment:steps;display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:.83rem;color:rgba(255,255,255,.72); }
.av-steps li:last-child { border-bottom:none; }
.av-step-num { width:26px;height:26px;border-radius:50%;flex-shrink:0;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:.68rem;font-weight:800;color:#fff; }
.av-step-num::before { content:counter(steps); }
.av-notice { background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);border-radius:12px;padding:12px 14px;margin-top:18px;display:flex;gap:10px;align-items:flex-start; }
.av-notice i { color:#fbbf24;flex-shrink:0;margin-top:2px; }
.av-notice p { font-size:.77rem;color:rgba(255,255,255,.65);line-height:1.7;margin:0; }
.av-notice strong { color:#fbbf24; }
.av-testimonial { background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:16px 20px; }
.avt-text { font-size:.85rem;color:rgba(255,255,255,.8);line-height:1.7;font-style:italic;margin-bottom:10px; }
.avt-author { display:flex;align-items:center;gap:10px; }
.avt-ava { width:32px;height:32px;border-radius:50%;background:var(--grad-full);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:.68rem;font-weight:800;color:#fff; }
.avt-name { font-family:var(--font-heading);font-size:.79rem;font-weight:700;color:#fff; }
.avt-role { font-size:.69rem;color:rgba(255,255,255,.45); }

/* ── Panneau droit ── */
.auth-form-panel { display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(28px,5vw,56px) clamp(20px,5vw,64px);background:#fff;overflow-y:auto; }
.af-inner { max-width:460px;width:100%;margin:0 auto; }
.af-back { display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:var(--c-muted);text-decoration:none;margin-bottom:18px;transition:color .2s; }
.af-back:hover { color:var(--c-purple); }

/* ── SWITCH ── */
.role-switch { display:grid;grid-template-columns:1fr 1fr;background:var(--c-light);border-radius:13px;padding:4px;margin-bottom:22px;border:1.5px solid var(--c-border); }
.role-btn { display:flex;align-items:center;justify-content:center;gap:7px;padding:11px 8px;border-radius:10px;border:none;background:none;font-family:var(--font-heading);font-size:.86rem;font-weight:700;color:var(--c-muted);cursor:pointer;transition:all .22s; }
.role-btn.active { background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.1); }
.role-btn.active.cand { color:var(--c-blue); }
.role-btn.active.comp { color:var(--c-purple); }

.af-title { font-family:var(--font-heading);font-size:clamp(1.3rem,2.5vw,1.7rem);font-weight:800;color:var(--c-navy);margin-bottom:4px; }
.af-sub { font-size:.83rem;color:var(--c-muted);line-height:1.65;margin-bottom:16px; }

/* Alertes */
.auth-alert { display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;margin-bottom:12px;font-size:.82rem;line-height:1.6;position:relative;animation:slideDown .3s ease; }
@keyframes slideDown { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }
.auth-alert-error   { background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.2);color:#dc2626; }
.auth-alert-success { background:rgba(130,190,96,.08);border:1px solid rgba(130,190,96,.3);color:#166534; }
.auth-alert-warning { background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);color:#92400e; }
.auth-alert-close { position:absolute;top:9px;right:10px;background:none;border:none;cursor:pointer;font-size:.82rem;opacity:.5;padding:2px 5px;transition:opacity .2s;color:inherit;line-height:1; }
.auth-alert-close:hover { opacity:1; }
.auth-alert-progress { position:absolute;bottom:0;left:0;height:2px;border-radius:0 0 10px 10px;background:currentColor;opacity:.2;animation:shrink 5s linear forwards; }
@keyframes shrink { from{width:100%} to{width:0%} }

/* Notice validation entreprise */
.af-pending { display:none;background:rgba(245,158,11,.07);border:1.5px solid rgba(245,158,11,.22);border-radius:10px;padding:11px 14px;margin-bottom:14px;font-size:.79rem;color:#92400e;line-height:1.65;align-items:flex-start;gap:8px; }
.af-pending.on { display:flex; }
.af-pending i { color:#f59e0b;flex-shrink:0;margin-top:2px; }

/* Séparateur de section */
.fsec { font-family:var(--font-heading);font-size:.67rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--c-purple);margin:14px 0 10px;display:flex;align-items:center;gap:8px; }
.fsec::after { content:'';flex:1;height:1px;background:rgba(78,43,134,.12); }

/* Champs entreprise */
.company-fields { display:none; }
.company-fields.on { display:block; }

/* Champs formulaire */
.af-row { display:grid;grid-template-columns:1fr 1fr;gap:11px; }
.af-field { margin-bottom:13px; }
.af-label { display:block;font-family:var(--font-heading);font-size:.75rem;font-weight:700;color:var(--c-navy);margin-bottom:5px; }
.af-req { color:#ef4444;margin-left:2px; }
.af-opt { font-weight:400;font-size:.69rem;color:var(--c-muted);margin-left:3px; }
.af-hint { font-size:.69rem;color:var(--c-muted);margin-top:3px;line-height:1.5; }
.af-iw { position:relative; }
.af-input { width:100%;padding:11px 14px 11px 40px;border:1.5px solid var(--c-border);border-radius:10px;font-family:var(--font-body);font-size:.87rem;color:var(--c-navy);background:#fff;outline:none;transition:border-color .2s,box-shadow .2s; }
.af-input:focus { border-color:var(--c-purple);box-shadow:0 0 0 3px rgba(78,43,134,.09); }
.af-ico { position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--c-muted);font-size:.78rem;pointer-events:none; }
.af-eye { position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--c-muted);cursor:pointer;background:none;border:none;font-size:.8rem;padding:4px;transition:color .2s; }
.af-eye:hover { color:var(--c-purple); }
.pwd-bar { height:4px;border-radius:2px;background:var(--c-border);margin-top:6px;overflow:hidden; }
.pwd-fill { height:100%;border-radius:2px;width:0;transition:width .3s,background .3s; }
.pwd-hint { font-size:.69rem;color:var(--c-muted);margin-top:3px;display:block;transition:color .3s; }

/* Google */
.af-google { width:100%;padding:12px 14px;border-radius:10px;background:#fff;border:1.5px solid var(--c-border);display:flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-heading);font-size:.87rem;font-weight:700;color:var(--c-navy);cursor:pointer;text-decoration:none;transition:border-color .2s,box-shadow .2s; }
.af-google:hover { border-color:#4285f4;box-shadow:0 4px 12px rgba(66,133,244,.12);color:var(--c-navy); }
.af-gico { width:18px;height:18px;flex-shrink:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.18 1.48-4.97 2.31-8.16 2.31-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") center/contain no-repeat; }
.af-divider { display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--c-muted);font-size:.75rem; }
.af-divider::before,.af-divider::after { content:'';flex:1;height:1px;background:var(--c-border); }

/* CGU */
.af-cgu { display:flex;align-items:flex-start;gap:9px;font-size:.79rem;color:var(--c-text);line-height:1.6;cursor:pointer; }
.af-cgu input { display:none; }
.af-cgu-box { width:17px;height:17px;border-radius:5px;flex-shrink:0;border:1.5px solid var(--c-border);background:#fff;display:flex;align-items:center;justify-content:center;transition:all .18s;margin-top:2px; }
.af-cgu input:checked ~ .af-cgu-box { background:var(--c-purple);border-color:var(--c-purple); }
.af-cgu input:checked ~ .af-cgu-box::after { content:'✓';color:#fff;font-size:.66rem;font-weight:700; }
.af-cgu a { color:var(--c-blue);text-decoration:underline;text-underline-offset:2px; }

/* Submit */
.af-submit { width:100%;padding:13px;border-radius:11px;background:var(--grad-full);color:#fff;border:none;font-family:var(--font-heading);font-size:.92rem;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;transition:transform .22s,box-shadow .22s;box-shadow:var(--shadow-btn);margin-top:13px; }
.af-submit:hover { transform:translateY(-2px);box-shadow:0 8px 28px rgba(78,43,134,.4); }

.af-switch { text-align:center;margin-top:14px;font-size:.82rem;color:var(--c-muted); }
.af-switch a { color:var(--c-purple);font-weight:700;text-decoration:none; }

@media (max-width:991px) {
  .auth-layout { grid-template-columns:1fr;min-height:auto; }
  .auth-visual { padding:22px;min-height:auto; }
  .av-steps,.av-testimonial,.av-notice { display:none; }
  .av-title { font-size:1.2rem; }
  .auth-form-panel { padding:clamp(80px,10vw,110px) clamp(18px,5vw,36px) 40px; }
}
@media (max-width:480px) { .af-row { grid-template-columns:1fr; } }
