:root{
      --yellow:#f4b400;
      --yellow2:#ffd666;
      --bg:#f5f5f8;
      --card:#fff;
      --text:#111827;
      --muted:#4b5563;
      --border:rgba(17,24,39,.10);
      --shadow:0 10px 26px rgba(0,0,0,.06);
      --radius:16px;
      --pageMax:1200px;
      --gutter:clamp(14px,3.2vw,44px);
      --searchH:36px;
      --topPadY:10px;
      --topbarH:46px;
    }

    *{box-sizing:border-box;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;}
    html,body{width:100%;min-height:100%;overflow-x:hidden;}
    html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
    body{background:var(--bg);color:var(--text);line-height:1.6;padding-top:var(--topbarH);}
    a{color:inherit;text-decoration:none;}
    input,select,textarea,button{font:inherit;}
    button{touch-action:manipulation;}
    strong{font-weight:900;}

    @media(max-width:520px){:root{--searchH:40px;--topPadY:6px;--topbarH:52px;}}

    .topbar{position:fixed;top:0;left:0;right:0;width:100%;z-index:5000;background:#000;color:#fff;border-bottom:1px solid rgba(255,255,255,.14);padding-top:env(safe-area-inset-top);}
    .topbar-inner{max-width:var(--pageMax);margin:0 auto;padding:6px calc(var(--gutter) + env(safe-area-inset-right)) 6px calc(var(--gutter) + env(safe-area-inset-left));display:flex;align-items:center;gap:12px;min-width:0;overflow:visible;}
    .brand{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0;}
    .brand img{width:38px;height:38px;object-fit:contain;display:block;filter:drop-shadow(0 2px 10px rgba(0,0,0,.25));}
    .brand-txt{display:flex;flex-direction:column;gap:2px;line-height:1.05;min-width:0;}
    .brand-txt .t1{font-weight:900;letter-spacing:.22em;text-transform:uppercase;font-size:.92rem;white-space:nowrap;}
    .brand-txt .t2{font-weight:900;letter-spacing:.28em;text-transform:uppercase;font-size:.70rem;color:var(--yellow);white-space:nowrap;}
    @media(max-width:720px){.brand-txt{display:none}.brand img{width:34px;height:34px;}}

    .top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:1 1 auto;min-width:0;}
    .search{display:flex;align-items:center;gap:8px;height:var(--searchH);padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#0d0d0d;flex:1 1 auto;min-width:0;max-width:360px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);}
    .search i{color:#d1d5db;font-size:14px;flex:0 0 auto;}
    .search input{appearance:none;-webkit-appearance:none;border:none!important;outline:none!important;background:transparent!important;color:#d1d5db;font-weight:500;font-size:14px;width:100%;min-width:0;box-shadow:none!important;}
    .search input::placeholder{color:#9ca3af;font-weight:500;}
    .search button{width:28px;height:28px;border-radius:10px;border:none;background:transparent;color:#d1d5db;cursor:pointer;display:none;place-items:center;opacity:.92;flex:0 0 auto;}
    .search.has-text button{display:grid;}
    .burger{width:42px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;flex:0 0 auto;}
    .burger:hover{transform:translateY(-1px);background:rgba(255,255,255,.10);border-color:rgba(244,180,0,.35);}
    @media(max-width:520px){.burger{height:44px;width:46px;border-radius:12px;}}

    .overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:5500;}
    .overlay.open{opacity:1;pointer-events:auto;}
    .drawer{position:fixed;top:0;right:0;width:min(380px,92vw);height:100vh;background:radial-gradient(circle at top left,#2a2a2a 0,#141414 45%,#0b0b0b 100%);border-left:1px solid rgba(255,255,255,.10);box-shadow:-10px 0 30px rgba(0,0,0,.35);transform:translateX(110%);transition:transform .20s ease;z-index:6000;display:flex;flex-direction:column;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);}
    .drawer.open{transform:translateX(0);}
    .drawer-hd{padding:16px 16px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(255,255,255,.10);}
    .drawer-title{display:flex;flex-direction:column;gap:6px;}
    .drawer-title .small{font-size:.70rem;letter-spacing:.22em;text-transform:uppercase;opacity:.9;color:#fff;}
    .drawer-brand{display:flex;align-items:center;gap:10px;}
    .drawer-brand img{width:34px;height:34px;object-fit:contain;display:block;filter:drop-shadow(0 2px 12px rgba(0,0,0,.35));}
    .drawer-brand .txt{display:flex;flex-direction:column;line-height:1.05;}
    .drawer-brand .txt .t1{font-size:.86rem;letter-spacing:.22em;text-transform:uppercase;font-weight:900;color:#fff;white-space:nowrap;}
    .drawer-brand .txt .t2{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;font-weight:900;color:var(--yellow);white-space:nowrap;}
    .drawer-close{width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;cursor:pointer;}
    .drawer-bd{padding:14px 14px 18px;overflow:auto;-webkit-overflow-scrolling:touch;}
    .drawer-nav{display:flex;flex-direction:column;gap:10px;}
    .drawer-sep{margin:10px 2px 6px;height:1px;background:rgba(255,255,255,.10);}
    .drawer-label{margin:8px 2px 10px;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:900;color:rgba(255,255,255,.78);}
    .drawer-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#fff;font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;}
    .drawer-link:hover{border-color:rgba(244,180,0,.30);background:rgba(255,255,255,.08);}
    .drawer-link.active{border-color:rgba(244,180,0,.55);background:rgba(244,180,0,.16);}
    .drawer-link i{color:var(--yellow);flex:0 0 auto;}
    .drawer-link>span{flex:1 1 auto;min-width:0;}
    .drawer-block{margin-top:14px;padding:14px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.18);color:#fff;}
    .drawer-block .lbl{font-size:.70rem;letter-spacing:.22em;text-transform:uppercase;font-weight:900;opacity:.9;margin-bottom:10px;display:block;}
    .drawer-langs{display:flex;gap:8px;flex-wrap:wrap;}
    .drawer-langs a{width:46px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:#fff;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);}
    .drawer-langs a.active{border-color:rgba(244,180,0,.55);background:rgba(244,180,0,.16);color:var(--yellow);}

    .hero{background:radial-gradient(circle at top left,#333 0,#111 40%,#000 100%);color:#fff;padding:26px 0 44px;margin-top:0;}

    /* Correction : supprime la bande blanche entre la topbar fixe et le hero */
    .topbar + .overlay + .drawer + .hero,
    .hero{
      margin-top:0;
    }

    .hero-inner{max-width:var(--pageMax);margin:0 auto;padding:24px var(--gutter) 0;text-align:center;position:relative;}
    .hero-title--stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;}
    .hero-title-main{font-size:clamp(2.1rem,4vw,3rem);letter-spacing:.25em;text-transform:uppercase;font-weight:900;line-height:1.05;padding-left:.25em;}
    .hero-title-country{font-size:1rem;letter-spacing:.30em;text-transform:uppercase;font-weight:900;color:#fff;opacity:.95;padding-left:.30em;}
    .hero-line{height:3px;width:240px;background:var(--yellow);margin:14px auto 12px;border-radius:999px;}
    .hero-statement{max-width:980px;margin:0 auto;padding:0 10px;font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;color:var(--yellow);font-weight:600;line-height:1.55;opacity:.98;}

    .wrap{padding:22px 0 0;}
    .page{max-width:var(--pageMax);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:1fr;gap:18px;min-width:0;}
    .panel{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;position:relative;min-width:0;}
    .panel:before{content:"";position:absolute;top:0;left:0;height:4px;width:100%;background:linear-gradient(to right,var(--yellow),var(--yellow2));}
    .panel-hd{padding:16px 18px 12px;border-bottom:1px solid var(--border);}
    .panel-bd{padding:16px 18px 18px;}
    .kicker{display:inline-flex;align-items:center;gap:8px;font-size:.70rem;letter-spacing:.20em;text-transform:uppercase;font-weight:900;color:#111827;background:#f3f4f6;border:1px solid var(--border);padding:7px 12px;border-radius:999px;}
    .panel-hd h2{margin-top:10px;font-size:1.10rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900;}
    .panel-hd p{margin-top:6px;color:var(--muted);font-size:.95rem;}
    .va-panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:10px;}
    .va-panel-title-row h2{margin-top:0;flex:1 1 auto;min-width:0;}
    .va-flight-lite-header-badge{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;border-radius:999px;border:1px solid rgba(244,180,0,.55);background:#111827;color:var(--yellow);padding:8px 13px;font-size:.70rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;box-shadow:0 8px 18px rgba(0,0,0,.12);}
    .va-flight-lite-header-badge i{color:var(--yellow);font-size:.78rem;}
    .va-flight-lite-header{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto;}
    .va-flight-lite-subtitle{color:#6b7280;font-size:.76rem;font-weight:850;line-height:1.25;text-align:right;white-space:nowrap;}
    @media(max-width:720px){.va-panel-title-row{flex-direction:column;gap:9px}.va-flight-lite-header{width:100%;align-items:stretch}.va-flight-lite-header-badge{width:100%;white-space:normal;text-align:center;font-size:.66rem;letter-spacing:.08em}.va-flight-lite-subtitle{text-align:center;white-space:normal;font-size:.72rem}}

    .flight-purpose-box{
      margin-top:12px;
      padding:12px 14px;
      border-radius:14px;
      background:linear-gradient(180deg,#fffef7 0%,#fff8e6 100%);
      border:1px solid rgba(244,180,0,.42);
      color:#111827;
      font-size:.92rem;
      line-height:1.45;
      font-weight:760;
      display:flex;
      gap:10px;
      align-items:flex-start;
    }

    .flight-purpose-box i{
      color:#b26a00;
      margin-top:3px;
      flex:0 0 auto;
    }

    .flight-purpose-box strong{
      color:#111827;
    }

    @media(max-width:520px){
      .flight-purpose-box{
        font-size:.84rem;
        padding:11px 12px;
      }
    }
    .map-reading-box,.warning-code-box{margin-bottom:12px;background:linear-gradient(to bottom,#fffef9,#fff9ea);border:1px solid rgba(244,180,0,.45);border-radius:14px;padding:14px 16px;color:#374151;font-size:.92rem;line-height:1.45;}

    /* ========================================================= */
    /* VESPA ALERT - BLOC "COMMENT LIRE LA CARTE" SANS EMOJIS    */
    /* ========================================================= */

    .va-reading-box{
      position:relative;
      margin-bottom:12px;
      background:linear-gradient(180deg,#fffef9 0%,#fff8e8 100%);
      border:1px solid rgba(244,180,0,.45);
      border-radius:16px;
      padding:16px 18px;
      color:#111827;
      box-shadow:0 8px 20px rgba(0,0,0,.04);
      overflow:hidden;
    }

    .va-reading-box:before{
      content:"";
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:4px;
      background:linear-gradient(to right,var(--yellow),var(--yellow2));
    }

    .va-reading-header{
      display:flex;
      align-items:center;
      gap:12px;
      margin-bottom:14px;
    }

    .va-reading-toggle{
      width:100%;
      border:0;
      background:transparent;
      color:inherit;
      cursor:pointer;
      padding:0;
      text-align:left;
      justify-content:space-between;
    }

    .va-reading-heading{
      display:flex;
      align-items:center;
      gap:12px;
      min-width:0;
    }

    .va-reading-chevron{
      color:#6b7280;
      flex:0 0 auto;
      transition:transform .18s ease;
    }

    .va-reading-box.closed .va-reading-chevron{
      transform:rotate(180deg);
    }

    .va-reading-box.closed .va-reading-header{
      margin-bottom:0;
    }

    .va-reading-box.closed .va-reading-list{
      display:none;
    }

    .va-reading-main-icon{
      width:42px;
      height:42px;
      border-radius:14px;
      background:#111827;
      color:var(--yellow);
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      font-size:1rem;
      box-shadow:0 6px 14px rgba(0,0,0,.16);
    }

    .va-reading-title{
      display:flex;
      flex-direction:column;
      gap:2px;
      line-height:1.25;
      min-width:0;
    }

    .va-reading-title strong{
      font-size:.96rem;
      font-weight:900;
      color:#111827;
    }

    .va-reading-title span{
      font-size:.82rem;
      color:#6b7280;
    }

    .va-reading-list{
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
    }

    .va-reading-item{
      display:flex;
      align-items:flex-start;
      gap:12px;
      padding:11px 12px;
      border-radius:14px;
      border:1px solid rgba(17,24,39,.07);
      background:rgba(255,255,255,.72);
      transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
    }

    .va-reading-item:hover{
      transform:translateY(-1px);
      border-color:rgba(244,180,0,.28);
      box-shadow:0 8px 18px rgba(0,0,0,.05);
    }

    .va-reading-item-icon{
      width:34px;
      height:34px;
      border-radius:12px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      font-size:.88rem;
    }

    .va-reading-item-icon.direction{
      background:rgba(17,24,39,.08);
      color:#111827;
    }

    .va-reading-item-icon.zone{
      background:rgba(244,180,0,.16);
      color:#b26a00;
    }

    .va-reading-item-icon.popup{
      background:rgba(17,24,39,.08);
      color:#111827;
    }

    .va-reading-item-icon.notice{
      background:rgba(220,38,38,.10);
      color:#dc2626;
    }

    .va-reading-item-text{
      display:flex;
      flex-direction:column;
      line-height:1.35;
      min-width:0;
    }

    .va-reading-item-text strong{
      font-size:.86rem;
      font-weight:900;
      color:#111827;
    }

    .va-reading-item-text span{
      margin-top:2px;
      font-size:.82rem;
      color:#4b5563;
    }

    @media(max-width:520px){
      .va-reading-box{
        padding:14px;
        border-radius:14px;
      }

      .va-reading-header{
        gap:10px;
        margin-bottom:12px;
      }

      .va-reading-heading{
        gap:10px;
      }

      .va-reading-main-icon{
        width:38px;
        height:38px;
        border-radius:12px;
        font-size:.92rem;
      }

      .va-reading-title strong{
        font-size:.90rem;
      }

      .va-reading-title span{
        font-size:.76rem;
      }

      .va-reading-item{
        gap:10px;
        padding:10px;
        border-radius:12px;
      }

      .va-reading-item-icon{
        width:30px;
        height:30px;
        border-radius:10px;
        font-size:.80rem;
      }

      .va-reading-item-text strong{
        font-size:.80rem;
      }

      .va-reading-item-text span{
        font-size:.76rem;
      }
    }

    .warning-code-box{
      margin-top:14px;
      margin-bottom:16px;
      background:#fff8e8;
      border-color:rgba(244,180,0,.85);
      box-shadow:inset 0 -1px 0 rgba(244,180,0,.22),0 6px 14px rgba(244,180,0,.06);
    }

    .public-reading{font-size:.95rem;line-height:1.55;}
    .public-alert{margin-bottom:12px;padding:13px 15px;border-radius:14px;border:1px solid rgba(17,24,39,.10);background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.05);color:#111827;font-size:.94rem;font-weight:850;}
    .public-alert.low{border-color:rgba(244,180,0,.45);background:#fffdf0;}
    .public-alert.medium{border-color:rgba(250,140,22,.45);background:#fff7ed;}
    .public-alert.high{border-color:rgba(239,68,68,.42);background:#fff1f2;}
    .activity-dot{width:16px;height:16px;border-radius:999px;display:inline-block;border:2px solid rgba(0,0,0,.20);}
    .activity-dot.low{background:#ffe58f;}
    .activity-dot.medium{background:#fa8c16;}
    .activity-dot.high{background:#ff4d4f;}

    .map-legend-control{
      position:absolute;
      right:12px;
      bottom:54px;
      z-index:650;
      width:min(300px,calc(100% - 24px));
      background:rgba(255,255,255,.96);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      border:1px solid rgba(17,24,39,.14);
      border-radius:14px;
      box-shadow:0 10px 28px rgba(0,0,0,.16);
      overflow:hidden;
      color:#111827;
    }

    .map-legend-head{
      width:100%;
      border:0;
      background:#fff;
      color:#111827;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      padding:10px 12px;
      cursor:pointer;
      font-size:.72rem;
      font-weight:900;
      letter-spacing:.14em;
      text-transform:uppercase;
      border-bottom:1px solid rgba(17,24,39,.10);
    }

    .map-legend-head i:first-child{color:var(--yellow);}

    .map-legend-head .legend-title{
      display:inline-flex;
      align-items:center;
      gap:7px;
      min-width:0;
      white-space:nowrap;
    }

    .map-legend-head .legend-toggle-label{
      margin-left:auto;
      font-size:.68rem;
      letter-spacing:.04em;
      text-transform:none;
      color:#374151;
      font-weight:900;
      white-space:nowrap;
    }

    .map-legend-body{
      padding:10px 12px 11px;
      display:block;
    }

    .map-legend-control.collapsed .map-legend-body{display:none;}
    .map-legend-control.collapsed .map-legend-head{border-bottom:0;}

    .map-legend-row{
      display:flex;
      align-items:center;
      gap:8px;
      font-size:.80rem;
      color:#374151;
      line-height:1.25;
      margin-bottom:7px;
    }

    .map-legend-row:last-child{margin-bottom:0;}

    .map-legend-note{
      margin-top:8px;
      padding-top:8px;
      border-top:1px solid rgba(17,24,39,.10);
      color:#6b7280;
      font-size:.74rem;
      line-height:1.32;
    }

    .map-legend-gradient{
      width:42px;
      height:16px;
      border-radius:999px;
      background:linear-gradient(to right,#fff7cc,#ffe58f,#ffd666,#ffc53d,#f59e0b);
      border:1px solid rgba(0,0,0,.12);
      flex:0 0 auto;
    }

    .map-legend-arrow{
      width:26px;
      height:14px;
      position:relative;
      flex:0 0 auto;
    }

    .map-legend-arrow:before{
      content:"";
      position:absolute;
      left:0;
      top:6px;
      width:22px;
      height:3px;
      background:#111;
      border-radius:999px;
    }

    .map-legend-arrow:after{
      content:"";
      position:absolute;
      right:0;
      top:2px;
      border-left:8px solid #111;
      border-top:6px solid transparent;
      border-bottom:6px solid transparent;
    }

    .map-legend-row.mobile-short{display:none;}

    @media(max-width:520px){
      .map-legend-control{
        right:8px;
        bottom:72px;
        width:214px;
        max-width:calc(100% - 78px);
        border-radius:12px;
        box-shadow:0 8px 22px rgba(0,0,0,.18);
      }

      .map-legend-head{
        padding:8px 9px;
        font-size:.61rem;
        letter-spacing:.10em;
        gap:6px;
      }

      .map-legend-head .legend-title{gap:5px;}
      .map-legend-head .legend-toggle-label{font-size:.60rem;}

      .map-legend-body{padding:8px 9px 9px;}

      .map-legend-row{
        font-size:.70rem;
        line-height:1.18;
        gap:6px;
        margin-bottom:6px;
      }

      .map-legend-row.mobile-hide{display:none;}
      .map-legend-row.mobile-short{display:flex;}

      .map-legend-note{
        margin-top:6px;
        padding-top:6px;
        font-size:.64rem;
        line-height:1.22;
      }

      .map-legend-gradient{
        width:34px;
        height:13px;
      }

      .map-legend-arrow{
        width:22px;
        height:12px;
      }

      .map-legend-arrow:before{
        top:5px;
        width:18px;
        height:3px;
      }

      .map-legend-arrow:after{
        top:1px;
        border-left-width:7px;
        border-top-width:5px;
        border-bottom-width:5px;
      }

      .map-legend-control .legend-swatch,
      .map-legend-control .activity-dot{
        width:13px;
        height:13px;
        border-width:2px;
      }

      .map-legend-control .flight-cluster-badge{
        width:20px!important;
        height:20px!important;
        border-width:2px!important;
        font-size:.62rem!important;
      }

      .map-legend-control.collapsed{
        width:118px;
        max-width:118px;
        bottom:72px;
      }

      .map-legend-control.collapsed .legend-toggle-label{display:none;}
    }

    @media(max-width:380px){
      .map-legend-control{
        width:196px;
        max-width:calc(100% - 74px);
      }

      .map-legend-row{font-size:.66rem;}
      .map-legend-note{font-size:.61rem;}
    }

    .main-stack{display:flex;flex-direction:column;gap:18px;width:100%;min-width:0;}
    .map-shell{border-radius:16px;border:1px solid var(--border);box-shadow:0 12px 26px rgba(0,0,0,.06);position:relative;overflow:hidden;background:#fff;width:100%;min-width:0;isolation:isolate;}
    #map{width:100%;height:clamp(520px,58vh,720px);background:#f3f4f6;touch-action:pan-x pan-y;}
    .map-logo-nests-style{position:absolute;left:14px;bottom:40px;z-index:560;width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.97);border:1px solid rgba(0,0,0,.12);box-shadow:0 8px 18px rgba(0,0,0,.14);display:grid;place-items:center;padding:8px;}
    .map-logo-nests-style img{width:100%;height:100%;object-fit:contain;display:block;border-radius:50%;}
    .map-shell .leaflet-control-attribution{font-size:10px;background:rgba(255,255,255,.82);border-radius:8px 0 0 0;padding:2px 6px;}
    .map-shell .leaflet-control-container,.map-shell .leaflet-top,.map-shell .leaflet-bottom{z-index:500!important;}
    .map-shell .leaflet-top{top:10px!important;}
    .map-shell .leaflet-left{left:10px!important;}
    .map-shell .leaflet-right{right:10px!important;}
    .map-shell .leaflet-bottom{bottom:10px!important;}


    /* ========================================================= */
    /* ACCORDEON EXPLICATION ACTIVITE - FLIGHT ANALYZER LITE     */
    /* ========================================================= */

    .va-activity-explain{
      margin:-4px 0 0;
      border-radius:16px;
      border:1px solid rgba(244,180,0,.42);
      background:linear-gradient(180deg,#fffef9 0%,#fff8e8 100%);
      box-shadow:0 10px 24px rgba(0,0,0,.055);
      overflow:hidden;
      position:relative;
    }

    .va-activity-explain:before{
      content:"";
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:4px;
      background:linear-gradient(to right,var(--yellow),var(--yellow2));
    }

    .va-activity-explain-toggle{
      width:100%;
      border:0;
      background:transparent;
      color:#111827;
      padding:16px 16px 13px;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      text-align:left;
    }

    .va-activity-explain-title{
      display:flex;
      align-items:center;
      gap:11px;
      min-width:0;
    }

    .va-activity-explain-icon{
      width:36px;
      height:36px;
      border-radius:13px;
      background:#111827;
      color:var(--yellow);
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      box-shadow:0 6px 14px rgba(0,0,0,.15);
    }

    .va-activity-explain-title-text{
      display:flex;
      flex-direction:column;
      gap:2px;
      min-width:0;
      line-height:1.25;
    }

    .va-activity-explain-title-text strong{
      font-size:.82rem;
      letter-spacing:.16em;
      text-transform:uppercase;
      font-weight:950;
      color:#111827;
    }

    .va-activity-explain-title-text span{
      color:#6b7280;
      font-size:.80rem;
      font-weight:700;
    }

    .va-activity-explain-chevron{
      color:#111827;
      font-size:.92rem;
      flex:0 0 auto;
      transition:transform .18s ease;
    }

    .va-activity-explain.closed .va-activity-explain-chevron{
      transform:rotate(180deg);
    }

    .va-activity-explain-body{
      padding:0 16px 16px;
      display:block;
    }

    .va-activity-explain.closed .va-activity-explain-body{
      display:none;
    }

    .va-activity-explain-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:10px;
      padding-top:2px;
    }

    .va-activity-explain-item{
      display:flex;
      align-items:flex-start;
      gap:10px;
      padding:11px 12px;
      border-radius:14px;
      border:1px solid rgba(17,24,39,.08);
      background:rgba(255,255,255,.72);
      color:#374151;
      font-size:.84rem;
      line-height:1.38;
      font-weight:720;
    }

    .va-activity-explain-item i{
      color:#b26a00;
      margin-top:2px;
      flex:0 0 auto;
    }

    .va-activity-explain-item strong{
      color:#111827;
      font-weight:950;
    }

    .va-activity-explain-warning{
      margin-top:10px;
      padding:11px 12px;
      border-radius:14px;
      border:1px solid rgba(220,38,38,.16);
      background:rgba(255,255,255,.82);
      color:#4b5563;
      font-size:.82rem;
      line-height:1.38;
      font-weight:760;
      display:flex;
      gap:10px;
      align-items:flex-start;
    }

    .va-activity-explain-warning i{
      color:#dc2626;
      margin-top:2px;
      flex:0 0 auto;
    }

    @media(max-width:720px){
      .va-activity-explain-grid{
        grid-template-columns:1fr;
      }
    }

    @media(max-width:520px){
      .va-activity-explain-toggle{
        padding:14px 13px 12px;
      }

      .va-activity-explain-body{
        padding:0 13px 13px;
      }

      .va-activity-explain-icon{
        width:34px;
        height:34px;
        border-radius:12px;
      }

      .va-activity-explain-title-text strong{
        font-size:.73rem;
        letter-spacing:.11em;
      }

      .va-activity-explain-title-text span{
        font-size:.74rem;
      }

      .va-activity-explain-item,
      .va-activity-explain-warning{
        font-size:.76rem;
      }
    }

    .card{background:#fff;border-radius:16px;border:1px solid var(--border);box-shadow:0 10px 26px rgba(0,0,0,.06);position:relative;overflow:hidden;padding:14px 16px 16px;min-width:0;}
    .card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(to right,var(--yellow),var(--yellow2));}
    .card h3{margin:8px 0 8px;font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;font-weight:900;border-bottom:1px solid rgba(0,0,0,.08);padding:10px 0;color:#111;}
    .card-sub{font-size:.88rem;color:#4b5563;margin-bottom:10px;}
    .public-form-helper{
      margin:0 0 14px;
      padding:12px 14px;
      border-radius:14px;
      border:1px solid rgba(244,180,0,.38);
      background:linear-gradient(180deg,#fffef7 0%,#fff8e6 100%);
      color:#374151;
      font-size:.88rem;
      line-height:1.45;
      font-weight:750;
      display:flex;
      gap:10px;
      align-items:flex-start;
    }
    .public-form-helper i{color:#b26a00;margin-top:2px;flex:0 0 auto;}
    .public-form-helper strong{color:#111827;}

    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
    .form-group{display:flex;flex-direction:column;gap:5px;}
    .form-group.full{grid-column:1/-1;}
    .form-group label,.field label{display:block;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#111;margin-bottom:6px;}
    select,input[type=text],input[type=email],input[type=search],input[type=datetime-local],input[type=number],textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(244,180,0,.55);outline:none;background:#fff;color:#111827;font-weight:700;min-width:0;font-size:16px;-webkit-appearance:none;appearance:none;}
    select{
      cursor:pointer;
      padding-right:44px;
      background-color:#fff;
      background-image:
        linear-gradient(to right,transparent calc(100% - 42px),rgba(244,180,0,.20) calc(100% - 42px),rgba(244,180,0,.20) calc(100% - 41px),transparent calc(100% - 41px)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23111827' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
      background-repeat:no-repeat,no-repeat;
      background-position:right 42px center,right 13px center;
      background-size:1px 62%,18px 18px;
    }
    select:focus{
      border-color:rgba(244,180,0,.95);
      box-shadow:0 0 0 4px rgba(244,180,0,.16);
    }
    .select-hint{
      display:flex;
      align-items:flex-start;
      gap:6px;
      margin-top:6px;
      color:#6b4f00;
      font-size:12px;
      line-height:1.35;
      font-weight:750;
    }
    .select-hint i{color:#b26a00;margin-top:2px;flex:0 0 auto;}
    textarea{min-height:96px;resize:vertical;}
    .btn{background:#111;color:#fff;border:1px solid #111;border-radius:12px;padding:10px 12px;cursor:pointer;font-weight:900;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;}
    .btn.alt{background:#fff;color:#111;border:1px solid rgba(0,0,0,.18);}
    .btn.geo{background:var(--yellow);color:#111;border-color:var(--yellow);}
    .btn:disabled{opacity:.55;cursor:not-allowed;}
    .actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
    .status-box{margin-top:10px;font-size:14px;font-weight:800;}
    .status-box.ok{color:#166534;}
    .status-box.err{color:#b91c1c;}
    .field-help{margin-top:6px;font-size:12px;line-height:1.4;color:#b26a00;}
    .stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;}
    .step{padding:10px;border-radius:12px;border:1px solid rgba(0,0,0,.10);background:#f9fafb;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;text-align:center;}
    .step.done{background:#ecfdf5;color:#166534;border-color:rgba(22,101,52,.18);}
    .step.active{background:#fff8d6;color:#92400e;border-color:rgba(244,180,0,.65);}
    .direction-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
    .dir-btn{border:1px solid rgba(0,0,0,.14);background:#fff;border-radius:12px;min-height:46px;font-weight:900;cursor:pointer;font-size:1rem;}
    .dir-btn.active{background:#111;color:#fff;border-color:#111;box-shadow:0 4px 14px rgba(0,0,0,.18);transform:translateY(-1px);}
    .compass-preview{height:210px;border-radius:16px;border:1px dashed rgba(0,0,0,.18);display:grid;place-items:center;background:linear-gradient(to bottom,#fffef9,#fff9ea);margin-top:12px;position:relative;overflow:visible;padding:28px 18px 42px;}
    .arrow-preview{width:6px;height:62px;background:#111;border-radius:999px;transform-origin:50% 50%;position:relative;transition:transform .18s ease;}
    .arrow-preview:before{content:"";position:absolute;top:-9px;left:50%;transform:translateX(-50%);border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:18px solid #111;}
    .compass-label{position:absolute;bottom:10px;color:#4b5563;font-size:.82rem;font-weight:900;}
    .kpi-box{margin-top:12px;padding:12px;border-radius:14px;border:1px solid rgba(244,180,0,.55);background:#fffdf5;}
    .kpi-box-title{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:#111;margin-bottom:10px;}
    .stats div{margin-bottom:4px;}
    .flight-marker{background:transparent!important;border:0!important;}
    .flight-popup{font-size:13px;line-height:1.35;}

    .flight-cluster{
      background:transparent!important;
      border:0!important;
    }

    .flight-cluster-badge{
      width:42px;
      height:42px;
      border-radius:999px;
      background:#050505;
      color:#fff;
      border:4px solid var(--yellow);
      box-shadow:0 8px 18px rgba(0,0,0,.28);
      display:flex;
      align-items:center;
      justify-content:center;
      font-weight:900;
      font-size:.95rem;
      line-height:1;
    }

    .flight-cluster-badge.medium{
      width:48px;
      height:48px;
      font-size:1rem;
    }

    .flight-cluster-badge.large{
      width:56px;
      height:56px;
      font-size:1.05rem;
    }

    .flight-cluster-inner{
      position:relative;
      width:100%;
      height:100%;
      border-radius:999px;
      display:flex;
      align-items:center;
      justify-content:center;
    }

    .flight-cluster-count{
      position:relative;
      z-index:2;
    }
    /* Cluster arrows removed in split version */


    .legend-line{display:flex;align-items:center;gap:8px;margin-bottom:6px;line-height:1.25;font-size:.88rem;color:#374151;}
    .legend-swatch{width:16px;height:16px;border-radius:999px;border:2px solid #111;background:var(--yellow);display:inline-block;}
    .guide-card{background:#fff;border-radius:16px;border:1px solid var(--border);box-shadow:0 10px 26px rgba(0,0,0,.06);position:relative;overflow:hidden;padding:14px 16px 16px;min-width:0;margin-top:16px;}
    .guide-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(to right,var(--yellow),var(--yellow2));}
    .guide-card h3{margin:8px 0 10px;font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;font-weight:900;border-bottom:1px solid rgba(0,0,0,.08);padding:10px 0;color:#111;}
    .guide-card ul{padding-left:18px;color:#374151;font-size:.92rem;}
    .guide-card li{margin-bottom:6px;}

    .tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;}

    .footer{background:#0b0b0b;color:#fff;padding:44px var(--gutter) calc(38px + env(safe-area-inset-bottom));border-top:4px solid var(--yellow);margin-top:44px;}
    .footer-inner{text-align:center;max-width:var(--pageMax);margin:auto;}
    .footer-title{font-size:15px;font-weight:900;letter-spacing:.22em;text-transform:uppercase;margin-bottom:8px;}
    .footer-subtitle{font-size:11px;color:var(--yellow);letter-spacing:.22em;text-transform:uppercase;margin-bottom:22px;}
    .footer-nav{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:18px;margin-bottom:22px;}
    .footer-nav a{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.12em;padding:6px 2px;white-space:nowrap;opacity:.95;}
    .footer-nav a:hover{color:var(--yellow);opacity:1;}
    .footer-mid{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;}
    .footer-mid a{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.12em;opacity:.95;display:inline-flex;align-items:center;gap:10px;padding:6px 2px;}
    .social-icon{display:grid!important;place-items:center;width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);}
    .footer-mark{font-size:12px;opacity:.9;margin-top:10px;}

    @media(max-width:900px){
      .tools-grid{grid-template-columns:1fr;}
      .form-grid{grid-template-columns:1fr;}
      .stepper{grid-template-columns:1fr 1fr;}
      .panel-hd{padding:15px 14px 11px;}
      .panel-bd{padding:14px 14px 16px;}
      #map{height:62vh;min-height:500px;max-height:680px;}
      .map-logo-nests-style{width:64px;height:64px;bottom:40px;left:12px;}
    }

    @media(max-width:520px){
      .page{padding:0 10px;}
      .wrap{padding-top:12px;}
      .panel{border-radius:14px;}
      .hero{padding:20px 0 30px;}
      .hero-title-main{font-size:clamp(1.45rem,7vw,1.95rem);letter-spacing:.12em;padding-left:.12em;}
      .hero-title-country{font-size:.78rem;letter-spacing:.18em;padding-left:.18em;}
      .hero-statement{font-size:.66rem;letter-spacing:.08em;line-height:1.45;}
      .hero-line{width:180px;}
      #map{height:58vh;min-height:430px;max-height:560px;}
      .stepper{grid-template-columns:1fr;}
      .actions-row .btn{width:100%;}
      .direction-pad{gap:7px;}
      .dir-btn{min-height:48px;}
      .map-logo-nests-style{bottom:40px;left:10px;width:58px;height:58px;}
      .footer-nav{gap:12px;}
    }
  
    /* ========================================================= */
    /* ADAPTATIONS UX MOBILE - SIGNALER UN VOL                  */
    /* ========================================================= */

    .va-observation-dot{
      width:18px;
      height:18px;
      border-radius:999px;
      background:var(--yellow);
      border:3px solid #111827;
      box-shadow:0 4px 12px rgba(0,0,0,.25);
      display:block;
    }

    .va-observation-dot.selected{
      width:22px;
      height:22px;
      border-width:3px;
      box-shadow:0 0 0 5px rgba(244,180,0,.22),0 6px 16px rgba(0,0,0,.28);
    }

    .va-map-tutorial{
      margin-top:10px;
      display:none;
      border:1px solid rgba(244,180,0,.48);
      background:#fffdf0;
      color:#374151;
      border-radius:14px;
      padding:11px 12px;
      font-size:.88rem;
      line-height:1.42;
      font-weight:750;
    }

    .va-map-tutorial.show{
      display:flex;
      align-items:flex-start;
      gap:9px;
    }

    .va-map-tutorial i{
      color:#b26a00;
      margin-top:2px;
      flex:0 0 auto;
    }

    .va-direction-status{
      margin-top:10px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      border:1px solid rgba(17,24,39,.10);
      background:#f9fafb;
      border-radius:14px;
      padding:10px 12px;
      color:#111827;
      font-size:.88rem;
      font-weight:850;
    }

    .va-direction-status .value{
      color:#b26a00;
      font-weight:950;
      white-space:nowrap;
    }

    .quick-choice-row{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
    }

    .quick-choice{
      min-height:42px;
      border-radius:999px;
      border:1px solid rgba(17,24,39,.14);
      background:#fff;
      color:#111827;
      padding:8px 12px;
      cursor:pointer;
      font-size:.78rem;
      font-weight:900;
      letter-spacing:.04em;
      text-transform:uppercase;
    }

    .quick-choice.active{
      background:#111827;
      color:#fff;
      border-color:#111827;
      box-shadow:0 5px 14px rgba(0,0,0,.16);
    }

    .va-sticky-submit{
      position:relative;
      z-index:120;
      display:flex;
      gap:10px;
      align-items:center;
      justify-content:flex-end;
      margin:8px 0 0;
      padding:14px 0 6px;
      background:#fff;
      border-top:1px solid rgba(17,24,39,.10);
    }

    .va-snackbar{
      position:fixed;
      left:50%;
      bottom:calc(18px + env(safe-area-inset-bottom));
      transform:translateX(-50%) translateY(120px);
      z-index:7000;
      width:min(520px,calc(100% - 24px));
      background:#111827;
      color:#fff;
      border:1px solid rgba(244,180,0,.38);
      box-shadow:0 16px 38px rgba(0,0,0,.28);
      border-radius:16px;
      padding:12px 14px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      opacity:0;
      pointer-events:none;
      transition:transform .2s ease,opacity .2s ease;
      font-size:.88rem;
      font-weight:850;
    }

    .va-snackbar.show{
      opacity:1;
      transform:translateX(-50%) translateY(0);
      pointer-events:auto;
    }

    .va-snackbar-actions{
      display:flex;
      gap:8px;
      flex:0 0 auto;
    }

    .va-snackbar button{
      border:1px solid rgba(255,255,255,.18);
      background:rgba(255,255,255,.08);
      color:#fff;
      border-radius:999px;
      padding:7px 10px;
      cursor:pointer;
      font-size:.74rem;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.04em;
    }

    .va-kpi-compact{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:10px;
    }

    .va-kpi-pill{
      display:inline-flex;
      align-items:center;
      gap:7px;
      border-radius:999px;
      border:1px solid rgba(17,24,39,.10);
      background:#fff;
      padding:7px 10px;
      font-size:.78rem;
      color:#374151;
      font-weight:850;
    }

    .va-kpi-pill .dot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:var(--yellow);
      box-shadow:0 0 0 3px rgba(244,180,0,.14);
    }

    .form-group.has-error input,
    .form-group.has-error select,
    .form-group.has-error textarea{
      border-color:#dc2626!important;
      box-shadow:0 0 0 3px rgba(220,38,38,.10)!important;
    }

    .field-error{
      display:none;
      color:#b91c1c;
      font-size:12px;
      line-height:1.35;
      font-weight:850;
      margin-top:4px;
    }

    .form-group.has-error .field-error{
      display:block;
    }

    @media(max-width:520px){
      .va-sticky-submit{
        margin:8px 0 0;
        padding:12px 0 calc(4px + env(safe-area-inset-bottom));
        flex-direction:column-reverse;
        align-items:stretch;
      }

      .va-sticky-submit .btn{
        width:100%;
      }

      .va-snackbar{
        align-items:flex-start;
        flex-direction:column;
      }

      .va-snackbar-actions{
        width:100%;
      }

      .va-snackbar button{
        flex:1 1 auto;
      }

      .quick-choice{
        min-height:44px;
        flex:1 1 auto;
      }

      .va-direction-status{
        align-items:flex-start;
        flex-direction:column;
      }
    }

  
    /* ========================================================= */
    /* CORRECTION VISIBILITE POINT JAUNE OBSERVATION             */
    /* ========================================================= */

    .leaflet-observation-points-pane{
      z-index:720!important;
      pointer-events:auto;
    }

    .leaflet-observation-arrows-pane{
      z-index:610!important;
      pointer-events:none;
    }

    .flight-marker,
    .va-marker-on-top{
      background:transparent!important;
      border:0!important;
      z-index:9999!important;
    }

    .va-observation-dot{
      width:18px;
      height:18px;
      border-radius:999px;
      background:#f4b400;
      border:3px solid #111827;
      box-shadow:
        0 0 0 5px rgba(244,180,0,.26),
        0 6px 16px rgba(0,0,0,.30);
      display:block;
      position:relative;
      z-index:9999;
    }

    .va-observation-dot.selected{
      width:24px;
      height:24px;
      border-width:3px;
      box-shadow:
        0 0 0 6px rgba(244,180,0,.30),
        0 8px 18px rgba(0,0,0,.34);
    }


    /* ========================================================= */
    /* VESPA FLIGHT ANALYZER LITE - BLOC GRAND PUBLIC           */
    /* ========================================================= */

    .va-flight-lite-card{
      position:relative;
      margin:0 0 16px;
      border-radius:18px;
      overflow:hidden;
      background:radial-gradient(circle at top left,#2a2a2a 0,#111827 44%,#050505 100%);
      color:#fff;
      border:1px solid rgba(244,180,0,.35);
      box-shadow:0 14px 34px rgba(0,0,0,.16);
    }

    .va-flight-lite-card:before{
      content:"";
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:4px;
      background:linear-gradient(to right,var(--yellow),var(--yellow2));
    }

    .va-flight-lite-inner{
      position:relative;
      z-index:2;
      display:grid;
      grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
      gap:18px;
      padding:20px;
      align-items:stretch;
    }

    .va-flight-lite-badge{
      display:inline-flex;
      align-items:center;
      gap:8px;
      width:max-content;
      max-width:100%;
      padding:7px 11px;
      border-radius:999px;
      background:rgba(244,180,0,.16);
      border:1px solid rgba(244,180,0,.45);
      color:var(--yellow);
      font-size:.68rem;
      font-weight:950;
      letter-spacing:.18em;
      text-transform:uppercase;
      margin-bottom:12px;
    }

    .va-flight-lite-title{
      font-size:clamp(1.28rem,2.6vw,2rem);
      line-height:1.08;
      font-weight:950;
      letter-spacing:.05em;
      text-transform:uppercase;
      margin-bottom:10px;
    }

    .va-flight-lite-title span{
      color:var(--yellow);
      white-space:nowrap;
    }

    .va-flight-lite-text{
      color:#e5e7eb;
      font-size:.95rem;
      line-height:1.5;
      max-width:720px;
      margin-bottom:14px;
    }

    .va-flight-lite-features{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:8px;
      margin-top:12px;
    }

    .va-flight-lite-feature{
      display:flex;
      align-items:flex-start;
      gap:9px;
      padding:10px 11px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.055);
      color:#f9fafb;
      font-size:.82rem;
      line-height:1.35;
      font-weight:850;
    }

    .va-flight-lite-feature i{
      color:var(--yellow);
      margin-top:2px;
      flex:0 0 auto;
    }

    .va-flight-pro-box{
      border-radius:16px;
      border:1px solid rgba(244,180,0,.42);
      background:rgba(255,255,255,.075);
      padding:16px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      gap:14px;
    }

    .va-flight-pro-box h3{
      margin:0;
      padding:0 0 10px;
      border-bottom:1px solid rgba(255,255,255,.12);
      color:#fff;
      font-size:.88rem;
      letter-spacing:.18em;
      text-transform:uppercase;
      font-weight:950;
    }

    .va-flight-pro-list{
      list-style:none;
      padding:0;
      margin:0;
      display:grid;
      gap:8px;
      color:#e5e7eb;
      font-size:.84rem;
      line-height:1.35;
      font-weight:780;
    }

    .va-flight-pro-list li{
      display:flex;
      gap:8px;
      align-items:flex-start;
    }

    .va-flight-pro-list i{
      color:var(--yellow);
      margin-top:2px;
      flex:0 0 auto;
    }

    .va-flight-lite-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:2px;
    }

    .va-flight-lite-btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:44px;
      padding:10px 13px;
      border-radius:12px;
      font-size:.76rem;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-weight:950;
      border:1px solid rgba(244,180,0,.65);
      background:var(--yellow);
      color:#111827;
    }

    .va-flight-lite-btn.secondary{
      background:rgba(255,255,255,.08);
      color:#fff;
      border-color:rgba(255,255,255,.18);
    }

    .va-flight-lite-note{
      color:#cbd5e1;
      font-size:.76rem;
      line-height:1.35;
    }

    @media(max-width:900px){
      .va-flight-lite-inner{
        grid-template-columns:1fr;
        padding:18px;
      }
    }

    @media(max-width:520px){
      .va-flight-lite-card{
        border-radius:15px;
        margin-bottom:14px;
      }

      .va-flight-lite-inner{
        padding:15px;
        gap:14px;
      }

      .va-flight-lite-badge{
        width:100%;
        justify-content:center;
        white-space:normal;
        text-align:center;
        font-size:.61rem;
        letter-spacing:.12em;
      }

      .va-flight-lite-title{
        font-size:1.22rem;
      }

      .va-flight-lite-features{
        grid-template-columns:1fr;
      }

      .va-flight-lite-actions{
        flex-direction:column;
      }

      .va-flight-lite-btn{
        width:100%;
      }
    }


    /* ========================================================= */
    /* BLOC EXPLICATIF - VESPA FLIGHT ANALYZER LITE / PRO       */
    /* ========================================================= */

    .va-flight-info-card{
      background:#fff;
      border-radius:16px;
      border:1px solid var(--border);
      box-shadow:0 10px 26px rgba(0,0,0,.06);
      position:relative;
      overflow:hidden;
      padding:16px 16px 17px;
      min-width:0;
      margin-top:16px;
    }

    .va-flight-info-card:before{
      content:"";
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:4px;
      background:linear-gradient(to right,var(--yellow),var(--yellow2));
    }

    .va-flight-info-head{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      padding:8px 0 12px;
      border-bottom:1px solid rgba(0,0,0,.08);
      margin-bottom:14px;
    }

    .va-flight-info-title{
      display:flex;
      align-items:flex-start;
      gap:12px;
      min-width:0;
    }

    .va-flight-info-icon{
      width:40px;
      height:40px;
      border-radius:14px;
      background:#111827;
      color:var(--yellow);
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      box-shadow:0 6px 14px rgba(0,0,0,.14);
    }

    .va-flight-info-title h3{
      margin:0;
      padding:0;
      border:0;
      color:#111827;
      font-size:.86rem;
      letter-spacing:.20em;
      text-transform:uppercase;
      font-weight:950;
      line-height:1.35;
    }

    .va-flight-info-title p{
      margin:4px 0 0;
      color:#4b5563;
      font-size:.92rem;
      line-height:1.45;
      font-weight:650;
    }

    .va-flight-info-pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      border-radius:999px;
      border:1px solid rgba(244,180,0,.55);
      background:#111827;
      color:var(--yellow);
      padding:8px 12px;
      font-size:.68rem;
      font-weight:950;
      letter-spacing:.10em;
      text-transform:uppercase;
      white-space:nowrap;
      flex:0 0 auto;
    }

    .va-flight-info-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:14px;
      align-items:stretch;
    }

    .va-flight-info-box{
      border-radius:15px;
      border:1px solid rgba(17,24,39,.10);
      background:#fff;
      padding:14px;
    }

    .va-flight-info-box.lite{
      background:linear-gradient(180deg,#fffef7 0%,#fff9ea 100%);
      border-color:rgba(244,180,0,.38);
    }

    .va-flight-info-box.pro{
      background:#111827;
      border-color:rgba(244,180,0,.48);
      color:#fff;
    }

    .va-flight-info-box h4{
      display:flex;
      align-items:center;
      gap:8px;
      margin:0 0 10px;
      font-size:.82rem;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-weight:950;
      color:#111827;
    }

    .va-flight-info-box.pro h4{
      color:#fff;
    }

    .va-flight-info-box h4 i,
    .va-flight-info-list i{
      color:#b26a00;
      flex:0 0 auto;
    }

    .va-flight-info-box.pro h4 i,
    .va-flight-info-box.pro .va-flight-info-list i{
      color:var(--yellow);
    }

    .va-flight-info-list{
      list-style:none;
      padding:0;
      margin:0;
      display:grid;
      gap:8px;
      color:#374151;
      font-size:.88rem;
      line-height:1.38;
      font-weight:760;
    }

    .va-flight-info-box.pro .va-flight-info-list{
      color:#e5e7eb;
    }

    .va-flight-info-list li{
      display:flex;
      align-items:flex-start;
      gap:9px;
    }

    .va-flight-info-actions{
      margin-top:14px;
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      align-items:center;
    }

    .va-flight-info-btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:42px;
      padding:10px 13px;
      border-radius:12px;
      border:1px solid rgba(244,180,0,.70);
      background:var(--yellow);
      color:#111827;
      font-size:.76rem;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-weight:950;
      box-shadow:0 8px 18px rgba(0,0,0,.16);
    }

    .va-flight-info-note{
      color:#cbd5e1;
      font-size:.76rem;
      line-height:1.35;
      font-weight:650;
    }

    @media(max-width:900px){
      .va-flight-info-grid{
        grid-template-columns:1fr;
      }
    }

    @media(max-width:520px){
      .va-flight-info-card{
        padding:14px;
        border-radius:14px;
      }

      .va-flight-info-head{
        flex-direction:column;
        gap:10px;
      }

      .va-flight-info-pill{
        width:100%;
        justify-content:center;
        text-align:center;
        white-space:normal;
        font-size:.62rem;
      }

      .va-flight-info-title{
        gap:10px;
      }

      .va-flight-info-icon{
        width:36px;
        height:36px;
        border-radius:12px;
      }

      .va-flight-info-title h3{
        font-size:.76rem;
        letter-spacing:.14em;
      }

      .va-flight-info-title p{
        font-size:.84rem;
      }

      .va-flight-info-btn{
        width:100%;
      }
    }


    /* ========================================================= */
    /* VESPA FLIGHT LITE - CONES DIRECTIONNELS + MODE TERREIN    */
    /* ========================================================= */

    .leaflet-observation-cones-pane{
      z-index:555!important;
      pointer-events:none;
    }

    .va-field-mode-card{
      margin:0 0 14px;
      padding:14px;
      border-radius:16px;
      border:1px solid rgba(244,180,0,.46);
      background:linear-gradient(180deg,#fffef7 0%,#fff8e6 100%);
      box-shadow:0 8px 20px rgba(0,0,0,.045);
    }

    .va-field-mode-head{
      display:flex;
      align-items:flex-start;
      gap:10px;
      margin-bottom:12px;
      color:#111827;
    }

    .va-field-mode-icon{
      width:38px;
      height:38px;
      border-radius:13px;
      background:#111827;
      color:var(--yellow);
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      box-shadow:0 6px 14px rgba(0,0,0,.14);
    }

    .va-field-mode-title{
      display:flex;
      flex-direction:column;
      gap:2px;
      min-width:0;
      line-height:1.28;
    }

    .va-field-mode-title strong{
      font-size:.86rem;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-weight:950;
    }

    .va-field-mode-title span{
      color:#4b5563;
      font-size:.86rem;
      font-weight:720;
    }

    .va-field-mode-actions{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:8px;
    }

    .va-field-action{
      min-height:48px;
      border-radius:14px;
      border:1px solid rgba(17,24,39,.12);
      background:#fff;
      color:#111827;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      font-size:.76rem;
      letter-spacing:.06em;
      text-transform:uppercase;
      font-weight:950;
      padding:9px 10px;
    }

    .va-field-action.primary{
      background:#111827;
      border-color:#111827;
      color:#fff;
    }

    .va-field-action.warning{
      background:var(--yellow);
      border-color:var(--yellow);
      color:#111827;
    }

    .va-cone-hint{
      margin-top:10px;
      display:flex;
      gap:8px;
      align-items:flex-start;
      color:#6b4f00;
      font-size:.80rem;
      line-height:1.38;
      font-weight:780;
    }

    .va-cone-hint i{
      margin-top:2px;
      color:#b26a00;
      flex:0 0 auto;
    }

    .precision-choice-row{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:8px;
    }

    .precision-choice{
      min-height:44px;
      border-radius:14px;
      border:1px solid rgba(17,24,39,.14);
      background:#fff;
      color:#111827;
      cursor:pointer;
      font-size:.76rem;
      font-weight:950;
      letter-spacing:.04em;
      text-transform:uppercase;
      padding:8px 10px;
    }

    .precision-choice.active{
      background:#111827;
      color:#fff;
      border-color:#111827;
      box-shadow:0 5px 14px rgba(0,0,0,.16);
    }

    @media(max-width:700px){
      .va-field-mode-actions{
        grid-template-columns:1fr;
      }
    }

    @media(max-width:520px){
      body.va-terrain-mode .hero{
        padding:14px 0 18px;
      }

      body.va-terrain-mode .hero-statement,
      body.va-terrain-mode .va-reading-box,
      body.va-terrain-mode .va-activity-explain,
      body.va-terrain-mode .guide-card,
      body.va-terrain-mode .va-flight-info-card{
        display:none!important;
      }

      body.va-terrain-mode .panel-hd{
        padding-bottom:10px;
      }

      body.va-terrain-mode #map{
        height:48vh;
        min-height:330px;
        max-height:460px;
      }

      .va-field-mode-card{
        padding:12px;
        border-radius:15px;
      }

      .va-field-mode-title strong{
        font-size:.75rem;
        letter-spacing:.10em;
      }

      .va-field-mode-title span{
        font-size:.78rem;
      }

      .va-field-action{
        min-height:50px;
        font-size:.72rem;
      }

      .precision-choice-row{
        grid-template-columns:1fr;
      }

      .precision-choice{
        min-height:46px;
      }
    }


    /* ========================================================= */
    /* VESPA LITE - CONE ROTATIF + MODE TERREIN PLEIN ECRAN      */
    /* ========================================================= */

    .va-direction-handle{
      width:34px;
      height:34px;
      border-radius:999px;
      background:#111827;
      border:4px solid var(--yellow);
      box-shadow:0 8px 22px rgba(0,0,0,.32),0 0 0 5px rgba(244,180,0,.22);
      display:grid;
      place-items:center;
      color:#fff;
      cursor:grab;
      touch-action:none;
    }

    .va-direction-handle:before{
      content:"";
      width:9px;
      height:9px;
      border-radius:999px;
      background:var(--yellow);
      box-shadow:0 0 0 2px rgba(255,255,255,.75);
    }

    .va-direction-handle:active{cursor:grabbing;}

    .va-map-field-overlay{
      position:absolute;
      left:12px;
      top:12px;
      z-index:760;
      width:min(410px,calc(100% - 24px));
      border-radius:16px;
      border:1px solid rgba(17,24,39,.14);
      background:rgba(255,255,255,.94);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      box-shadow:0 12px 28px rgba(0,0,0,.18);
      overflow:hidden;
    }

    .va-map-field-toggle{
      width:100%;
      border:0;
      background:#111827;
      color:#fff;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:10px;
      padding:10px 12px;
      cursor:pointer;
      font-size:.76rem;
      font-weight:950;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .va-map-field-toggle i:first-child{color:var(--yellow);}

    .va-map-field-body{
      padding:11px 12px 12px;
      display:grid;
      gap:9px;
      color:#111827;
    }

    .va-map-field-overlay.collapsed .va-map-field-body{display:none;}

    .va-map-field-steps{
      display:grid;
      grid-template-columns:1fr;
      gap:6px;
      font-size:.82rem;
      line-height:1.28;
      font-weight:820;
      color:#374151;
    }

    .va-map-field-steps strong{color:#111827;}

    .va-map-field-actions{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:7px;
    }

    .va-map-field-actions button{
      min-height:42px;
      border-radius:12px;
      border:1px solid rgba(17,24,39,.14);
      background:#fff;
      color:#111827;
      cursor:pointer;
      font-size:.72rem;
      font-weight:950;
      letter-spacing:.04em;
      text-transform:uppercase;
      padding:8px 9px;
    }

    .va-map-field-actions button.primary{
      background:var(--yellow);
      border-color:var(--yellow);
    }

    .va-map-field-actions button.dark{
      background:#111827;
      border-color:#111827;
      color:#fff;
    }

    .va-map-field-current{
      border-radius:12px;
      background:#fff8e6;
      border:1px solid rgba(244,180,0,.42);
      padding:8px 10px;
      font-size:.80rem;
      font-weight:900;
      color:#6b4f00;
    }

    @media(max-width:700px){
      body.va-terrain-mode .hero,
      body.va-terrain-mode .panel-hd,
      body.va-terrain-mode .publicActivityMessage,
      body.va-terrain-mode .va-reading-box,
      body.va-terrain-mode .va-activity-explain,
      body.va-terrain-mode .guide-card,
      body.va-terrain-mode .va-flight-info-card{
        display:none!important;
      }

      body.va-terrain-mode .wrap{padding-top:0;}
      body.va-terrain-mode .page{padding:0;gap:0;}
      body.va-terrain-mode .panel{border-radius:0;border-left:0;border-right:0;box-shadow:none;}
      body.va-terrain-mode .panel-bd{padding:0;}
      body.va-terrain-mode .main-stack{gap:0;}
      body.va-terrain-mode .map-shell{border-radius:0;border-left:0;border-right:0;box-shadow:none;}

      body.va-terrain-mode #map{
        height:calc(100svh - var(--topbarH))!important;
        min-height:560px!important;
        max-height:none!important;
      }

      body.va-terrain-mode .map-logo-nests-style{
        width:52px;
        height:52px;
        left:10px;
        bottom:34px;
      }

      body.va-terrain-mode .map-legend-control{
        display:none!important;
      }

      .va-map-field-overlay{
        top:10px;
        left:10px;
        width:calc(100% - 20px);
        border-radius:14px;
      }

      .va-map-field-overlay.collapsed{
        width:190px;
      }

      .va-map-field-toggle{
        padding:9px 10px;
        font-size:.68rem;
      }

      .va-map-field-actions{grid-template-columns:1fr 1fr;}

      .va-map-field-actions button{
        min-height:44px;
        font-size:.66rem;
      }

      body.va-terrain-mode #encoder-observation{
        border-radius:0;
        box-shadow:none;
        border-left:0;
        border-right:0;
      }
    }


    /* ========================================================= */
    /* VESPA LITE V31 - MOBILE TERRAIN PRAGMATIQUE              */
    /* Carte plein écran, bouton déclarer, cône rotatif tactile  */
    /* ========================================================= */

    .va-field-fab{
      position:absolute;
      right:14px;
      bottom:calc(18px + env(safe-area-inset-bottom));
      z-index:790;
      display:flex;
      flex-direction:column;
      align-items:flex-end;
      gap:9px;
      pointer-events:none;
    }

    .va-field-fab button{
      pointer-events:auto;
      min-height:46px;
      border:0;
      border-radius:999px;
      box-shadow:0 12px 28px rgba(0,0,0,.24);
      font-weight:950;
      letter-spacing:.06em;
      text-transform:uppercase;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      padding:10px 14px;
      font-size:.74rem;
    }

    .va-field-fab .main{
      background:var(--yellow);
      color:#111827;
      border:2px solid #111827;
      font-size:.80rem;
      min-height:52px;
      padding-inline:18px;
    }

    .va-field-fab .secondary{
      background:rgba(255,255,255,.96);
      color:#111827;
      border:1px solid rgba(17,24,39,.14);
      min-height:42px;
      font-size:.68rem;
    }

    .va-field-fab .secondary.active{
      background:#111827;
      color:#fff;
      border-color:#111827;
    }

    .va-mobile-sheet-close{
      display:none;
      width:100%;
      border:0;
      background:#111827;
      color:#fff;
      min-height:44px;
      border-radius:12px;
      font-size:.76rem;
      font-weight:950;
      letter-spacing:.08em;
      text-transform:uppercase;
      margin:0 0 12px;
      cursor:pointer;
    }

    @media(max-width:700px){
      body.va-terrain-mode .search{display:none;}
      body.va-terrain-mode .topbar-inner{padding-left:10px;padding-right:10px;}
      body.va-terrain-mode .brand img{width:36px;height:36px;}

      body.va-terrain-mode #map{
        height:calc(100svh - var(--topbarH))!important;
        min-height:calc(100svh - var(--topbarH))!important;
      }

      body.va-terrain-mode .leaflet-control-zoom{
        margin-top:76px!important;
      }

      body.va-terrain-mode .va-map-field-overlay{
        top:10px;
        left:10px;
        right:10px;
        width:auto;
        max-width:none;
      }

      body.va-terrain-mode .va-map-field-overlay.collapsed{
        width:174px;
        right:auto;
      }

      body.va-terrain-mode .va-map-field-body{
        gap:8px;
        padding:10px;
      }

      body.va-terrain-mode .va-map-field-steps{
        font-size:.78rem;
      }

      body.va-terrain-mode .va-map-field-steps span:nth-child(3){
        display:none;
      }

      body.va-terrain-mode .va-map-field-actions{
        grid-template-columns:1fr 1fr;
      }

      body.va-terrain-mode .va-map-field-actions button{
        min-height:40px;
      }

      body.va-terrain-mode #encoder-observation{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:8200;
        max-height:82svh;
        overflow:auto;
        -webkit-overflow-scrolling:touch;
        border-radius:20px 20px 0 0!important;
        box-shadow:0 -14px 36px rgba(0,0,0,.32)!important;
        padding:14px 14px calc(14px + env(safe-area-inset-bottom));
        transform:translateY(calc(100% + 22px));
        transition:transform .22s ease;
      }

      body.va-terrain-mode.va-form-open #encoder-observation{
        transform:translateY(0);
      }

      body.va-terrain-mode .va-mobile-sheet-close{display:block;}
      body.va-terrain-mode #encoder-observation h3{margin-top:0;}
      body.va-terrain-mode #encoder-observation .public-form-helper,
      body.va-terrain-mode #encoder-observation .stepper,
      body.va-terrain-mode #encoder-observation .compass-preview,
      body.va-terrain-mode #encoder-observation .direction-pad,
      body.va-terrain-mode #encoder-observation .field-help,
      body.va-terrain-mode #encoder-observation .select-hint,
      body.va-terrain-mode #encoder-observation .warning-code-box{
        display:none!important;
      }

      body.va-terrain-mode #encoder-observation .form-grid{
        grid-template-columns:1fr;
        gap:10px;
      }

      body.va-terrain-mode #encoder-observation .form-group label{
        font-size:.72rem;
      }

      body.va-terrain-mode #encoder-observation textarea{
        min-height:72px;
      }

      body.va-terrain-mode #encoder-observation .va-sticky-submit{
        position:sticky;
        bottom:0;
        padding-top:10px;
        background:#fff;
      }

      body.va-terrain-mode .va-field-fab{display:flex;}
    }

    @media(min-width:701px){
      .va-field-fab{display:none;}
    }

  

    /* ========================================================= */
    /* VESPA LITE V32 - TERRAIN MOBILE FULLSCREEN + ETAPES       */
    /* ========================================================= */

    #publicActivityMessage{display:none!important;}

    .va-map-field-overlay.v32-ready{
      width:190px;
      max-width:calc(100% - 24px);
    }

    .va-map-field-overlay.v32-ready:not(.v32-expanded) .va-map-field-body{
      display:none!important;
    }

    .va-map-field-overlay.v32-ready .va-map-field-toggle{
      min-height:44px;
    }

    .va-field-step-tabs{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:6px;
      margin-bottom:2px;
    }

    .va-field-step-tab{
      border:1px solid rgba(17,24,39,.12);
      background:#fff;
      color:#374151;
      border-radius:999px;
      min-height:32px;
      font-size:.62rem;
      font-weight:950;
      letter-spacing:.02em;
      text-transform:uppercase;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:4px;
      padding:5px 6px;
      white-space:nowrap;
    }

    .va-field-step-tab.active{
      background:#111827;
      color:#fff;
      border-color:#111827;
    }

    .va-field-step-tab.done{
      background:#fff8e6;
      color:#6b4f00;
      border-color:rgba(244,180,0,.55);
    }

    .va-field-step-main{
      display:grid;
      gap:8px;
      border-radius:14px;
      border:1px solid rgba(17,24,39,.10);
      background:rgba(255,255,255,.76);
      padding:10px;
    }

    .va-field-step-title{
      font-size:.84rem;
      font-weight:950;
      color:#111827;
      line-height:1.25;
    }

    .va-field-step-text{
      font-size:.76rem;
      color:#4b5563;
      line-height:1.35;
      font-weight:760;
    }

    .va-field-step-validate{
      min-height:44px!important;
      width:100%;
      border-radius:12px!important;
      border:0!important;
      background:var(--yellow)!important;
      color:#111827!important;
      font-size:.74rem!important;
      font-weight:950!important;
      letter-spacing:.06em!important;
      text-transform:uppercase!important;
      cursor:pointer;
      box-shadow:0 8px 18px rgba(0,0,0,.12);
    }

    .va-field-step-validate.dark{
      background:#111827!important;
      color:#fff!important;
    }

    .va-field-step-validate:disabled{
      opacity:.55;
      cursor:not-allowed;
      box-shadow:none;
    }

    .va-field-layer-row{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:7px;
    }

    .va-field-layer-row button{
      min-height:38px!important;
      font-size:.66rem!important;
      border-radius:999px!important;
    }

    @media(min-width:701px){
      .va-map-field-overlay.v32-ready{
        width:190px!important;
        top:12px;
        left:12px;
      }

      .va-map-field-overlay.v32-ready.v32-expanded{
        width:min(430px,calc(100% - 24px))!important;
      }

      .va-map-field-overlay.v32-ready .va-map-field-toggle{
        border-radius:0;
      }
    }

    @media(max-width:700px){
      html,body{
        height:100%;
        overflow:hidden!important;
        overscroll-behavior:none;
      }

      body.va-terrain-mode{
        position:fixed;
        inset:0;
        width:100%;
        height:100svh;
        overflow:hidden!important;
      }

      body.va-terrain-mode .footer,
      body.va-terrain-mode main.page > section.panel:nth-of-type(2){
        display:none!important;
      }

      body.va-terrain-mode .topbar{
        background:rgba(0,0,0,.92);
      }

      body.va-terrain-mode .wrap,
      body.va-terrain-mode .page,
      body.va-terrain-mode main,
      body.va-terrain-mode .panel,
      body.va-terrain-mode .panel-bd,
      body.va-terrain-mode .main-stack,
      body.va-terrain-mode .map-shell{
        position:fixed!important;
        left:0!important;
        right:0!important;
        top:var(--topbarH)!important;
        bottom:0!important;
        width:100%!important;
        height:auto!important;
        margin:0!important;
        padding:0!important;
        overflow:hidden!important;
        border:0!important;
      }

      body.va-terrain-mode .map-shell:before,
      body.va-terrain-mode .panel:before{
        display:none!important;
      }

      body.va-terrain-mode #map{
        position:absolute!important;
        inset:0!important;
        height:100%!important;
        min-height:0!important;
        max-height:none!important;
      }

      body.va-terrain-mode .leaflet-control-zoom{
        margin-top:118px!important;
      }

      body.va-terrain-mode .va-map-field-overlay.v32-ready{
        top:8px!important;
        left:8px!important;
        right:8px!important;
        width:auto!important;
        max-width:none!important;
        border-radius:16px;
        transition:transform .18s ease, opacity .18s ease;
      }

      body.va-terrain-mode .va-map-field-overlay.v32-ready:not(.v32-expanded){
        width:178px!important;
        right:auto!important;
      }

      body.va-terrain-mode .va-map-field-overlay.v32-ready.v32-expanded{
        width:auto!important;
      }

      body.va-terrain-mode .va-map-field-toggle{
        font-size:.72rem;
        padding:10px 12px;
      }

      body.va-terrain-mode .va-map-field-body{
        padding:10px;
        gap:8px;
      }

      body.va-terrain-mode .va-map-field-steps,
      body.va-terrain-mode .va-map-field-actions{
        display:none!important;
      }

      body.va-terrain-mode .va-map-field-current{
        font-size:.78rem;
      }

      body.va-terrain-mode .va-field-fab{
        right:10px;
        bottom:calc(14px + env(safe-area-inset-bottom));
        gap:8px;
      }

      body.va-terrain-mode .va-field-fab .secondary{
        min-height:40px;
        font-size:.65rem;
        padding:8px 12px;
      }

      body.va-terrain-mode .va-field-fab .main{
        min-height:56px;
        font-size:.88rem;
        padding-inline:20px;
      }

      body.va-terrain-mode #encoder-observation{
        max-height:72svh!important;
        padding-top:12px!important;
      }

      body.va-terrain-mode #encoder-observation .va-field-mode-card{
        display:none!important;
      }

      body.va-terrain-mode.va-form-open .va-map-field-overlay{
        transform:translateY(-110%);
        opacity:0;
        pointer-events:none;
      }
    }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* Suppression du message d'activité demandé */
  #publicActivityMessage{display:none!important;}

  /* Desktop : mode terrein discret, fermé par défaut, sans masquer le zoom Leaflet */
  @media(min-width:701px){
    .va-map-field-overlay,
    .va-map-field-overlay.v32-ready{
      top:14px!important;
      left:64px!important;
      width:auto!important;
      max-width:360px!important;
      border-radius:999px!important;
      box-shadow:0 8px 20px rgba(0,0,0,.16)!important;
      background:transparent!important;
      overflow:visible!important;
    }
    .va-map-field-overlay:not(.v32-expanded) .va-map-field-body,
    .va-map-field-overlay.collapsed .va-map-field-body,
    .va-map-field-overlay.v33-desktop-closed .va-map-field-body{
      display:none!important;
    }
    .va-map-field-toggle{
      min-height:36px!important;
      padding:8px 12px!important;
      border-radius:999px!important;
      font-size:.68rem!important;
      letter-spacing:.08em!important;
      box-shadow:0 8px 20px rgba(0,0,0,.18)!important;
      width:auto!important;
      white-space:nowrap!important;
    }
    .va-map-field-overlay.v32-expanded{
      width:min(360px,calc(100% - 90px))!important;
      border-radius:16px!important;
      background:rgba(255,255,255,.96)!important;
      overflow:hidden!important;
    }
    .va-map-field-overlay.v32-expanded .va-map-field-toggle{
      border-radius:0!important;
      width:100%!important;
    }
    .va-map-field-overlay.v32-expanded .va-map-field-body{
      display:grid!important;
      padding:10px!important;
    }

    /* Desktop : formulaire moins chargé */
    #encoder-observation .public-form-helper,
    #encoder-observation .va-field-mode-card{
      display:none!important;
    }
    #encoder-observation .stepper{
      margin-bottom:10px!important;
    }
    #encoder-observation .step{
      padding:8px!important;
      font-size:.66rem!important;
    }
    #encoder-observation .field-help,
    #encoder-observation .select-hint{
      font-size:11px!important;
      line-height:1.3!important;
    }
    #encoder-observation .compass-preview{
      height:150px!important;
      margin-top:8px!important;
    }
    #encoder-observation .direction-pad{
      gap:6px!important;
    }
    #encoder-observation .dir-btn{
      min-height:38px!important;
      font-size:.86rem!important;
    }
  }

  /* Mobile : carte = application terrain, pas une page web */
  @media(max-width:700px){
    html,body{
      height:100%!important;
      overflow:hidden!important;
      overscroll-behavior:none!important;
      touch-action:manipulation;
    }
    body.va-terrain-mode{
      position:fixed!important;
      inset:0!important;
      width:100%!important;
      height:100svh!important;
      overflow:hidden!important;
      padding-top:var(--topbarH)!important;
    }

    body.va-terrain-mode .topbar{background:#000!important;}
    body.va-terrain-mode .search{display:none!important;}
    body.va-terrain-mode .brand img{width:36px!important;height:36px!important;}

    body.va-terrain-mode .hero,
    body.va-terrain-mode .panel-hd,
    body.va-terrain-mode .va-reading-box,
    body.va-terrain-mode .va-activity-explain,
    body.va-terrain-mode main.page > section.panel:nth-of-type(2),
    body.va-terrain-mode .footer{
      display:none!important;
    }

    body.va-terrain-mode .wrap,
    body.va-terrain-mode .page,
    body.va-terrain-mode main,
    body.va-terrain-mode .panel,
    body.va-terrain-mode .panel-bd,
    body.va-terrain-mode .main-stack,
    body.va-terrain-mode .map-shell{
      position:fixed!important;
      left:0!important;
      right:0!important;
      top:var(--topbarH)!important;
      bottom:0!important;
      width:100%!important;
      height:auto!important;
      margin:0!important;
      padding:0!important;
      overflow:hidden!important;
      border:0!important;
      border-radius:0!important;
      box-shadow:none!important;
    }
    body.va-terrain-mode .panel:before,
    body.va-terrain-mode .map-shell:before{display:none!important;}
    body.va-terrain-mode #map{
      position:absolute!important;
      inset:0!important;
      width:100%!important;
      height:100%!important;
      min-height:0!important;
      max-height:none!important;
    }

    /* Laisse le +/- visible sous le petit onglet */
    body.va-terrain-mode .leaflet-control-zoom{
      margin-top:70px!important;
      margin-left:10px!important;
    }
    body.va-terrain-mode .leaflet-control-layers{
      margin-top:10px!important;
      margin-right:10px!important;
    }
    body.va-terrain-mode .map-logo-nests-style{
      width:48px!important;
      height:48px!important;
      left:10px!important;
      bottom:78px!important;
    }
    body.va-terrain-mode .map-legend-control{display:none!important;}

    /* Onglet mode terrein réduit */
    body.va-terrain-mode .va-map-field-overlay,
    body.va-terrain-mode .va-map-field-overlay.v32-ready{
      top:10px!important;
      left:10px!important;
      right:auto!important;
      width:auto!important;
      max-width:calc(100% - 20px)!important;
      border-radius:999px!important;
      background:transparent!important;
      box-shadow:none!important;
      overflow:visible!important;
    }
    body.va-terrain-mode .va-map-field-toggle{
      min-height:40px!important;
      padding:9px 12px!important;
      border-radius:999px!important;
      font-size:.68rem!important;
      box-shadow:0 8px 20px rgba(0,0,0,.20)!important;
      width:auto!important;
      white-space:nowrap!important;
    }
    body.va-terrain-mode .va-map-field-body{display:none!important;}

    /* On simplifie les FAB : le dock guide tout */
    body.va-terrain-mode .va-field-fab{
      right:10px!important;
      bottom:calc(84px + env(safe-area-inset-bottom))!important;
      gap:7px!important;
    }
    body.va-terrain-mode.v33-active .va-field-fab{display:none!important;}
    body.va-terrain-mode .va-field-fab .secondary{display:none!important;}
    body.va-terrain-mode .va-field-fab .main{
      min-height:54px!important;
      padding:0 18px!important;
      font-size:.82rem!important;
      border-radius:999px!important;
    }

    /* Dock étape terrain */
    .va-v33-dock{
      position:absolute;
      left:10px;
      right:10px;
      bottom:calc(10px + env(safe-area-inset-bottom));
      z-index:8100;
      border-radius:18px;
      background:rgba(255,255,255,.96);
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
      border:1px solid rgba(17,24,39,.14);
      box-shadow:0 16px 36px rgba(0,0,0,.24);
      padding:10px;
      display:none;
      color:#111827;
    }
    body.va-terrain-mode.v33-active .va-v33-dock{display:block;}
    body.va-terrain-mode.va-form-open .va-v33-dock{display:none!important;}

    .va-v33-tabs{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:6px;
      margin-bottom:8px;
    }
    .va-v33-tab{
      min-height:28px;
      border-radius:999px;
      border:1px solid rgba(17,24,39,.12);
      background:#fff;
      color:#4b5563;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:.60rem;
      font-weight:950;
      letter-spacing:.02em;
      text-transform:uppercase;
      white-space:nowrap;
    }
    .va-v33-tab.active{background:#111827;color:#fff;border-color:#111827;}
    .va-v33-tab.done{background:#fff8e6;color:#6b4f00;border-color:rgba(244,180,0,.65);}

    .va-v33-title{
      font-size:.95rem;
      font-weight:950;
      line-height:1.2;
      margin-bottom:3px;
    }
    .va-v33-text{
      color:#4b5563;
      font-size:.78rem;
      font-weight:760;
      line-height:1.28;
      margin-bottom:9px;
    }
    .va-v33-actions{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }
    .va-v33-actions button{
      min-height:48px;
      border-radius:14px;
      border:1px solid rgba(17,24,39,.14);
      background:#fff;
      color:#111827;
      font-size:.72rem;
      font-weight:950;
      letter-spacing:.06em;
      text-transform:uppercase;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      padding:8px;
    }
    .va-v33-actions button.primary{background:var(--yellow);border-color:var(--yellow);}
    .va-v33-actions button.dark{background:#111827;border-color:#111827;color:#fff;}
    .va-v33-status{
      margin-top:8px;
      border-radius:12px;
      background:#fff8e6;
      border:1px solid rgba(244,180,0,.45);
      color:#6b4f00;
      font-size:.74rem;
      font-weight:900;
      padding:7px 9px;
    }

    /* Formulaire mobile = sheet courte par étapes utiles */
    body.va-terrain-mode #encoder-observation{
      position:fixed!important;
      left:0!important;
      right:0!important;
      bottom:0!important;
      top:auto!important;
      z-index:8200!important;
      max-height:74svh!important;
      overflow:auto!important;
      -webkit-overflow-scrolling:touch!important;
      border-radius:22px 22px 0 0!important;
      border:0!important;
      box-shadow:0 -16px 38px rgba(0,0,0,.34)!important;
      padding:12px 14px calc(14px + env(safe-area-inset-bottom))!important;
      transform:translateY(calc(100% + 28px));
      transition:transform .22s ease!important;
    }
    body.va-terrain-mode.va-form-open #encoder-observation{transform:translateY(0)!important;}
    body.va-terrain-mode #encoder-observation:before{display:none!important;}
    body.va-terrain-mode #encoder-observation h3{
      margin:8px 0 12px!important;
      padding-bottom:8px!important;
      font-size:.86rem!important;
    }
    body.va-terrain-mode .va-mobile-sheet-close{display:block!important;}

    body.va-terrain-mode #encoder-observation .public-form-helper,
    body.va-terrain-mode #encoder-observation .va-field-mode-card,
    body.va-terrain-mode #encoder-observation .stepper,
    body.va-terrain-mode #encoder-observation .compass-preview,
    body.va-terrain-mode #encoder-observation .direction-pad,
    body.va-terrain-mode #encoder-observation .field-help,
    body.va-terrain-mode #encoder-observation .select-hint,
    body.va-terrain-mode #encoder-observation .warning-code-box,
    body.va-terrain-mode #encoder-observation .va-direction-status,
    body.va-terrain-mode #encoder-observation .precision-choice-row,
    body.va-terrain-mode #encoder-observation .form-group.full:has(#mapDirectionTutorial),
    body.va-terrain-mode #encoder-observation .form-group.full:has(.direction-pad),
    body.va-terrain-mode #encoder-observation .form-group.full:has(.precision-choice-row){
      display:none!important;
    }
    body.va-terrain-mode #encoder-observation .form-grid{
      display:grid!important;
      grid-template-columns:1fr!important;
      gap:10px!important;
    }
    body.va-terrain-mode #encoder-observation .form-group label{
      font-size:.68rem!important;
      margin-bottom:4px!important;
    }
    body.va-terrain-mode #encoder-observation input,
    body.va-terrain-mode #encoder-observation select,
    body.va-terrain-mode #encoder-observation textarea{
      border-radius:14px!important;
      min-height:46px!important;
      font-size:16px!important;
    }
    body.va-terrain-mode #encoder-observation textarea{min-height:76px!important;}
    body.va-terrain-mode #encoder-observation .va-sticky-submit{
      position:sticky!important;
      bottom:0!important;
      background:#fff!important;
      display:grid!important;
      grid-template-columns:1fr!important;
      gap:8px!important;
      padding:10px 0 0!important;
      margin-top:6px!important;
    }
    body.va-terrain-mode #encoder-observation .va-sticky-submit .btn{
      width:100%!important;
      min-height:52px!important;
      border-radius:14px!important;
    }
    body.va-terrain-mode #encoder-observation .va-sticky-submit #resetBtn{order:2;background:#fff!important;color:#111827!important;}
    body.va-terrain-mode #encoder-observation .va-sticky-submit #submitBtn{order:1;}
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* ========================================================= */
/* VESPA LITE V38 - FLOW PRO DESKTOP + MOBILE CORRIGE        */
/* ========================================================= */

/* Le bouton mobile "Continuer vers l'envoi" ne doit jamais apparaître en desktop. */
@media(min-width:701px){
  #vaMobileNextSend,
  .va-mobile-next-send{
    display:none!important;
  }
}

/* Desktop : actions carte propres et non intrusives. */
@media(min-width:701px){
  .va-desktop-map-action,
  .va-desktop-heatmap-action{
    position:absolute;
    right:14px;
    z-index:780;
    border:2px solid #111827;
    border-radius:999px;
    background:var(--yellow);
    color:#111827;
    box-shadow:0 10px 24px rgba(0,0,0,.18);
    min-height:44px;
    padding:10px 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:.76rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    font-weight:950;
    cursor:pointer;
  }

  .va-desktop-map-action{
    top:14px;
  }

  .va-desktop-map-action.ready{
    background:#111827;
    color:#fff;
    border-color:var(--yellow);
  }

  .va-desktop-heatmap-action{
    top:66px;
    background:rgba(255,255,255,.96);
    color:#111827;
    border:1px solid rgba(17,24,39,.18);
    min-height:38px;
    padding:8px 13px;
    font-size:.70rem;
  }

  .va-desktop-heatmap-action.active{
    background:#111827;
    color:#fff;
    border-color:#111827;
  }

  #stepper .step{
    transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
  }
/* Correction mobile : les 4 étapes restent dans l'écran */
@media(max-width:700px){

  body.va-terrain-mode .va-v33-tabs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:4px!important;
    width:100%!important;
    overflow:hidden!important;
  }

  body.va-terrain-mode .va-v33-tab{
    min-width:0!important;
    width:100%!important;
    padding:6px 3px!important;
    font-size:.52rem!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }

  body.va-terrain-mode .va-v33-dock{
    left:8px!important;
    right:8px!important;
    width:auto!important;
    max-width:calc(100vw - 16px)!important;
    overflow:hidden!important;
  }
}
  #stepper .step.active{
    box-shadow:0 0 0 3px rgba(244,180,0,.18);
  }
}

/* Desktop : bouton de confirmation d'étape dans le formulaire. */
.va-desktop-next-step{
  min-height:46px;
  border-radius:12px;
  border:1px solid rgba(17,24,39,.14);
  background:var(--yellow);
  color:#111827;
  padding:10px 13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:.76rem;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
}

@media(max-width:700px){
  .va-desktop-next-step{display:none!important;}
}

/* Mobile : garder l'étape 3 comme formulaire d'infos, avec un bouton clair vers l'envoi. */
@media(max-width:700px){
  body.va-terrain-mode.v34-step-infos #encoder-observation .va-sticky-submit{
    display:flex!important;
  }

  body.va-terrain-mode.v34-step-infos #submitBtn{
    display:none!important;
  }

  body.va-terrain-mode.v34-step-send #vaMobileNextSend{
    display:none!important;
  }

  body.va-terrain-mode.v34-step-infos #vaMobileNextSend{
    display:inline-flex!important;
    flex:1 1 auto;
    min-height:54px;
    border-radius:14px;
    background:#111827;
    color:#fff;
    border:1px solid #111827;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:.76rem;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
  }

  body.va-terrain-mode #nombre_individus.has-va-error,
  body.va-terrain-mode #comportement.has-va-error{
    border-color:#dc2626!important;
    box-shadow:0 0 0 4px rgba(220,38,38,.12)!important;
  }
}

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* Desktop : le bouton carte devient une vraie action de passage vers l'etape Infos */
  @media(min-width:701px){
    #vaDesktopMapDeclare.va-v41-ready{
      background:#111827!important;
      color:#fff!important;
      border-color:#111827!important;
      box-shadow:0 12px 28px rgba(0,0,0,.24)!important;
    }
    #vaDesktopMapDeclare.va-v41-ready i{color:#f4b400!important;}

    .va-v41-infos-head{
      grid-column:1/-1;
      display:flex;
      align-items:center;
      gap:10px;
      margin:10px 0 2px;
      padding:10px 12px;
      border-radius:14px;
      background:#111827;
      color:#fff;
      font-size:.78rem;
      font-weight:950;
      letter-spacing:.12em;
      text-transform:uppercase;
    }
    .va-v41-infos-head i{color:#f4b400;}
    .va-v41-needed{
      position:relative;
      border-radius:16px;
      outline:3px solid rgba(244,180,0,.18);
      background:linear-gradient(180deg,#fffef8 0%,#fff 100%);
    }
    .va-v41-needed:before{
      content:"A completer";
      position:absolute;
      right:10px;
      top:-10px;
      background:#f4b400;
      color:#111827;
      border:1px solid rgba(17,24,39,.18);
      border-radius:999px;
      padding:3px 8px;
      font-size:.58rem;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-weight:950;
      z-index:2;
    }
    .va-v41-needed.done:before{
      content:"OK";
      background:#dcfce7;
      color:#166534;
      border-color:rgba(22,101,52,.20);
    }
    .va-v41-scroll-flash{
      animation:vaV41Flash 1.2s ease;
    }
    @keyframes vaV41Flash{
      0%,100%{box-shadow:none;}
      30%{box-shadow:0 0 0 6px rgba(244,180,0,.26);}
    }
  }

  /* Remplace le grand encadre explicatif par une indication courte et utile */
  #vaDesktopFormHelper{
    padding:10px 12px!important;
    font-size:.82rem!important;
    line-height:1.32!important;
  }
  #vaDesktopFormHelper strong:after{
    content:" Position -> direction -> infos -> envoi.";
    font-weight:850;
  }
  #vaDesktopFormHelper span{
    font-size:0!important;
  }
  #vaDesktopFormHelper span strong{
    font-size:.82rem!important;
  }

  /* Mobile : heatmap disponible sans casser la mise en page terrain */
  .va-mobile-heatmap-chip{
    position:absolute;
    right:14px;
    bottom:calc(94px + env(safe-area-inset-bottom));
    z-index:795;
    min-height:42px;
    border:1px solid rgba(17,24,39,.18);
    border-radius:999px;
    background:rgba(255,255,255,.96);
    color:#111827;
    box-shadow:0 10px 24px rgba(0,0,0,.20);
    display:none;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:9px 13px;
    font-size:.68rem;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
    cursor:pointer;
  }
  .va-mobile-heatmap-chip.active{
    background:#111827;
    color:#fff;
    border-color:#111827;
  }
  .va-mobile-heatmap-chip i{color:#f4b400;}
  @media(max-width:700px){
    body.va-terrain-mode .va-mobile-heatmap-chip{display:inline-flex;}
    body.va-terrain-mode.va-form-open .va-mobile-heatmap-chip{display:none!important;}
  }

  /* Heatmap plus lisible, surtout aux croisements */
  .leaflet-overlay-pane canvas{
    filter:saturate(1.55) contrast(1.16)!important;
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* Heatmap plus lisible : moins de nappe rouge, plus de zones d'intersection */
  body.va-heatmap-active .leaflet-overlay-pane canvas{
    opacity:.54!important;
    mix-blend-mode:multiply;
  }
  @media(max-width:700px){
    body.va-heatmap-active .leaflet-overlay-pane canvas{
      opacity:.48!important;
    }
    .va-mobile-heatmap-chip{
      right:10px!important;
      bottom:calc(86px + env(safe-area-inset-bottom))!important;
    }
    body.va-terrain-mode.va-form-open .va-mobile-heatmap-chip{
      display:none!important;
    }
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* V43 - Lecture carte : pas de flèches dans les clusters */
  .flight-cluster-arrow{display:none!important;}
  .flight-cluster-badge{position:relative;}
  .flight-cluster-inner{position:relative;width:100%;height:100%;border-radius:999px;display:flex;align-items:center;justify-content:center;}
  .flight-cluster-count{position:relative;z-index:2;}

  /* V43 - Supprime le bandeau redondant "Infos obligatoires" */
  #vaV41InfosHead,.va-v41-infos-head{display:none!important;}

  /* V43 - Heatmap plus lisible et moins agressive */
  body.va-heatmap-active .leaflet-overlay-pane canvas{opacity:.42!important;mix-blend-mode:multiply;}
  @media(max-width:700px){body.va-heatmap-active .leaflet-overlay-pane canvas{opacity:.36!important;}}

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* On retire visuellement les boutons heatmap/zones : la couche utile devient les cones. */
  #vaFabHeat,
  #vaV32HeatBtn,
  #vaDesktopHeatmapBtn,
  #vaMobileHeatmapChip,
  #btnToggleProbability{
    display:none!important;
  }

  /* Les cones se superposent et foncent naturellement. */
  .va-cone-overlap,
  .va-cone-overlap path{
    mix-blend-mode:multiply;
  }

  .va-gps-panel{
    position:absolute;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-50%);
    z-index:9100;
    width:min(430px,calc(100% - 22px));
    border-radius:18px;
    border:1px solid rgba(244,180,0,.55);
    background:#111827;
    color:#fff;
    box-shadow:0 16px 38px rgba(0,0,0,.32);
    padding:13px;
    display:none;
  }
  .va-gps-panel.show{display:block;}
  .va-gps-panel strong{display:block;font-size:.92rem;line-height:1.35;margin-bottom:6px;}
  .va-gps-panel span{display:block;font-size:.78rem;line-height:1.35;color:#e5e7eb;font-weight:750;margin-bottom:11px;}
  .va-gps-panel .row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .va-gps-panel button{min-height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.18);font-size:.72rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;}
  .va-gps-panel .primary{background:#f4b400;color:#111827;border-color:#f4b400;}
  .va-gps-panel .dark{background:rgba(255,255,255,.08);color:#fff;}

  body.va-manual-position-mode #map,
  body.va-manual-position-mode .leaflet-container{cursor:crosshair!important;}

  @media(max-width:700px){
    body.va-terrain-mode .leaflet-control-zoom{margin-top:92px!important;}
    body.va-terrain-mode .leaflet-control-layers{display:none!important;}
    body.va-terrain-mode .va-field-fab{bottom:calc(86px + env(safe-area-inset-bottom))!important;}
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

.va-gps-helper-toast{
    position:fixed;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-50%) translateY(120px);
    z-index:9500;
    width:min(560px,calc(100% - 24px));
    border-radius:18px;
    background:#111827;
    color:#fff;
    border:1px solid rgba(244,180,0,.55);
    box-shadow:0 18px 42px rgba(0,0,0,.32);
    padding:14px 15px;
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
    font-size:.88rem;
    line-height:1.4;
    font-weight:850;
  }
  .va-gps-helper-toast.show{
    opacity:1;
    transform:translateX(-50%) translateY(0);
    pointer-events:auto;
  }
  .va-gps-helper-toast strong{color:#f4b400;font-weight:950;}
  .va-gps-helper-actions{display:flex;gap:8px;margin-top:11px;}
  .va-gps-helper-actions button{
    flex:1 1 auto;
    min-height:42px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.20);
    background:rgba(255,255,255,.08);
    color:#fff;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
    font-size:.72rem;
    cursor:pointer;
  }
  .va-gps-helper-actions button.primary{
    background:#f4b400;
    color:#111827;
    border-color:#f4b400;
  }
  body.va-map-picking #map,
  body.va-direction-picking #map{cursor:crosshair!important;}
  @media(min-width:701px){
    .va-scroll-highlight-map{
      outline:4px solid rgba(244,180,0,.38);
      outline-offset:4px;
      transition:outline .18s ease;
    }
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

.flight-cluster-arrow{display:none!important;}
  .flight-cluster-inner{overflow:visible!important;}
  .flight-cluster-count{z-index:3!important;}

  .va-manual-position-mode #map,
  .va-manual-position-mode .leaflet-container{cursor:crosshair!important;}

  .va-position-toast{
    position:fixed;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-50%);
    z-index:9800;
    width:min(560px,calc(100% - 24px));
    border-radius:18px;
    border:1px solid rgba(244,180,0,.70);
    background:#111827;
    color:#fff;
    box-shadow:0 18px 44px rgba(0,0,0,.34);
    padding:14px;
    display:none;
    gap:12px;
  }
  .va-position-toast.show{display:grid;}
  .va-position-toast-title{font-size:.98rem;font-weight:950;line-height:1.35;}
  .va-position-toast-text{font-size:.84rem;color:#e5e7eb;line-height:1.35;font-weight:720;}
  .va-position-toast-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
  .va-position-toast-actions button{
    min-height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.08);color:#fff;font-weight:950;letter-spacing:.06em;
    text-transform:uppercase;font-size:.72rem;cursor:pointer;
  }
  .va-position-toast-actions button.primary{background:#f4b400;color:#111827;border-color:#f4b400;}
  .va-position-toast-actions button.dark{background:#fff;color:#111827;border-color:#fff;}

  .va-probability-zone-core{pointer-events:auto;}

  @media(max-width:700px){
    .va-position-toast{bottom:calc(16px + env(safe-area-inset-bottom));}
    .va-position-toast-actions{grid-template-columns:1fr;}
    body.va-terrain-mode.va-manual-position-mode .va-map-field-overlay{display:none!important;}
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* On retire visuellement les boutons heatmap/zones : la couche utile devient les cones. */
  #vaFabHeat,
  #vaV32HeatBtn,
  #vaDesktopHeatmapBtn,
  #vaMobileHeatmapChip,
  #btnToggleProbability{
    display:none!important;
  }

  /* Les cones se superposent et foncent naturellement. */
  .va-cone-overlap,
  .va-cone-overlap path{
    mix-blend-mode:multiply;
  }

  .va-gps-panel{
    position:absolute;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-50%);
    z-index:9100;
    width:min(430px,calc(100% - 22px));
    border-radius:18px;
    border:1px solid rgba(244,180,0,.55);
    background:#111827;
    color:#fff;
    box-shadow:0 16px 38px rgba(0,0,0,.32);
    padding:13px;
    display:none;
  }
  .va-gps-panel.show{display:block;}
  .va-gps-panel strong{display:block;font-size:.92rem;line-height:1.35;margin-bottom:6px;}
  .va-gps-panel span{display:block;font-size:.78rem;line-height:1.35;color:#e5e7eb;font-weight:750;margin-bottom:11px;}
  .va-gps-panel .row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .va-gps-panel button{min-height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.18);font-size:.72rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;}
  .va-gps-panel .primary{background:#f4b400;color:#111827;border-color:#f4b400;}
  .va-gps-panel .dark{background:rgba(255,255,255,.08);color:#fff;}

  body.va-manual-position-mode #map,
  body.va-manual-position-mode .leaflet-container{cursor:crosshair!important;}

  @media(max-width:700px){
    body.va-terrain-mode .leaflet-control-zoom{margin-top:92px!important;}
    body.va-terrain-mode .leaflet-control-layers{display:none!important;}
    body.va-terrain-mode .va-field-fab{bottom:calc(86px + env(safe-area-inset-bottom))!important;}
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

.va-gps-helper-toast{
    position:fixed;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-50%) translateY(120px);
    z-index:9500;
    width:min(560px,calc(100% - 24px));
    border-radius:18px;
    background:#111827;
    color:#fff;
    border:1px solid rgba(244,180,0,.55);
    box-shadow:0 18px 42px rgba(0,0,0,.32);
    padding:14px 15px;
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
    font-size:.88rem;
    line-height:1.4;
    font-weight:850;
  }
  .va-gps-helper-toast.show{
    opacity:1;
    transform:translateX(-50%) translateY(0);
    pointer-events:auto;
  }
  .va-gps-helper-toast strong{color:#f4b400;font-weight:950;}
  .va-gps-helper-actions{display:flex;gap:8px;margin-top:11px;}
  .va-gps-helper-actions button{
    flex:1 1 auto;
    min-height:42px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.20);
    background:rgba(255,255,255,.08);
    color:#fff;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
    font-size:.72rem;
    cursor:pointer;
  }
  .va-gps-helper-actions button.primary{
    background:#f4b400;
    color:#111827;
    border-color:#f4b400;
  }
  body.va-map-picking #map,
  body.va-direction-picking #map{cursor:crosshair!important;}
  @media(min-width:701px){
    .va-scroll-highlight-map{
      outline:4px solid rgba(244,180,0,.38);
      outline-offset:4px;
      transition:outline .18s ease;
    }
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* V34 : le mode terrein n'est plus sur la carte mais dans la barre noire */
  .va-topbar-terrain-btn{
    height:36px;
    border-radius:999px;
    border:1px solid rgba(244,180,0,.50);
    background:rgba(255,255,255,.06);
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 13px;
    cursor:pointer;
    font-size:.70rem;
    line-height:1;
    font-weight:950;
    letter-spacing:.11em;
    text-transform:uppercase;
    white-space:nowrap;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
  }
  .va-topbar-terrain-btn i{color:var(--yellow);} 
  .va-topbar-terrain-btn.active{background:var(--yellow);color:#111827;border-color:var(--yellow);} 
  .va-topbar-terrain-btn.active i{color:#111827;}

  /* On supprime définitivement l'ancien panneau mode terrein posé sur la carte */
  .va-map-field-overlay,
  .va-map-field-overlay.v32-ready,
  body.va-terrain-mode .va-map-field-overlay,
  body.va-terrain-mode .va-map-field-overlay.v32-ready{
    display:none!important;
  }

  @media(min-width:701px){
    /* Desktop : plus aucun morceau de wizard ne doit sortir sous la carte */
    .va-v33-dock{display:none!important;}
    .map-shell .leaflet-control-zoom{margin-top:10px!important;margin-left:10px!important;}
    .map-logo-nests-style{pointer-events:none;}
  }

  @media(max-width:700px){
    body.va-terrain-mode .top-actions{gap:8px!important;}
    body.va-terrain-mode .va-topbar-terrain-btn{
      height:42px;
      padding:0 12px;
      font-size:.63rem;
      letter-spacing:.08em;
      max-width:calc(100vw - 128px);
    }
    body.va-terrain-mode .burger{height:42px;width:44px;}

    /* Le zoom remonte proprement maintenant que le panneau carte a disparu */
    body.va-terrain-mode .leaflet-control-zoom{
      margin-top:12px!important;
      margin-left:10px!important;
    }

    /* Dock terrain : plus de bloc explicatif doublon. Juste étapes + action. */
    body.va-terrain-mode .va-v33-dock{
      left:10px!important;
      right:10px!important;
      bottom:calc(10px + env(safe-area-inset-bottom))!important;
      border-radius:18px!important;
      padding:9px!important;
      background:rgba(255,255,255,.97)!important;
      box-shadow:0 14px 34px rgba(0,0,0,.26)!important;
    }
    body.va-terrain-mode .va-v33-title{
      font-size:.88rem!important;
      margin:4px 2px 2px!important;
    }
    body.va-terrain-mode .va-v33-text{
      display:none!important;
    }
    body.va-terrain-mode .va-v33-status{
      margin-top:7px!important;
      font-size:.72rem!important;
      padding:7px 9px!important;
    }
    body.va-terrain-mode .va-v33-actions button{
      min-height:46px!important;
      font-size:.70rem!important;
      border-radius:14px!important;
    }
    body.va-terrain-mode .va-v33-tabs{margin-bottom:7px!important;}
    body.va-terrain-mode .va-v33-tab{min-height:28px!important;font-size:.58rem!important;}

    /* Sur mobile, le formulaire est un panneau d'étape. Pas d'envoi au point 3. */
    body.va-terrain-mode #encoder-observation .va-sticky-submit{
      position:sticky!important;
      bottom:0!important;
      background:#fff!important;
      padding-top:10px!important;
      margin-top:8px!important;
      z-index:5!important;
    }
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-sticky-submit #submitBtn{
      display:none!important;
    }
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-sticky-submit #resetBtn{
      display:none!important;
    }
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-v34-next-send{
      display:flex!important;
    }
    body.va-terrain-mode.v34-step-send #encoder-observation .va-v34-next-send{
      display:none!important;
    }
    .va-v34-next-send{
      display:none;
      width:100%;
      min-height:52px;
      border:0;
      border-radius:14px;
      background:var(--yellow);
      color:#111827;
      align-items:center;
      justify-content:center;
      gap:9px;
      cursor:pointer;
      font-size:.78rem;
      font-weight:950;
      letter-spacing:.08em;
      text-transform:uppercase;
      margin:8px 0 0;
    }

    /* Le bouton flottant "Déclarer" reste disponible uniquement avant le flux guidé */
    body.va-terrain-mode.v33-active .va-field-fab{display:none!important;}

    /* Les contrôles bas ne masquent pas le navigateur mobile */
    body.va-terrain-mode .map-logo-nests-style{bottom:78px!important;}
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* V35 - Desktop : pas de bouton Mode terrain, pas de dock brut sous la carte */
  @media(min-width:701px){
    #vaTopbarTerrainBtn{display:none!important;}
    #vaV33Dock,.va-v33-dock{display:none!important;}
    body:not(.va-terrain-mode) #vaV33Dock,
    body:not(.va-terrain-mode) .va-v33-dock{display:none!important;}
    .map-shell{overflow:hidden!important;}

    /* Progression desktop plus lisible : l'onglet actif est jaune, les étapes faites sont vertes */
    #stepper .step{transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;}
    #stepper .step.active{background:#f4b400!important;color:#111827!important;border-color:#f4b400!important;box-shadow:0 6px 16px rgba(244,180,0,.20)!important;}
    #stepper .step.done{background:#ecfdf5!important;color:#166534!important;border-color:rgba(22,101,52,.28)!important;}
  }

  /* V35 - Mobile : le bouton Mode terrain reste dans la topbar, jamais sur la carte */
  @media(max-width:700px){
    #vaTopbarTerrainBtn{display:inline-flex!important;}
    .va-map-field-overlay,.va-map-field-overlay.v32-ready{display:none!important;}

    /* Le dock devient une commande courte : pas de popup explicatif noir/redondant */
    body.va-terrain-mode .va-v33-dock{
      left:10px!important;right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;
      padding:9px!important;border-radius:18px!important;background:rgba(255,255,255,.98)!important;
      color:#111827!important;box-shadow:0 14px 34px rgba(0,0,0,.24)!important;
      border:1px solid rgba(17,24,39,.12)!important;z-index:8100!important;
    }
    body.va-terrain-mode .va-v33-title,
    body.va-terrain-mode .va-v33-text,
    body.va-terrain-mode .va-v33-status{display:none!important;}
    body.va-terrain-mode .va-v33-tabs{margin:0 0 8px!important;gap:6px!important;}
    body.va-terrain-mode .va-v33-tab{min-height:30px!important;font-size:.58rem!important;border-radius:999px!important;}
    body.va-terrain-mode .va-v33-tab.active{background:#111827!important;color:#fff!important;border-color:#111827!important;}
    body.va-terrain-mode .va-v33-tab.done{background:#fff8e6!important;color:#6b4f00!important;border-color:rgba(244,180,0,.65)!important;}
    body.va-terrain-mode .va-v33-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;}
    body.va-terrain-mode .va-v33-actions button{min-height:48px!important;border-radius:15px!important;font-size:.70rem!important;}

    /* Etape 3 = infos uniquement. Aucun envoi direct avant l'étape 4. */
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-sticky-submit #submitBtn,
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-sticky-submit #resetBtn{display:none!important;}
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-v34-next-send{display:flex!important;}
    body.va-terrain-mode.v34-step-send #encoder-observation .va-v34-next-send{display:none!important;}
    body.va-terrain-mode.v34-step-send #encoder-observation .va-sticky-submit #submitBtn,
    body.va-terrain-mode.v34-step-send #encoder-observation .va-sticky-submit #resetBtn{display:flex!important;}

    /* Formulaire mobile plus court et mieux cadré */
    body.va-terrain-mode #encoder-observation{max-height:68svh!important;}
    body.va-terrain-mode #encoder-observation h3{font-size:.78rem!important;letter-spacing:.14em!important;}
    body.va-terrain-mode #encoder-observation .form-group:has(#observer_name){display:none!important;}
    body.va-terrain-mode #encoder-observation .form-group.full:has(#commentaire){display:flex!important;}
    body.va-terrain-mode #encoder-observation textarea{min-height:60px!important;}

    /* Quand le formulaire est ouvert, le dock disparaît : une seule action visible à la fois */
    body.va-terrain-mode.va-form-open .va-v33-dock{display:none!important;}
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* V36 - Nettoyage desktop : aucun module terrain sur la carte, pas de bouton intermédiaire */
  @media(min-width:701px){
    #vaTopbarTerrainBtn,
    #vaV33Dock,
    .va-v33-dock,
    .va-map-field-overlay,
    #vaV34NextSend,
    .va-v34-next-send{
      display:none!important;
    }

    #stepper .step{
      background:#f9fafb!important;
      color:#6b7280!important;
      border-color:rgba(17,24,39,.12)!important;
      box-shadow:none!important;
    }
    #stepper .step.done{
      background:#ecfdf5!important;
      color:#166534!important;
      border-color:rgba(22,101,52,.35)!important;
    }
    #stepper .step.active{
      background:#f4b400!important;
      color:#111827!important;
      border-color:#f4b400!important;
      box-shadow:0 8px 18px rgba(244,180,0,.22)!important;
    }
  }

  /* V36 - Mobile terrain : carte plein ecran + dock unique, sans popup redondante */
  @media(max-width:700px){
    #vaTopbarTerrainBtn{
      display:inline-flex!important;
      min-height:44px!important;
      padding:0 16px!important;
      border-radius:999px!important;
      background:#f4b400!important;
      color:#111827!important;
      border:1px solid rgba(244,180,0,.85)!important;
      font-size:.72rem!important;
      letter-spacing:.12em!important;
      font-weight:950!important;
      text-transform:uppercase!important;
      align-items:center!important;
      justify-content:center!important;
      gap:8px!important;
      white-space:nowrap!important;
    }

    .va-map-field-overlay,
    .va-map-field-overlay.v32-ready,
    .va-field-step-main,
    .va-field-step-text,
    .va-field-step-title,
    .va-map-field-current{
      display:none!important;
    }

    body.va-terrain-mode .va-v33-dock{
      position:fixed!important;
      left:10px!important;
      right:10px!important;
      bottom:calc(10px + env(safe-area-inset-bottom))!important;
      z-index:8100!important;
      display:block!important;
      padding:10px!important;
      border-radius:20px!important;
      background:rgba(255,255,255,.98)!important;
      border:1px solid rgba(17,24,39,.14)!important;
      box-shadow:0 16px 36px rgba(0,0,0,.26)!important;
      color:#111827!important;
    }
    body.va-terrain-mode .va-v33-title,
    body.va-terrain-mode .va-v33-text,
    body.va-terrain-mode .va-v33-status{
      display:none!important;
    }
    body.va-terrain-mode .va-v33-tabs{
      display:grid!important;
      grid-template-columns:repeat(4,minmax(0,1fr))!important;
      gap:7px!important;
      margin:0 0 10px!important;
    }
    body.va-terrain-mode .va-v33-tab{
      min-height:36px!important;
      border-radius:999px!important;
      border:1px solid rgba(17,24,39,.14)!important;
      background:#fff!important;
      color:#374151!important;
      font-size:.62rem!important;
      font-weight:950!important;
      letter-spacing:.04em!important;
      text-transform:uppercase!important;
      display:flex!important;
      align-items:center!important;
      justify-content:center!important;
      padding:6px!important;
    }
    body.va-terrain-mode .va-v33-tab.active{
      background:#111827!important;
      color:#fff!important;
      border-color:#111827!important;
    }
    body.va-terrain-mode .va-v33-tab.done{
      background:#fff8e6!important;
      color:#6b4f00!important;
      border-color:rgba(244,180,0,.70)!important;
    }

    body.va-terrain-mode .va-v33-actions{
      display:grid!important;
      grid-template-columns:1fr 1fr!important;
      gap:10px!important;
    }
    body.va-terrain-mode .va-v33-actions button{
      min-height:58px!important;
      border-radius:18px!important;
      border:1px solid rgba(17,24,39,.13)!important;
      background:#fff!important;
      color:#111827!important;
      font-size:.76rem!important;
      font-weight:950!important;
      letter-spacing:.08em!important;
      text-transform:uppercase!important;
      box-shadow:none!important;
    }
    body.va-terrain-mode .va-v33-actions button.primary,
    body.va-terrain-mode .va-v33-actions button.dark{
      background:#f4b400!important;
      color:#111827!important;
      border-color:#f4b400!important;
    }

    /* Pendant le choix sur carte, le dock se retire pour laisser toute la carte cliquable */
    body.va-map-picking .va-v33-dock,
    body.va-direction-picking .va-v33-dock{
      display:none!important;
    }

    .va-mobile-map-hint{
      position:fixed;
      left:10px;
      right:10px;
      top:calc(var(--topbarH) + 10px);
      z-index:8150;
      display:none;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:12px 13px;
      border-radius:16px;
      background:rgba(17,24,39,.94);
      color:#fff;
      border:1px solid rgba(244,180,0,.45);
      box-shadow:0 12px 30px rgba(0,0,0,.25);
      font-size:.82rem;
      font-weight:900;
      line-height:1.25;
    }
    body.va-map-picking .va-mobile-map-hint,
    body.va-direction-picking .va-mobile-map-hint{
      display:flex;
    }
    .va-mobile-map-hint button{
      border:1px solid rgba(255,255,255,.18);
      background:rgba(255,255,255,.10);
      color:#fff;
      border-radius:999px;
      min-height:34px;
      padding:6px 10px;
      font-size:.68rem;
      font-weight:950;
      text-transform:uppercase;
      letter-spacing:.05em;
      flex:0 0 auto;
    }

    /* Formulaire mobile : l'etape 3 est uniquement infos, l'envoi n'apparait qu'en etape 4 */
    body.va-terrain-mode #encoder-observation .form-group:has(#nombre_individus),
    body.va-terrain-mode #encoder-observation .form-group:has(#comportement),
    body.va-terrain-mode #encoder-observation .form-group.full:has(#commentaire),
    body.va-terrain-mode #encoder-observation .form-group:has(#observer_email){
      display:flex!important;
    }
    body.va-terrain-mode #encoder-observation .form-group:has(#observer_name),
    body.va-terrain-mode #encoder-observation .form-group.full:has(.actions-row),
    body.va-terrain-mode #encoder-observation .form-group.full:has(.direction-pad),
    body.va-terrain-mode #encoder-observation .form-group.full:has(.precision-choice-row),
    body.va-terrain-mode #encoder-observation .public-form-helper,
    body.va-terrain-mode #encoder-observation .stepper,
    body.va-terrain-mode #encoder-observation .warning-code-box,
    body.va-terrain-mode #encoder-observation .field-help,
    body.va-terrain-mode #encoder-observation .select-hint,
    body.va-terrain-mode #encoder-observation .va-field-mode-card{
      display:none!important;
    }

    body.va-terrain-mode #encoder-observation .va-sticky-submit{
      position:sticky!important;
      bottom:0!important;
      background:#fff!important;
      border-top:1px solid rgba(17,24,39,.08)!important;
      padding:10px 0 4px!important;
      display:flex!important;
      flex-direction:column!important;
      gap:9px!important;
    }
    body.va-terrain-mode:not(.v34-step-send) #encoder-observation .va-sticky-submit,
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-sticky-submit{
      display:none!important;
    }
    body.va-terrain-mode.v34-step-send #encoder-observation .va-sticky-submit{
      display:flex!important;
    }
    body.va-terrain-mode #vaV34NextSend,
    body.va-terrain-mode .va-v34-next-send{
      display:none!important;
    }

    body.va-terrain-mode #nombre_individus:required,
    body.va-terrain-mode #comportement:required{
      border-color:rgba(244,180,0,.85)!important;
    }
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* Supprime definitivement les anciens boutons/panneaux de validation intermediaires */
  #vaV34NextSend,
  .va-v34-next-send{
    display:none!important;
  }

  /* Desktop : action rapide directement depuis la carte */
  @media(min-width:701px){
    .va-desktop-map-action{
      position:absolute;
      right:18px;
      top:18px;
      z-index:780;
      display:flex;
      align-items:center;
      gap:8px;
      min-height:44px;
      padding:10px 14px;
      border-radius:999px;
      border:2px solid #111827;
      background:#f4b400;
      color:#111827;
      box-shadow:0 12px 28px rgba(0,0,0,.20);
      font-size:.76rem;
      font-weight:950;
      letter-spacing:.08em;
      text-transform:uppercase;
      cursor:pointer;
    }

    .va-desktop-map-action:hover{
      transform:translateY(-1px);
      box-shadow:0 14px 32px rgba(0,0,0,.24);
    }

    .va-desktop-form-helper{
      margin:0 0 12px;
      padding:11px 13px;
      border-radius:14px;
      border:1px solid rgba(244,180,0,.45);
      background:#fff8e6;
      color:#6b4f00;
      font-size:.86rem;
      line-height:1.35;
      font-weight:820;
      display:flex;
      align-items:flex-start;
      gap:9px;
    }

    .va-desktop-form-helper i{
      color:#b26a00;
      margin-top:2px;
      flex:0 0 auto;
    }

    #stepper .step{
      position:relative;
      overflow:hidden;
      transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
    }

    #stepper .step.active{
      background:#f4b400!important;
      color:#111827!important;
      border-color:#f4b400!important;
      box-shadow:0 8px 18px rgba(244,180,0,.24)!important;
    }

    #stepper .step.done{
      background:#ecfdf5!important;
      color:#166534!important;
      border-color:rgba(22,101,52,.35)!important;
    }

    #stepper .step.active:after{
      content:"";
      position:absolute;
      left:0;
      bottom:0;
      width:100%;
      height:4px;
      background:#111827;
      opacity:.28;
    }

    .va-scroll-target{
      outline:3px solid rgba(244,180,0,.34);
      outline-offset:3px;
      transition:outline .18s ease;
    }
  }

  /* Mobile : etape 3 = infos, etape 4 = envoi. Pas de doublon. */
  @media(max-width:700px){
    body.va-terrain-mode.v34-step-infos #encoder-observation .va-sticky-submit{
      display:flex!important;
      position:sticky!important;
      bottom:0!important;
      background:#fff!important;
      border-top:1px solid rgba(17,24,39,.08)!important;
      padding:10px 0 4px!important;
      flex-direction:column!important;
      gap:9px!important;
    }

    body.va-terrain-mode.v34-step-infos #submitBtn{
      display:none!important;
    }

    body.va-terrain-mode.v34-step-infos #resetBtn{
      display:none!important;
    }

    body.va-terrain-mode.v34-step-send #encoder-observation .va-sticky-submit{
      display:flex!important;
      position:sticky!important;
      bottom:0!important;
      background:#fff!important;
      border-top:1px solid rgba(17,24,39,.08)!important;
      padding:10px 0 4px!important;
      flex-direction:column!important;
      gap:9px!important;
    }

    body.va-terrain-mode.v34-step-send #submitBtn,
    body.va-terrain-mode.v34-step-send #resetBtn{
      display:inline-flex!important;
      width:100%!important;
    }

    .va-mobile-next-send{
      display:none;
      width:100%;
      min-height:56px;
      border-radius:16px;
      border:0;
      background:#f4b400;
      color:#111827;
      font-size:.82rem;
      font-weight:950;
      letter-spacing:.08em;
      text-transform:uppercase;
      cursor:pointer;
      align-items:center;
      justify-content:center;
      gap:8px;
      box-shadow:0 10px 22px rgba(0,0,0,.14);
    }

    body.va-terrain-mode.v34-step-infos .va-mobile-next-send{
      display:flex!important;
    }

    body.va-terrain-mode.v34-step-send .va-mobile-next-send{
      display:none!important;
    }

    body.va-terrain-mode #encoder-observation{
      padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;
    }

    body.va-terrain-mode #nombre_individus:invalid,
    body.va-terrain-mode #comportement:invalid{
      border-color:#dc2626!important;
      box-shadow:0 0 0 3px rgba(220,38,38,.10)!important;
    }
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* Bouton inutile en desktop : le flux se fait via le bouton carte + stepper */
  @media(min-width:701px){
    #vaDesktopNextStep,
    button[data-va-action="continue-send"],
    .va-desktop-next-send{
      display:none!important;
    }
  }

  /* Heatmap plus lisible sans transformer la carte en dashboard PRO */
  .leaflet-overlay-pane canvas{
    filter:saturate(1.35) contrast(1.08);
  }

  .va-desktop-heatmap-action.active,
  #vaDesktopHeatmapBtn.active{
    background:#f4b400!important;
    color:#111827!important;
    border-color:#111827!important;
    box-shadow:0 10px 24px rgba(244,180,0,.32)!important;
  }

  /* Erreurs select plus propres sur mobile */
  body.va-terrain-mode #nombre_individus.has-va-error,
  body.va-terrain-mode #comportement.has-va-error{
    border-color:#dc2626!important;
    box-shadow:0 0 0 4px rgba(220,38,38,.13)!important;
  }

/* ===== SPLIT FROM ORIGINAL signaler-vol.php ===== */

/* Mettre en evidence les infos obligatoires au moment ou l'utilisateur doit les completer */
  .va-infos-required-box{
    display:none;
    margin:10px 0 14px;
    padding:12px 14px;
    border-radius:14px;
    border:1px solid rgba(244,180,0,.55);
    background:linear-gradient(180deg,#fffef7 0%,#fff8e6 100%);
    color:#111827;
    font-size:.88rem;
    line-height:1.42;
    font-weight:820;
  }
  .va-infos-required-box strong{font-weight:950;}
  .va-infos-required-box i{color:#b26a00;margin-right:7px;}

  body.v34-step-infos .va-infos-required-box,
  body.v34-step-send .va-infos-required-box,
  body.va-step-infos .va-infos-required-box,
  body.va-step-send .va-infos-required-box{
    display:block;
  }

  .va-required-label:after{
    content:" obligatoire";
    margin-left:8px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:#111827;
    color:#f4b400;
    padding:3px 7px;
    font-size:.58rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    vertical-align:middle;
  }

  #nombre_individus.va-attention,
  #comportement.va-attention{
    border-color:#f4b400!important;
    box-shadow:0 0 0 4px rgba(244,180,0,.17)!important;
    background:#fffdf0!important;
  }
  #nombre_individus.has-va-error,
  #comportement.has-va-error{
    border-color:#dc2626!important;
    box-shadow:0 0 0 4px rgba(220,38,38,.13)!important;
    background:#fff!important;
  }

  .va-field-inline-error{
    display:none;
    margin-top:5px;
    color:#b91c1c;
    font-size:12px;
    line-height:1.35;
    font-weight:900;
  }
  .form-group.va-has-inline-error .va-field-inline-error{display:block;}

  /* Progression desktop plus lisible : l'onglet courant devient vraiment la prochaine action */
  @media(min-width:701px){
    .step.active,
    .step[data-state="active"]{
      background:#f4b400!important;
      color:#111827!important;
      border-color:#f4b400!important;
      box-shadow:0 8px 18px rgba(244,180,0,.22)!important;
    }
    .step.done,
    .step[data-state="done"]{
      background:#ecfdf5!important;
      color:#166534!important;
      border-color:rgba(22,101,52,.26)!important;
    }
  }

  /* Mobile : on garde le flux ultra simple, mais les infos obligatoires sont visibles */
  @media(max-width:700px){
    body.va-terrain-mode .va-infos-required-box{
      display:block!important;
      margin:0 0 12px;
      padding:11px 12px;
      font-size:.80rem;
    }
    body.va-terrain-mode .va-required-label:after{
      font-size:.52rem;
      padding:2px 6px;
    }
    body.va-terrain-mode #nombre_individus.va-attention,
    body.va-terrain-mode #comportement.va-attention{
      box-shadow:0 0 0 5px rgba(244,180,0,.18)!important;
    }
  }

  /* Heatmap mieux perceptible quand elle est active */
  body.va-heatmap-active .leaflet-overlay-pane canvas{
    filter:saturate(1.65) contrast(1.18) opacity(.98)!important;
  }

  .va-activity-threshold-note{
    display:none;
    margin-top:8px;
    padding:9px 10px;
    border-radius:12px;
    background:#fff8e6;
    border:1px solid rgba(244,180,0,.38);
    color:#6b4f00;
    font-size:.75rem;
    line-height:1.35;
    font-weight:760;
  }
  .map-legend-body .va-activity-threshold-note{display:block;}

/* V54 split: hide any legacy cluster arrows if old HTML is cached */
.flight-cluster-arrow{display:none!important;}


/* =========================================================
   V56 - MOBILE TERRAIN TYPE APPLICATION
   Référence : logo + bouton Mode terrain + burger, carte plein écran,
   dock bas compact en 4 étapes.
========================================================= */
.va-mobile-terrain-btn{display:none;}

@media(max-width:700px){
  body.va-terrain-mode{background:#000!important;}

  body.va-terrain-mode .topbar{
    height:var(--topbarH)!important;
    background:#000!important;
    border-bottom:0!important;
    z-index:9000!important;
  }

  body.va-terrain-mode .topbar-inner{
    height:var(--topbarH)!important;
    padding:7px 10px!important;
    display:grid!important;
    grid-template-columns:58px 1fr 58px!important;
    gap:10px!important;
    align-items:center!important;
    max-width:none!important;
  }

  body.va-terrain-mode .brand{
    width:58px!important;
    height:46px!important;
    display:flex!important;
    justify-content:flex-start!important;
    align-items:center!important;
  }

  body.va-terrain-mode .brand img{
    width:46px!important;
    height:46px!important;
    background:#fff!important;
    border-radius:0!important;
    padding:2px!important;
    object-fit:contain!important;
  }

  body.va-terrain-mode .brand-txt,
  body.va-terrain-mode .search{display:none!important;}

  body.va-terrain-mode .top-actions{
    display:contents!important;
  }

  body.va-terrain-mode .va-mobile-terrain-btn{
    display:flex!important;
    grid-column:2!important;
    height:46px!important;
    min-width:0!important;
    width:100%!important;
    border:0!important;
    border-radius:999px!important;
    background:var(--yellow)!important;
    color:#111827!important;
    align-items:center!important;
    justify-content:center!important;
    gap:11px!important;
    padding:0 14px!important;
    font-size:.84rem!important;
    font-weight:950!important;
    letter-spacing:.16em!important;
    text-transform:uppercase!important;
    box-shadow:0 10px 20px rgba(0,0,0,.24)!important;
    white-space:nowrap!important;
  }

  body.va-terrain-mode .va-mobile-terrain-btn i{font-size:.86rem!important;}

  body.va-terrain-mode .burger{
    grid-column:3!important;
    width:58px!important;
    height:46px!important;
    border-radius:16px!important;
    border:1px solid rgba(255,255,255,.22)!important;
    background:#111!important;
    font-size:1.15rem!important;
  }

  body.va-terrain-mode .hero,
  body.va-terrain-mode .panel-hd,
  body.va-terrain-mode .va-reading-box,
  body.va-terrain-mode .va-activity-explain,
  body.va-terrain-mode .guide-card,
  body.va-terrain-mode .footer{display:none!important;}

  body.va-terrain-mode .wrap,
  body.va-terrain-mode .page,
  body.va-terrain-mode main,
  body.va-terrain-mode .panel,
  body.va-terrain-mode .panel-bd,
  body.va-terrain-mode .main-stack,
  body.va-terrain-mode .map-shell{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:var(--topbarH)!important;
    bottom:0!important;
    width:100%!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }

  body.va-terrain-mode .panel:before,
  body.va-terrain-mode .map-shell:before{display:none!important;}

  body.va-terrain-mode #map{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    touch-action:pan-x pan-y!important;
  }

  body.va-terrain-mode .va-map-field-overlay,
  body.va-terrain-mode .va-field-fab,
  body.va-terrain-mode .map-legend-control{display:none!important;}

  body.va-terrain-mode .leaflet-control-zoom{
    margin-top:10px!important;
    margin-left:10px!important;
  }

  body.va-terrain-mode .leaflet-control-zoom a{
    width:42px!important;
    height:42px!important;
    line-height:42px!important;
    font-size:1.55rem!important;
  }

  body.va-terrain-mode .leaflet-control-layers{
    margin-top:10px!important;
    margin-right:10px!important;
    border-radius:10px!important;
    overflow:hidden!important;
    box-shadow:0 8px 18px rgba(0,0,0,.20)!important;
  }

  body.va-terrain-mode .map-logo-nests-style{
    width:48px!important;
    height:48px!important;
    left:10px!important;
    bottom:calc(128px + env(safe-area-inset-bottom))!important;
    z-index:760!important;
  }

  body.va-terrain-mode .va-v33-dock{
    position:absolute!important;
    left:10px!important;
    right:10px!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    z-index:8300!important;
    display:block!important;
    background:rgba(255,255,255,.97)!important;
    border:1px solid rgba(17,24,39,.10)!important;
    border-radius:22px!important;
    box-shadow:0 16px 38px rgba(0,0,0,.28)!important;
    padding:10px!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
  }

  body.va-terrain-mode.va-form-open .va-v33-dock,
  body.va-map-picking .va-v33-dock,
  body.va-direction-picking .va-v33-dock{display:none!important;}

  body.va-terrain-mode .va-v33-title,
  body.va-terrain-mode .va-v33-text,
  body.va-terrain-mode .va-v33-status{display:none!important;}

  body.va-terrain-mode .va-v33-tabs{
    display:grid!important;
    grid-template-columns:repeat(4,1fr)!important;
    gap:8px!important;
    margin:0 0 10px!important;
  }

  body.va-terrain-mode .va-v33-tab{
    min-height:40px!important;
    border-radius:999px!important;
    border:1px solid rgba(17,24,39,.12)!important;
    background:#fff!important;
    color:#111827!important;
    font-size:.70rem!important;
    font-weight:950!important;
    letter-spacing:.05em!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    padding:0 8px!important;
  }

  body.va-terrain-mode .va-v33-tab.active{
    background:#111827!important;
    color:#fff!important;
    border-color:#111827!important;
  }

  body.va-terrain-mode .va-v33-tab.done{
    background:#fff8e6!important;
    color:#6b4f00!important;
    border-color:rgba(244,180,0,.65)!important;
  }

  body.va-terrain-mode .va-v33-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }

  body.va-terrain-mode .va-v33-actions button{
    min-height:66px!important;
    border-radius:18px!important;
    border:1px solid rgba(17,24,39,.12)!important;
    background:#fff!important;
    color:#111827!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    padding:8px 10px!important;
    font-size:.82rem!important;
    font-weight:950!important;
    letter-spacing:.13em!important;
    text-transform:uppercase!important;
    box-shadow:none!important;
  }

  body.va-terrain-mode .va-v33-actions button.primary,
  body.va-terrain-mode .va-v33-actions button.dark{
    background:var(--yellow)!important;
    border-color:var(--yellow)!important;
    color:#111827!important;
  }

  body.va-terrain-mode #encoder-observation{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    top:auto!important;
    z-index:8500!important;
    max-height:78svh!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    border-radius:22px 22px 0 0!important;
    border:0!important;
    box-shadow:0 -16px 38px rgba(0,0,0,.34)!important;
    padding:12px 14px calc(14px + env(safe-area-inset-bottom))!important;
    transform:translateY(calc(100% + 28px))!important;
    transition:transform .22s ease!important;
  }

  body.va-terrain-mode.va-form-open #encoder-observation{transform:translateY(0)!important;}
}

