:root {`n  --footer-h: 56px;`n  --sidebar-w: 240px;
  --primary: #0d47a1; /* bleu foncé */
  --accent: #ffcc00;  /* doré */
}

body { font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; }
.navbar-brand { letter-spacing:.5px }
.card-stats .card { border:0; box-shadow:0 6px 16px rgba(13,71,161,.12) }
.card-stats .icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#e3f2fd; color:var(--primary) }
.btn-primary { background:var(--primary); border-color:var(--primary) }
.btn-warning { background:var(--accent); border-color:var(--accent) }
.table thead th { background:#f6f8fb }
.form-required::after { content:" *"; color:#d32f2f }

/* Footer stickiness for small pages */
html, body { height:100% }
body { margin:0; padding:0; overflow-x:hidden; height:100% }
.app { height:100vh; display:flex; flex-direction:row !important; width:100% }
.content { background:#f8f9fb; display:grid; grid-template-rows: 1fr auto; min-height:100vh; margin-left:var(--sidebar-w); }
.content > footer { margin-top:auto }

/* App layout with vertical sidebar */
.app { height:100vh; display:flex; flex-direction:row !important; width:100% }
.sidebar { width:var(--sidebar-w); position:fixed; top:0; bottom:0; left:0; height:100vh; }
.sidebar .nav-link { color:#e5e7eb; padding:.45rem .75rem; border-radius:.35rem }
.sidebar .nav-link:hover { background:rgba(255,255,255,.1); color:#fff }
.content { background:#f8f9fb; display:grid; grid-template-rows: 1fr auto; min-height:100vh; margin-left:var(--sidebar-w); }
.content .page { min-height:0 }



.footer-fixed { position:static }
.content .page { min-height:0 }



/* ==== Overrides: force full-height sidebar and no footer gap ==== */
:root { --sidebar-w: 240px; --footer-h: 56px; }
.app { display:flex; flex-direction:row; width:100%; min-height:100dvh; }
.sidebar { position:fixed; inset:0 auto 0 0; width:var(--sidebar-w); height:100dvh; }
.content { margin-left:var(--sidebar-w); display:grid; grid-template-rows:1fr auto; min-height:100dvh; }
.content .page { min-height:0; }
.content > footer { grid-row: 2; }
/* === Final layout overrides (sidebar full height, fixed footer separated) === */
:root { --sidebar-w: 240px; --footer-h: 56px; }
.app { display:flex; flex-direction:row; width:100%; min-height:100dvh; }
.sidebar { position:fixed; inset:0 auto 0 0; width:var(--sidebar-w); height:100dvh; }
.content { margin-left:var(--sidebar-w); display:block; min-height:100dvh; }
.content .page { padding-bottom: var(--footer-h); }
/* Footer fixed across full width and visually separated from sidebar */
.footer-fixed { position:fixed; left:0; right:0; bottom:0; height:var(--footer-h); z-index:1000; }
/* ==== Final overrides: full-height sidebar and fixed footer separated from menu ==== */
:root { --sidebar-w: 240px; --footer-h: 56px; }
.app { min-height: 100dvh !important; display: flex !important; flex-direction: row !important; width: 100% !important; }
.sidebar { position: fixed !important; top: 0; bottom: 0; left: 0; width: var(--sidebar-w) !important; height: 100dvh !important; }
.content { margin-left: var(--sidebar-w) !important; min-height: 100dvh !important; display: block !important; }
.content .page { padding-bottom: var(--footer-h) !important; }
.footer-fixed { position: fixed !important; left: 0 !important; right: 0 !important; bottom: 0 !important; height: var(--footer-h) !important; z-index: 1000 !important; }
/* === Ensure left menu (sidebar) fills full viewport height === */
:root { --sidebar-w: 240px; }
.app{ display:flex !important; flex-direction:row !important; width:100% !important; min-height:100vh !important; min-height:100dvh !important; }
.sidebar{
  position:fixed !important;
  top:0 !important; left:0 !important; bottom:0 !important;
  width:var(--sidebar-w) !important;
  min-height:100vh !important;
  height:100vh !important; height:100svh !important; height:100dvh !important;
  overflow-y:auto;
}
.content{ margin-left:var(--sidebar-w) !important; }
