/* ==========================================================================
   ONASA SII — thème de l'application
   Chargé après argon-dashboard.min.css. Un seul fichier pilote toutes les vues.

   Sommaire
   01 Polices            07 Formulaires          13 Connexion / erreur
   02 Jetons             08 Tableaux             14 Petits écrans
   03 Base               09 Badges, alertes…     15 Impression (17 Habillage avant)
   04 Menu latéral       10 Listes, menus        16 Mouvement réduit
   05 Barre supérieure   11 Tableaux de bord
   06 Cartes, boutons    12 Utilitaires Argon
   ========================================================================== */

/* —— 01 Polices (Inter et Poppins, licence SIL OFL — hébergées localement, pas de CDN) —— */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/inter-400.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/inter-600.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/inter-700.woff") format("woff");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/poppins-500.woff") format("woff");
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/poppins-700.woff") format("woff");
}

/* —— 02 Jetons —— */
:root {
  /* Marque */
  --onasa-green: #0e8a56;
  --onasa-green-dark: #0a6b43;
  --onasa-green-deep: #06472c;
  --onasa-green-soft: #e3f5ec;
  --onasa-green-tint: #f0faf5;
  --onasa-gold: #d4a72c;
  --onasa-gold-ink: #7a5f0b;
  --onasa-gold-soft: #fbf3d9;

  /* Surfaces et texte */
  --onasa-ink: #101815;
  --onasa-ink-2: #34423b;
  --onasa-muted: #66736c;
  --onasa-bg: #f6f5f0;
  --onasa-card: #ffffff;
  --onasa-sunken: #f7f8f5;
  --onasa-line: rgba(16, 24, 21, 0.08);
  --onasa-line-strong: rgba(16, 24, 21, 0.16);

  /* États */
  --onasa-danger: #b42318;
  --onasa-danger-soft: #fdecea;
  --onasa-warning: #a15c07;
  --onasa-warning-soft: #fdf3dc;
  --onasa-info: #0e6f7c;
  --onasa-info-soft: #e3f3f5;
  --onasa-neutral-soft: #eceeeb;

  /* Forme */
  --onasa-radius-sm: 10px;
  --onasa-radius: 16px;
  --onasa-radius-lg: 24px;
  --onasa-shadow-sm: 0 1px 1px rgba(16, 24, 21, 0.03), 0 8px 24px -14px rgba(16, 24, 21, 0.16);
  --onasa-shadow: 0 1px 2px rgba(16, 24, 21, 0.04), 0 16px 40px -18px rgba(16, 24, 21, 0.22);
  --onasa-shadow-lg: 0 2px 6px rgba(16, 24, 21, 0.05), 0 30px 60px -20px rgba(16, 24, 21, 0.3);
  --onasa-ring: 0 0 0 4px rgba(14, 138, 86, 0.18);

  /* Dégradés et halos */
  --onasa-grad-green: linear-gradient(135deg, #16b070 0%, #0e8a56 48%, #0a6b43 100%);
  --onasa-grad-gold: linear-gradient(135deg, #f0d27a 0%, #d4a72c 55%, #b98a1c 100%);
  --onasa-grad-hero: linear-gradient(125deg, #0b6a43 0%, #07492e 46%, #052e1e 100%);
  --onasa-glow-green: 0 10px 24px -10px rgba(14, 138, 86, 0.6);
  --onasa-glow-gold: 0 10px 24px -10px rgba(212, 167, 44, 0.65);
  --onasa-sidenav-inset: 0.75rem;

  /* Structure */
  --onasa-sidenav-width: 17rem;
  --onasa-topbar-height: 3.75rem;
  --onasa-gutter: clamp(1rem, 0.4rem + 2.2vw, 2rem);
  --onasa-content-max: 96rem;

  /* Menu latéral */
  --onasa-sidenav-bg: rgba(255, 255, 255, 0.82);
  --onasa-sidenav-bg-2: rgba(255, 255, 255, 0.92);
  --onasa-sidenav-text: #27342d;
  --onasa-sidenav-muted: #7a8780;
  --onasa-sidenav-hover: rgba(14, 138, 86, 0.08);
  --onasa-sidenav-line: rgba(16, 24, 21, 0.07);

  /* Typographie */
  --onasa-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --onasa-font-display: "Poppins", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  /* Bootstrap */
  --bs-primary: #0e8a56;
  --bs-primary-rgb: 14, 138, 86;
  --bs-success: #0e8a56;
  --bs-success-rgb: 14, 138, 86;
  --bs-font-sans-serif: var(--onasa-font);
  --bs-body-font-family: var(--onasa-font);
  --bs-body-color: #101815;
  --bs-body-bg: #f6f5f0;
  --bs-link-color: #0e8a56;
  --bs-link-color-rgb: 14, 138, 86;
  --bs-link-hover-color: #0a6b43;
  --bs-border-color: rgba(21, 32, 26, 0.1);
}

/* —— 03 Base —— */
html {
  font-size: 15px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--onasa-topbar-height) + 1rem);
}

@media (min-width: 1600px) {
  html {
    font-size: 16px;
  }
}

body,
body.g-sidenav-show,
body.onasa-app {
  font-family: var(--onasa-font);
  font-feature-settings: "cv11", "ss01", "calt";
  background: var(--onasa-bg) !important;
  color: var(--onasa-ink);
  line-height: 1.55;
  letter-spacing: -0.006em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

.onasa-app *,
.onasa-app *::before,
.onasa-app *::after {
  -webkit-tap-highlight-color: transparent;
}

.onasa-app h1,
.onasa-app h2,
.onasa-app h3,
.onasa-app h4,
.onasa-app h5,
.onasa-app h6,
.onasa-app .h1,
.onasa-app .h2,
.onasa-app .h3,
.onasa-app .h4,
.onasa-app .h5,
.onasa-app .h6 {
  font-family: var(--onasa-font-display);
  font-weight: 600;
  color: var(--onasa-ink);
  letter-spacing: -0.018em;
  line-height: 1.2;
  text-wrap: balance;
}

.onasa-app h4,
.onasa-app .h4 {
  font-size: clamp(1.3rem, 1.1rem + 0.9vw, 1.65rem);
}

.onasa-app h5,
.onasa-app .h5 {
  font-size: clamp(1.12rem, 1.02rem + 0.45vw, 1.3rem);
}

.onasa-app h6,
.onasa-app .h6 {
  font-size: 1rem;
  letter-spacing: -0.012em;
}

.onasa-app p {
  text-wrap: pretty;
}

.onasa-app a {
  color: var(--onasa-green);
  text-underline-offset: 0.18em;
}

.onasa-app a:hover {
  color: var(--onasa-green-dark);
}

.onasa-app strong,
.onasa-app b {
  font-weight: 600;
}

.onasa-app ::selection {
  background: rgba(201, 162, 39, 0.3);
}

.onasa-app :focus-visible {
  outline: 2px solid var(--onasa-green);
  outline-offset: 2px;
}

.onasa-app hr,
.onasa-app hr.horizontal,
.onasa-app hr.horizontal.dark {
  height: 0;
  margin-inline: 0;
  border: 0;
  border-top: 1px solid var(--onasa-line);
  background: none !important;
  opacity: 1;
}

/* Lien d'évitement (clavier) */
.onasa-skip {
  position: fixed;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 2000;
  padding: 0.6rem 0.9rem;
  border-radius: var(--onasa-radius-sm);
  background: var(--onasa-ink);
  color: #fff !important;
  font-weight: 600;
  text-decoration: none;
  transform: translateY(-200%);
}

.onasa-skip:focus {
  transform: none;
}

/* L'ancien bandeau sombre d'Argon */
body.g-sidenav-show > .min-height-300.bg-dark,
body.g-sidenav-show > .min-height-300.position-absolute {
  display: none !important;
}

/* —— 04 Menu latéral —— */
#sidenav-main,
#sidenav-main.bg-white,
#sidenav-main.bg-transparent,
#sidenav-main.navbar-vertical.navbar-expand-xs {
  --bs-navbar-color: var(--onasa-sidenav-text);
  background: linear-gradient(180deg, var(--onasa-sidenav-bg-2) 0%, var(--onasa-sidenav-bg) 100%) !important;
  color: var(--onasa-sidenav-text);
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: var(--onasa-sidenav-width) !important;
  max-width: min(var(--onasa-sidenav-width), 88vw) !important;
  height: 100vh !important;
  height: 100dvh !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  overflow: hidden !important;
  z-index: 1045;
  padding-left: env(safe-area-inset-left) !important;
  transition: transform 0.26s cubic-bezier(0.32, 0.72, 0, 1), visibility 0.26s;
}

#sidenav-main .onasa-sidenav-head,
#sidenav-main .sidenav-header {
  order: 1;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  height: auto !important;
  min-height: var(--onasa-topbar-height);
  padding: 0.85rem 1rem !important;
  border-bottom: 1px solid var(--onasa-sidenav-line);
}

#sidenav-main .navbar-brand,
.sidenav .navbar-brand {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 0.7rem;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  text-decoration: none;
}

.sidenav .navbar-brand-img,
.navbar-brand-img,
#sidenav-main .navbar-brand-img {
  width: 2.5rem;
  height: 2.5rem;
  max-height: none !important;
  object-fit: contain;
  object-position: center;
  flex-shrink: 0;
  background: #fff;
  border-radius: 10px;
  padding: 0.15rem;
}

.onasa-sidenav-wordmark {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.15;
  text-align: left;
}

.onasa-sidenav-wordmark strong {
  font-family: var(--onasa-font-display);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--onasa-ink);
}

.onasa-sidenav-wordmark small {
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--onasa-sidenav-muted);
}

.onasa-sidenav-close {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 10px;
  background: var(--onasa-sidenav-hover);
  color: var(--onasa-sidenav-text);
  cursor: pointer;
}

.onasa-sidenav-close:hover,
.onasa-sidenav-close:focus-visible {
  background: var(--onasa-sidenav-hover);
  color: var(--onasa-ink);
}

#sidenav-main :focus-visible {
  outline-color: var(--onasa-gold);
}

#sidenav-main > hr,
#sidenav-main .horizontal {
  display: none !important;
}

#sidenav-main #sidenav-collapse-main,
#sidenav-main.navbar-vertical.navbar-expand-xs .navbar-collapse,
#sidenav-main .onasa-sidenav-body {
  order: 2;
  display: block !important;
  flex: 1 1 0% !important;
  min-height: 0 !important;
  width: 100% !important;
  height: 0 !important;
  max-height: none !important;
  align-self: stretch !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding: 0.6rem 0 1.25rem;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  scrollbar-width: thin;
  scrollbar-color: rgba(16, 24, 21, 0.18) transparent;
}

#sidenav-main #sidenav-collapse-main::-webkit-scrollbar,
#sidenav-main .onasa-sidenav-body::-webkit-scrollbar {
  width: 6px;
}

