
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=IBM+Plex+Sans:wght@300;400;600;700&display=swap');
:root{
  /* ═══ AGROLINE PRECISION v9.6.2 — paleta com temas Noite/Dia ═══ */
  /* Cores neutras (iguais nos dois temas) */
  --gold:#f5c842;--gold-light:#ffd966;--gold-dark:#d4a531;
  --red:#e74c3c;--red-soft:#c0392b;
  --blue:#3498db;--blue-soft:#2980b9;
  --orange:#f39c12;--purple:#9b59b6;
  --green-dark:#3d8a2c;--green-pale:#1f2a18;
}

/* ═══ TEMA NOITE (padrão) — verde escuro com botões verde claro ═══ */
:root,[data-theme="dark"]{
  /* Destaque (verde claro, contrasta no fundo verde escuro) */
  --green:#7fd668;--green-light:#9fe888;
  --green-glow:#7fd66840;
  /* Fundos verde escuro (puxados da logo) */
  --bg:#0a1f0d;             /* fundo geral, verde bem escuro */
  --bg-1:#0f2a14;           /* painéis */
  --bg-2:#143820;           /* cards dentro de painéis */
  --bg-3:#1c4828;           /* hover / elementos elevados */
  --bg-header:#081a0c;      /* header */
  /* Textos */
  --fg:#e8efe5;             /* texto principal */
  --fg-soft:#b8d4b0;        /* texto secundário */
  --fg-mute:#7a9676;        /* texto fraco */
  --fg-dim:#5a7656;         /* legendas */
  /* Bordas */
  --bord:#2a4530;
  --bord-soft:#1f3025;
  --bord-strong:#3a5540;
  /* Aliases compat */
  --dark:#e8efe5;--mid:#b8d4b0;--gray:#7a9676;--gray-light:#5a7656;
  --white:#143820;
  /* Painéis */
  --pn-bg:#0f2a14;--pn-fg:#e8efe5;--pn-sub:#b8d4b0;--pn-bord:#2a4530;
  --pn-help:#143820;--pn-hier:#143820;--pn-hierhov:#1c4828;
  --pn-obs:#2a1f15;--pn-tlbtn:#143820;--pn-toast:#143820;
  /* Overlay buttons sobre o mapa */
  --btn-overlay-bg:rgba(28,72,40,.96);
  --btn-overlay-bg-hover:rgba(40,92,56,.98);
}

/* ═══ TEMA DIA — verde claro com branco ═══ */
[data-theme="light"]{
  /* Destaque (verde mais saturado, contrasta no fundo claro) */
  --green:#4a9a35;--green-light:#5fb84a;
  --green-glow:#4a9a3530;
  /* Fundos verde claro/branco */
  --bg:#e8f3dc;             /* fundo geral, verde bem claro */
  --bg-1:#ffffff;           /* painéis brancos */
  --bg-2:#f4f9ee;           /* cards */
  --bg-3:#e4f0d2;           /* hover */
  --bg-header:#ffffff;      /* header branco */
  /* Textos */
  --fg:#1a2820;             /* texto principal escuro */
  --fg-soft:#3a4a3a;        /* texto secundário */
  --fg-mute:#6a786a;        /* texto fraco */
  --fg-dim:#8a988a;         /* legendas */
  /* Bordas */
  --bord:#c8d8b8;
  --bord-soft:#dde6cf;
  --bord-strong:#a8c098;
  /* Aliases compat */
  --dark:#1a2820;--mid:#3a4a3a;--gray:#6a786a;--gray-light:#8a988a;
  --white:#ffffff;
  /* Painéis */
  --pn-bg:#ffffff;--pn-fg:#1a2820;--pn-sub:#3a4a3a;--pn-bord:#c8d8b8;
  --pn-help:#f4f9ee;--pn-hier:#f4f9ee;--pn-hierhov:#e4f0d2;
  --pn-obs:#fdf5e0;--pn-tlbtn:#f4f9ee;--pn-toast:#ffffff;
  /* Overlay buttons sobre o mapa */
  --btn-overlay-bg:rgba(255,255,255,.97);
  --btn-overlay-bg-hover:rgba(244,249,238,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'IBM Plex Sans',-apple-system,system-ui,sans-serif;background:var(--bg);color:var(--fg);height:100vh;display:flex;flex-direction:column;overflow:hidden;font-size:13px;-webkit-font-smoothing:antialiased;}

/* Scrollbar dark */
*::-webkit-scrollbar{width:8px;height:8px;}
*::-webkit-scrollbar-track{background:var(--bg-1);}
*::-webkit-scrollbar-thumb{background:var(--bord-strong);border-radius:4px;}
*::-webkit-scrollbar-thumb:hover{background:var(--fg-mute);}

/* ═══ TOGGLES estilo iOS verde neon ═══ */
.ltog{display:flex;align-items:center;gap:8px;padding:7px 4px;cursor:pointer;font-size:12px;color:var(--fg-soft);border-radius:6px;transition:background .15s;}
.ltog:hover{background:var(--bg-2);}
.ltog input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  position:relative;width:34px;height:18px;
  background:var(--bord-strong);
  border-radius:10px;cursor:pointer;flex-shrink:0;
  transition:background .2s;
}
.ltog input[type="checkbox"]::before{
  content:'';position:absolute;
  width:14px;height:14px;border-radius:50%;
  background:white;top:2px;left:2px;
  transition:transform .2s;
  box-shadow:0 1px 3px rgba(0,0,0,.4);
}
.ltog input[type="checkbox"]:checked{background:var(--green);}
.ltog input[type="checkbox"]:checked::before{transform:translateX(16px);}

/* Inputs e selects dark */
input[type="text"],input[type="number"],input[type="search"],select,textarea{
  background:var(--bg-2);color:var(--fg);
  border:1px solid var(--bord);border-radius:5px;
  padding:6px 9px;font-family:inherit;font-size:12px;
  transition:border-color .15s,box-shadow .15s;
}
input[type="text"]:focus,input[type="number"]:focus,input[type="search"]:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 2px var(--green-glow);
}
input[type="range"]{
  appearance:none;-webkit-appearance:none;height:5px;background:var(--bord-strong);
  border-radius:3px;outline:none;
}
input[type="range"]::-webkit-slider-thumb{
  appearance:none;-webkit-appearance:none;width:16px;height:16px;
  background:var(--green);border-radius:50%;cursor:pointer;
  box-shadow:0 0 0 3px rgba(95,184,74,.2);
}
input[type="range"]::-moz-range-thumb{
  width:16px;height:16px;background:var(--green);border:none;border-radius:50%;cursor:pointer;
}

