/* ===========================================================================
   gom-rail.css — Nextgen Stage C : sidebar repliable en rail d'icônes (desktop).
   Additif, réversible. Toggle persistant (localStorage 'gomRail'). Pattern
   « rail + expansion au survol » : 70px icônes → survol = 264px labels, en
   OVERLAY (le contenu principal ne bouge pas). Rien ci-dessous ne s'applique
   ≤900px (le mobile utilise le drawer, intact).
   =========================================================================== */

.gom-rail-toggle { display: none; }  /* caché par défaut (mobile) */

@media (min-width: 901px) {
  /* --- bouton toggle dans le header de la sidebar --- */
  .gom-rail-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; margin-left: auto; padding: 0;
    background: transparent; border: 1px solid var(--border-subtle);
    border-radius: 8px; color: var(--fg-3); cursor: pointer;
    transition: color var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast);
  }
  .gom-rail-toggle:hover, .gom-rail-toggle:focus-visible {
    color: var(--color-amber-300); border-color: var(--border-amber); background: var(--surface-raised);
  }
  .gom-rail-toggle svg { transition: transform .2s var(--ease-out, ease); }
  .gom-rail .gom-rail-toggle svg { transform: rotate(180deg); }  /* chevron → déplier */

  /* --- grille repliée : colonne sidebar = 70px --- */
  .app-shell.gom-rail { grid-template-columns: 70px 1fr !important; }

  /* --- la sidebar : 70px, s'élargit en overlay au survol --- */
  .gom-rail .sidenav {
    width: 70px; z-index: 60;
    transition: width .2s var(--ease-out, ease), box-shadow .2s var(--ease-out, ease);
  }
  .gom-rail .sidenav:hover {
    width: var(--shell-rail-w, 264px);
    box-shadow: 16px 0 48px -12px rgba(0,0,0,.7);
  }

  /* --- repliée (hors survol) : icônes seules, centrées --- */
  .gom-rail .sidenav:not(:hover) .navitem-label,
  .gom-rail .sidenav:not(:hover) .navcat-label,
  .gom-rail .sidenav:not(:hover) .navcat-arrow { display: none; }
  .gom-rail .sidenav:not(:hover) .navitem,
  .gom-rail .sidenav:not(:hover) .navcat-header { justify-content: center; gap: 0; padding-left: 0; padding-right: 0; }
  .gom-rail .sidenav:not(:hover) .sidenav-brand { font-size: 0; justify-content: center; }  /* masque le texte, garde le logo (img non affecté par font-size) */
  .gom-rail .sidenav:not(:hover) .sidenav-brand img { font-size: 0; }
  .gom-rail .sidenav .navitem, .gom-rail .sidenav .navcat-header { overflow: hidden; white-space: nowrap; }

  /* le bouton ✕ (fermeture drawer) n'a pas de sens sur desktop → masqué */
  .sidenav-close { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .gom-rail .sidenav, .gom-rail-toggle svg { transition-duration: .01ms; }
}
