/* ═══ Authentification : panneau de marque + formulaire (indépendant de la coque applicative) ═══ */
.ax-body { margin: 0; min-height: 100vh; background: var(--ui-bg); color: var(--ui-text); font-family: var(--ui-font, 'Inter', system-ui, sans-serif); }
.ax-skip { position: absolute; left: -9999px; top: 8px; z-index: 10; padding: 8px 14px; border-radius: 8px; background: #4f46e5; color: #fff; }
.ax-skip:focus { left: 8px; }
.ax-shell { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); min-height: 100vh; }

/* Panneau de marque : toujours sombre, quel que soit le thème */
.ax-brand {
  position: relative; overflow: hidden; isolation: isolate; color: #e8eaff;
  display: flex; flex-direction: column; justify-content: space-between; gap: 40px; padding: 44px 56px;
  background: linear-gradient(150deg, #0f0c29 0%, #1e1b4b 38%, #312e81 72%, #4c1d95 100%);
}
.ax-glow { position: absolute; border-radius: 50%; filter: blur(70px); z-index: -1; opacity: .55; }
.ax-glow-1 { width: 520px; height: 520px; right: -140px; top: -160px; background: #6366f1; }
.ax-glow-2 { width: 420px; height: 420px; left: -120px; bottom: -160px; background: #0ea5e9; opacity: .35; }
.ax-grid {
  position: absolute; inset: 0; z-index: -1; opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 44px 44px; mask-image: radial-gradient(ellipse at 30% 40%, #000 30%, transparent 75%);
}
.ax-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; font-size: 1.15rem; letter-spacing: -.01em; }
.ax-logo b { font-weight: 800; }
.ax-logo-mark {
  width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: #fff; font-size: 1.1rem;
  background: linear-gradient(135deg, #6366f1, #8b5cf6 60%, #06b6d4); box-shadow: 0 8px 24px rgba(99, 102, 241, .45);
}
.ax-pitch { max-width: 560px; }
.ax-kicker {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; font-size: .78rem; font-weight: 600;
  color: #c7d2fe; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14);
}
.ax-pitch h2 { margin: 18px 0 14px; font-size: clamp(1.8rem, 2.6vw, 2.6rem); line-height: 1.12; font-weight: 800; letter-spacing: -.035em; color: #fff; }
.ax-pitch > p { margin: 0 0 30px; font-size: 1.02rem; line-height: 1.6; color: #c3c8ec; }
.ax-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ax-feature {
  display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 14px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(6px);
}
.ax-feature > span { width: 36px; height: 36px; flex: none; border-radius: 10px; display: grid; place-items: center; background: rgba(129, 140, 248, .22); color: #c7d2fe; }
.ax-feature b { display: block; color: #fff; font-size: .92rem; }
.ax-feature small { color: #b4badf; font-size: .8rem; line-height: 1.35; }
.ax-brand-foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: .8rem; color: #a5abd6; }
.ax-brand-foot i { margin-right: 6px; }

/* Zone formulaire */
.ax-main { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 32px 24px; position: relative; }
.ax-top { position: absolute; top: 24px; left: 24px; right: 24px; display: flex; justify-content: flex-end; align-items: center; }
.ax-logo-sm { display: none; color: var(--ui-text); }
.ax-theme {
  width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--ui-border); background: var(--ui-surface); color: var(--ui-text-2);
  display: grid; place-items: center; cursor: pointer;
}
.ax-theme:hover { border-color: var(--ui-primary); color: var(--ui-primary); }
.ax-theme .fa-sun { display: none; }
:root[data-bs-theme="dark"] .ax-theme .fa-sun { display: inline-block; }
:root[data-bs-theme="dark"] .ax-theme .fa-moon { display: none; }

.ax-card {
  width: 100%; max-width: 430px; padding: 36px 36px 30px; border-radius: 20px;
  background: var(--ui-surface); border: 1px solid var(--ui-border);
  box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 24px 60px rgba(16,24,40,.08);
}
.ax-head { margin-bottom: 22px; }
.ax-ico {
  width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; font-size: 1.1rem; margin-bottom: 18px;
  color: var(--ui-primary); background: rgba(var(--ui-primary-rgb), .1);
}
.ax-head h1 { margin: 0 0 6px; font-size: 1.65rem; font-weight: 800; letter-spacing: -.03em; color: var(--ui-text); }
.ax-head p { margin: 0; color: var(--ui-muted); font-size: .95rem; line-height: 1.5; }

/* Champs (structure des macros _auth_macros.html conservée) */
.ax-card .au-field { margin-bottom: 16px; }
.ax-card .au-field label { display: block; margin-bottom: 6px; font-size: .86rem; font-weight: 600; color: var(--ui-text-2); }
.ax-card .au-req { color: var(--ui-bad); }
.ax-card .form-control {
  height: 46px; border-radius: 12px; border: 1px solid var(--ui-border-strong); background: var(--ui-surface);
  color: var(--ui-text); padding: 0 14px; font-size: .95rem;
}
.ax-card .form-control:focus { border-color: var(--ui-primary); box-shadow: 0 0 0 4px rgba(var(--ui-primary-rgb), .16); }
.ax-card .au-pw { position: relative; }
.ax-card .au-pw .form-control { padding-right: 46px; }
.ax-card .au-pw-btn {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; border-radius: 10px;
  background: transparent; color: var(--ui-muted); display: grid; place-items: center;
}
.ax-card .au-pw-btn:hover { background: var(--ui-bg-2); color: var(--ui-text); }
.ax-card .au-msg { min-height: 0; font-size: .8rem; color: var(--ui-muted); margin-top: 4px; }
.ax-card .au-msg:empty { display: none; }
.ax-card .au-msg.is-error { color: var(--ui-bad); }
.ax-card .au-row { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 20px; }
.ax-card .au-row .form-check-label { color: var(--ui-text-2); font-size: .9rem; }
.ax-card .au-hint { font-size: .8rem; color: var(--ui-muted); }
.ax-card .au-submit {
  width: 100%; height: 48px; border-radius: 12px; font-weight: 700; font-size: .98rem; border: 0; color: #fff;
  background: linear-gradient(135deg, #4f46e5, #6d28d9); box-shadow: 0 10px 24px rgba(79, 70, 229, .3);
}
.ax-card .au-submit:hover { filter: brightness(1.06); transform: translateY(-1px); }
.ax-card .au-alert { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; margin-bottom: 16px; font-size: .9rem; }
.ax-card .au-alert.danger { background: var(--ui-bad-bg, rgba(220,38,38,.1)); color: var(--ui-bad); }
.ax-card .au-alert.success { background: var(--ui-ok-bg, rgba(22,163,74,.12)); color: var(--ui-ok); }
.ax-card .au-alert.warning { background: var(--ui-warn-bg, rgba(217,119,6,.12)); color: var(--ui-warn); }
.ax-card .au-alert.info { background: var(--ui-info-bg, rgba(8,145,178,.1)); color: var(--ui-info); }
.ax-card .au-strength { display: flex; gap: 6px; margin-top: 8px; }
.ax-card .au-strength i { flex: 1; height: 4px; border-radius: 4px; background: var(--ui-bg-2); }
.ax-foot { margin-top: 20px; color: var(--ui-muted); font-size: .9rem; text-align: center; }
.ax-foot a { color: var(--ui-primary); font-weight: 600; }

@media (max-width: 991.98px) {
  .ax-shell { grid-template-columns: 1fr; }
  .ax-brand { padding: 28px 24px 30px; gap: 22px; }
  .ax-brand .ax-pitch h2 { font-size: 1.55rem; margin: 12px 0 8px; }
  .ax-brand .ax-pitch > p { margin-bottom: 0; font-size: .92rem; }
  .ax-features, .ax-brand-foot { display: none; }
  .ax-main { justify-content: flex-start; padding: 24px 16px 40px; }
  .ax-top { position: static; width: 100%; max-width: 430px; margin-bottom: 16px; }
  .ax-card { padding: 26px 22px; }
}
@media (prefers-reduced-motion: reduce) { .ax-card .au-submit:hover { transform: none; } }
html body .ax-brand .ax-pitch h2 { color: #fff !important; }
html body .ax-card .ax-head h1 { color: var(--ui-text) !important; }
.ax-card .au-row { align-items: flex-start; text-align: left; }
.ax-card .au-row .form-check { display: flex; align-items: center; gap: 8px; padding-left: 0; margin: 0; }
.ax-card .au-row .form-check-input { float: none; margin: 0; width: 18px; height: 18px; }

/* ═══ Page de connexion allégée (auth_minimal.html) ══════════════════════════
   Formulaire seul, centré, sur fond dédié. Aucune marque à l'écran :
   ni logo, ni nom d'application, ni encart d'inscription. */
.am-shell {
  min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column;
  position: relative; isolation: isolate;
  background: #0b1024 url("../../assets/auth-bg.svg") center / cover no-repeat;
}
.am-top {
  position: absolute; top: 18px; right: 22px; z-index: 5;
  display: flex; align-items: center; gap: 8px;
}
.am-main {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 56px 24px 40px; width: 100%;
}
.am-card {
  max-width: 400px; width: 100%; padding: 38px 34px 32px;
  box-shadow: 0 2px 6px rgba(6, 9, 25, .3), 0 34px 74px rgba(6, 9, 25, .5);
}
.am-card .ax-head { margin-bottom: 22px; }
.am-card .ax-head h1 { font-size: 1.5rem; letter-spacing: -.02em; }
/* Le bloc « pied » n'apparaît qu'en mode complet : inutile de réserver la place */
.ax-foot.am-foot:empty { display: none; }

@media (max-width: 575.98px) {
  .am-top { top: 12px; right: 12px; }
  .am-main { padding: 62px 16px 28px; }
  .am-card { padding: 28px 22px 26px; }
  .am-card .ax-head h1 { font-size: 1.3rem; }
}

