:root{
  /* ── Identidad de marca Chumbagua (alineada a index.html) ── */
  --brand:        #1e3f7a;       /* Azul Chumbagua — chrome primario */
  --brand-dark:   #162e5a;
  --brand-soft:   #dde7f5;
  --brand-bg:     #f5f8fc;
  --brand-2:      #2d6e3e;       /* Verde Chumbagua — éxito / agronómico */
  --brand-2-dark: #1e5028;
  --brand-2-soft: #dcebe0;
  --brand-2-bg:   #f4faf6;

  /* ── Acentos por eje funcional ── */
  --acc-prog:  #1e3f7a;          /* Programación de labores  */
  --acc-alert: #e8a020;          /* Alertas de actividades   */
  --acc-exec:  #2d6e3e;          /* Ejecución en tiempo/forma*/
  --acc-bita:  #7d4ea8;          /* Bitácora de lotes        */

  --accent-1:  #e8a020;          /* Dorado */
  --accent-2:  #a85d2c;          /* Tierra */
  --accent-3:  #7d4ea8;          /* Lavanda */
  --accent-4:  #0d8a9c;          /* Cyan */
  --accent-5:  #c0594d;          /* Coral */

  --pos:#16a34a; --pos-bg:#f0fdf4;
  --neg:#dc2626; --neg-bg:#fef2f2;

  /* compat con código existente */
  --bg:#f7f8fc;
  --panel:#ffffff;
  --border:#e6e9f0;
  --linea:#f1f3f8;
  --text:#0a0a0a;
  --text-soft:#5b6472;
  --text-light:#98a1b0;
  --danger:#c0392b;
  --warn:#b8780f;
  --info:#1e3f7a;
  --font-title:'Montserrat','Geist',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  /* alias para login estilo index.html */
  --texto:#0a0a0a;--texto-soft:#5b6472;--texto-muted:#98a1b0;--gris-borde:#e6e9f0;--gold:#b88420;

  /* Sidebar — navy de marca */
  --sidebar-bg:#142a52;
  --sidebar-bg2:#0e1f3d;
  --sidebar-text:#9fb0cc;
  --sidebar-text-hover:#ffffff;
  --sidebar-active-bg:rgba(255,255,255,0.06);
  --sidebar-active-text:#ffffff;
  --sidebar-line:rgba(255,255,255,0.08);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}
html,body{height:100%}
body{
  font-family:'Geist',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);color:var(--text);font-size:13px;line-height:1.5;
}
.num,.font-mono,.adm-mono{font-family:'Geist Mono',ui-monospace,'SFMono-Regular',Consolas,Menlo,monospace;font-variant-numeric:tabular-nums}

