/* Layout: portal del agricultor — barra superior, lotes a la izquierda, mapa al centro, ficha del lote a la derecha.
   En pantallas medianas el mapa va arriba; en teléfono todo se apila. */
:root{
  /* Paleta AgRoca (manual de identidad): Hueso de fondo, tarjetas blancas, texto Bosque, acento Campo, firma Arcilla */
  --bg:#F5F1E8; --surface:#FFFFFF; --ink:#14261C; --muted:#4A5A50; --line:#E3E0D6;
  --accent:#1F6B45; --accent-soft:#E3EEE6; --map-bg:#ECE8DD; --map-line:#FFFFFF;
  --arcilla:#B5532A; --arcilla-texto:#A44A24;
  --good:#248A3D; --warn:#B25000; --crit:#D70015; --none:#8E8E93;
  --good-zone:#E3F4E8; --warn-zone:#FFF1E0; --crit-zone:#FDE8EA;
  /* Escala de niveles de nutrientes (muy bajo → muy alto), distinta del semáforo */
  --n1:#8E1B12; --n1-z:#F6DAD6; --n2:#D33A1F; --n2-z:#FBE3DC; --n3:#E07A00; --n3-z:#FFEBD2; --n4:#7FA81A; --n4-z:#EEF5DA; --n5:#3E8E25; --n5-z:#E1F0DA; --n6:#1F5E1A; --n6-z:#D9E8D4;
  --radio:16px;
  --f-display:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --f-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --f-data:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color-scheme:light;
}
/* El modo oscuro solo se usa si se pide explícitamente (data-theme="dark") */
:root[data-theme="dark"]{
  --bg:#0F1C15; --surface:#14261C; --ink:#F5F1E8; --muted:#A9B7AD; --line:#2A3B31;
  --accent:#8FC9A5; --accent-soft:#1E3328; --map-bg:#102018; --map-line:#0B140F;
  --arcilla:#E08A5E; --arcilla-texto:#E08A5E;
  --good:#5DBA84; --warn:#E2A94B; --crit:#E46C6C; --none:#6F7B73;
  --good-zone:#21402E; --warn-zone:#45391F; --crit-zone:#4A2524; color-scheme:dark;
  --n1:#E0645A; --n1-z:#4A2220; --n2:#F07A55; --n2-z:#4D2A1E; --n3:#F2A33A; --n3-z:#4A351A; --n4:#B5D45A; --n4-z:#37421C; --n5:#6FC25A; --n5-z:#24401E; --n6:#3E9E36; --n6-z:#1C3519;
}
/* Inter, servida desde el portal (latín, pesos 400 a 700) */
@font-face{font-family:"Inter";src:url("marca/inter.woff") format("woff");font-weight:400 700;font-style:normal;font-display:swap}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45}
h1,h2,h3{font-family:var(--f-display);margin:0;letter-spacing:-.01em;text-wrap:balance}
.mono{font-family:var(--f-data);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.eyebrow{font-family:var(--f-data);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Barra superior */
.top{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:space-between;
  padding-block:14px;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));
  border-bottom:1px solid var(--line);background:var(--surface)}
.marca{display:flex;align-items:center;gap:14px;min-width:0}
.marca .logo{display:flex;flex:none;line-height:0;padding-right:14px;border-right:1px solid var(--line)}
.marca .logo img{height:20px;width:auto}
.logo-oscuro{display:none}
:root[data-theme="dark"] .logo-claro{display:none}
:root[data-theme="dark"] .logo-oscuro{display:block}
.marca h1{font-size:1.05rem;font-weight:600}
.meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.85rem;color:var(--muted)}
.meta strong{color:var(--ink);font-weight:600}
.meta a{color:var(--accent);font-weight:600;text-decoration:none}
.meta a:hover{text-decoration:underline}
.meta select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:3px 6px;margin-left:4px}

/* Estructura principal */
.app{display:grid;grid-template-columns:300px minmax(0,1fr) 420px;gap:16px;
  padding-block:16px 32px;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));
  max-width:1680px;margin:0 auto}
