:root{
  --uac-primary:#0a3d62;
  --uac-primary-2:#1e5d8a;
  --uac-accent:#ef9c00;
  --uac-bg:#f4f6fa;
}
body{background:var(--uac-bg); font-family:'Segoe UI',system-ui,-apple-system,sans-serif; color:#1a2233;}
.uac-navbar{background:linear-gradient(90deg,var(--uac-primary),var(--uac-primary-2));}
.uac-navbar .nav-link{color:rgba(255,255,255,.85)!important;}
.uac-navbar .nav-link:hover, .uac-navbar .nav-link.active{color:#fff!important;}

/* Stat cards */
.stat-card{background:#fff;border-radius:14px;padding:18px 20px;display:flex;gap:14px;align-items:center;
  box-shadow:0 4px 14px rgba(10,61,98,.06);border:1px solid #eef2f7;}
.stat-card .stat-icon{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fff;}
.stat-blue   .stat-icon{background:linear-gradient(135deg,#0a3d62,#1e88e5);}
.stat-amber  .stat-icon{background:linear-gradient(135deg,#ef6c00,#ffb300);}
.stat-green  .stat-icon{background:linear-gradient(135deg,#1b5e20,#43a047);}
.stat-violet .stat-icon{background:linear-gradient(135deg,#4a148c,#8e24aa);}
.stat-value{font-size:1.6rem;font-weight:700;line-height:1;}
.stat-label{color:#6b7a90;font-size:.85rem;}

/* Timeline workflow */
.timeline{list-style:none;padding-left:18px;border-left:2px dashed #cfd8e3;margin:0;}
.timeline li{position:relative;padding:8px 0 14px 14px;}
.timeline li::before{content:'';position:absolute;left:-23px;top:14px;width:12px;height:12px;border-radius:50%;background:#cfd8e3;border:2px solid #fff;box-shadow:0 0 0 1px #cfd8e3;}
.timeline li.done::before{background:#43a047;box-shadow:0 0 0 1px #43a047;}
.timeline li.done.reject::before{background:#e53935;box-shadow:0 0 0 1px #e53935;}
.timeline li.done.request_changes::before{background:#fb8c00;box-shadow:0 0 0 1px #fb8c00;}

/* Auth */
.auth-body{min-height:100vh;background:linear-gradient(135deg,#0a3d62 0%,#1e5d8a 100%);display:flex;align-items:center;justify-content:center;padding:1rem;}
.auth-wrapper{width:100%;max-width:420px;}
.auth-card{background:#fff;border-radius:18px;padding:2.2rem;}
.auth-logo{width:64px;height:64px;margin:0 auto;border-radius:18px;background:linear-gradient(135deg,#0a3d62,#1e88e5);
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.8rem;}

.btn-primary{background:var(--uac-primary);border-color:var(--uac-primary);}
.btn-primary:hover{background:var(--uac-primary-2);border-color:var(--uac-primary-2);}
.text-primary{color:var(--uac-primary)!important;}
.card{border-radius:14px;}

/* ==================== Workflows admin ==================== */
.wf-header h2{letter-spacing:-.02em;}
.wf-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.wf-card{border-radius:18px;overflow:hidden;background:#fff;transition:transform .2s ease, box-shadow .2s ease;}
.wf-card:hover{transform:translateY(-2px);box-shadow:0 18px 40px -20px rgba(10,61,98,.25)!important;}
.wf-card-head{padding:1.25rem 1.4rem;background:linear-gradient(135deg,#f7fafd 0%,#eef4fb 100%);border-bottom:1px solid #eef2f7;}
.wf-avatar{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:1.2rem;
  background:linear-gradient(135deg,var(--uac-primary,#0a3d62),#1e88e5);box-shadow:0 6px 14px -6px rgba(30,136,229,.55);}
.wf-badge{background:#eaf2fb;color:var(--uac-primary,#0a3d62);font-weight:600;border-radius:999px;padding:.4rem .75rem;}

.wf-steps{display:grid;gap:.55rem;}
.wf-step{position:relative;display:grid;grid-template-columns:36px 1fr 28px;align-items:center;gap:.85rem;
  padding:.7rem .9rem;border:1.5px solid #e6ebf2;border-radius:12px;background:#fff;cursor:pointer;
  transition:all .18s ease;user-select:none;}
.wf-step:hover{border-color:#bcd3ec;background:#fafcff;}
.wf-step input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;width:100%;height:100%;z-index:2;}
.wf-step-num{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-weight:700;
  background:#f1f5fa;color:#6b7c93;font-size:.92rem;}
.wf-step-title{display:block;font-weight:600;color:#22364c;line-height:1.15;}
.wf-step-meta{display:block;font-size:.78rem;color:#8696aa;margin-top:2px;}
.wf-step-check{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;border:1.5px solid #d6dee8;color:transparent;background:#fff;transition:all .18s;}
.wf-step.is-on{border-color:var(--uac-primary,#0a3d62);background:linear-gradient(135deg,#f4f9ff,#eaf2fb);box-shadow:inset 0 0 0 1px rgba(10,61,98,.06);}
.wf-step.is-on .wf-step-num{background:linear-gradient(135deg,var(--uac-primary,#0a3d62),#1e88e5);color:#fff;box-shadow:0 4px 10px -4px rgba(10,61,98,.55);}
.wf-step.is-on .wf-step-check{background:var(--uac-primary,#0a3d62);border-color:var(--uac-primary,#0a3d62);color:#fff;}

.wf-flow{padding-top:1rem;border-top:1px dashed #e6ebf2;}
.wf-flow-track{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;}
.wf-chip{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1.5px solid #d6e3f2;color:#1e3a5f;
  padding:.35rem .7rem .35rem .35rem;border-radius:999px;font-size:.82rem;font-weight:600;
  box-shadow:0 2px 6px -3px rgba(10,61,98,.18);}
.wf-chip-num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--uac-primary,#0a3d62),#1e88e5);color:#fff;font-size:.72rem;}
.wf-chip-sep{color:#9bb0c8;font-size:1rem;}

/* Bouton secondaire (Retour à la connexion) */
.btn-auth-secondary,
.btn.btn-auth-secondary {
  --bs-btn-bg: transparent;
  --bs-btn-color: #1e40af;
  background: #ffffff !important;
  color: #1e40af !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 12px;
  padding: 0.75rem 1.25rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: all 0.2s ease;
}
.btn-auth-secondary:hover {
  border-color: #1e40af !important;
  background: #f8fafc !important;
  transform: translateY(-1px);
}

/* Séparateur "ou" */
.auth-divider {
  display: flex;
  align-items: center;
  text-align: center;
  color: #94a3b8;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 1.25rem 0;
}
.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e2e8f0;
}
.auth-divider span { padding: 0 0.75rem; }

/* Sous-titre auth */
.auth-subtitle {
  color: #64748b;
  font-size: 0.9375rem;
  line-height: 1.5;
  margin-bottom: 1.75rem;
}