/* ============================ LOGIN (estilo index.html) ============================ */
  /* ────────────────────── LOGIN ────────────────────── */
  .pag-login{
    position:fixed;inset:0;z-index:9999;
    background:linear-gradient(135deg,var(--brand) 0%,#235a52 55%,var(--brand-2) 100%);
    display:flex;align-items:center;justify-content:center;
    padding:20px;
  }
  .pag-login.oculto{display:none}
  .pag-login::before{
    content:'';position:absolute;top:-100px;right:-100px;
    width:400px;height:400px;
    background:radial-gradient(circle,rgba(255,255,255,0.1),transparent 70%);
    border-radius:50%;
  }
  .pag-login::after{
    content:'';position:absolute;bottom:-150px;left:-150px;
    width:500px;height:500px;
    background:radial-gradient(circle,rgba(255,255,255,0.08),transparent 70%);
    border-radius:50%;
  }

  /* ===== Fondo animado del login (SIAC) ===== */
  .csia-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
  .csia-bg svg{width:100%;height:100%;display:block}
  .csia-bg .grid-line{stroke:rgba(255,255,255,0.05);stroke-width:1;vector-effect:non-scaling-stroke}
  .csia-bg .area{fill:rgba(255,255,255,0.07);opacity:0;animation:csiaArea 11s ease-in-out infinite}
  .csia-bg .trend{fill:none;stroke:rgba(255,255,255,0.55);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:2600;stroke-dashoffset:2600;animation:csiaDraw 11s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(255,255,255,0.22))}
  .csia-bg .trend2{fill:none;stroke:rgba(255,255,255,0.30);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:2600;stroke-dashoffset:2600;animation:csiaDraw2 11s ease-in-out infinite;filter:drop-shadow(0 0 5px rgba(255,255,255,0.12))}
  .csia-bg .lead{fill:var(--gold);filter:drop-shadow(0 0 10px rgba(184,132,32,0.95))}
  .csia-bg .bar{fill:rgba(255,255,255,0.15);transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);animation:csiaGrow 11s cubic-bezier(.22,1,.36,1) infinite}
  .csia-bg .bar.hi{fill:rgba(184,132,32,0.42)}
  .csia-bg .pcl{position:absolute;bottom:-10px;border-radius:50%;background:rgba(255,255,255,0.3);animation:csiaRise linear infinite}

  @keyframes csiaDraw{0%{stroke-dashoffset:2600;opacity:0}4%{opacity:1}34%{stroke-dashoffset:0}82%{stroke-dashoffset:0;opacity:1}93%{opacity:0}100%{stroke-dashoffset:2600;opacity:0}}
  @keyframes csiaDraw2{0%,12%{stroke-dashoffset:2600;opacity:0}18%{opacity:1}46%{stroke-dashoffset:0}85%{stroke-dashoffset:0;opacity:1}94%{opacity:0}100%{stroke-dashoffset:2600;opacity:0}}
  @keyframes csiaArea{0%,30%{opacity:0}46%{opacity:1}82%{opacity:1}93%,100%{opacity:0}}
  @keyframes csiaGrow{0%,8%{transform:scaleY(0)}34%{transform:scaleY(1)}82%{transform:scaleY(1)}95%,100%{transform:scaleY(0)}}
  @keyframes csiaRise{0%{transform:translateY(0);opacity:0}15%{opacity:.5}85%{opacity:.5}100%{transform:translateY(-105vh);opacity:0}}

  /* la tarjeta SIEMPRE por encima del fondo */
  .pag-login .login-box{position:relative;z-index:2}

  @media (prefers-reduced-motion:reduce){
    .csia-bg .trend,.csia-bg .trend2,.csia-bg .area,.csia-bg .bar,.csia-bg .pcl{animation:none}
    .csia-bg .trend,.csia-bg .trend2{stroke-dashoffset:0;opacity:1}
    .csia-bg .area,.csia-bg .lead{opacity:1}.csia-bg .bar{transform:scaleY(1)}
  }
  @media (max-width:640px){
    .csia-bg .bars,.csia-bg .trend2{display:none}
  }

  .login-box{
    background:white;border-radius:16px;padding:40px 44px;
    width:100%;max-width:400px;text-align:center;
    box-shadow:0 20px 60px rgba(0,0,0,0.3);
    position:relative;z-index:1;
  }
  /* Pie: logo de la compañía (Chumbagua) + "by" en 3 líneas */
  .login-footer-brand{
    display:flex;align-items:center;justify-content:center;gap:16px;
  }
  .login-company-logo{
    display:block;width:140px;height:auto;flex-shrink:0;
  }
  .login-footer-divider{
    width:1px;align-self:stretch;flex-shrink:0;
    background:linear-gradient(to bottom,transparent,var(--gris-borde) 18%,var(--gris-borde) 82%,transparent);
  }
  .login-company-divider{
    width:64px;height:2px;margin:2px auto 12px;border-radius:2px;
    background:linear-gradient(90deg,var(--brand),var(--brand-2));
  }
  /* Bloque de identidad del sistema (SIAC) — recuadro arriba del título */
  .login-brand{
    display:flex;flex-direction:column;align-items:center;gap:12px;
    margin-bottom:30px;
  }
  .login-brand-text{text-align:center}
  .login-logo-wrap{
    width:72px;height:72px;flex-shrink:0;
    background:linear-gradient(135deg, #1e3f7a 0%, #2d6e3e 100%);
    border-radius:18px;
    display:flex;align-items:center;justify-content:center;
    color:white;font-weight:800;font-size:19px;letter-spacing:0.3px;
    box-shadow:0 8px 24px rgba(30,63,122,0.32);
    position:relative;overflow:hidden;
  }
  .login-logo-wrap::before{
    content:'';position:absolute;inset:0;
    background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 48 L18 32 L34 46 L56 24 L74 42 L100 28 L100 100 L0 100 Z' fill='rgba(255,255,255,0.20)'/%3E%3C/svg%3E");
    background-size:cover;background-position:center;
    pointer-events:none;
  }
  .login-logo-wrap > span{position:relative;z-index:1}
  .login-logo{font-size:24px;font-weight:600;color:var(--texto);letter-spacing:-0.5px}
  .login-titulo-csia{
    font-family:'Geist',sans-serif;
    font-size:30px;font-weight:900;letter-spacing:1px;
    line-height:1;
    background:linear-gradient(90deg,var(--brand),var(--brand-2));
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;
    background-clip:text;
  }
  .login-sub{
    font-size:15px;color:var(--brand-2);font-weight:800;
    margin-top:6px;letter-spacing:0.2px;
    text-transform:uppercase;
    font-family:'Geist',sans-serif;
  }
  .login-by{
    text-align:left;line-height:1.45;
    font-size:11px;color:var(--texto-muted);font-weight:500;
    letter-spacing:0.2px;
  }
  .login-by .by-1{font-size:10px;text-transform:lowercase;color:var(--texto-muted)}
  .login-by .by-2{display:block;color:var(--brand-2);font-weight:700;font-size:13px;letter-spacing:-0.1px}
  .login-by .by-3{display:block;color:var(--texto-soft);font-weight:500}
  .login-titulo{font-size:13px;color:var(--texto-soft);margin-bottom:18px;text-align:left;font-weight:500}
  .login-input{
    width:100%;padding:11px 14px;
    border:1px solid var(--gris-borde);border-radius:8px;
    font-size:14px;margin-bottom:10px;outline:none;
    font-family:inherit;
    transition:border-color .15s, box-shadow .15s;
  }
  .login-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
  .login-btn{
    width:100%;padding:12px;
    background:linear-gradient(135deg,var(--brand),var(--brand-2));
    color:white;border:none;border-radius:8px;
    font-family:inherit;font-size:14px;font-weight:600;
    cursor:pointer;margin-top:8px;
    transition:transform .15s, box-shadow .15s;
  }
  .login-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(30,63,122,0.25)}
  .login-btn:disabled{background:#aaa;cursor:not-allowed;transform:none;box-shadow:none}
  .login-error{color:var(--neg);font-size:12px;margin-top:6px;min-height:14px}

/* ============================ APP LAYOUT ============================ */
.app{display:none;height:100vh;overflow:hidden}
.app.activo{display:flex}

.sidebar{
  width:248px;flex-shrink:0;display:flex;flex-direction:column;
  background:linear-gradient(180deg,var(--sidebar-bg) 0%,var(--sidebar-bg2) 100%);
  color:var(--sidebar-text);
}
.sidebar-brand{
  padding:0.55rem 1.1rem;display:flex;align-items:center;gap:10px;
  border-bottom:1px solid var(--sidebar-line);
}
.sidebar-brand-logo{
  width:32px;height:32px;border-radius:9px;flex-shrink:0;
  background:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%);
  display:flex;align-items:center;justify-content:center;color:white;font-weight:800;font-size:13px;
  box-shadow:0 4px 12px rgba(0,0,0,0.30);position:relative;overflow:hidden;
}
.sidebar-brand-logo::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 48 L18 32 L34 46 L56 24 L74 42 L100 28 L100 100 L0 100 Z' fill='rgba(255,255,255,0.22)'/%3E%3C/svg%3E");background-size:cover;pointer-events:none}
.sidebar-brand-text{font-size:15px;font-weight:700;color:white;letter-spacing:-0.2px}
.sidebar-brand-text small{display:block;font-size:10px;color:var(--sidebar-text);font-weight:500;letter-spacing:0.05em;text-transform:uppercase;margin-top:2px}