#sidenav-main #sidenav-collapse-main::-webkit-scrollbar-thumb,
#sidenav-main .onasa-sidenav-body::-webkit-scrollbar-thumb {
  background: rgba(16, 24, 21, 0.18);
  border-radius: 99px;
}

#sidenav-main .navbar-nav {
  display: flex;
  flex-direction: column !important;
  flex-wrap: nowrap;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0 0.5rem;
}

#sidenav-main .navbar-nav > .nav-item,
#sidenav-main .sidenav-group,
#sidenav-main .sidenav-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  transform: none !important;
}

#sidenav-main.navbar-vertical .navbar-nav > .nav-item > .nav-link,
.navbar-vertical .navbar-nav .nav-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 2.75rem;
  margin: 0.1rem 0;
  padding: 0.5rem 0.75rem !important;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.93rem;
  line-height: 1.25;
  letter-spacing: -0.008em;
  color: var(--onasa-sidenav-text) !important;
  white-space: normal;
  background: transparent;
  box-shadow: none !important;
  transition: background-color 0.14s ease, color 0.14s ease;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link:hover,
#sidenav-main .navbar-nav > .nav-item > .nav-link:focus-visible {
  background: var(--onasa-sidenav-hover) !important;
  color: var(--onasa-ink) !important;
}

#sidenav-main.navbar-vertical .navbar-nav > .nav-item > .nav-link.active,
#sidenav-main.navbar-vertical.bg-white .navbar-nav > .nav-item .nav-link.active,
#sidenav-main .sidenav-group.is-current > .nav-link {
  background: rgba(201, 162, 39, 0.15) !important;
  color: var(--onasa-green-dark) !important;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link.active::before,
#sidenav-main .sidenav-group.is-current > .nav-link::before {
  content: "";
  position: absolute;
  left: -0.5rem;
  top: 20%;
  bottom: 20%;
  width: 3px;
  border-radius: 0 99px 99px 0;
  background: var(--onasa-gold);
}

#sidenav-main .navbar-nav .nav-link .icon,
.navbar-vertical .navbar-nav .nav-link .icon {
  width: 1.75rem !important;
  height: 1.75rem !important;
  min-width: 1.75rem;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

#sidenav-main .navbar-nav .nav-link .icon i,
.navbar-vertical .navbar-nav .nav-link .icon i {
  color: var(--onasa-sidenav-muted) !important;
  font-size: 0.95rem !important;
  top: 0 !important;
  transition: color 0.14s ease;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link:hover .icon i {
  color: var(--onasa-ink) !important;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link.active .icon i,
#sidenav-main .sidenav-group.is-current > .nav-link .icon i {
  color: var(--onasa-gold) !important;
}

#sidenav-main .nav-link-text,
#sidenav-main .nav-link-text.ms-1 {
  margin: 0 !important;
  flex: 1 1 auto;
  min-width: 0;
}

.navbar-vertical.bg-white {
  box-shadow: none !important;
}

/* Intertitres du menu : casse normale, discrets */
#sidenav-main .navbar-nav .nav-item h6,
.navbar-vertical .navbar-nav .nav-item h6 {
  margin: 1rem 0.75rem 0.35rem !important;
  padding: 0 !important;
  font-family: var(--onasa-font);
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0;
  text-transform: none !important;
  color: var(--onasa-sidenav-muted) !important;
  opacity: 1 !important;
}

#sidenav-main .sidenav-toggle::after {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-left: auto;
  margin-right: 0.2rem;
  border: solid var(--onasa-sidenav-muted);
  border-width: 0 1.5px 1.5px 0;
  content: "";
  font: inherit;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.18s ease, border-color 0.18s ease;
  flex: 0 0 auto;
}

#sidenav-main .sidenav-group.is-open > .sidenav-toggle::after {
  transform: translateY(2px) rotate(-135deg);
  border-color: var(--onasa-gold);
  color: inherit;
}

#sidenav-main .sidenav-panel {
  display: none;
}

#sidenav-main .sidenav-group.is-open > .sidenav-panel {
  display: block;
}

#sidenav-main .sidenav-submenu {
  margin: 0.15rem 0 0.5rem 1.6rem;
  padding: 0 0 0 0.6rem;
  border-left: 1px solid var(--onasa-sidenav-line);
}

#sidenav-main .sidenav-submenu .nav-link {
  min-height: 2.4rem;
  font-weight: 400 !important;
  font-size: 0.89rem;
  padding: 0.4rem 0.7rem !important;
  margin: 0.05rem 0 !important;
  color: var(--onasa-ink-2) !important;
  background: transparent !important;
}

#sidenav-main .sidenav-submenu .nav-link:hover,
#sidenav-main .sidenav-submenu .nav-link:focus-visible {
  color: var(--onasa-ink) !important;
  background: var(--onasa-sidenav-hover) !important;
}

#sidenav-main .sidenav-submenu .nav-link.active {
  color: var(--onasa-green-dark) !important;
  font-weight: 600 !important;
  background: rgba(201, 162, 39, 0.1) !important;
}

#sidenav-main .nav-item .collapse,
#sidenav-main .nav-item .collapsing,
.g-sidenav-show #sidenav-main .nav-item .collapse,
.g-sidenav-show #sidenav-main .nav-item .collapsing {
  position: static !important;
  inset: auto !important;
  float: none !important;
  transform: none !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: hidden !important;
  transition: none !important;
}

#sidenav-main .nav-item .collapse:not(.show) {
  display: none !important;
  height: 0 !important;
}

#sidenav-main .nav-item .collapse.show,
#sidenav-main .nav-item .collapsing {
  display: block !important;
  height: auto !important;
}

#sidenav-main .navbar-nav,
#sidenav-main .sidenav-group {
  overflow: visible;
  transform: none;
}

/* Compte : épinglé en bas du menu */
#sidenav-main .onasa-sidenav-user,
#sidenav-main .onasa-sidenav-foot,
#sidenav-main .sidenav-footer {
  order: 3;
  flex: 0 0 auto;
  padding: 0.7rem 0.75rem calc(0.7rem + env(safe-area-inset-bottom));
  margin: 0 !important;
  border-top: 1px solid var(--onasa-sidenav-line);
  border-bottom: 0;
  background: transparent;
}

.onasa-sidenav-foot-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.onasa-sidenav-foot-row form {
  margin: 0;
}

.onasa-sidenav-logout {
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px !important;
  border: 1px solid var(--onasa-sidenav-line) !important;
  background: transparent !important;
  color: var(--onasa-sidenav-text) !important;
  padding: 0 !important;
  cursor: pointer;
  transition: background-color 0.14s ease, color 0.14s ease;
}

.onasa-sidenav-logout:hover,
.onasa-sidenav-logout:focus-visible {
  background: var(--onasa-sidenav-hover) !important;
  color: var(--onasa-ink) !important;
}

a.sidebar-user-panel-link {
  display: block;
  min-width: 0;
  flex: 1 1 auto;
  text-decoration: none;
  color: inherit;
  border-radius: 12px;
}

.sidebar-user-panel,
.sidebar-user-panel.px-2 {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.35rem 0.5rem !important;
  margin: 0 !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
  border-radius: 12px !important;
  transition: background-color 0.14s ease;
}

a.sidebar-user-panel-link:hover .sidebar-user-panel,
a.sidebar-user-panel-link:focus-visible .sidebar-user-panel {
  background: var(--onasa-sidenav-hover) !important;
}

.user-panel-avatar {
  width: 64px;
  height: 64px;
  font-size: 1.2rem;
  letter-spacing: 0.02em;
  background: var(--onasa-green);
}

.sidebar-user-panel .user-panel-avatar {
  width: 2.25rem;
  height: 2.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  background: rgba(201, 162, 39, 0.22);
  color: var(--onasa-green-dark) !important;
  flex-shrink: 0;
}

.onasa-userchip-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
}

.onasa-userchip-name {
  color: var(--onasa-ink);
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.onasa-userchip-sub {
  color: var(--onasa-sidenav-muted);
  font-size: 0.75rem;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-user-panel .shadow-xs {
  box-shadow: none;
}

.onasa-sidenav-backdrop {
  display: none;
}

/* Panneau flottant, clair, légèrement translucide */
#sidenav-main,
#sidenav-main.navbar-vertical.navbar-expand-xs {
  top: var(--onasa-sidenav-inset) !important;
  bottom: var(--onasa-sidenav-inset) !important;
  left: var(--onasa-sidenav-inset) !important;
  height: calc(100vh - 2 * var(--onasa-sidenav-inset)) !important;
  height: calc(100dvh - 2 * var(--onasa-sidenav-inset)) !important;
  border: 1px solid rgba(255, 255, 255, 0.9) !important;
  border-radius: var(--onasa-radius-lg) !important;
  box-shadow: 0 0 0 1px rgba(16, 24, 21, 0.04), var(--onasa-shadow) !important;
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
}

#sidenav-main .onasa-sidenav-head,
#sidenav-main .sidenav-header {
  padding: 1.1rem 1.1rem 1rem !important;
  border-bottom: 0;
}

.sidenav .navbar-brand-img,
#sidenav-main .navbar-brand-img {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 14px;
  box-shadow: 0 0 0 1px var(--onasa-line), 0 6px 14px -8px rgba(16, 24, 21, 0.35);
}

.onasa-sidenav-wordmark strong {
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  background: linear-gradient(120deg, #0a6b43 0%, #0e8a56 55%, #b98a1c 130%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--onasa-green-dark);
}

#sidenav-main .navbar-nav {
  padding: 0 0.75rem;
}

#sidenav-main.navbar-vertical .navbar-nav > .nav-item > .nav-link,
.navbar-vertical .navbar-nav .nav-link {
  border-radius: 14px;
  font-weight: 600;
  padding: 0.45rem 0.6rem !important;
}

#sidenav-main .navbar-nav .nav-link .icon,
.navbar-vertical .navbar-nav .nav-link .icon {
  width: 2.1rem !important;
  height: 2.1rem !important;
  min-width: 2.1rem;
  border-radius: 11px !important;
  background: rgba(16, 24, 21, 0.045) !important;
  transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

#sidenav-main .navbar-nav .nav-link .icon i,
.navbar-vertical .navbar-nav .nav-link .icon i {
  color: var(--onasa-ink-2) !important;
  font-size: 0.9rem !important;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link:hover .icon {
  background: var(--onasa-green-soft) !important;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link:hover .icon i {
  color: var(--onasa-green-dark) !important;
}

/* Entrée courante : pastille émeraude lumineuse */
#sidenav-main.navbar-vertical .navbar-nav > .nav-item > .nav-link.active,
#sidenav-main.navbar-vertical.bg-white .navbar-nav > .nav-item .nav-link.active,
#sidenav-main .sidenav-group.is-current > .nav-link {
  background: var(--onasa-grad-green) !important;
  color: #fff !important;
  box-shadow: var(--onasa-glow-green), inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link.active::before,
#sidenav-main .sidenav-group.is-current > .nav-link::before {
  content: none;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link.active .icon,
#sidenav-main .sidenav-group.is-current > .nav-link .icon {
  background: rgba(255, 255, 255, 0.18) !important;
}

#sidenav-main .navbar-nav > .nav-item > .nav-link.active .icon i,
#sidenav-main .sidenav-group.is-current > .nav-link .icon i {
  color: #fff !important;
}

#sidenav-main .sidenav-group.is-current > .sidenav-toggle::after,
#sidenav-main .sidenav-group.is-current.is-open > .sidenav-toggle::after {
  border-color: rgba(255, 255, 255, 0.85);
}