/* ═══ HEADER AGROLINE PRECISION ═══ */
header{
  background:var(--bg-header);color:var(--fg);
  padding:10px 18px;display:flex;align-items:center;gap:14px;
  flex-shrink:0;
  box-shadow:0 2px 12px rgba(0,0,0,.4);
  border-bottom:1px solid var(--bord-soft);
  z-index:1000;position:relative;
}
.h-logo{
  width:42px;height:42px;border-radius:50%;
  background:var(--bg-2);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  overflow:hidden;
  border:1px solid var(--bord);
}
.h-logo img{width:100%;height:100%;object-fit:contain;}
.h-titles{flex:0 0 auto;min-width:0;display:flex;flex-direction:column;margin-right:18px;max-width:220px;}
.h-titles h1{
  font-size:18px;font-weight:700;letter-spacing:-0.5px;
  display:flex;align-items:baseline;gap:2px;
  white-space:nowrap;
}
.h-titles h1 .h-name-a{color:var(--fg);}
.h-titles h1 .h-name-b{color:var(--green);}
.h-titles h1 .h-ver{font-size:9px;color:var(--fg-mute);font-weight:500;margin-left:6px;align-self:center;}
.h-sub{font-size:9px;color:var(--fg-mute);font-weight:500;letter-spacing:.5px;text-transform:uppercase;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.h-actions{display:flex;gap:6px;align-items:center;}
.h-btn{
  background:transparent;color:var(--fg-soft);
  border:1px solid transparent;
  padding:7px 12px;border-radius:6px;
  font-weight:600;font-size:11px;cursor:pointer;font-family:inherit;
  transition:all .15s;white-space:nowrap;
  display:flex;align-items:center;gap:5px;
}
.h-btn:hover:not(:disabled){background:var(--bg-2);color:var(--fg);}
.h-btn:disabled{opacity:.3;cursor:not-allowed;}
.h-btn.gold{
  background:var(--green);color:#0a0e0c;border-color:var(--green);
  font-weight:700;padding:8px 16px;
  box-shadow:0 2px 8px rgba(95,184,74,.25);
}
.h-btn.gold:hover:not(:disabled){background:var(--green-light);box-shadow:0 2px 12px rgba(95,184,74,.4);}
.h-btn.ur{padding:6px 10px;font-size:14px;line-height:1;background:var(--bg-2);border-color:var(--bord);color:var(--fg-soft);}
.h-btn.ur:disabled{opacity:.45;cursor:not-allowed;}

/* v9.9.5: Botões Desfazer/Refazer sobre o mapa, abaixo do zoom */
#mapUndoRedo{
  position:absolute;left:10px;top:90px;
  z-index:1000;display:flex;flex-direction:column;gap:3px;
  pointer-events:auto;
}
.map-ur-btn{
  width:32px;height:32px;
  background:var(--bg-1);
  border:2px solid var(--bord-strong);
  border-radius:6px;
  color:var(--fg);
  font-size:17px;line-height:1;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
  transition:all .15s;
}
.map-ur-btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--green);color:var(--green);}
.map-ur-btn:disabled{opacity:.30;cursor:not-allowed;}
[data-theme="light"] .map-ur-btn{background:#fff;border-color:#a8c098;color:#1a2820;}
[data-theme="light"] .map-ur-btn:hover:not(:disabled){background:#e4f0d2;border-color:#4a9a35;color:#4a9a35;}
.h-sep{width:1px;background:var(--bord);height:24px;}

/* ═══ TAB BAR — estilo dark ═══ */
#tabBar{
  background:var(--bg-1);
  display:flex;align-items:stretch;flex-shrink:0;
  border-bottom:1px solid var(--bord-soft);
  overflow-x:auto;scrollbar-width:none;
}
#tabBar::-webkit-scrollbar{display:none;}
.tb{
  background:transparent;border:none;
  border-bottom:2px solid transparent;
  color:var(--fg-mute);padding:0 14px;height:38px;
  font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;
  white-space:nowrap;display:flex;align-items:center;gap:6px;
  transition:all .15s;
}
.tb:hover{color:var(--fg);background:var(--bg-2);}
.tb.active{color:var(--green);border-bottom-color:var(--green);background:var(--bg-2);}
.tbn{
  width:16px;height:16px;background:var(--bord-strong);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:8px;font-weight:700;flex-shrink:0;color:var(--fg);
}
.tb.active .tbn{background:var(--green);color:#0a0e0c;}

/* ─── APP AREA ─── */
#appArea{flex:1;position:relative;overflow:hidden;background:var(--bg);}
#map{width:100%;height:100%;}

/* ═══ FLOATING PANEL — dark glassmorphism ═══ */
.fp{
  position:absolute;top:12px;left:12px;z-index:500;
  background:var(--bg-1);
  border:1px solid var(--bord);
  border-radius:10px;width:300px;
  max-height:calc(100vh - 130px);
  display:none;flex-direction:column;
  box-shadow:0 8px 32px rgba(0,0,0,.5);
  color:var(--fg);
}
.fp.open{display:flex;}
.fp-head{
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1));
  color:var(--fg);padding:9px 12px;
  display:flex;align-items:center;justify-content:space-between;
  border-radius:9px 9px 0 0;flex-shrink:0;
  cursor:grab;user-select:none;
  border-bottom:1px solid var(--bord-soft);
}
.fp-head:active{cursor:grabbing;}
.fp-title{font-weight:700;font-size:12px;color:var(--green);}
.fp-close{
  background:var(--bg-3);border:none;color:var(--fg);
  cursor:pointer;font-size:13px;line-height:1;padding:3px 8px;border-radius:4px;
  transition:background .15s;
}
.fp-close:hover{background:var(--red);color:white;}
.fp-body{padding:12px;overflow-y:auto;flex:1;background:var(--bg-1);border-radius:0 0 9px 9px;}
.fp-sec{display:none;}
.fp-sec.active{display:block;}