@media (max-width:1240px){ .app{grid-template-columns:300px minmax(0,1fr)} .ficha{grid-column:1/-1} }
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radio);min-width:0;box-shadow:0 1px 2px rgb(0 0 0 / .04)}

/* Lotes */
.lotes{padding:14px;display:grid;gap:10px;align-content:start}
.lotes .encabezado{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.lotes h2{font-size:1rem}
.resumen{font-size:.85rem;color:var(--muted)}
.lista{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.lote{width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:8px;padding:10px 10px;cursor:pointer;
  display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:baseline}
.lote:hover{border-color:var(--line)}
.lote[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent)}
.lote .n{font-weight:600}
.lote .v{font-family:var(--f-data);font-variant-numeric:tabular-nums;font-size:.95rem}
.lote .sub{grid-column:1/-1;font-size:.8rem;color:var(--muted)}
.lote .barra{grid-column:1/-1;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.lote .barra i{display:block;height:100%;border-radius:3px}

/* Mapa */
.zona-mapa{display:grid;gap:10px;grid-template-rows:auto 1fr;min-height:520px;align-self:start}
/* Con las tres columnas el mapa queda a la vista mientras se recorre la ficha de al lado.
   Cuando la ficha baja debajo del mapa (pantallas medianas y celular), el mapa NO se fija: si no, la tapa al desplazarse. */
@media (min-width:1241px){ .zona-mapa{position:sticky;top:16px;height:calc(100vh - 100px);height:calc(100dvh - 100px)} }
.capas{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.capas .eyebrow{margin-right:4px}
.capa{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:.85rem;cursor:pointer}
.capa:hover{border-color:var(--accent)}
.capa[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.marco-mapa{position:relative;border-radius:var(--radio);overflow:hidden;border:1px solid var(--line);min-height:480px;background:var(--map-bg)}
#mapa{position:absolute;inset:0}
.leyenda{position:absolute;left:12px;bottom:12px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;
  display:grid;gap:4px;font-size:.78rem;max-width:calc(100% - 24px)}
.leyenda .t{font-weight:600;font-size:.8rem}
.leyenda span{display:flex;align-items:center;gap:6px}
.leyenda i{width:12px;height:12px;border-radius:3px;display:inline-block}
.aviso-geo{position:absolute;right:12px;top:12px;font-family:var(--f-data);font-size:.7rem;background:var(--warn-zone);color:var(--warn);
  padding:4px 8px;border-radius:6px;max-width:calc(100% - 24px)}
.centrar{position:absolute;right:12px;bottom:12px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 10px;font-size:.8rem;cursor:pointer}
.etiqueta{font-family:var(--f-body);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:3px 7px;
  font-size:.78rem;line-height:1.2;text-align:center;white-space:nowrap;cursor:pointer;box-shadow:0 1px 2px rgb(0 0 0 / .12)}
.etiqueta b{display:block;font-family:var(--f-data);font-size:.82rem}
.etiqueta.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}

/* Ficha */
.ficha{padding:16px;display:grid;gap:16px;align-content:start}
.ficha-cab{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.ficha-cab h2{font-size:1.25rem}
.ics{display:flex;align-items:center;gap:14px}
.ics .num{font-family:var(--f-display);font-weight:700;font-size:2.4rem;line-height:1;font-variant-numeric:tabular-nums}
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-data);font-size:.72rem;padding:3px 9px;border-radius:999px;white-space:nowrap;font-weight:500}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.s-adecuado{color:var(--good);background:var(--good-zone)}
.s-atencion{color:var(--warn);background:var(--warn-zone)}
.s-critico{color:var(--crit);background:var(--crit-zone)}
.s-sin_dato,.s-informativo{color:var(--muted);background:var(--accent-soft)}
.subs{display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:10px}
@media (max-width:520px){ .subs{grid-template-columns:repeat(2, minmax(0,1fr))} }
.sub{display:grid;gap:4px}
.sub .l{font-size:.78rem;color:var(--muted)}
.sub .v{font-family:var(--f-data);font-size:1rem}
.sub .t{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.sub .t i{display:block;height:100%}
.alertas{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.alertas li{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:.88rem}
.alertas li::before{content:"";width:8px;height:8px;border-radius:50%;margin-top:6px;background:currentColor}
.alertas li span{color:var(--ink)}
.grupo h3{font-size:.9rem;display:flex;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.grupo h3 span{font-family:var(--f-data);font-weight:400;color:var(--muted);font-size:.8rem}
.param{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:9px 0;border-bottom:1px solid var(--line)}
.param .nom{font-weight:600;font-size:.9rem}
.param .val{font-family:var(--f-data);font-variant-numeric:tabular-nums;text-align:right;font-size:.92rem}
.param .det{font-size:.75rem;color:var(--muted)}
.param .cls{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.param .pt{flex:1;min-width:80px;height:5px;border-radius:3px;background:var(--line);overflow:hidden}
.param .pt i{display:block;height:100%}
.param .rec{grid-column:1/-1;font-size:.82rem;color:var(--muted);border-left:2px solid var(--line);padding-left:8px;margin-top:4px}
.param.vacio .nom,.param.vacio .val{color:var(--muted)}
.vacios{font-size:.8rem;color:var(--muted)}
.pie{font-size:.78rem;color:var(--muted);max-width:90ch;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));margin:0 auto 24px;max-width:1680px}
@media (prefers-reduced-motion:no-preference){ .lote .barra i,.sub .t i,.param .pt i{transition:width .3s ease} }
.enlace-rec{display:inline-block;font-weight:600;color:var(--accent);text-decoration:none;border:1px solid var(--accent);border-radius:7px;padding:7px 12px}
.enlace-rec:hover{background:var(--accent-soft)}
/* Varias muestras por lote */
.multi{font-size:.85rem;margin-top:4px}
.multi a{color:var(--accent);font-weight:600}
.muestreo{display:grid;gap:8px}
.hetero{display:grid;gap:4px}
.hetero .t{font-size:.88rem;font-weight:600}
.barra-clases{display:flex;gap:2px;height:18px;border-radius:6px;overflow:hidden}
.barra-clases i{display:flex;align-items:center;height:100%;overflow:hidden}
.barra-clases i span{font:500 .68rem var(--f-data);color:var(--surface);padding:0 6px;white-space:nowrap}
.hetero .clases{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:.78rem;color:var(--muted)}
.detalle{max-width:1680px;margin:0 auto 20px;padding:16px;display:grid;gap:12px;
  margin-left:max(16px, env(safe-area-inset-left, 0px));margin-right:max(16px, env(safe-area-inset-right, 0px))}
@media (min-width:1712px){ .detalle{margin-left:auto;margin-right:auto} }
.detalle[hidden]{display:none}
.detalle-cab{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;align-items:end}
.detalle-cab h2{font-size:1.1rem}
.detalle-cab p{margin:0;font-size:.82rem;max-width:70ch}
.tabla-detalle{overflow-x:auto}
.tabla-detalle table{border-collapse:collapse;width:100%;font-size:.85rem;min-width:560px}
.tabla-detalle th,.tabla-detalle td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.tabla-detalle thead th{font:500 .72rem var(--f-data);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;vertical-align:bottom}
.tabla-detalle thead th small{display:block;text-transform:none;letter-spacing:0}
.tabla-detalle tbody th{font-weight:600}
.tabla-detalle tbody th small{font-weight:400;color:var(--muted)}
.tabla-detalle .n{text-align:right;font-family:var(--f-data);font-variant-numeric:tabular-nums}
.tabla-detalle .prom{background:var(--accent-soft);font-weight:600}
.tabla-detalle tr.het th:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.tabla-detalle .ics-fila th,.tabla-detalle .ics-fila td{border-top:2px solid var(--line);font-weight:600}
.punto{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
/* Lotes sin georreferencia: mosaico en lugar del mapa */
.mosaico{position:absolute;inset:0;overflow:auto;padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-content:start}
.tesela{display:grid;gap:4px;text-align:left;border:1px solid;border-radius:14px;padding:12px;cursor:pointer;color:var(--ink);font:inherit}
.tesela .n{font-weight:600}
.tesela b{font-family:var(--f-data);font-size:1.15rem}
.tesela b small{font-size:.75rem;font-weight:400}
.tesela .d{font-size:.78rem;color:var(--muted)}
.tesela.sel{box-shadow:0 0 0 3px var(--accent)}
.que-es summary{cursor:pointer;font-size:.85rem;font-weight:600;color:var(--accent)}
.que-es p{font-size:.85rem;color:var(--muted);margin:.5rem 0 0}
.que-es b{color:var(--ink)}
/* Agua de riego */
.agua{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.agua:empty{display:none}
.agua-f{display:grid;gap:8px}
.agua-cab h3{font-size:1rem;display:flex;align-items:center;gap:8px}
.riv{font:500 .72rem var(--f-data);background:var(--accent-soft);color:var(--accent);padding:2px 7px;border-radius:6px}
.agua-l{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;font-size:.85rem}
.agua-l b{font-family:var(--f-data);font-weight:500;text-align:right}
.agua-l .chip{grid-column:1/-1;justify-self:start}
.agua-ind{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:8px}
.agua-ind li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:.8rem}
.agua-ind li b{font-family:var(--f-data);font-weight:500}
.agua-ind li .chip,.agua-ind li small.muted{grid-column:1/-1;justify-self:start}
.agua-vacia p{margin:.2rem 0;font-size:.85rem}
.agua-vacia a{color:var(--accent);font-weight:600;font-size:.85rem}
/* Vista resumen (agricultor) */
.vista-sel{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;justify-self:start}
.vista-sel button{border:0;background:var(--surface);color:var(--muted);font:600 .8rem var(--f-body);padding:6px 12px;cursor:pointer}
.vista-sel button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.atender h3,.bien h3{font-size:.95rem;margin-bottom:8px}
.atender ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.atender li{padding:8px 10px;border-left:3px solid var(--line);background:var(--bg);display:grid;gap:3px;font-size:.88rem}
.fila-a{display:flex;justify-content:space-between;gap:8px;align-items:center}
.s-borde-critico{border-left-color:var(--crit)!important}
.s-borde-atencion{border-left-color:var(--warn)!important}
.aviso-simple{border-left:3px solid var(--warn);padding:6px 10px;font-size:.88rem;background:var(--warn-zone)}
.aviso-simple.s-borde-critico{background:var(--crit-zone)}
.bien p{margin:0;font-size:.88rem;color:var(--muted)}
/* Niveles de nutrientes */
.chip.n1{color:var(--n1);background:var(--n1-z)} .chip.n2{color:var(--n2);background:var(--n2-z)}
.chip.n3{color:var(--n3);background:var(--n3-z)} .chip.n4{color:var(--n4);background:var(--n4-z)}
.chip.n5{color:var(--n5);background:var(--n5-z)} .chip.n6{color:var(--n6);background:var(--n6-z)}
.escala{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:.72rem;color:var(--muted)}
.escala .chip{font-size:.66rem;padding:2px 7px}
.bien ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.85rem}
.bien li{display:flex;gap:6px;align-items:center}
/* Filas mínimas del Resumen */
.simple{display:grid}
.simple h3{font-size:.8rem;font-family:var(--f-data);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 2px}
.fs{display:grid;grid-template-columns:minmax(0,1fr) 168px;grid-template-areas:"nom val" "bar chip" "acc acc";gap:4px 12px;align-items:center;
  padding:10px 0;border-bottom:1px solid var(--line)}
.fs .nom{grid-area:nom;font-weight:600;font-size:.92rem}
.fs .val{grid-area:val;font-family:var(--f-data);font-variant-numeric:tabular-nums;font-size:.92rem;text-align:right}
.fs .val small{color:var(--muted);font-size:.72rem}
.fs .segs,.fs .pt{grid-area:bar}
.fs .chip{grid-area:chip;justify-self:end}
.fs .acc{grid-area:acc;font-size:.8rem;color:var(--muted)}
.segs{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;height:6px}
.segs i{border-radius:2px;background:var(--line)}
.fs .pt{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.fs .pt i{display:block;height:100%}
/* Ajustes de estilo claro: tipografía del sistema, números tabulares, uppercase discreto */
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased}
.eyebrow{letter-spacing:.04em;font-weight:600}
.chip{font-weight:600;letter-spacing:0}
.top{background:rgb(255 255 255 / .85);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}
.ics .num{font-weight:600;letter-spacing:-.02em}
h1,h2,h3{letter-spacing:-.01em}
.lote,.lote .v,.param .val,.fs .val,.sub .v,.tabla-detalle .n,table.res td.n{font-variant-numeric:tabular-nums}
/* Teléfono: mapa compacto y plegable; se colocan al final para que ganen sobre las reglas generales */
.plegar{display:none;border:1px solid var(--line);background:var(--surface);color:var(--accent);border-radius:999px;padding:5px 12px;
  font:600 .82rem var(--f-body);cursor:pointer;margin-left:auto}
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  .zona-mapa{order:-1;position:static;height:auto;min-height:0}
  .marco-mapa{height:42vh;min-height:260px}
  .zona-mapa.plegada .marco-mapa{display:none}
  .plegar{display:inline-flex}
  .capas{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .capa{flex:none}
  .top{position:static}
  .meta{font-size:.8rem}
}
/* Termómetro de condición del suelo */
.termo{grid-area:bar;position:relative;display:block;padding-bottom:14px;min-width:120px;flex:1}
.termo .pista{display:block;height:8px;border-radius:4px;opacity:.9}
.termo b{position:absolute;top:-3px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--surface);border:3px solid var(--ink);box-sizing:border-box}
.termo .eti{position:absolute;left:0;right:0;top:11px;display:flex;justify-content:space-between;font-size:.66rem;color:var(--muted);white-space:nowrap}
.param .cls .termo{min-width:140px}
.dispo{grid-column:1/-1;grid-area:acc2;display:grid;gap:4px;font-size:.8rem;color:var(--muted);margin-top:2px}
.fs .dispo{grid-column:1/-1}
.fs{grid-template-areas:"nom val" "bar chip" "acc acc" "acc2 acc2"}
.dispo div{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.dispo .chip{font-size:.68rem;padding:2px 7px}
.param .dispo{grid-area:auto}
.capa-mas{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 12px;font:inherit;font-size:.85rem;cursor:pointer;max-width:220px}
.capa-mas.activa{background:var(--accent);border-color:var(--accent);color:var(--surface)}
@media (max-width:820px){ .capa-mas{flex:none} }
/* Nivel deseado bajo el valor (vista técnica) */
.param .val small.deseado{display:block;font-size:.7rem;color:var(--muted);font-weight:400;white-space:nowrap}
.vacios.relaciones b{color:var(--ink);font-weight:600}
.hist-sel{display:flex;gap:8px;align-items:center;font-size:.85rem;color:var(--muted)}
.hist-sel select{max-width:260px}
.hist-graf{width:100%;max-width:1100px;height:auto;display:block}
.hist-nota{font-size:.82rem;margin:0}
.hist-tabla summary{cursor:pointer;font-size:.88rem;color:var(--accent)}
.hist-tabla .tabla-detalle{margin-top:8px}
.satur{display:grid;gap:6px;margin-top:10px}
.satur-cab{font-size:.88rem}
.satur-fila{display:grid;grid-template-columns:76px 1fr 104px;gap:8px;align-items:center;font-size:.82rem}
.satur-pista{position:relative;height:10px;background:var(--line);border-radius:5px}
.satur-banda{position:absolute;top:0;bottom:0;background:var(--good-zone);border:1px solid var(--good);border-radius:4px}
.satur-valor{position:absolute;top:-3px;width:4px;height:16px;margin-left:-2px;border-radius:2px;background:var(--warn)}
.satur-valor.ok{background:var(--good)}
.satur-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.satur-num small{color:var(--muted)}
.potencial{margin-top:8px}
.potencial summary{cursor:pointer;font-size:.88rem;color:var(--accent)}
.pot-tabla{width:100%;border-collapse:collapse;font-size:.82rem;margin-top:6px}
.pot-tabla th,.pot-tabla td{padding:4px 6px;border-bottom:1px solid var(--line);text-align:left}
.pot-tabla .n{text-align:right}
.pot-tabla tr.actual td{font-weight:600}
.agua-suelo{display:grid;gap:6px;margin-top:10px}
.agua-barra{display:flex;height:14px;border-radius:5px;overflow:hidden;background:var(--line);gap:2px}
.agua-barra span{display:block;height:100%}
.agua-barra .no-disp,.agua-ley i.no-disp{background:var(--none)}
.agua-barra .aprov,.agua-ley i.aprov{background:var(--accent)}
.agua-barra .drena,.agua-ley i.drena{background:var(--accent-soft);border:1px solid var(--accent)}
.agua-ley{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.78rem;color:var(--muted)}
.agua-ley i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.enmienda{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--warn-zone)}
.enmienda p{margin:0 0 4px}
.agua-suelo .dato{display:flex;justify-content:space-between;gap:12px;font-size:.84rem;border-bottom:1px solid var(--line);padding:3px 0}
.agua-suelo .dato .l{color:var(--muted)}
.agua-suelo .dato .v{font-variant-numeric:tabular-nums;text-align:right}

/* Menú de sesión en el encabezado de todas las páginas */
.sesion{display:inline-flex;gap:10px;align-items:center;margin-left:auto;padding-left:10px;font-size:.88rem;flex-wrap:wrap}
.sesion .quien{color:var(--muted);font-size:.85rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sesion .salir{border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;padding:0}
.sin-lab a[href^="carga.html"],.sin-lab a[href^="resultados.html"],.sin-lab a[href^="tablero.html"],.sin-lab a[href^="productos.html"],.sin-lab a[href^="informe.html"],.sin-lab a[href="cliente.html"],.sin-lab a[href^="equipo.html"]{display:none!important}
.sesion a{color:var(--accent);text-decoration:none}
.reinterpretar{max-width:1680px;margin:8px auto 0;padding:0 16px;font-size:.85rem}
.reinterpretar summary{cursor:pointer;color:var(--accent)}
.rein-fila{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:8px}
.rein-fila label{display:flex;gap:6px;align-items:center;color:var(--muted)}
.reinterpretar .btn{font:600 .85rem var(--f-body);padding:6px 12px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
/* Cosecha del lote */
.cs-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 12px;margin-top:14px;align-items:end}
.cs-form label{display:grid;gap:4px;font-size:.8rem;color:var(--muted)}
.cs-form input,.cs-form select{font:inherit;font-size:.95rem;color:var(--ink);padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);min-height:40px;box-sizing:border-box}
.cs-form .ancho{grid-column:1/-1}
.cs-acciones{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.enlace-borrar{font:inherit;font-size:.8rem;color:var(--crit);background:none;border:0;text-decoration:underline;cursor:pointer;min-height:32px}
.cs-form .btn{font:600 .9rem var(--f-body);padding:9px 16px;border-radius:7px;border:1px solid var(--accent);background:var(--accent);color:var(--surface);cursor:pointer;min-height:40px}
.cs-acciones .mensaje{font-size:.85rem}
.cs-acciones .mensaje.error{color:var(--crit)}
/* Menú principal: el mismo en todas las páginas, según el papel de quien entra */
nav.principal{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:.9rem}
nav.principal a{color:var(--accent);font-weight:600;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:6px}
nav.principal a:hover{border-bottom-color:var(--line)}
nav.principal a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
nav.principal .paso-n{font-style:normal;font:600 .7rem var(--f-data);width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;
  background:var(--accent-soft);color:var(--accent)}
nav.principal a[aria-current="page"] .paso-n{background:var(--accent);color:var(--surface)}
nav.principal .sep{width:1px;height:18px;background:var(--line)}
.contexto a{color:var(--accent);font-weight:600;font-size:.88rem;text-decoration:none}
@media print{nav.principal,.sesion{display:none}}
.top nav.principal{flex:1 1 auto}
@media (max-width:820px){ nav.principal .sep{display:none} nav.principal{gap:2px 12px} }