#sidenav-main .sidenav-group.is-open > .sidenav-toggle::after {
  border-color: var(--onasa-green);
}

#sidenav-main .sidenav-submenu {
  margin: 0.3rem 0 0.6rem 1.6rem;
  border-left: 1.5px solid var(--onasa-sidenav-line);
}

#sidenav-main .sidenav-submenu .nav-link {
  position: relative;
  border-radius: 10px;
}

#sidenav-main .sidenav-submenu .nav-link.active {
  background: var(--onasa-green-soft) !important;
  color: var(--onasa-green-deep) !important;
  box-shadow: none !important;
}

#sidenav-main .sidenav-submenu .nav-link.active::before {
  content: "";
  position: absolute;
  left: calc(-0.6rem - 4px);
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--onasa-gold);
  box-shadow: 0 0 0 3px #fff;
  transform: translateY(-50%);
}

#sidenav-main :focus-visible {
  outline-color: var(--onasa-green);
}

/* Compte */
#sidenav-main .onasa-sidenav-user,
#sidenav-main .onasa-sidenav-foot,
#sidenav-main .sidenav-footer {
  margin: 0 0.6rem 0.6rem !important;
  padding: 0.5rem;
  border: 1px solid var(--onasa-line);
  border-radius: 18px;
  background: var(--onasa-sunken);
}

.sidebar-user-panel .user-panel-avatar {
  width: 2.4rem;
  height: 2.4rem;
  background: var(--onasa-grad-gold);
  color: #3a2c05 !important;
  box-shadow: var(--onasa-glow-gold);
}

.onasa-sidenav-logout {
  background: #fff !important;
  color: var(--onasa-ink-2) !important;
}

.onasa-sidenav-logout:hover,
.onasa-sidenav-logout:focus-visible {
  background: var(--onasa-danger-soft) !important;
  border-color: rgba(180, 35, 24, 0.25) !important;
  color: var(--onasa-danger) !important;
}

.onasa-sidenav-close {
  background: rgba(16, 24, 21, 0.05);
}

/* —— 05 Structure : zone principale et barre supérieure —— */
.main-content,
.onasa-main {
  min-height: 100vh;
  min-height: 100dvh;
  height: auto !important;
  max-height: none !important;
  margin-left: 0;
  border-radius: 0 !important;
  background: transparent;
  overflow: visible !important;
  transition: margin-left 0.26s cubic-bezier(0.32, 0.72, 0, 1);
}

.onasa-topbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: var(--onasa-topbar-height);
  padding: 0.5rem var(--onasa-gutter);
  padding-top: calc(0.5rem + env(safe-area-inset-top));
  padding-right: calc(var(--onasa-gutter) + env(safe-area-inset-right));
  background: rgba(246, 245, 240, 0.72);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .onasa-topbar {
    background: var(--onasa-bg);
  }
}

.onasa-topbar.is-stuck {
  border-bottom-color: var(--onasa-line);
  box-shadow: 0 6px 18px -14px rgba(21, 32, 26, 0.5);
}

.onasa-topbar-title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-family: var(--onasa-font-display);
  font-size: clamp(1rem, 0.92rem + 0.4vw, 1.2rem);
  font-weight: 600;
  letter-spacing: -0.016em;
  line-height: 1.25;
  color: var(--onasa-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.onasa-topbar-tools,
.navbar-main .navbar-tools {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 0 0 auto;
  margin-left: auto;
}

.onasa-topbar-tools form {
  margin: 0;
}

.onasa-menu-toggle {
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--onasa-card);
  border: 1px solid var(--onasa-line);
  color: var(--onasa-ink);
  cursor: pointer;
  transition: background-color 0.14s ease, border-color 0.14s ease;
}

.onasa-menu-toggle:hover {
  background: var(--onasa-green-tint);
  border-color: var(--onasa-line-strong);
}

.onasa-menu-bars {
  display: grid;
  gap: 4px;
  width: 18px;
}

.onasa-menu-bars i {
  display: block;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: width 0.18s ease;
}

.onasa-menu-bars i:nth-child(2) {
  width: 70%;
}

.onasa-menu-toggle:hover .onasa-menu-bars i:nth-child(2) {
  width: 100%;
}

/* Ancien bouton Argon, s'il subsiste dans une vue */
.onasa-menu-toggle .sidenav-toggler-inner {
  width: 18px;
}

.onasa-menu-toggle .sidenav-toggler-line {
  background: currentColor !important;
}

.onasa-content,
.main-content > .container-fluid {
  width: 100%;
  max-width: var(--onasa-content-max);
  margin-inline: 0;
  padding: clamp(0.75rem, 0.4rem + 1vw, 1.25rem) var(--onasa-gutter) calc(3rem + env(safe-area-inset-bottom)) !important;
  padding-right: calc(var(--onasa-gutter) + env(safe-area-inset-right)) !important;
}

/* Bureau : menu fixe, repliable */
@media (min-width: 1200px) {
  body.g-sidenav-show .main-content,
  .sidenav.fixed-start + .main-content,
  .onasa-main {
    margin-left: calc(var(--onasa-sidenav-width) + var(--onasa-sidenav-inset)) !important;
  }

  body.g-sidenav-show:not(.rtl) #sidenav-main {
    transform: none;
    visibility: visible;
  }

  html.onasa-nav-collapsed body.g-sidenav-show:not(.rtl) #sidenav-main {
    transform: translateX(-115%);
    visibility: hidden;
  }

  html.onasa-nav-collapsed body.g-sidenav-show .main-content,
  html.onasa-nav-collapsed .sidenav.fixed-start + .main-content,
  html.onasa-nav-collapsed .onasa-main {
    margin-left: 0 !important;
  }
}

/* Tablette et téléphone : tiroir */
@media (max-width: 1199.98px) {
  .onasa-sidenav-close {
    display: inline-flex;
  }

  body.g-sidenav-show:not(.rtl) #sidenav-main,
  body.g-sidenav-show:not(.rtl) .sidenav {
    transform: translateX(-115%);
    visibility: hidden;
    box-shadow: none !important;
  }

  body.g-sidenav-show.g-sidenav-pinned #sidenav-main,
  body.g-sidenav-show.g-sidenav-pinned .sidenav {
    transform: translateX(0);
    visibility: visible;
    box-shadow: var(--onasa-shadow-lg) !important;
  }

  body.g-sidenav-show .sidenav.fixed-start + .main-content,
  body.g-sidenav-show .main-content {
    margin-left: 0 !important;
  }

  .onasa-sidenav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(8, 20, 14, 0.5);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease;
  }

  body.g-sidenav-pinned .onasa-sidenav-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  body.g-sidenav-pinned {
    overflow: hidden;
  }
}

/* Notifications */
.onasa-notif {
  position: relative;
}

.onasa-notif-toggle {
  color: var(--onasa-ink) !important;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--onasa-card);
  border: 1px solid var(--onasa-line);
  transition: background-color 0.14s ease, border-color 0.14s ease, color 0.14s ease;
}

.onasa-notif-toggle:hover,
.onasa-notif-toggle:focus-visible,
.onasa-notif-toggle[aria-expanded="true"] {
  color: var(--onasa-green-dark) !important;
  background: var(--onasa-green-soft);
  border-color: rgba(20, 122, 75, 0.4);
}

.onasa-notif-toggle .fa-bell {
  font-size: 1rem;
  color: inherit;
}

.onasa-notif-badge {
  position: absolute;
  top: -0.3rem;
  right: -0.3rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.3rem;
  font-size: 0.68rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.15rem;
  color: #fff;
  background: var(--onasa-danger);
  border-radius: 999px;
  box-shadow: 0 0 0 2px var(--onasa-bg);
  text-align: center;
}

.onasa-notif-menu {
  width: min(23rem, calc(100vw - 2rem));
  min-width: 0 !important;
  max-height: min(70vh, 30rem);
  overflow-y: auto;
  z-index: 1080;
}

.onasa-notif-menu .dropdown-item {
  white-space: normal;
}

/* Bouton « Déconnexion » de la barre */
.onasa-topbar .btn {
  margin: 0;
}

/* —— 06 Cartes et boutons —— */
.onasa-app .card,
.card {
  border: 1px solid var(--onasa-line) !important;
  border-radius: var(--onasa-radius) !important;
  box-shadow: var(--onasa-shadow-sm) !important;
  background: var(--onasa-card);
  min-width: 0;
}

.onasa-app main .row > [class*="col-"] > .card:only-child {
  height: 100%;
}

.card.border-danger {
  border-color: rgba(180, 35, 24, 0.5) !important;
}

.card .card-header {
  background: transparent;
  border-bottom: 1px solid var(--onasa-line);
  border-radius: var(--onasa-radius) var(--onasa-radius) 0 0 !important;
  padding: 1rem 1.25rem;
}

.card .card-body {
  font-family: inherit;
  padding: clamp(1rem, 0.7rem + 1vw, 1.5rem);
}

.card .card-body.p-4 {
  padding: clamp(1rem, 0.7rem + 1.2vw, 1.75rem) !important;
}

.card > .table-responsive:first-child,
.card > .table-responsive:only-child {
  border-radius: var(--onasa-radius);
}

/* Les grilles de cartes sans gouttière gardent un espacement en colonne unique */
.onasa-app .row:not([class*="g-"]):not([class*="gy-"]):has(> [class*="col"]:not([class*="mb-"]) > .card) {
  --bs-gutter-y: 1rem;
}

.onasa-app .btn,
.btn {
  --bs-btn-font-weight: 600;
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: 0.55rem;
  --bs-btn-font-size: 0.93rem;
  --bs-btn-border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.65rem;
  margin-block: 0.2rem;
  border-radius: 10px !important;
  font-family: var(--onasa-font);
  font-weight: 600;
  letter-spacing: -0.006em;
  line-height: 1.3;
  text-transform: none;
  text-decoration: none;
  box-shadow: none !important;
  transform: none !important;
  transition: background-color 0.14s ease, border-color 0.14s ease, color 0.14s ease;
}

.btn.d-block,
.btn.w-100 {
  display: flex;
}

.btn.d-none {
  display: none;
}

.btn:focus-visible {
  outline: 2px solid var(--onasa-green);
  outline-offset: 2px;
}

.btn:disabled,
.btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.onasa-app .btn-sm,
.btn-sm,
.btn-group-sm > .btn {
  --bs-btn-padding-x: 0.8rem;
  --bs-btn-padding-y: 0.35rem;
  --bs-btn-font-size: 0.87rem;
  min-height: 2.25rem;
  font-size: 0.87rem;
}