/* ═══ ELEMENTOS ═══ */
.sec-sep{height:1px;background:var(--bord-soft);margin:10px 0;}
.mini-ttl{
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;
  color:var(--fg-mute);margin:9px 0 5px;
}
.small{font-size:11px;color:var(--fg-mute);}
label{display:block;font-size:11px;font-weight:600;color:var(--fg-soft);margin-bottom:7px;}
label>span{display:block;margin-bottom:3px;color:var(--fg-mute);font-weight:400;font-size:10px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.ro{
  background:var(--bg-2);padding:5px 10px;border-radius:5px;margin-top:4px;
  display:flex;justify-content:space-between;font-size:11px;color:var(--fg-soft);
  border:1px solid var(--bord-soft);
}
.ro strong{color:var(--green);font-family:'IBM Plex Mono',monospace;}

/* ═══ BOTÕES ═══ */
.btn{
  width:100%;background:var(--green);color:#0a0e0c;
  border:none;padding:9px;border-radius:6px;
  font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;
  margin-top:5px;transition:all .15s;text-align:center;display:block;
  letter-spacing:.2px;
}
.btn:hover:not(:disabled){background:var(--green-light);box-shadow:0 2px 8px rgba(95,184,74,.3);transform:translateY(-1px);}
.btn:active:not(:disabled){transform:translateY(0);}
.btn:disabled{opacity:.35;cursor:not-allowed;}
.btn.sec{
  background:var(--bg-2);color:var(--fg);
  border:1px solid var(--bord);font-weight:600;
}
.btn.sec:hover:not(:disabled){background:var(--bg-3);border-color:var(--green);transform:none;box-shadow:none;}
.btn.gold{background:var(--gold);color:#0a0e0c;}
.btn.gold:hover:not(:disabled){background:var(--gold-light);box-shadow:0 2px 8px rgba(245,200,66,.3);}
.btn.red{background:var(--red);color:white;}
.btn.red:hover:not(:disabled){background:#c0392b;box-shadow:0 2px 8px rgba(231,76,60,.3);}
.btn.orange{background:var(--orange);color:white;}
.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:5px;}
.btn-row .btn{margin-top:0;}
.btn-row.t1{grid-template-columns:1fr;}
.btn-row.t3{grid-template-columns:1fr 1fr 1fr;}
.badge{display:inline-block;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;}
.badge.g{background:var(--green);color:#0a0e0c;}
.badge.o{background:var(--orange);color:white;}
.tool-help{
  background:var(--bg-2);
  border-left:3px solid var(--green);
  padding:7px 10px;font-size:11px;color:var(--fg-soft);
  border-radius:4px;line-height:1.45;margin-bottom:6px;
}
.tool-st{font-size:11px;font-family:'IBM Plex Mono',monospace;color:var(--fg-mute);padding:3px 0;}
.tool-st .ok{color:var(--green);}


/* ═══ SUB-TABS ═══ */
.stabs{display:flex;gap:3px;background:var(--bg-2);padding:3px;border-radius:6px;margin-bottom:9px;border:1px solid var(--bord-soft);}
.stabs button{flex:1;background:transparent;border:none;padding:6px 4px;font-size:10px;font-weight:600;border-radius:4px;cursor:pointer;color:var(--fg-mute);font-family:inherit;transition:all .15s;}
.stabs button:hover{color:var(--fg);}
.stabs button.active{background:var(--green);color:#0a0e0c;}

/* ═══ DROPZONE ═══ */
.dropzone{
  border:2px dashed var(--green);border-radius:8px;padding:16px 12px;
  text-align:center;cursor:pointer;
  background:var(--bg-2);transition:all .2s;
}
.dropzone:hover,.dropzone.drag-over{background:var(--bg-3);border-color:var(--green-light);box-shadow:0 0 0 3px rgba(95,184,74,.15);}
.dz-icon{font-size:24px;margin-bottom:5px;}
.dz-text{font-size:12px;color:var(--green);font-weight:700;}
.dz-hint{font-size:10px;color:var(--fg-mute);margin-top:3px;}
.dropzone input{display:none;}
.file-status{
  background:var(--bg-2);border-left:3px solid var(--green);
  padding:7px 10px;margin-top:7px;border-radius:4px;font-size:11px;color:var(--fg-soft);
}

/* ═══ HIERARQUIA — Cliente > Fazenda > Talhão ═══ */
.hier{
  max-height:280px;overflow-y:auto;
  border:1px solid var(--bord);border-radius:6px;
  background:var(--bg-1);
}
.hier-empty{padding:14px;text-align:center;color:var(--fg-mute);font-size:11px;font-style:italic;}
.hier-client{border-bottom:1px solid var(--bord-soft);}
.hier-client:last-child{border-bottom:none;}
.hch{
  padding:7px 9px;background:var(--bg-2);
  font-weight:700;font-size:11px;color:var(--green);
  cursor:pointer;display:flex;align-items:center;gap:6px;
  transition:background .15s;
}
.hch:hover{background:var(--bg-3);}
.chevron{transition:transform .15s;font-size:9px;color:var(--fg-mute);}
.hier-client.collapsed .chevron,.hier-farm.collapsed .chevron{transform:rotate(-90deg);}
.hier-client.collapsed .hcb,.hier-farm.collapsed .hfb{display:none;}
.hfh{
  padding:5px 9px 5px 22px;background:var(--bg-1);
  font-weight:600;font-size:11px;color:var(--gold);
  cursor:pointer;display:flex;align-items:center;gap:5px;
  border-top:1px solid var(--bord-soft);
}
.hfh:hover{background:var(--bg-2);}
.hf{
  padding:6px 9px 6px 30px;cursor:pointer;
  display:flex;align-items:center;gap:7px;font-size:11px;
  border-top:1px solid var(--bord-soft);
  color:var(--fg-soft);transition:background .1s;
}
.hf:hover{background:var(--bg-2);color:var(--fg);}
.hf.sel{background:var(--green);color:#0a0e0c;font-weight:600;}
.hf.sel .fa{color:#0a0e0c;}
.hf.msel{background:var(--bg-3);}
.hf.mact{background:var(--green);color:#0a0e0c;font-weight:600;}
.hf.mact .fa{color:#0a0e0c;}
.fdot{width:9px;height:9px;border-radius:50%;flex-shrink:0;border:1px solid rgba(255,255,255,.2);}
.fn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fa{font-size:10px;color:var(--fg-mute);font-family:'IBM Plex Mono',monospace;flex-shrink:0;}
.fchk{width:14px;height:14px;flex-shrink:0;cursor:pointer;accent-color:var(--green);}

/* ═══ OBSTACLES ═══ */
.obs-item{
  display:flex;align-items:center;gap:6px;padding:6px 9px;
  background:var(--bg-2);border-left:3px solid var(--orange);
  border-radius:5px;margin-top:5px;font-size:11px;
  color:var(--fg-soft);
}
.obs-nm{flex:1;color:var(--fg);display:flex;align-items:center;flex-wrap:wrap;gap:3px;}
.obs-tipo{font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;color:#fff;white-space:nowrap;flex-shrink:0;}
.obs-rm{background:none;border:none;color:var(--red);cursor:pointer;font-size:16px;padding:0 4px;line-height:1;}
.obs-rm:hover{color:#ff6b6b;}

/* ═══ MAP OVERLAYS ═══ */
.map-toolbar{
  position:absolute;top:12px;right:12px;
  background:var(--bg-1);
  padding:5px;border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.5);
  display:flex;flex-direction:column;gap:3px;z-index:400;
  border:1px solid var(--bord);
}
.map-toolbar button{
  background:var(--bg-2);color:var(--fg);
  border:1px solid var(--bord);
  padding:6px 10px;font-size:11px;font-weight:600;
  border-radius:5px;cursor:pointer;font-family:inherit;white-space:nowrap;
  transition:all .15s;
}
.map-toolbar button:hover{background:var(--bg-3);border-color:var(--green);}
.map-toolbar button.active{background:var(--green);color:#0a0e0c;border-color:var(--green);}
.map-toolbar hr{border:none;border-top:1px solid var(--bord-soft);margin:3px 0;}

.map-info{
  position:absolute;bottom:12px;left:12px;
  background:var(--bg-1);
  padding:9px 12px;border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.5);
  font-size:12px;z-index:400;min-width:200px;
  border-left:3px solid var(--green);
  border:1px solid var(--bord);
  color:var(--fg);
}
.map-info .mi-n{font-weight:700;color:var(--green);margin-bottom:3px;font-size:13px;}
.map-info .mi-m{font-size:11px;color:var(--fg-mute);font-family:'IBM Plex Mono',monospace;line-height:1.6;}
.map-empty{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  flex-direction:column;color:var(--fg);text-align:center;pointer-events:none;
  background:radial-gradient(ellipse at center,var(--bg-2),var(--bg));
  z-index:300;
}
.map-empty .me-i{font-size:48px;opacity:.7;}
.map-empty .me-t{font-size:14px;margin-top:12px;opacity:.95;max-width:320px;color:var(--fg-soft);}

/* ═══ MODE BAR ═══ */
.mode-bar{
  position:absolute;bottom:55px;left:50%;transform:translateX(-50%);
  background:var(--bg-1);
  color:var(--fg);padding:9px 18px;border-radius:24px;
  box-shadow:0 4px 20px rgba(0,0,0,.6);
  font-size:12px;z-index:600;display:none;
  align-items:center;gap:12px;white-space:nowrap;
  border:1px solid var(--green);
}
.mode-bar .m-n{font-weight:700;color:var(--green);}
.mode-bar .m-h{color:var(--fg-mute);font-size:11px;}
.mode-bar button{
  background:var(--bg-2);color:var(--fg);
  border:1px solid var(--bord);padding:5px 11px;border-radius:14px;
  font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;
  transition:all .15s;
}
.mode-bar button:hover{background:var(--bg-3);}
.mode-bar .m-exit{background:rgba(231,76,60,.2);border-color:var(--red);color:var(--red);}
.mode-bar .m-exit:hover{background:var(--red);color:white;}

/* ═══ TOAST ═══ */
.toast-container{
  position:fixed;top:90px;right:16px;
  display:flex;flex-direction:column;gap:7px;z-index:5000;pointer-events:none;
}
.toast{
  background:var(--bg-1);
  border-left:4px solid var(--green);color:var(--fg);
  padding:10px 14px;border-radius:6px;
  box-shadow:0 4px 20px rgba(0,0,0,.4);
  font-size:12px;font-weight:500;min-width:220px;max-width:340px;
  animation:toastIn .25s ease-out;pointer-events:auto;
  border:1px solid var(--bord);
}
.toast.ok{border-left-color:var(--green);}
.toast.err{border-left-color:var(--red);}
.toast.fade{animation:toastOut .4s ease-in forwards;}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes toastOut{to{opacity:0;transform:translateX(20px)}}

/* ═══ LEGEND ═══ */
.map-legend{
  position:absolute;top:10px;left:50%;transform:translateX(-50%);
  background:var(--bg-1);
  padding:9px 14px;border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.5);
  font-size:11px;z-index:600;color:var(--fg);
  white-space:nowrap;cursor:move;user-select:none;
  border:1px solid var(--bord);
}
.leg-ttl{font-weight:700;color:var(--green);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.leg-x{background:none;border:none;color:var(--fg-mute);cursor:pointer;font-size:14px;line-height:1;}
.leg-x:hover{color:var(--red);}
.leg-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;color:var(--fg-soft);}
.leg-ln{display:inline-block;width:20px;height:3px;border-radius:1px;flex-shrink:0;}

/* ═══ DIAG ═══ */
.diag-box{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  background:var(--bg-1);
  border:2px solid var(--red);border-radius:10px;padding:16px 20px;
  max-width:540px;max-height:78vh;overflow-y:auto;
  box-shadow:0 10px 40px rgba(0,0,0,.6);
  font-size:12px;z-index:700;color:var(--fg);
}
.diag-box h3{color:var(--red);margin-bottom:8px;font-size:13px;}
.diag-box p{margin-bottom:10px;color:var(--fg-soft);}
.diag-fl{
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--fg-soft);
  max-height:260px;overflow-y:auto;white-space:pre;line-height:1.5;
  background:var(--bg);
  border:1px solid var(--bord);border-radius:5px;padding:9px 11px;
}
.diag-x{
  position:absolute;top:8px;right:10px;
  background:var(--red);border:none;font-size:12px;cursor:pointer;
  color:white;border-radius:4px;padding:3px 9px;font-weight:700;
}

/* ═══ MARKERS ═══ */
.ab-marker{
  background:var(--gold);color:#0a0e0c;
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:12px;
  border:2px solid white;box-shadow:0 2px 6px rgba(0,0,0,.5);cursor:move;
}
.curve-marker{
  background:var(--blue);color:white;
  width:20px;height:20px;border-radius:50%;
  border:2px solid white;box-shadow:0 2px 6px rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;
  font-size:8px;font-weight:700;cursor:move;
}
.vertex-marker{
  background:var(--red);width:14px;height:14px;border-radius:50%;
  border:2px solid white;box-shadow:0 2px 5px rgba(0,0,0,.5);cursor:move;
}
.ruler-label{
  background:rgba(231,76,60,.95)!important;color:white!important;
  border:none!important;border-radius:4px!important;
  font-size:10px!important;font-weight:700!important;padding:3px 6px!important;
}

/* ═══ MULTI LEGEND ═══ */
#multiLeg{
  position:absolute;bottom:12px;right:12px;
  background:var(--bg-1);
  padding:9px 12px;border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.5);
  font-size:11px;z-index:400;min-width:140px;
  display:none;max-height:220px;overflow-y:auto;
  border:1px solid var(--bord);color:var(--fg);
}
#multiLeg .ml-t{font-weight:700;color:var(--green);margin-bottom:6px;}
#multiLeg .ml-r{display:flex;align-items:center;gap:7px;margin-bottom:4px;color:var(--fg-soft);}
#multiLeg .ml-d{width:11px;height:11px;border-radius:50%;flex-shrink:0;}

/* ═══ OPTIMIZER ═══ */
.opt-row{transition:all .15s;}
.opt-row:hover{background:var(--bg-3)!important;border-color:var(--green)!important;}
.opt-best{border-left:3px solid var(--green)!important;}

/* ═══ STATS BARS ═══ */
.dist-bar-row{display:flex;align-items:center;gap:7px;margin-bottom:4px;}
.dist-bar-lbl{font-size:10px;color:var(--fg-mute);min-width:80px;text-align:right;}
.dist-bar-wrap{flex:1;background:var(--bg-3);border-radius:3px;height:12px;overflow:hidden;}
.dist-bar-fill{height:100%;border-radius:3px;transition:width .3s;}
.dist-bar-cnt{font-size:10px;font-family:'IBM Plex Mono',monospace;min-width:26px;text-align:right;color:var(--fg-soft);}

/* === GRID OPTIMIZATION === */
select,input{box-sizing:border-box;}
.optimize-grid-panel{display:flex;flex-direction:column;gap:8px;}
.optimize-grid-panel select{width:100%;min-height:38px;padding:6px 10px;line-height:1.2;}
.optimize-grid-panel label{display:block;margin-bottom:4px;}
.multi-config-card{overflow:hidden;}

/* ═══════════════════════════════════════════════════════════
   AGROLINE PRECISION — OVERRIDES FINAIS PARA CORES INLINE
   Pega blocos com style="background:#xxx" hardcoded nos painéis
   (foram criados em fases anteriores, antes da paleta dark)
   ═══════════════════════════════════════════════════════════ */

/* Verde claro (#e8f5e2, #f0fdf4) → verde com 8% transparência */
[style*="background:#e8f5e2"],[style*="background: #e8f5e2"],
[style*="background:#f0fdf4"],[style*="background: #f0fdf4"]{
  background:rgba(95,184,74,.10)!important;color:var(--fg)!important;
}

/* Dourado claro (#fffbed, #fff8e8, #fff5e6, #fff3e8) → dourado com transparência */
[style*="background:#fffbed"],[style*="background: #fffbed"],
[style*="background:#fff8e8"],[style*="background: #fff8e8"],
[style*="background:#fff5e6"],[style*="background: #fff5e6"],
[style*="background:#fff3e8"],[style*="background: #fff3e8"]{
  background:rgba(245,200,66,.08)!important;color:var(--fg)!important;
}

/* Bege/papel (#f8f5ee) → bg-2 */
[style*="background:#f8f5ee"],[style*="background: #f8f5ee"]{
  background:var(--bg-2)!important;color:var(--fg)!important;
}

/* Azul claro (#e8f0ff) → azul escuro */
[style*="background:#e8f0ff"],[style*="background: #e8f0ff"]{
  background:rgba(52,152,219,.10)!important;color:var(--fg)!important;
}

/* Branco puro (#fff/white) nos modais → bg-1 dark */
#savedModal>div[style*="background:white"],
#savedModal>div[style*="background:#fff"],
#namePrompt>div[style*="background:white"],
#namePrompt>div[style*="background:#fff"],
#lassoModal>div[style*="background:white"],
#lassoModal>div[style*="background:#fff"],
#diagModal>div[style*="background:white"],
#diagModal>div[style*="background:#fff"]{
  background:var(--bg-1)!important;color:var(--fg)!important;
}

/* Bordas claras hardcoded → bord do tema */
[style*="border:1px solid #b9d7a8"],
[style*="border:1px solid #b2dfb2"],
[style*="border:1px solid #b7e4c7"],
[style*="border:1px solid #f0d080"],
[style*="border:1px solid #f5c880"],
[style*="border:1px solid #b0c4f0"],
[style*="border:1px solid #e0d8c8"],
[style*="border:1px solid #f0e4b8"],
[style*="border:1px solid #d0c7b0"],
[style*="border:1px solid #e8e0cc"]{
  border-color:var(--bord)!important;
}

/* Textos pretos dentro dos painéis voltam pra var(--fg) */
.fp-body [style*="color:var(--mid)"]{color:var(--fg-soft)!important;}
.fp-body [style*="color:var(--gray)"]{color:var(--fg-mute)!important;}
.fp-body [style*="color:var(--dark)"]{color:var(--fg)!important;}

/* ═══ LEAFLET — controles do mapa dark ═══ */
.leaflet-tooltip{background:var(--bg-2)!important;color:var(--fg)!important;border:1px solid var(--bord)!important;box-shadow:0 2px 8px rgba(0,0,0,.5)!important;}
.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before{border-top-color:var(--bg-2)!important;}
.leaflet-popup-content-wrapper{background:var(--bg-1)!important;color:var(--fg)!important;}
.leaflet-popup-tip{background:var(--bg-1)!important;}
.leaflet-bar a{background:var(--bg-2)!important;color:var(--fg)!important;border-color:var(--bord)!important;}
.leaflet-bar a:hover{background:var(--bg-3)!important;border-color:var(--green)!important;}
.leaflet-control-attribution{background:rgba(15,15,15,.85)!important;color:var(--fg-mute)!important;}
.leaflet-control-attribution a{color:var(--green-light)!important;}

/* ═══ MODAL Meus Projetos — header verde + body dark ═══ */
#savedModal>div>div:first-child{background:var(--green)!important;color:#0a0e0c!important;}
#savedList>div[style*="border:1px solid"]{background:var(--bg-2)!important;border-color:var(--bord)!important;color:var(--fg)!important;}
#savedList>div[style*="border:1px solid"]:hover{background:var(--bg-3)!important;border-color:var(--green)!important;}
#savedSearch{background:var(--bg-2)!important;color:var(--fg)!important;border-color:var(--bord)!important;}

/* ═══ MODAL Lasso — header verde ═══ */
#lassoModal>div>div:first-child{background:var(--green)!important;color:#0a0e0c!important;}
#lassoCount{color:var(--fg-soft)!important;}

/* ═══ MODAL Diag — header vermelho ═══ */
#diagModal>div>div:first-child{background:var(--red)!important;color:white!important;}
#diagModal #diagWhat{color:var(--red)!important;}
#diagModal #diagMsg{color:var(--fg-soft)!important;}
#diagModal #diagHints{background:rgba(245,200,66,.10)!important;border-left-color:var(--gold)!important;color:var(--fg-soft)!important;}
#diagModal #diagStack{background:var(--bg)!important;color:var(--fg-mute)!important;}

/* ═══ MODE BAR (rodapé do mapa em modo edição) ═══ */
.mode-bar{background:rgba(17,22,26,.95)!important;border:1px solid var(--bord);}
.mode-bar .m-n{color:var(--gold)!important;}

/* ═══ HOLE EXPORT TOGGLE label fix ═══ */
#lvHoleExport+span,label:has(#lvHoleExport){color:var(--fg-soft);}

/* ════════════════════════════════════════════════════════════
   ENTREGA 2 — NOVO LAYOUT (3 colunas + sub-páginas deslizantes)
   ════════════════════════════════════════════════════════════ */

/* esconde a tab bar antiga sem remover do DOM (handlers continuam achando) */
#tabBar{display:none !important;}

/* esconde o appArea antigo só como flex; vamos transformar em grid wrapper */
body{display:block;}

/* container principal em grid: sidebar / mapa / painel direito */
#layoutGrid{
  position:fixed;top:54px;left:0;right:0;bottom:0;
  display:grid;
  grid-template-columns:300px 1fr;
  grid-template-rows:1fr;
  background:var(--bg);
  transition:grid-template-columns .28s cubic-bezier(.4,0,.2,1);
}
/* estados colapsados */
#layoutGrid.lc{grid-template-columns:0 1fr;}
#layoutGrid.lc #sidePanel{border:none;visibility:hidden;}

/* ═══ BOTÃO DE COLAPSAR (dentro do painel) ═══ */
.panel-collapse{
  position:absolute;top:10px;
  width:26px;height:26px;border-radius:6px;
  background:var(--bg-2);border:1px solid var(--bord);
  color:var(--fg-soft);cursor:pointer;font-family:inherit;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;line-height:1;z-index:50;
  transition:all .15s;
}
.panel-collapse:hover{background:var(--bg-3);color:var(--green);border-color:var(--green);}
#sidePanel .panel-collapse{right:8px;}
#rightPanel .panel-collapse{right:auto;left:8px;top:14px;}

/* ═══ ABA DE REABRIR (quando painel colapsado) ═══ */
.expand-tab{
  position:fixed;top:50%;transform:translateY(-50%);
  z-index:1500;
  width:24px;height:64px;
  background:var(--green);color:#0a1f0d;
  border:none;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;font-family:inherit;
  box-shadow:0 3px 12px rgba(0,0,0,.4);
  transition:all .15s;
}
.expand-tab:hover{background:var(--green-light);width:32px;}
.expand-tab.left{
  left:0;border-radius:0 8px 8px 0;
  top:calc(54px + 50% - 32px);
}
.expand-tab.right{
  right:0;border-radius:8px 0 0 8px;
  top:calc(54px + 50% - 32px);
}
#layoutGrid.lc ~ .expand-tab.left{display:flex;}
#layoutGrid.rc ~ .expand-tab.right{display:flex;}

/* ═══ EXPAND TAB (aba reabrir painel esquerdo) ═══ */
.expand-tab{
  position:fixed;top:50%;transform:translateY(-50%);
  z-index:1500;
  width:24px;height:64px;
  background:var(--green);color:#0a1f0d;
  border:none;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;font-family:inherit;
  box-shadow:0 3px 12px rgba(0,0,0,.4);
  transition:all .15s;
}
.expand-tab:hover{background:var(--green-light);width:32px;}
.expand-tab.left{
  left:0;border-radius:0 8px 8px 0;
  top:calc(54px + 50% - 32px);
}
#layoutGrid.lc ~ .expand-tab.left{display:flex;}

/* ═══ MENU BAR PROFISSIONAL (v9.9.9) ═══ */
#menuBar{
  display:flex;align-items:center;gap:4px;
  flex:1;min-width:0;
  margin:0 10px;
}
.mnu-grp{position:relative;}
.mnu-btn{
  display:flex;align-items:center;gap:5px;
  height:32px;padding:0 12px;
  background:var(--bg-2);border:1px solid var(--bord);
  color:var(--fg);border-radius:6px;cursor:pointer;
  font-size:12px;font-weight:600;font-family:inherit;
  white-space:nowrap;transition:all .15s;
}
.mnu-btn:hover,.mnu-grp.open .mnu-btn{
  background:var(--bg-3);border-color:var(--green);color:var(--green);
}
.mnu-btn .arrow{font-size:10px;opacity:.7;}
.mnu-drop{
  display:none;position:absolute;top:calc(100% + 4px);left:0;
  min-width:200px;
  background:var(--bg-2);border:1px solid var(--bord);
  border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.35);
  z-index:9999;padding:4px;
  flex-direction:column;gap:1px;
}
.mnu-grp.open .mnu-drop{display:flex;}
.mnu-drop button,.mnu-drop .mnu-item{
  display:flex;align-items:center;gap:8px;
  width:100%;height:34px;padding:0 12px;
  background:transparent;border:none;
  color:var(--fg);border-radius:5px;cursor:pointer;
  font-size:12px;font-weight:500;font-family:inherit;
  text-align:left;white-space:nowrap;transition:background .12s;
}
.mnu-drop button:hover,.mnu-drop .mnu-item:hover{background:var(--bg-3);}
.mnu-drop button:disabled{opacity:.4;cursor:default;pointer-events:none;}
.mnu-drop hr{border:none;border-top:1px solid var(--bord);margin:3px 8px;}
.mnu-drop .mnu-item{cursor:pointer;}
/* highlight Gerar Linhas (ação principal) */
.mnu-drop .mnu-primary{color:var(--green);font-weight:700;}
.mnu-drop .mnu-primary:hover{background:rgba(74,175,95,.12);}
/* separador de grupo */
.mnu-sep{height:1px;background:var(--bord);margin:3px 8px;}
/* botões diretos (sem dropdown) */
.mnu-direct{
  display:flex;align-items:center;justify-content:center;
  height:32px;width:34px;
  background:var(--bg-2);border:1px solid var(--bord);
  color:var(--fg);border-radius:6px;cursor:pointer;
  font-size:16px;font-family:inherit;transition:all .15s;
}
.mnu-direct:hover{background:var(--bg-3);border-color:var(--green);}
.mnu-direct.active{border-color:var(--green);color:var(--green);}
/* Undo/Redo */
#menuBar .mnu-ur{
  height:32px;width:32px;padding:0;
  background:var(--bg-2);border:1px solid var(--bord);
  color:var(--fg);border-radius:6px;cursor:pointer;
  font-size:16px;font-family:inherit;transition:all .15s;
}
#menuBar .mnu-ur:hover{background:var(--bg-3);border-color:var(--green);}
#menuBar .mnu-ur:disabled{opacity:.35;cursor:default;}
#menuBar .mnu-sep-v{width:1px;height:20px;background:var(--bord);margin:0 4px;flex-shrink:0;}
/* AB button active state — reutiliza updateAbModeBtnStyle() */


