/* Coque applicative plein écran : la zone de travail occupe tout l'espace
   disponible sous la navigation, sans limiter la largeur de la carte. */
.page-shell.app-container {
  width: 100%;
  max-width: none;
  padding-top: 0;
}

.page-shell .hero {
  display: none !important;
}

.page-shell .workspace {
  width: 100%;
  min-height: calc(100vh - 80px);
  margin: 0;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
}

.workspace-tabs-wrap {
  position: relative;
  z-index: 800;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 6px 20px rgba(16, 42, 67, .05);
  backdrop-filter: blur(16px);
}

#route-pane .route-grid {
  height: calc(100vh - 161px);
  min-height: 560px;
  grid-template-columns: minmax(390px, 440px) minmax(0, 1fr);
}

#route-pane .route-sidebar {
  height: 100%;
  max-height: none;
  overscroll-behavior: contain;
}

#route-pane .map-panel,
#route-pane .map {
  height: 100%;
  min-height: 0;
  border-radius: 0;
}

/* Les autres outils conservent eux aussi le fond pleine largeur, sans forcer
   leur contenu à tenir dans une hauteur fixe. */
#stop-pane .tool-layout,
#line-pane .tool-layout {
  min-height: calc(100vh - 161px);
}

.app-footer {
  width: 100%;
  max-width: none;
  padding: 18px 28px;
  background: #f5f8f6;
}

@media (max-width: 860px) {
  .page-shell.app-container {
    width: 100%;
  }

  #route-pane .route-grid {
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr;
  }

  #route-pane .route-sidebar {
    height: auto;
    overflow: visible;
  }

  #route-pane .map-panel,
  #route-pane .map {
    height: 58vh;
    min-height: 440px;
  }

  #stop-pane .tool-layout,
  #line-pane .tool-layout {
    min-height: 0;
  }
}

@media (max-width: 600px) {
  .page-shell .workspace {
    min-height: calc(100vh - 68px);
    border-radius: 0;
  }

  #route-pane .map-panel,
  #route-pane .map {
    height: 52vh;
    min-height: 360px;
  }

  .app-footer {
    padding: 16px 18px;
  }
}