.onasa-app .btn-lg,
.btn-lg {
  min-height: 3.1rem;
  font-size: 1rem;
}

.btn .fas,
.btn .far,
.btn .fa {
  font-size: 0.95em;
  margin: 0 !important;
}

.btn-primary,
.btn-success,
.btn.bg-gradient-primary,
.btn.bg-gradient-success {
  background: var(--onasa-green) !important;
  background-image: none !important;
  border-color: var(--onasa-green) !important;
  color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-success:hover,
.btn-success:focus-visible,
.btn.bg-gradient-primary:hover,
.btn.bg-gradient-success:hover {
  background: var(--onasa-green-dark) !important;
  border-color: var(--onasa-green-dark) !important;
  color: #fff !important;
}

.btn-primary:active,
.btn-success:active {
  background: var(--onasa-green-deep) !important;
  border-color: var(--onasa-green-deep) !important;
}

.btn-dark,
.btn.bg-gradient-dark {
  background: var(--onasa-ink) !important;
  background-image: none !important;
  border-color: var(--onasa-ink) !important;
  color: #fff !important;
}

.btn-dark:hover,
.btn-dark:focus-visible {
  background: #26342c !important;
  border-color: #26342c !important;
}

.btn-danger,
.btn.bg-gradient-danger {
  background: var(--onasa-danger) !important;
  background-image: none !important;
  border-color: var(--onasa-danger) !important;
  color: #fff !important;
}

.btn-danger:hover,
.btn-danger:focus-visible {
  background: #8f1c13 !important;
  border-color: #8f1c13 !important;
}

.btn-warning,
.btn.bg-gradient-warning {
  background: var(--onasa-gold) !important;
  background-image: none !important;
  border-color: var(--onasa-gold) !important;
  color: #231b02 !important;
}

.btn-warning:hover,
.btn-warning:focus-visible {
  background: #b8931f !important;
  border-color: #b8931f !important;
}

.btn-info,
.btn.bg-gradient-info {
  background: var(--onasa-info) !important;
  background-image: none !important;
  border-color: var(--onasa-info) !important;
  color: #fff !important;
}

.btn-secondary,
.btn-light,
.btn.bg-gradient-secondary {
  background: var(--onasa-neutral-soft) !important;
  background-image: none !important;
  border-color: transparent !important;
  color: var(--onasa-ink) !important;
}

.btn-secondary:hover,
.btn-light:hover {
  background: #dfe3de !important;
}

/* Contours : un même gabarit, la couleur porte le sens */
.btn-outline-primary,
.btn-outline-success,
.btn-outline-secondary,
.btn-outline-dark,
.btn-outline-info,
.btn-outline-warning,
.btn-outline-danger {
  background: var(--onasa-card) !important;
  background-image: none !important;
  border: 1px solid var(--onasa-line-strong) !important;
}

.btn-outline-primary,
.btn-outline-success {
  color: var(--onasa-green-dark) !important;
  border-color: rgba(20, 122, 75, 0.4) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus-visible,
.btn-outline-success:hover,
.btn-outline-success:focus-visible {
  background: var(--onasa-green-soft) !important;
  border-color: var(--onasa-green) !important;
  color: var(--onasa-green-deep) !important;
}

.btn-outline-secondary,
.btn-outline-dark {
  color: var(--onasa-ink) !important;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus-visible,
.btn-outline-dark:hover,
.btn-outline-dark:focus-visible {
  background: var(--onasa-neutral-soft) !important;
  border-color: var(--onasa-ink-2) !important;
  color: var(--onasa-ink) !important;
}

.btn-outline-info {
  color: var(--onasa-info) !important;
  border-color: rgba(14, 111, 124, 0.4) !important;
}

.btn-outline-info:hover,
.btn-outline-info:focus-visible {
  background: var(--onasa-info-soft) !important;
  border-color: var(--onasa-info) !important;
}

.btn-outline-warning {
  color: var(--onasa-gold-ink) !important;
  border-color: rgba(201, 162, 39, 0.65) !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus-visible {
  background: var(--onasa-gold-soft) !important;
  border-color: var(--onasa-gold) !important;
}

.btn-outline-danger {
  color: var(--onasa-danger) !important;
  border-color: rgba(180, 35, 24, 0.4) !important;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus-visible {
  background: var(--onasa-danger-soft) !important;
  border-color: var(--onasa-danger) !important;
}

/* Liens d'action (tableaux) */
.onasa-app .btn-link,
.btn-link {
  min-height: 2.1rem;
  margin-block: 0;
  padding: 0.3rem 0.55rem !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
}

.btn-link.px-0 {
  padding-inline: 0 !important;
  min-height: 0;
}

.btn-link:hover,
.btn-link:focus-visible {
  background: var(--onasa-neutral-soft) !important;
  text-decoration: none;
}

.btn-link.px-0:hover {
  background: transparent !important;
  text-decoration: underline;
}

.btn-close {
  box-shadow: none !important;
}

/* —— 07 Formulaires —— */
.onasa-app .form-label,
.onasa-app label,
.form-label,
label {
  margin: 0 0 0.35rem;
  font-size: 0.87rem;
  font-weight: 600;
  letter-spacing: -0.004em;
  color: var(--onasa-ink-2);
}

.form-control,
.form-select {
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid var(--onasa-line-strong) !important;
  border-radius: 10px !important;
  background-color: #fff;
  color: var(--onasa-ink);
  font-family: var(--onasa-font);
  font-size: 0.95rem;
  line-height: 1.4;
  box-shadow: none !important;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, background-color 0.14s ease;
}

.form-select {
  padding-right: 2.4rem;
  background-position: right 0.8rem center;
  text-overflow: ellipsis;
}

.form-control-sm,
.form-select-sm {
  min-height: 2.4rem;
  padding-block: 0.4rem;
  font-size: 0.9rem;
}

textarea.form-control {
  min-height: 5.5rem;
  line-height: 1.5;
}

.form-control::placeholder {
  color: #8a968f;
  opacity: 1;
}

.form-control:hover:not(:disabled):not([readonly]),
.form-select:hover:not(:disabled) {
  border-color: rgba(21, 32, 26, 0.34) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--onasa-green) !important;
  box-shadow: var(--onasa-ring) !important;
  outline: 0;
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
  background-color: var(--onasa-sunken);
  color: var(--onasa-muted);
  border-style: dashed !important;
  opacity: 1;
}

.form-control[type="file"] {
  padding: 0.45rem 0.6rem;
  line-height: 1.6;
}

.form-control[type="file"]::file-selector-button {
  margin: -0.1rem 0.75rem -0.1rem -0.1rem;
  padding: 0.3rem 0.75rem;
  border: 0;
  border-radius: 7px;
  background: var(--onasa-neutral-soft);
  color: var(--onasa-ink);
  font-weight: 600;
}

.form-control[type="number"] {
  font-variant-numeric: tabular-nums;
}

.input-validation-error,
.form-control.input-validation-error,
.form-select.input-validation-error,
.form-control.is-invalid {
  border-color: var(--onasa-danger) !important;
  background-image: none;
}

.input-validation-error:focus {
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.2) !important;
}

.field-validation-error,
.validation-summary-errors {
  color: var(--onasa-danger) !important;
}

.validation-summary-errors {
  padding: 0.75rem 1rem;
  border-radius: 10px;
  background: var(--onasa-danger-soft);
}

.validation-summary-errors ul {
  margin: 0;
  padding-left: 1.1rem;
}

.validation-summary-valid {
  display: none;
}

.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
  margin-left: -1px;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

.input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.input-group-text {
  border: 1px solid var(--onasa-line-strong);
  border-radius: 10px;
  background: var(--onasa-sunken);
  color: var(--onasa-muted);
  font-size: 0.9rem;
}

.form-check {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  min-height: 1.75rem;
  padding-left: 0;
}

.form-check .form-check-input {
  flex: 0 0 auto;
  float: none;
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.14rem 0 0;
  border: 1.5px solid rgba(21, 32, 26, 0.4);
  background-color: #fff;
  box-shadow: none !important;
}

.form-check-input:checked,
.form-check-input[type="checkbox"]:checked,
.form-check-input[type="radio"]:checked {
  background-color: var(--onasa-green);
  background-image: var(--bs-form-check-bg-image);
  border-color: var(--onasa-green);
}

.form-check-input:focus-visible {
  box-shadow: var(--onasa-ring) !important;
}

.form-check-label {
  margin: 0;
  font-size: 0.93rem;
  font-weight: 400;
  color: var(--onasa-ink);
  cursor: pointer;
}

.form-switch {
  padding-left: 0;
}

.form-switch .form-check-input {
  width: 2.5rem;
  height: 1.4rem;
  margin: 0.05rem 0 0;
  border: 0;
  background-color: rgba(21, 32, 26, 0.24);
}

.form-switch .form-check-input:checked {
  background-color: var(--onasa-green);
}

.form-switch .form-check-input::after {
  width: 1.1rem;
  height: 1.1rem;
  top: 0.15rem;
  left: 0.15rem;
  transform: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.form-switch .form-check-input:checked::after {
  transform: translateX(1.1rem);
}

/* Blocs de lignes répétées (missions, contrats, expéditions) */
.onasa-app .bg-body-secondary.bg-opacity-25,
.onasa-app .border.rounded-3 {
  border-color: var(--onasa-line) !important;
  border-radius: var(--onasa-radius) !important;
}

.onasa-app .bg-body-secondary.bg-opacity-25,
.onasa-app .border.rounded-3.bg-light {
  background: var(--onasa-sunken) !important;
}

.line-number-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  background: var(--onasa-green-soft);
  color: var(--onasa-green-deep);
  font-size: 0.8rem !important;
  font-variant-numeric: tabular-nums;
}

/* Suggestions (communes, utilisateurs, transporteurs) */
.list-group.position-absolute {
  left: 0;
  right: 0;
  margin-top: 0.3rem !important;
  border: 1px solid var(--onasa-line);
  border-radius: var(--onasa-radius) !important;
  background: #fff;
  box-shadow: var(--onasa-shadow-lg) !important;
  overscroll-behavior: contain;
}

.row > .position-relative > .list-group.position-absolute {
  left: calc(var(--bs-gutter-x) * 0.5);
  right: calc(var(--bs-gutter-x) * 0.5);
  width: auto !important;
}

.list-group.position-absolute .list-group-item {
  border: 0;
  border-bottom: 1px solid var(--onasa-line);
  padding: 0.65rem 0.85rem;
  font-size: 0.92rem;
  cursor: pointer;
}

.list-group.position-absolute .list-group-item:last-child {
  border-bottom: 0;
}

.list-group.position-absolute .list-group-item:hover,
.list-group.position-absolute .list-group-item:focus,
.list-group.position-absolute .list-group-item.active {
  background: var(--onasa-green-soft);
  color: var(--onasa-green-deep);
}

/* —— 08 Tableaux —— */
.table-responsive,
.activity-feed-table-wrap,
.onasa-table-wrap {
  overflow-x: auto;
  max-width: 100%;
  min-width: 0;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.onasa-app main > .container-fluid > .table-responsive,
.onasa-app main .col-12 > .table-responsive,
.onasa-app main [class*="col-"] > .table-responsive {
  border: 1px solid var(--onasa-line);
  border-radius: var(--onasa-radius);
  background: var(--onasa-card);
  box-shadow: var(--onasa-shadow-sm);
}

.onasa-app main .card [class*="col-"] > .table-responsive {
  box-shadow: none;
}

.onasa-app main table,
.card table,
.table-responsive table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--onasa-ink);
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
  background: transparent;
  color: var(--onasa-ink);
  font-size: 0.92rem;
}

/* Chiffres alignés là où l'on compare des montants */
.onasa-app main table td.text-end,
.onasa-app main table th.text-end,
.onasa-app main table tfoot td {
  font-variant-numeric: tabular-nums;
}

.onasa-app main table > :not(caption) > * > *,
.card table > :not(caption) > * > *,
.table-responsive table > :not(caption) > * > * {
  box-shadow: none;
}

.onasa-app main table > :not(:first-child) {
  border-top: 0;
}

.onasa-app main table thead th,
.card table thead th,
.table-responsive table thead th {
  padding: 0.7rem 1rem;
  background: var(--onasa-sunken);
  color: var(--onasa-muted);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  text-align: left;
  white-space: nowrap;
  border: 0;
  border-bottom: 1px solid var(--onasa-line);
  opacity: 1;
}

a.onasa-sort {
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
}

a.onasa-sort:hover,
th.onasa-sort-th:hover {
  color: var(--onasa-green-deep);
}

a.onasa-sort.is-active,
th.onasa-sort-th.is-sorted {
  color: var(--onasa-ink);
}

th.onasa-sort-th {
  cursor: pointer;
}

.onasa-chart-wrap.is-drill canvas {
  cursor: pointer;
}

@media (min-width: 720px) {
  .onasa-list-sort-mobile {
    display: none !important;
  }
}

.onasa-app main table tbody td,
.onasa-app main table tfoot td,
.onasa-app main table tfoot th,
.onasa-app main table tbody th,
.card table tbody td,
.table-responsive table tbody td {
  padding: 0.8rem 1rem;
  text-align: left;
  vertical-align: middle;
  white-space: normal;
  background: transparent;
  color: var(--onasa-ink);
  border: 0;
  border-bottom: 1px solid var(--onasa-line);
}

.onasa-app main table tbody tr,
.card table tbody tr,
.table-responsive table tbody tr {
  background: transparent;
  border: 0;
  transition: background-color 0.1s ease;
}

.onasa-app main table tbody tr:hover,
.card table tbody tr:hover,
.table-responsive table tbody tr:hover {
  background: var(--onasa-green-tint);
}

.onasa-app main table tbody tr:last-child td,
.card table tbody tr:last-child td,
.table-responsive table tbody tr:last-child td {
  border-bottom: 0;
}

.onasa-app main table tfoot td,
.onasa-app main table tfoot th {
  border-top: 1px solid var(--onasa-line-strong);
  border-bottom: 0;
  font-weight: 600;
  background: var(--onasa-sunken);
}

.onasa-app main table tr.table-warning,
.onasa-app main table tr.table-warning:hover {
  background: var(--onasa-warning-soft);
}

.onasa-app main table tr.table-danger,
.onasa-app main table tr.table-danger:hover {
  background: var(--onasa-danger-soft);
}

.onasa-app main table tr.table-success,
.onasa-app main table tr.table-success:hover {
  background: var(--onasa-green-soft);
}

.onasa-app main table tr[class*="table-"] > td {
  background: transparent;
}

/* Le texte des cellules : lisible, pas minuscule */
.onasa-app main table td p,
.onasa-app main table td .text-xs {
  font-size: 0.92rem !important;
  line-height: 1.4;
}

.onasa-app main table td p.text-secondary {
  color: var(--onasa-ink-2) !important;
}

.onasa-app main table td p + p {
  margin-top: 0.1rem;
  font-size: 0.84rem !important;
}

.onasa-app main table td .font-weight-bold,
.onasa-app main table td .fw-bold {
  font-weight: 600 !important;
  color: var(--onasa-ink);
}

.onasa-app main table td .form-control,
.onasa-app main table td .form-select {
  min-width: 6.5rem;
}

.onasa-app main table td form.d-inline {
  display: inline-flex !important;
}

table caption {
  caption-side: top;
  padding: 0.9rem 1rem 0.5rem;
  color: var(--onasa-ink);
  font-family: var(--onasa-font-display);
  font-size: 1rem;
  font-weight: 600;
  text-align: left;
}

table:not(.table) {
  width: 100%;
}

/* Indice de défilement horizontal (posé par site.js) */
.onasa-scroll-x {
  background:
    linear-gradient(to right, var(--onasa-card) 30%, rgba(255, 255, 255, 0)) left center / 2.5rem 100% no-repeat local,
    linear-gradient(to left, var(--onasa-card) 30%, rgba(255, 255, 255, 0)) right center / 2.5rem 100% no-repeat local,
    linear-gradient(to right, rgba(21, 32, 26, 0.14), rgba(21, 32, 26, 0)) left center / 0.9rem 100% no-repeat scroll,
    linear-gradient(to left, rgba(21, 32, 26, 0.14), rgba(21, 32, 26, 0)) right center / 0.9rem 100% no-repeat scroll;
}

/* Téléphone : chaque ligne devient une fiche (libellés posés par site.js) */
@media (max-width: 719.98px) {
  .onasa-app main table.onasa-stack,
  .onasa-app main table.onasa-stack tbody,
  .onasa-app main table.onasa-stack tfoot,
  .onasa-app main table.onasa-stack tr,
  .onasa-app main table.onasa-stack td,
  .onasa-app main table.onasa-stack tbody th,
  .onasa-app main table.onasa-stack tfoot th {
    display: block;
    width: 100%;
  }

  .onasa-app main table.onasa-stack thead {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
  }

  .onasa-app main table.onasa-stack tbody tr,
  .onasa-app main table.onasa-stack tfoot tr {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--onasa-line-strong);
  }

  .onasa-app main table.onasa-stack tbody tr:last-child {
    border-bottom: 0;
  }

  .onasa-app main table.onasa-stack tbody tr:hover {
    background: transparent;
  }

  .onasa-app main table.onasa-stack td,
  .onasa-app main table.onasa-stack tbody th,
  .onasa-app main table.onasa-stack tfoot th {
    position: relative;
    min-height: 2.1rem;
    padding: 0.4rem 1rem 0.4rem calc(38% + 1rem);
    border: 0 !important;
    text-align: left !important;
    overflow-wrap: anywhere;
  }

  .onasa-app main table.onasa-stack td::before,
  .onasa-app main table.onasa-stack tbody th::before {
    content: attr(data-label);
    position: absolute;
    top: 0.4rem;
    left: 1rem;
    width: calc(38% - 0.75rem);
    color: var(--onasa-muted);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.6;
    text-transform: none;
    letter-spacing: 0;
    float: none;
  }

  .onasa-app main table.onasa-stack td:not([data-label]),
  .onasa-app main table.onasa-stack td[data-label=""],
  .onasa-app main table.onasa-stack td[colspan] {
    min-height: 0;
    padding-left: 1rem;
  }

  .onasa-app main table.onasa-stack td:not([data-label])::before,
  .onasa-app main table.onasa-stack td[data-label=""]::before,
  .onasa-app main table.onasa-stack td[colspan]::before {
    content: none;
  }

  /* Écrans étroits : le libellé passe au-dessus de la valeur */
  @media (max-width: 479.98px) {
    .onasa-app main table.onasa-stack td,
    .onasa-app main table.onasa-stack tbody th,
    .onasa-app main table.onasa-stack tfoot th {
      min-height: 0;
      padding-left: 1rem;
    }

    .onasa-app main table.onasa-stack td::before,
    .onasa-app main table.onasa-stack tbody th::before {
      position: static;
      display: block;
      width: auto;
      line-height: 1.4;
    }
  }

  /* Première cellule = titre de la fiche */
  .onasa-app main table.onasa-stack tbody td:first-child:not([colspan]) {
    font-weight: 600;
  }

  /* Actions : boutons alignés, faciles à toucher */
  .onasa-app main table.onasa-stack td.onasa-cell-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.6rem 1rem 0.4rem;
  }

  .onasa-app main table.onasa-stack td.onasa-cell-actions::before {
    content: none;
  }

  .onasa-app main table.onasa-stack td.onasa-cell-actions:empty {
    display: none;
  }

  .onasa-app main table.onasa-stack td.onasa-cell-actions .btn-link {
    min-height: 2.4rem;
    padding: 0.35rem 0.8rem !important;
    border: 1px solid var(--onasa-line-strong) !important;
    background: var(--onasa-card) !important;
  }

  .onasa-app main table.onasa-stack tfoot tr {
    background: var(--onasa-sunken);
  }
}