/* v9.9.5: BARRA DE AÇÕES no header — com scroll horizontal pra caber mais botões */
/* v9.9.5: desktop-only */
#mapOverlay{display:none !important;}
/* esconde os botões legados do h-actions (IDs mantidos no DOM para handlers) */
.h-actions{display:none !important;}

/* ═══ SIDEBAR ESQUERDA ═══ */
#sidePanel{
  background:var(--bg-1);
  border-right:1px solid var(--bord);
  position:relative;
  overflow:hidden;
}
#sidePanelHome,#sidePanelSub{
  position:absolute;top:0;left:0;right:0;bottom:0;
  overflow-y:auto;overflow-x:hidden;
  transition:transform .25s ease-out;
  background:var(--bg-1);
}
#sidePanelHome{transform:translateX(0);}
#sidePanelSub{transform:translateX(100%);}
#sidePanel.sub-open #sidePanelHome{transform:translateX(-30%);opacity:.3;pointer-events:none;}
#sidePanel.sub-open #sidePanelSub{transform:translateX(0);}

.sp-section{padding:14px 16px 6px;}
.sp-section-ttl{
  font-size:10px;font-weight:700;color:var(--fg-mute);
  letter-spacing:1.5px;margin-bottom:9px;
}
.sp-card{
  background:var(--bg-2);border:1px solid var(--bord);
  border-radius:8px;padding:12px 13px;
  display:flex;align-items:center;justify-content:space-between;
}
.sp-card-info{flex:1;min-width:0;}
.sp-card-title{font-size:13px;font-weight:600;color:var(--fg);margin-bottom:2px;}
.sp-card-sub{font-size:11px;color:var(--fg-mute);}
.sp-card-ico{font-size:20px;color:var(--green);}

