/* ============================================================
   S-EQUINOX ForageApp — Authentification professionnelle
   Corrige login.php et select_contract.php sans toucher à la logique PHP
   ============================================================ */
:root{
  --waf-navy:#07111f;
  --waf-navy-2:#0b1628;
  --waf-navy-3:#10213a;
  --waf-gold:#d4af37;
  --waf-gold-2:#f4d26a;
  --waf-text:#0f172a;
  --waf-muted:#64748b;
  --waf-border:#dbe4ef;
  --waf-soft:#f5f7fb;
  --waf-danger:#dc2626;
  --waf-shadow:0 24px 70px rgba(2,6,23,.26);
  --waf-card-shadow:0 18px 45px rgba(15,23,42,.14);
  --waf-radius:24px;
}

html,body{min-height:100%;}
body.auth-body,
body.contract-body{
  min-height:100vh!important;
  margin:0!important;
  font-family:Inter,Segoe UI,Roboto,Arial,sans-serif!important;
  color:#fff!important;
  background:
    radial-gradient(circle at 12% 10%, rgba(212,175,55,.25), transparent 28%),
    radial-gradient(circle at 90% 18%, rgba(37,99,235,.18), transparent 32%),
    linear-gradient(135deg, #050a13 0%, #07111f 48%, #0b1628 100%)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:34px!important;
  overflow-x:hidden!important;
}
body.auth-body::before,
body.contract-body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.52;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.7), transparent 88%);
}
body.auth-body::after,
body.contract-body::after{
  content:"SOCIETE EQUINOX SARL";
  position:fixed;
  right:-90px;
  bottom:55px;
  transform:rotate(-90deg);
  font-size:12px;
  letter-spacing:.42em;
  font-weight:900;
  color:rgba(255,255,255,.08);
  pointer-events:none;
}