/* —— 09 Badges, alertes, progression —— */
.onasa-app .badge,
.badge,
.badge.badge-sm {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.28rem 0.65rem;
  border-radius: 999px !important;
  background-image: none !important;
  font-family: var(--onasa-font);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.3;
  text-transform: none;
  white-space: nowrap;
}

.badge.bg-success,
.badge.bg-gradient-success,
.badge.bg-primary,
.badge.bg-gradient-primary {
  background-color: var(--onasa-green-soft) !important;
  color: var(--onasa-green-deep) !important;
}

.badge.bg-warning,
.badge.bg-gradient-warning {
  background-color: var(--onasa-warning-soft) !important;
  color: #7a4504 !important;
}

.badge.bg-danger,
.badge.bg-gradient-danger {
  background-color: var(--onasa-danger-soft) !important;
  color: #8f1c13 !important;
}

.badge.bg-info,
.badge.bg-gradient-info {
  background-color: var(--onasa-info-soft) !important;
  color: #0a5560 !important;
}

.badge.bg-secondary,
.badge.bg-gradient-secondary,
.badge.bg-light,
.badge.bg-dark,
.badge.bg-gradient-dark {
  background-color: var(--onasa-neutral-soft) !important;
  color: var(--onasa-ink-2) !important;
}

/* Un point de couleur double le sens, sans dépendre de la teinte seule */
td .badge.bg-success::before,
td .badge.bg-gradient-success::before,
td .badge.bg-warning::before,
td .badge.bg-gradient-warning::before,
td .badge.bg-danger::before,
td .badge.bg-gradient-danger::before,
td .badge.bg-secondary::before,
td .badge.bg-gradient-secondary::before {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.85;
}

/* Pastille d'icône dans une alerte */
.alert .badge {
  width: 1.7rem;
  height: 1.7rem;
  padding: 0;
  justify-content: center;
  background: rgba(255, 255, 255, 0.7) !important;
  color: inherit !important;
}