@media(max-width:380px){
  body.va-terrain-mode .va-mobile-terrain-btn{font-size:.72rem!important;letter-spacing:.12em!important;}
  body.va-terrain-mode .va-v33-tab{font-size:.62rem!important;padding:0 5px!important;}
  body.va-terrain-mode .va-v33-actions button{font-size:.72rem!important;letter-spacing:.10em!important;min-height:58px!important;}
}

/* ========================================================= */
/* V61 FINAL - mobile UX compact + declare carte + fleches courtes */
/* ========================================================= */
.va-cone-overlap,
.va-cone-overlap path{
  mix-blend-mode:multiply;
}

@media(max-width:700px){
  body.va-terrain-mode .leaflet-control-layers{
    display:block!important;
    margin-top:10px!important;
    margin-right:10px!important;
    z-index:780!important;
  }

  body.va-terrain-mode .leaflet-control-scale{
    display:block!important;
    margin-left:10px!important;
    margin-bottom:calc(190px + env(safe-area-inset-bottom))!important;
    z-index:760!important;
  }

  body.va-terrain-mode .leaflet-control-attribution{
    margin-bottom:calc(176px + env(safe-area-inset-bottom))!important;
  }

  body.va-terrain-mode .map-logo-nests-style{
    bottom:calc(202px + env(safe-area-inset-bottom))!important;
    width:46px!important;
    height:46px!important;
  }

  body.va-terrain-mode .va-v33-dock{
    padding:10px!important;
    border-radius:22px!important;
  }

  body.va-terrain-mode .va-v33-tabs{
    margin-bottom:9px!important;
  }

  body.va-terrain-mode .va-v33-actions{
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
  }

  body.va-terrain-mode .va-v33-actions button{
    min-height:54px!important;
    border-radius:17px!important;
  }

  body.va-terrain-mode .va-v33-utility{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    margin-top:8px!important;
  }

  body.va-terrain-mode .va-v33-utility button{
    min-height:38px!important;
    border-radius:999px!important;
    border:1px solid rgba(17,24,39,.12)!important;
    background:#fff!important;
    color:#111827!important;
    font-size:.64rem!important;
    font-weight:950!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
  }

  body.va-terrain-mode .va-v33-status{
    display:block!important;
    margin-top:8px!important;
    padding:7px 9px!important;
    font-size:.70rem!important;
  }

  body.va-map-picking .va-v33-dock,
  body.va-direction-picking .va-v33-dock{
    opacity:.92!important;
  }
}

