/* Navigea — stability and responsive polish.
   This stylesheet is deliberately loaded last so every business module keeps
   its colours while sharing the same reliable layout rules. */

:root {
  --nv-page-width: 1500px;
  --nv-page-gutter: clamp(14px, 2.7vw, 40px);
  --nv-section-gap: clamp(12px, 1.4vw, 20px);
  --nv-safe-bottom: max(24px, env(safe-area-inset-bottom));
}

html {
  min-width: 320px;
  overflow-x: clip;
  scroll-padding-top: 140px;
}

body.nv-app,
body.login-page,
body.store-select-page {
  min-width: 320px;
  overflow-x: clip;
}

body.nv-app [hidden] { display: none !important; }

body.nv-app *,
body.nv-app *::before,
body.nv-app *::after { box-sizing: border-box; }

body.nv-app :is(main, section, article, aside, header, footer, nav, form, fieldset, div) {
  min-width: 0;
}

body.nv-app :is(img, video, canvas) {
  display: block;
  max-width: 100%;
}

body.nv-app :is(button, a, summary, label, th, td) { overflow-wrap: anywhere; }

body.nv-app :is(input, select, textarea, button) {
  min-width: 0;
  max-width: 100%;
}

body.nv-app textarea { resize: vertical; }

/* Page frame and vertical rhythm */
body.nv-app .dashboard-shell > .dashboard-main,
body.nv-app > main > .container,
body.nv-app .home-command-layout,
body.nv-app .sc-main,
body.nv-app .enterprise-main,
body.nv-app .graphen-shell,
body.nv-app .workforce-main,
body.nv-app .roles-main {
  width: min(var(--nv-page-width), 100%) !important;
  max-width: var(--nv-page-width) !important;
  margin-inline: auto !important;
  padding-right: var(--nv-page-gutter) !important;
  padding-left: var(--nv-page-gutter) !important;
}

body.nv-app .roles-main {
  margin-top: 0 !important;
  padding-top: 22px !important;
  padding-bottom: 56px !important;
}

body.nv-app :is(.dashboard-main, .container, .sc-main, .enterprise-main, .graphen-shell, .workforce-main, .roles-main) > :first-child {
  margin-top: 0;
}

body.nv-app :is(.nv-page-heading, .sc-heading, .enterprise-heading, .workforce-heading, .roles-heading, .graphen-command) {
  min-width: 0;
  max-width: 100%;
}

body.nv-app :is(.nv-page-heading, .sc-heading, .enterprise-heading, .workforce-heading, .roles-heading) > * {
  min-width: 0;
  max-width: 100%;
}

body.nv-app :is(
  .panel-heading, .management-panel-heading, .logistics-section-heading,
  .store-admin-heading, .information-admin-heading, .vat-admin-heading,
  .radar-section-heading, .roles-section-heading, .planning-board-heading,
  .organigram-canvas-heading, .dashsav-panel-heading
) {
  align-items: center;
  flex-wrap: wrap;
}

body.nv-app :is(
  .dashboard-topbar-actions, .workforce-heading-actions, .dashsav-heading-actions,
  .sales-table-actions, .logistics-topbar-actions, .roles-section-heading
) > :is(a, button, label, select) {
  flex: 0 1 auto;
}

/* Header: explicit layers and no accidental overlap with dropdowns. */
body.nv-app > .nv-app-header {
  isolation: isolate;
  z-index: 100 !important;
}

body.nv-app .nv-header-inner {
  row-gap: 9px !important;
}

body.nv-app .nv-header-nav {
  position: relative;
  z-index: 2;
  align-content: center;
}

body.nv-app .nv-header-tools {
  position: relative;
  z-index: 4;
}

body.nv-app .nv-space-links {
  z-index: 120;
  max-height: min(62dvh, 470px);
  overscroll-behavior: contain;
}

body.nv-app .nv-app-header .navigea-notification-panel { z-index: 130; }

/* Panels and grids never escape their column. */
body.nv-app :is(
  .dashboard-panel, .forecast-card, .management-panel, .sales-admin-panel,
  .financial-alert-panel, .sales-table-panel, .admin-box, .form-card,
  .product-explorer, .product-offers-panel, .pac-calendar-panel, .pac-agenda,
  .pac-upcoming, .pac-offers-panel, .logistics-panel, .account-identity-card,
  .sc-kpi, .sc-column, .enterprise-card, .workforce-panel, .role-card,
  .dashsav-panel
) {
  min-width: 0;
  max-width: 100%;
}