/* botões de ação na sidebar */
.sp-btn{
  display:flex;align-items:center;gap:11px;
  width:100%;padding:10px 13px;margin-bottom:5px;
  background:var(--bg-2);border:1px solid var(--bord-soft);
  border-radius:7px;cursor:pointer;color:var(--fg-soft);
  font-family:inherit;text-align:left;
  transition:all .12s;
}
.sp-btn:hover{background:var(--bg-3);border-color:var(--bord);color:var(--fg);}
.sp-btn:disabled{opacity:.4;cursor:not-allowed;}
.sp-btn .sp-btn-ico{
  flex-shrink:0;width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg);border-radius:6px;font-size:14px;
  color:var(--green);border:1px solid var(--bord-soft);
}
.sp-btn .sp-btn-body{flex:1;min-width:0;}
.sp-btn .sp-btn-title{font-size:12px;font-weight:600;line-height:1.2;display:block;color:var(--fg);}
.sp-btn .sp-btn-sub{font-size:10px;color:var(--fg-mute);line-height:1.3;display:block;margin-top:1px;}
.sp-btn.danger:hover{border-color:var(--red);color:var(--red);}
.sp-btn.danger:hover .sp-btn-ico{color:var(--red);}

/* container que abriga o floatPanel docked dentro da sub-page */
#sidePanelSub > #floatPanel{
  position:static !important;
  width:100% !important;height:100% !important;
  display:flex !important;flex-direction:column;
  border:none;border-radius:0;
  background:var(--bg-1);
  box-shadow:none;
  resize:none;
}
#sidePanelSub .fp-head{
  background:var(--bg-2);border-bottom:1px solid var(--bord);
  padding:11px 14px;cursor:default !important;
  display:flex;align-items:center;gap:10px;
}
#sidePanelSub .fp-head .fp-title{
  flex:1;font-size:13px;font-weight:600;color:var(--fg);
}
#sidePanelSub .fp-head .fp-close{
  background:transparent;border:none;color:var(--fg);
  font-size:18px;cursor:pointer;padding:4px 10px;
  border-radius:5px;line-height:1;font-family:inherit;
}
#sidePanelSub .fp-head .fp-close:hover{background:var(--bg-3);color:var(--green);}
#sidePanelSub .fp-head .fp-close::before{content:'← Voltar';font-size:12px;font-weight:600;}
#sidePanelSub .fp-head .fp-close{font-size:0;}  /* hides original × */
#sidePanelSub .fp-head .fp-close::before{font-size:12px;}
#sidePanelSub .fp-body{flex:1;overflow-y:auto;padding:12px 14px;}

