:root{
  --avp-blue: #0B3D91;
  --avp-blue-2: #125BDA;
  --avp-red: #E11D48;

  --avp-ink: #0B1220;
  --avp-muted: #5B6B82;

  --avp-bg: #F6F8FC;
  --avp-card: #FFFFFF;

  --avp-border: rgba(11,18,32,.10);
  --avp-border-2: rgba(11,18,32,.06);

  --avp-radius: 16px;
  --avp-shadow-soft: 0 14px 40px rgba(2, 8, 23, .06);
  --avp-shadow-nav: 0 8px 18px rgba(2, 8, 23, .05);
}

body.avp-body{
  background:
    radial-gradient(1200px 520px at 18% -10%, rgba(18,91,218,.10), transparent 60%),
    radial-gradient(900px 460px at 92% 0%, rgba(225,29,72,.08), transparent 55%),
    var(--avp-bg);
  color: var(--avp-ink);
}

/* =========================
   HEADER (Corporate)
========================= */
.avp-header{
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #fff;
  border-bottom: 1px solid var(--avp-border);
  box-shadow: var(--avp-shadow-nav);
}

.avp-navbar{
  background: transparent;
}

.avp-toggler{
  border: 1px solid var(--avp-border);
  border-radius: 12px;
}

.navbar .nav-link{
  color: var(--avp-ink);
  font-weight: 700;
  opacity: .86;
  border-radius: 12px;
  padding: .55rem .85rem;
  transition: background .15s ease, opacity .15s ease, color .15s ease;
}

.navbar .nav-link:hover{
  opacity: 1;
  background: rgba(18,91,218,.07);
  color: var(--avp-blue);
}

.avp-navlinks .nav-link.active{
  background: rgba(18,91,218,.10);
  color: var(--avp-blue);
}

/* Brand (clean corporate) */
.avp-logo{
  width: 42px; height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  box-shadow: 0 12px 30px rgba(18,91,218,.20);
}

.avp-logo-inner{
  color: #fff;
  font-weight: 900;
  letter-spacing: .5px;
}

.avp-brand-title{
  font-weight: 900;
  font-size: 14px;
  letter-spacing: .2px;
}

.avp-brand-subtitle{
  color: var(--avp-muted);
  font-size: 11px;
}

/* Language select */
.avp-lang{
  min-width: 86px;
  border-radius: 12px;
  border: 1px solid var(--avp-border);
  background: #fff;
}

/* Admin button (corporate) */
.avp-btn{
  border-radius: 14px;
  padding: .62rem .95rem;
  font-weight: 800;
}

.avp-btn-admin{
  color: #fff;
  border: none;
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  box-shadow: 0 14px 32px rgba(18,91,218,.18);
}

.avp-btn-admin:hover{
  filter: brightness(1.02);
  color: #fff;
}

/* =========================
   TYPOGRAPHY (Corporate)
========================= */
.avp-muted{ color: var(--avp-muted); }

.avp-h1{
  font-size: clamp(30px, 3vw, 44px);
  font-weight: 950;
  letter-spacing: -0.02em;
  line-height: 1.08;
}