.sidebar-user{padding:0.4rem 1.1rem;border-bottom:1px solid var(--sidebar-line);font-size:12px}
.sidebar-user-name{color:white;font-weight:600;margin-bottom:1px;letter-spacing:-0.2px}
.sidebar-user-role{color:var(--sidebar-text);font-size:10px;text-transform:uppercase;letter-spacing:0.06em;font-weight:600}

.sidebar-nav{flex:1;padding:0.15rem 0;overflow-y:auto}
.nav-group{margin-bottom:0}
.nav-group-label{
  padding:0.26rem 1.1rem 0.06rem;font-size:9px;color:var(--sidebar-text);
  text-transform:uppercase;letter-spacing:0.09em;font-weight:700;opacity:0.72;
  display:flex;align-items:center;gap:6px;
}
.nav-group-label::before{content:'';width:12px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--brand-2),transparent);opacity:0.9}
.nav-item{
  display:flex;align-items:center;gap:9px;padding:0.2rem 1.1rem;
  font-size:12.5px;color:var(--sidebar-text);cursor:pointer;
  transition:background .12s,color .12s;border-left:3px solid transparent;
}
.nav-item i{font-size:15px;width:17px}
.nav-item:hover{background:rgba(255,255,255,0.04);color:var(--sidebar-text-hover)}
.nav-item.activo{
  background:var(--sidebar-active-bg);color:var(--sidebar-active-text);
  border-left-color:var(--brand-2);font-weight:600;
}
.nav-sub{padding-left:1rem;font-size:12.5px}

.sidebar-foot{padding:0.45rem 1.1rem;border-top:1px solid var(--sidebar-line)}
.sidebar-logout{
  width:100%;padding:6px;background:transparent;border:1px solid var(--sidebar-line);
  color:var(--sidebar-text);border-radius:8px;cursor:pointer;font-size:12px;font-family:inherit;
  display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s;
}
.sidebar-logout:hover{background:rgba(255,255,255,0.06);color:white}

/* ============================ MAIN PANEL ============================ */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.topbar{
  background:white;border-bottom:1px solid var(--border);
  padding:0.75rem 1.6rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
}
.topbar-title{
  font-family:var(--font-title);
  font-size:21px;font-weight:600;color:var(--text);letter-spacing:0;
  display:flex;align-items:center;gap:11px;
}
.topbar-title::before{content:'';width:3px;height:21px;border-radius:2px;background:linear-gradient(to bottom,var(--brand),var(--brand-2))}
.topbar-actions{display:flex;align-items:center;gap:10px}
.topbar-right{display:flex;align-items:center;gap:20px}
.topbar-logo{height:34px;width:auto;display:block;flex-shrink:0}
.content{flex:1;overflow-y:auto;padding:1.6rem}