/* ESSE BLOCO CRÍTICO: desabilita o drag handler do fpHead via pointer-events
   sem mexer no JS. O handler usa addEventListener('mousedown', ...) — quando
   pointer-events:none, o evento não chega. fpClose tem auto, então click funciona. */
#sidePanelSub .fp-head{pointer-events:none !important;}
#sidePanelSub .fp-head > *{pointer-events:auto;}

/* ═══ MAP AREA ═══ */
#appArea{
  position:relative;
  display:flex;flex-direction:column;
  overflow:hidden;
  background:var(--bg);
  /* removidos position fixed antigos */
  inset:auto !important;
}
#appArea > #map{position:absolute;inset:0;width:100%;height:100%;}

/* mapa: oculta o floatPanel antigo na area do mapa (agora ele vive na sidebar) */
#appArea > #floatPanel{display:none !important;}

/* ═══ OVERLAY DE BOTÕES GRANDES SOBRE O MAPA ═══ */
#mapOverlay{
  position:absolute;right:16px;bottom:16px;
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
  z-index:500;pointer-events:none;
  user-select:none; /* v9.9.5: evita seleção de texto ao arrastar */
}
/* v9.9.5: alça de arrastar no topo do overlay */
#mapOverlayHandle{
  grid-column:1/-1;
  height:22px;
  background:rgba(0,0,0,.25);
  border-radius:8px 8px 0 0;
  cursor:grab;
  display:flex;align-items:center;justify-content:center;
  pointer-events:auto;
  color:rgba(255,255,255,.5);
  font-size:11px;
  letter-spacing:3px;
  user-select:none;
}
#mapOverlayHandle:active{cursor:grabbing;}
[data-theme="light"] #mapOverlayHandle{background:rgba(0,0,0,.12);color:rgba(0,0,0,.35);}
.big-btn{
  pointer-events:auto;
  display:flex;align-items:center;gap:12px;
  background:var(--btn-overlay-bg);
  border:1px solid var(--bord-strong);
  border-radius:10px;
  padding:14px 22px;min-width:230px;
  color:var(--fg);font-family:inherit;
  cursor:pointer;
  box-shadow:0 4px 20px rgba(0,0,0,.4);
  transition:all .15s;
  text-align:left;
  backdrop-filter:blur(4px);
}
.big-btn:hover:not(:disabled){background:var(--btn-overlay-bg-hover);border-color:var(--green);transform:translateY(-1px);}
.big-btn:active:not(:disabled){transform:translateY(0);}
.big-btn:disabled{opacity:.65;cursor:not-allowed;filter:saturate(.5);}
.big-btn .bb-ico{
  font-size:22px;flex-shrink:0;
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
}
.big-btn .bb-txt{flex:1;}
.big-btn .bb-title{font-size:13px;font-weight:700;display:block;line-height:1.2;}
.big-btn .bb-sub{font-size:10px;color:var(--fg-mute);display:block;margin-top:2px;}
.big-btn.primary{
  background:linear-gradient(180deg,var(--green) 0%,var(--green-dark) 100%);
  border-color:var(--green-dark);color:#0a0e0c;
}
.big-btn.primary .bb-sub{color:rgba(10,14,12,.7);}
.big-btn.primary:hover:not(:disabled){background:linear-gradient(180deg,var(--green-light) 0%,var(--green) 100%);}

