/* ALIVE - socle : jetons de marque + overlays d'amorçage/erreur + pied de page.
   Couleur de marque : bleu #2563eb. Palette alignée sur le chrome partagé
   (@secalys-sas/chrome) et sur ORBIT (orbit.css). Le shell applicatif et les
   composants de vue vivent dans app-shell.css / views.css. */

:root {
  --navy:    #14253a;
  --ink:     #1f2d3d;
  --muted:   #6b7785;
  --muted-2: #97a2ad;
  --bg:      #eef1f4;
  --card:    #ffffff;
  --line:    #e4e9ee;
  --line-2:  #eef2f5;

  --green:   #18a957;
  --green-d: #128043;

  --pulse:   #16a34a;
  --shield:  #d6a100;
  --pilot:   #e5484d;
  --alive:   #2563eb;
  --alive-d: #1d4ed8;
  --alive-soft: rgba(37, 99, 235, 0.10);

  --ok:      #18a957;
  --warn:    #e07b1a;
  --danger:  #e5484d;

  --radius:  16px;
  --radius-s: 11px;
  --shadow:  0 18px 40px -26px rgba(20, 37, 58, .28);
  --font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

/* L'attribut `hidden` doit TOUJOURS l'emporter : l'overlay .boot est en
   `display:flex` (même spécificité que la règle UA `[hidden]{display:none}`),
   donc sans ceci il resterait visible malgré `hidden` posé par auth.js. */
[hidden] { display: none !important; }

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---- Amorçage (splash) --------------------------------------------------- */

.boot {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: var(--bg);
  z-index: 100;
}

.boot-spin {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 3px solid var(--line);
  border-top-color: var(--alive);
  animation: boot-spin 0.8s linear infinite;
}
@keyframes boot-spin { to { transform: rotate(360deg); } }

.boot-msg { margin: 0; font-size: 0.95rem; color: var(--muted); }

/* Erreur terminale SSO (code non réessayable) : message seul, centré, sans
   bouton. Couvre le spinner ; on n'invite PAS à réessayer (l'action échouerait
   à l'identique). Aligné SHIELD/PULSE/PILOT/ALIVE. */
.sso-terminal-error {
  position: fixed;
  inset: 0;
  z-index: 200;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
  background: var(--bg);
  color: var(--danger);
  font-size: 0.95rem;
  line-height: 1.5;
}

/* ---- Pied de page (sous le shell) -------------------------------------- */

.footbar {
  flex: none;
  border-top: 1px solid var(--line);
  background: #fff;
  padding: 12px 26px;
  text-align: center;
}
.foot-meta { font-size: 0.8rem; color: var(--muted); }
.ver {
  margin-left: 6px;
  font-variant-numeric: tabular-nums;
  color: var(--alive);
  font-weight: 600;
}