@media(min-width:701px){
  .va-v33-utility{display:none!important;}
}


/* ========================================================= */
/* V61 FINAL - UX mobile compact + declaration carte         */
/* ========================================================= */
.va-observation-dot{
  width:18px!important;
  height:18px!important;
  border-width:3px!important;
  box-shadow:0 0 0 3px rgba(244,180,0,.22),0 4px 10px rgba(0,0,0,.26)!important;
}
.va-observation-dot.selected{
  width:22px!important;
  height:22px!important;
  border-width:3px!important;
  box-shadow:0 0 0 5px rgba(244,180,0,.30),0 6px 16px rgba(0,0,0,.30)!important;
}
.va-direction-handle{
  width:30px!important;
  height:30px!important;
  border-width:4px!important;
  box-shadow:0 8px 20px rgba(0,0,0,.30),0 0 0 5px rgba(244,180,0,.18)!important;
}
.va-cone-overlap,
.va-cone-overlap path{
  mix-blend-mode:multiply;
}

.va-map-top-declare-btn{display:none;}

@media(max-width:700px){
  body.va-terrain-mode .topbar{
    padding-bottom:6px!important;
  }
  body.va-terrain-mode .wrap,
  body.va-terrain-mode .page,
  body.va-terrain-mode main,
  body.va-terrain-mode .panel,
  body.va-terrain-mode .panel-bd,
  body.va-terrain-mode .main-stack,
  body.va-terrain-mode .map-shell{
    top:calc(var(--topbarH) + 6px)!important;
  }
  body.va-terrain-mode #map{
    border-top:1px solid rgba(255,255,255,.08)!important;
  }

  body.va-terrain-mode .va-map-top-declare-btn{
    display:flex!important;
    position:absolute;
    right:72px;
    top:10px;
    z-index:820;
    min-height:42px;
    padding:0 13px;
    border-radius:999px;
    border:1px solid rgba(17,24,39,.16);
    background:rgba(255,255,255,.96);
    color:#111827;
    box-shadow:0 10px 24px rgba(0,0,0,.20);
    align-items:center;
    justify-content:center;
    gap:7px;
    font-size:.66rem;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  body.va-terrain-mode .va-map-top-declare-btn i{color:#b26a00;}

  body.va-terrain-mode .leaflet-control-layers{
    margin-top:60px!important;
  }
  body.va-terrain-mode .leaflet-control-zoom{
    margin-top:50px!important;
  }
  body.va-terrain-mode .leaflet-control-scale{
    margin-bottom:calc(142px + env(safe-area-inset-bottom))!important;
  }
  body.va-terrain-mode .leaflet-control-attribution{
    margin-bottom:calc(132px + env(safe-area-inset-bottom))!important;
  }
  body.va-terrain-mode .map-logo-nests-style{
    bottom:calc(152px + env(safe-area-inset-bottom))!important;
    width:42px!important;
    height:42px!important;
  }

  body.va-terrain-mode .va-v33-dock{
    left:10px!important;
    right:10px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    padding:8px!important;
    border-radius:18px!important;
    max-height:142px!important;
    overflow:hidden!important;
  }
  body.va-terrain-mode .va-v33-title,
  body.va-terrain-mode .va-v33-text,
  body.va-terrain-mode .va-map-declare-btn{
    display:none!important;
  }
  body.va-terrain-mode .va-v33-tabs{
    margin:0 0 6px!important;
    gap:5px!important;
  }
  body.va-terrain-mode .va-v33-tab{
    min-height:28px!important;
    font-size:.56rem!important;
    padding:4px 5px!important;
    letter-spacing:.02em!important;
  }
  body.va-terrain-mode .va-v33-tab.done{
    background:#e9f9ee!important;
    color:#166534!important;
    border-color:rgba(22,101,52,.36)!important;
  }
  body.va-terrain-mode .va-v33-tab.done:after{
    content:'✓';
    margin-left:4px;
    font-weight:950;
  }
  body.va-terrain-mode .va-v33-actions{
    gap:7px!important;
    margin:0!important;
  }
  body.va-terrain-mode .va-v33-actions button{
    min-height:44px!important;
    border-radius:14px!important;
    font-size:.68rem!important;
    letter-spacing:.08em!important;
    padding:8px 8px!important;
  }
  body.va-terrain-mode .va-v33-status{
    margin-top:6px!important;
    padding:5px 8px!important;
    font-size:.66rem!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body.va-terrain-mode .va-v33-utility{
    gap:6px!important;
    margin-top:6px!important;
  }
  body.va-terrain-mode .va-v33-utility button{
    min-height:30px!important;
    font-size:.58rem!important;
    padding:5px 8px!important;
  }
  body.va-map-picking .va-v33-dock,
  body.va-direction-picking .va-v33-dock{
    display:block!important;
    opacity:.82!important;
    pointer-events:none!important;
  }
  body.va-terrain-mode.va-form-open .va-v33-dock{
    display:none!important;
  }
}

@media(max-width:380px){
  body.va-terrain-mode .va-map-top-declare-btn{right:64px;font-size:.58rem;padding:0 10px;}
  body.va-terrain-mode .va-v33-dock{max-height:134px!important;}
  body.va-terrain-mode .va-v33-actions button{min-height:40px!important;font-size:.62rem!important;}
}


/* ========================================================= */
/* VESPA ALERT V62 - CORRECTIONS FINALES DEMANDEES           */
/* ========================================================= */
:root{--va-mobile-dock-h:132px;}

/* Superposition scientifique : les cones s'additionnent visuellement. */
.va-cone-overlap{
  mix-blend-mode:multiply;
}

/* Points jaunes legerement reduits, mais restent lisibles au doigt. */
.va-observation-dot{
  width:18px!important;
  height:18px!important;
  border-width:3px!important;
  box-shadow:0 0 0 4px rgba(244,180,0,.22),0 5px 13px rgba(0,0,0,.26)!important;
}
.va-observation-dot.selected{
  width:20px!important;
  height:20px!important;
  box-shadow:0 0 0 5px rgba(244,180,0,.26),0 7px 16px rgba(0,0,0,.30)!important;
}
.va-direction-handle{
  width:30px!important;
  height:30px!important;
  border-width:4px!important;
}

/* Cluster parfaitement centre : corrige les nombres comme 44 sur mobile. */
.flight-cluster-badge{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  font-variant-numeric:tabular-nums!important;
  letter-spacing:0!important;
  overflow:hidden!important;
}
.flight-cluster-count{
  display:block!important;
  transform:none!important;
  line-height:1!important;
  padding:0!important;
  margin:0!important;
}
.flight-cluster-badge.small{width:40px!important;height:40px!important;font-size:.95rem!important;border-width:4px!important;}
.flight-cluster-badge.medium{width:46px!important;height:46px!important;font-size:1rem!important;border-width:4px!important;}
.flight-cluster-badge.large{width:52px!important;height:52px!important;font-size:1.05rem!important;border-width:4px!important;}

/* Bouton declarer : desktop uniquement, position identique a la version desktop de reference. */
.va-map-top-declare-btn{display:none!important;}
@media(min-width:701px){
  .va-map-top-declare-btn{
    display:inline-flex!important;
    position:absolute!important;
    top:16px!important;
    right:16px!important;
    z-index:760!important;
    min-height:48px!important;
    padding:0 18px!important;
    border-radius:999px!important;
    border:2px solid #111827!important;
    background:var(--yellow)!important;
    color:#111827!important;
    box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
    align-items:center!important;
    justify-content:center!important;
    gap:9px!important;
    font-size:.78rem!important;
    font-weight:950!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    cursor:pointer!important;
    white-space:nowrap!important;
  }
  .va-map-top-declare-btn i{color:#111827!important;}
}
@media(max-width:700px){
  .va-map-top-declare-btn{display:none!important;}
}

/* Desktop : en zoom lointain, les clusters restent propres, sans fleches visibles. */
@media(min-width:701px){
  .map-shell .leaflet-control-layers{margin-top:56px!important;}
}

/* Mobile : topbar plus respirante et mode terrein non colle a la carte. */
@media(max-width:700px){
  :root{--topbarH:88px!important;}
  body.va-terrain-mode{padding-top:var(--topbarH)!important;background:#000!important;}
  body.va-terrain-mode .topbar-inner{
    min-height:88px!important;
    padding:10px 14px!important;
    gap:10px!important;
  }
  body.va-terrain-mode .brand img{width:42px!important;height:42px!important;}
  body.va-terrain-mode .va-mobile-terrain-btn{
    position:static!important;
    display:inline-flex!important;
    flex:1 1 auto!important;
    min-width:0!important;
    height:52px!important;
    max-width:none!important;
    padding:0 14px!important;
    border-radius:999px!important;
    font-size:.78rem!important;
    letter-spacing:.18em!important;
    justify-content:center!important;
  }
  body.va-terrain-mode .burger{width:52px!important;height:52px!important;border-radius:16px!important;}

  body.va-terrain-mode .wrap,
  body.va-terrain-mode .page,
  body.va-terrain-mode main,
  body.va-terrain-mode .panel,
  body.va-terrain-mode .panel-bd,
  body.va-terrain-mode .main-stack,
  body.va-terrain-mode .map-shell{
    top:var(--topbarH)!important;
  }
  body.va-terrain-mode #map{height:calc(100svh - var(--topbarH))!important;}
  body.va-terrain-mode .leaflet-control-zoom{margin-top:28px!important;}
  body.va-terrain-mode .leaflet-control-layers{margin-top:28px!important;}

  /* Dock compact : conserve retour/annuler mais prend moins de carte. */
  body.va-terrain-mode .va-v33-dock{
    left:10px!important;
    right:10px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    max-height:var(--va-mobile-dock-h)!important;
    border-radius:18px!important;
    padding:8px!important;
  }
  .va-v33-tabs{gap:5px!important;margin-bottom:6px!important;}
  .va-v33-tab{min-height:30px!important;font-size:.58rem!important;padding:4px 5px!important;}
  .va-v33-title{font-size:.82rem!important;margin-bottom:1px!important;}
  .va-v33-text{display:none!important;}
  .va-v33-actions{gap:7px!important;}
  .va-v33-actions button{min-height:44px!important;border-radius:14px!important;font-size:.68rem!important;padding:7px!important;}
  .va-v33-status{margin-top:6px!important;font-size:.70rem!important;padding:6px 8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .va-v33-utility{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin-top:7px!important;}
  .va-v33-utility button{min-height:36px!important;border-radius:999px!important;font-size:.66rem!important;}

  body.va-map-picking .va-v33-dock,
  body.va-direction-picking .va-v33-dock{
    display:block!important;
    opacity:.96!important;
  }
  body.va-terrain-mode .map-logo-nests-style{bottom:calc(var(--va-mobile-dock-h) + 22px)!important;}
  body.va-terrain-mode .leaflet-control-scale{margin-bottom:calc(var(--va-mobile-dock-h) + 12px)!important;}

  /* Sheet infos : plus basse et plus concise. */
  body.va-terrain-mode #encoder-observation{
    max-height:62svh!important;
    padding:10px 12px calc(12px + env(safe-area-inset-bottom))!important;
    border-radius:20px 20px 0 0!important;
  }
  body.va-terrain-mode #encoder-observation h3{font-size:.78rem!important;margin:4px 0 8px!important;}
  body.va-terrain-mode #encoder-observation .form-grid{gap:8px!important;}
  body.va-terrain-mode #encoder-observation .va-sticky-submit .btn{min-height:48px!important;}
}

@media(max-width:380px){
  :root{--va-mobile-dock-h:126px;}
  body.va-terrain-mode .va-mobile-terrain-btn{font-size:.68rem!important;letter-spacing:.13em!important;padding:0 10px!important;}
  .va-v33-actions button{min-height:40px!important;font-size:.62rem!important;}
  .va-v33-utility button{min-height:32px!important;font-size:.60rem!important;}
}


/* ========================================================= */
/* VESPA ALERT V63 - CORRECTIONS FLUX / CONTROLES / MOBILE   */
/* ========================================================= */
:root{--va-mobile-dock-h:154px;}

/* Masquer l'attribution Leaflet demandee, tout en gardant OSM dans le code. */
.map-shell .leaflet-control-attribution{display:none!important;}

/* Vecteurs visibles uniquement quand les clusters disparaissent. */
.leaflet-observation-arrows-pane,
.leaflet-observation-cones-pane{pointer-events:none!important;}
.va-cone-overlap{mix-blend-mode:multiply;}

/* Desktop : inversion bouton fonds de plan / declarer un vol. */
@media(min-width:701px){
  .map-shell .leaflet-control-layers{
    margin-top:6px!important;
    margin-right:8px!important;
    z-index:780!important;
  }
  .va-map-top-declare-btn{
    display:inline-flex!important;
    top:74px!important;
    right:16px!important;
    min-height:48px!important;
    z-index:760!important;
  }
  .map-legend-control{
    bottom:18px!important;
    right:16px!important;
    z-index:650!important;
  }
  .map-shell .leaflet-control-scale{margin-bottom:12px!important;}
}

/* Desktop : les onglets du formulaire sont cliquables comme un assistant. */
.step{cursor:pointer;}
.step:hover{border-color:rgba(244,180,0,.65);background:#fff8e6;color:#92400e;}

/* Mobile : pas de bouton declarer sur carte. */
@media(max-width:700px){
  .va-map-top-declare-btn{display:none!important;}
  :root{--topbarH:88px!important;--va-mobile-dock-h:158px;}
  body.va-terrain-mode .topbar-inner{min-height:88px!important;padding:10px 14px!important;}
  body.va-terrain-mode .leaflet-control-zoom{margin-top:18px!important;margin-left:10px!important;}
  body.va-terrain-mode .leaflet-control-layers{margin-top:18px!important;margin-right:10px!important;display:block!important;}
  body.va-terrain-mode .map-logo-nests-style{
    bottom:calc(var(--va-mobile-dock-h) + 54px)!important;
    left:10px!important;
    width:42px!important;
    height:42px!important;
  }
  body.va-terrain-mode .leaflet-control-scale{
    margin-bottom:calc(var(--va-mobile-dock-h) + 12px)!important;
    margin-left:8px!important;
  }
  body.va-terrain-mode .va-v33-dock{
    max-height:none!important;
    min-height:0!important;
    padding:8px!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    overflow:visible!important;
  }
  body.va-terrain-mode .va-v33-title,
  body.va-terrain-mode .va-v33-text{display:none!important;}
  body.va-terrain-mode .va-v33-actions button{min-height:44px!important;}
  body.va-terrain-mode .va-v33-status{font-size:.68rem!important;line-height:1.15!important;}
  body.va-terrain-mode .va-v33-utility{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    margin-top:7px!important;
  }
  body.va-terrain-mode .va-v33-utility button{
    min-height:38px!important;
    border-radius:999px!important;
    font-size:.64rem!important;
  }
  body.va-map-picking .va-v33-dock,
  body.va-direction-picking .va-v33-dock{
    display:block!important;
    opacity:.98!important;
    pointer-events:auto!important;
  }
  body.va-terrain-mode.va-form-open .va-v33-dock{display:none!important;}

  /* Feuille infos : bouton de validation toujours accessible. */
  body.va-terrain-mode #encoder-observation{
    max-height:70svh!important;
    padding:10px 12px calc(12px + env(safe-area-inset-bottom))!important;
  }
  body.va-terrain-mode #encoder-observation .va-sticky-submit{
    position:sticky!important;
    bottom:0!important;
    background:#fff!important;
    padding-top:8px!important;
  }
  body.va-terrain-mode #encoder-observation .va-sticky-submit .btn{min-height:48px!important;}
}

@media(max-width:380px){
  :root{--va-mobile-dock-h:150px;}
  body.va-terrain-mode .va-v33-actions button{min-height:40px!important;font-size:.60rem!important;}
  body.va-terrain-mode .va-v33-utility button{min-height:34px!important;font-size:.58rem!important;}
}


/* ========================================================= */
/* VESPA LITE V64 - CONES/FLÈCHES + INFOS OBLIGATOIRES       */
/* ========================================================= */

.va-cone-overlap{
  mix-blend-mode:multiply;
  filter:saturate(1.25);
}

.va-flight-arrow-line{
  stroke-linecap:round;
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.80)) drop-shadow(0 2px 3px rgba(0,0,0,.30));
}

.va-arrow-head-marker{
  background:transparent!important;
  border:0!important;
}

.va-arrow-head{
  width:0;
  height:0;
  display:block;
  position:absolute;
  left:50%;
  top:50%;
  transform-origin:center center;
  margin-left:-7px;
  margin-top:-10px;
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-bottom:18px solid #111827;
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.95)) drop-shadow(0 2px 3px rgba(0,0,0,.35));
}

