@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--green:#204c34;--green2:#166037;--orange:#d9973e;--ink:#213a2c;--muted:#778477;--line:#dce5da;--bg:#f7f8f3;--white:#fff}
*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%;font-family:'DM Sans',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit} [hidden]{display:none!important}
.app{height:100dvh;min-height:510px;display:flex;flex-direction:column;overflow:hidden}.header{height:92px;min-height:92px;background:#fffdf7;display:flex;align-items:center;justify-content:space-between;padding:10px 22px;gap:20px;border-bottom:1px solid #e6eadc;box-shadow:0 2px 12px #1938260f;z-index:650}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brandmark{width:67px;height:67px;border-radius:50%;flex-shrink:0}.brandcopy small{display:block;font-size:9px;font-weight:800;letter-spacing:.18em;color:#b58a51}.brandcopy h1{margin:3px 0;font-family:Georgia,serif;font-weight:400;font-size:27px;white-space:nowrap;line-height:1.05;color:#204b33;letter-spacing:-.9px}.brandcopy h1 strong{font-weight:700}.brandcopy>span{font-size:9px;letter-spacing:.24em;color:#5f7d67;font-weight:800}.headerright{display:flex;align-items:center;gap:9px}.wa-header{display:flex;align-items:center;gap:11px;text-decoration:none;background:#13663b;color:white;border-radius:12px;padding:11px 15px;font-size:11px;font-weight:800;box-shadow:0 5px 15px #13663b26}.wa-header small{display:block;font-size:17px;margin-top:2px;color:#fff}.wa-glyph{display:grid;place-items:center;border:2px solid #e8fff0;border-radius:50%;width:28px;height:28px;font-size:20px}.admin-access{background:white;border:1px solid #dce8dc;border-radius:12px;padding:13px 14px;display:flex;align-items:center;gap:6px;color:#547262;font-size:12px;font-weight:800}.admin-access:hover{background:#f5f9f3}.syncbar{padding:6px 22px;background:#f3f7ec;border-bottom:1px solid #dfebdb;color:#4d6758;font-size:11px;line-height:1.2;z-index:500}.syncbar.warn{background:#fff8e7;color:#81622b}.syncbar.error{background:#fff1ee;color:#9b554b}.layout{display:grid;grid-template-columns:348px minmax(0,1fr);flex:1;min-height:0}.sidebar{overflow:auto;background:white;overscroll-behavior:contain;border-right:1px solid var(--line);z-index:450}.intro,.filters{padding:19px 21px;border-bottom:1px solid #edf0e9}.eyebrow{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#bb904c;font-weight:800;margin:0 0 7px}.intro h2{font-family:Georgia,serif;font-size:27px;margin:0 0 6px;color:#254d34}.desc{font-size:12px;color:#728575;line-height:1.6;margin:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:16px}.metrics div{background:#f5f8f2;border:1px solid #e6eddf;border-radius:10px;padding:10px 9px}.metrics b{display:block;color:#245338;font-size:21px}.metrics small{font-size:10px;color:#728172}.pick-help{padding:12px;background:#fbf9f2;border:1px dashed #e8d9b9;border-radius:10px;font-size:11px;line-height:1.55;margin-top:13px}.selected{margin-top:13px;border:1px solid #c9dfca;background:#f5fbf2;border-radius:12px;padding:14px}.selected h3{margin:2px 0 9px;font-size:17px;color:#245237}.propertygrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:11px 0;border-top:1px solid #e2ebe0}.propertygrid div small{display:block;color:#819181;font-size:10px;margin-bottom:4px}.propertygrid b{font-size:12px;word-break:break-word}.whatsbutton{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;margin-top:11px;background:#158343;color:white;font-size:12px;font-weight:800;padding:13px;border-radius:9px;gap:6px}.smallhint{font-size:10px;line-height:1.5;color:#839085;margin:10px 0 0}.status-pill{display:inline-block;border-radius:99px;padding:4px 9px;font-size:10px;font-weight:800}.status-pill.libre{background:#d7f0d5;color:#267140}.status-pill.reservado{background:#fdf0c8;color:#896300}.status-pill.vendido{background:#f7d9d3;color:#a14c45}.status-pill.sin_dato{background:#eaf0ed;color:#667975}
label{display:block;font-size:12px;font-weight:750;margin-bottom:7px;color:#3c5945}.filters input:not([type=checkbox]),.filters select,.login-modal input,.editor input,.editor select{border:1px solid #d5e1d2;background:white;border-radius:10px;height:40px;width:100%;padding:0 11px;color:#263d2d;font-size:12px;outline:none}.filters input:focus,.filters select:focus,.login-modal input:focus,.editor input:focus,.editor select:focus{border-color:#529766;box-shadow:0 0 0 3px #489e6224}.filterrow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.filterrow>div{min-width:0}.filter-secondary{align-items:end}.checkline{font-size:11px;display:flex;align-items:center;gap:5px;line-height:1.2;margin:0 0 3px}.checkline input{width:17px;height:17px;accent-color:#2d8651}.checkline span{font-size:10px;color:#899788}.legend{padding:15px 21px;border-bottom:1px solid #edf0e9}.legend>strong{font-size:12px}.legendrow{display:flex;align-items:center;gap:8px;font-size:11px;color:#647a68;margin-top:10px}.legendrow b{margin-left:auto;color:#46694e}.swatch{width:15px;height:15px;display:inline-block;border:2px solid;border-radius:4px}.swatch.libre{background:#b5e0bb;border-color:#26874e}.swatch.reservado{background:#ffe1a0;border-color:#ca901d}.swatch.vendido{background:#f7b4a9;border-color:#d95149}.swatch.sin_dato{background:#e2eae5;border-color:#91a89b}.listbar{display:flex;align-items:center;justify-content:space-between;padding:14px 19px 8px;font-size:12px}.listbar button{border:0;background:transparent;font-size:11px;font-weight:700;color:#37834e}.lotlist{padding:0 12px 15px}.lotentry{border:1px solid transparent;border-radius:9px;background:white;display:flex;align-items:center;gap:10px;padding:10px 9px;width:100%;text-align:left;margin:2px 0}.lotentry:hover,.lotentry.selected-row{background:#f2f8f0;border-color:#d9e9d6}.lotnum{font-weight:800;color:#326548;background:#ecf5e7;border:1px solid #d8e9d1;border-radius:9px;min-width:39px;height:38px;display:grid;place-items:center;font-size:12px}.lotentry .lotinfo{flex:1;min-width:0}.lotentry .lotinfo b{display:block;font-size:12px}.lotentry .lotinfo span{display:block;margin-top:3px;font-size:10px;color:#728476}.lotentry .lotstate{font-size:9px;color:#52715b}.more{display:block;border:1px solid #dae7d7;border-radius:8px;margin:9px auto;padding:10px;background:white;font-size:12px;color:#356746}.disclaimer{color:#8a968a;padding:0 17px 18px;font-size:10px;line-height:1.6}.empty{padding:20px 14px;color:#728273;font-size:12px}
.maparea{position:relative;overflow:hidden;background:#d6e0d7}#map{position:absolute;inset:0}.mapstyles{display:flex;position:absolute;top:14px;right:16px;z-index:420;padding:5px;gap:3px;background:white;border-radius:12px;border:1px solid #e2e9e1;box-shadow:0 4px 22px #203c282b}.mapstyles button{font-size:12px;font-weight:800;color:#53715d;background:transparent;border:0;border-radius:8px;padding:10px 13px}.mapstyles button.active{background:#25583b;color:white}.fit{position:absolute;right:16px;top:79px;z-index:420;width:41px;height:40px;border:1px solid #dae2da;background:white;border-radius:10px;font-size:21px;color:#245336;box-shadow:0 3px 12px #15372526}.maptip{position:absolute;left:16px;bottom:18px;z-index:420;background:#163d2fe8;border-radius:10px;color:white;line-height:1.5;font-size:11px;max-width:380px;padding:11px 14px}.floating-wa{position:absolute;right:16px;bottom:18px;z-index:430;background:#168843;color:#fff;text-decoration:none;display:flex;align-items:center;gap:8px;border-radius:11px;padding:13px 15px;font-weight:800;font-size:12px;box-shadow:0 7px 21px #163e2970}.leaflet-container{font:inherit!important}.leaflet-div-icon{border:0;background:transparent}.maplabel{display:grid;place-items:center;background:#1c4634e9;border:1px solid #ecfff1b9;min-width:22px;padding:2px 4px;color:white;border-radius:4px;font-size:10px;font-weight:800;line-height:14px}.maplabel.focus{background:#f8c36b;color:#204c34}.map-popup{font-family:'DM Sans',system-ui,sans-serif;min-width:210px}.map-popup h3{font-size:15px;color:#255239;margin:5px 0}.map-popup small{color:#7b8f7f}.map-popup p{font-size:12px;margin:8px 0;color:#546f5b}.map-popup a{display:block;background:#188746;color:white;padding:10px;text-decoration:none;text-align:center;border-radius:8px;font-size:11px;font-weight:800}
.modal-backdrop{position:fixed;z-index:1300;inset:0;background:#12291db9;display:grid;place-items:center;padding:15px}.login-modal{position:relative;background:white;border-radius:18px;box-shadow:0 20px 60px #06170a7a;max-width:415px;width:100%;padding:28px}.close-x{position:absolute;top:9px;right:14px;font-size:26px;color:#68806b;border:0;background:transparent}.tiny-tag{font-size:10px;font-weight:900;color:#bc8940;letter-spacing:.14em}.login-modal h2{font-family:Georgia,serif;font-size:25px;margin:7px 0 9px}.login-modal>p{font-size:12px;line-height:1.6;color:#718073}.login-modal form{margin-top:14px}.login-modal label{margin-top:13px}.login-modal .primary{margin-top:16px}.setup-callout{border:1px solid #f0dab0;background:#fff7e6;border-radius:11px;color:#8b692a;padding:12px;margin:15px 0;font-size:12px;line-height:1.55}.primary{background:#1b6b40;color:white;border:0;border-radius:9px;width:100%;padding:13px;font-weight:800;font-size:12px}.primary:hover{background:#12542f}.feedback{font-size:12px;line-height:1.5;min-height:16px;color:#8a5f26}.feedback.error{color:#ba4c40}.feedback.success{color:#247946}
.editor{position:fixed;z-index:950;top:103px;right:17px;bottom:18px;width:min(390px,calc(100% - 30px));background:white;box-shadow:0 15px 70px #15302275;border:1px solid #d5e6d6;border-radius:17px;display:flex;flex-direction:column;overflow:hidden}.editorhead{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;background:#1d5134;color:white}.editorhead small{font-size:10px;letter-spacing:.13em;color:#d1e5cb}.editorhead h2{font-family:Georgia,serif;font-size:22px;margin:4px 0 0}.editorhead button{font-size:26px;border:0;color:white;background:transparent}.editorbody{padding:18px 20px 22px;overflow:auto}.admin-user{padding:10px 12px;background:#f2f7f1;border-radius:9px;color:#54705a;font-size:11px;margin-bottom:15px;overflow-wrap:anywhere}.editor label{margin:13px 0 6px}.editor-lot-summary{padding:12px;background:#fbf9f3;border:1px solid #e7e0d0;border-radius:10px;font-size:12px;line-height:1.5;margin:12px 0}.editor form .primary{margin-top:14px}.muted-note{font-size:10px;color:#8a9689;line-height:1.55}.signout{width:100%;border:1px solid #d9e7d8;border-radius:9px;padding:10px;font-size:12px;font-weight:750;background:white;color:#4c7154}.editor .feedback{margin:9px 0}
@media(max-width:900px){.layout{grid-template-columns:295px minmax(0,1fr)}.brandcopy h1{font-size:23px}.header{padding:9px 15px}.wa-header small{font-size:14px}}
@media(max-width:720px){.app{height:100dvh;min-height:500px}.header{height:70px;min-height:70px;padding:5px 9px;gap:5px}.brand{gap:5px}.brandmark{width:47px;height:47px}.brandcopy h1{font-size:17px;letter-spacing:-.4px}.brandcopy small{font-size:7px;letter-spacing:.08em}.brandcopy>span{font-size:7px;letter-spacing:.12em}.headerright{gap:5px}.wa-header{padding:10px 9px}.wa-header span:not(.wa-glyph){display:none}.wa-glyph{width:25px;height:25px;font-size:16px}.admin-access{padding:11px;font-size:17px}.admin-access span{display:none}.syncbar{font-size:10px;padding:6px 10px}.layout{display:flex;flex-direction:column}.maparea{height:53%;min-height:245px;flex-shrink:0;order:0}.sidebar{order:1;flex:1;border-right:0;border-top:1px solid var(--line)}.intro,.filters{padding:14px 15px}.intro h2{font-size:22px}.metrics{margin-top:10px}.metrics div{padding:8px}.metrics b{font-size:17px}.mapstyles{right:8px;top:9px}.mapstyles button{padding:8px;font-size:11px}.fit{top:64px;right:8px;width:36px;height:36px}.maptip{bottom:8px;left:8px;font-size:10px;padding:8px 10px;max-width:69%}.floating-wa{bottom:8px;right:8px;left:8px;justify-content:center;padding:12px}.maptip:has(~ .floating-wa:not([hidden])){display:none}.editor{top:79px;right:8px;left:8px;width:auto;bottom:9px}.legend{padding:13px 16px}.disclaimer{padding:0 14px 12px}}
@media(max-width:370px){.brandcopy h1{font-size:15px}.brandmark{width:40px;height:40px}.admin-access{padding:8px}.wa-header{padding:7px}}



/* === HACIENDA LOS NARANJOS · MEJORAS DE USO EN CELULARES (V2) === */
/* Ocultar el aviso rutinario; mantener visibles avisos importantes de error. */
.syncbar:not(.warn):not(.error){display:none!important}
.syncbar[hidden]{display:none!important}

/* El editor debe quedar por encima de controles Leaflet (z-index 1000). */
.editor{z-index:2400}
.editorhead{flex-shrink:0}
.editorbody{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.editorfoot{flex-shrink:0;z-index:3;border-top:1px solid #e2eadf;padding:10px 18px 14px;background:#fff;box-shadow:0 -6px 20px #142b1912}
.editorfoot .primary{height:46px;font-size:13px}
.editorfoot .feedback{margin:0 0 6px;min-height:0;font-size:11px;line-height:1.35}
.editorfoot .feedback:empty{display:none}
.editorhead button{min-width:44px;min-height:44px;display:grid;place-items:center;flex-shrink:0}
.editing-open{overflow:hidden!important}

@media(max-width:720px){
  /* Usar la altura de pantalla para el mapa; controles y fichas quedan debajo. */
  html,body{height:auto;min-height:100%;overflow-x:hidden}
  .app{display:block;height:auto;min-height:100dvh;overflow:visible}
  .header{height:70px;min-height:70px;position:relative}
  .layout{display:flex;flex-direction:column;min-height:0;overflow:visible}
  .maparea{
    order:0; flex:none;
    height:clamp(380px,calc(100svh - 195px),750px);
    min-height:0;
    width:100%;
  }
  .sidebar{
    order:1;flex:none;overflow:visible;height:auto;
    border-top:1px solid var(--line);border-right:0;
  }
  /* Franja fuera del mapa donde el dedo puede deslizar la página normalmente. */
  .sidebar::before{
    content:"↓  Deslizá aquí para ver los lotes";
    display:flex;align-items:center;justify-content:center;
    min-height:62px;padding:12px 16px;
    background:#f1f6ed;border-bottom:1px solid #e0eadb;
    color:#2d6042;font-size:13px;font-weight:700;
    text-align:center;letter-spacing:.01em;
    touch-action:pan-y;-webkit-user-select:none;user-select:none;
  }

  /* El contacto para el lote sigue dentro del mapa, sin tapar las capas. */
  .mapstyles{top:12px;right:12px}
  .fit{top:70px;right:12px}
  .maptip{bottom:13px;left:12px;max-width:75%;font-size:11px}
  .floating-wa{bottom:13px;left:12px;right:12px;min-height:48px;font-size:13px}
  .intro,.filters{padding:18px 16px}
  .intro h2{font-size:25px}
  .desc{font-size:13px}

  /* El editor pasa a ser un panel de pantalla completa: sin elementos Leaflet encima. */
  .editor{
    z-index:2400;
    inset:0!important;
    top:0!important;right:0!important;bottom:0!important;left:0!important;
    width:100%;height:100dvh;max-height:100dvh;
    border:none;border-radius:0;
    box-shadow:none;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
    background:#fff;
  }
  .editorhead{position:relative;z-index:2;padding:10px 16px 10px;min-height:62px}
  .editorhead small{font-size:9px;letter-spacing:.11em}
  .editorhead h2{font-size:22px;margin:2px 0 0}
  .editorhead button{font-size:26px}
  .editorbody{flex:1;min-height:0;padding:13px 16px 20px}
  .editor label{margin:12px 0 6px;font-size:13px}
  .editor input,.editor select{font-size:16px;height:46px;padding:0 12px}
  .admin-user{font-size:11px;margin-bottom:13px;padding:9px 11px}
  .editor-lot-summary{margin:12px 0;font-size:12px;padding:11px}
  .editorfoot{padding:9px 16px 11px}
  .editorfoot .primary{height:48px;font-size:14px}
  .editorfoot .feedback{font-size:11px}
  .signout{margin:12px 0 8px;min-height:43px}
  /* Impedir que el popup quede superpuesto al panel. */
  .editing-open .leaflet-control-container{pointer-events:none}
}

@media(max-width:390px){
  .header{padding:6px 9px}
  .brandmark{width:43px;height:43px}
  .brandcopy h1{font-size:15px}
  .wa-header{padding:7px}
  .admin-access{padding:8px}
}

/* === HACIENDA LOS NARANJOS · EDICIÓN RÁPIDA POR PARCELA === */
.hacienda-lot-popup .leaflet-popup-content-wrapper{
  border-radius:14px;box-shadow:0 12px 34px rgba(12,43,22,.3);
}
.hacienda-lot-popup .leaflet-popup-content{margin:12px 14px;width:265px!important;max-width:calc(100vw - 78px)!important}
.hacienda-lot-popup .leaflet-popup-close-button{width:30px;height:30px;font-size:23px;line-height:29px;color:#6e8070}
.quick-popup{min-width:0}
.quick-popup .quick-kicker{font-size:9px;letter-spacing:.08em;font-weight:800;color:#558366;margin-right:16px}
.quick-popup h3{font-size:17px;line-height:1.22;margin:5px 0 3px;color:#235337}
.quick-popup .quick-meta{font-size:11px;color:#7a897b;margin-bottom:10px}
.quick-popup label{display:block;margin:7px 0;color:#3d624a;font-size:11px;font-weight:800}
.quick-popup select,.quick-popup input{
 display:block;width:100%;height:40px;min-width:0;border-radius:8px;border:1px solid #cfdecf;
 padding:0 10px;margin-top:4px;background:#fff;color:#294c35;font-size:16px;
 outline:none;box-shadow:none;
}
.quick-popup select:focus,.quick-popup input:focus{border-color:#35865a;box-shadow:0 0 0 2px #35865a25}
.quick-popup .quick-buttons{display:flex;gap:7px;margin-top:12px}
.quick-popup .quick-buttons button{min-height:41px;border-radius:8px;font-size:11px;font-weight:800;line-height:1.2}
.quick-popup .quick-save{flex:1.2;padding:9px 6px;border:0;background:#197845;color:white}
.quick-popup .quick-more{flex:0.8;padding:9px 6px;border:1px solid #cadfce;background:#f4f8f2;color:#356548}
.quick-popup .quick-feedback{font-size:11px;line-height:1.4;margin-top:5px;min-height:0;color:#736c45}
.quick-popup .quick-feedback:empty{display:none}
.quick-popup .quick-feedback.success{color:#167c3c;font-weight:750}
.quick-popup .quick-feedback.error{color:#b63c35}
@media(max-width:390px){
 .hacienda-lot-popup .leaflet-popup-content{width:245px!important}
 .quick-popup .quick-buttons button{font-size:10px}
}


/* === Corrección de manzanas y lotes (v3) === */
.editor-number-grid,.quick-id-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.editor-number-grid>div,.quick-id-grid>label{min-width:0}
.editor-number-grid input,.quick-id-grid input{min-width:0;width:100%;font-variant-numeric:tabular-nums}
.number-note{font-size:11px;line-height:1.45;color:#71836e;background:#f3f8f1;border-left:3px solid #accdb5;padding:9px 10px;border-radius:5px;margin:10px 0}
.quick-popup .quick-id-grid{gap:8px;margin:4px 0 2px}
.quick-popup .quick-id-grid label{margin:5px 0 3px}
.quick-popup .quick-id-grid input{height:38px}
.hacienda-lot-popup .leaflet-popup-content-wrapper{max-height:min(72dvh,530px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:720px){
  .editor-number-grid{gap:9px}
  .editor-number-grid .editor label{font-size:12px}
  .hacienda-lot-popup .leaflet-popup-content-wrapper{max-height:min(65dvh,470px)}
}