body.nv-app :is(
  .dashboard-summary, .main-insights, .seller-layout, .account-performance-grid,
  .personal-layout, .notification-layout, .pac-planning, .product-offer-body,
  .dashsav-layout, .organigram-layout, .graphen-layout
) > * { min-width: 0; }

body.nv-app :is(
  .sales-admin-toolbar, .sales-table-toolbar, .financial-alert-toolbar,
  .user-admin-toolbar, .product-filters, .logistics-filters,
  .logistics-table-controls, .process-toolbar, .graphen-filters,
  .annual-builder, .vat-admin-form
) > * { min-width: 0; }

body.nv-app :is(.organigram-canvas, .graphen-catalog, .graphen-preview, .graphen-reports) {
  max-width: 100%;
}

body.nv-app .organigram-canvas { overflow: auto; }
body.nv-app .org-chart { max-width: 100%; overscroll-behavior-inline: contain; }
body.nv-app .planning-board-scroll { max-width: 100%; overscroll-behavior-inline: contain; }

/* Tables keep all actions accessible instead of widening the whole page. */
body.nv-app :is(
  [class*="table-wrap"], .table-scroll, .planning-board-scroll,
  .graphen-table-wrap, .roles-table-wrap
) {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

body.nv-app :is(table, [role="table"]) { max-width: 100%; }

body.nv-app table :is(th, td) {
  vertical-align: middle;
}

/* Modals: a single safe viewport, scrollable content and predictable stacking. */
body.nv-app dialog {
  max-width: calc(100vw - 28px) !important;
  max-height: calc(100dvh - 28px) !important;
  margin: auto !important;
  overscroll-behavior: contain;
}

body.nv-app dialog[open] { isolation: isolate; }

body.nv-app dialog > :is(form, .logistics-dialog-card, .critical-dialog-card, .product-dialog-card, .information-modal-card) {
  max-width: 100%;
  max-height: calc(100dvh - 28px);
}

body.nv-app dialog :is(input, select, textarea) { width: 100%; }

body.nv-app dialog :is(.logistics-form-grid, .workforce-form-grid, .process-form-grid, .financial-alert-form-section) > * {
  min-width: 0;
}

body.nv-app dialog::backdrop {
  background: rgba(17, 24, 39, .62) !important;
  backdrop-filter: none !important;
}

/* Toasts are moved away from the sticky application header. */
body.nv-app .information-banner-host {
  top: auto !important;
  right: max(16px, env(safe-area-inset-right)) !important;
  bottom: var(--nv-safe-bottom) !important;
  left: auto;
  z-index: 1400 !important;
  max-height: min(70dvh, 620px);
  overflow-y: auto;
}

/* Home cockpit: keep it compact, but let real content define the height. */
body.nv-app[data-nv-space="home"] .home-summary-row {
  grid-template-rows: minmax(150px, auto) !important;
  height: auto !important;
  min-height: 150px !important;
  gap: 12px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row .home-command-bar,
body.nv-app[data-nv-space="home"] .home-summary-alerts,
body.nv-app[data-nv-space="home"] .home-performance-overview,
body.nv-app[data-nv-space="home"] .home-performance-overview .home-performance-card {
  height: auto !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row .home-command-bar {
  min-height: 150px !important;
  padding: 20px 22px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row .home-welcome > span {
  font-size: clamp(27px, 2.2vw, 34px) !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row .home-welcome > small {
  font-size: 13px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row .home-command-actions button {
  width: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts {
  grid-template-rows: 50px minmax(0, 1fr) !important;
  min-height: 150px !important;
  max-height: 220px !important;
  overflow: hidden;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts > header {
  min-height: 50px !important;
  padding: 9px 14px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts > header span { font-size: 8px !important; }
body.nv-app[data-nv-space="home"] .home-summary-alerts > header h2 { font-size: 17px !important; }
body.nv-app[data-nv-space="home"] .home-summary-alerts #homeAlertsProgress {
  min-width: 40px !important;
  min-height: 30px !important;
  height: 30px !important;
  font-size: 11px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts .home-alert-item {
  grid-template-columns: 20px minmax(0, 1fr) auto !important;
  min-height: 44px !important;
  gap: 9px !important;
  padding: 7px 12px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts :is(.home-alert-toggle, .home-alert-check) {
  width: 20px !important;
  height: 20px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts .home-alert-copy strong { font-size: 11.5px !important; }
body.nv-app[data-nv-space="home"] .home-summary-alerts .home-alert-meta { font-size: 9px !important; }
body.nv-app[data-nv-space="home"] .home-summary-alerts .home-today-status { font-size: 11px !important; }

body.nv-app[data-nv-space="home"] .home-alert-list {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

body.nv-app[data-nv-space="home"] .home-performance-overview {
  min-width: 0;
  min-height: 150px !important;
}

body.nv-app[data-nv-space="home"] .home-performance-overview .home-performance-card {
  min-width: 0;
  min-height: 148px !important;
  gap: 7px 14px !important;
  padding: 16px 18px !important;
}

body.nv-app[data-nv-space="home"] .home-performance-overview .home-daily-heading h2 { font-size: 10.5px !important; }
body.nv-app[data-nv-space="home"] .home-performance-overview .home-daily-metric > span { font-size: 9.5px !important; }
body.nv-app[data-nv-space="home"] .home-performance-overview .home-daily-metric > strong {
  font-size: clamp(22px, 1.8vw, 29px) !important;
}
body.nv-app[data-nv-space="home"] .home-performance-overview .home-daily-progress > div:first-child { font-size: 9.5px !important; }
body.nv-app[data-nv-space="home"] .home-performance-overview .home-daily-progress > div:first-child strong { font-size: 12px !important; }
body.nv-app[data-nv-space="home"] .home-performance-overview .home-daily-track { height: 8px !important; }

body.nv-app[data-nv-space="home"] .social-left-rail,
body.nv-app[data-nv-space="home"] .social-right-rail { top: 132px; }

body.nv-app[data-nv-space="home"] .home-side-tools {
  max-height: calc(100dvh - 112px);
  gap: 12px;
  overscroll-behavior: contain;
}

body.nv-app[data-nv-space="home"] .home-side-tools .home-workspaces-heading {
  padding-bottom: 12px !important;
}

body.nv-app[data-nv-space="home"] .home-side-tools .home-workspaces-heading span { font-size: 9px !important; }
body.nv-app[data-nv-space="home"] .home-side-tools .home-workspaces-heading h1 { font-size: 27px !important; }

body.nv-app[data-nv-space="home"] .home-side-tools .home-workspaces {
  gap: 11px !important;
}

body.nv-app[data-nv-space="home"] .home-side-tools .home-space.tool {
  grid-template-columns: 50px minmax(0, 1fr) !important;
  grid-template-rows: auto 40px !important;
  min-height: 142px !important;
  gap: 12px 14px !important;
  padding: 16px !important;
  overflow: visible !important;
}

body.nv-app[data-nv-space="home"] .home-side-tools .home-space .tool-icon {
  width: 50px !important;
  height: 50px !important;
  border-radius: 14px !important;
}

body.nv-app[data-nv-space="home"] .home-side-tools .home-space .tool-monogram { font-size: 13px !important; }
body.nv-app[data-nv-space="home"] .home-side-tools .home-space-copy h2 {
  font-size: 18px !important;
  white-space: normal;
}

body.nv-app[data-nv-space="home"] .home-side-tools .home-space-actions a,
body.nv-app[data-nv-space="home"] .home-side-tools .home-space-actions-triple a {
  min-height: 38px !important;
  padding: 7px 10px !important;
  font-size: 10.5px !important;
}

/* Outils : panneau permanent à droite sur toutes les pages de l'application. */
body.nv-app .navigea-tools-rail { display: none; }

@media (min-width: 901px) {
  body.nv-app.has-navigea-tools-rail {
    padding-right: 320px;
  }

  body.nv-app .navigea-tools-rail {
    position: fixed;
    z-index: 899;
    inset: 0 0 0 auto;
    display: grid;
    width: 320px;
    height: 100dvh;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    border-left: 1px solid #d9dfec;
    background: #fff;
    box-shadow: -8px 0 28px rgba(15, 23, 42, .08);
  }

  body.nv-app .navigea-tools-rail > header {
    padding: 15px 16px 14px;
    color: #fff;
    background: #263572;
  }

  body.nv-app .navigea-tools-rail > header > span {
    display: block;
    color: rgba(255, 255, 255, .68);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .15em;
  }

  body.nv-app .navigea-tools-rail > header h2 {
    margin: 4px 0 0;
    color: #fff !important;
    font-size: 19px;
    line-height: 1.2;
  }

  body.nv-app .navigea-tools-rail > header p {
    margin: 4px 0 0;
    color: rgba(255, 255, 255, .74);
    font-size: 10px;
  }

  body.nv-app .navigea-tools-body {
    min-height: 0;
    padding: 12px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: #c8cde0 transparent;
    scrollbar-width: thin;
    background: #f6f7fb;
  }

  body.nv-app .navigea-tools-home {
    display: flex;
    min-height: 40px;
    align-items: center;
    margin-bottom: 10px;
    padding: 9px 12px;
    border: 1px solid #dfe4ee;
    border-radius: 11px;
    color: #354263;
    background: #fff;
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
  }

  body.nv-app .navigea-tools-home::before {
    content: "⌂";
    margin-right: 9px;
    color: #4f5fa4;
    font-size: 17px;
  }

  body.nv-app .navigea-tools-navigation {
    display: grid;
    gap: 9px;
  }

  body.nv-app .navigea-tools-group {
    display: grid;
    gap: 7px;
    padding: 11px;
    border: 1px solid #e1e5ed;
    border-radius: 13px;
    background: #fff;
  }

  body.nv-app .navigea-tools-group:not(:has(.navigea-tools-link:not([hidden]))) {
    display: none;
  }

  body.nv-app .navigea-tools-group-heading {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
  }

  body.nv-app .navigea-tools-group-heading > span {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 10px;
    color: #344487;
    background: #e8ecfb;
    font-size: 11px;
    font-weight: 900;
  }

  body.nv-app .navigea-tools-group-heading h3 {
    margin: 0;
    color: #24304d;
    font-size: 13px;
    line-height: 1.25;
  }

  body.nv-app .navigea-tools-group-heading p {
    margin: 2px 0 0;
    color: #7a8497;
    font-size: 9px;
    line-height: 1.3;
  }

  body.nv-app .navigea-tools-links {
    display: grid;
    gap: 4px;
  }

  body.nv-app .navigea-tools-link {
    display: flex;
    min-height: 32px;
    align-items: center;
    justify-content: space-between;
    padding: 7px 9px;
    border-radius: 8px;
    color: #536078;
    background: #f7f8fb;
    font-size: 10.5px;
    font-weight: 750;
    line-height: 1.25;
    text-decoration: none;
  }

  body.nv-app .navigea-tools-link::after {
    content: "›";
    flex: 0 0 auto;
    margin-left: 8px;
    color: #929bad;
    font-size: 16px;
  }

  body.nv-app :is(.navigea-tools-home, .navigea-tools-link):hover {
    color: #263572;
    background: #eaedfa;
  }

  body.nv-app :is(.navigea-tools-home, .navigea-tools-link)[aria-current="page"] {
    color: #fff;
    background: #3d4f97;
  }

  body.nv-app .navigea-tools-link[aria-current="page"]::after {
    color: #fff;
  }
}

@media (min-width: 901px) and (max-width: 1699px) {
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-row {
    grid-template-areas: "welcome" "alerts" "performance" !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
    min-height: 0 !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-alerts {
    min-height: 152px !important;
    max-height: 152px !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-performance-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-shell {
    grid-template-columns: minmax(0, 1fr);
    width: min(700px, calc(100% - 24px));
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-feed-column {
    grid-column: 1;
    grid-row: 1;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-left-rail {
    position: static;
    grid-column: 1;
    grid-row: 2;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-right-rail {
    position: static;
    grid-column: 1;
    grid-row: 3;
  }
}

body.nv-app[data-nv-space="home"] .home-offer-heading {
  min-height: 44px !important;
  justify-content: space-between !important;
  padding: 6px 14px !important;
}

body.nv-app[data-nv-space="home"] .home-offer-heading > div:first-child {
  width: auto !important;
  min-width: 0;
  flex: 1 1 auto;
}

body.nv-app[data-nv-space="home"] .home-offer-heading-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

body.nv-app[data-nv-space="home"] .home-offer-manage {
  display: inline-flex;
  min-height: 32px !important;
  align-items: center;
  gap: 6px;
  padding: 0 12px !important;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 999px;
  color: #fff;
  background: rgba(255, 255, 255, .14);
  font-size: 10px !important;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}

body.nv-app[data-nv-space="home"] .home-offer-manage:hover {
  background: rgba(255, 255, 255, .24);
}

body.nv-app[data-nv-space="home"] .home-offer-manage[hidden] { display: none !important; }

body.nv-app[data-nv-space="home"] .home-social-section {
  margin-top: 12px;
  padding-top: 18px;
}

body.nv-app[data-nv-space="home"] .social-lightbox #lightboxContent {
  max-height: calc(100dvh - 76px);
  overflow: auto;
}

/* Module outliers aligned with the shared frame. */
body.nv-app .graphen-catalog,
body.nv-app .graphen-preview { min-height: clamp(430px, 58dvh, 650px); }

body.nv-app .graphen-table-wrap,
body.nv-app .graphen-empty-state { min-height: clamp(330px, 48dvh, 535px); }

body.nv-app .roles-heading,
body.nv-app .roles-section-heading { flex-wrap: wrap; }

body.nv-app .roles-tabs {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

body.nv-app .roles-main dialog {
  width: min(760px, calc(100vw - 28px));
  padding: clamp(18px, 3vw, 28px);
}

@media (max-width: 1240px) {
  body.nv-app :is(.dashboard-summary, .main-insights, .seller-layout, .account-performance-grid) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app :is(.graphen-layout, .dashsav-layout) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app .graphen-catalog { min-height: 0; }
  body.nv-app .graphen-dataset-list { max-height: 360px; }
}

@media (max-width: 1000px) {
  html { scroll-padding-top: 190px; }

  body.nv-app .nv-header-inner {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
  }

  body.nv-app .nv-brand { grid-column: 1; }
  body.nv-app .nv-header-inner > .nv-store-slot { grid-column: 2; }
  body.nv-app .nv-header-tools { grid-column: 3; }
  body.nv-app .nv-header-nav { grid-column: 1 / -1; }

  body.nv-app :is(.personal-layout, .notification-layout, .pac-planning, .product-offer-body) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app :is(
    .sales-admin-toolbar, .sales-table-toolbar, .financial-alert-toolbar,
    .user-admin-toolbar, .product-filters, .logistics-filters,
    .logistics-table-controls, .process-toolbar, .graphen-filters,
    .annual-builder, .vat-admin-form
  ) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.nv-app :is(
    .sales-admin-toolbar, .sales-table-toolbar, .financial-alert-toolbar,
    .user-admin-toolbar, .product-filters, .logistics-filters,
    .logistics-table-controls, .process-toolbar, .graphen-filters,
    .annual-builder, .vat-admin-form
  ) > :is(button, .primary-button, .secondary-button) {
    width: 100%;
  }

  body.nv-app[data-nv-space="home"] .home-summary-row {
    grid-template-rows: repeat(2, minmax(150px, auto)) !important;
  }

  body.nv-app[data-nv-space="home"] .social-left-rail,
  body.nv-app[data-nv-space="home"] .social-right-rail { top: 150px; }
}

@media (max-width: 760px) {
  :root { --nv-page-gutter: 12px; }
  html { scroll-padding-top: 16px; }

  body.nv-app > .nv-app-header { position: relative !important; }

  body.nv-app .nv-header-inner {
    grid-template-columns: 40px minmax(0, 1fr) 40px 40px !important;
    padding-inline: 12px !important;
  }

  body.nv-app .nv-header-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
  }

  body.nv-app .nv-space-menu,
  body.nv-app .nv-space-menu > summary { width: 100%; }

  body.nv-app .nv-space-menu[open] { grid-column: 1 / -1; }

  body.nv-app .nv-space-menu > summary {
    height: auto;
    min-height: 40px;
    justify-content: space-between;
    padding-inline: 9px;
    line-height: 1.2;
    white-space: normal;
  }

  body.nv-app .nv-space-links {
    position: static;
    top: auto;
    right: 12px;
    left: 12px;
    width: auto;
    margin-top: 6px;
    max-height: min(56dvh, 390px);
  }

  body.nv-app :is(.nv-page-heading, .sc-heading, .enterprise-heading, .workforce-heading, .roles-heading, .graphen-command) {
    align-items: stretch !important;
    flex-direction: column;
  }

  body.nv-app :is(.nv-page-heading, .sc-heading, .enterprise-heading, .workforce-heading, .roles-heading, .graphen-command) > * {
    flex: 0 1 auto !important;
  }

  body.nv-app :is(.nv-page-heading, .sc-heading, .enterprise-heading, .workforce-heading, .roles-heading) > :is(button, a) {
    width: 100%;
  }

  body.nv-app :is(
    .sales-admin-toolbar, .sales-table-toolbar, .financial-alert-toolbar,
    .user-admin-toolbar, .product-filters, .logistics-filters,
    .logistics-table-controls, .process-toolbar, .graphen-filters,
    .annual-builder, .vat-admin-form
  ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app :is(.roles-heading, .roles-section-heading, .dashsav-heading, .dashsav-panel-heading) {
    align-items: stretch;
  }

  body.nv-app :is(.roles-heading, .roles-section-heading) > button { width: 100%; }

  body.nv-app dialog {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
  }

  body.nv-app dialog > :is(form, .logistics-dialog-card, .critical-dialog-card, .product-dialog-card, .information-modal-card) {
    max-height: calc(100dvh - 16px);
  }

  body.nv-app dialog :is(.logistics-form-grid, .workforce-form-grid, .process-form-grid, .financial-alert-form-section) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app .information-banner-host {
    right: 10px !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    left: 10px;
    width: auto !important;
  }

  body.nv-app .navigea-notification-panel {
    top: 10px !important;
    right: 10px !important;
    bottom: max(10px, env(safe-area-inset-bottom));
    left: 10px !important;
    width: auto !important;
    max-height: none;
  }

  body.nv-app .navigea-notification-list { max-height: calc(100dvh - 96px); }

  body.nv-app[data-nv-space="home"] .home-summary-row {
    grid-template-rows: minmax(132px, auto) minmax(180px, auto) minmax(140px, auto) !important;
    min-height: 0 !important;
  }

  body.nv-app[data-nv-space="home"] .home-offer-heading {
    align-items: flex-start !important;
    flex-wrap: wrap;
  }

  body.nv-app[data-nv-space="home"] .home-offer-heading-actions {
    margin-left: auto;
  }

  body.nv-app[data-nv-space="home"] .home-summary-row .home-command-bar {
    min-height: 132px !important;
  }

  body.nv-app[data-nv-space="home"] .home-summary-alerts {
    min-height: 180px !important;
    max-height: 250px !important;
  }

  body.nv-app[data-nv-space="home"] .home-performance-overview {
    min-height: 140px !important;
  }

  body.nv-app[data-nv-space="home"] .social-left-rail,
  body.nv-app[data-nv-space="home"] .social-right-rail { position: static; }

  body.nv-app[data-nv-space="home"] .home-side-tools {
    max-height: none;
    overflow: visible;
  }

  body.nv-app[data-nv-space="home"] .home-side-tools .home-space.tool {
    grid-template-rows: auto auto !important;
    min-height: 174px !important;
  }

  body.nv-app[data-nv-space="home"] .home-social-section {
    margin-top: 10px;
    padding-top: 16px;
  }

  body.nv-app .validation-item {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app .validation-item > * { grid-column: auto !important; }
}

@media (max-width: 520px) {
  body.nv-app[data-nv-space="home"] .home-performance-overview {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app[data-nv-space="home"] .home-performance-overview .home-performance-card {
    min-height: 136px !important;
  }

  body.nv-app[data-nv-space="home"] .home-side-tools .home-workspaces {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app[data-nv-space="home"] .home-side-tools .home-space.tool {
    grid-template-rows: auto 40px !important;
    min-height: 136px !important;
  }

  body.nv-app[data-nv-space="home"] .home-side-tools .home-space-actions,
  body.nv-app[data-nv-space="home"] .home-side-tools .home-space-actions-triple {
    flex-direction: row !important;
  }

  body.nv-app[data-nv-space="home"] .home-side-tools .home-space-actions a,
  body.nv-app[data-nv-space="home"] .home-side-tools .home-space-actions-triple a {
    width: auto !important;
    flex: 1 1 0 !important;
  }

  body.nv-app .planning-kpis,
  body.nv-app .permission-checks { grid-template-columns: minmax(0, 1fr) !important; }

  body.nv-app dialog footer {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app dialog footer :is(button, a) { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  body.nv-app *,
  body.nv-app *::before,
  body.nv-app *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media print {
  body.nv-app { overflow: visible; }
  body.nv-app :is(.information-banner-host, .navigea-notification-center, dialog) { display: none !important; }
  body.nv-app :is([class*="table-wrap"], .table-scroll, .planning-board-scroll) { overflow: visible !important; }
}

/* Accueil recentré : pilotage en haut, fil d’actualité au centre. */
body.nv-app[data-nv-space="home"] .home-command-layout {
  padding-top: 16px !important;
}

body.nv-app[data-nv-space="home"] .home-top-kanban {
  gap: 14px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row {
  grid-template-areas:
    "welcome performance"
    "alerts alerts" !important;
  grid-template-columns: minmax(250px, .72fr) minmax(480px, 1.28fr) !important;
  grid-template-rows: minmax(140px, auto) minmax(156px, auto) !important;
  gap: 14px !important;
  min-height: 0 !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row .home-command-bar {
  grid-area: welcome;
  min-height: 140px !important;
  padding: 22px 24px !important;
  border-radius: 20px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts {
  grid-area: alerts;
  grid-template-rows: 54px minmax(0, 1fr) !important;
  min-height: 156px !important;
  max-height: 230px !important;
}

body.nv-app[data-nv-space="home"] .home-summary-alerts > header {
  min-height: 54px !important;
  padding: 10px 16px !important;
}

body.nv-app[data-nv-space="home"] .home-performance-overview {
  grid-area: performance;
  min-height: 140px !important;
}

body.nv-app[data-nv-space="home"] .home-performance-overview .home-performance-card {
  min-height: 138px !important;
  padding: 15px 18px !important;
}

body.nv-app[data-nv-space="home"] .home-offer-card {
  min-height: 0 !important;
}

body.nv-app[data-nv-space="home"] .home-planning-disclosure {
  width: 100%;
  margin: 0 !important;
  overflow: hidden;
  border: 1px solid var(--home-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(28, 39, 69, .055);
}

body.nv-app[data-nv-space="home"] .home-planning-disclosure > summary {
  min-height: 58px;
  padding: 10px 16px;
}

body.nv-app[data-nv-space="home"] .home-planning-disclosure > summary > span > strong {
  font-size: 17px;
}

body.nv-app[data-nv-space="home"] .home-planning-disclosure > summary small {
  font-size: 11px;
}

body.nv-app[data-nv-space="home"] .home-social-section {
  margin-top: 18px;
  padding-top: 22px;
}

@media (min-width: 1250px) {
  body.nv-app[data-nv-space="home"] .social-shell {
    grid-template-columns: minmax(180px, 215px) minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 22px !important;
  }

  body.nv-app[data-nv-space="home"] .social-feed-column {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  body.nv-app[data-nv-space="home"] .social-left-rail {
    position: sticky;
    grid-column: 1;
    grid-row: 1;
  }

  body.nv-app[data-nv-space="home"] .social-right-rail {
    position: static;
    grid-column: 1;
    grid-row: 2;
  }
}

body.nv-app .navigea-tools-group.is-current-universe {
  border-color: #9ca9dc !important;
  background: linear-gradient(145deg, #f8f9ff 0%, #eef1fc 100%) !important;
  box-shadow: inset 3px 0 #3d4f97, 0 7px 20px rgba(42, 56, 116, .12) !important;
}

body.nv-app .navigea-tools-group.is-current-universe .navigea-tools-group-heading > span {
  color: #fff !important;
  background: #3d4f97 !important;
}

body.nv-app .navigea-tools-group.is-current-universe .navigea-tools-group-heading h3 {
  color: #3d4f97 !important;
}

@media (min-width: 901px) and (max-width: 1499px) {
  body.nv-app[data-nv-space="home"] .home-summary-row {
    grid-template-areas: "welcome" "performance" "alerts" !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
  }

  body.nv-app[data-nv-space="home"] .home-summary-row .home-command-bar {
    min-height: 118px !important;
  }

  body.nv-app[data-nv-space="home"] .home-summary-alerts {
    min-height: 164px !important;
    max-height: 220px !important;
  }
}

@media (max-width: 1100px) {
  body.nv-app[data-nv-space="home"] .home-performance-overview {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app[data-nv-space="home"] .home-performance-overview .home-performance-card + .home-performance-card {
    border-top: 1px solid var(--home-line) !important;
    border-left: 0 !important;
  }
}

@media (min-width: 761px) and (max-width: 900px) {
  body.nv-app[data-nv-space="home"] .home-summary-row {
    grid-template-areas: "welcome alerts" "performance performance" !important;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .9fr) !important;
    grid-template-rows: auto auto !important;
  }

  body.nv-app[data-nv-space="home"] .home-performance-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.nv-app[data-nv-space="home"] .home-performance-overview .home-performance-card + .home-performance-card {
    border-top: 0 !important;
    border-left: 1px solid var(--home-line) !important;
  }
}

@media (max-width: 760px) {
  body.nv-app[data-nv-space="home"] .home-summary-row {
    grid-template-areas: "welcome" "performance" "alerts" !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
    min-height: 0 !important;
  }

  body.nv-app[data-nv-space="home"] .home-summary-row .home-command-bar {
    min-height: 112px !important;
  }

  body.nv-app[data-nv-space="home"] .home-summary-alerts {
    min-height: 180px !important;
    max-height: 260px !important;
  }

  body.nv-app[data-nv-space="home"] .home-planning-disclosure > summary {
    align-items: flex-start;
    gap: 10px;
  }

  body.nv-app[data-nv-space="home"] .home-planning-disclosure > summary small {
    display: none;
  }
}

/* Les deux rails réduisent la largeur utile : ces règles ont volontairement
   une spécificité supérieure aux anciens réglages de l’accueil. */
@media (min-width: 901px) {
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-row {
    grid-template-areas:
      "welcome performance"
      "alerts alerts" !important;
    grid-template-columns: minmax(250px, .72fr) minmax(480px, 1.28fr) !important;
    grid-template-rows: minmax(140px, auto) minmax(156px, auto) !important;
    min-height: 0 !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-alerts {
    min-height: 156px !important;
    max-height: 230px !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-performance-overview {
    min-height: 140px !important;
  }
}

@media (min-width: 901px) and (max-width: 1499px) {
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-row {
    grid-template-areas: "welcome" "alerts" "performance" !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-alerts {
    min-height: 164px !important;
    max-height: 220px !important;
  }
}

@media (min-width: 901px) and (max-width: 1100px) {
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-performance-overview {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-performance-overview .home-performance-card + .home-performance-card {
    border-top: 1px solid var(--home-line) !important;
    border-left: 0 !important;
  }
}

@media (min-width: 1250px) {
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-shell {
    grid-template-columns: minmax(180px, 215px) minmax(0, 1fr) !important;
    width: 100% !important;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-feed-column {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-left-rail {
    position: sticky;
    grid-column: 1;
    grid-row: 1;
  }

  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .social-right-rail {
    position: static;
    grid-column: 1;
    grid-row: 2;
  }
}

/* Accueil allégé : pilotage utile, puis fil d’actualité sans blocs intermédiaires. */
body.nv-app[data-nv-space="home"] .home-summary-row,
body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-row {
  grid-template-areas: "welcome" "performance" !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  min-height: 0 !important;
}

body.nv-app[data-nv-space="home"] .home-summary-row .home-command-bar {
  width: 100% !important;
  min-height: 112px !important;
}

@media (min-width: 761px) {
  body.nv-app[data-nv-space="home"] .home-performance-overview,
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-performance-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.nv-app[data-nv-space="home"] .home-performance-overview .home-performance-card + .home-performance-card,
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-performance-overview .home-performance-card + .home-performance-card {
    border-top: 0 !important;
    border-left: 1px solid var(--home-line) !important;
  }
}

body.nv-app[data-nv-space="home"] .home-social-section {
  margin-top: 6px !important;
  padding-top: 14px !important;
}

@media (max-width: 900px) {
  body.nv-app[data-nv-space="home"] .home-summary-row,
  body.nv-app[data-nv-space="home"].has-navigea-tools-rail .home-summary-row {
    grid-template-areas: "welcome" "performance" !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
  }
}