.va-activity-explain-extra{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}

.va-activity-explain-card{
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:13px 14px;
  border-radius:15px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(17,24,39,.08);
  box-shadow:0 8px 18px rgba(0,0,0,.045);
}

.va-activity-explain-card i{
  width:34px;
  height:34px;
  border-radius:12px;
  background:#111827;
  color:var(--yellow);
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.va-activity-explain-card div{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}

.va-activity-explain-card strong{
  font-size:.74rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:#111827;
  font-weight:950;
}

.va-activity-explain-card span{
  color:#4b5563;
  font-size:.78rem;
  line-height:1.35;
  font-weight:720;
}

.required-pill{
  display:inline-flex;
  align-items:center;
  margin-left:7px;
  padding:3px 7px;
  border-radius:999px;
  background:#fff1f2;
  border:1px solid rgba(220,38,38,.24);
  color:#b91c1c;
  font-size:.58rem;
  letter-spacing:.06em;
  vertical-align:middle;
}

#observer_email:invalid,
#nombre_individus:invalid,
#comportement:invalid{
  border-color:#dc2626!important;
  background-color:#fff7ed!important;
  box-shadow:0 0 0 3px rgba(220,38,38,.10)!important;
}

#observer_email:valid,
#nombre_individus:valid,
#comportement:valid{
  border-color:rgba(22,101,52,.48)!important;
  background-color:#f0fdf4!important;
}