/* Login */
.auth-card{
  position:relative;
  z-index:1;
  width:min(1080px,100%);
  min-height:610px;
  display:grid!important;
  grid-template-columns:1.05fr .95fr;
  overflow:hidden;
  border-radius:32px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  box-shadow:var(--waf-shadow);
  backdrop-filter:blur(18px);
}
.auth-hero{
  position:relative;
  padding:48px 46px!important;
  background:
    linear-gradient(145deg, rgba(7,17,31,.92), rgba(16,33,58,.86)),
    radial-gradient(circle at 20% 20%, rgba(212,175,55,.26), transparent 30%);
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
}
.auth-hero::after{
  content:"";
  position:absolute;
  width:360px;height:360px;
  right:-150px;bottom:-150px;
  border-radius:50%;
  background:linear-gradient(135deg, rgba(212,175,55,.34), rgba(255,255,255,.02));
  border:1px solid rgba(212,175,55,.20);
}
.auth-logo,.brand-mark{
  width:72px!important;
  height:72px!important;
  border-radius:22px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(135deg,var(--waf-gold),var(--waf-gold-2))!important;
  color:#111827!important;
  font-weight:1000!important;
  letter-spacing:-.04em!important;
  box-shadow:0 18px 42px rgba(212,175,55,.28)!important;
  margin-bottom:26px!important;
  border:1px solid rgba(255,255,255,.38)!important;
}
.auth-hero h1{
  color:#fff!important;
  font-size:46px!important;
  line-height:1!important;
  font-weight:1000!important;
  letter-spacing:-.055em!important;
  margin:0 0 16px!important;
}
.auth-hero p{
  color:rgba(255,255,255,.78)!important;
  font-size:16px!important;
  line-height:1.7!important;
  max-width:520px;
  margin:0 0 28px!important;
}
.auth-features{display:grid;gap:12px;margin-top:8px;position:relative;z-index:2;}
.auth-feature{
  display:flex;align-items:center;gap:10px;
  padding:13px 15px;
  border-radius:16px;
  color:#f8fafc;
  font-weight:800;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.auth-form-wrap{
  padding:54px 50px!important;
  background:linear-gradient(180deg,#fff,#f7f9fd)!important;
  color:var(--waf-text)!important;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.auth-form-wrap h2{
  color:#07111f!important;
  font-size:34px!important;
  font-weight:1000!important;
  letter-spacing:-.05em!important;
  margin:0 0 7px!important;
}
.auth-form-wrap .muted,
.contract-form-panel .muted{color:var(--waf-muted)!important;margin-bottom:26px!important;}
.auth-form-wrap .form-label,
.contract-form-panel .form-label{
  color:#334155!important;
  font-size:12px!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
  margin-bottom:8px!important;
}
.auth-form-wrap .form-control,
.contract-form-panel .form-select,
.contract-form-panel .form-control{
  min-height:50px!important;
  border-radius:15px!important;
  border:1px solid #d6dfeb!important;
  background:#fff!important;
  color:#0f172a!important;
  padding:12px 15px!important;
  box-shadow:0 8px 20px rgba(15,23,42,.04)!important;
}
.auth-form-wrap .form-control:focus,
.contract-form-panel .form-select:focus,
.contract-form-panel .form-control:focus{
  border-color:var(--waf-gold)!important;
  box-shadow:0 0 0 .24rem rgba(212,175,55,.16)!important;
}
.auth-submit,
.auth-form-wrap .btn-primary,
.contract-form-panel .btn-primary{
  min-height:52px!important;
  border-radius:16px!important;
  border:0!important;
  color:#111827!important;
  font-weight:1000!important;
  background:linear-gradient(135deg,var(--waf-gold),var(--waf-gold-2))!important;
  box-shadow:0 16px 34px rgba(212,175,55,.28)!important;
}
.auth-submit:hover,
.auth-form-wrap .btn-primary:hover,
.contract-form-panel .btn-primary:hover{filter:brightness(1.03);transform:translateY(-1px);}
.alert{border-radius:15px!important;font-weight:750!important;}
.alert-danger{background:#fef2f2!important;border-color:#fecaca!important;color:#991b1b!important;}
.auth-footer{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid #e2e8f0;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  text-align:center;
}

/* Page sélection zone/contrat */
.contract-shell{
  position:relative;
  z-index:1;
  width:min(1180px,100%);
}
.contract-topbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px;
  margin-bottom:24px;
  padding:18px 20px;
  border-radius:24px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 16px 42px rgba(2,6,23,.18);
  backdrop-filter:blur(16px);
}
.contract-brand{display:flex;align-items:center;gap:15px;}
.contract-brand .brand-mark{width:58px!important;height:58px!important;border-radius:18px!important;margin:0!important;}
.contract-brand h1{
  margin:0!important;
  color:#fff!important;
  font-size:26px!important;
  line-height:1!important;
  font-weight:1000!important;
  letter-spacing:-.05em!important;
}
.contract-brand span{color:rgba(255,255,255,.68);font-size:13px;font-weight:750;}
.contract-topbar .btn-outline-light{
  border-radius:14px!important;
  border-color:rgba(255,255,255,.22)!important;
  color:#fff!important;
  font-weight:900!important;
  padding:10px 14px!important;
}
.contract-grid{
  display:grid!important;
  grid-template-columns:.95fr 1.05fr;
  gap:24px;
}
.contract-panel{
  min-height:470px;
  border-radius:30px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:var(--waf-shadow);
  overflow:hidden;
}
.contract-info-panel{
  padding:44px!important;
  background:
    linear-gradient(145deg, rgba(7,17,31,.93), rgba(16,33,58,.88)),
    radial-gradient(circle at 15% 12%, rgba(212,175,55,.22), transparent 28%);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.panel-badge{
  align-self:flex-start;
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  color:#111827;
  background:linear-gradient(135deg,var(--waf-gold),var(--waf-gold-2));
  font-size:12px;
  font-weight:1000;
  margin-bottom:18px;
}
.contract-info-panel h2{
  color:#fff!important;
  margin:0 0 14px!important;
  font-size:34px!important;
  font-weight:1000!important;
  letter-spacing:-.05em!important;
}
.contract-info-panel p{
  color:rgba(255,255,255,.78)!important;
  line-height:1.72!important;
  margin:0 0 26px!important;
}
.contract-mini-list{display:grid;gap:12px;}
.contract-mini-list div{
  display:flex;align-items:center;gap:12px;
  padding:13px 15px;
  border-radius:16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-weight:850;
  color:#fff;
}
.contract-mini-list span{
  width:28px;height:28px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(212,175,55,.18);color:#ffe58a;font-weight:1000;
}
.contract-form-panel{
  padding:44px!important;
  color:var(--waf-text)!important;
  background:linear-gradient(180deg,#fff,#f7f9fd)!important;
}
.contract-form-panel h3{
  color:#07111f!important;
  font-size:30px!important;
  line-height:1.1!important;
  font-weight:1000!important;
  letter-spacing:-.05em!important;
  margin:0 0 7px!important;
}
.contract-preview{
  margin-top:18px;
  padding:16px 17px;
  border-radius:18px;
  border:1px solid #e2e8f0;
  background:linear-gradient(180deg,#f8fafc,#eef3fa);
  color:#0f172a;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.contract-preview strong{display:block;color:#07111f;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;}
.contract-preview span{display:block;color:#475569;font-size:14px;line-height:1.55;font-weight:750;}
.form-text{color:#64748b!important;font-size:12px!important;font-weight:650!important;}

@media(max-width:950px){
  body.auth-body,body.contract-body{align-items:flex-start!important;padding:18px!important;}
  .auth-card,.contract-grid{grid-template-columns:1fr!important;}
  .auth-card{min-height:auto;border-radius:24px;}
  .auth-hero{padding:34px 26px!important;}
  .auth-form-wrap{padding:34px 26px!important;}
  .contract-topbar{align-items:flex-start!important;flex-direction:column!important;}
  .contract-panel{min-height:auto;border-radius:24px;}
  .contract-info-panel,.contract-form-panel{padding:30px 24px!important;}
}
@media(max-width:560px){
  body.auth-body,body.contract-body{padding:12px!important;}
  .auth-hero h1{font-size:36px!important;}
  .auth-form-wrap h2,.contract-info-panel h2,.contract-form-panel h3{font-size:26px!important;}
  .auth-logo{width:62px!important;height:62px!important;}
  .contract-brand h1{font-size:22px!important;}
}

/* ============================================================
   STABILISATION AUTH — empêche tout conflit avec sidebar/layout
   ============================================================ */
body.auth-body,
body.contract-body{
  padding-left:34px!important;
  margin-left:0!important;
  width:100%!important;
  max-width:none!important;
}
body.auth-body .app-sidebar,
body.auth-body .sidebar,
body.contract-body .app-sidebar,
body.contract-body .sidebar{
  display:none!important;
}
body.auth-body .auth-card,
body.contract-body .contract-shell{
  margin-left:auto!important;
  margin-right:auto!important;
}
body.auth-body a,
body.contract-body a{color:inherit;}
body.contract-body .contract-topbar a.btn-outline-light{color:#fff!important;}
body.auth-body input,
body.auth-body button,
body.contract-body select,
body.contract-body button{font-family:inherit!important;}

/* Fallback si Bootstrap CDN ne charge pas */
.mb-3{margin-bottom:1rem!important}.mt-3{margin-top:1rem!important}.w-100{width:100%!important}.form-label{display:inline-block}.btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none}.alert{padding:12px 14px;margin-bottom:16px}.form-control,.form-select{display:block;width:100%;}.btn-sm{min-height:38px}.text-center{text-align:center}


/* Support logo image on login */
.auth-logo--image{padding:6px!important;overflow:hidden!important;background:#fff!important}
.auth-logo--image img{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}