.onasa-app .alert,
.alert {
  z-index: auto;
  padding: 0.8rem 1rem;
  border: 1px solid transparent !important;
  border-radius: var(--onasa-radius) !important;
  box-shadow: none !important;
  font-size: 0.93rem;
  line-height: 1.5;
}

.alert a,
.alert .alert-link {
  color: inherit !important;
  font-weight: 600;
  text-decoration: underline;
}

.alert-success {
  background: var(--onasa-green-soft) !important;
  border-color: rgba(20, 122, 75, 0.22) !important;
  color: var(--onasa-green-deep) !important;
}

.alert-warning {
  background: var(--onasa-warning-soft) !important;
  border-color: rgba(201, 162, 39, 0.4) !important;
  color: #6b4a04 !important;
}

.alert-danger {
  background: var(--onasa-danger-soft) !important;
  border-color: rgba(180, 35, 24, 0.22) !important;
  color: #8f1c13 !important;
}

.alert-info,
.alert-secondary,
.alert-light {
  background: var(--onasa-info-soft) !important;
  border-color: rgba(14, 111, 124, 0.22) !important;
  color: #0a5560 !important;
}

.onasa-flash {
  margin-bottom: 1rem;
}

.progress {
  height: 0.5rem !important;
  overflow: hidden;
  border-radius: 999px;
  background: var(--onasa-neutral-soft);
  box-shadow: none;
}

.progress-bar {
  height: 100% !important;
  margin: 0 !important;
  border-radius: 999px;
  background-image: none !important;
  background-color: var(--onasa-green);
}

.progress-bar.bg-gradient-danger,
.progress-bar.bg-danger {
  background-color: var(--onasa-danger) !important;
}

.progress-bar.bg-gradient-warning,
.progress-bar.bg-warning {
  background-color: var(--onasa-gold) !important;
}

/* —— 10 Listes, menus déroulants, pagination —— */
.list-group {
  --bs-list-group-border-color: var(--onasa-line);
  --bs-list-group-border-radius: var(--onasa-radius);
  border-radius: var(--onasa-radius);
  box-shadow: none !important;
}

.list-group-item {
  padding: 0.85rem 1rem;
  border-color: var(--onasa-line);
  color: var(--onasa-ink);
}

.list-group-item.d-flex {
  gap: 0.75rem;
  flex-wrap: wrap;
}

.card > .list-group {
  border: 0;
}

.dropdown .dropdown-menu,
.dropdown-menu {
  margin-top: 0.4rem !important;
  padding: 0.4rem;
  border: 1px solid var(--onasa-line) !important;
  border-radius: var(--onasa-radius) !important;
  box-shadow: var(--onasa-shadow-lg) !important;
  font-size: 0.92rem;
}

.dropdown-menu::before {
  display: none !important;
}

/* Argon garde les menus fermés dans la page (opacité 0) : on les retire vraiment. */
.dropdown .dropdown-menu:not(.show),
.dropdown-menu:not(.show) {
  display: none !important;
}

.dropdown .dropdown-menu.show,
.dropdown-menu.show {
  display: block;
  opacity: 1 !important;
  pointer-events: auto !important;
  animation: none !important;
  transform-origin: top right;
}

.dropdown-item {
  padding: 0.55rem 0.7rem;
  border-radius: 8px;
  color: var(--onasa-ink);
}

.dropdown-item:hover,
.dropdown-item:focus {
  background: var(--onasa-green-tint);
  color: var(--onasa-ink);
}

.dropdown-header {
  padding: 0.4rem 0.7rem;
  color: var(--onasa-muted) !important;
  font-size: 0.8rem !important;
  font-weight: 600;
  text-transform: none !important;
}

.page-link {
  min-width: 2.4rem;
  min-height: 2.4rem;
  border-radius: 8px !important;
  color: var(--onasa-ink);
}

.page-item.active .page-link {
  background: var(--onasa-green) !important;
  border-color: var(--onasa-green) !important;
  box-shadow: none !important;
  color: #fff;
}

.modal-content {
  border: 0;
  border-radius: var(--onasa-radius-lg);
  box-shadow: var(--onasa-shadow-lg);
}

/* —— 11 Tableaux de bord —— */
/* Pastilles d'icône : aplat teinté plutôt que dégradé */
.onasa-app main .icon.icon-shape,
.onasa-app main .icon-shape {
  flex: 0 0 auto;
  width: 2.75rem !important;
  height: 2.75rem !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 12px !important;
  background-image: none !important;
  background-color: var(--onasa-green-soft) !important;
  box-shadow: none !important;
}

.onasa-app main .icon-shape i {
  top: 0 !important;
  font-size: 1.1rem !important;
  color: var(--onasa-green-dark) !important;
  opacity: 1 !important;
}

.onasa-app main .icon-shape.bg-gradient-warning {
  background-color: var(--onasa-gold-soft) !important;
}

.onasa-app main .icon-shape.bg-gradient-warning i {
  color: var(--onasa-gold-ink) !important;
}

.onasa-app main .icon-shape.bg-gradient-info {
  background-color: var(--onasa-info-soft) !important;
}

.onasa-app main .icon-shape.bg-gradient-info i {
  color: var(--onasa-info) !important;
}

.onasa-app main .icon-shape.bg-gradient-danger {
  background-color: var(--onasa-danger-soft) !important;
}

.onasa-app main .icon-shape.bg-gradient-danger i {
  color: var(--onasa-danger) !important;
}

.onasa-app main .icon-shape.bg-gradient-dark,
.onasa-app main .icon-shape.bg-gradient-secondary {
  background-color: var(--onasa-neutral-soft) !important;
}

.onasa-app main .icon-shape.bg-gradient-dark i,
.onasa-app main .icon-shape.bg-gradient-secondary i {
  color: var(--onasa-ink-2) !important;
}

/* Chiffres clés : grands, tabulaires */
.onasa-app .card h4.font-weight-bolder,
.onasa-app .card .card-body > h5.text-success,
.onasa-app .card .card-body > h5.text-danger,
.onasa-app .card .card-body > .text-xs + h5,
.onasa-app .card p.h5,
.onasa-app .card p.text-lg.fw-bold {
  font-family: var(--onasa-font-display);
  font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.75rem) !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.022em;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.onasa-app .card .card-body > .text-xs + h5 {
  margin-bottom: 0;
}

/* Liens d'une carte de synthèse */
.onasa-app .card hr + a,
.onasa-app .card hr ~ a.d-block {
  display: block;
  padding: 0.3rem 0;
  font-weight: 600 !important;
  text-decoration: none;
}

.onasa-app .card hr ~ a.d-block:hover,
.onasa-app .card hr + a:hover {
  text-decoration: underline;
}

/* Liens « retour » */
.onasa-app main a.text-sm.text-secondary {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  color: var(--onasa-muted) !important;
  font-weight: 600;
  text-decoration: none;
}

.onasa-app main a.text-sm.text-secondary:hover {
  color: var(--onasa-green-dark) !important;
}

.onasa-analytics-kpi {
  border: 1px solid var(--onasa-line);
  box-shadow: none;
}

.onasa-analytics-kpi .card-body {
  padding: 0.85rem 1rem;
}

.onasa-chart-wrap {
  position: relative;
  width: 100%;
}

.onasa-chart-wrap canvas {
  max-width: 100%;
}

@media (max-width: 767.98px) {
  .onasa-chart-wrap {
    min-height: 180px;
  }
}

/* —— 12 Utilitaires Argon / Bootstrap recalés —— */
.text-xs {
  font-size: 0.82rem !important;
  line-height: 1.45;
}

.text-sm {
  font-size: 0.92rem !important;
  line-height: 1.5;
}

.text-lg {
  font-size: 1.1rem !important;
}

.text-dark {
  color: var(--onasa-ink) !important;
}

.text-secondary,
.text-muted,
.text-body {
  color: var(--onasa-muted) !important;
}

.text-primary,
.text-success {
  color: var(--onasa-green) !important;
}

.text-danger {
  color: var(--onasa-danger) !important;
}

.text-warning {
  color: var(--onasa-warning) !important;
}

.text-info {
  color: var(--onasa-info) !important;
}

.onasa-app main .text-white:not(.badge):not(.btn):not(.user-panel-avatar) {
  color: inherit !important;
}

a.text-primary:hover,
a.text-success:hover {
  color: var(--onasa-green-dark) !important;
}

/* Les intertitres en capitales redeviennent des titres en casse normale */
.onasa-app main .text-uppercase {
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.onasa-app main h5.text-uppercase,
.onasa-app main h6.text-uppercase {
  margin-bottom: 0.75rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--onasa-ink) !important;
  letter-spacing: -0.012em !important;
}

.onasa-app main h6.text-uppercase.text-danger {
  color: var(--onasa-danger) !important;
}

.onasa-app main p.text-uppercase {
  font-size: 0.87rem !important;
  font-weight: 600 !important;
  color: var(--onasa-muted) !important;
}

.font-weight-bold,
.fw-semibold {
  font-weight: 600 !important;
}

.font-weight-bolder,
.fw-bold {
  font-weight: 700 !important;
}

.onasa-app h4.font-weight-bolder,
.onasa-app h5.font-weight-bolder,
.onasa-app h6.font-weight-bolder {
  font-weight: 600 !important;
}

.shadow,
.shadow-sm,
.shadow-xs {
  box-shadow: var(--onasa-shadow-sm) !important;
}

.shadow-lg {
  box-shadow: var(--onasa-shadow-lg) !important;
}

.border,
.border-light {
  border-color: var(--onasa-line) !important;
}

.border-radius-md,
.border-radius-lg,
.border-radius-xl,
.rounded-3 {
  border-radius: var(--onasa-radius) !important;
}

.bg-gray-100,
.bg-light {
  background-color: var(--onasa-sunken) !important;
}

.bg-gradient-primary,
.bg-gradient-success {
  background-image: none !important;
  background-color: var(--onasa-green) !important;
}

.bg-gradient-info {
  background-image: none !important;
  background-color: var(--onasa-info) !important;
}

.bg-gradient-warning {
  background-image: none !important;
  background-color: var(--onasa-gold) !important;
}

.bg-gradient-danger {
  background-image: none !important;
  background-color: var(--onasa-danger) !important;
}

.bg-gradient-dark {
  background-image: none !important;
  background-color: var(--onasa-ink) !important;
}

.bg-gradient-secondary {
  background-image: none !important;
  background-color: #7b8780 !important;
}

/* —— 13 Connexion et page d'erreur —— */
.onasa-auth {
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(22rem, 34rem);
  background: var(--onasa-card) !important;
}

.onasa-auth-aside {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(1.5rem, 4vw, 4rem);
  color: #fff;
  background-color: var(--onasa-sidenav-bg);
  background-size: cover;
  background-position: center;
  isolation: isolate;
}

.onasa-auth-aside::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(200deg, rgba(8, 28, 18, 0.25) 0%, rgba(8, 28, 18, 0.62) 48%, rgba(8, 26, 18, 0.94) 100%);
}