@media(max-width:900px){
  .va-activity-explain-extra{grid-template-columns:1fr;}
}

@media(max-width:700px){
  body.va-terrain-mode .va-mobile-terrain-btn span{font-size:0;}
  body.va-terrain-mode .va-mobile-terrain-btn span:after{
    content:'Mode terrain pour déclarer un vol';
    font-size:.72rem;
  }

  body.va-terrain-mode #encoder-observation .form-group:has(#nombre_individus),
  body.va-terrain-mode #encoder-observation .form-group:has(#comportement){
    display:flex!important;
    border:1px solid rgba(220,38,38,.18);
    background:#fff7ed;
    border-radius:16px;
    padding:9px;
  }

  body.va-terrain-mode #encoder-observation .form-group:has(#nombre_individus) label,
  body.va-terrain-mode #encoder-observation .form-group:has(#comportement) label{
    color:#991b1b!important;
  }

  body.va-terrain-mode .va-v33-tab[data-va-step="infos"]:not(.done){
    background:#fff7ed;
    color:#991b1b;
    border-color:rgba(220,38,38,.38);
  }

  body.va-terrain-mode .va-v33-tab[data-va-step="send"]{
    font-weight:1000;
  }
}


/* ========================================================= */
/* VESPA LITE V65 - FLOW PONDERE + UX MOBILE/DESKTOP         */
/* ========================================================= */