.avp-h2{
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.avp-h3{
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.avp-lead{
  font-size: 1.05rem;
  color: var(--avp-muted);
  line-height: 1.75;
}

/* =========================
   CARDS
========================= */
.avp-card{
  background: var(--avp-card);
  border: 1px solid var(--avp-border-2);
  border-radius: var(--avp-radius);
  box-shadow: var(--avp-shadow-soft);
}

.avp-card-link{
  text-decoration: none;
  color: inherit;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.avp-card-link:hover{
  transform: translateY(-2px);
  box-shadow: 0 22px 60px rgba(2, 8, 23, .10);
  border-color: rgba(18,91,218,.20);
}

/* Section divider */
.avp-divider{
  height: 1px;
  background: rgba(11,18,32,.10);
}

/* =========================
   HERO (more corporate)
========================= */
.avp-hero{
  border-radius: 22px;
  padding: 28px;
  background: linear-gradient(180deg, #ffffff, rgba(255,255,255,.78));
  border: 1px solid var(--avp-border-2);
}

.avp-chip{
  border-radius: 999px;
  padding: .45rem .75rem;
  font-weight: 900;
  font-size: 13px;
  background: rgba(225,29,72,.10);
  border: 1px solid rgba(225,29,72,.18);
}

.avp-badges{ display:flex; flex-wrap:wrap; gap:.5rem; }
.avp-badge-soft{
  display:inline-flex; align-items:center;
  gap:.35rem;
  border-radius: 999px;
  padding: .35rem .6rem;
  font-weight: 800;
  font-size: 12px;
  background: rgba(18,91,218,.08);
  border: 1px solid rgba(18,91,218,.16);
  color: var(--avp-blue);
}

/* Hero panel */
.avp-hero-panel{
  border-radius: 18px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--avp-border-2);
  box-shadow: 0 18px 55px rgba(2,8,23,.08);
}

.avp-hero-panel-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(11,18,32,.08);
}

.avp-pulse{
  width: 10px; height: 10px;
  border-radius: 999px;
  background: var(--avp-red);
  box-shadow: 0 0 0 7px rgba(225,29,72,.10);
}

.avp-hero-metrics{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 14px;
}

.avp-metric{
  border-radius: 14px;
  border: 1px solid rgba(11,18,32,.08);
  background: rgba(246,248,252,.85);
  padding: 12px;
}

.avp-metric-value{
  font-size: 20px;
  font-weight: 950;
  margin-top: 2px;
}

/* Buttons primary / ghost */
.avp-btn-primary{
  border: none;
  color: #fff;
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  box-shadow: 0 14px 34px rgba(18,91,218,.20);
}

.avp-btn-primary:hover{ filter: brightness(1.02); color:#fff; }

.avp-btn-ghost{
  border: 1px solid rgba(11,61,145,.22);
  background: #fff;
  color: var(--avp-blue);
}

.avp-btn-ghost:hover{
  border-color: rgba(225,29,72,.35);
  color: var(--avp-red);
}

/* Links */
.avp-link{
  color: var(--avp-blue);
  text-decoration: none;
  font-weight: 800;
}
.avp-link:hover{ color: var(--avp-red); }

/* Search */
.avp-search{ position: relative; }
.avp-search i{
  position:absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(11,18,32,.45);
}
.avp-search .form-control{
  padding-left: 38px;
  border-radius: 14px;
  border: 1px solid rgba(11,18,32,.12);
  min-width: 260px;
}

/* Forms */
.avp-form .form-control, .avp-form textarea, .avp-form .form-select{
  border-radius: 14px;
  border: 1px solid rgba(11,18,32,.12);
  padding: .65rem .8rem;
}
.avp-form .form-control:focus, .avp-form textarea:focus, .avp-form .form-select:focus{
  border-color: rgba(18,91,218,.35);
  box-shadow: 0 0 0 .2rem rgba(18,91,218,.12);
}

/* Tip */
.avp-tip{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  padding: 12px;
  border-radius: 14px;
  background: rgba(18,91,218,.07);
  border: 1px solid rgba(18,91,218,.16);
}

/* Prose */
.avp-prose p, .avp-prose li{ line-height: 1.75; }
.avp-clamp-2{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.avp-clamp-3{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* Alerts */
.avp-toaststack{ position: sticky; top: 78px; z-index: 10; }
.avp-alert{
  border-radius: 16px;
  border: 1px solid rgba(11,18,32,.12);
  background: rgba(255,255,255,.96);
  box-shadow: 0 16px 50px rgba(2,8,23,.08);
}

/* Reveal animations */
.avp-reveal{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .45s ease, transform .45s ease;
}
.avp-reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

/* =========================
   FOOTER (Corporate distinct)
========================= */
.avp-footer{
  margin-top: 60px;
  background: #071225;               /* bleu nuit */
  color: rgba(255,255,255,.84);
  border-top: 4px solid rgba(225,29,72,.55); /* liseré rouge corporate */
}

.avp-footer-logo{
  width: 44px; height: 44px;
  border-radius: 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight: 950;
  color:#fff;
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  box-shadow: 0 18px 45px rgba(18,91,218,.22);
}

.avp-footer-title{
  color: #fff;
  font-weight: 950;
  letter-spacing: .2px;
}
.avp-footer-subtitle{
  color: rgba(255,255,255,.64);
  font-size: 12px;
}

.avp-footer-head{
  color: #fff;
  font-weight: 900;
  margin-bottom: 12px;
}

.avp-footer-text{
  color: rgba(255,255,255,.72);
  line-height: 1.75;
}

.avp-footer-list{ margin: 0; padding: 0; }
.avp-footer-list li{ margin-bottom: 8px; }

.avp-footer-link{
  color: rgba(255,255,255,.70);
  text-decoration: none;
  font-weight: 700;
}
.avp-footer-link:hover{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.avp-footer-muted{
  color: rgba(255,255,255,.55);
  font-weight: 600;
}

.avp-footer-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding: .35rem .6rem;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.78);
  font-weight: 800;
  font-size: 12px;
}

.avp-footer-bottom{
  background: rgba(0,0,0,.22);
  border-top: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.66);
  font-weight: 700;
}

.avp-footer-dot{
  width: 8px; height: 8px;
  border-radius: 999px;
  background: var(--avp-red);
  display:inline-block;
}

/* Responsive */
@media (max-width: 576px){
  .avp-hero{ padding: 18px; }
  .avp-search .form-control{ min-width: 180px; }
  .avp-hero-metrics{ grid-template-columns: 1fr; }
}

/* =========================
   DARK NAVBAR (same as footer)
========================= */
.avp-header.avp-header-dark{
  background: #071225; /* same as footer */
  border-bottom: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

.avp-header.avp-header-dark .avp-navbar{
  background: transparent;
}

.avp-header.avp-header-dark .avp-brand-title{
  color: #fff;
}

.avp-header.avp-header-dark .avp-brand-subtitle{
  color: rgba(255,255,255,.70);
}

/* Logo stays premium */
.avp-header.avp-header-dark .avp-logo{
  box-shadow: 0 18px 45px rgba(18,91,218,.22);
}

/* Nav links */
.avp-header.avp-header-dark .navbar .nav-link{
  color: rgba(255,255,255,.82);
  opacity: 1;
  font-weight: 800;
}

.avp-header.avp-header-dark .navbar .nav-link:hover{
  color: #fff;
  background: rgba(255,255,255,.08);
}

/* Active link */
.avp-header.avp-header-dark .avp-navlinks .nav-link.active{
  color: #fff;
  background: rgba(18,91,218,.22);
  border: 1px solid rgba(255,255,255,.10);
}

/* Language select */
.avp-header.avp-header-dark .avp-lang{
  background: rgba(255,255,255,.06);
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
}

.avp-header.avp-header-dark .avp-lang option{
  color: #0B1220;
}

/* Admin button (pop + corporate) */
.avp-header.avp-header-dark .avp-btn-admin{
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  box-shadow: 0 16px 40px rgba(18,91,218,.25);
}

/* Toggler */
.avp-header.avp-header-dark .avp-toggler{
  border: 1px solid rgba(255,255,255,.14);
}

/* Optional: top red accent line like footer */
.avp-header.avp-header-dark{
  border-top: 4px solid rgba(225,29,72,.55);
}