.onasa-auth-aside h1 {
  max-width: 16ch;
  margin: 0 0 1rem;
  font-family: var(--onasa-font-display);
  font-size: clamp(2rem, 1.2rem + 2.8vw, 3.5rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.04;
  color: #fff !important;
}

.onasa-auth-aside p {
  max-width: 44ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.02rem;
  line-height: 1.55;
}

.onasa-auth-rule {
  width: 3.5rem;
  height: 3px;
  margin-bottom: 1.25rem;
  border-radius: 3px;
  background: var(--onasa-gold);
}

.onasa-auth-panel {
  background: var(--onasa-card);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.5rem, 5vw, 3.5rem);
  padding-bottom: calc(clamp(1.5rem, 5vw, 3.5rem) + env(safe-area-inset-bottom));
}

.onasa-auth-form {
  width: 100%;
  max-width: 24rem;
  margin: auto;
}

.onasa-auth-brand {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: clamp(1.75rem, 5vh, 3rem);
}

.onasa-auth-brand img {
  width: 3.5rem;
  height: 3.5rem;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid var(--onasa-line);
  background: #fff;
}

.onasa-auth-brand strong {
  display: block;
  font-family: var(--onasa-font-display);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.1;
  color: var(--onasa-ink);
}

.onasa-auth-brand span {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.85rem;
  color: var(--onasa-muted);
}

.onasa-auth-form h2 {
  margin: 0 0 0.35rem;
  font-family: var(--onasa-font-display);
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: -0.024em;
  color: var(--onasa-ink);
}

.onasa-auth-lede {
  margin: 0 0 1.75rem;
  color: var(--onasa-muted);
  font-size: 0.97rem;
}

.onasa-auth-form .form-control {
  min-height: 3.1rem;
  font-size: 1rem;
}

.onasa-auth-form .btn {
  width: 100%;
  min-height: 3.1rem;
  margin: 0.5rem 0 0;
  font-size: 1rem;
}

.onasa-auth-password {
  position: relative;
}

.onasa-auth-password .form-control {
  padding-right: 3.2rem;
}

.onasa-auth-reveal {
  position: absolute;
  top: 0;
  right: 0;
  width: 3.1rem;
  height: 3.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--onasa-muted);
  cursor: pointer;
}

.onasa-auth-reveal:hover {
  color: var(--onasa-ink);
}

.onasa-auth-reveal svg {
  width: 1.25rem;
  height: 1.25rem;
}

.onasa-auth-reveal[aria-pressed="true"] .onasa-eye-open,
.onasa-auth-reveal[aria-pressed="false"] .onasa-eye-shut {
  display: none;
}

.onasa-auth-foot {
  margin-top: 2rem;
  color: var(--onasa-muted);
  font-size: 0.84rem;
}

@media (max-width: 899.98px) {
  .onasa-auth {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr;
  }

  .onasa-auth-aside {
    min-height: 30vh;
    padding: 1.5rem;
  }

  .onasa-auth-aside h1 {
    font-size: clamp(1.6rem, 1.1rem + 3vw, 2.2rem);
    margin-bottom: 0;
  }

  .onasa-auth-aside p {
    display: none;
  }

  .onasa-auth-rule {
    margin-bottom: 0.85rem;
  }

  .onasa-auth-panel {
    justify-content: flex-start;
    margin-top: -1.25rem;
    border-radius: var(--onasa-radius-lg) var(--onasa-radius-lg) 0 0;
    background: var(--onasa-card);
    position: relative;
  }

  .onasa-auth-brand {
    margin-bottom: 1.5rem;
  }
}

@media (max-height: 520px) and (max-width: 899.98px) {
  .onasa-auth-aside {
    display: none;
  }

  .onasa-auth-panel {
    margin-top: 0;
    border-radius: 0;
  }
}

.onasa-error {
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: var(--onasa-bg);
  color: var(--onasa-ink);
  font-family: var(--onasa-font);
}

.onasa-error-card {
  width: 100%;
  max-width: 30rem;
  padding: clamp(1.5rem, 5vw, 2.5rem);
  border: 1px solid var(--onasa-line);
  border-radius: var(--onasa-radius-lg);
  background: var(--onasa-card);
  box-shadow: var(--onasa-shadow);
}