/* Desktop : libelle public plus clair */
@media(min-width:701px){
  #vaMapTopDeclareBtn span{font-size:0!important;}
  #vaMapTopDeclareBtn span:after{content:"Hoornaar melden";font-size:.74rem;}
}

/* Mobile : suppression du second bouton sur la carte, trop redondant */
@media(max-width:700px){
  #vaMapTopDeclareBtn{display:none!important;}
  .va-mobile-terrain-btn{
    max-width:calc(100vw - 112px)!important;
    min-width:0!important;
    padding:0 14px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  .va-mobile-terrain-btn span{
    font-size:0!important;
  }
  .va-mobile-terrain-btn span:after{
    content:"Mode terrain";
    font-size:.72rem;
    letter-spacing:.16em;
  }
}

/* Bannière d'étape sous la carte après validation de l'axe */
.va-next-info-banner{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%) translateY(120px);
  z-index:815;
  width:min(620px,calc(100% - 28px));
  border-radius:18px;
  background:#111827;
  color:#fff;
  border:1px solid rgba(244,180,0,.45);
  box-shadow:0 16px 38px rgba(0,0,0,.28);
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  opacity:0;
  pointer-events:none;
  transition:transform .22s ease,opacity .22s ease;
}
.va-next-info-banner.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.va-next-info-banner strong{display:block;font-size:.86rem;line-height:1.2;letter-spacing:.04em;}
.va-next-info-banner span{display:block;color:#e5e7eb;font-size:.78rem;font-weight:750;line-height:1.25;margin-top:2px;}
.va-next-info-banner button{
  border:0;
  background:var(--yellow);
  color:#111827;
  border-radius:999px;
  min-height:40px;
  padding:8px 13px;
  cursor:pointer;
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
}
@media(max-width:700px){.va-next-info-banner{display:none!important;}}

/* Etape Valider verte lorsque le signalement est envoyé */
.step[data-step="send"].done,
.va-v33-tab[data-va-step="send"].done{
  background:#dcfce7!important;
  color:#166534!important;
  border-color:rgba(22,101,52,.38)!important;
  box-shadow:0 8px 18px rgba(22,101,52,.08)!important;
}

/* Infos obligatoires plus visibles */
.form-group:has(#nombre_individus) select:invalid,
.form-group:has(#comportement) select:invalid{
  background-color:#fff7ed!important;
  border-color:#f97316!important;
  box-shadow:0 0 0 3px rgba(249,115,22,.10)!important;
}

/* Couleurs plus lisibles pour les cônes pondérés */
.va-cone-overlap{mix-blend-mode:multiply;}
.va-flight-arrow-line{filter:drop-shadow(0 1px 1px rgba(255,255,255,.8));}

/* Mobile : point 3 = validation infos, puis fermeture vers point 4 */
@media(max-width:700px){
  .va-v33-text{font-size:.75rem!important;line-height:1.22!important;}
  .va-v33-title{font-size:.90rem!important;}
}


/* ========================================================= */
/* VESPA LITE V66 - LIBELLES + DOCK MOBILE RETRACTABLE       */
/* ========================================================= */
@media(max-width:700px){
  body.va-terrain-mode .va-mobile-terrain-btn span:after{
    content:"Hoornaar melden"!important;
    font-size:.70rem!important;
    letter-spacing:.13em!important;
    white-space:nowrap!important;
  }
  body.va-terrain-mode .va-mobile-terrain-btn{
    overflow:hidden!important;
    text-overflow:clip!important;
    padding:0 10px!important;
  }

  .va-v33-mini{
    display:none;
    width:100%;
    min-height:42px;
    border:0;
    border-radius:999px;
    background:#111827;
    color:#fff;
    font-size:.70rem;
    font-weight:950;
    letter-spacing:.10em;
    text-transform:uppercase;
    align-items:center;
    justify-content:center;
    gap:8px;
  }

  body.va-terrain-mode .va-v33-dock.collapsed{
    left:50%!important;
    right:auto!important;
    width:min(260px,calc(100% - 24px))!important;
    transform:translateX(-50%)!important;
    padding:7px!important;
    border-radius:999px!important;
    min-height:0!important;
    background:rgba(255,255,255,.97)!important;
  }
  body.va-terrain-mode .va-v33-dock.collapsed .va-v33-mini{display:flex!important;}
  body.va-terrain-mode .va-v33-dock.collapsed .va-v33-tabs,
  body.va-terrain-mode .va-v33-dock.collapsed .va-v33-title,
  body.va-terrain-mode .va-v33-dock.collapsed .va-v33-text,
  body.va-terrain-mode .va-v33-dock.collapsed .va-v33-actions,
  body.va-terrain-mode .va-v33-dock.collapsed .va-v33-status,
  body.va-terrain-mode .va-v33-dock.collapsed .va-v33-utility{display:none!important;}

  body.va-terrain-mode .va-v33-utility{grid-template-columns:1fr 1fr 1fr!important;}
  body.va-terrain-mode .va-v33-utility button{padding:6px 7px!important;}

  body.va-terrain-mode #encoder-observation .va-sticky-submit #submitBtn{
    background:#111827!important;
    color:#fff!important;
    border-color:#111827!important;
  }
  body.va-terrain-mode #encoder-observation .va-sticky-submit #submitBtn i{color:var(--yellow)!important;}
  body.va-terrain-mode #encoder-observation .va-sticky-submit #resetBtn{display:none!important;}

  body.va-terrain-mode .va-v33-tab[data-va-step="send"].done,
  body.va-terrain-mode .step[data-step="send"].done{
    background:#dcfce7!important;
    color:#166534!important;
    border-color:rgba(22,101,52,.45)!important;
  }
}

@media(max-width:380px){
  body.va-terrain-mode .va-mobile-terrain-btn span:after{font-size:.62rem!important;letter-spacing:.09em!important;}
}


/* ========================================================= */
/* VESPA ALERT V68 - CTA DESKTOP FLOTTANT, STEP 4 MOBILE FIX */
/* ========================================================= */

/* Les popups doivent rester au-dessus des cônes, des flèches et des points. */
.map-shell .leaflet-popup-pane{
  z-index:980!important;
}
.map-shell .leaflet-tooltip-pane{
  z-index:990!important;
}
.map-shell .leaflet-popup{
  z-index:981!important;
}

/* Option 2 desktop : le bouton n'est plus sur la carte, mais juste avant celle-ci. */
.va-map-top-declare-btn{display:none!important;}
@media(min-width:701px){
  .main-stack > .va-map-top-declare-btn{
    display:inline-flex!important;
    position:relative!important;
    top:auto!important;
    right:auto!important;
    z-index:1!important;
    align-self:flex-end!important;
    min-height:48px!important;
    margin:-2px 0 -6px!important;
    padding:0 20px!important;
    border-radius:999px!important;
    border:2px solid #111827!important;
    background:var(--yellow)!important;
    color:#111827!important;
    box-shadow:0 10px 24px rgba(0,0,0,.12)!important;
    align-items:center!important;
    justify-content:center!important;
    gap:9px!important;
    font-size:.78rem!important;
    font-weight:950!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    cursor:pointer!important;
    white-space:nowrap!important;
  }
  .main-stack > .va-map-top-declare-btn i{color:#111827!important;}
  .map-shell > .va-map-top-declare-btn{display:none!important;}
}
@media(max-width:700px){
  .va-map-top-declare-btn{display:none!important;}
}

/* Mobile : le bouton demandé remplace le troisième bouton utilitaire à l'étape Infos. */
@media(max-width:700px){
  body.va-terrain-mode .va-v33-utility #vaV33Collapse{
    white-space:nowrap!important;
  }
  body.va-terrain-mode .va-v33-utility #vaV33Collapse span{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}


/* ========================================================= */
/* VESPA ALERT V68 - CORRECTIFS FINAUX                      */
/* ========================================================= */

/* Desktop : CTA principal flottant dans la carte, en haut a droite. */
.va-map-top-declare-btn{display:none!important;}
@media(min-width:701px){
  .map-shell{position:relative!important;}
  .map-shell > .va-map-top-declare-btn{
    display:inline-flex!important;
    position:absolute!important;
    top:16px!important;
    right:16px!important;
    z-index:900!important;
    min-height:48px!important;
    padding:0 18px!important;
    border-radius:999px!important;
    border:2px solid #111827!important;
    background:var(--yellow)!important;
    color:#111827!important;
    box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
    align-items:center!important;
    justify-content:center!important;
    gap:9px!important;
    font-size:.78rem!important;
    font-weight:950!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    cursor:pointer!important;
    white-space:nowrap!important;
  }
  .map-shell > .va-map-top-declare-btn i{color:#111827!important;}
  .main-stack > .va-map-top-declare-btn{display:none!important;}
  .map-shell .leaflet-control-layers{margin-top:66px!important;}
}
@media(max-width:700px){
  .va-map-top-declare-btn{display:none!important;}
}

/* Popups toujours lisibles au-dessus des cones, fleches et points. */
.map-shell .leaflet-popup-pane{z-index:1200!important;}
.map-shell .leaflet-tooltip-pane{z-index:1210!important;}
.map-shell .leaflet-popup{z-index:1201!important;}

/* Mobile : ne plus afficher deux boutons “Valider infos”. */
@media(max-width:700px){
  body.va-terrain-mode .va-v33-dock[data-current-step="infos"] #vaV33Secondary{
    display:none!important;
  }
  body.va-terrain-mode .va-v33-dock[data-current-step="infos"] .va-v33-actions{
    grid-template-columns:1fr!important;
  }
  body.va-terrain-mode .va-v33-dock[data-current-step="infos"] #vaV33Collapse{
    background:#111827!important;
    color:#fff!important;
    border-color:#111827!important;
  }
}


/* ========================================================= */
/* VESPA ALERT V70 - CTA CARTE + MOBILE STEP 4 SANS DOUBLON  */
/* ========================================================= */

/* Desktop : bouton principal flottant DANS la carte, jamais au-dessus de la carte. */
.va-map-top-declare-btn{display:none!important;}
@media(min-width:701px){
  .map-shell{position:relative!important;}
  .map-shell > .va-map-top-declare-btn{
    display:inline-flex!important;
    position:absolute!important;
    top:16px!important;
    right:16px!important;
    z-index:1300!important;
    min-height:48px!important;
    padding:0 18px!important;
    border-radius:999px!important;
    border:2px solid #111827!important;
    background:var(--yellow)!important;
    color:#111827!important;
    box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
    align-items:center!important;
    justify-content:center!important;
    gap:9px!important;
    font-size:.78rem!important;
    font-weight:950!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    cursor:pointer!important;
    white-space:nowrap!important;
  }
  .map-shell > .va-map-top-declare-btn i{color:#111827!important;}
  .main-stack > .va-map-top-declare-btn,
  .panel-bd > .va-map-top-declare-btn{
    display:none!important;
  }
  .map-shell .leaflet-control-layers{margin-top:66px!important;}
}
@media(max-width:700px){
  .va-map-top-declare-btn{display:none!important;}
}

/* Popups lisibles : au-dessus des cônes, flèches, points, clusters et CTA. */
.map-shell .leaflet-popup-pane{z-index:1800!important;}
.map-shell .leaflet-tooltip-pane{z-index:1810!important;}
.map-shell .leaflet-popup{z-index:1801!important;}
.map-shell .leaflet-marker-pane{z-index:720!important;}
.map-shell .leaflet-observation-cones-pane{z-index:555!important;}
.map-shell .leaflet-observation-arrows-pane{z-index:610!important;}
.map-shell .leaflet-observation-points-pane{z-index:730!important;}

/* Mobile : un seul bouton Valider infos, en action principale du dock. */
@media(max-width:700px){
  body.va-terrain-mode .va-v33-dock[data-current-step="infos"] #vaV33Secondary{
    display:flex!important;
    background:#111827!important;
    color:#fff!important;
    border-color:#111827!important;
  }
  body.va-terrain-mode .va-v33-dock[data-current-step="infos"] #vaV33Secondary i{color:var(--yellow)!important;}
  body.va-terrain-mode .va-v33-dock[data-current-step="infos"] #vaV33Collapse{
    background:#fff!important;
    color:#111827!important;
    border-color:rgba(17,24,39,.14)!important;
  }
  body.va-terrain-mode .va-v33-dock[data-current-step="infos"] .va-v33-actions{
    grid-template-columns:1fr 1fr!important;
  }
  body.va-terrain-mode .va-v33-dock[data-current-step="send"] #vaV33Primary{
    background:#166534!important;
    color:#fff!important;
    border-color:#166534!important;
  }
  body.va-terrain-mode .va-v33-dock[data-current-step="send"] #vaV33Primary i{color:#fff!important;}
}