/* ============================ KPIS ============================ */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:1rem}
.kpi{
  background:white;border:1px solid var(--border);border-radius:10px;padding:0.55rem 0.8rem;
  position:relative;overflow:hidden;box-shadow:0 1px 3px rgba(20,30,60,0.04);transition:transform .18s,box-shadow .18s;
}
.kpi::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--brand);opacity:0.9}
.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,30,60,0.08)}
.kpi-lbl{font-size:9.5px;color:var(--text-light);text-transform:uppercase;letter-spacing:0.05em;font-weight:700;margin-bottom:2px}
.kpi-val{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-0.5px;font-variant-numeric:tabular-nums;line-height:1.05}
.kpi-sub{font-size:10px;color:var(--text-soft);margin-top:2px}
.kpi-val.ok{color:var(--brand-2)}
.kpi-val.warn{color:var(--warn)}
.kpi-val.danger{color:var(--danger)}
.kpi.k-prog::before{background:var(--acc-prog)}
.kpi.k-alert::before{background:var(--acc-alert)}
.kpi.k-exec::before{background:var(--acc-exec)}
.kpi.k-bita::before{background:var(--acc-bita)}

/* ============================ CARDS ============================ */
.card{
  background:white;border:1px solid var(--border);border-radius:12px;
  margin-bottom:14px;overflow:hidden;box-shadow:0 1px 3px rgba(20,30,60,0.04);
}
.card-head{
  padding:0.9rem 1.15rem;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
}
.card-title{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-0.2px}
.card-body{padding:1.1rem 1.15rem}

.section-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.section-h h2{
  font-family:var(--font-title);
  font-size:18px;font-weight:600;color:var(--text);letter-spacing:-0.2px;
  display:flex;align-items:center;gap:10px;
}
.section-h h2::before{content:'';width:3px;height:19px;border-radius:2px;background:linear-gradient(to bottom,var(--brand),var(--brand-2))}