/* esconde overlay quando há modo de edição ativo */
#modeBar:not([style*="display:none"]):not([style*="display: none"]) ~ #mapOverlay{
  opacity:0;pointer-events:none;
}

/* legenda flutuante: reposicionar pro canto inferior esquerdo */
.map-legend{
  z-index:500 !important;
  background:rgba(17,22,26,.96) !important;
  border:1px solid var(--bord) !important;
  color:var(--fg) !important;
  box-shadow:0 4px 20px rgba(0,0,0,.4) !important;
}
.map-legend.docked-bl{
  left:16px !important;bottom:16px !important;
  top:auto !important;right:auto !important;
  transform:none !important;
}

/* tag de versão no canto inferior direito */
#versionTag{display:none !important;}

/* ═══ PAINEL DIREITO (CONFIGURAÇÕES) ═══ */
#rightPanel{
  background:var(--bg-1);
  border-left:1px solid var(--bord);
  overflow-y:auto;
  padding:14px 16px;
  position:relative;
}
.rp-header{
  display:flex;align-items:center;gap:9px;
  margin-bottom:14px;padding-bottom:11px;
  border-bottom:1px solid var(--bord);
}
.rp-header h2{
  font-size:13px;font-weight:700;color:var(--green);
  letter-spacing:1.5px;margin:0;
}
.rp-group{margin-bottom:18px;}
.rp-group-ttl{
  font-size:10px;font-weight:700;color:var(--fg-mute);
  letter-spacing:1.2px;margin-bottom:7px;
}
.rp-row{
  display:flex;align-items:center;
  background:var(--bg-2);border:1px solid var(--bord-soft);
  border-radius:7px;margin-bottom:6px;overflow:hidden;
}
.rp-row label{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:0;
  font-size:12px;color:var(--fg-soft);
}
.rp-row .rp-lbl{padding:9px 12px;flex:1;}
.rp-row input[type="number"],.rp-row select{
  flex-shrink:0;width:auto;min-width:120px;text-align:center;
  background:transparent;border:none;border-left:1px solid var(--bord-soft);
  border-radius:0;color:var(--fg);font-family:inherit;font-size:13px;
  padding:9px 10px;margin:0;font-weight:600;
}
.rp-row .rp-unit{
  font-size:11px;color:var(--fg-mute);padding-right:10px;
  border-left:1px solid var(--bord-soft);padding-left:8px;
  font-family:'IBM Plex Mono',monospace;
}
.rp-row .rp-stepper{display:flex;align-items:center;}
.rp-step{
  background:transparent;border:none;color:var(--fg-soft);
  font-size:16px;cursor:pointer;padding:4px 11px;
  font-family:inherit;line-height:1;
}
.rp-step:hover{color:var(--green);}

/* tabs de tipo de linha no painel direito */
.rp-stabs{
  display:flex;gap:4px;background:var(--bg-2);
  padding:4px;border-radius:7px;border:1px solid var(--bord-soft);
}
.rp-stabs button{
  flex:1;background:transparent;border:none;
  padding:8px 6px;font-size:11px;font-weight:600;
  border-radius:5px;cursor:pointer;color:var(--fg-mute);
  font-family:inherit;transition:all .15s;
}
.rp-stabs button:hover{color:var(--fg);}
.rp-stabs button.active{background:var(--green);color:#0a0e0c;}

/* toggles em formato de linha pro painel direito */
.rp-tog{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;cursor:pointer;
  background:var(--bg-2);border:1px solid var(--bord-soft);
  border-radius:7px;margin-bottom:5px;
  font-size:12px;color:var(--fg-soft);
}
.rp-tog:hover{background:var(--bg-3);}
.rp-tog input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  position:relative;width:34px;height:18px;flex-shrink:0;
  background:var(--bord-strong);border-radius:10px;cursor:pointer;
  transition:background .2s;margin:0;
}
.rp-tog input[type="checkbox"]::before{
  content:'';position:absolute;width:14px;height:14px;border-radius:50%;
  background:white;top:2px;left:2px;
  transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.4);
}
.rp-tog input[type="checkbox"]:checked{background:var(--green);}
.rp-tog input[type="checkbox"]:checked::before{transform:translateX(16px);}
.rp-tog .rp-tog-lbl{flex:1;}

.rp-readonly{
  background:var(--bg);border:1px solid var(--bord-soft);
  border-radius:6px;padding:8px 12px;
  display:flex;justify-content:space-between;align-items:center;
  font-size:11px;color:var(--fg-mute);margin-bottom:6px;
}
.rp-readonly strong{color:var(--green);font-family:'IBM Plex Mono',monospace;}

.rp-more-btn{
  width:100%;background:transparent;border:1px dashed var(--bord-strong);
  border-radius:7px;padding:9px;color:var(--fg-mute);
  font-family:inherit;font-size:11px;cursor:pointer;
  transition:all .15s;margin-top:6px;
}
.rp-more-btn:hover{color:var(--green);border-color:var(--green);background:rgba(95,184,74,.05);}

/* HEADER moved styles: usar layout mais slim */
header{
  background:var(--bg-header) !important;
  border-bottom:1px solid var(--bord);
  height:54px;padding:0 18px !important;
  display:flex !important;align-items:center !important;
  position:fixed !important;top:0;left:0;right:0;z-index:1000;
}
header .h-logo img{height:36px !important;width:auto;}
header .h-titles{margin-left:12px;}
header .h-titles h1{font-size:17px !important;font-weight:700;color:var(--fg);}
header .h-titles .h-sub{font-size:10px;color:var(--fg-mute);}
header .h-name-a{color:var(--fg);}
header .h-name-b{color:var(--green);font-weight:700;}
header .h-ver{font-size:11px;color:var(--fg-mute);margin-left:6px;}