/* V70 - Correctif mobile : le bouton Réduire réduit toujours le dock ; Valider infos bascule vers l'étape 4. */


/* ========================================================= */
/* VESPA ALERT V71 - FIX FINAL MOBILE STEP 4 + SNACKBAR TOP   */
/* ========================================================= */
@media(max-width:700px){
  /* En étape 4, l’étape 3 Infos est considérée validée visuellement. */
  body.va-terrain-mode .va-v33-dock[data-current-step="send"] .va-v33-tab[data-va-step="infos"]{
    background:#dcfce7!important;
    color:#166534!important;
    border-color:rgba(22,101,52,.45)!important;
    box-shadow:0 8px 18px rgba(22,101,52,.08)!important;
  }

  /* Le bandeau noir d’information passe en haut pour ne plus masquer les 4 étapes. */
  .va-snackbar{
    top:calc(var(--topbarH) + 10px + env(safe-area-inset-top))!important;
    bottom:auto!important;
    transform:translateX(-50%) translateY(-120px)!important;
    z-index:9000!important;
    width:min(520px,calc(100% - 20px))!important;
  }
  .va-snackbar.show{
    transform:translateX(-50%) translateY(0)!important;
  }

  /* Réduire doit rester un vrai bouton de réduction et ne jamais ouvrir les infos. */
  body.va-terrain-mode .va-v33-dock #vaV33Collapse{
    pointer-events:auto!important;
  }

  /* Étape 4 : bouton final bien vert, Modifier est le seul bouton qui ouvre les infos. */
  body.va-terrain-mode .va-v33-dock[data-current-step="send"] #vaV33Primary{
    background:#166534!important;
    color:#fff!important;
    border-color:#166534!important;
  }
  body.va-terrain-mode .va-v33-dock[data-current-step="send"] #vaV33Secondary{
    background:#fff!important;
    color:#111827!important;
    border-color:rgba(17,24,39,.14)!important;
  }
}


