/* RSVPro Mobile App Chrome */

@media (min-width:861px){
  .rsv-mobile-app-topbar,
  .rsv-mobile-app-bottom,
  .rsv-mobile-more-backdrop,
  .rsv-mobile-more-sheet{
    display:none !important;
  }
}

@media (max-width:860px){
  :root{
    --rsv-mobile-top-h:70px;
    --rsv-mobile-bottom-h:78px;
  }

  html,
  body{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:hidden !important;
    -webkit-text-size-adjust:100% !important;
    text-size-adjust:100% !important;
  }

  body{
    padding-top:calc(var(--rsv-mobile-top-h) + env(safe-area-inset-top,0px)) !important;
    padding-bottom:calc(var(--rsv-mobile-bottom-h) + env(safe-area-inset-bottom,0px)) !important;
    background:
      radial-gradient(circle at 14% 0%,rgba(141,198,63,.18),transparent 35%),
      linear-gradient(135deg,#f8fbf2 0%,#eef7e6 48%,#fff 100%) !important;
  }

  .rsv-mobile-app-topbar{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:0 !important;
    z-index:100000 !important;
    min-height:calc(var(--rsv-mobile-top-h) + env(safe-area-inset-top,0px)) !important;
    padding:calc(8px + env(safe-area-inset-top,0px)) 14px 8px !important;
    display:flex !important;
    align-items:center !important;
    gap:11px !important;
    background:
      radial-gradient(circle at 18% 0%,rgba(141,198,63,.24),transparent 34%),
      linear-gradient(135deg,#075429,#063f20) !important;
    box-shadow:0 10px 24px rgba(4,38,19,.20) !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
  }

  /* ← Botão "Entrada" no lado esquerdo do topbar (subpáginas) */
  .rsv-pwa-back{
    flex:0 0 auto !important;
    display:flex !important;
    align-items:center !important;
    gap:4px !important;
    color:#fff !important;
    text-decoration:none !important;
    font-size:.88rem !important;
    font-weight:900 !important;
    min-height:48px !important;
    min-width:44px !important;
    padding:0 10px 0 0 !important;
    -webkit-tap-highlight-color:transparent !important;
    letter-spacing:-.01em !important;
  }
  .rsv-pwa-back:active{
    opacity:.65 !important;
  }
  .rsv-pwa-back svg{
    width:24px !important;
    height:24px !important;
    fill:currentColor !important;
    flex-shrink:0 !important;
  }
  .rsv-pwa-back span{
    display:block !important;
    color:currentColor !important;
    white-space:nowrap !important;
  }
  /* Logo pequeno em subpáginas (ao lado do botão back) */
  .rsv-logo-sm{
    width:auto !important;
    height:36px !important;
    margin-left:auto !important;
  }
  .rsv-logo-sm img{
    width:auto !important;
    height:34px !important;
    max-width:110px !important;
    object-fit:contain !important;
  }

  .rsv-mobile-app-logo{
    width:158px !important;
    height:50px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex:0 0 auto !important;
    text-decoration:none !important;
  }

  .rsv-mobile-app-logo img{
    display:block !important;
    width:158px !important;
    max-width:42vw !important;
    max-height:48px !important;
    object-fit:contain !important;
  }

  .rsv-mobile-app-title{
    min-width:0 !important;
    display:grid !important;
    gap:2px !important;
    color:white !important;
  }

  .rsv-mobile-app-title strong{
    display:block !important;
    font-size:.93rem !important;
    font-weight:950 !important;
    line-height:1 !important;
    letter-spacing:-0.03em !important;
  }

  .rsv-mobile-app-title span{
    display:block !important;
    color:rgba(255,255,255,.72) !important;
    font-size:.68rem !important;
    font-weight:800 !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .rsv-mobile-app-bottom{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    z-index:100000 !important;
    height:calc(var(--rsv-mobile-bottom-h) + env(safe-area-inset-bottom,0px)) !important;
    padding:7px 7px calc(7px + env(safe-area-inset-bottom,0px)) !important;
    display:grid !important;
    grid-template-columns:repeat(5,1fr) !important;
    gap:5px !important;
    background:rgba(255,255,255,.97) !important;
    border-top:1px solid rgba(6,63,32,.12) !important;
    box-shadow:0 -12px 26px rgba(4,38,19,.16) !important;
    backdrop-filter:blur(12px) !important;
  }

  .rsv-mobile-app-bottom a,
  .rsv-mobile-app-bottom button{
    appearance:none !important;
    -webkit-appearance:none !important;
    border:1px solid transparent !important;
    background:transparent !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
    min-width:0 !important;
    min-height:56px !important;
    border-radius:16px !important;
    color:#657769 !important;
    text-decoration:none !important;
    font-family:"Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size:.60rem !important;
    line-height:1 !important;
    font-weight:850 !important;
    padding:0 !important;
    margin:0 !important;
    cursor:pointer !important;
  }

  .rsv-mobile-app-bottom a.active,
  .rsv-mobile-app-bottom button.active{
    color:#075429 !important;
    background:rgba(141,198,63,.24) !important;
    border-color:rgba(141,198,63,.34) !important;
  }

  .rsv-mobile-app-bottom i{
    width:23px !important;
    height:23px !important;
    display:grid !important;
    place-items:center !important;
    color:currentColor !important;
  }

  .rsv-mobile-app-bottom svg{
    width:22px !important;
    height:22px !important;
    display:block !important;
    fill:currentColor !important;
  }

  .rsv-mobile-app-bottom span{
    display:block !important;
    white-space:nowrap !important;
    color:currentColor !important;
  }

  .rsv-mobile-nav:not(.rsv-mobile-app-bottom),
  .rsv-sidebar,
  .rsv-dados-sidebar-replacement{
    display:none !important;
  }

  .rsv-shell{
    display:block !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:100% !important;
    min-height:auto !important;
    overflow-x:hidden !important;
  }

  .rsv-main{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    padding:12px 10px 18px !important;
    overflow-x:hidden !important;
  }

  main,
  .main,
  .content,
  .container,
  .page,
  .page-wrap,
  .page-wrapper,
  .wrapper,
  .shell,
  .layout,
  .app{
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }

  .home-desktop{
    display:none !important;
  }

  .home-mobile-app{
    display:block !important;
  }

  /* ── Index mobile: tiles de navegação ───────────── */
  .mobile-welcome{
    background:radial-gradient(circle at 88% 8%,rgba(141,198,63,.28),transparent 38%),linear-gradient(140deg,#075429 0%,#042e16 100%) !important;
    border-radius:24px !important;
    padding:22px 18px !important;
    color:#fff !important;
    margin-bottom:14px !important;
  }
  .mobile-welcome-kicker{
    display:inline-block !important;
    font-size:.72rem !important;
    font-weight:900 !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
    color:rgba(255,255,255,.72) !important;
    margin-bottom:8px !important;
  }
  .mobile-welcome h1{
    margin:0 0 6px !important;
    font-size:2rem !important;
    font-weight:900 !important;
    line-height:.95 !important;
    letter-spacing:-.055em !important;
    color:#fff !important;
  }
  .mobile-welcome p{
    margin:0 !important;
    font-size:.88rem !important;
    color:rgba(255,255,255,.78) !important;
    line-height:1.4 !important;
  }
  .mobile-section-title{
    display:flex !important;
    justify-content:space-between !important;
    align-items:baseline !important;
    margin:16px 0 9px !important;
  }
  .mobile-section-title h2{
    margin:0 !important;
    font-size:1.05rem !important;
    font-weight:900 !important;
    letter-spacing:-.035em !important;
    color:#062f1a !important;
  }
  .mobile-section-title span{
    font-size:.72rem !important;
    color:#6b7280 !important;
    font-weight:750 !important;
  }
  .app-launcher{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  .app-tile{
    min-height:96px !important;
    border-radius:22px !important;
    background:#fff !important;
    border:1.5px solid #d7e8d2 !important;
    box-shadow:0 4px 18px rgba(6,63,32,.07) !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    padding:14px !important;
    text-decoration:none !important;
    color:#07351f !important;
    transition:transform .15s,box-shadow .15s !important;
    -webkit-tap-highlight-color:transparent !important;
  }
  .app-tile:active{
    transform:scale(.96) !important;
    box-shadow:0 2px 8px rgba(6,63,32,.10) !important;
  }
  .app-tile-icon{
    width:38px !important;
    height:38px !important;
    border-radius:12px !important;
    background:rgba(7,84,41,.10) !important;
    display:grid !important;
    place-items:center !important;
    color:#075429 !important;
  }
  .app-tile-icon svg{
    width:22px !important;
    height:22px !important;
    fill:currentColor !important;
  }
  .app-tile-text strong{
    display:block !important;
    font-size:.88rem !important;
    font-weight:900 !important;
    letter-spacing:-.02em !important;
    margin-top:10px !important;
  }
  .app-tile-text small{
    display:block !important;
    font-size:.70rem !important;
    color:#6b7280 !important;
    font-weight:750 !important;
    line-height:1.3 !important;
    margin-top:2px !important;
  }

  /* ── Ocorrências — card de alerta na home mobile ─── */
  .m-occ-card{
    display:block !important;
    background:linear-gradient(135deg,#7f1d1d,#991b1b) !important;
    border-radius:22px !important;
    padding:16px 16px 14px !important;
    margin-bottom:14px !important;
    text-decoration:none !important;
    -webkit-tap-highlight-color:transparent !important;
  }
  .m-occ-head{
    display:flex !important;
    align-items:center !important;
    gap:7px !important;
    margin-bottom:10px !important;
  }
  .m-occ-dot{
    color:#fca5a5 !important;
    font-size:1rem !important;
    line-height:1 !important;
    animation:rsv-pulse 1.8s ease-in-out infinite !important;
  }
  @keyframes rsv-pulse{0%,100%{opacity:1}50%{opacity:.4}}
  .m-occ-label{
    flex:1 !important;
    font-size:.76rem !important;
    font-weight:900 !important;
    letter-spacing:.03em !important;
    text-transform:uppercase !important;
    color:rgba(255,255,255,.85) !important;
  }
  .m-occ-badge{
    background:#fca5a5 !important;
    color:#7f1d1d !important;
    font-size:.7rem !important;
    font-weight:900 !important;
    border-radius:999px !important;
    padding:2px 8px !important;
  }
  .m-occ-pills{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:6px !important;
    margin-bottom:12px !important;
  }
  .m-occ-pill{
    background:rgba(255,255,255,.15) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.22) !important;
    border-radius:999px !important;
    padding:4px 11px !important;
    font-size:.8rem !important;
    font-weight:900 !important;
    letter-spacing:-.01em !important;
  }
  .m-occ-cta{
    display:block !important;
    font-size:.78rem !important;
    font-weight:900 !important;
    color:rgba(255,255,255,.75) !important;
  }

  /* ── Esconder blocos irrelevantes em mobile ──────── */
  .updated-box{
    display:none !important;
  }
  .top-selector small[data-rsvpro-station-info]{
    display:none !important;
  }

  .home-grid,
  .home-section,
  .home-hero,
  .za-grid,
  .za-section,
  .parcelas-layout,
  .obs-layout,
  .alertas-layout,
  .cards-grid,
  .risk-grid,
  .forecast-grid,
  .meteo-grid,
  .dashboard-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    width:100% !important;
    max-width:100% !important;
  }

  .home-card,
  .home-panel,
  .rsv-card,
  .za-card,
  .za-panel,
  .parcelas-panel,
  .obs-panel,
  .alertas-panel,
  .card,
  .panel,
  .box{
    max-width:100% !important;
    border-radius:20px !important;
  }

  .page-head,
  .rsv-page-hero,
  .home-hero-main,
  .za-hero{
    border-radius:20px !important;
    padding:16px !important;
    margin:0 0 12px !important;
  }

  .page-head h1,
  .rsv-page-hero h1,
  .home-hero-main h1,
  .za-hero h1{
    font-size:1.75rem !important;
    line-height:1 !important;
    letter-spacing:-0.055em !important;
  }

  .page-head p,
  .rsv-page-hero p,
  .home-hero-main p,
  .za-hero p{
    font-size:.90rem !important;
    line-height:1.38 !important;
  }

  table{
    display:block !important;
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  img,
  svg,
  canvas,
  video{
    max-width:100% !important;
  }

  .leaflet-container,
  #map,
  #mapa,
  #parcelasMap,
  #obsMap,
  #alertasMap,
  [id*="map"],
  [id*="mapa"]{
    width:100% !important;
    max-width:100% !important;
    min-height:360px !important;
    height:420px !important;
    border-radius:20px !important;
    touch-action:pan-x pan-y !important;
  }

  .rsv-mobile-more-backdrop{
    position:fixed !important;
    inset:0 !important;
    z-index:100040 !important;
    background:rgba(0,0,0,.28) !important;
    opacity:0 !important;
    transition:opacity .18s ease !important;
  }

  .rsv-mobile-more-backdrop.open{
    opacity:1 !important;
  }

  .rsv-mobile-more-sheet{
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:calc(var(--rsv-mobile-bottom-h) + 10px + env(safe-area-inset-bottom,0px)) !important;
    z-index:100050 !important;
    border-radius:24px !important;
    background:#fff !important;
    border:1px solid rgba(6,63,32,.12) !important;
    box-shadow:0 24px 60px rgba(6,63,32,.24) !important;
    padding:10px 12px 14px !important;
    transform:translateY(12px) scale(.98) !important;
    opacity:0 !important;
    transition:opacity .18s ease, transform .18s ease !important;
  }

  .rsv-mobile-more-sheet.open{
    opacity:1 !important;
    transform:translateY(0) scale(1) !important;
  }

  .rsv-mobile-more-handle{
    width:44px !important;
    height:5px !important;
    border-radius:999px !important;
    background:#d7e8d2 !important;
    margin:0 auto 9px !important;
  }

  .rsv-mobile-more-head{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    padding:0 2px 10px !important;
  }

  .rsv-mobile-more-head strong{
    color:#07351f !important;
    font-size:1rem !important;
    font-weight:900 !important;
  }

  .rsv-mobile-more-head button{
    width:34px !important;
    height:34px !important;
    border-radius:999px !important;
    border:1px solid #d7e8d2 !important;
    background:#eef8e7 !important;
    color:#075429 !important;
    font-size:1.3rem !important;
    line-height:1 !important;
    font-weight:800 !important;
  }

  .rsv-mobile-more-grid{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:8px !important;
  }

  .rsv-mobile-more-grid a{
    min-height:82px !important;
    border-radius:19px !important;
    background:#f8fbf2 !important;
    border:1px solid #dfece0 !important;
    color:#075429 !important;
    text-decoration:none !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    font-size:.76rem !important;
    font-weight:900 !important;
  }

  .rsv-mobile-more-grid i{
    width:30px !important;
    height:30px !important;
    color:#075429 !important;
  }

  .rsv-mobile-more-grid svg{
    width:28px !important;
    height:28px !important;
    fill:currentColor !important;
  }

  /* ── Greeting na home ────────────────────────── */
  .m-greeting{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    background:linear-gradient(135deg,#042e16 0%,#075429 60%,#0a7a3a 100%) !important;
    border-radius:22px !important;
    padding:16px 18px !important;
    margin-bottom:14px !important;
  }
  .m-greeting-hello{
    display:block !important;
    font-size:1.18rem !important;
    font-weight:900 !important;
    color:#fff !important;
    letter-spacing:-.03em !important;
    line-height:1 !important;
  }
  .m-greeting-sub{
    display:block !important;
    font-size:.72rem !important;
    font-weight:750 !important;
    color:rgba(255,255,255,.65) !important;
    margin-top:4px !important;
  }
  .m-greeting-date{
    background:rgba(255,255,255,.14) !important;
    border:1px solid rgba(255,255,255,.2) !important;
    border-radius:14px !important;
    padding:8px 13px !important;
    text-align:center !important;
    flex-shrink:0 !important;
  }
  .m-greeting-date strong{
    display:block !important;
    font-size:.95rem !important;
    font-weight:900 !important;
    color:#fff !important;
    letter-spacing:-.02em !important;
    line-height:1 !important;
  }
  .m-greeting-date span{
    display:block !important;
    font-size:.65rem !important;
    font-weight:800 !important;
    color:rgba(255,255,255,.68) !important;
    margin-top:3px !important;
    text-transform:uppercase !important;
    letter-spacing:.04em !important;
  }

  /* ── Tiles: ícones por secção ────────────────── */
  .app-tile--dados    .app-tile-icon{ background:rgba(7,84,41,.16)!important;    color:#075429!important; }
  .app-tile--alertas  .app-tile-icon{ background:rgba(180,83,9,.13)!important;   color:#b45309!important; }
  .app-tile--obs      .app-tile-icon{ background:rgba(29,78,216,.13)!important;  color:#1d4ed8!important; }
  .app-tile--agr      .app-tile-icon{ background:rgba(109,40,217,.13)!important; color:#6d28d9!important; }
  .app-tile--za       .app-tile-icon{ background:rgba(5,150,105,.13)!important;  color:#059669!important; }
  .app-tile--reservado .app-tile-icon{ background:rgba(4,46,22,.18)!important;   color:#042e16!important; }

  /* ── Dados mobile: risk cards 3 colunas ─────── */
  .risk-grid{
    grid-template-columns:repeat(3,1fr) !important;
    gap:9px !important;
  }
  .risk-card{
    border-radius:18px !important;
    padding:13px 8px 11px !important;
    text-align:center !important;
    min-height:0 !important;
  }
  .risk-card.elevado{
    background:linear-gradient(160deg,#fef2f2,#fff5f5) !important;
    border:2px solid #fca5a5 !important;
  }
  .risk-card.moderado{
    background:linear-gradient(160deg,#fffbeb,#fff9ed) !important;
    border:2px solid #fcd34d !important;
  }
  .risk-card.baixo{
    background:linear-gradient(160deg,#f0fdf4,#f5fff7) !important;
    border:2px solid #86efac !important;
  }
  .risk-top{
    flex-direction:column !important;
    align-items:center !important;
    gap:5px !important;
    margin-bottom:9px !important;
  }
  .risk-top h3{
    font-size:.65rem !important;
    font-weight:900 !important;
    text-transform:uppercase !important;
    letter-spacing:.05em !important;
    color:#374151 !important;
    margin:0 !important;
  }
  .risk-top strong{
    display:inline-block !important;
    padding:3px 9px !important;
    border-radius:999px !important;
    font-size:.78rem !important;
    font-weight:900 !important;
    letter-spacing:.01em !important;
    color:#fff !important;
  }
  .risk-card.elevado  .risk-top strong{ background:#dc2626 !important; }
  .risk-card.moderado .risk-top strong{ background:#d97706 !important; }
  .risk-card.baixo    .risk-top strong{ background:#16a34a !important; }
  .risk-card>p{ display:none !important; }
  .bars{
    display:flex !important;
    gap:2px !important;
    justify-content:center !important;
    margin:0 !important;
  }
  .bars i{
    flex:1 !important;
    height:5px !important;
    border-radius:3px !important;
    max-width:9px !important;
    background:#e5e7eb !important;
  }
  .risk-card.elevado  .bars .on{ background:#dc2626 !important; }
  .risk-card.moderado .bars .on{ background:#d97706 !important; }
  .risk-card.baixo    .bars .on{ background:#16a34a !important; }

  /* ── Dados mobile: mapa abaixo das métricas ─── */
  .dashboard-grid{
    display:flex !important;
    flex-direction:column !important;
  }
  .right-stack{ order:1 !important; }
  .map-card{
    order:2 !important;
    margin-top:12px !important;
  }
  .map-searchbar{ display:none !important; }
  .map-actions{ display:flex !important; flex-wrap:wrap !important; gap:6px !important; padding:6px 0 !important; }
  .map-actions button:not(#rsvMapLocate){ display:none !important; }
  .map-actions small{ display:none !important; }
  .panel-title-row span{ display:none !important; }
  #rsvMap{
    height:210px !important;
    min-height:0 !important;
    border-radius:16px !important;
  }
  .map-legend{
    flex-wrap:wrap !important;
    gap:5px 10px !important;
    font-size:.68rem !important;
  }

  /* ── Dados mobile: métricas em grelha 3×3 ───── */
  .metrics-row{
    grid-template-columns:repeat(3,1fr) !important;
    gap:7px !important;
  }
  .metrics-row>div{
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    padding:10px 6px !important;
    border-radius:14px !important;
    text-align:center !important;
  }
  .metrics-row>div span{ font-size:.64rem !important; line-height:1.2 !important; }
  .metrics-row>div b{   font-size:.92rem !important; }

  /* ── Dados mobile: recomendação compacta ────── */
  .recommend-card{
    border-radius:18px !important;
    padding:14px !important;
  }
  .recommend-card h3{ font-size:.88rem !important; margin:0 0 6px !important; }
  .recommend-card p{  font-size:.82rem !important; margin:0 !important; }
}

@media (max-width:430px){
  :root{
    --rsv-mobile-top-h:68px;
    --rsv-mobile-bottom-h:76px;
  }

  .rsv-mobile-app-logo{
    width:150px !important;
  }

  .rsv-mobile-app-logo img{
    width:150px !important;
  }

  .rsv-mobile-app-title strong{
    font-size:.88rem !important;
  }

  .rsv-mobile-app-title span{
    font-size:.64rem !important;
  }
}

@media (max-width:390px){
  .rsv-mobile-app-topbar{
    padding-left:10px !important;
    padding-right:10px !important;
    gap:8px !important;
  }

  .rsv-mobile-app-logo{
    width:138px !important;
  }

  .rsv-mobile-app-logo img{
    width:138px !important;
    max-width:40vw !important;
  }

  .rsv-mobile-app-bottom{
    gap:4px !important;
    padding-left:5px !important;
    padding-right:5px !important;
  }

  .rsv-mobile-app-bottom a,
  .rsv-mobile-app-bottom button{
    font-size:.56rem !important;
    border-radius:14px !important;
  }

  .rsv-mobile-app-bottom svg{
    width:20px !important;
    height:20px !important;
  }

  .rsv-main{
    padding-left:8px !important;
    padding-right:8px !important;
  }
}

@media (max-width:360px){
  .rsv-mobile-app-title{
    display:none !important;
  }

  .rsv-mobile-app-logo,
  .rsv-mobile-app-logo img{
    width:154px !important;
    max-width:58vw !important;
  }

  .rsv-mobile-app-bottom a,
  .rsv-mobile-app-bottom button{
    font-size:.52rem !important;
  }
}

/* PWA standalone mode — sempre mostrar chrome mobile, mesmo em ecrãs largos (iPad) */
@media (display-mode: standalone) {
  :root{
    --rsv-mobile-top-h:70px;
    --rsv-mobile-bottom-h:78px;
  }
  body{
    padding-top:calc(var(--rsv-mobile-top-h) + env(safe-area-inset-top,0px)) !important;
    padding-bottom:calc(var(--rsv-mobile-bottom-h) + env(safe-area-inset-bottom,0px)) !important;
  }
  .rsv-mobile-app-topbar{
    display:flex !important;
    position:fixed !important;
    left:0 !important; right:0 !important; top:0 !important;
    z-index:100000 !important;
    min-height:calc(var(--rsv-mobile-top-h) + env(safe-area-inset-top,0px)) !important;
    padding:calc(8px + env(safe-area-inset-top,0px)) 14px 8px !important;
    align-items:center !important;
    gap:11px !important;
    background:radial-gradient(circle at 18% 0%,rgba(141,198,63,.24),transparent 34%),linear-gradient(135deg,#075429,#063f20) !important;
    box-shadow:0 10px 24px rgba(4,38,19,.20) !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
  }
  .rsv-mobile-app-bottom{
    display:grid !important;
    position:fixed !important;
    left:0 !important; right:0 !important; bottom:0 !important;
    z-index:100000 !important;
    height:calc(var(--rsv-mobile-bottom-h) + env(safe-area-inset-bottom,0px)) !important;
    padding:7px 7px calc(7px + env(safe-area-inset-bottom,0px)) !important;
    grid-template-columns:repeat(5,1fr) !important;
    gap:5px !important;
    background:rgba(255,255,255,.97) !important;
    border-top:1px solid rgba(6,63,32,.12) !important;
    box-shadow:0 -12px 26px rgba(4,38,19,.16) !important;
    backdrop-filter:blur(12px) !important;
  }
  .rsv-mobile-app-bottom a,.rsv-mobile-app-bottom button{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
    min-height:56px !important;
    border-radius:16px !important;
    font-size:.60rem !important;
    font-weight:850 !important;
    color:#657769 !important;
    background:transparent !important;
    border:1px solid transparent !important;
    text-decoration:none !important;
    cursor:pointer !important;
  }
  .rsv-mobile-app-bottom a.active,.rsv-mobile-app-bottom button.active{
    color:#075429 !important;
    background:rgba(141,198,63,.24) !important;
    border-color:rgba(141,198,63,.34) !important;
  }
  .rsv-mobile-app-bottom i{width:23px !important;height:23px !important;display:grid !important;place-items:center !important;}
  .rsv-mobile-app-bottom svg{width:22px !important;height:22px !important;display:block !important;fill:currentColor !important;}
  .rsv-mobile-app-bottom span{display:block !important;white-space:nowrap !important;color:currentColor !important;}
}

/* ── Dados page: hardcoded back button (belt+suspenders, mobile only) ── */
@media (min-width:861px){
  .rsv-dados-back-btn{ display:none !important; }
}
@media (max-width:860px),(display-mode:standalone){
  .rsv-dados-back-btn{
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    background:#075429 !important;
    color:#fff !important;
    font-size:.92rem !important;
    font-weight:700 !important;
    text-decoration:none !important;
    padding:12px 16px !important;
    border-radius:0 !important;
    margin:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
  }
}

/* ── Bottom nav colored icon backgrounds (match home tiles) ─────────── */
@media (max-width:860px),(display-mode:standalone){
  .rsv-mobile-app-bottom i{
    width:36px !important;
    height:36px !important;
    border-radius:10px !important;
    background:rgba(7,84,41,.10) !important;
    color:#075429 !important;
  }
  .rsv-mobile-app-bottom a.active i{
    background:rgba(141,198,63,.30) !important;
    color:#075429 !important;
  }
  .rsv-mobile-app-bottom .rsv-nav-alertas i{
    background:rgba(180,83,9,.11) !important;
    color:#b45309 !important;
  }
  .rsv-mobile-app-bottom .rsv-nav-alertas.active i{
    background:rgba(180,83,9,.22) !important;
  }
  .rsv-mobile-app-bottom .rsv-nav-observadores i{
    background:rgba(29,78,216,.11) !important;
    color:#1d4ed8 !important;
  }
  .rsv-mobile-app-bottom .rsv-nav-observadores.active i{
    background:rgba(29,78,216,.22) !important;
  }
  .rsv-mobile-app-bottom .rsv-nav-agr i{
    background:rgba(109,40,217,.11) !important;
    color:#6d28d9 !important;
  }
  .rsv-mobile-app-bottom .rsv-nav-agr.active i{
    background:rgba(109,40,217,.22) !important;
  }
  .rsv-mobile-app-bottom svg{
    width:20px !important;
    height:20px !important;
  }
}