  /* =====================================================================
     WebGeo — mesmo sistema visual do Perfil de Sondagem
     (tokens, fontes IBM Plex, barra lateral, seções e modo escuro)
     ===================================================================== */

  /* ============ TOKENS (iguais aos do Perfil) ============ */
  :root{
    --bg: #ECF0EE;
    --surface: #FFFFFF;
    --surface-alt: #E1E7E3;
    --surface-sunken: #DCE3DF;
    --ink: #172621;
    --ink-soft: #56655D;
    --ink-faint: #8B978F;
    --accent: #2F6F5E;
    --accent-ink: #1E5646;
    --accent-tint: #DCEAE4;
    --line: #C6CFC9;
    --line-strong: #9FADA5;
    --danger: #B3402A;
    --danger-tint: #F6E1DB;
    --warn: #96700B;
    --warn-tint: #F5EBD0;
    --shadow: 0 1px 2px rgba(23,38,33,.06), 0 6px 20px -8px rgba(23,38,33,.18);
    --radius-s: 3px;
    --radius-m: 6px;
    --font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
    --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

    /* cores de situação dos poços no mapa (fixas: precisam ler bem sobre o satélite) */
    --st-acima: #D7301F;
    --st-abaixo: #F29E2E;
    --st-lq: #2B7BBA;
    --st-sem: #9AA5A8;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg: #121C18;
      --surface: #182420;
      --surface-alt: #1F2E28;
      --surface-sunken: #0F1815;
      --ink: #E7EEEA;
      --ink-soft: #A3B3AA;
      --ink-faint: #6C7C73;
      --accent: #5FBE9C;
      --accent-ink: #8FDABE;
      --accent-tint: #1D3830;
      --line: #2C3D36;
      --line-strong: #3C5049;
      --danger: #E2694F;
      --danger-tint: #3A231E;
      --warn: #E0B24A;
      --warn-tint: #3A321C;
      --shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 24px -8px rgba(0,0,0,.5);
    }
  }
  :root[data-theme="dark"]{
    --bg: #121C18;
    --surface: #182420;
    --surface-alt: #1F2E28;
    --surface-sunken: #0F1815;
    --ink: #E7EEEA;
    --ink-soft: #A3B3AA;
    --ink-faint: #6C7C73;
    --accent: #5FBE9C;
    --accent-ink: #8FDABE;
    --accent-tint: #1D3830;
    --line: #2C3D36;
    --line-strong: #3C5049;
    --danger: #E2694F;
    --danger-tint: #3A231E;
    --warn: #E0B24A;
    --warn-tint: #3A321C;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 24px -8px rgba(0,0,0,.5);
  }

  *{box-sizing:border-box;}
  [hidden]{display:none !important;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:var(--font-sans);
    font-size:15px;
    line-height:1.45;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{margin:0;text-wrap:balance;font-family:var(--font-sans);}
  input,textarea,select,button{font-family:inherit;color:inherit;}
  button{cursor:pointer;}
  ::selection{background:var(--accent-tint);color:var(--accent-ink);}
  .num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
  .muted{color:var(--ink-faint);}

  /* ============ ESTRUTURA GERAL ============ */
  #app{display:flex;min-height:100%;align-items:flex-start;}
  .rail{
    width:272px;flex:none;position:sticky;top:0;align-self:flex-start;
    height:100vh;height:100dvh;display:flex;flex-direction:column;
    background:var(--surface-alt);border-right:1px solid var(--line);
    padding:calc(env(safe-area-inset-top,0px) + 20px) 16px 16px;overflow-y:auto;
  }
  .rail-brand{
    display:flex;align-items:center;gap:10px;
    padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line);
  }
  .rail-mark{flex:none;}
  .rail-title{font-size:17px;font-weight:600;letter-spacing:-.01em;}
  .rail-sub{font-size:11.5px;color:var(--ink-soft);letter-spacing:.03em;text-transform:uppercase;}

  .rail-user{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:8px 10px;margin-bottom:12px;background:var(--surface);
    border:1px solid var(--line);border-radius:var(--radius-s);
  }
  .rail-user-info{min-width:0;}
  .rail-user-org{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .rail-user-email{font-size:10.5px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .rail-user-logout{flex:none;font-size:11px;font-weight:600;color:var(--ink-soft);background:transparent;border:none;padding:4px 6px;border-radius:4px;}
  .rail-user-logout:hover{background:var(--danger-tint);color:var(--danger);}

  .rail-stats{display:flex;gap:6px;margin-bottom:14px;}
  .rail-stat{
    flex:1;min-width:0;text-align:center;padding:8px 4px;border-radius:var(--radius-s);
    background:var(--surface);border:1px solid var(--line);
  }
  .rail-stat-num{display:block;font-size:17px;font-weight:700;color:var(--accent-ink);letter-spacing:-.01em;}
  .rail-stat-label{display:block;font-size:9.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin-top:1px;}

  .rail-nav{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;}
  .rail-item{
    display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius-m);
    border:1px solid transparent;background:transparent;text-align:left;width:100%;
    font-size:13.5px;font-weight:600;color:var(--ink-soft);
  }
  .rail-item:hover{background:var(--surface);color:var(--ink);}
  .rail-item.is-active{background:var(--surface);border-color:var(--line-strong);box-shadow:var(--shadow);color:var(--ink);}
  .rail-ico{width:18px;text-align:center;color:var(--accent);font-size:14px;}

  .rail-filtros{display:flex;flex-direction:column;gap:12px;padding-top:14px;border-top:1px solid var(--line);}
  .rail-projeto-label{
    display:block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
    color:var(--ink-soft);margin-bottom:5px;
  }
  .rail-projeto-select{
    width:100%;padding:8px 10px;border-radius:var(--radius-s);
    border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);
    font-size:13px;font-weight:600;
  }
  .rail-foot{font-size:11px;color:var(--ink-faint);padding-top:12px;margin-top:auto;border-top:1px solid var(--line);line-height:1.5;}

  main.sheet{flex:1;min-width:0;padding-bottom:40px;}

  .topbar{
    position:sticky;top:0;z-index:1000;
    padding:calc(env(safe-area-inset-top,0px) + 14px) 28px 14px;
    background:color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  }
  .topbar-id{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap;}
  .topbar-id .tag{
    font-family:var(--font-mono);font-size:12px;font-weight:600;
    background:var(--accent-tint);color:var(--accent-ink);
    padding:3px 8px;border-radius:4px;letter-spacing:.02em;
  }
  .topbar-id .tag-param{background:var(--surface-alt);color:var(--ink-soft);border:1px solid var(--line-strong);font-family:var(--font-sans);}
  .topbar-id .obra{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .topbar-actions{display:flex;gap:8px;flex:none;}

  .btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:9px 14px;border-radius:var(--radius-m);border:1px solid var(--line-strong);
    background:var(--surface);font-size:13px;font-weight:600;letter-spacing:.01em;
    text-decoration:none;color:var(--ink);white-space:nowrap;
    transition:transform .08s ease, box-shadow .12s ease;
  }
  .btn:active{transform:translateY(1px);}
  .btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
  .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;}
  .btn-primary:hover:not(:disabled){background:var(--accent-ink);}
  .btn-ghost{background:transparent;}
  .btn-ghost:hover{background:var(--surface-alt);}

  .aviso-geral{
    margin:18px 28px 0;padding:10px 14px;border-radius:var(--radius-m);
    background:var(--danger-tint);color:var(--danger);font-size:13px;
  }

  /* ============ INDICADORES ============ */
  .kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 28px 0;}
  .kpi{
    display:flex;flex-direction:column;gap:2px;padding:12px 14px;
    background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow);
  }
  .kpi-label{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
  .kpi-num{font-size:26px;font-weight:700;color:var(--accent-ink);letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums;}
  .kpi-num small{font-size:13px;font-weight:600;color:var(--ink-soft);}
  .kpi-sub{font-size:12px;color:var(--ink-soft);}
  .kpi-danger .kpi-num{color:var(--danger);}

  /* ============ SEÇÕES ============ */
  .section{
    margin:22px 28px;background:var(--surface);border:1px solid var(--line);
    border-radius:var(--radius-m);box-shadow:var(--shadow);overflow:hidden;
  }
  .section-head{
    display:flex;align-items:center;gap:10px;
    padding:13px 18px;border-bottom:1px solid var(--line);background:var(--surface-alt);
  }
  .section-num{
    font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--accent-ink);
    background:var(--accent-tint);width:20px;height:20px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;flex:none;
  }
  .section-head h2{font-size:14.5px;font-weight:600;letter-spacing:.01em;}
  .section-head .hint{margin-left:auto;font-size:11.5px;color:var(--ink-faint);}
  .section-body{padding:18px;}
  .note{font-size:12px;color:var(--ink-faint);line-height:1.6;padding:0 28px 30px;max-width:640px;}

  .field{display:flex;flex-direction:column;gap:5px;min-width:0;}
  .field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.045em;color:var(--ink-soft);}
  .field input{
    border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);
    border-radius:var(--radius-s);padding:8px 9px;font-size:13.5px;font-family:var(--font-mono);width:100%;
  }
  .field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}

  /* caixas de seleção (iguais às do Perfil) */
  .group-choices{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;}
  .chk{position:relative;display:inline-flex;align-items:center;gap:7px;font-size:13.5px;cursor:pointer;}
  .chk input{position:absolute;opacity:0;width:1px;height:1px;}
  .chk .box{
    position:relative;flex:none;width:16px;height:16px;border-radius:3px;
    border:1.6px solid var(--line-strong);background:var(--surface);
  }
  .chk .box::after{
    content:"";position:absolute;left:3px;top:1px;width:6px;height:9px;
    border-right:2px solid var(--surface);border-bottom:2px solid var(--surface);
    transform:rotate(40deg);opacity:0;
  }
  .chk input:checked + .box{background:var(--accent);border-color:var(--accent);}
  .chk input:checked + .box::after{opacity:1;}
  .chk input:focus-visible + .box{outline:2px solid var(--accent);outline-offset:2px;}

  /* ============ MAPA ============ */
  .section-mapa{padding:0;}
  #mapa{height:600px;background:#2b3a3c;}
  .legenda{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:12px 18px 4px;font-size:12px;color:var(--ink-soft);}
  .legenda > span{display:inline-flex;align-items:center;gap:6px;}
  .legenda-nota{padding:0 18px 12px;font-size:11.5px;color:var(--ink-faint);display:flex;flex-wrap:wrap;gap:4px 12px;}
  .bola{width:12px;height:12px;border-radius:50%;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.3);}
  .bola.st-acima{background:var(--st-acima);} .bola.st-abaixo{background:var(--st-abaixo);}
  .bola.st-lq{background:var(--st-lq);} .bola.st-sem{background:var(--st-sem);}
  .bola.st-sondagem{background:transparent;border:2px dashed var(--accent);box-shadow:none;width:14px;height:14px;}

  /* nomes dos poços: blocos posicionados pelo script para não ficarem um em cima do outro */
  .rotulos-ancora{overflow:visible;pointer-events:none;}
  .rotulos-bloco{position:absolute;pointer-events:none;}
  .rotulos-linhas{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;}
  .rotulos-linhas .chamada-fundo{stroke:#000;stroke-opacity:.55;stroke-width:3;stroke-linecap:round;}
  .rotulos-linhas .chamada{stroke:#fff;stroke-width:1.2;stroke-linecap:round;}
  .rotulo-pm{
    font-family:var(--font-mono);font-weight:600;font-size:11px;line-height:14px;height:14px;white-space:nowrap;color:#fff;
    text-shadow:0 0 3px #000,0 0 2px #000,0 0 1px #000;
  }

  .leaflet-popup-content-wrapper{border-radius:var(--radius-m);}
  .pop{font-family:var(--font-sans);font-size:13px;display:flex;flex-direction:column;gap:5px;min-width:210px;color:#172621;}
  .pop-tit{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:15px;font-weight:600;}
  .pop-valor b{font-family:var(--font-mono);font-size:15px;}
  .pop-mini{font-size:12px;color:#56655D;}
  .pop-hist{border-collapse:collapse;margin:2px 0;font-size:12px;}
  .pop-hist th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#56655D;text-align:left;padding:3px 12px 3px 0;border-bottom:1px solid #C6CFC9;}
  .pop-hist td{padding:3px 12px 3px 0;border-bottom:1px solid #E1E7E3;font-family:var(--font-mono);}
  .pop-sond{margin-top:2px;padding:6px 8px;border-radius:4px;background:#DCEAE4;color:#1E5646;font-size:12px;}
  .pop-sond b{font-family:var(--font-mono);}

  .st-tag{display:inline-block;padding:2px 7px;border-radius:999px;font-family:var(--font-sans);font-size:10.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap;}
  .st-tag.st-acima{background:#F6E1DB;color:#9A2E1B;}
  .st-tag.st-abaixo{background:#F5EBD0;color:#7A5A06;}
  .st-tag.st-lq{background:#DDEAF6;color:#1B5A8C;}
  .st-tag.st-sem{background:#E8ECEA;color:#56655D;}
  .txt-acima{color:var(--st-acima);}

  /* ============ PLUMA ============ */
  .rail-pluma{margin-top:14px;}
  .rail-projeto-label span{text-transform:none;} /* "µg/L" não pode virar "MG/L" */
  .rail-pluma .chk{font-size:13px;}
  .rail-duplo{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  input.rail-projeto-select{font-family:var(--font-mono);}
  .legenda-pluma{padding-top:4px;}
  .leg-tit{font-weight:600;color:var(--ink);}
  .leg-rampa{display:inline-flex;flex-direction:column;gap:1px;}
  #leg-gradiente{display:block;width:180px;height:10px;border-radius:2px;border:1px solid var(--line);}
  .leg-ticks{position:relative;display:block;width:180px;height:13px;font-family:var(--font-mono);font-size:10px;color:var(--ink-faint);}
  .leg-ticks span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap;}
  .leg-ticks span:first-child{transform:none;}
  .leg-rampa{margin-right:10px;}
  .leg-limiar{display:inline-block;width:22px;height:0;border-top:2px dashed var(--ink);}
  .leg-centro{display:inline-block;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid #172621;}
  .leg-centro-ini{background:transparent;border:2px dashed #172621;}

  /* ============ POTENCIOMÉTRICO ============ */
  .rail-pot{margin-top:14px;}
  .rail-pot .chk{font-size:13px;}
  .pot-painel{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
  .pot-painel[hidden]{display:none;}
  .pot-resumo{margin:0;font-size:11.5px;line-height:1.45;color:var(--ink-faint);}
  .legenda-pot{padding-top:4px;}
  .legenda-pot[hidden]{display:none;}
  .leg-pot{display:inline-block;width:22px;height:0;border-top:2px solid #1565A8;}
  .leg-seta{font-style:normal;font-size:15px;line-height:1;color:#0B3558;}
  .rotulo-pot{overflow:visible;}
  .rotulo-pot span{
    position:absolute;transform:translate(-50%,-50%);white-space:nowrap;padding:0 4px;border-radius:3px;
    background:#fff;border:1px solid #1565A8;color:#0B3558;font-family:var(--font-mono);font-size:10.5px;font-weight:600;line-height:15px;
  }
  .rotulo-carga{margin-left:3px;padding:0 3px;border-radius:2px;background:#1565A8;color:#fff;text-shadow:none;font-weight:500;}
  .ponto-sondagem{display:inline-block;width:12px;height:12px;background:#5FBE9C;border:2px solid #fff;transform:rotate(45deg);box-shadow:0 0 0 1px rgba(0,0,0,.45);}
  .rotulo-pm.rotulo-sond{color:#DCEAE4;}
  .imp-proj{font-style:normal;font-size:11.5px;color:var(--accent-ink);}
  .centroide-mapa{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid #172621;box-shadow:0 0 0 2px #fff;}
  .centroide-mapa.ini{background:transparent;border:2px dashed #fff;box-shadow:0 0 0 1px #172621;}

  .kpis-pluma{margin:0 0 16px;}
  .kpis-pluma .kpi{box-shadow:none;background:var(--surface-alt);}
  .graficos{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .grafico{margin:0;border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 12px 8px;}
  .grafico figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:13px;margin-bottom:6px;}
  .grafico figcaption span{font-size:11.5px;color:var(--ink-faint);}
  .grafico-area{position:relative;height:220px;}
  .tbl-evolucao{margin-top:16px;}
  table.dtbl tr.linha-sel td{background:var(--accent-tint);}

  /* perfil no popup */
  .pop-perfil{margin-top:4px;border-top:1px solid #E1E7E3;padding-top:6px;}
  .pop-perfil-tit{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#56655D;font-weight:600;margin-bottom:2px;}
  .pop-perfil svg{display:block;width:100%;height:auto;}

  /* ============ TABELA ============ */
  .tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-s);}
  table.dtbl{width:100%;border-collapse:collapse;min-width:720px;}
  table.dtbl th{
    font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);
    text-align:left;font-weight:600;padding:8px 10px;background:var(--surface-alt);
    border-bottom:1px solid var(--line);white-space:nowrap;
  }
  table.dtbl th.num{text-align:right;}
  table.dtbl td{padding:7px 10px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle;}
  table.dtbl td.cod{font-family:var(--font-mono);font-weight:600;}
  table.dtbl tr:last-child td{border-bottom:none;}
  table.dtbl tbody tr:hover{background:var(--surface-alt);}

  /* ============ IMPORTAR ============ */
  .imp-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
  .imp-texto{margin:0;font-size:13px;color:var(--ink-soft);max-width:620px;}
  .drop{
    display:flex;flex-direction:column;align-items:center;gap:3px;padding:30px 16px;text-align:center;
    border:1.5px dashed var(--line-strong);border-radius:var(--radius-m);background:var(--surface-sunken);
    cursor:pointer;font-size:13px;color:var(--ink-soft);transition:background .12s ease, border-color .12s ease;
  }
  .drop b{color:var(--ink);font-size:14px;}
  .drop-ico{font-size:24px;color:var(--accent);line-height:1;}
  .drop:hover,.drop.sobre{background:var(--accent-tint);border-color:var(--accent);}
  .drop input{display:none;}
  .imp-status{min-height:1.2em;font-size:13px;margin:10px 0;}
  .imp-status .ok{color:var(--accent-ink);font-weight:600;}
  .imp-status .erro{color:var(--danger);font-weight:600;}
  .imp-cab{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;}
  .imp-cab div{display:flex;flex-direction:column;gap:2px;font-size:13.5px;}
  .imp-cab span{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
  .imp-cont{border-collapse:collapse;min-width:320px;font-size:13px;}
  .imp-cont td{padding:4px 16px 4px 0;border-bottom:1px solid var(--line);}
  .imp-cont td.num{font-weight:600;}
  .imp-lista h4{margin:16px 0 6px;font-size:13.5px;}
  .imp-lista ul{margin:0;padding:8px 10px 8px 28px;max-height:260px;overflow-y:auto;font-size:13px;border-radius:var(--radius-s);}
  .imp-lista li{margin:2px 0;}
  .imp-lista .loc{font-weight:600;font-family:var(--font-mono);font-size:12px;}
  .imp-erros h4{color:var(--danger);} .imp-erros ul{background:var(--danger-tint);}
  .imp-avisos h4{color:var(--warn);} .imp-avisos ul{background:var(--warn-tint);}
  .imp-acoes{display:flex;gap:8px;margin-top:16px;}

  /* ============ PLANTA (DXF) ============ */
  .rail-planta{margin-top:14px;}
  .planta-painel{display:flex;flex-direction:column;gap:10px;}
  .planta-painel .chk b{font-size:12.5px;word-break:break-all;}
  .btn-sm{padding:7px 10px;font-size:12px;width:100%;justify-content:center;}
  .btn-sm2{padding:6px 10px;font-size:12px;}
  .btn-mini{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;}
  .btn-mini:hover{border-color:var(--accent);color:var(--accent-ink);}
  .btn-mini-perigo:hover{background:var(--danger-tint);border-color:var(--danger);color:var(--danger);}
  .planta-acoes{display:flex;flex-wrap:wrap;gap:6px;}
  .planta-acoes .btn-sm{margin-bottom:2px;}
  .planta-camadas{font-size:12.5px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);}
  .planta-camadas summary{cursor:pointer;padding:6px 8px;font-weight:600;color:var(--ink-soft);}
  .planta-camadas-acoes{display:flex;gap:6px;padding:0 8px 6px;}
  #planta-camadas{max-height:190px;overflow-y:auto;padding:0 8px 8px;display:flex;flex-direction:column;gap:5px;}
  #planta-camadas .chk{font-size:12.5px;}
  #planta-camadas .amostra{flex:none;width:14px;height:3px;border-radius:2px;border:1px solid var(--line-strong);}
  #planta-camadas small{color:var(--ink-faint);margin-left:auto;font-family:var(--font-mono);}
  .leg-planta{display:inline-block;width:22px;height:0;border-top:2px solid var(--ink-soft);}
  .planta-info td:first-child{color:var(--ink-soft);}
  .planta-aviso{color:var(--warn);background:var(--warn-tint);margin:10px 0 0;}
  .planta-zona{display:flex;align-items:flex-end;gap:16px;margin:12px 0;}
  .planta-zona .field{margin:0;width:110px;}

  .section-mapa{position:relative;}
  .ajuste-barra{
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    padding:10px 14px;background:var(--accent-tint);border-bottom:1px solid var(--accent);font-size:13px;
  }
  .ajuste-texto{display:flex;flex-direction:column;gap:1px;min-width:0;}
  .ajuste-texto span{color:var(--ink-soft);font-size:12.5px;}
  .ajuste-botoes{display:flex;gap:6px;flex:none;}
  .mapa-ajustando{cursor:crosshair !important;}
  .mapa-ajustando .leaflet-interactive{cursor:crosshair !important;}
  .pino-ajuste{
    width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid #172621;color:#172621;
    font:700 11px/16px var(--font-mono);text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.5);
  }
  .pino-ajuste.de{background:#ffd60a;}

  /* ============ SEÇÃO GEOLÓGICA ============ */
  .rail-secao{margin-top:14px;}
  .pino-secao{
    width:22px;height:22px;border-radius:50%;background:#FFD60A;border:2px solid #172621;color:#172621;
    font:700 11px/18px var(--font-mono);text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.5);
  }
  .secao-acoes{display:flex;justify-content:flex-end;padding:10px 18px 0;}
  .secao-desenho{overflow-x:auto;padding:6px 18px 4px;color:var(--ink);min-width:0;}
  /* o corte é um desenho técnico: folha branca com traço escuro, igual no modo claro e no escuro */
  .secao-desenho svg{display:block;max-width:none;background:#ffffff;color:#172621;border:1px solid var(--line);border-radius:4px;}
  .secao-coluna{cursor:help;}
  .secao-vazio{margin:18px 0;color:var(--ink-soft);font-size:13px;}
  .leg-lito{display:inline-block;width:14px;height:14px;border-radius:2px;border:1px solid var(--line);}
  .leg-terreno{display:inline-block;width:22px;height:0;border-top:2px solid #7A5A2E;}
  .leg-tubo{display:inline-block;width:8px;height:14px;background:#F3F5F4;border:1px solid #56655D;}
  .leg-tubo.leg-filtro{background:#DDEAF6;border-color:#2B7BBA;}
  .leg-semlito{display:inline-block;width:12px;height:14px;border:1px dashed var(--ink-soft);}

  /* ============ EXCLUIR PROJETO ============ */
  .rail-projeto-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;}
  .btn-excluir-projeto{
    border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);font-size:11px;font-weight:600;
    padding:3px 8px;border-radius:4px;margin-bottom:5px;
  }
  .btn-excluir-projeto:hover{background:var(--danger-tint);border-color:var(--danger);color:var(--danger);}
  .btn-perigo{background:var(--danger);border-color:var(--danger);color:#fff;}
  .btn-perigo:hover:not(:disabled){filter:brightness(.92);}
  .modal-fundo{
    position:fixed;inset:0;z-index:3000;background:rgba(10,14,12,.72);
    display:flex;align-items:center;justify-content:center;padding:24px;
  }
  .modal-caixa{
    width:100%;max-width:440px;background:var(--surface);border-radius:var(--radius-m);
    box-shadow:0 8px 32px rgba(0,0,0,.4);max-height:100%;overflow:auto;
  }
  .modal-cab{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700;
  }
  .modal-fechar{width:28px;height:28px;border-radius:50%;border:none;background:var(--surface-alt);color:var(--ink-soft);font-size:14px;line-height:1;flex:none;}
  .modal-fechar:hover{background:var(--danger-tint);color:var(--danger);}
  .modal-corpo{padding:16px;font-size:13.5px;}
  .modal-corpo p{margin:0 0 10px;}
  .excluir-lista{margin:0 0 10px;padding:10px 12px 10px 28px;background:var(--danger-tint);border-radius:var(--radius-s);color:var(--ink);}
  .excluir-lista li{margin:2px 0;}
  .excluir-nota{font-size:12.5px;color:var(--ink-soft);}
  .modal-corpo .field{margin:14px 0;}
  .modal-corpo .field input{font-family:var(--font-sans);}
  .modal-acoes{display:flex;justify-content:flex-end;gap:8px;}

  /* ============ AUTENTICAÇÃO (igual ao Perfil) ============ */
  #auth-screen, #pending-org-screen{
    min-height:100vh;min-height:100dvh;
    display:flex;align-items:center;justify-content:center;
    padding:24px;background:var(--bg);
  }
  .auth-card{
    width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);
    border-radius:var(--radius-m);box-shadow:var(--shadow);padding:28px 26px;
  }
  .auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
  .auth-title{font-size:17px;font-weight:600;letter-spacing:-.01em;}
  .auth-sub{font-size:11.5px;color:var(--ink-soft);letter-spacing:.03em;text-transform:uppercase;}
  #auth-form .field{margin-bottom:14px;}
  .auth-error{font-size:12.5px;color:var(--danger);background:var(--danger-tint);border-radius:var(--radius-s);padding:8px 10px;margin-bottom:14px;line-height:1.4;}
  .auth-nota{font-size:12px;color:var(--ink-faint);margin:14px 0 0;line-height:1.5;}
  #pending-org-screen .auth-card{text-align:center;}
  #pending-org-screen p{font-size:13.5px;color:var(--ink-soft);line-height:1.5;margin:12px 0 20px;}

  #toast{
    position:fixed;left:50%;bottom:26px;transform:translate(-50%,12px);
    background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:20px;
    font-size:13px;font-weight:500;box-shadow:var(--shadow);opacity:0;pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;z-index:2000;
  }
  #toast.show{opacity:1;transform:translate(-50%,0);}

  /* ============ TELAS MENORES ============ */
  @media (max-width:1100px){
    .kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  }
  @media (max-width:860px){
    .graficos{grid-template-columns:1fr;}
    #app{flex-direction:column;align-items:stretch;}
    main.sheet{width:100%;}
    .rail{width:100%;height:auto;position:relative;}
    .rail-filtros{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;}
    .rail-foot{display:none;}
    .topbar{padding-left:16px;padding-right:16px;}
    .topbar-actions{flex-wrap:wrap;flex:1 1 100%;gap:6px;}
    .topbar-actions .btn{font-size:12px;padding:7px 10px;}
    .kpis,.section,.aviso-geral{margin-left:16px;margin-right:16px;}
    .note{padding-left:16px;padding-right:16px;}
    #mapa{height:440px;}
    .imp-topo{flex-direction:column;}
    .imp-cab{grid-template-columns:1fr;}
  }
  @media (max-width:520px){
    .kpis{grid-template-columns:1fr 1fr;gap:8px;}
    .kpi-num{font-size:21px;}
    .rail-filtros{grid-template-columns:1fr;}
  }

  /* ============ PAPÉIS E EQUIPE ============ */
  .rail-user-papel{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);margin-top:2px;}
  .rail-user-papel:empty{display:none;}
  .equipe-corpo{padding:16px 18px;display:flex;flex-direction:column;gap:12px;}
  .equipe-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;}
  .equipe-form .field{margin:0;min-width:0;}
  .equipe-form .field:first-child{flex:1 1 260px;}
  .equipe-dica{margin:0;font-size:12.5px;color:var(--ink-soft);}
  #equipe-tabela select{font:inherit;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);}

  /* ============ CONFERÊNCIA DA IMPORTAÇÃO ============ */
  .imp-conferencia{margin:14px 0;display:flex;flex-direction:column;gap:8px;}
  .imp-conferencia h4{margin:0;font-size:13.5px;}
  .conf-ok{margin:0;color:var(--accent-ink);font-size:13px;}
  .conf-substitui{margin:0;padding:8px 12px;border-radius:var(--radius-m);background:var(--accent-tint);font-size:13px;}
  .conf-marca{display:inline-block;width:10px;height:10px;border-radius:50%;background:#F29E2E;}
  .conf-alto .conf-marca{background:var(--danger);}
  .conf-tabela td{vertical-align:top;}
  .conf-ciente{font-size:13px;}

  /* ============ RELATÓRIO (impressão / PDF) ============ */
  .so-relatorio{display:none;}
  .rel-opcoes{display:flex;flex-direction:column;gap:8px;margin:10px 0;}
  body.modo-relatorio .so-relatorio{display:block;}
  body.modo-relatorio #mapa{width:180mm;height:125mm;margin:0 auto;}
  body.modo-relatorio .secao-desenho{overflow:visible;}
  .rel-cab{margin:0 0 10px;}
  .rel-marca{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2F6F5A;}
  .rel-cab h1{margin:2px 0 8px;font-size:20px;}
  .rel-ficha{width:100%;border-collapse:collapse;font-size:11px;}
  .rel-ficha th,.rel-ficha td{border:1px solid #C9D3CE;padding:4px 6px;text-align:left;vertical-align:top;}
  .rel-ficha th{background:#EEF3F0;width:16%;font-weight:600;}
  .rel-bloco h2{font-size:15px;margin:14px 0 6px;}
  .rel-texto{font-size:11px;margin:0 0 6px;}
  .rel-tabela{width:100%;border-collapse:collapse;font-size:9.5px;margin:0 0 10px;break-inside:auto;}
  .rel-tabela th,.rel-tabela td{border:1px solid #C9D3CE;padding:3px 5px;}
  .rel-tabela th{background:#EEF3F0;font-weight:600;vertical-align:bottom;}
  .rel-tabela th small{display:block;font-weight:400;color:#56655D;}
  .rel-tabela tr{break-inside:avoid;}
  .rel-tabela .cod{font-family:var(--font-mono);font-weight:600;white-space:nowrap;}
  .rel-acima,.rel-acima-txt{color:#B42318;font-weight:700;}
  .rel-lq{color:#56655D;}
  #rel-notas ul{margin:0;padding-left:18px;font-size:10.5px;line-height:1.45;}

  @media print{
    @page{size:A4 portrait;margin:12mm;}
    html,body{background:#fff !important;}
    *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
    .rail,.topbar,.aviso-geral,.modal-fundo,#toast,.ajuste-barra,.secao-acoes,.leaflet-control-zoom,
    #view-dados,#view-importar,#view-equipe,.legenda-nota > span:first-child{display:none !important;}
    #app{display:block;}
    main.sheet{padding:0;}
    .kpis{margin:0 0 8px;gap:6px;}
    .kpi{box-shadow:none;padding:6px 8px;}
    .kpi-num{font-size:18px;}
    .section{margin:0 0 10px;box-shadow:none;break-inside:avoid;}
    .section-head{padding:6px 10px;}
    .section-head .hint{display:none;}
    .legenda{padding:6px 10px 2px;font-size:10px;}
    .graficos{break-inside:avoid;}
    #sec-pluma{break-before:page;}
    #rel-tabela{break-before:page;}
    body.rel-sem-mapa #sec-mapa,body.rel-sem-mapa .kpis:not(.kpis-pluma),
    body.rel-sem-secao #sec-secao,body.rel-sem-pluma #sec-pluma{display:none !important;}
    .secao-desenho{padding:4px;}
    main.sheet > .note{display:none !important;}
    #rel-notas{break-inside:avoid;}
    table.dtbl{min-width:0;font-size:9.5px;}
    table.dtbl th,table.dtbl td{white-space:normal;padding:4px 6px;}
    .tbl-wrap{overflow:visible;}
  }

  /* criar usuário / trocar senha */
  .equipe-senha-linha{display:flex;gap:6px;align-items:center;}
  .equipe-senha-linha input{flex:1;min-width:0;font-family:var(--font-mono);}
  .equipe-form .field.equipe-senha{flex:1 1 200px;}
  .equipe-criado{padding:10px 14px;border-radius:var(--radius-m);background:var(--accent-tint);font-size:13px;line-height:1.5;}
  .equipe-criado code{font-family:var(--font-mono);font-size:13px;background:var(--surface);padding:1px 6px;border-radius:4px;user-select:all;}
  .rail-user-acoes{display:flex;flex-direction:column;gap:4px;align-items:flex-end;flex:none;}

  /* ---------- Fotos 360° ---------- */
  .f360-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;}
  .f360-lista li{display:flex;align-items:center;gap:6px;min-width:0;}
  .f360-nome{flex:1;min-width:0;text-align:left;background:none;border:none;padding:3px 0;font-size:12.5px;font-weight:600;color:var(--ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
  .f360-nome:hover{color:var(--accent-ink);text-decoration:underline;}
  .f360-sem{flex:none;font-size:10.5px;font-weight:600;color:var(--danger);}
  .f360-erro{font-size:12px;color:var(--ink-soft);line-height:1.45;}
  .pino-360{width:34px;height:22px;border-radius:11px;background:#172621;color:#fff;border:2px solid #fff;font:700 10px/18px "IBM Plex Sans",sans-serif;
    text-align:center;letter-spacing:-.02em;box-shadow:0 1px 4px rgba(0,0,0,.45);cursor:pointer;}
  .pino-360:hover{background:#2F6F5E;}
  .popup-360 .leaflet-popup-content{margin:10px;}
  .pop-360{display:flex;flex-direction:column;gap:6px;font-family:var(--font-sans);}
  .pop-360-mini{position:relative;display:block;width:100%;aspect-ratio:2/1;padding:0;border:none;border-radius:6px;overflow:hidden;background:#DCE3DF;cursor:pointer;}
  .pop-360-mini img{display:block;width:100%;height:100%;object-fit:cover;}
  .pop-360-mini b{position:absolute;left:8px;bottom:8px;background:rgba(23,38,33,.82);color:#fff;font-size:11px;padding:3px 8px;border-radius:999px;}
  .pop-360-carr{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#56655D;}
  .pop-360-nome{font-size:13.5px;font-weight:700;color:#172621;}
  .pop-360-info{font-size:11.5px;color:#56655D;}
  .pop-360-acoes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px;}
  .btn-mini.confirmando{background:var(--danger);border-color:var(--danger);color:#fff;}
  .f360-previa{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
  .f360-previa img{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:6px;background:var(--surface-alt);}
  .f360-info{margin:8px 0 0;font-size:12px;color:var(--ink-soft);}
  .f360-aviso{margin:8px 0 0;font-size:12px;color:var(--danger);background:var(--danger-tint);padding:7px 9px;border-radius:6px;}
  .f360-local{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;margin:4px 0 12px;}
  .f360-local > div{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:12.5px;}
  .f360-local-tit{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.045em;color:var(--ink-soft);}
  .f360-local .btn{flex:none;}
  body.visor-aberto{overflow:hidden;}
  .visor360{position:fixed;inset:0;z-index:5000;background:#0b100e;display:flex;flex-direction:column;color:#E7EEEA;}
  .visor360[hidden]{display:none;}
  .visor360-cab,.visor360-rodape{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;}
  .visor360-tit{display:flex;flex-direction:column;min-width:0;}
  .visor360-tit b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .visor360-tit span{font-size:12px;color:#A3B3AA;}
  .visor360-area{position:relative;flex:1;min-height:0;}
  .visor360-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none;}
  .visor360-canvas.arrastando{cursor:grabbing;}
  .visor360-plano{position:absolute;inset:0;overflow-x:auto;overflow-y:hidden;}
  .visor360-plano img{height:100%;width:auto;max-width:none;display:block;}
  .visor360-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:#A3B3AA;padding:20px;text-align:center;}
  .visor360-msg[hidden]{display:none;}
  .visor360-dica{font-size:12px;color:#A3B3AA;}
  .visor360-ctl{display:flex;gap:6px;}
  .visor360-btn{width:38px;height:38px;border-radius:8px;border:1px solid #3C5049;background:#182420;color:#E7EEEA;font-size:18px;line-height:1;cursor:pointer;}
  .visor360-btn:hover{background:#1F2E28;border-color:#5FBE9C;}
  .visor360-btn:focus-visible{outline:2px solid #5FBE9C;outline-offset:2px;}
  @media (max-width: 640px){
    .visor360-dica{display:none;}
    .visor360-rodape{justify-content:center;}
  }
  @media print{ .visor360,.rail-f360{display:none !important;} }

  /* ---------- Diagrama de cercas 3D ---------- */
  .cerca3d{position:fixed;inset:0;z-index:5000;background:var(--surface);color:var(--ink);display:flex;flex-direction:column;}
  .cerca3d[hidden]{display:none;}
  .cerca3d-cab{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface-alt);}
  .cerca3d-cab > b{font-size:15px;}
  .cerca3d-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;flex:1;}
  .cerca3d-filtros > label:not(.chk){display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink-soft);}
  .cerca3d-filtros select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:6px;padding:5px 8px;font:inherit;font-size:12.5px;font-weight:500;}
  .cerca3d-filtros .chk{font-size:12.5px;}
  .cerca3d-botoes{display:flex;align-items:center;gap:8px;}
  .cerca3d-area{position:relative;flex:1;min-height:0;overflow:hidden;}
  .cerca3d-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none;}
  .cerca3d-canvas.arrastando{cursor:grabbing;}
  .cerca3d-rotulos{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
  .cerca3d-rotulos span{position:absolute;left:0;top:0;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap;
    text-shadow:0 0 3px var(--surface),0 0 3px var(--surface),0 0 3px var(--surface);}
  .cerca3d-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-size:14px;color:var(--ink-soft);z-index:2;}
  .cerca3d-msg[hidden]{display:none;}
  .cerca3d-ctl{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:3;}
  .cerca3d-ctl .visor360-btn{background:var(--surface);color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow);}
  .cerca3d-ctl .visor360-btn:hover{background:var(--surface-alt);border-color:var(--accent);}
  .cerca3d-rodape{flex:none;padding:8px 16px 12px;border-top:1px solid var(--line);max-height:30vh;overflow:auto;}
  .cerca3d-rodape .legenda{margin:0 0 4px;padding:0;}
  .an-dica{position:fixed;z-index:6000;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);
    border-radius:6px;padding:6px 9px;font-size:12px;line-height:1.45;box-shadow:var(--shadow);max-width:260px;}
  .an-dica[hidden]{display:none;}
  #btn-cerca3d{margin-top:6px;}
  @media (max-width: 640px){
    .cerca3d-cab{padding:8px 10px;}
    .cerca3d-filtros{gap:6px 10px;}
  }
  @media print{ .cerca3d{display:none !important;} }
  .cerca3d-rodape .legenda-nota{display:block;padding:0;line-height:1.5;}
