/* ===== Diseño base ===== */
:root{--brand:#21a607;--bg:#0b0f0c;--card:#141823;--text:#e7f4e8;--mut:#a5b7a8;--b:rgba(255,255,255,.08)}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
a{color:#b6f5c8;text-decoration:none}
.container{max-width:1180px;margin:18px auto;padding:0 16px}
.card{background:var(--card);border:1px solid var(--b);border-radius:16px;padding:16px;margin-bottom:16px}
.badge{border-radius:999px;padding:.25rem .6rem;font-size:.9rem;background:#16351f;color:#b2f5c8;display:inline-block}
label{display:block;font-size:.9rem;color:var(--mut);margin:.25rem 0}
input,select,textarea{width:100%;padding:12px;border-radius:12px;border:1px solid var(--b);background:#0f140f;color:#e7f4e8}
.btn{display:inline-flex;gap:.4rem;padding:.6rem .9rem;border-radius:12px;border:1px solid var(--b);background:#0f140f;color:#e7f4e8;text-decoration:none;cursor:pointer}
.btn.primary{background:linear-gradient(135deg,#21a607,#34e27b);border:0;color:#fff}
.alert{padding:.6rem .8rem;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#102016}
.alert.error{background:#2a1414;border-color:#5a2a2a}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:.55rem .6rem;border-bottom:1px solid var(--b);text-align:left}

/* ===== Layout admin con sidebar ===== */
.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{background:#0f1413;border-right:1px solid var(--b);padding:14px;position:sticky;top:0;height:100vh}
.logo{font-weight:700;font-size:1.15rem;margin-bottom:10px}
.nav a{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:10px;color:#d6f0e0;text-decoration:none;margin:.15rem 0}
.nav a.active{background:rgba(33,166,7,.15);border:1px solid rgba(33,166,7,.35)}
.content{padding:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}

/* ===== Topbar ===== */
.topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--b)}
.menu .btn{margin-left:8px}

/* ===== Captura: mapa y overlay ===== */
/* Desktop: mapa alto generoso */
#map{height:72vh;border-radius:14px;border:1px solid var(--b)}

/* Barra de búsqueda sobre el mapa */
.searchbar{position:fixed;left:12px;right:12px;top:12px;z-index:30;display:flex;gap:8px}
.searchbar input{flex:1}
.results{position:absolute;top:44px;left:0;right:0;background:#0f1413;border:1px solid var(--b);border-radius:10px;max-height:280px;overflow:auto}
.results div{padding:.5rem .75rem;cursor:pointer}
.results div:hover{background:rgba(255,255,255,.05)}

/* Bottom sheet */
.sheet{position:fixed;left:0;right:0;bottom:0;background:#141823;border-top-left-radius:16px;border-top-right-radius:16px;border:1px solid var(--b);transform:translateY(66%);transition:transform .25s ease;z-index:20}
.sheet.open{transform:translateY(0)}
.sheet .handle{width:54px;height:5px;border-radius:999px;background:#33413a;margin:8px auto}
.sheet-body{padding:12px 14px;max-height:55vh;overflow:auto}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:700px){.row2{grid-template-columns:1fr}}

/* ===== MÓVIL: mapa realmente a pantalla completa ===== */
@media (max-width: 768px){
  /* usa toda la pantalla, incluida la safe-area en iOS */
  html,body{height:100%;min-height:100%}
  body.capture-full #map{
    position:fixed;inset:0; /* top:0;right:0;bottom:0;left:0 */
    height:auto;border-radius:0;border:0
  }
  body.capture-full .container{padding:0}
  body.capture-full .topbar{background:linear-gradient(180deg, rgba(11,15,12,.95), rgba(11,15,12,.35));position:fixed;left:0;right:0;top:0;z-index:15}
  body.capture-full .searchbar{top:58px}
  body.capture-full .sheet{border-left:0;border-right:0}
}


  /* --- INICIO DE LA CORRECCIÓN --- */

  /* 1. Hacemos que el contenedor 'main' sea la referencia de posicionamiento */
  main.container {
    position: relative; /* ¡Clave! Para que los hijos 'position: absolute' se posicionen relativos a él */
    /* Calculamos la altura para que ocupe toda la pantalla menos el header y la barra de búsqueda */
    /* Ajusta '110px' si la altura de tu header + searchbar es diferente */
    height: calc(100vh - 110px); 
    overflow: hidden; /* Evita que aparezcan barras de scroll no deseadas */
  }

  /* 2. El mapa ocupa todo el fondo del contenedor 'main' */
  #map {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; /* Lo ponemos en una capa de fondo */
  }

  /* 3. La hoja del formulario flota sobre el mapa */
  .sheet {
    position: absolute; /* Se posiciona respecto a 'main.container' */
    bottom: 0; /* Se ancla al fondo */
    left: 0;
    width: 100%;
    z-index: 10; /* ¡Clave! Un z-index alto para que esté siempre por encima del mapa */
    /* El resto de estilos de .sheet (fondo, borde, etc.) ya están en tu app.css */
  }

  /* --- FIN DE LA CORRECCIÓN --- */
