/* =============================================================
   LAYOUT  —  app canvas, navbar, content shell (RTL-aware)
   -------------------------------------------------------------
   Only surface/spacing/motion refinements. RTL positioning and
   sidebar structure remain owned by the existing custom.css and
   AdminLTE until the dedicated Sidebar stage (awaiting your
   design reference).
   ============================================================= */

body,
.wrapper {
  background: var(--background);
}

/* Top navbar lives in navbar.css */

/* Content breathing room */
.content-wrapper { background: var(--background); }

/* Footer.
   It is rendered INSIDE .content-wrapper, but it is position:fixed (see below)
   so it is laid out against the VIEWPORT, not its parent — it therefore needs
   the sidebar offset of its own. custom.css already supplies that via
   `.main-footer { margin-right: 280px }` plus the collapsed (4.6rem) and
   mobile (0) breakpoints, so we deliberately do NOT zero it out here. */

/* -------------------------------------------------------------
   FIXED FOOTER  —  pinned to the viewport bottom on every page.
   The sidebar offset is provided by custom.css's existing
   margin-right on .main-footer, which also covers the collapsed
   and mobile breakpoints. Content clears the footer via a
   body padding-bottom equal to the footer's height (measured by
   the script in footer.html → --app-footer-h; 72px fallback).
   ------------------------------------------------------------- */
.wrapper { min-height: 100vh; }
.main-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}
body { padding-bottom: var(--app-footer-h, 72px); }

/* Card-heavy pages: consistent vertical rhythm */
.content > .container-fluid > .row { row-gap: var(--space-2); }