/* === V72 corrections === */
#vaMapTopDeclareBtn span:after{content:"Hoornaar melden"!important;}
.direction-pad .dir-btn[data-card=""]{font-size:.82rem;line-height:1.15;padding:6px 8px;}
@media(max-width:520px){.direction-pad .dir-btn[data-card=""]{font-size:.72rem;}}


/* ========================================================= */
/* V73 - SANS DIRECTION : APERCU NEUTRE + SOUMISSION BLOQUEE */
/* ========================================================= */
.arrow-preview.no-direction{
  width:54px!important;
  height:54px!important;
  border-radius:999px!important;
  background:#fff!important;
  border:3px solid #111827!important;
  box-shadow:0 0 0 6px rgba(244,180,0,.18),0 8px 18px rgba(0,0,0,.12)!important;
  display:grid!important;
  place-items:center!important;
  transform:none!important;
}
.arrow-preview.no-direction:before{
  content:'?';
  position:static!important;
  transform:none!important;
  border:0!important;
  color:#111827!important;
  font-size:1.65rem!important;
  font-weight:950!important;
  line-height:1!important;
}
.dir-btn[data-deg=''].active{
  background:#111827!important;
  color:#fff!important;
  border-color:#111827!important;
}
body.va-submitted #encoder-observation{
  pointer-events:none;
  opacity:.82;
}


/* ========================================================= */
/* V74 - MOBILE PERF + PAS DE VOL + EMAIL OBLIGATOIRE        */
/* ========================================================= */
#observer_email:invalid{
  border-color:#dc2626!important;
  background-color:#fff7ed!important;
  box-shadow:0 0 0 3px rgba(220,38,38,.10)!important;
}
#observer_email:valid{
  border-color:rgba(22,101,52,.48)!important;
  background-color:#f0fdf4!important;
}
body.va-terrain-mode #encoder-observation .form-group:has(#observer_email){
  display:flex!important;
  border:1px solid rgba(220,38,38,.18);
  background:#fff7ed;
  border-radius:16px;
  padding:9px;
}
body.va-terrain-mode #encoder-observation .form-group:has(#observer_email) label{
  color:#991b1b!important;
}
.dir-btn[data-deg='']{
  font-size:.86rem!important;
  letter-spacing:.04em;
}
.arrow-preview.no-direction:before{
  content:'×'!important;
  font-size:2rem!important;
}
.compass-preview.no-direction-selected{
  background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;
  border-style:solid!important;
}
#comportement option[data-requires-direction='1']:disabled{
  color:#9ca3af!important;
}
.va-mobile-loading-note{
  position:absolute;
  left:50%;
  top:calc(var(--topbarH) + 12px);
  transform:translateX(-50%);
  z-index:770;
  width:min(430px,calc(100% - 24px));
  border-radius:999px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(244,180,0,.45);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  color:#111827;
  padding:9px 13px;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-align:center;
  pointer-events:none;
}
@media(min-width:701px){.va-mobile-loading-note{display:none!important;}}


/* NL FIX - Dock mobiele terreinmodus: validatie blijft zichtbaar */
@media (max-width:700px){
  body.va-terrain-mode .va-v33-dock{
    left:10px!important;
    right:10px!important;
    width:auto!important;
    max-width:calc(100vw - 20px)!important;
    box-sizing:border-box!important;
  }
  body.va-terrain-mode .va-v33-tabs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body.va-terrain-mode .va-v33-tab{
    min-width:0!important;
    width:100%!important;
    padding:8px 4px!important;
    font-size:.58rem!important;
    letter-spacing:.02em!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
  }
}