/* ── Verificador de Projeto (v10.1) ─────────────────────────────────── */
#verifyModal{
  position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  z-index:9500;background:var(--bg-1);border:1.5px solid var(--bord-strong);
  border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.55);
  min-width:310px;max-width:460px;width:88vw;max-height:78vh;
  overflow:hidden;flex-direction:column;display:none;
}
#verifyModal.open{display:flex;}
.vfy-item{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--bord);}
.vfy-item:last-child{border-bottom:none;}
.vfy-icon{font-size:17px;flex-shrink:0;margin-top:1px;}
.vfy-text{flex:1;}
.vfy-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;}
.vfy-msg{font-size:11px;color:var(--fg);line-height:1.45;}
.vfy-erro .vfy-type{color:#e74c3c;}
.vfy-aviso .vfy-type{color:#e67e22;}
.vfy-ok .vfy-type{color:#27ae60;}
.vfy-info .vfy-type{color:#2980b9;}
.vfy-secao-hdr{display:flex;align-items:center;gap:5px;margin:12px 0 2px;padding:3px 0 6px;border-bottom:1px solid var(--bord-strong);}
.vfy-secao-hdr span:last-child{font-size:11px;font-weight:700;color:var(--fg);text-transform:uppercase;letter-spacing:.04em;}
.vfy-goto-btn{font-size:10px;padding:2px 8px;margin-top:5px;cursor:pointer;background:transparent;border:1px solid var(--bord-strong);border-radius:4px;color:var(--fg-soft);display:inline-block;}
.vfy-goto-btn:hover{background:var(--bg-3);color:var(--fg);}
/* ── Verificador v10.11 — ações e destaques ──────────────────────────── */
.vfy-action-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.vfy-ab{font-size:10px;padding:2px 8px;cursor:pointer;border-radius:4px;border:1px solid var(--bord-strong);background:transparent;color:var(--fg-soft);font-family:inherit;line-height:1.5;}
.vfy-ab:hover{background:var(--bg-3);color:var(--fg);}
.vfy-ab.danger{color:#c0392b;border-color:#c0392b;}
.vfy-ab.danger:hover{background:#fdecea;}
.vfy-ab.primary{color:#2471a3;border-color:#2471a3;}
.vfy-ab.primary:hover{background:#eaf4fd;}
.vfy-ab.muted{opacity:.6;}
#_vfyToast{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);z-index:9999;
  background:rgba(18,18,18,.92);color:#fff;font-size:11px;padding:7px 18px;
  border-radius:20px;pointer-events:none;opacity:0;transition:opacity .25s;
  white-space:nowrap;font-family:inherit;}
#_vfyToast.show{opacity:1;}
._vfyTT.leaflet-tooltip{font-size:11px;padding:3px 8px;border-radius:4px;}
/* v10.1: tooltip compacto dos rastros do pivô */
.pivotTrackTT.leaflet-tooltip{max-width:320px;white-space:normal;font-size:10px;line-height:1.32;padding:5px 8px;border-radius:5px;}

/* ── Confirmação de Exportação (v10.2) ──────────────────────────────── */
#exportConfirmModal{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;
  z-index:9600;background:rgba(0,0,0,.55);
  align-items:center;justify-content:center;
}
#exportConfirmModal.open{display:flex;}
.ecf-row{display:flex;gap:6px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--bord);}
.ecf-row:last-child{border-bottom:none;}
.ecf-label{font-size:10px;color:var(--fg-mute);min-width:130px;flex-shrink:0;}
.ecf-value{font-size:11px;color:var(--fg);font-weight:600;}
.ecf-problems{background:#fff8e2;border:1px solid #f0d080;border-radius:6px;padding:7px 9px;margin-top:8px;font-size:11px;color:#8a6100;line-height:1.45;}
.ecf-clean{background:#f0fdf4;border:1px solid #b7e4c7;border-radius:6px;padding:7px 9px;margin-top:8px;font-size:11px;color:#1a6e35;}

/* ── Biblioteca de Máquinas (v10.3) ─────────────────────────────────── */
.ml-item{display:flex;align-items:center;gap:5px;padding:5px 3px;border-bottom:1px solid var(--bord);}
.ml-item:last-child{border-bottom:none;}
.ml-name{flex:1;font-size:11px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ml-load-btn{background:var(--green,#2ecc71);color:#fff;border:none;border-radius:4px;font-size:10px;padding:3px 8px;cursor:pointer;flex-shrink:0;font-family:inherit;}
.ml-load-btn:hover{opacity:.85;}
.ml-del-btn{background:none;border:none;color:#e74c3c;font-size:14px;cursor:pointer;padding:0 2px;flex-shrink:0;line-height:1;}
.ml-del-btn:hover{color:#c0392b;}
.ml-inp{width:100%;box-sizing:border-box;padding:5px 6px;font-size:11px;margin-bottom:4px;border:1px solid var(--bord);border-radius:4px;background:var(--bg-1);color:var(--fg);}

/* ═══ TABELA COMPARATIVA DE ÂNGULOS (v10.4) ═══════════════════════ */
#acmpModal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9700;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;}
#acmpModal.open{display:flex;}
.acmp-panel{background:var(--bg-1);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.35);max-width:700px;width:96vw;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;}
.acmp-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#5d2d7a,#8e44ad);border-radius:10px 10px 0 0;flex-shrink:0;}
.acmp-header span{color:#fff;font-weight:700;font-size:13px;}
.acmp-close-btn{background:rgba(255,255,255,.2);border:none;color:#fff;font-size:14px;border-radius:5px;padding:3px 9px;cursor:pointer;font-weight:700;}
.acmp-close-btn:hover{background:rgba(255,255,255,.35);}
.acmp-body{overflow-y:auto;padding:12px 14px;flex:1;}
.acmp-progress{text-align:center;color:var(--gray);font-size:11px;padding:24px;}
.acmp-tbl{width:100%;border-collapse:collapse;font-size:11px;}
.acmp-tbl th{background:var(--bg-3);color:var(--fg-soft);font-weight:700;text-align:left;padding:6px 8px;border-bottom:2px solid var(--border);white-space:nowrap;}
.acmp-tbl td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:middle;}
.acmp-tbl tr.acmp-best td{background:var(--green-pale)!important;font-weight:700;}
.acmp-tbl tr.acmp-best td:first-child{border-left:3px solid var(--green);}
.acmp-tbl tr:nth-child(even):not(.acmp-best){background:var(--bg-2);}
.acmp-ang-badge{display:inline-block;font-size:13px;font-weight:700;min-width:36px;}
.acmp-tag{display:inline-block;font-size:8px;padding:1px 5px;border-radius:3px;margin-left:3px;font-weight:700;vertical-align:middle;}
.acmp-tag-best{background:#27ae60;color:#fff;}
.acmp-tag-ab{background:#2471a3;color:#fff;}
.acmp-tag-custom{background:#d35400;color:#fff;}
.acmp-tag-tied{background:#8e44ad;color:#fff;}
.acmp-apply-btn{font-size:10px;padding:4px 9px;background:var(--green);color:#fff;border:none;border-radius:4px;cursor:pointer;white-space:nowrap;font-weight:700;}
.acmp-apply-btn:hover{opacity:.82;}
.acmp-foot{padding:10px 14px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;flex-shrink:0;}

/* ═══ MODO SIMPLES / AVANÇADO (v10.6) ═══════════════════════════════ */
body.mode-simple [data-tab="edit"],
body.mode-simple [data-tab="obstacles"],
body.mode-simple [data-tab="layers"],
body.mode-simple [data-tab="pivot"],
body.mode-simple #advOptSection,
body.mode-simple #mlSavedSection,
body.mode-simple #multiTalhaoSection,
body.mode-simple #linesEditPanel,
body.mode-simple #cabEditPanel,
body.mode-simple [data-gm="curve"],
body.mode-simple [data-gm="contorno"],
body.mode-simple [data-gm="contornoInteligente"],
body.mode-simple [data-gm-info="contornoInteligente"],
body.mode-simple #gt-curve,
body.mode-simple #gt-contorno,
body.mode-simple #gt-contorno-inteligente,
body.mode-simple #gt-nivel,
body.mode-simple #btnTogglePoints,
body.mode-simple #btnGenerateGroupQuick,
body.mode-simple #btnClearMultiLines,
body.mode-simple #haBtnJD2NH,
body.mode-simple #haBtnLote,
body.mode-simple #haBtnPreview
{ display: none !important; }
#uiModeBar button{border-radius:10px;border:1.5px solid var(--bord-soft);padding:2px 9px;font-size:9px;cursor:pointer;background:transparent;color:var(--fg-soft);font-family:inherit;font-weight:600;transition:all .15s;}
#uiModeBar button.mode-active{background:var(--green);color:#fff;border-color:var(--green);}
#uiModeBar button:not(.mode-active):hover{background:var(--bg-3);color:var(--fg);}

