/* ============================================================
   UKPSA — Registration / Onboarding Styles
   Covers: inscription_partenaire, inscription_success,
           create_password_partenaire, paiement
   ============================================================ */

/* --- Partner Hero --- */
.partner-hero{
  position:relative;
  background:var(--ukpsa-navy);
  padding:56px 0 48px;
  overflow:hidden;
}
.partner-hero-overlay{
  position:absolute;top:0;left:0;right:0;bottom:0;
  background:rgba(255,255,255,.03);border-radius:50%;
  top:-50%;right:-10%;width:400px;height:400px;
  left:auto;bottom:auto;
}
.partner-hero .breadcrumb{background:none;padding:0;margin:0}
.partner-hero .breadcrumb li,
.partner-hero .breadcrumb li a{color:rgba(255,255,255,.55);font-size:.82rem;font-weight:500}
.partner-hero .breadcrumb li a:hover{color:#fff}
.partner-hero .breadcrumb li.active{color:rgba(255,255,255,.85)}
.partner-hero .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.35);content:"›"}
.partner-hero-title{
  color:#fff;font-size:clamp(1.75rem,4vw,2.6rem);
  font-weight:800;margin-bottom:12px;
}
.partner-hero-sub{
  color:rgba(255,255,255,.72);font-size:1rem;line-height:1.7;
  max-width:640px;margin-bottom:32px;
}
.partner-hero-steps{
  display:flex;gap:12px;flex-wrap:wrap;
}
.partner-hero-step{
  display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;padding:10px 18px;
  color:rgba(255,255,255,.7);font-size:.82rem;font-weight:600;
  transition:all .2s;
}
.partner-hero-step.active{
  background:rgba(200,16,46,.2);
  border-color:var(--ukpsa-red);
  color:#fff;
}
.partner-step-num{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.75rem;font-weight:700;
  background:rgba(255,255,255,.12);color:rgba(255,255,255,.7);
}
.partner-hero-step.active .partner-step-num{
  background:var(--ukpsa-red);color:#fff;
}

/* --- Partner Registration (Onboarding) --- */
.onboarding-section{padding:60px 0}

.onboarding-intro{
  background:#fff;border-radius:14px;padding:32px;
  border:1px solid var(--ukpsa-border);text-align:center;
  margin-bottom:32px;box-shadow:0 8px 24px rgba(0,35,70,.05);
}
.onboarding-intro h2{font-size:1.35rem;margin-bottom:8px}
.onboarding-intro p{color:var(--ukpsa-gray);font-size:.92rem;line-height:1.7;max-width:680px;margin:0 auto}

/* Steps */
.onb-step{
  background:#fff;border:1px solid var(--ukpsa-border);border-radius:12px;
  padding:20px 16px;height:100%;text-align:center;
  transition:transform .3s,box-shadow .3s;
}
.onb-step:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,35,70,.06)}
.onb-step .num{
  width:36px;height:36px;border-radius:50%;
  background:var(--ukpsa-navy);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;font-size:.9rem;margin-bottom:10px;
}
.onb-step.highlight .num{background:var(--ukpsa-red)}
.onb-step h5{font-size:.9rem;margin-bottom:4px}
.onb-step p{color:var(--ukpsa-gray);font-size:.82rem;line-height:1.5;margin:0}

/* Form */
.onb-form-card{
  background:#fff;border-radius:14px;padding:36px;
  border:1px solid var(--ukpsa-border);
  box-shadow:0 8px 32px rgba(0,35,70,.06);
}
.onb-form-card h4{font-size:1.15rem;margin-bottom:20px}
.onb-form-card .form-control,
.onb-form-card .form-select{
  border:1px solid var(--ukpsa-border);border-radius:8px;
  padding:12px 16px;font-size:.9rem;font-family:var(--font-main);
  transition:border-color .2s;
}
.onb-form-card .form-control:focus,
.onb-form-card .form-select:focus{border-color:var(--ukpsa-navy);box-shadow:0 0 0 3px rgba(0,35,70,.08);outline:none}

/* Sidebar */
.onb-side{
  background:var(--ukpsa-navy);border-radius:14px;padding:36px;color:#fff;height:100%;
}
.onb-side h4{color:#fff;font-size:1.1rem;margin-bottom:20px}
.onb-side-item{margin-bottom:16px;display:flex;align-items:flex-start;gap:10px}
.onb-side-badge{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);
  padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700;
  color:rgba(255,255,255,.9);white-space:nowrap;flex-shrink:0;
}
.onb-side-item p{margin:0;font-size:.88rem;color:rgba(255,255,255,.7);line-height:1.6}