/* ============================ BUTTONS ============================ */
.btn{
  padding:8px 14px;border:none;border-radius:9px;font-size:12.5px;font-weight:600;
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit;transition:all .15s;
}
.btn i{font-size:15px}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:white;box-shadow:0 2px 6px rgba(30,63,122,0.20)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(30,63,122,0.26)}
.btn-primary:disabled{background:#aab;cursor:not-allowed;transform:none;box-shadow:none}
.btn-secondary{background:white;color:var(--text);border:1px solid var(--border)}
.btn-secondary:hover{background:var(--brand-bg);border-color:var(--brand-soft);color:var(--brand)}
.btn-danger{background:var(--neg-bg);color:var(--danger);border:1px solid #f3c2bc}
.btn-danger:hover{background:#fde0dc}
.btn-icon{
  width:32px;height:32px;padding:0;justify-content:center;border-radius:9px;
  background:white;border:1px solid var(--border);color:var(--text-soft);
}
.btn-icon:hover{background:var(--brand-bg);color:var(--brand);border-color:var(--brand-soft)}
.btn-sm{padding:5px 10px;font-size:12px}

/* ============================ TABLE ============================ */
.table{width:100%;border-collapse:collapse;font-size:13px}
.table th{
  text-align:left;padding:6px 10px;background:var(--brand-bg);
  font-size:10px;font-weight:700;color:var(--text-soft);text-transform:uppercase;letter-spacing:0.04em;
  border-bottom:1px solid var(--border);
}
.table td{padding:6px 10px;border-bottom:1px solid var(--linea);color:var(--text)}
.table tbody tr:hover{background:var(--brand-bg)}
.table tbody tr:last-child td{border-bottom:none}
.table-actions{display:flex;gap:4px;justify-content:flex-end}

/* ============================ FORM ============================ */
.field{margin-bottom:12px}
.field label{display:block;font-size:12px;font-weight:600;color:var(--text-soft);margin-bottom:5px}
.field input,.field select,.field textarea{
  width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:9px;
  font-size:13px;color:var(--text);background:white;font-family:inherit;transition:border-color .15s,box-shadow .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.field textarea{resize:vertical;min-height:60px}
.field-help{font-size:11px;color:var(--text-soft);margin-top:3px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field-row-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}

/* ============================ BADGES / CHIPS ============================ */
.badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:100px;display:inline-flex;align-items:center;gap:3px;letter-spacing:0.2px}
.b-ok{background:var(--brand-2-soft);color:var(--brand-2-dark)}
.b-warn{background:#fcefd8;color:#92400e}
.b-danger{background:var(--neg-bg);color:#b91c1c}
.b-info{background:var(--brand-soft);color:var(--brand-dark)}
.b-purple{background:#ece2f4;color:#5b21b6}
.b-amber{background:#fcefd8;color:#92400e}
.b-gray{background:#eef0f4;color:#4b5563}

.chip{
  display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:100px;
  background:#eef0f4;color:#374151;font-size:11px;font-weight:600;
  border:1px solid var(--border);cursor:pointer;white-space:nowrap;transition:all .12s;
}
.chip:hover{background:var(--brand-bg);border-color:var(--brand-soft)}
.chip.sel{background:var(--brand);color:white;border-color:var(--brand)}

/* ============================ MODAL ============================ */
.modal-overlay{position:fixed;inset:0;background:rgba(10,18,40,0.55);display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(2px)}
.modal{background:white;border-radius:14px;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,0.30)}
.modal-head{padding:1.05rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-head h3{font-family:var(--font-title);font-size:17px;font-weight:600;letter-spacing:-0.1px}
.modal-close{background:none;border:none;font-size:22px;color:var(--text-light);cursor:pointer;line-height:1;padding:0}
.modal-close:hover{color:var(--text)}
.modal-body{padding:1.25rem}
.modal-foot{padding:1rem 1.25rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}

/* ============================ EMPTY / LOADING ============================ */
.empty{text-align:center;padding:3rem 1rem;color:var(--text-light);font-size:13px}
.empty i{font-size:40px;display:block;margin-bottom:8px;opacity:0.5}
.loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--text-soft)}

/* ============================ TOAST ============================ */
.toast{
  position:fixed;bottom:24px;right:24px;background:var(--brand-dark);color:white;
  padding:11px 18px;border-radius:10px;font-size:13px;font-weight:600;z-index:999;
  transform:translateY(80px);opacity:0;transition:transform .25s,opacity .25s;
  max-width:400px;box-shadow:0 12px 32px rgba(0,0,0,0.20);
}
.toast.show{transform:translateY(0);opacity:1}
.toast.success{background:var(--brand-2-dark)}
.toast.error{background:#b91c1c}
.toast.info{background:var(--brand)}

/* ============================ MIXTURE EDITOR ============================ */
.mixprod-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--brand-bg);border:1px solid var(--border);border-radius:9px;margin-bottom:6px}
.mixprod-row .prod-name{flex:1;font-size:12.5px}
.mixprod-row .prod-dosis{width:70px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;text-align:right;font-size:12px;font-family:'Geist Mono',monospace}
.mixprod-row .prod-unit{font-size:11px;color:var(--text-soft);min-width:42px}
.mixprod-row .prod-del{background:none;border:none;color:var(--danger);cursor:pointer;padding:3px 6px;border-radius:5px}
.mixprod-row .prod-del:hover{background:var(--neg-bg)}
.add-prod-box{display:flex;gap:6px;margin-top:8px;padding:8px;background:var(--brand-bg);border:1px dashed var(--border);border-radius:9px}
.add-prod-box select{flex:2}
.add-prod-box input{flex:1}

/* ============================ FILTERS / DATE SEG ============================ */
.filters{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:14px}
.filters .field{margin:0}
.filters .field select,.filters .field input{min-width:140px}
/* Barra de filtros compacta (no afecta formularios/modales) */
.filters .field label{font-size:10px;margin-bottom:2px;letter-spacing:.02em}
.filters .field select,.filters .field input{padding:5px 9px;font-size:12px;border-radius:7px}
.filters .btn{padding:5px 11px;font-size:12px}
.dateseg{display:inline-flex;background:#eef0f4;border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}
.dateseg button{border:none;background:transparent;padding:6px 12px;border-radius:7px;cursor:pointer;font-size:12px;font-weight:600;color:var(--text-soft);font-family:inherit;transition:all .12s}
.dateseg button.activo{background:white;color:var(--brand);box-shadow:0 1px 3px rgba(0,0,0,0.10)}

/* ============================ GRID / MINICARD ============================ */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:1100px){.grid-3{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}
.minicard{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(20,30,60,0.04)}
.minicard-head{padding:0.75rem 1rem;border-bottom:1px solid var(--border);font-size:12px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.minicard-head i{color:var(--brand)}
.minicard-body{padding:0}
.minicard .table th{padding:7px 12px}
.minicard .table td{padding:8px 12px}

/* progress bar */
.pbar{height:6px;border-radius:4px;background:#eef0f4;overflow:hidden;min-width:60px}
.pbar > span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-2));border-radius:4px}

/* ============================ MAP ============================ */
.mapwrap{position:relative;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:white}
#pmMap{height:560px;width:100%}
.maplegend{position:absolute;top:12px;right:12px;background:white;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:11px;z-index:500;max-height:480px;overflow-y:auto;box-shadow:0 6px 18px rgba(20,30,60,0.10);max-width:220px}
.maplegend .lg-title{font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-soft);margin-bottom:7px}
.maplegend .lg-row{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.maplegend .lg-swatch{width:13px;height:13px;border-radius:4px;flex-shrink:0;border:1px solid rgba(0,0,0,0.1)}
.maplegend .lg-foot{margin-top:8px;padding-top:7px;border-top:1px solid var(--border);color:var(--text-light);font-size:10px}
.map-summary{display:flex;gap:18px;flex-wrap:wrap;padding:0.85rem 1.15rem;border-bottom:1px solid var(--border);font-size:12px}
.map-summary b{font-size:17px;color:var(--text);display:block;font-variant-numeric:tabular-nums;font-weight:800}
.map-summary .ms-lbl{color:var(--text-soft);font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;font-weight:600}

/* dosis ajuste */
.dosaj-row{display:grid;grid-template-columns:1fr 90px 50px 70px;gap:8px;align-items:center;padding:7px 10px;border:1px solid var(--border);border-radius:9px;margin-bottom:6px;background:var(--brand-bg)}
.dosaj-row .da-name{font-size:12.5px}
.dosaj-row input{padding:5px 8px;border:1px solid var(--border);border-radius:6px;text-align:right;font-size:12px;font-family:'Geist Mono',monospace}
.dosaj-row .da-orig{font-size:11px;color:var(--text-light);text-align:right}
.dosaj-row .da-unit{font-size:11px;color:var(--text-soft)}
.dosaj-row.changed{background:#fcefd8;border-color:#e8d3a3}

.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 9px;border-radius:100px;background:#eef0f4;color:#4b5563}
.lote-tip{background:rgba(10,18,40,0.88);color:#fff;border:none;border-radius:6px;font-size:10px;font-weight:700;padding:1px 6px;box-shadow:none}
.lote-tip::before{display:none}
.tablewrap{overflow-x:auto}
.muted{color:var(--text-soft)}
.right{text-align:right}
.num{font-variant-numeric:tabular-nums}

/* ============================ PROGRAMACIÓN MASIVA ============================ */
.masiva-grid{display:grid;grid-template-columns:1.35fr 0.95fr;gap:16px;align-items:start}
@media(max-width:1100px){.masiva-grid{grid-template-columns:1fr}}
.masiva-actinfo{min-height:18px}
.masiva-lote-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.masiva-lote-list{max-height:340px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:#fff;display:block}
.masiva-lote{display:flex;align-items:center;gap:9px;padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--linea);border-right:1px solid var(--linea);user-select:none;transition:background .1s}
.masiva-lote:hover{background:var(--brand-bg)}
.masiva-lote.sel{background:var(--brand-soft)}
.masiva-lote.noaplica{opacity:0.55}
.masiva-lote input{width:auto;flex-shrink:0;pointer-events:none}
.masiva-lote .ml-main{flex:1;min-width:0}
.masiva-lote .ml-cod{font-weight:700;font-size:12.5px;color:var(--text)}
.masiva-lote .ml-meta{font-size:11px;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.masiva-cart{position:sticky;top:0}
.masiva-cart-item{display:flex;gap:10px;align-items:flex-start;padding:0.8rem 1.1rem;border-bottom:1px solid var(--border)}
.masiva-cart-item:last-child{border-bottom:none}
.masiva-finca-group{border-bottom:1px solid var(--border)}
.masiva-finca-group:last-child{border-bottom:none}
.masiva-finca-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:var(--brand-bg);position:sticky;top:0;z-index:1}
.mfh-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700;font-size:12.5px;color:var(--text)}
.mfh-check i{color:var(--brand)}
.mfh-box{width:16px;height:16px;border:1.5px solid var(--text-light);border-radius:5px;display:inline-block;position:relative;flex-shrink:0}
.mfh-box.on{background:var(--brand);border-color:var(--brand)}
.mfh-box.on::after{content:'✓';color:#fff;font-size:11px;position:absolute;top:-2px;left:2px;font-weight:700}
.masiva-finca-lotes{display:grid;grid-template-columns:1fr 1fr}
@media(max-width:680px){.masiva-finca-lotes{grid-template-columns:1fr}.masiva-lote-list{grid-template-columns:1fr}}

/* ============================ BITÁCORA ============================ */
.bita-grid{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
@media(max-width:900px){.bita-grid{grid-template-columns:1fr}}
.bita-lote-list{overflow-y:auto;flex:1}
.bita-lote-item{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--linea);transition:background .1s}
.bita-lote-item:hover{background:var(--brand-bg)}
.bita-lote-item.sel{background:var(--brand-soft);border-left:3px solid var(--brand)}
.bli-cod{font-weight:700;font-size:13px;color:var(--text)}
.bli-meta{font-size:11px;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bli-count{background:var(--acc-bita);color:#fff;font-size:10px;font-weight:700;border-radius:100px;padding:2px 8px;flex-shrink:0}
.bita-tipos{display:flex;flex-wrap:wrap;gap:6px}
.bita-tipo-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:100px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text-soft);transition:all .12s}
.bita-tipo-chip i{font-size:13px}
.bita-tipo-chip.sel{background:var(--c,var(--brand-2));color:#fff;border-color:var(--c,var(--brand-2))}
.bita-timeline{position:relative;padding-left:6px}
.bita-ev{display:flex;gap:12px;position:relative;padding-bottom:16px}
.bita-ev:not(:last-child)::before{content:'';position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--border)}
.bita-ev-dot{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;z-index:1}
.bita-ev-body{flex:1;min-width:0;padding-top:1px}
.bita-ev-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:2px}
.bita-ev-fecha{font-size:11px;color:var(--text-soft);font-variant-numeric:tabular-nums;font-weight:700;font-family:'Geist Mono',monospace}
.bita-ev-tit{font-size:13px;font-weight:700;color:var(--text)}
.bita-ev-txt{font-size:12.5px;color:var(--text-soft);margin-top:2px;line-height:1.5}
.bita-ev-autor{font-size:11px;color:var(--text-light);margin-top:4px}
.bita-ciclo{display:flex;gap:20px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;background:var(--brand-bg);border:1px solid var(--brand-soft);border-radius:10px;font-size:12px}
.bita-ciclo .bc-lbl{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-soft);font-weight:700}
.bita-ciclo b{font-size:14px;color:var(--text);font-variant-numeric:tabular-nums;font-weight:800}
.bita-dpc{font-size:10px;font-weight:700;background:var(--brand-dark);color:#fff;border-radius:100px;padding:2px 8px;font-variant-numeric:tabular-nums;font-family:'Geist Mono',monospace}
.bita-ev-inicio .bita-ev-tit{font-weight:800}
.bita-ev-inicio .bita-ev-body{background:var(--brand-bg);border:1px dashed var(--brand-soft);border-radius:10px;padding:8px 10px;margin-top:-4px}
.bita-ev-reg{cursor:pointer;border-radius:10px;transition:background .1s}
.bita-ev-reg:hover{background:var(--brand-bg)}
.bita-ev-reg .bita-ev-body{padding-right:6px}
.bita-ev-eval{font-size:12px;color:var(--text);background:var(--brand-bg);border-left:3px solid var(--brand-2);border-radius:0 8px 8px 0;padding:6px 9px;margin-top:5px}
.bita-ev-calhint{font-size:10.5px;color:var(--text-light);margin-top:5px;opacity:0;transition:opacity .1s}
.bita-ev-reg:hover .bita-ev-calhint{opacity:1}
.calif-chips{display:flex;gap:8px;flex-wrap:wrap}
.calif-chip{flex:1;min-width:120px;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1.5px solid var(--border);border-radius:10px;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--text-soft);background:#fff;transition:all .12s}
.calif-chip i{font-size:16px}
.calif-chip:hover{border-color:var(--c)}
.calif-chip.sel{background:var(--c);color:#fff;border-color:var(--c)}
#jefeMap{height:560px;width:100%}

.catwrap{display:flex;flex-direction:column;gap:10px}
.cat-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cat-picker{font:inherit;font-size:13px;font-weight:600;color:var(--text);background:#fff;border:1.5px solid var(--border);border-radius:9px;padding:9px 12px;min-width:240px}
.cat-picker:focus{border-color:var(--brand);outline:none}
.cat-meta{font-size:12px;color:var(--text-soft);font-weight:600;display:flex;align-items:center;gap:5px}
.cat-meta i{font-size:14px}
.cat-savebar{margin-left:auto;display:flex;gap:8px;align-items:center}
.cat-limit{font-size:12px;color:var(--text-soft);font-weight:600;display:flex;align-items:center;gap:6px}
.cat-limit select{font:inherit;font-size:12px;border:1.5px solid var(--border);border-radius:7px;padding:6px 8px;background:#fff}
.cat-search{position:relative;flex:1;min-width:200px;max-width:340px}
.cat-search i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-light);font-size:15px}
.cat-search input{width:100%;padding:9px 12px 9px 32px;border:1.5px solid var(--border);border-radius:8px;font:inherit;font-size:13px;background:#fff}
.cat-search input:focus{border-color:var(--brand);outline:none}
.cat-count{font-size:12px;color:var(--text-soft);font-weight:600}
.cat-tablewrap{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:auto;max-height:calc(100vh - 240px)}
.cat-tablewrap table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}
.cat-tablewrap thead th{position:sticky;top:0;z-index:10;background:#F0F4F2;color:var(--text-soft);font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;text-align:left;padding:10px 11px;white-space:nowrap;border-bottom:1px solid var(--border)}
.cat-tablewrap tbody td{padding:6px 10px;border-bottom:1px solid #F1F4F2;white-space:nowrap;vertical-align:middle}
.cat-tablewrap tbody tr:hover td{background:#FAFCFB}
.cat-tablewrap tr.cat-dirty td{background:#FBF1DE!important}
.cat-tablewrap th.cat-stick,.cat-tablewrap td.cat-stick{position:sticky;left:0;z-index:5;background:#fff;border-right:1px solid var(--border)}
.cat-tablewrap thead th.cat-stick{z-index:15;background:#F0F4F2}
.cat-tablewrap tr:hover td.cat-stick{background:#FAFCFB}
.cat-tablewrap tr.cat-dirty td.cat-stick{background:#FBF1DE!important}
.cat-code{font-family:ui-monospace,Menlo,monospace;font-weight:600;font-size:12px;color:var(--brand-dark);background:var(--brand-soft);padding:3px 7px;border-radius:5px}
.cat-tablewrap input[type=text],.cat-tablewrap input[type=number],.cat-tablewrap input[type=date]{padding:6px 8px;font:inherit;font-size:13px;border:1.5px solid var(--border);border-radius:7px;min-width:90px;background:#fff}
.cat-tablewrap input:focus,.cat-tablewrap select:focus{border-color:var(--brand);outline:none}
.cat-tablewrap input[type=number]{max-width:120px;font-family:ui-monospace,Menlo,monospace}
.cat-tablewrap select{padding:6px 8px;font:inherit;font-size:13px;border:1.5px solid var(--border);border-radius:7px;background:#fff;min-width:110px}
.cat-name input{font-weight:600;min-width:220px}
.cat-locked{font-family:ui-monospace,Menlo,monospace;color:var(--text-light);font-size:12px}
.cat-tg{position:relative;display:inline-block;width:38px;height:21px;cursor:pointer}
.cat-tg input{display:none}
.cat-tg .sl{position:absolute;inset:0;background:#D7DEDB;border-radius:21px;transition:.18s}
.cat-tg .sl:before{content:"";position:absolute;height:15px;width:15px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.cat-tg input:checked + .sl{background:var(--brand)}
.cat-tg input:checked + .sl:before{transform:translateX(17px)}
.cat-empty{padding:50px;text-align:center;color:var(--text-soft)}

.adm-wrap{display:flex;flex-direction:column;gap:14px}
.adm-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.adm-search{position:relative;flex:1;min-width:200px;max-width:340px}
.adm-search i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-light);font-size:15px}
.adm-search input{width:100%;padding:9px 12px 9px 32px;border:1.5px solid var(--border);border-radius:8px;font:inherit;font-size:13px;background:#fff}
.adm-search input:focus{border-color:var(--brand);outline:none}
.adm-note{font-size:12.5px;color:var(--text-soft);background:var(--brand-soft);border:1px solid var(--border);border-radius:9px;padding:9px 12px;display:flex;gap:8px;align-items:flex-start}
.adm-note i{color:var(--brand-dark);font-size:15px;margin-top:1px}
.zaf-h{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:700;color:var(--text);margin:6px 0 10px}
.zaf-h > span{display:flex;align-items:center;gap:8px}
.adm-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:auto}
.adm-card table{border-collapse:separate;border-spacing:0;width:100%}
.adm-card thead th{position:sticky;top:0;background:#F0F4F2;color:var(--text-soft);font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;text-align:left;padding:10px 11px;white-space:nowrap;border-bottom:1px solid var(--border)}
.adm-card tbody td{padding:8px 11px;border-bottom:1px solid #F1F4F2;vertical-align:middle;font-size:13px}
.adm-card tbody tr:hover td{background:#FAFCFB}
.adm-card tr.adm-dirty td{background:#FBF1DE!important}
.adm-card input[type=text],.adm-card select{padding:6px 8px;font:inherit;font-size:13px;border:1.5px solid var(--border);border-radius:7px;background:#fff;max-width:200px}
.adm-card input:focus,.adm-card select:focus{border-color:var(--brand);outline:none}
.adm-mono{font-size:12px;color:var(--text-soft)}
.adm-tg{position:relative;display:inline-block;width:38px;height:21px;cursor:pointer}
.adm-tg input{display:none}
.adm-tg .sl{position:absolute;inset:0;background:#D7DEDB;border-radius:21px;transition:.18s}
.adm-tg .sl:before{content:"";position:absolute;height:15px;width:15px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.adm-tg input:checked + .sl{background:var(--brand)}
.adm-tg input:checked + .sl:before{transform:translateX(17px)}
.adm-pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;background:var(--brand-soft);color:var(--brand-dark)}
.adm-pill.off{background:#F0EEE9;color:var(--text-light)}
.adm-sub{display:flex;gap:6px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:4px;width:fit-content}
.adm-sub button{font:inherit;font-weight:700;font-size:12.5px;border:none;background:transparent;color:var(--text-soft);padding:8px 14px;border-radius:7px;cursor:pointer}
.adm-sub button.on{background:var(--brand-soft);color:var(--brand-dark)}
.adm-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:760px}
.adm-chk{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1.5px solid var(--border);border-radius:9px;cursor:pointer;font-size:13px;background:#fff}
.adm-chk:hover{border-color:var(--brand)}
.adm-chk.on{border-color:var(--brand);background:var(--brand-soft)}
.adm-chk input{width:16px;height:16px;accent-color:var(--brand)}
.adm-empty{padding:40px;text-align:center;color:var(--text-soft)}
.adm-userhead{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.adm-userhead .av{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}
.adm-userhead .nm{font-weight:700;font-size:15px}
.adm-userhead .em{font-size:12px;color:var(--text-soft)}

i.ti.tisvgd::before{content:none!important}
i.ti.tisvgd{display:inline-flex;align-items:center;justify-content:center;line-height:1;vertical-align:-.125em}
i.ti.tisvgd svg{width:1em;height:1em;display:block}