.onasa-error-card h1 {
  margin: 0 0 0.5rem;
  font-family: var(--onasa-font-display);
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.onasa-error-card p {
  margin: 0 0 1.25rem;
  color: var(--onasa-muted);
}

.onasa-error-card code {
  padding: 0.15rem 0.4rem;
  border-radius: 6px;
  background: var(--onasa-neutral-soft);
  color: var(--onasa-ink);
  font-size: 0.85em;
  overflow-wrap: anywhere;
}

.onasa-error-card a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0 1.1rem;
  border-radius: 10px;
  background: var(--onasa-green);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

.onasa-error-card a:hover {
  background: var(--onasa-green-dark);
}

/* Ancienne page de connexion (si une vue l'utilise encore) */
.onasa-login {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: var(--onasa-font);
  background: var(--onasa-sidenav-bg);
}

.onasa-login .page-header {
  flex: 1;
}

.onasa-login-card {
  border: 0 !important;
  border-radius: var(--onasa-radius-lg) !important;
  box-shadow: var(--onasa-shadow-lg) !important;
}

.onasa-login-logo {
  width: 7rem;
  height: 7rem;
  object-fit: contain;
}

.onasa-login footer {
  background: transparent;
}

.onasa-login footer p {
  color: rgba(255, 255, 255, 0.72) !important;
}

/* —— 14 Petits écrans —— */
@media (pointer: coarse) {
  .onasa-app .btn-sm,
  .btn-sm {
    min-height: 2.6rem;
  }

  .onasa-app .btn-link:not(.px-0) {
    min-height: 2.6rem;
  }

  .form-control-sm,
  .form-select-sm {
    min-height: 2.75rem;
  }
}

@media (max-width: 767.98px) {
  /* 16 px minimum : iOS ne zoome plus à la saisie */
  .form-control,
  .form-select,
  .form-control-sm,
  .form-select-sm {
    font-size: 16px;
  }

  /* Chiffres clés : deux par ligne plutôt qu'une longue pile */
  .onasa-app main .row > .col-md-3:has(> .card) {
    flex: 0 0 auto;
    width: 50%;
  }

  .onasa-app main .row:has(> .col-md-3 > .card) {
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.75rem;
  }
}

@media (max-width: 575.98px) {
  :root {
    --onasa-topbar-height: 3.5rem;
  }

  /* En-tête de page : le bouton principal prend toute la largeur */
  .onasa-app main .row > .col-12.d-flex.justify-content-between > .btn,
  .onasa-app main .row > .col-12.d-flex.justify-content-between > form,
  .onasa-app main .row > .col-12.d-flex.justify-content-between > form > .btn {
    width: 100%;
  }

  /* Formulaires : les boutons d'envoi s'étirent, à portée de pouce */
  .onasa-app main form .btn[type="submit"]:not(.btn-sm):not(.btn-link):not(.w-100) {
    width: 100%;
  }

  .onasa-app main form .btn[type="submit"]:not(.btn-sm):not(.btn-link) + a.btn,
  .onasa-app main form a.btn:not(.btn-sm):has(+ .btn[type="submit"]:not(.btn-sm)) {
    width: 100%;
    margin-inline: 0 !important;
  }

  .onasa-app main .card .card-body.text-center.py-5 {
    padding-block: 2rem !important;
  }

  .onasa-app main .card .card-body.text-center .btn {
    width: 100%;
    margin-inline: 0 !important;
  }

  .onasa-app main .mx-auto[class*="col-xl-"] {
    padding-inline: calc(var(--bs-gutter-x) * 0.5);
  }

  .list-group-item.d-flex {
    flex-direction: column;
    gap: 0.15rem;
  }
}

/* Très grands écrans : les formulaires ne s'étirent pas à l'infini */
@media (min-width: 1400px) {
  .onasa-app main > .container-fluid > .card:has(form:not([method="get"])):not(:has(table)) {
    max-width: 68rem;
  }
}

/* —— 17 Habillage : profondeur, dégradés, lumière —— */
body.onasa-app:not(.onasa-auth) {
  background:
    radial-gradient(58rem 34rem at 108% -8%, rgba(22, 176, 112, 0.13), transparent 62%),
    radial-gradient(46rem 30rem at -6% 104%, rgba(212, 167, 44, 0.14), transparent 60%),
    var(--onasa-bg) !important;
  background-attachment: fixed !important;
}

/* Titres : Poppins, graisse moyenne, plus d'air */
.onasa-app h1,
.onasa-app h2,
.onasa-app h3,
.onasa-app h4,
.onasa-app h5,
.onasa-app h6,
.onasa-app .h4,
.onasa-app .h5,
.onasa-app .h6,
.onasa-app h4.font-weight-bolder,
.onasa-app h5.font-weight-bolder,
.onasa-app h6.font-weight-bolder,
.onasa-app main h5.text-uppercase,
.onasa-app main h6.text-uppercase,
.onasa-topbar-title,
table caption {
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
}

.onasa-app h4,
.onasa-app .h4 {
  font-size: clamp(1.4rem, 1.15rem + 1vw, 1.85rem);
}

.onasa-app .card h4.font-weight-bolder,
.onasa-app .card .card-body > h5.text-success,
.onasa-app .card .card-body > h5.text-danger,
.onasa-app .card .card-body > .text-xs + h5,
.onasa-app .card p.h5,
.onasa-app .card p.text-lg.fw-bold {
  font-size: clamp(1.45rem, 1.15rem + 1vw, 1.95rem) !important;
  font-weight: 500 !important;
  letter-spacing: -0.03em !important;
}

/* Barre supérieure */
.onasa-menu-toggle,
.onasa-notif-toggle {
  border-radius: 14px;
  border-color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 0 1px rgba(16, 24, 21, 0.05), var(--onasa-shadow-sm);
}

/* Cartes */
.onasa-app .card,
.card {
  border: 1px solid rgba(255, 255, 255, 0.9) !important;
  border-radius: 20px !important;
  box-shadow: 0 0 0 1px rgba(16, 24, 21, 0.04), var(--onasa-shadow-sm) !important;
  transition: transform 0.22s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.22s ease;
}

.card .card-header {
  border-radius: 20px 20px 0 0 !important;
}

.card > .table-responsive:first-child,
.card > .table-responsive:only-child {
  border-radius: 20px;
}

.onasa-app main [class*="col-"] > .table-responsive,
.onasa-app main > .container-fluid > .table-responsive {
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 20px;
  box-shadow: 0 0 0 1px rgba(16, 24, 21, 0.04), var(--onasa-shadow-sm);
}

/* Cartes de synthèse et d'accès : halo discret, léger soulèvement au survol */
.onasa-app main .card:has(.icon-shape),
.onasa-app main .row > .col-md-3 > .card,
.onasa-app main .row > [class*="col-"] > .card.h-100 {
  background:
    radial-gradient(14rem 9rem at 100% 0%, rgba(22, 176, 112, 0.1), transparent 70%),
    var(--onasa-card);
}

.onasa-app main .row > .col-md-3:nth-child(even) > .card,
.onasa-app main .row > [class*="col-"]:nth-child(even) > .card.h-100 {
  background:
    radial-gradient(14rem 9rem at 100% 0%, rgba(212, 167, 44, 0.14), transparent 70%),
    var(--onasa-card);
}

@media (hover: hover) {
  .onasa-app main .card:has(.icon-shape):hover,
  .onasa-app main .row > [class*="col-"] > .card.h-100:hover {
    transform: translateY(-3px);
    box-shadow: 0 0 0 1px rgba(14, 138, 86, 0.14), var(--onasa-shadow) !important;
  }
}

/* Pastilles d'icône : dégradé et halo */
.onasa-app main .icon.icon-shape,
.onasa-app main .icon-shape {
  width: 3rem !important;
  height: 3rem !important;
  border-radius: 15px !important;
  background-color: transparent !important;
  background-image: var(--onasa-grad-green) !important;
  box-shadow: var(--onasa-glow-green), inset 0 1px 0 rgba(255, 255, 255, 0.28) !important;
}

.onasa-app main .icon-shape i,
.onasa-app main .icon-shape.bg-gradient-warning i,
.onasa-app main .icon-shape.bg-gradient-info i,
.onasa-app main .icon-shape.bg-gradient-danger i,
.onasa-app main .icon-shape.bg-gradient-dark i,
.onasa-app main .icon-shape.bg-gradient-secondary i {
  color: #fff !important;
  font-size: 1.15rem !important;
}

.onasa-app main .icon-shape.bg-gradient-warning {
  background-image: var(--onasa-grad-gold) !important;
  box-shadow: var(--onasa-glow-gold), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}

.onasa-app main .icon-shape.bg-gradient-info {
  background-image: linear-gradient(135deg, #2bb6c4 0%, #0e7f8d 100%) !important;
  box-shadow: 0 10px 24px -10px rgba(14, 127, 141, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.28) !important;
}

.onasa-app main .icon-shape.bg-gradient-danger {
  background-image: linear-gradient(135deg, #ee6a5c 0%, #b42318 100%) !important;
  box-shadow: 0 10px 24px -10px rgba(180, 35, 24, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.28) !important;
}

.onasa-app main .icon-shape.bg-gradient-dark,
.onasa-app main .icon-shape.bg-gradient-secondary {
  background-image: linear-gradient(135deg, #3c4a43 0%, #131c18 100%) !important;
  box-shadow: 0 10px 24px -10px rgba(16, 24, 21, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}

/* Boutons */
.onasa-app .btn,
.btn {
  border-radius: 12px !important;
  transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, filter 0.16s ease;
}

.btn-primary,
.btn-success,
.btn.bg-gradient-primary,
.btn.bg-gradient-success {
  background: var(--onasa-grad-green) !important;
  border-color: transparent !important;
  box-shadow: var(--onasa-glow-green), inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-success:hover,
.btn-success:focus-visible,
.btn.bg-gradient-primary:hover,
.btn.bg-gradient-success:hover {
  background: var(--onasa-grad-green) !important;
  border-color: transparent !important;
  filter: brightness(1.06) saturate(1.05);
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 28px -10px rgba(14, 138, 86, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
}

.btn-primary:active,
.btn-success:active {
  background: var(--onasa-grad-green) !important;
  filter: brightness(0.94);
  transform: none !important;
}

.btn-warning,
.btn.bg-gradient-warning {
  background: var(--onasa-grad-gold) !important;
  border-color: transparent !important;
  box-shadow: var(--onasa-glow-gold), inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
}

.btn-warning:hover,
.btn-warning:focus-visible {
  background: var(--onasa-grad-gold) !important;
  filter: brightness(1.05);
  transform: translateY(-1px) !important;
}

.btn-dark,
.btn.bg-gradient-dark {
  background: linear-gradient(135deg, #2c3a33 0%, #101815 100%) !important;
  border-color: transparent !important;
  box-shadow: 0 10px 22px -12px rgba(16, 24, 21, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
}

.btn-outline-primary,
.btn-outline-success,
.btn-outline-secondary,
.btn-outline-dark,
.btn-outline-info,
.btn-outline-warning,
.btn-outline-danger {
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 21, 0.05) !important;
}

/* Champs */
.form-control,
.form-select {
  border-radius: 12px !important;
  border-color: rgba(16, 24, 21, 0.14) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 21, 0.04) !important;
}

.form-control:focus,
.form-select:focus {
  box-shadow: var(--onasa-ring) !important;
}

/* Tableaux */
.onasa-app main table thead th,
.card table thead th,
.table-responsive table thead th {
  padding-block: 0.85rem;
  background: linear-gradient(180deg, #fbfcfa 0%, var(--onasa-sunken) 100%);
}

.onasa-app main table tbody td {
  padding-block: 0.95rem;
}

.progress-bar {
  background-image: var(--onasa-grad-green) !important;
}

.progress-bar.bg-gradient-danger,
.progress-bar.bg-danger {
  background-image: linear-gradient(90deg, #ee6a5c, #b42318) !important;
}

.dropdown .dropdown-menu,
.dropdown-menu,
.list-group.position-absolute {
  border-radius: 18px !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  background: rgba(255, 255, 255, 0.96);
}

/* Bandeau d'accueil des tableaux de bord */
.onasa-app main .card.onasa-hero,
.onasa-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: 0 !important;
  border-radius: 26px !important;
  background: var(--onasa-grad-hero) !important;
  color: #fff;
  box-shadow: 0 30px 60px -28px rgba(6, 71, 44, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

.onasa-hero::before,
.onasa-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
}

.onasa-hero::before {
  top: -9rem;
  right: -6rem;
  width: 24rem;
  height: 24rem;
  background: radial-gradient(closest-side, rgba(240, 210, 122, 0.5), rgba(240, 210, 122, 0) 70%);
}

.onasa-hero::after {
  bottom: -12rem;
  left: 22%;
  width: 26rem;
  height: 26rem;
  background: radial-gradient(closest-side, rgba(22, 176, 112, 0.55), rgba(22, 176, 112, 0) 70%);
}

.onasa-hero .card-body,
.onasa-hero-body {
  padding: clamp(1.4rem, 1rem + 2vw, 2.5rem) !important;
}

.onasa-app .onasa-hero h1,
.onasa-app .onasa-hero h2,
.onasa-app .onasa-hero h3,
.onasa-app .onasa-hero h4,
.onasa-app .onasa-hero h5 {
  max-width: 34ch;
  margin-bottom: 0.6rem !important;
  color: #fff !important;
  font-size: clamp(1.45rem, 1.05rem + 1.9vw, 2.3rem);
  font-weight: 500 !important;
  line-height: 1.15;
}

.onasa-hero strong {
  font-weight: 700;
  color: #f6dc8c;
}

.onasa-hero p,
.onasa-hero .text-secondary,
.onasa-hero .text-dark {
  color: rgba(255, 255, 255, 0.78) !important;
}

.onasa-hero p strong {
  color: #fff;
  font-weight: 600;
}

.onasa-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.9rem !important;
  padding: 0.3rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: #fff !important;
  font-size: 0.85rem !important;
}

.onasa-hero-kicker::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #f0d27a;
  box-shadow: 0 0 0 4px rgba(240, 210, 122, 0.25);
}

/* Connexion : la photo en plein écran, le formulaire en carte de verre */
body.onasa-auth {
  position: relative;
  padding: clamp(0.75rem, 2vw, 1.5rem);
  background: #052e1e !important;
}

@media (min-width: 900px) {
  .onasa-auth-aside {
    grid-column: 1 / -1;
    grid-row: 1;
    border-radius: 28px;
    overflow: hidden;
    padding-right: min(40rem, 46vw);
  }

  .onasa-auth-panel {
    grid-column: 2;
    grid-row: 1;
    z-index: 1;
    margin: clamp(1rem, 2.5vw, 2rem);
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.9);
    -webkit-backdrop-filter: saturate(160%) blur(22px);
    backdrop-filter: saturate(160%) blur(22px);
    box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.6);
  }
}

@media (max-width: 899.98px) {
  body.onasa-auth {
    padding: 0;
  }

  .onasa-auth-panel {
    border-radius: 28px 28px 0 0;
  }
}

.onasa-auth-aside::after {
  background:
    radial-gradient(40rem 26rem at 0% 100%, rgba(5, 46, 30, 0.92), rgba(5, 46, 30, 0) 70%),
    linear-gradient(200deg, rgba(5, 46, 30, 0.1) 0%, rgba(5, 46, 30, 0.45) 55%, rgba(5, 46, 30, 0.9) 100%);
}

.onasa-auth-aside h1 {
  font-weight: 700 !important;
  letter-spacing: -0.035em !important;
}

.onasa-auth-rule {
  width: 4rem;
  height: 4px;
  background: var(--onasa-grad-gold);
  box-shadow: var(--onasa-glow-gold);
}

.onasa-auth-form h2 {
  font-size: 2rem;
}

.onasa-auth-brand strong {
  font-weight: 700;
  background: linear-gradient(120deg, #0a6b43 0%, #0e8a56 55%, #b98a1c 130%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.onasa-auth-form .form-control,
.onasa-auth-form .btn {
  border-radius: 14px !important;
}

/* Téléphone : menu en tiroir plein, coins arrondis côté contenu */
@media (max-width: 1199.98px) {
  #sidenav-main,
  #sidenav-main.navbar-vertical.navbar-expand-xs {
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
    border-radius: 0 var(--onasa-radius-lg) var(--onasa-radius-lg) 0 !important;
    background: rgba(255, 255, 255, 0.97) !important;
  }
}

/* —— 15 Impression —— */
@media print {
  @page {
    margin: 14mm;
  }

  html {
    font-size: 12px;
  }

  body,
  body.onasa-app {
    background: #fff !important;
    color: #000;
  }

  #sidenav-main,
  .onasa-sidenav-backdrop,
  .onasa-topbar,
  .onasa-skip,
  .no-print,
  .btn,
  .onasa-notif {
    display: none !important;
  }

  .main-content,
  .onasa-main {
    margin: 0 !important;
  }

  .onasa-content,
  .main-content > .container-fluid {
    max-width: none;
    padding: 0 !important;
  }

  .card {
    border: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
    break-inside: avoid;
  }

  .table-responsive {
    overflow: visible !important;
    border: 0 !important;
    box-shadow: none !important;
    background: none !important;
  }

  .onasa-app main table thead th {
    background: #fff !important;
    color: #000 !important;
    border-bottom: 1.5px solid #000 !important;
  }

  .onasa-app main table tbody td {
    border-bottom: 0.5px solid #999 !important;
  }

  .onasa-app main a {
    color: #000 !important;
    text-decoration: none;
  }
}

/* —— 16 Mouvement réduit —— */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
