/* SignalNids Rando — Mobile bord à bord. Aucun changement de fonctionnement.
 * Chargé en DERNIER depuis app/layout.php ; desktop, GPS Live et balises Leaflet préservés.
 * Objectifs : pleine largeur, surfaces à angles droits, lecture et interactions simples.
 */
@media screen and (max-width: 767px) {
  :root { --sn-edge-gutter: 14px; --sn-edge-ink: #164b34; --sn-edge-line: #dfe8df; --sn-edge-surface: #ffffff; }
  *, *::before, *::after { box-sizing: border-box; }
  html { width:100%; max-width:100%; overflow-x:clip; -webkit-text-size-adjust:100%; }
  body:not(.snr-live-body) {
    width:100%; min-width:0; max-width:100%; margin:0;
    overflow-x:clip; background:#f7f9f6;
    -webkit-tap-highlight-color:transparent;
  }
  body:not(.snr-live-body) .site-shell,
  body:not(.snr-live-body) .site-shell > main {
    width:100%; min-width:0; max-width:none; margin-inline:0;
  }
  /* Les conteneurs occupent toute la largeur, avec 14px pour garder les textes lisibles. */
  body:not(.snr-live-body) .site-shell .wrap,
  body:not(.snr-live-body) .site-shell .snrp-body,
  body:not(.snr-live-body) .site-shell .snr250-body,
  body:not(.snr-live-body) .site-shell .snr260-body,
  body:not(.snr-live-body) .site-shell .snr270-body {
    box-sizing:border-box; width:100%; max-width:none;
    padding-left:var(--sn-edge-gutter)!important;
    padding-right:var(--sn-edge-gutter)!important;
    margin-left:0; margin-right:0;
  }
  body:not(.snr-live-body) .site-shell :is(.snr300-grid,.snr300-primary,.snr300-secondary,
    .snr310-community-home,.snr310-featured-section,.sn-community-content,
    .sn-browse-main,.sn-browse-cards,.sn-editor-grid,.sn-map-page-body,
    .snr250-grid,.snr260-grid,.snr270-grid,.snr230-grid,.route-layout,
    .sn-detail-layout,.sn-detail-left,.sn-detail-side,.snr190-layout,
    .snr290-layout,.snrp-grid) {
      min-width:0; max-width:100%; width:100%;
    }
  body:not(.snr-live-body) .site-shell :is(img,video,canvas,iframe,svg) {max-width:100%;}

  /* Header natif/PWA : logo, menu, aucune marge extérieure ni capsule flottante. */
  body:not(.snr-live-body) .topbar {
    position:sticky; top:0; left:0; right:0;
    width:100%; max-width:none; margin:0; border-radius:0!important;
    background:rgba(255,255,255,.98); z-index:800;
    border-bottom:1px solid var(--sn-edge-line);
  }
  body:not(.snr-live-body) .topbar .topbar-inner {
    width:100%; max-width:none; min-height:64px; height:64px;
    gap:10px; padding-inline:var(--sn-edge-gutter)!important;
  }
  body:not(.snr-live-body) .topbar .brand {max-width:calc(100% - 62px); min-width:0; gap:8px;}
  body:not(.snr-live-body) .topbar .brand-title {font-size:clamp(16px,4.45vw,22px);white-space:nowrap;letter-spacing:-.035em;}
  body:not(.snr-live-body) .topbar .brand-symbol,
  body:not(.snr-live-body) .topbar .brand-symbol .icon {width:34px;height:34px;flex-shrink:0;}
  body:not(.snr-live-body) .topbar .nav-toggle {
    min-width:46px; min-height:46px; width:46px; height:46px;
    border:0; border-radius:0!important;
    background:#eaf3ed; color:#15513a;
    display:grid;place-items:center;line-height:1;
  }
  body:not(.snr-live-body) .topbar .nav {
    top:64px; left:0; right:0; width:100%; max-width:100%;
    max-height:calc(100dvh - 64px - 78px); overflow-y:auto;
    border-radius:0!important; box-shadow:0 12px 24px rgba(15,54,34,.11);
    padding:10px var(--sn-edge-gutter) 18px;
  }
  body:not(.snr-live-body) .topbar .nav a {
    border-radius:0!important; min-height:44px;
    display:flex; align-items:center;
  }

  /* Héros nature bord à bord : aucune bande blanche latérale. */
  body:not(.snr-live-body) .site-shell :is(.sn-hero,.hero,.sn-detail-hero,.sn-editor-head,
    .sn-interior-hero,.sn-community-hero,.sn-unified-hero,
    .snr250-hero,.snr260-hero,.snr270-hero,.snrp-hero) {
      box-sizing:border-box; width:100%; min-width:0; max-width:none;
      margin-left:0; margin-right:0; border-radius:0!important;
    }
  body:not(.snr-live-body) .site-shell :is(.sn-hero-inner,.sn-detail-hero-inner,
    .sn-editor-head-inner,.snr250-hero-inner) {
      width:100%; max-width:none;
      padding-left:var(--sn-edge-gutter)!important;
      padding-right:var(--sn-edge-gutter)!important;
    }
  body:not(.snr-live-body) .site-shell :is(.sn-interior-hero,.sn-community-hero,
    .sn-unified-hero,.snr250-hero,.snr260-hero,.snr270-hero,.snrp-hero) > .wrap {
      padding-inline:var(--sn-edge-gutter)!important;
    }
  body:not(.snr-live-body) .site-shell :is(.sn-detail-hero,.sn-unified-hero,
    .sn-interior-hero,.sn-community-hero,.snr250-hero,.snr260-hero,.snr270-hero) h1 {
      max-width:100%; overflow-wrap:break-word;
    }

  /* Cartes et sections : angles droits, traits fins, ombres presque absentes. */
  body:not(.snr-live-body) .site-shell :is(
    .sn-panel,.snr300-card,.snr300-badge,.snr300-route-card,.snr300-check,
    .snr300-plan-link,.snr300-tabs a,.snr300-count,.snr300-info-band,
    .snr310-home-intro,.snr310-home-topics,.snr310-home-topic,
    .snr310-topic-card,.snr310-no-topics,.snr310-community-shortcuts a,
    .snr290-composer,.snr290-post,.snr290-feed,.snr290-card,
    .snr250-card,.snr260-panel,.snr270-card,.snr230-panel,.snrp-card,
    .snr240-panel,.snr240-warning,.sn-filter-bar,.sn-filter-sidebar,
    .sn-full-map-card,.sn-browse-map,.sn-trail-card,.sn-editor-map-frame,
    .sn-detail-facts,.sn-route-description,.sn-follow-card,.sn-quote,
    .snr190-section,.snr190-stat,.snr190-hero,.snr190-tools,
    .snr300-overview > *, .sn-quick-dialog,.auth-card,.metric-card,
    .notice,.sn-home-grid > *, .sn-mini-card,.sn-region-card,
    .sn184-scroll > *, .snr250-warning,.snr260-info,.snr270-notice
  ) {
      border-radius:0!important;
      box-shadow:none!important;
      min-width:0;
    }
  body:not(.snr-live-body) .site-shell :is(.sn-panel,.snr300-card,
    .snr250-card,.snr260-panel,.snr270-card,.snr230-panel,.snrp-card,
    .snr290-composer,.snr310-home-topics,.snr310-home-intro,.snr190-section) {
      max-width:100%;
      border-color:var(--sn-edge-line);
    }
  /* Étendre les blocs principaux sur la largeur utile ; éviter les cartes étroites centrées. */
  body:not(.snr-live-body) .site-shell :is(.snr300-container,.snr290-layout,
    .sn-community-content,.sn-detail-layout,.sn-map-page-body,
    .sn-editor-content,.sn-browse-main,.snr230-page) {
      box-sizing:border-box; max-width:100%; width:100%;
      margin-left:0; margin-right:0;
    }
  body:not(.snr-live-body) .site-shell :is(.snr300-grid,.snr250-grid,.snr260-grid,
    .snr270-grid,.snr230-grid,.snr290-layout,.sn-browse-main,.sn-detail-layout) {
      grid-template-columns:minmax(0,1fr)!important;
      gap:14px;
    }
  body:not(.snr-live-body) .site-shell :is(.snr300-card,.snr250-card,
    .snr260-panel,.snr270-card,.snr230-panel,.snr240-panel) {
      padding:16px!important;
    }
  body:not(.snr-live-body) .site-shell :is(.snr310-community-home,.snr310-featured-section) {
      padding-inline:0!important;
    }
  body:not(.snr-live-body) .site-shell :is(.snr310-home-topic,.snr310-topic-card) {
      border-radius:0!important;
    }

  /* Tous les champs à la même largeur ; pas de zoom automatique sur saisie. */
  body:not(.snr-live-body) .site-shell :is(input:not([type="checkbox"]):not([type="radio"]),
    textarea,select,.snr240-controls > button,button:not(.sn-bottom-add),
    .btn,.snrp-btn,.snr300-quick-links a,.snr290-action,.snr300-plan-actions a) {
      border-radius:0!important;
      max-width:100%; min-width:0;
    }
  body:not(.snr-live-body) .site-shell :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) {
      box-sizing:border-box; font-size:16px!important;
    }
  body:not(.snr-live-body) .site-shell :is(.btn,button:not(.sn-bottom-add),
    .snrp-btn,.snr300-tabs a,.snr310-community-shortcuts a) {
      touch-action:manipulation;
    }
  body:not(.snr-live-body) .site-shell :is(.snr300-form,.snr250-form,.snr270-form) {max-width:100%; min-width:0;}
  body:not(.snr-live-body) .site-shell :is(.snr300-form,.snr250-form,.snr270-form) > *,
  body:not(.snr-live-body) .site-shell :is(.snr300-field-row,.snr240-controls) > * {min-width:0;}
  body:not(.snr-live-body) .site-shell :is(.snr300-progress,.snr300-progress > span,
    .snr300-badge-icon,.snr300-meter,.snr300-meter > span,
    .snr310-community-shortcuts a,.snr290-progress,.snr290-progress > span) {
      border-radius:0!important;
    }

  /* Moins de boutons visibles : actions de la fiche en ruban à glisser. */
  body:not(.snr-live-body) .sn-detail .sn-detail-hero-actions {
      display:flex!important; flex-direction:row!important;
      flex-wrap:nowrap!important; align-items:stretch;
      width:100%; max-width:100%; min-width:0;
      gap:8px!important; padding:0 0 10px!important;
      overflow-x:auto!important; overflow-y:hidden;
      scroll-snap-type:x proximity; overscroll-behavior-inline:contain;
      -webkit-overflow-scrolling:touch; scrollbar-width:none;
    }
  body:not(.snr-live-body) .sn-detail .sn-detail-hero-actions::-webkit-scrollbar {display:none;}
  body:not(.snr-live-body) .sn-detail .sn-detail-hero-actions > .btn {
      flex:0 0 min(72vw,270px)!important; width:auto!important;
      max-width:270px!important; min-width:0!important;
      min-height:50px; padding:10px 13px!important;
      scroll-snap-align:start; text-align:center;
      font-size:clamp(12px,3.3vw,14px)!important;
      line-height:1.35; border-radius:0!important;
    }
  body:not(.snr-live-body) .sn-detail .sn-detail-hero-actions > .btn:first-child {
      border-left:3px solid #91d4ac;
    }
  /* Onglets secondaires / Défis : sliders accessibles au doigt, sans étirer la page. */
  body:not(.snr-live-body) .site-shell :is(.snr300-tabs,.snr310-community-shortcuts,
    .snr300-quick-links) {
      display:flex; flex-wrap:nowrap!important; min-width:0; max-width:100%;
      overflow-x:auto; overflow-y:hidden; gap:8px;
      -webkit-overflow-scrolling:touch; scrollbar-width:none;
      scroll-snap-type:x proximity; overscroll-behavior-inline:contain;
    }
  body:not(.snr-live-body) .site-shell :is(.snr300-tabs,.snr310-community-shortcuts,
    .snr300-quick-links)::-webkit-scrollbar {display:none;}
  body:not(.snr-live-body) .site-shell :is(.snr300-tabs,.snr310-community-shortcuts,
    .snr300-quick-links) > * {flex:0 0 auto;scroll-snap-align:start;}
  body:not(.snr-live-body) .site-shell .snr310-challenge-slider {max-width:100%;min-width:0;}
  body:not(.snr-live-body) .site-shell .snr310-challenge-slider > .snr300-badge {
      border-radius:0!important;
    }
  body:not(.snr-live-body) .site-shell .sn-hero-buttons {gap:10px;}
  body:not(.snr-live-body) .site-shell .sn-hero-buttons > :is(a,button) {
      box-sizing:border-box; width:100%; min-height:48px; border-radius:0!important;
    }

  /* Barre inférieure conservée : affleurante au bord, seule l'icône + reste ronde. */
  body:not(.snr-live-body) .sn-bottom-nav {
      position:fixed!important; left:0!important; right:0!important; bottom:0!important;
      box-sizing:border-box; width:100%!important; max-width:none!important;
      margin:0!important; border-radius:0!important;
      padding-bottom:max(5px,env(safe-area-inset-bottom,0px));
      border-top:1px solid var(--sn-edge-line); background:#fff;
      z-index:805;
    }
  body:not(.snr-live-body) .sn-bottom-nav > :is(a,button) {
      min-width:0; border-radius:0!important; white-space:normal;
      font-size:11px; line-height:1.2;
    }
  body:not(.snr-live-body) .sn-bottom-nav .sn-add-circle {
      border-radius:50%!important; flex-shrink:0;
    }
  body:not(.snr-live-body) .site-shell main {
      padding-bottom:calc(90px + env(safe-area-inset-bottom,0px));
    }
  body:not(.snr-live-body) .sn-quick-dialog {
      width:100%; max-width:100%; border-radius:0!important;
    }

  /* Interactions lisibles et accessibles sur téléphone. */
  body:not(.snr-live-body) .site-shell :is(a,button,input,textarea,select):focus-visible {
      outline:3px solid #2c8d61!important; outline-offset:2px;
    }
  body:not(.snr-live-body) .site-shell :is(p,h1,h2,h3,h4,strong,label,small) {
      overflow-wrap:break-word;
    }
  body:not(.snr-live-body) .site-shell table {max-width:100%;}
  body:not(.snr-live-body) .site-shell :is(.leaflet-container,#routeMap,#snr230Map,
    .sn-full-map,.sn-route-map,.sn-browse-map) {max-width:100%;}
  /* Conserver leur vraie géométrie : avatars, repères GPS, pastilles de carte. */
  body:not(.snr-live-body) .site-shell :is(.avatar,.snr290-avatar,.snr300-avatar,
    .custom-pin > span,.leaflet-marker-icon,.leaflet-div-icon,.sn-add-circle) {
      border-radius:50%!important;
    }
}
@media screen and (max-width: 360px) {
  :root { --sn-edge-gutter: 11px; }
  body:not(.snr-live-body) .topbar .brand-title {font-size:16px;}
  body:not(.snr-live-body) .site-shell :is(.snr300-card,.snr250-card,.snr260-panel,.snr270-card) {
    padding:13px!important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.snr-live-body) .site-shell :is(.sn-detail-hero-actions,.snr300-tabs,
    .snr310-community-shortcuts) {scroll-behavior:auto!important;}
}