.onb-note{
  margin-top:20px;padding:14px;border-radius:8px;
  background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.15);
  font-size:.82rem;color:rgba(255,255,255,.5);
}


/* --- Success Page --- */
.success-section{padding:60px 0}
.success-card{
  background:#fff;border-radius:14px;padding:36px;
  border:1px solid var(--ukpsa-border);
  box-shadow:0 8px 32px rgba(0,35,70,.06);
}
.success-card h3{font-size:1.35rem;margin-bottom:10px}
.success-card>p{color:var(--ukpsa-gray);line-height:1.7;font-size:.95rem}
.status-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 24px;
}
.status-item{
  background:var(--ukpsa-light);border:1px solid var(--ukpsa-border);
  border-radius:10px;padding:14px;font-size:.85rem;color:#475569;
}
.status-item strong{display:block;color:var(--ukpsa-navy);margin-bottom:4px;font-size:.8rem}
.success-actions{display:flex;gap:12px;justify-content:flex-start;flex-wrap:wrap;margin-bottom:16px}
.success-note{font-size:.85rem;color:var(--ukpsa-gray);line-height:1.7;max-width:560px;margin:0}
.backup-ref{color:var(--ukpsa-red);font-weight:700;margin:0 0 16px;font-size:.9rem}

/* Success hero variant */
.partner-hero-success{background:linear-gradient(135deg,#002346 0%,#065f46 100%)}
.partner-hero-success .partner-hero-title i{
  color:#34d399;margin-right:8px;font-size:clamp(1.5rem,3.5vw,2.2rem);
}

/* --- Password Creation --- */
.password-section{padding:60px 0}
.password-card{
  background:#fff;border-radius:14px;padding:36px;
  border:1px solid var(--ukpsa-border);
  box-shadow:0 8px 32px rgba(0,35,70,.06);
}
.password-card h3{font-size:1.2rem;margin-bottom:8px}
.password-card>p{color:var(--ukpsa-gray);font-size:.92rem;margin-bottom:24px}
.password-card .form-control{
  border:1px solid var(--ukpsa-border);border-radius:8px;
  padding:12px 16px;font-size:.9rem;font-family:var(--font-main);
}
.password-card .form-control:focus{border-color:var(--ukpsa-navy);box-shadow:0 0 0 3px rgba(0,35,70,.08);outline:none}

/* Password sidebar confirmed block */
.password-confirmed-side{
  display:flex;align-items:flex-start;gap:12px;
  background:rgba(52,211,153,.12);
  border:1px solid rgba(52,211,153,.25);
  border-radius:10px;padding:14px;margin-bottom:20px;
}
.password-confirmed-side>i{
  font-size:1.2rem;color:#34d399;flex-shrink:0;margin-top:2px;
}
.password-confirmed-side strong{
  display:block;font-size:.85rem;color:#fff;margin-bottom:2px;
}
.password-confirmed-side p{
  margin:0;font-size:.75rem;color:rgba(255,255,255,.5);line-height:1.4;
}


/* --- Verify Email Page --- */
.verify-section{padding:60px 0}
.verify-card{
  background:#fff;border-radius:14px;padding:40px;
  border:1px solid var(--ukpsa-border);
  box-shadow:0 8px 32px rgba(0,35,70,.06);
  text-align:center;
}
.verify-icon-wrap{
  width:72px;height:72px;border-radius:50%;
  background:linear-gradient(135deg,#eff6ff,#dbeafe);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 20px;
}
.verify-icon-wrap i{font-size:1.8rem;color:var(--ukpsa-navy)}
.verify-card h3{font-size:1.3rem;margin-bottom:8px}
.verify-card>p{color:var(--ukpsa-gray);font-size:.92rem;margin-bottom:6px}

.verify-email-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--ukpsa-light);border:1px solid var(--ukpsa-border);
  border-radius:10px;padding:12px 20px;margin:16px 0 20px;
  font-size:.95rem;color:var(--ukpsa-navy);
}
.verify-email-badge i{color:var(--ukpsa-gray);font-size:.85rem}

.verify-instruction{
  color:var(--ukpsa-gray);font-size:.88rem;line-height:1.7;
  max-width:480px;margin:0 auto 24px;
}

.verify-actions{
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
  margin-bottom:28px;
}

.verify-tips{
  background:var(--ukpsa-light);border:1px solid var(--ukpsa-border);
  border-radius:10px;padding:18px 24px;
  text-align:left;max-width:440px;margin:0 auto;
}
.verify-tips>p{font-size:.85rem;margin:0 0 8px;color:var(--ukpsa-navy)}
.verify-tips ul{margin:0;padding-left:18px;font-size:.82rem;color:#475569;line-height:1.8}


/* --- Payment Page (Matches apply-partner layout) --- */
.pay-section{padding:60px 0}

.pay-card{
  background:#fff;border-radius:14px;padding:36px;
  border:1px solid var(--ukpsa-border);
  box-shadow:0 8px 32px rgba(0,35,70,.06);
}
.pay-card-header{
  display:flex;align-items:flex-start;gap:14px;
  margin-bottom:24px;padding-bottom:20px;
  border-bottom:1px solid var(--ukpsa-border);
}
.pay-card-header>i{
  width:44px;height:44px;border-radius:10px;
  background:var(--ukpsa-navy);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0;
}
.pay-card-header h4{font-size:1.15rem;margin:0 0 4px}
.pay-card-header p{color:var(--ukpsa-gray);font-size:.85rem;margin:0;line-height:1.5}

.pay-card label{
  display:block;font-size:.82rem;font-weight:600;
  color:var(--ukpsa-navy);margin-bottom:6px;
}
.pay-card .form-control,
.pay-card .form-select{
  border:1px solid var(--ukpsa-border);border-radius:8px;
  padding:12px 16px;font-size:.9rem;font-family:var(--font-main);
  transition:border-color .2s;
}
.pay-card .form-control:focus,
.pay-card .form-select:focus{
  border-color:var(--ukpsa-navy);
  box-shadow:0 0 0 3px rgba(0,35,70,.08);outline:none;
}

.pay-alert{
  padding:16px 18px;border-radius:10px;
  background:#fef2f2;border:1px solid #fecaca;
  color:#991b1b;font-size:.88rem;
  display:flex;align-items:flex-start;gap:10px;line-height:1.5;
}
.pay-alert i{margin-top:2px}

#payment-element{margin:20px 0 24px}

.pay-btn-full{
  width:100%;justify-content:center;
  padding:14px 24px;font-size:.95rem;
}

.pay-msg{margin-top:14px;font-size:.84rem}
.pay-msg.ok{color:#065f46;font-weight:600}
.pay-msg.err{color:#991b1b;font-weight:600}

/* Sidebar */
.pay-sidebar{
  background:var(--ukpsa-navy);border-radius:14px;
  padding:36px;color:#fff;height:100%;
}
.pay-sidebar h4{color:#fff;font-size:1.1rem;margin-bottom:20px}

.pay-sidebar-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 0;font-size:.88rem;
  color:rgba(255,255,255,.7);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.pay-sidebar-row.total{
  border-bottom:none;padding-top:14px;margin-top:4px;
  font-weight:800;font-size:1.05rem;color:#fff;
  border-top:2px solid rgba(255,255,255,.15);
}
.pay-sidebar-val{font-weight:700;color:#fff}
.pay-sidebar-test{
  margin-top:10px;font-size:.72rem;font-weight:700;
  color:#facc15;text-transform:uppercase;letter-spacing:.06em;
  display:flex;align-items:center;gap:5px;
}

.pay-sidebar-divider{
  height:1px;background:rgba(255,255,255,.1);
  margin:20px 0;
}

.pay-sidebar-trust{display:flex;flex-direction:column;gap:16px}
.pay-trust-item{display:flex;align-items:flex-start;gap:12px}
.pay-trust-item>i{
  width:32px;height:32px;border-radius:8px;
  background:rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  font-size:.85rem;color:rgba(255,255,255,.8);flex-shrink:0;
}
.pay-trust-item strong{
  display:block;font-size:.82rem;color:#fff;margin-bottom:2px;
}
.pay-trust-item p{
  margin:0;font-size:.78rem;color:rgba(255,255,255,.5);line-height:1.5;
}

.pay-sidebar-logos{
  display:flex;align-items:center;gap:14px;
  margin-top:24px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);
}
.pay-sidebar-logos i{
  font-size:1.4rem;color:rgba(255,255,255,.3);
  transition:color .2s;
}
.pay-sidebar-logos i:hover{color:rgba(255,255,255,.7)}

/* Hero step "done" state */
.partner-hero-step.done{
  background:rgba(6,95,70,.25);
  border-color:rgba(6,95,70,.5);
  color:rgba(255,255,255,.85);
}
.partner-hero-step.done .partner-step-num{
  background:#065f46;color:#fff;
}
.partner-hero-step.done .partner-step-num i{font-size:.65rem}


/* ============================================================
   404 Error Page
   ============================================================ */

.uk-404-section{
  background:var(--ukpsa-light);
  min-height:60vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:80px 20px;
}
.uk-404-section .error-code{
  font-size:clamp(8rem,20vw,14rem);
  font-weight:800;
  color:var(--ukpsa-navy);
  line-height:1;
  margin:0;
  letter-spacing:-.04em;
}
.uk-404-section .error-title{
  font-size:clamp(1.5rem,4vw,2.5rem);
  font-weight:800;
  color:var(--ukpsa-navy);
  text-transform:uppercase;
  margin:12px 0 24px;
  letter-spacing:.04em;
}
.uk-404-section .error-desc{
  color:var(--ukpsa-gray);
  font-size:1.05rem;
  max-width:520px;
  margin:0 auto 12px;
  line-height:1.7;
}
.uk-404-section .btn-home{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:28px;
  background:var(--ukpsa-navy);color:#fff;
  padding:14px 36px;border-radius:6px;font-weight:700;font-size:.95rem;
  border:2px solid var(--ukpsa-navy);transition:all .25s ease;
  text-decoration:none;
}
.uk-404-section .btn-home:hover{
  background:transparent;color:var(--ukpsa-navy);
}


/* ============================================================
   Registration Pages — Mobile Responsive
   ============================================================ */

@media(max-width:991px){
  .partner-hero{padding:40px 0 36px}
  .partner-hero-steps{gap:8px}
  .onboarding-section{padding:48px 0}
  .success-section{padding:48px 0}
  .password-section{padding:48px 0}
  .pay-section{padding:48px 0}
  .verify-section{padding:48px 0}
}

@media(max-width:767px){
  .partner-hero{padding:32px 0 28px}
  .partner-hero-title{font-size:1.4rem}
  .partner-hero-sub{font-size:.88rem}
  .partner-hero-steps{gap:6px}
  .partner-hero-step{padding:8px 12px;font-size:.75rem}
  .partner-step-num{width:24px;height:24px;font-size:.7rem}
  .onboarding-section{padding:32px 0}
  .onboarding-intro{padding:24px}
  .onboarding-intro h2{font-size:1.15rem}
  .onb-form-card{padding:24px}
  .onb-side{padding:24px}
  .onb-step{padding:16px 12px}
  .onb-step h5{font-size:.85rem}

  .status-grid{grid-template-columns:1fr}
  .success-card{padding:28px 20px}
  .success-card h3{font-size:1.15rem}

  .password-card{padding:28px 20px}
  .pay-card{padding:24px}
  .pay-sidebar{padding:24px}
  .pay-card-header>i{width:36px;height:36px;font-size:.95rem}
  .pay-trust-item>i{width:28px;height:28px;font-size:.75rem}
  .verify-card{padding:28px 20px}
  .verify-icon-wrap{width:56px;height:56px}
  .verify-icon-wrap i{font-size:1.4rem}
  .verify-actions{flex-direction:column;align-items:center}

  .uk-404-section{padding:48px 16px;min-height:50vh}
  .uk-404-section .error-code{font-size:clamp(5rem,15vw,8rem)}
  .uk-404-section .error-title{font-size:1.3rem}
  .uk-404-section .error-desc{font-size:.92rem}
  .uk-404-section .btn-home{padding:12px 28px;font-size:.88rem}
}

@media(max-width:480px){
  .onb-step .num{width:30px;height:30px;font-size:.8rem}
  .onb-form-card{padding:20px 16px}
  .success-card{padding:24px 16px}
  .password-card{padding:24px 16px}
  .pay-card{padding:20px 16px}
  .pay-sidebar{padding:20px 16px}
  .verify-card{padding:24px 16px}
}
