*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{font-family:'IBM Plex Sans',system-ui,sans-serif;background:#f6f4ef;color:#2a2722}
.mono{font-family:'IBM Plex Mono',monospace}
input,select,textarea,button{font-family:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(61,122,78,.3);outline-offset:0}
.boot{display:flex;height:100vh;align-items:center;justify-content:center;color:#6f6a62}
a{color:#3d7a4e}

/* ---------- SCROLLBARS (marca Sumaj Yapay) ---------- */
*{
  scrollbar-width:thin;
  scrollbar-color:#b7cbb9 transparent;
}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{
  background:#b7cbb9;
  border-radius:999px;
  border:2px solid transparent;
  background-clip:padding-box;
}
*::-webkit-scrollbar-thumb:hover{background:#3d7a4e}
*::-webkit-scrollbar-corner{background:transparent}

/* Menú lateral oscuro */
.nav,.side{
  scrollbar-width:thin;
  scrollbar-color:rgba(61,122,78,.55) transparent;
}
.nav::-webkit-scrollbar,
.side::-webkit-scrollbar{width:6px;height:6px}
.nav::-webkit-scrollbar-thumb,
.side::-webkit-scrollbar-thumb{
  background:rgba(61,122,78,.45);
  border-radius:999px;
  border:2px solid transparent;
  background-clip:padding-box;
}
.nav::-webkit-scrollbar-thumb:hover,
.side::-webkit-scrollbar-thumb:hover{background:#3d7a4e}

/* Contenido principal */
.content,.sy-scroll,.modal .mb,.login-emp-lista{
  scrollbar-width:thin;
  scrollbar-color:#9bb89e #f0ede6;
}
.content::-webkit-scrollbar-track,
.sy-scroll::-webkit-scrollbar-track,
.modal .mb::-webkit-scrollbar-track,
.login-emp-lista::-webkit-scrollbar-track{background:#f0ede6;border-radius:999px}
.content::-webkit-scrollbar-thumb,
.sy-scroll::-webkit-scrollbar-thumb,
.modal .mb::-webkit-scrollbar-thumb,
.login-emp-lista::-webkit-scrollbar-thumb{
  background:#9bb89e;
  border-radius:999px;
  border:2px solid #f0ede6;
  background-clip:padding-box;
}
.content::-webkit-scrollbar-thumb:hover,
.sy-scroll::-webkit-scrollbar-thumb:hover,
.modal .mb::-webkit-scrollbar-thumb:hover,
.login-emp-lista::-webkit-scrollbar-thumb:hover{background:#3d7a4e}

/* ---------- LOGIN ---------- */
.login-wrap{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(1200px 600px at 70% -10%,#e9ede8,transparent),#f6f4ef}
.login-card{background:#fff;border:1px solid #e5e1d8;border-radius:16px;padding:34px 32px;width:100%;max-width:390px;
  box-shadow:0 20px 50px rgba(35,42,36,.12)}
.brand{display:flex;align-items:center;gap:11px;margin-bottom:24px}
.brand .mk{width:40px;height:40px;border-radius:10px;background:#3d7a4e;display:flex;align-items:center;justify-content:center}
.brand .mk i{width:16px;height:16px;border-radius:50%;border:3px solid #fff;display:block}
.brand b{font-size:15px}
.brand span{display:block;font-size:11px;color:#6f6a62}
.login-logo{margin:-34px -32px 24px;padding:22px 20px 16px;background:#232a24;border-radius:15px 15px 0 0;text-align:center}
.login-logo img{display:block;width:180px;max-width:70%;height:auto;margin:0 auto}
.login-logo span{display:block;margin-top:6px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#a9b3a6}
.side-logo{display:block;width:150px;max-width:100%;height:auto;margin:0 auto 10px}
.login-card h1{font-size:19px;margin:0 0 4px}
.login-card p.sub{font-size:13px;color:#6f6a62;margin:0 0 20px}
.field{margin-bottom:14px}
label.lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#6f6a62;margin-bottom:5px}
.inp{width:100%;padding:11px 12px;border:1px solid #d8d4cc;border-radius:9px;font-size:15px;background:#fff;color:#2a2722}
.login-pass{position:relative}
.login-pass .inp{padding-right:76px}
.login-pass-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#3d7a4e;font-size:12px;font-weight:700;letter-spacing:.02em;cursor:pointer;padding:6px 8px;border-radius:6px}
.login-pass-toggle:hover{background:#eef2ee}
.login-link{display:block;width:100%;margin-top:12px;border:0;background:none;color:#3d7a4e;font-size:13px;font-weight:600;cursor:pointer;padding:8px;border-radius:8px}
.login-link:hover{background:#eef2ee;text-decoration:underline}
.login-link:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px}
.login-ok{margin:0 0 14px}
.login-prueba{font-size:12px;color:#7a5518;background:#fbf1e3;border-radius:8px;padding:8px 10px;margin:-6px 0 14px}
.login-prueba a{color:#1f4e86;font-weight:700}
.btn{background:#3d7a4e;color:#fff;border:none;padding:12px 18px;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;width:100%}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.65;cursor:wait;filter:none}
.btn.sm{width:auto;padding:9px 16px;font-size:14px}
.btn.ghost{background:#fff;border:1px solid #d8d4cc;color:#2a2722}
.err{background:#faeef0;color:#a03050;border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:14px}

.login-emp{border:1px solid #d8d4cc;border-radius:9px;background:#fff;overflow:hidden}
.login-emp-actual{display:flex;align-items:center;gap:11px;padding:11px 13px}
.login-emp-actual[hidden],.login-emp-cambiar[hidden],.login-emp-lista[hidden]{display:none}
.login-emp-ini{width:32px;height:32px;border-radius:8px;background:#eef2ee;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#2f6d3c;flex-shrink:0}
.login-emp-ini-sm{width:26px;height:26px;border-radius:7px;font-size:11px}
.login-emp-meta{flex:1;min-width:0}
.login-emp-nombre{font-size:13.5px;font-weight:600;color:#2a2722;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.login-emp-slug{font-size:11px;color:#6f6a62}
.login-emp-cambiar{background:#f2f0ea;border:1px solid #d8d4cc;color:#4a463e;padding:6px 12px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer}
.login-emp-lista{border-top:1px solid #ece9e2;max-height:210px;overflow-y:auto}
.login-emp-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 13px;border:0;border-bottom:1px solid #f4f2ec;background:#fff;cursor:pointer}
.login-emp-item.is-active{background:#f4f8f4}
.login-emp-item .login-emp-nombre{font-size:13px}
.login-emp-item .login-emp-slug{font-size:11px}
.login-emp-badge{font-size:11px;font-weight:700;color:#2f6d3c}

/* ---------- APP SHELL ---------- */
.shell{display:flex;height:100vh;overflow:hidden}
.side{width:250px;flex-shrink:0;background:#232a24;color:#c9cdc4;display:flex;flex-direction:column}
.side .top{padding:18px 18px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.lines{padding:12px 12px 4px}
.lines .h,.nav .h{font-size:11px;font-weight:700;letter-spacing:.08em;color:#6f766c;padding:6px 4px 8px}
.lines .grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.lbtn{display:flex;align-items:center;gap:7px;padding:9px 10px;border:none;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;color:#c9cdc4;background:rgba(255,255,255,.05)}
.lbtn .dot{width:8px;height:8px;border-radius:50%}
.nav-search{position:relative;margin:10px 12px 0}
.nav-buscar{
  width:100%;box-sizing:border-box;
  padding:8px 28px 8px 32px;
  border:1px solid rgba(255,255,255,.12);border-radius:8px;
  background-color:rgba(255,255,255,.06);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b9187' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4 4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:10px center;background-size:14px;
  color:#e7ebe3;font-size:13px;font-weight:500;
}
.nav-buscar::placeholder{color:#6f766c}
.nav-buscar:focus{border-color:#3d7a4e;background-color:rgba(255,255,255,.09)}
.nav-buscar-x{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:22px;height:22px;border:0;border-radius:6px;padding:0;
  background:transparent;color:#8b9187;font-size:16px;line-height:1;cursor:pointer;
}
.nav-buscar-x:hover{background:rgba(255,255,255,.08);color:#e7ebe3}
.nav-vacio{padding:16px 8px;font-size:12.5px;color:#6f766c;text-align:center;line-height:1.45}
/* Buscando un lote / pedido: aviso arriba y las secciones donde aparece, marcadas */
.nav-datos-info{margin:4px 6px 8px;padding:7px 10px;border-radius:8px;background:rgba(61,122,78,.18);color:#cfe3d3;font-size:11.5px;line-height:1.4}
.nbtn.nav-dato::after{content:'🔎';margin-left:auto;font-size:10px;opacity:.75}
.nav-off{display:none !important}
.nav{flex:1;padding:10px 12px;overflow-y:auto}
.nav-grupo{margin:0 0 2px}
.nav-grupo-tog{
  display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  padding:10px 8px 8px;margin:0;border:0;border-radius:8px;cursor:pointer;
  background:transparent;color:#8b9187;font-size:11px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;text-align:left;
}
.nav-grupo-tog:hover{background:rgba(255,255,255,.05);color:#c9cdc4}
.nav-grupo-chev{font-size:11px;line-height:1;transition:transform .15s ease;color:#6f766c}
.nav-grupo.is-open>.nav-grupo-tog .nav-grupo-chev{transform:rotate(90deg)}
.nav-grupo-body{display:none;padding:0 0 4px}
.nav-grupo.is-open>.nav-grupo-body{display:block}
/* Submenú dentro de un grupo (Contabilidad › Ventas, Compras…) */
.nav-sub{margin-left:8px;border-left:1px solid rgba(255,255,255,.08)}
.nav-sub>.nav-grupo-tog{padding:7px 8px 5px;font-size:10.5px;letter-spacing:.06em;text-transform:none;color:#a7ada3;font-weight:600}
.nav-sub .nbtn{padding:8px 10px;font-size:13px}
.nbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;border:none;border-radius:8px;cursor:pointer;font-size:13.5px;font-weight:500;color:#c9cdc4;background:transparent}
.nbtn:hover{background:rgba(255,255,255,.06)}
.nbtn.active{background:rgba(255,255,255,.08);color:#fff;font-weight:600}
.nbtn .dot{width:7px;height:7px;border-radius:2px;background:#5a615a}
.nbtn.active .dot{background:currentColor}
.nbtn .cnt{margin-left:auto;font-size:11px;opacity:.6}
/* Pin para fijar la sección arriba: aparece al pasar el mouse; fijo, siempre tenue */
.nbtn .npin{margin-left:auto;font-size:11px;line-height:1;padding:3px;border-radius:5px;opacity:0;filter:grayscale(1);transition:opacity .12s}
.nbtn .cnt+.npin{margin-left:6px}
.nbtn:hover .npin,.nbtn:focus-visible .npin{opacity:.55}
.nbtn .npin:hover{opacity:1;background:rgba(255,255,255,.1)}
.nbtn .npin.is-on{opacity:.55;filter:none}
@media (hover:none){.nbtn .npin{opacity:.35}}
.nav-fijados{padding:0 0 6px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.08)}
.nav-fijados-h{padding:8px 12px 4px;font-size:10.5px;font-weight:700;letter-spacing:.08em;color:#6f766c}
.nav-seccion{padding:14px 12px 4px;font-size:10.5px;font-weight:700;letter-spacing:.1em;color:#6f766c;border-top:1px solid rgba(0,0,0,.06);margin-top:6px}
.side .foot{padding:12px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:#8b9187}
.side .foot .u{color:#c9cdc4;font-weight:600}
.side .foot a{color:#8b9187;cursor:pointer;display:inline-block;margin-top:6px}

.main{flex:1;display:flex;flex-direction:column;min-width:0}
.hdr{min-height:64px;flex-shrink:0;background:#fff;border-bottom:1px solid #e5e1d8;display:flex;align-items:center;flex-wrap:wrap;padding:10px 24px;gap:10px 16px}
.hdr .bar{width:5px;height:34px;border-radius:3px;background:#3d7a4e;flex-shrink:0}
.hdr>div:nth-child(2){flex:1;min-width:150px;overflow:hidden}
.hdr h2{font-size:16px;margin:0;line-height:1.1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.hdr .sub{font-size:12px;color:#6f6a62;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.hdr .ctrls{margin-left:auto;display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.hdr .ctrls .lbl{margin-bottom:3px}
.hdr .ctrls input,.hdr .ctrls select{padding:6px 9px;border:1px solid #d8d4cc;border-radius:7px;font-size:13px;background:#fff}
.content{flex:1;overflow-y:auto;padding:24px}
.wrap{max-width:1080px;margin:0 auto}
.wrap.wrap-wide{max-width:1280px}
.wrap.wrap-full{max-width:none;width:100%}
.wrap.wrap-ct{max-width:1560px;width:100%;min-width:0;margin:0 auto;overflow-x:hidden}

/* cards / grids */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
/* Dashboard ejecutivo: 4 métricas en 2×2 como el panel gerencial */
.ejec-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}
.ejec-kpi{padding:18px 20px;display:flex;flex-direction:column;min-width:0}
.ejec-kpi-link{cursor:pointer}
.ejec-kpi-link.on{border-color:#3d7a4e;box-shadow:0 0 0 1px #3d7a4e}
.btn.ejec-nav:disabled{opacity:.4;cursor:default}
.ejec-form{border:0;background:transparent;padding:0;margin:0 8px 3px 0;color:#1f4e86;font-weight:700;cursor:pointer;text-decoration:underline;font-family:inherit;font-size:11.5px}
.ejec-form:hover{color:#163a64}
.ejec-parlink{cursor:pointer}
.cp-trow.ejec-parlink:hover,.cp-hbar-row.ejec-parlink:hover{background:#fdf6f2}
button.ejec-parlink{border:0;background:transparent;padding:0;font:inherit;color:#c0562e;font-weight:700;text-decoration:underline;cursor:pointer}
.modal.ejec-fm .box{max-width:960px}
.modal.ejec-fm.ejec-par .box{max-width:640px}
.ejec-fm-form{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:12px 12px 4px;margin-bottom:14px}
.ejec-fm-form-h{font-size:15px;font-weight:700;color:#1a3358}
.ejec-fm-form-s{font-size:12px;color:#6f6a62;margin:2px 0 10px}
.ejec-fm-parada{background:#fff;border:1px solid #e5e1d8;border-radius:8px;padding:8px 10px;margin-bottom:8px}
.ejec-fm-parada .top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}
.ejec-fm-parada .top b{color:#1a3358}
.ejec-fm-parada .sub{margin-top:3px;font-size:12.5px;color:#6a655c}
.modal.ejec-fm .mb{padding:12px 16px 16px}
.ejec-fm-sum{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ejec-fm-chip{background:#fff;border:1px solid #e5e1d8;border-radius:8px;padding:6px 10px;min-width:108px;flex:1 1 108px}
.ejec-fm-chip .k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7a746b}
.ejec-fm-chip .v{font-size:14px;font-weight:700;margin-top:2px;color:#1f1c18;line-height:1.25}
.ejec-fm-nav{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:0;z-index:2;background:#f6f4ef;padding:2px 0 8px;margin-bottom:8px}
.ejec-fm-nav button{border:1px solid #e5e1d8;background:#fff;color:#1a3358;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700;cursor:pointer;font-family:inherit}
.ejec-fm-nav button:hover,.ejec-fm-nav button.on{background:#1a3358;color:#fff;border-color:#1a3358}
.ejec-fm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.ejec-fm-sec{background:#fff;border:1px solid #e5e1d8;border-radius:10px;padding:10px 12px 8px;margin-bottom:10px;scroll-margin-top:44px}
.ejec-fm-grid .ejec-fm-sec{margin-bottom:0}
.ejec-fm-sec h4{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#1a3358}
.ejec-fm-sub{margin:8px 0 5px;font-size:11px;font-weight:700;color:#6a655c}
.ejec-fm-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px}
.ejec-fm-kv > div{background:#faf9f5;border-radius:7px;padding:5px 8px;min-width:0}
.ejec-fm-kv .k{display:block;font-size:11px;line-height:1.25;color:#6f6a62}
.ejec-fm-kv .v{display:block;margin-top:2px;font-size:12.5px;font-weight:700;line-height:1.3;word-break:break-word}
.ejec-fm-none{font-size:12px;color:#7a746b}
.ejec-fm-empty{margin-top:8px;font-size:11.5px;color:#6f6a62}
.ejec-fm-empty summary{cursor:pointer;font-weight:600}
.ejec-fm-empty div{margin-top:4px;line-height:1.45}
.ejec-fm-chk{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.ejec-fm-chk > div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0;border-bottom:1px solid #f4f2ec;font-size:12px}
.ejec-fm-chk b{white-space:nowrap;font-size:11px}
.ejec-fm-prods{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ejec-fm-prod{border:1px solid #e5e1d8;border-radius:8px;overflow:hidden}
.ejec-fm-prod .hd{background:#f7f9fc;padding:8px 10px}
.ejec-fm-prod .hd b{font-size:13px}
.ejec-fm-mini{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:5px}
.ejec-fm-mini div{font-size:11px;color:#6f6a62}
.ejec-fm-mini b{display:block;color:#1f1c18;font-size:12px}
.ejec-fm-prod .bd{padding:4px 10px 8px}
.ejec-fm-line{display:grid;gap:6px;padding:4px 0;border-bottom:1px solid #f4f2ec;font-size:12px;align-items:center}
.ejec-fm-line.head{font-size:11px;font-weight:700;text-transform:uppercase;color:#6f6a62;border-bottom:1px solid #e5e1d8}
.ejec-fm-ops{grid-template-columns:minmax(120px,1.3fr) 100px minmax(90px,1fr) 58px 58px 52px 52px 58px;min-width:680px}
.ejec-fm-par{grid-template-columns:64px 64px 52px 120px minmax(100px,1fr) 90px;min-width:560px}
.ejec-fm-rech{grid-template-columns:88px 96px 72px minmax(100px,1fr)}
.ejec-fm-cons{grid-template-columns:96px minmax(80px,1fr) 96px 64px 44px}
@media (max-width:860px){
  .ejec-fm-grid,.ejec-fm-prods,.ejec-fm-chk{grid-template-columns:1fr}
}
.ejec-kpi .v{font-size:28px;font-weight:700;margin-top:10px;line-height:1.15;color:#1f1c18}
.ejec-kpi .v small{font-size:14px;font-weight:500;color:#7a746b;margin-left:2px}
.ejec-kpi-nota{font-size:11.5px;color:#6f6a62;margin-top:8px;line-height:1.45;min-height:1.35em;word-break:break-word}
.ejec-kpi-cmp{display:flex;flex-direction:column;gap:5px;margin-top:auto;padding-top:12px;border-top:1px solid #f0ede6}
.ejec-kpi-cmp > div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px}
.ejec-kpi-cmp > div > span:first-child{color:#7a746b}
.ejec-kpi-cmp .mono{font-weight:700;white-space:nowrap}
.card{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:18px}
.card .k{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#7a746b}
.card .v{font-size:26px;font-weight:600;margin-top:8px}
.card .v small{font-size:13px;color:#7a746b;font-weight:400}
.card .hint{font-size:12px;color:#6f6a62;margin-top:6px}
.two{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.sec-title{font-size:14px;font-weight:700;margin:0 0 14px}
.bar-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.bar-row .nm{width:140px;font-size:12.5px;color:#4a463e;flex-shrink:0}
.bar-row .tr{flex:1;height:22px;background:#f0ede6;border-radius:5px;overflow:hidden}
.bar-row .tr i{display:block;height:100%;border-radius:5px}
.bar-row .vl{width:90px;text-align:right;font-size:13px;flex-shrink:0}

/* Disponibilidad — KPI + desglose a ancho completo */
.dp-kpis{align-items:stretch;margin-bottom:14px}
.dp-kpi-card{display:flex;flex-direction:column;min-width:0}
.dp-kpi-card.is-open{border-color:#3d7a4e;box-shadow:0 0 0 1px #3d7a4e22}
.dp-kpi-top{display:flex;align-items:flex-start;gap:10px}
.dp-kpi-btn{background:#f2f0ea;border:1px solid #d8d4cc;color:#4a463e;padding:5px 11px;border-radius:7px;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0}
.dp-kpi-btn:hover{background:#e8f0e9;border-color:#b8d0bb;color:#2f6d3c}
.dp-kpi-card.is-open .dp-kpi-btn{background:#e4f0e6;border-color:#bfe0c6;color:#2f6d3c}
.dp-kpi-panel{padding:0;overflow:hidden;margin-bottom:18px}
.dp-kpi-panel-head{padding:16px 20px 12px;display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;border-bottom:1px solid #f0ede6;background:#faf9f5}
.dp-kpi-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dp-kpi-table{min-width:560px;padding:4px 0 8px}
.dp-kpi-row{display:grid;gap:12px;padding:12px 20px;border-bottom:1px solid #f4f2ec;font-size:13px;align-items:center}
.dp-kpi-row:last-child{border-bottom:0}
.dp-kpi-head{background:#faf9f5;border-bottom:1px solid #e5e1d8;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#6f6a62;padding-top:10px;padding-bottom:10px}

/* Control de producción — filtros (estilo dashboard) + metas / paradas */
.cp-wrap{margin-bottom:18px}
.cp-nav{padding:16px 18px 14px;margin-bottom:14px}
.cp-nav-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.cp-nav-title{font-size:16px;font-weight:700;color:#2a2722}
.cp-nav-sub{font-size:11.5px;color:#6f6a62;margin-top:3px}
.cp-nav-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
.cp-live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#6f6a62}
.cp-live i{width:7px;height:7px;border-radius:50%;background:#3d7a4e;flex-shrink:0}
.cp-per-bar{display:flex;gap:6px}
.cp-per{
  padding:7px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;
  border:1px solid #d8d4cc;background:#fff;color:#4a463e
}
.cp-per.on{background:#3d7a4e;border-color:#3d7a4e;color:#fff}
.cp-lins{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.cp-turs{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.cp-turs-lbl{font-size:11px;font-weight:700;text-transform:uppercase;color:#7a746b;margin-right:2px}
.cp-lin,.cp-tur{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  padding:9px 15px;border-radius:10px;cursor:pointer;text-align:left;
  border:1px solid #e0dcd3;background:#fff;color:#4a463e;min-width:132px
}
.cp-tur{padding:8px 14px;border-radius:9px;min-width:118px}
.cp-lin.on,.cp-tur.on{color:#fff}
.cp-tur.on{background:#4a463e;border-color:#4a463e}
.cp-lin-t{font-size:12.5px;font-weight:700}
.cp-tur .cp-lin-t{font-size:12px}
.cp-lin-s{font-size:11px;opacity:.65}
.cp-lin.on .cp-lin-s,.cp-tur.on .cp-lin-s{opacity:.9}
.cp-panel{padding:22px 22px 18px;margin-bottom:0}
.cp-title{font-size:15px;font-weight:800;letter-spacing:.06em;color:#1a3358;margin:0 0 4px}
.cp-sub{font-size:12.5px;color:#6f6a62;margin:0 0 18px}
.cp-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}
.cp-card{
  background:#fff;border:1px solid #e8e4dc;border-radius:14px;padding:16px 16px 14px;
  box-shadow:0 8px 22px rgba(26,51,88,.06);min-width:0
}
.cp-card-tit{font-size:13px;font-weight:650;color:#4a463e;line-height:1.35;min-height:2.6em}
.cp-card-pct{font-size:30px;font-weight:800;margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cp-card-num{font-size:12.5px;color:#6f6a62;margin-top:4px;line-height:1.4}
.cp-bar{height:5px;background:#efebe4;border-radius:99px;overflow:hidden;margin-top:14px}
.cp-bar i{display:block;height:100%;border-radius:99px}
.cp-paradas{border-top:1px solid #f0ede6;padding-top:18px}
.cp-paradas-h{margin-bottom:14px}
.cp-hbar{display:flex;flex-direction:column;gap:11px;margin-bottom:4px}
.cp-hbar-row{display:grid;grid-template-columns:minmax(140px,200px) minmax(0,1fr) minmax(120px,150px);gap:12px;align-items:center}
.cp-hbar-lab{font-size:13px;font-weight:650;color:#2a2722;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-hbar-track{height:16px;background:#f3f0ea;border-radius:5px;overflow:hidden}
.cp-hbar-track i{display:block;height:100%;border-radius:5px;min-width:2px}
.cp-hbar-val{font-size:12.5px;font-weight:700;color:#4a463e;text-align:right;white-space:nowrap}
.cp-hbar-val span{color:#6f6a62;font-weight:600}
.cp-hbar-axis{display:grid;grid-template-columns:minmax(140px,200px) minmax(0,1fr) minmax(120px,150px);gap:12px;margin:2px 0 16px}
.cp-hbar-axis-scale{display:flex;justify-content:space-between;font-size:11px;color:#7a746b;font-family:ui-monospace,monospace}
.cp-table{border:1px solid #ece8e0;border-radius:10px;overflow:hidden;margin-top:4px}
.cp-thead,.cp-trow{
  display:grid;grid-template-columns:minmax(0,1.6fr) 110px 170px;gap:10px;
  padding:10px 14px;font-size:12.5px;align-items:center
}
.cp-thead{background:#f7f5f0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#6f6a62}
.cp-trow{border-top:1px solid #f0ede6;background:#fff}
.cp-ttotal{background:#fdf6f2;font-weight:800;color:#c0562e;border-top:1px solid #f0d5c8}
.cp-foot{margin-top:14px}
.cp-foot-tot{font-size:13px;font-weight:800;color:#c0562e;margin-bottom:5px}
.cp-foot-fx{font-size:11.5px;line-height:1.55;color:#6f6a62}
@media(max-width:980px){
  .cp-cards{grid-template-columns:1fr}
  .cp-hbar-row,.cp-hbar-axis{grid-template-columns:1fr}
  .cp-hbar-axis-scale{padding:0}
  .cp-nav-acts{margin-left:0;width:100%}
  .cp-lins,.cp-turs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .cp-lin,.cp-tur{flex-shrink:0}
  .cp-thead,.cp-trow{grid-template-columns:1fr 72px 110px}
}

/* forms */
.formsec{background:#fff;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden;margin-bottom:18px}
.formsec > h3{background:#232a24;color:#fff;padding:11px 20px;font-size:13px;font-weight:700;letter-spacing:.03em;margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.formsec-acts{margin-left:auto;display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.formsec .body{padding:20px;min-width:0}
.subh{font-size:12px;font-weight:700;color:#4a463e;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid #eee}
.subh.dy-subh-incompleta{color:#a03050;border-bottom-color:#e6bfc7}
.subh.dy-subh-incompleta::after{content:' · pendiente';font-size:11px;font-weight:500}
.grid{display:grid;gap:14px}
.fld{min-width:0}
.fld input,.fld select,.fld textarea{width:100%;max-width:100%;padding:9px 11px;border:1px solid #d8d4cc;border-radius:7px;font-size:14px;background:#fff;box-sizing:border-box}
.cell{padding:8px;border:1px solid #d8d4cc;border-radius:6px;font-size:13px;width:100%;max-width:100%;background:#fff;box-sizing:border-box;min-width:0}
input[type="text"],textarea,.fld input,.cell{text-transform:uppercase}
input.nav-buscar{text-transform:none}
input[type="email"],input[type="password"]{text-transform:none}
/* Al tocar el ojo la contraseña pasa a type=text: se muestra tal cual se escribió */
.login-pass input,#rstConf{text-transform:none}
.rowtbl{display:grid;gap:8px;margin-bottom:8px;align-items:center}
.rowhd{font-size:11px;font-weight:600;text-transform:uppercase;color:#6f6a62;margin-bottom:6px}
.xbtn{background:none;border:1px solid #eecdd3;color:#c47;border-radius:6px;cursor:pointer;font-size:15px;height:34px;flex-shrink:0}
.addbtn{margin-left:auto;background:#3d7a4e;color:#fff;border:none;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.summary{display:grid;gap:12px;margin-top:20px;background:#faf9f5;border:1px solid #eee;border-radius:10px;padding:16px}
.summary .k{font-size:11px;font-weight:600;text-transform:uppercase;color:#7a746b}
.summary .v{font-size:19px;font-weight:600;margin-top:5px}
.chk-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:11px 0;border-bottom:1px solid #f0ede6}
.chk-row .it{flex:1;min-width:180px;font-size:13.5px}
.chk-row label{font-size:12.5px;display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}
.actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding-bottom:20px}

/* Formulario diario/edición: grillas densas, no apiladas */
.gcols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gcols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gcols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gcols-1{grid-template-columns:minmax(0,1fr)}
.form-ped-card{grid-template-columns:minmax(280px,440px) minmax(0,1fr)}
/* Buscador del pedido de envasado */
.pedbus{position:relative}
.pedbus .pedbus-in{width:100%;padding:9px 34px 9px 11px;border:1px solid #d8d4cc;border-radius:7px;font-size:14px;background:#fff;box-sizing:border-box;text-transform:none!important}
.pedbus .pedbus-in:focus{outline:0;border-color:#1f4e86;box-shadow:0 0 0 3px rgba(31,78,134,.14)}
.pedbus.con .pedbus-in{font-weight:600;color:#1f4e86}
#turnoForm .pedbus .pedbus-in{padding-right:34px}
.pedbus-x{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;border-radius:6px;background:transparent;color:#6f6a62;font-size:18px;line-height:1;cursor:pointer}
.pedbus-x:hover{background:#f2f0ea;color:#2a2722}
.pedbus-x[hidden]{display:none}
.pedbus-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);max-height:300px;overflow-y:auto;background:#fff;border:1px solid #d8d4cc;border-radius:9px;box-shadow:0 12px 30px rgba(0,0,0,.14);padding:4px}
.pedbus-list[hidden]{display:none}
.pedbus-op{padding:8px 10px;border-radius:6px;cursor:pointer}
.pedbus-op.act,.pedbus-op:hover{background:#eef3fa}
.pedbus-op.sel{box-shadow:inset 3px 0 0 #1f4e86}
.pedbus-op.off{cursor:not-allowed;opacity:.55}
.pedbus-op.off:hover{background:transparent}
.pedbus-l1{display:flex;gap:8px;align-items:baseline;font-size:13.5px;min-width:0}
.pedbus-l1 b{color:#1f4e86;font-weight:600;flex-shrink:0}
.pedbus-l1 span{color:#2a2722;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pedbus-l2{font-size:11.5px;color:#6f6a62;margin-top:2px}
.pedbus-mut{color:#b5b0a5}
.pedbus-cer{color:#a03050;font-weight:600}
.pedbus-op mark{background:#fde9a8;color:inherit;border-radius:2px;padding:0 1px}
.pedbus-vacio{padding:12px 10px;font-size:12.5px;color:#6f6a62}
.sy-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin:0 -2px;padding-bottom:6px}
.sy-scroll > .rowhd,.sy-scroll > .rowtbl,.sy-scroll > #opRows,.sy-scroll > #parRows{min-width:inherit}
#turnoForm,#turnoForm .formsec,#turnoForm .body{max-width:100%}
#turnoForm .grid{gap:12px}
#turnoForm .formsec{margin-bottom:14px}
#turnoForm .formsec > h3{padding:9px 16px;font-size:12.5px}
#turnoForm .formsec .body{padding:14px 16px}
#turnoForm .fld input,#turnoForm .fld select,#turnoForm .fld textarea{padding:8px 10px;font-size:13.5px}
#turnoForm .subh{margin:4px 0 8px;padding-bottom:6px}
#turnoForm .oprow .cell,#turnoForm .oprow select.cell{overflow:hidden;text-overflow:ellipsis}

@media(max-width:1100px){
  .gcols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gcols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-ped-card{grid-template-columns:1fr}
  .formsec > h3{padding:11px 14px}
  .formsec-acts{width:100%;margin-left:0;justify-content:flex-start}
  .formsec .body{padding:16px}
  .kpis,.dp-kpis{grid-template-columns:repeat(2,1fr)}
  .ejec-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dp-kpi-table{min-width:480px}
}

/* Trazabilidad: barra horizontal para recorrer todas las columnas */
.tz-hnav-wrap{
  position:sticky;top:0;z-index:6;
  background:#f6f4ef;padding:0 0 10px;margin:0 0 2px
}
.tz-hnav{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;
  background:#fff;border:1px solid #e5e1d8;border-radius:10px;
  box-shadow:0 6px 18px rgba(35,42,36,.06)
}
.tz-hnav-btn{
  flex:0 0 auto;width:32px;height:32px;padding:0;
  border:1px solid #d8d4cc;border-radius:8px;background:#faf9f5;
  color:#4a463e;font-size:16px;font-weight:700;cursor:pointer;line-height:1
}
.tz-hnav-btn:hover{background:#e4f0e6;border-color:#b7cbb9;color:#2f6d3c}
.tz-hnav-btn:disabled{opacity:.35;cursor:default;background:#faf9f5;border-color:#e5e1d8;color:#7a746b}
.tz-hnav-cols{
  flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;padding:2px 0;
  scrollbar-width:thin
}
.tz-hnav-col{
  flex:0 0 auto;padding:6px 10px;border:1px solid #e0dcd3;border-radius:7px;
  background:#fff;color:#6a655c;font-size:11px;font-weight:700;cursor:pointer;
  white-space:nowrap;letter-spacing:.01em
}
.tz-hnav-col:hover{border-color:#b7cbb9;color:#2f6d3c;background:#f4f8f4}
.tz-hnav-col.on{background:#4a463e;border-color:#4a463e;color:#fff}
.tz-hnav-track{
  position:relative;height:6px;margin:8px 10px 0;background:#efebe4;border-radius:99px;overflow:hidden
}
.tz-hnav-fill{position:absolute;top:0;left:0;height:100%;background:#3d7a4e;border-radius:99px;min-width:28px}
.tz-scroll{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}
.tbl:has(.tz-scroll){overflow:hidden}
.tz-per-bar{display:flex;flex-wrap:wrap;gap:7px}
.tz-per{
  padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;
  border:1px solid #e0dcd3;background:#fff;color:#4a463e
}
.tz-per:hover{border-color:#b7cbb9;color:#2f6d3c;background:#f4f8f4}
.tz-per.on{background:#3d7a4e;border-color:#3d7a4e;color:#fff}
.tz-pager{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  margin:12px 0 4px;padding:10px 4px
}
.tz-pager-btn{
  min-width:34px;height:34px;padding:0 10px;border-radius:8px;cursor:pointer;
  border:1px solid #d8d4cc;background:#fff;color:#4a463e;font-size:13px;font-weight:700
}
.tz-pager-btn:hover{background:#e4f0e6;border-color:#b7cbb9;color:#2f6d3c}
.tz-pager-btn.on{background:#4a463e;border-color:#4a463e;color:#fff}
.tz-pager-btn:disabled{opacity:.35;cursor:default;background:#fff}
.tz-pager-gap{color:#7a746b;padding:0 4px;font-weight:700}
.tz-pager-info{margin-left:auto;font-size:12px;color:#6f6a62}

/* tables */
.tbl{background:#fff;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden}
.tbl .th,.tbl .tr2{display:grid;align-items:center;gap:0}
.tbl .th{background:#faf9f5;border-bottom:1px solid #e5e1d8;padding:14px 20px;font-size:11px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:#6f6a62}
.tbl .tr2{padding:15px 20px;border-bottom:1px solid #f0ede6;font-size:13.5px;cursor:pointer}

/* Horas trabajadas: columnas fluidas y compactas para no forzar scroll */
.hh-box{container-type:inline-size;container-name:hh;width:100%;min-width:0}
.hh-tbl{overflow:hidden;border:0;border-radius:0;width:100%;min-width:0}
.hh-tbl .th,.hh-tbl .tr2{
  width:100%;min-width:0;gap:6px 8px;padding:8px 12px;align-items:center
}
.hh-tbl .th{font-size:11px;line-height:1.2;letter-spacing:.02em}
.hh-tbl .th{font-weight:600}
.hh-tbl .tr2 [style*="font-weight:700"]{font-weight:600!important}
.hh-tbl .tr2 [style*="font-weight:600"]{font-weight:500!important}
.hh-tbl .tr2{font-size:12.5px;padding:8px 12px}
.hh-tbl .th > div,.hh-tbl .tr2 > div{min-width:0}
.hh-clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hh-tbl.hh-op .th,.hh-tbl.hh-op .tr2{
  grid-template-columns:
    minmax(0,1.5fr) minmax(0,.8fr) 52px 34px 52px 46px 38px
    minmax(0,.65fr) 46px minmax(0,.6fr) minmax(0,.65fr) 78px;
}
.hh-tbl.hh-ar .th,.hh-tbl.hh-ar .tr2{
  grid-template-columns:
    minmax(0,1.3fr) 58px 40px 52px 38px minmax(0,.7fr) 50px minmax(0,.65fr) minmax(0,.7fr);
}
.hh-tbl.hh-dia .th,.hh-tbl.hh-dia .tr2{
  grid-template-columns:
    92px minmax(0,1.2fr) 58px 52px minmax(0,.7fr) 50px minmax(0,.65fr) minmax(0,.7fr);
}
.hh-orig{
  display:grid;width:100%;min-width:0;gap:6px 8px;padding:7px 10px;align-items:center;
  grid-template-columns:
    52px minmax(0,1.1fr) minmax(0,.7fr) 70px 86px minmax(0,.9fr)
    50px 44px 56px 42px 56px 70px 52px;
}
.hh-orig > div{min-width:0}
.hh-mx{width:100%;min-width:0;overflow:hidden}
.hh-mx-row{
  display:grid;width:100%;min-width:0;gap:6px 8px;padding:8px 12px;align-items:center
}
@container hh (max-width: 980px){
  .hh-tbl.hh-op [data-hhcol="2"],
  .hh-tbl.hh-op [data-hhcol="5"],
  .hh-tbl.hh-op [data-hhcol="7"]{display:none}
  .hh-tbl.hh-op .th,.hh-tbl.hh-op .tr2{
    grid-template-columns:
      minmax(0,1.4fr) 52px 34px 46px minmax(0,.7fr) 46px minmax(0,.6fr) minmax(0,.65fr) 78px;
  }
  .hh-tbl.hh-ar [data-hhcol="5"]{display:none}
  .hh-tbl.hh-ar .th,.hh-tbl.hh-ar .tr2{
    grid-template-columns:
      minmax(0,1.3fr) 58px 40px 52px minmax(0,.7fr) 50px minmax(0,.65fr) minmax(0,.7fr);
  }
  .hh-orig [data-hhcol="6"]{display:none}
  .hh-orig{
    grid-template-columns:
      52px minmax(0,1.1fr) minmax(0,.7fr) 70px 86px
      50px 44px 56px 42px 56px 70px 52px;
  }
}
@container hh (max-width: 760px){
  .hh-tbl .th{display:none}
  .hh-tbl .tr2{
    display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;padding:10px 12px;
  }
  .hh-tbl .tr2 > [data-hhcol]{display:block}
  .hh-tbl .tr2 > [data-hhcol]::before{
    content:attr(data-hhl);display:block;font-size:11px;font-weight:700;
    text-transform:uppercase;color:#6f6a62;margin-bottom:1px;letter-spacing:.03em
  }
  .hh-tbl .tr2 > [data-hhcol="1"]{grid-column:1/-1}
  .hh-tbl.hh-dia .tr2 > [data-hhcol="2"]{grid-column:1/-1}
}
.reg-box{container-type:inline-size;container-name:reg;width:100%;min-width:0}
.ct-shell .reg-box{margin-top:0}
#regHNavWrap{margin-bottom:10px}
#regHNavWrap.is-off{display:none}
#regScroll{width:100%;min-width:0}
#regScroll .th,#regScroll .reg-tr{
  width:100%;min-width:0;
  gap:6px 8px;padding:0 12px;align-items:start;
  grid-template-columns:
    minmax(0,.5fr) minmax(0,.62fr) minmax(0,.42fr) minmax(0,.7fr)
    minmax(0,1.15fr) minmax(0,.55fr) minmax(0,.48fr) minmax(0,.52fr)
    minmax(0,.52fr) minmax(0,.95fr) minmax(0,1.55fr) minmax(0,1.05fr);
}
#regScroll .th{
  min-height:36px;height:auto;background:#faf9f5;border-bottom:1px solid #e5e1d8;
  font-size:11px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:#6f6a62;
  position:sticky;top:0;z-index:2;align-items:end;padding-top:8px;padding-bottom:8px;
}
#regScroll .reg-h{
  min-width:0;max-width:100%;overflow:hidden;overflow-wrap:anywhere;word-break:break-word;
  line-height:1.2;white-space:normal;
}
#regScroll .reg-h.right{text-align:right}
#regScroll .reg-tr{min-height:48px;background:#fff;border-top:1px solid #eef0f4;padding-top:8px;padding-bottom:8px}
#regScroll .reg-tr.reg-alt{background:#fbfaf7}
#regScroll .reg-tr:hover,#regScroll .reg-tr.reg-alt:hover{background:#f4f2ec}
#regScroll .reg-c{
  min-width:0;max-width:100%;overflow:hidden;overflow-wrap:anywhere;word-break:break-word;
  line-height:1.3;font-size:12px;font-weight:400;color:#2a2722;white-space:normal;
}
#regScroll .reg-c.muted{color:#6f6a62;font-size:11.5px}
#regScroll .reg-c.lote{font-weight:500;color:#3d7a4e;font-size:11.5px}
#regScroll .reg-c.ellipsis{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;text-overflow:ellipsis;white-space:normal;
}
#regScroll .reg-c.nowrap{white-space:normal;color:#4a463e;font-size:11.5px}
#regScroll .reg-c.strong{font-weight:500}
#regScroll .reg-c.bad{font-weight:500;color:#a03050}
#regScroll .reg-c.warn{font-weight:500;color:#b5772a}
#regScroll .reg-c.dim{color:#7a746b}
#regScroll .reg-c.right{justify-self:stretch;text-align:right}
#regScroll .reg-lock{margin-left:4px;font-size:11px}
#regScroll .reg-chip{
  display:inline-flex;align-items:center;max-width:100%;height:auto;min-height:22px;padding:2px 7px;
  font-size:11px;font-weight:500;border-radius:7px;white-space:normal;line-height:1.2;
}
#regScroll .reg-chip.rep{background:#fef6e6;color:#9a5a14}
#regScroll .reg-chip.nor{background:#e8f1ea;color:#2f6d3c}
#regScroll .reg-tag{display:block;font-size:11px;font-weight:500;letter-spacing:.02em;margin-top:1px;color:#6f6a62}
#regScroll .reg-desg{font-size:11px;font-weight:500;line-height:1.4;color:#6f6a62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#regScroll .reg-est{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-start;max-width:100%}
#regScroll .reg-est .ct-pill{
  height:auto;min-height:20px;max-width:100%;padding:2px 6px;font-size:11px;
  white-space:normal;line-height:1.2;overflow:hidden;
}
#regScroll .reg-mov{line-height:1.3;font-size:11.5px;color:#4a463e;font-weight:400;overflow-wrap:anywhere}
#regScroll .reg-mov-t{color:#2a2722;font-weight:500}
#regScroll .reg-mov-w{font-size:11px;color:#b5772a;font-weight:500}
#regScroll .reg-mov-s{font-size:11px;color:#7a5518}
#regScroll .reg-mov > * + *{margin-top:3px}
#regScroll .reg-acts,#regScroll .reg-act{
  display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;
  width:100%;
}
#regScroll .reg-acts .ct-act{
  width:100%;max-width:132px;height:28px;min-height:28px;padding:0 8px;
  justify-content:center;text-align:center;border-radius:2px;
  font-size:11px;line-height:1;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;
}
#regScroll .reg-acts .xbtn{
  width:28px;height:28px;border:0;border-radius:2px;color:#c47;background:transparent;
  cursor:pointer;font-size:16px;line-height:1;padding:0;font-weight:400;
  display:inline-flex;align-items:center;justify-content:center;
}
#regScroll .reg-acts .xbtn:hover{background:#fdeeee}
@container reg (max-width:1180px){
  #regScroll .th,#regScroll .reg-tr{
    grid-template-columns:
      minmax(0,.5fr) minmax(0,.65fr) minmax(0,.4fr) minmax(0,.65fr)
      minmax(0,1.2fr) minmax(0,.55fr) minmax(0,.55fr)
      minmax(0,.85fr) minmax(0,1.6fr) minmax(0,1fr);
  }
  #regScroll [data-regcol="5"],#regScroll [data-regcol="6"],
  #regHNav .tz-hnav-col[data-regjump="5"],#regHNav .tz-hnav-col[data-regjump="6"]{display:none}
}
@container reg (max-width:980px){
  #regScroll .th,#regScroll .reg-tr{
    gap:0 10px;padding-left:14px;padding-right:14px;
    grid-template-columns:
      minmax(0,.5fr) minmax(0,.65fr) minmax(0,.65fr)
      minmax(0,1.2fr) minmax(0,.55fr) minmax(0,.85fr)
      minmax(0,1.4fr) minmax(0,1fr);
  }
  #regScroll [data-regcol="2"],#regScroll [data-regcol="5"],
  #regScroll [data-regcol="6"],#regScroll [data-regcol="8"],
  #regHNav .tz-hnav-col[data-regjump="2"],#regHNav .tz-hnav-col[data-regjump="5"],
  #regHNav .tz-hnav-col[data-regjump="6"],#regHNav .tz-hnav-col[data-regjump="8"]{display:none}
}
@container reg (max-width:820px){
  .tz-hnav-wrap{display:none}
  .tbl:has(#regScroll){overflow:visible;background:transparent;border:0}
  #regScroll{overflow:visible}
  #regScroll .th{display:none}
  #regScroll .reg-tr{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 14px;min-width:0;width:100%;
    padding:14px 14px 16px;margin:0 0 10px;align-items:start;
    border:1px solid #e5e1d8;border-radius:12px;
  }
  #regScroll .reg-tr.reg-alt{background:#fbfaf7}
  #regScroll .reg-c,#regScroll [data-regcol]{
    display:flex;flex-direction:column;align-items:flex-start;gap:3px;
    white-space:normal;overflow:visible;text-overflow:unset;justify-self:stretch;text-align:left;
  }
  #regScroll .reg-c::before{
    content:attr(data-lbl);font-size:11px;font-weight:500;
    letter-spacing:.04em;text-transform:uppercase;color:#6f6a62;
  }
  #regScroll [data-regcol="4"],
  #regScroll [data-regcol="10"],
  #regScroll [data-regcol="11"]{grid-column:1/-1}
  #regScroll .reg-acts{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    justify-items:stretch;align-items:stretch;max-width:280px;
  }
  #regScroll .reg-acts .ct-act{max-width:none}
}
#notaForm{scroll-margin-top:16px}
.ni-toolbar{
  display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;
  margin-bottom:12px;padding:14px 18px
}
.ni-cuenta{font-size:12px;color:#6f6a62;white-space:nowrap;padding-bottom:10px;margin-left:auto}
.ni-tbl{overflow-x:hidden}
.ni-tbl .th{
  background:#f3f0ea;font-size:11px;font-weight:500;letter-spacing:.025em;color:#6f6a60;
  padding:10px 12px;border-bottom:1px solid #e5e1d8
}
.ni-tbl .ni-tr{
  padding:10px 12px;cursor:default;border-bottom:1px solid #efebe4;
  align-items:center;font-size:12px;min-width:0
}
.ni-tbl .ni-tr>div{min-width:0;overflow-wrap:anywhere}
.ni-tbl .ni-tr:nth-child(odd){background:#fff}
.ni-tbl .ni-tr:nth-child(even){background:#fbfaf7}
.ni-tbl .ni-tr:hover{background:#f4f8f4}
.ni-nro{font-weight:600;color:var(--acc,#3d7a4e);letter-spacing:.01em;font-size:12px}
.ni-item{font-weight:500;color:#2a2722;line-height:1.35}
.ni-lote{font-weight:600;color:#2a2722;font-size:11.5px}
.ni-sub{font-size:11px;color:#6f6a62;margin-top:3px}
.ni-cod{color:#1f4e86;font-weight:500}
.ni-pp{color:#2f6d3c;font-weight:500}
.ni-num{font-weight:500;font-size:12px}
.ni-cons{color:#b5772a}
.ni-ok{color:#3d7a4e}
.ni-muted{color:#6f6a62}
.ni-kg{font-size:11px;color:#7a746b;font-weight:500;margin-left:3px}
.ni-badge{
  display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;
  border-radius:20px;white-space:nowrap
}
.ni-badge-env{background:#e4f0e6;color:#2f6d3c}
.ni-badge-proc{background:#e8f0fb;color:#1f4e86}
.ni-act{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end;align-items:center}
.ni-btn{
  height:28px;padding:0 9px;border-radius:7px;font-size:11px;font-weight:500;
  cursor:pointer;border:1px solid transparent
}
.ni-btn-edit{background:#fbf1e3;border-color:#e5cfa6;color:#7a5518}
.ni-btn-edit:hover{background:#f6e4c8}
.ni-btn-print{background:#3d7a4e;border-color:#3d7a4e;color:#fff}
.ni-btn-print:hover{filter:brightness(1.05)}
.ni-btn-trz{background:#e8f0fb;border-color:#b6cdf0;color:#1f4e86}
.ni-btn-trz:hover{background:#d8e7f8}
.ni-btn-del{border:0;color:#c47;background:transparent;font-size:16px;line-height:1;padding:0 4px;cursor:pointer}
.ni-tbl .tz-pager{padding:8px 12px 4px}
@media(max-width:900px){
  .ni-tbl .th,.ni-tbl .ni-tr{grid-template-columns:minmax(76px,.8fr) minmax(100px,1.4fr) minmax(85px,1fr) minmax(64px,.7fr) minmax(64px,.7fr) minmax(96px,.9fr) minmax(110px,1.2fr)!important;gap:6px!important}
  .ni-tbl .th>div:nth-child(5),.ni-tbl .ni-tr>div:nth-child(5){display:none}
}
@media(max-width:640px){
  .ni-tbl .th{display:none}
  .ni-tbl .ni-tr{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:12px}
  .ni-tbl .ni-tr>div:nth-child(3),.ni-tbl .ni-tr>div:nth-child(6),.ni-tbl .ni-tr>div:nth-child(7){grid-column:1/-1}
  .ni-tbl .ni-tr>div:nth-child(4)::before{content:'Ingresado';display:block;font-size:11px;color:#6f6a62;font-weight:500}
  .ni-tbl .ni-tr>div:nth-child(5)::before{content:'Consumido';display:block;font-size:11px;color:#6f6a62;font-weight:500}
  .ni-tbl .ni-tr>div:nth-child(6)::before{content:'Saldo';display:block;font-size:11px;color:#6f6a62;font-weight:500}
  .ni-act{justify-content:flex-start}
}
/* Buscador de ítems en nota de ingreso — panel flotante sobre la página */
.ni-itempick{position:relative;min-width:0}
.ni-itembusca{width:100%;box-sizing:border-box}
.ni-itemlist{
  position:fixed;z-index:9000;
  background:#fff;border:1px solid #d8d4cc;border-radius:9px;
  box-shadow:0 14px 36px rgba(35,42,36,.22);padding:4px;
  overflow-x:hidden;overflow-y:auto;max-height:320px
}
.ni-itemopt{
  display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;
  padding:8px 10px;border:0;border-radius:7px;background:transparent;cursor:pointer;
  font-size:12.5px;color:#2a2722
}
.ni-itemopt:hover,.ni-itemopt:focus{background:#eef4ef;outline:0}
.ni-itemopt b{flex-shrink:0;color:#1f4e86;font-size:12px;min-width:72px}
.ni-itemopt span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ni-itemempty{padding:12px 10px;font-size:12px;color:#6f6a62;line-height:1.4}
.inv-ico{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.inv-ico svg{width:15px;height:15px;display:block}
.inv-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 4px;padding:8px 0 2px}
.inv-leg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#6a655c;font-weight:600}
.inv-fam-h{display:grid;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #f0ede6;cursor:pointer;background:#fff}
.inv-fam-h:hover{background:#faf9f5}
.inv-fam-det{background:#faf9f5;padding:10px 16px 14px 62px;border-bottom:1px solid #eeeae2}
.inv-det-line{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:#4a463e;padding:4px 0;border-bottom:1px dashed #eeeae2}
.inv-det-line:last-of-type{border:0}
.inv-kmov{display:grid;grid-template-columns:88px 100px minmax(140px,1fr) 130px 90px minmax(100px,1fr);gap:8px;padding:7px 4px;font-size:12.5px;align-items:center;border-bottom:1px solid #efebe4}
.inv-kmov-h{font-size:11px;font-weight:700;text-transform:uppercase;color:#6f6a62;padding-bottom:6px}
.right{text-align:right}
.empty{padding:30px;text-align:center;font-size:13px;color:#7a746b}
.dy-win{min-height:240px}
.dy-mini{font-weight:400;font-size:11px;letter-spacing:0;opacity:.8;margin-left:6px}
.dy-note{font-size:12.5px;color:#6a655c;line-height:1.45}
.dy-list-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.dy-list-tools .ct-search{max-width:360px}
.dy-tbl-wrap{border:1px solid #e5e1d8;border-radius:2px;background:#fff}
.dy-tbl{width:100%;min-width:760px;border-collapse:collapse;font-size:12.5px;font-weight:400}
.dy-tbl th{text-align:left;font-size:11px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:#6f6a62;padding:10px 12px;border-bottom:1px solid #e5e1d8;background:#faf9f5}
.dy-tbl td{padding:10px 12px;border-bottom:1px solid #eef0f4;font-weight:400;color:#383b35}
.dy-tbl tbody tr:last-child td{border-bottom:0}
.dy-tbl-empty{text-align:center;color:#6f6a62;padding:18px!important;font-weight:400}
.dy-list-tools>select#clProducto{height:36px;min-width:180px;padding:0 10px;border:1px solid var(--ct-line);border-radius:8px;background:#fff;color:var(--ct-text);font-size:13px}
.cl-table-wrap{max-height:72vh;border:1px solid #e5e1d8;border-radius:2px;background:#fff}
.cl-table{width:100%;min-width:1740px;border-collapse:collapse;font-size:12px;font-weight:400}
.cl-table th{position:sticky;top:0;z-index:2;padding:9px 10px;background:#faf9f5;border-bottom:1px solid #e5e1d8;color:#6f6a62;text-align:left;text-transform:uppercase;letter-spacing:.025em;font-size:11px;font-weight:500;vertical-align:bottom}
.cl-table td{padding:8px;border-bottom:1px solid #eef0f4;color:#383b35;vertical-align:top;font-weight:400}
.cl-table tr:hover td{background:#f8f7f3}
.cl-table .cl-num{width:42px;text-align:center;font-variant-numeric:tabular-nums}
.cl-table .cl-producto{min-width:145px;white-space:nowrap}
.cl-table .cl-req{min-width:330px;line-height:1.45}
.cl-table .cl-expected{min-width:185px;color:#6a655c}
.cl-table select,.cl-table input,.cl-table textarea{min-width:125px;max-width:210px;padding:6px 7px;border:1px solid #deded8;border-radius:3px;background:#fff;color:#383b35;font-family:inherit;font-size:12px;font-weight:400;line-height:1.4}
.cl-table select{min-width:160px}
.cl-table input[type=date]{min-width:145px}
.cl-table textarea{display:block;min-width:230px;max-width:270px;min-height:54px;resize:vertical}
.cl-table td:nth-child(9) input{min-width:190px}
.cl-table td:nth-child(12) textarea{min-width:230px}
#clMsg{font-size:12px}
.dy-row{cursor:pointer}
.dy-row:hover{background:#f4f2ec}
.cl-product-selected{background:#eaf2eb!important;box-shadow:inset 3px 0 #3d7a4e}
.dy-h{font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#6f6a62}
.dy-g-ing,.dy-g-pel,.dy-g-rec,.dy-g-cap,.dy-g-eq,.dy-g-pr,.dy-g-ff,.dy-g-ens,.dy-g-doc{display:grid;gap:6px;align-items:center;margin-bottom:6px}
.dy-g-ing{grid-template-columns:36px minmax(140px,1.4fr) minmax(110px,1fr) 120px minmax(160px,1fr) minmax(140px,1.1fr) minmax(110px,1fr);min-width:980px}
.dy-up{margin-top:12px}
.dy-filebox{position:relative;margin-top:6px}
.dy-file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dy-file-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid #b9d0bc;border-radius:9px;background:linear-gradient(180deg,#fff,#f1f7f1);color:#2f6d3c;font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:0 1px 2px #263b2710;transition:background .15s,border-color .15s,transform .15s}
.dy-file-btn:hover{background:#eaf4eb;border-color:#78a47f;transform:translateY(-1px)}
.dy-file:focus-visible+.dy-file-btn{outline:3px solid #8bbd91;outline-offset:2px}
.dy-file-icon{display:grid;place-items:center;width:21px;height:21px;border-radius:6px;background:#e2efe3;font-size:17px;line-height:1}
.dy-file-help{margin-top:5px;color:#6f6a62;font-size:11px}
.dy-file-list{display:grid;gap:5px;margin-top:7px;max-width:420px}
.dy-file-item{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 8px;border:1px solid #e5e8e2;border-radius:7px;background:#fbfcfa;font-size:11.5px}
.dy-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#383b35}
.dy-file-size{flex:none;color:#6f6a62;font-size:11px}
.dy-file-remove{flex:none;margin-left:auto;padding:3px 7px;border:0;border-radius:5px;background:#fbeeee;color:#a03050;font-size:11px;font-weight:700;cursor:pointer}
.dy-file-remove:hover{background:#f6dede}
.dy-adj{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.dy-adj-i{display:flex;align-items:center;gap:6px}
.dy-adj-ver{background:none;border:0;padding:0;color:#1f4e86;cursor:pointer;font-size:12.5px;text-align:left}
.dy-g-pel{grid-template-columns:120px minmax(160px,1.2fr) minmax(160px,1.2fr) 120px;min-width:640px}
.dy-g-rec,.dy-g-cap{grid-template-columns:minmax(120px,.8fr) minmax(180px,1.4fr) 120px minmax(120px,.9fr);min-width:640px}
.dy-g-cap{grid-template-columns:minmax(160px,1.3fr) minmax(120px,1fr) minmax(120px,1fr) 150px}
.dy-g-eq{grid-template-columns:minmax(120px,.9fr) 130px minmax(180px,1.4fr) minmax(160px,1.2fr) minmax(110px,.8fr);min-width:860px}
.dy-g-pr{grid-template-columns:52px 130px minmax(130px,1fr) minmax(170px,1fr) 130px 250px minmax(150px,1fr) 110px;min-width:1190px}
.dy-sens-cell{display:grid;gap:6px;justify-items:start}
.dy-sens-open{padding:7px 12px;border:1px solid #b9d0bc;border-radius:8px;background:#edf5ee;color:#2f6d3c;font-size:12px;font-weight:700;cursor:pointer}
.dy-sens-open:hover{background:#e1efe3}
.dy-sens-summary{max-width:230px;color:#686b62;font-size:11px;line-height:1.5}
.dy-sensorial[hidden]{display:none}
.dy-sens-modal{width:min(420px,calc(100vw - 32px));padding:0;border:0;border-radius:16px;box-shadow:0 18px 60px #17241740;color:#30352f}
.dy-sens-modal::backdrop{background:#17241770;backdrop-filter:blur(2px)}
.dy-sens-modal>div{padding:22px}
.dy-sens-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}
.dy-sens-head strong{font-size:17px}
.dy-sens-close{width:32px;height:32px;border:0;border-radius:50%;background:#f0f2ed;color:#53584f;font-size:21px;cursor:pointer}
.dy-sens-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dy-sens-fields label{display:grid;gap:6px;color:#555b51;font-size:12px;font-weight:700}
.dy-sens-fields .cell{text-transform:none;min-height:40px}
.dy-sens-actions{display:flex;justify-content:flex-end;margin-top:18px}
.dy-g-ff{grid-template-columns:minmax(180px,1.4fr) 110px minmax(160px,1fr);min-width:520px}
.dy-g-ens{grid-template-columns:130px 120px minmax(130px,1fr) minmax(150px,1.1fr) minmax(170px,1.2fr) 120px minmax(110px,.8fr);min-width:980px}
.dy-g-doc{grid-template-columns:minmax(220px,1.6fr) 140px minmax(140px,1fr) 150px;min-width:700px}
.dy-estado{display:inline-block;margin-top:8px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:.04em}
.dy-estado.pend{background:#fbf1e3;color:#9a5a14}
.dy-estado.ok{background:#e4f0e6;color:#2f6d3c}
.dy-estado.no{background:#fdeeee;color:#a03050}
.dy-firmas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.dy-firma-h{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6f6a62}
.dy-cargo{font-size:12.5px;color:#4a463e;min-height:2.6em;margin:4px 0 8px}
@media(max-width:820px){ .dy-firmas{grid-template-columns:1fr} }
.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px}

/* modal */
.modal{position:fixed;inset:0;background:rgba(35,42,36,.5);z-index:50;display:flex;justify-content:center;align-items:flex-start;padding:24px;overflow-y:auto}
.modal .box{background:#f6f4ef;border-radius:14px;width:100%;max-width:900px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.3)}
.modal .mh{background:#232a24;color:#fff;padding:18px 24px;display:flex;align-items:center;gap:14px;flex-shrink:0}
.modal .mh b{font-weight:500}
.modal .mb{padding:22px 24px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.modal .mf{padding:14px 24px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e5e1d8;background:#faf9f5;flex-shrink:0}

/* Expandir gráfica (Registro diario) — overlay + panel con transición */
.dp-chart-overlay{
  position:fixed;inset:0;z-index:90;
  display:flex;align-items:center;justify-content:center;
  padding:max(12px,2vh) max(12px,2vw);
  background:rgba(35,42,36,0);
  backdrop-filter:blur(0);
  -webkit-backdrop-filter:blur(0);
  transition:background .32s ease, backdrop-filter .32s ease;
  overflow:auto;
}
.dp-chart-overlay.is-open{
  background:rgba(35,42,36,.55);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.dp-chart-panel{
  width:min(1180px,96vw);
  max-height:min(94vh,920px);
  background:#f6f4ef;
  border-radius:16px;
  box-shadow:0 28px 80px rgba(0,0,0,.32);
  display:flex;flex-direction:column;
  overflow:hidden;
  opacity:0;
  transform:translateY(28px) scale(.92);
  transition:opacity .34s cubic-bezier(.22,1,.36,1), transform .38s cubic-bezier(.22,1,.36,1);
}
.dp-chart-overlay.is-open .dp-chart-panel{
  opacity:1;
  transform:translateY(0) scale(1);
}
.dp-chart-overlay.is-closing{
  background:rgba(35,42,36,0);
  backdrop-filter:blur(0);
  -webkit-backdrop-filter:blur(0);
}
.dp-chart-overlay.is-closing .dp-chart-panel{
  opacity:0;
  transform:translateY(16px) scale(.96);
  transition-duration:.22s;
}
.dp-chart-panel .dp-chart-head{
  flex-shrink:0;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:16px 22px;
  background:#232a24;color:#fff;
}
.dp-chart-panel .dp-chart-body{
  flex:1 1 auto;min-height:0;overflow:auto;
  padding:18px 22px 24px;
  overscroll-behavior:contain;
}
.dp-chart-panel .dp-chart-plot{
  background:#fff;
  border:1px solid #e8e4dc;
  border-radius:12px;
  padding:14px 12px 10px;
  margin-bottom:18px;
  animation:dpChartDraw .55s cubic-bezier(.22,1,.36,1) .12s both;
}
@keyframes dpChartDraw{
  from{opacity:0;transform:translateY(10px) scale(.985)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .dp-chart-overlay,.dp-chart-panel,.dp-chart-panel .dp-chart-plot{transition:none!important;animation:none!important}
  .dp-chart-overlay .dp-chart-panel{opacity:1;transform:none}
}

/* Modal genérico (syModal / askPrompt) */
.sy-modal-gen{z-index:9200;align-items:center}
.sy-modal-gen .sy-modal-box{max-width:440px;background:#fff}
.sy-modal-gen .sy-modal-box.sy-modal-wide{max-width:820px}
.sy-modal-gen .mh{padding:14px 16px 14px 18px}
.sy-modal-gen .mb{padding:18px 20px}
.sy-modal-gen .mf{padding:12px 16px;background:#faf9f5}
.sy-modal-msg{font-size:13.5px;color:#4a463e;line-height:1.5;white-space:pre-wrap;margin-bottom:14px}
.sy-modal-gen .fld{margin-bottom:12px}
.sy-modal-gen .fld:last-child{margin-bottom:0}
.sy-modal-gen textarea{resize:vertical;min-height:88px;text-transform:none}

.sy-bal-card{border:1px solid #e5e1d8;border-radius:11px;overflow:hidden;background:#faf9f5}
.sy-bal-card.sy-bal-warn{border-color:#e5cfa6;background:#fffbf5}
.sy-bal-status{padding:12px 14px 4px;font-size:13.5px;font-weight:700}
.sy-bal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 14px 12px}
.sy-bal-grid div{background:#fff;border:1px solid #eee;border-radius:8px;padding:10px 12px}
.sy-bal-grid span{display:block;font-size:11px;font-weight:600;text-transform:uppercase;color:#6f6a62;margin-bottom:4px}
.sy-bal-grid b{font-size:17px;color:#2a2722}
.sy-bal-note{padding:10px 14px 12px;font-size:12.5px;color:#6a655c;line-height:1.45;border-top:1px solid #eee}

.toast{display:none} /* legado: se usa .sy-toast */

/* Sonner / toasts */
.sy-toaster{position:fixed;z-index:9000;right:18px;bottom:18px;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:10px;pointer-events:none;max-width:min(420px,calc(100vw - 28px))}
.sy-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:100%;max-width:420px;background:#1f2420;color:#f4f2ec;padding:12px 14px;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.28);font-size:13.5px;line-height:1.45;opacity:0;transform:translateY(10px) scale(.98);transition:opacity .22s ease,transform .22s ease;border:1px solid rgba(255,255,255,.06)}
.sy-toast.in{opacity:1;transform:none}
.sy-toast-ico{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#3d7a4e;color:#fff;margin-top:1px}
.sy-toast-ok .sy-toast-ico{background:#3d7a4e}
.sy-toast-warn .sy-toast-ico{background:#b5772a}
.sy-toast-err .sy-toast-ico{background:#c0562e}
.sy-toast-info .sy-toast-ico{background:#2a6f97}
.sy-toast-msg{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word}
.sy-toast-confirm{flex-direction:column;gap:12px;background:#fff;color:#2a2722;border:1px solid #e5e1d8;box-shadow:0 16px 48px rgba(0,0,0,.22)}
.sy-toast-confirm .sy-toast-msg{font-size:13.5px;color:#3a3630}
.sy-toast-acts{display:flex;justify-content:flex-end;gap:8px;width:100%}
.sy-toast-btn{border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}
.sy-toast-btn.ghost{background:#f2f0ea;color:#4a463e}
.sy-toast-btn.ok{background:#3d7a4e;color:#fff}
.sy-toast-btn:hover{filter:brightness(1.05)}

@media(max-width:820px){
  .sy-toaster{left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));max-width:none;align-items:stretch}
  .sy-toast{max-width:none}
}

/* usuarios y roles */
.note{background:#f4f7f4;border-left:3px solid #3d7a4e;border-radius:0 8px 8px 0;padding:12px 16px;margin-bottom:18px;font-size:13px;color:#4a463e}
.chkgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.chkrow{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid #e5e1d8;border-radius:9px;cursor:pointer;font-size:13px}
.chkrow input{margin-top:2px;width:16px;height:16px;accent-color:#3d7a4e}
.chkrow i{font-style:normal;font-size:11.5px;color:#6f6a62}
.chiprow{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:6px}
.chip2{display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #e5e1d8;border-radius:20px;cursor:pointer;font-size:13px}
.chip2 input{width:15px;height:15px;accent-color:#2a6f97}
.ulist{display:flex;flex-direction:column;gap:14px}
.ucard{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:18px}
.uhead{display:flex;align-items:center;gap:13px;margin-bottom:14px}
.uav{width:42px;height:42px;border-radius:50%;background:#3d7a4e;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}
.uinfo{min-width:0}.uinfo b{font-size:15px;color:#2a2722}.uinfo span{display:block;font-size:12.5px;color:#6f6a62}
.ubadge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px}
.ubadge.on{background:#e4f0e6;color:#2f6d3c}.ubadge.off{background:#f0eeea;color:#6f6a62}
.uacts{margin-left:auto;display:flex;gap:7px;align-items:center}
.uacts button{background:#fff;border:1px solid #d8d4cc;color:#4a463e;padding:6px 12px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer}
.uacts button:hover{background:#faf9f5}.uacts .xbtn:hover{background:#faeef0}
.ulbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#7a746b;margin:0 0 7px}
.rolchip,.linchip{padding:5px 11px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid #d8d4cc;background:#fff;color:#6f6a62}
.qcat{background:#eef4ef;border:1px solid #cfe0d3;color:#2f6d3c;padding:5px 11px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer}
.rolchip.on{border-color:#3d7a4e;background:#e4f0e6;color:#2f6d3c}
.linchip.on{border-color:#2a6f97;background:#e6f0f6;color:#2a6f97}
/* Usuarios: fila compacta + detalle desplegable */
.unew{margin-bottom:16px;padding:12px 18px}.unew summary{cursor:pointer;font-weight:700;font-size:13px;color:#3d7a4e}
.ubar{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:12px 14px;margin-bottom:14px;position:sticky;top:0;z-index:5}
.utool{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.usrch{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;height:38px;padding:0 6px 0 12px;border:1px solid #d8d4cc;border-radius:10px;background:#faf9f5;color:#7a746b;cursor:text;transition:border-color .15s,background .15s,box-shadow .15s}
.usrch:focus-within{border-color:#3d7a4e;background:#fff;box-shadow:0 0 0 3px rgba(61,122,78,.12);color:#3d7a4e}
.usrch input{flex:1;min-width:0;border:0!important;outline:0;background:transparent!important;box-shadow:none!important;padding:0!important;height:100%;font-size:13.5px;color:#2a2722}
.usrch input::placeholder{color:#7a746b}
.usrch button{width:24px;height:24px;border:0;border-radius:50%;background:#ece8df;color:#6b665c;font-size:15px;line-height:1;cursor:pointer;flex-shrink:0}
.usrch button:hover{background:#ddd8cc;color:#2a2722}
#usrCuenta{font-size:11.5px;font-weight:600;color:#6b665c;background:#f4f2ec;padding:4px 10px;border-radius:20px;white-space:nowrap}
.ufils{display:flex;flex-wrap:wrap;gap:6px}
.ufil{padding:4px 11px;border-radius:20px;font-size:11.5px;font-weight:600;cursor:pointer;border:1px solid #d8d4cc;background:#fff;color:#6b665c}
.ufil span{color:#7a746b;margin-left:2px}.ufil.on{background:#2a2722;border-color:#2a2722;color:#fff}.ufil.on span{color:#d8d4cc}
.ulist2{display:flex;flex-direction:column;gap:8px}
.ucard2{background:#fff;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden}
.ucard2.open{border-color:#cfc9bc;box-shadow:0 2px 10px rgba(42,39,34,.06)}
.ucard2.off .uinfo b{color:#6f6a62}
.urow{display:flex;align-items:center;gap:12px;padding:11px 16px;cursor:pointer;flex-wrap:wrap}
.urow:hover{background:#faf9f5}.urow:focus-visible{outline:2px solid #3d7a4e;outline-offset:-2px}
.urow .uav{width:34px;height:34px;font-size:14px}
.urow .uinfo{width:230px}.urow .uinfo b{font-size:14px}.urow .uinfo span{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.utags{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:160px}
.utag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;background:#e4f0e6;color:#2f6d3c}
.utag.adm{background:#faeef0;color:#a03050}.utag.none{background:#f0eeea;color:#6f6a62}
.umeta{display:flex;flex-direction:column;font-size:11px;color:#6f6a62;text-align:right;line-height:1.35}
.uwarn{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;background:#fbf1e3;color:#a0611c;cursor:help}
.usave{font-size:11px;font-weight:600;color:#6f6a62}.usave.ok{color:#2f6d3c}.usave.bad{color:#a03050}
.uchev{color:#7a746b;font-size:12px;width:12px;text-align:center}
.udet{border-top:1px solid #eee9df;padding:14px 16px 16px;background:#fcfbf8}
.uavisos{background:#fbf1e3;border:1px solid #ecd3ac;color:#7a5518;border-radius:9px;padding:9px 12px;font-size:12.5px;margin-bottom:14px;line-height:1.6}
.ugrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;margin-bottom:16px}
.uswlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.usw{display:flex;align-items:flex-start;gap:10px;text-align:left;padding:8px 10px;border:1px solid #e5e1d8;border-radius:9px;background:#fff;cursor:pointer;font:inherit;color:#4a463e}
.usw:hover{border-color:#cfc9bc}
.uknob{flex-shrink:0;width:30px;height:17px;border-radius:20px;background:#d8d4cc;position:relative;margin-top:1px;transition:background .15s}
.uknob::after{content:'';position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:left .15s}
.usw.on{border-color:#a9cdb2;background:#f3f8f4}.usw.on .uknob{background:#3d7a4e}.usw.on .uknob::after{left:15px}
.usw.adm.on{border-color:#e6b3c0;background:#fdf3f5}.usw.adm.on .uknob{background:#a03050}
.utxt b{display:block;font-size:12.5px}.utxt i{display:block;font-style:normal;font-size:11px;color:#6f6a62;margin-top:1px}
.umods{border-top:1px dashed #e5e1d8;padding-top:12px}
.umh{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.umh button{background:#fff;border:1px solid #d8d4cc;color:#6b665c;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer}
.umh button:first-of-type{margin-left:auto}
.unota{font-size:12px;color:#6f6a62;background:#f4f2ec;border-radius:8px;padding:7px 10px;margin-bottom:10px}
.umgrp{margin-bottom:10px}
.umgh{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7a746b;margin-bottom:5px}
.umgh button{background:none;border:0;color:#6d3fc4;font-size:11px;font-weight:700;cursor:pointer;padding:0 2px;text-transform:none;letter-spacing:0}
.umgh button:disabled{color:#d8d4cc;cursor:default}
.umchip{padding:5px 11px;border-radius:20px;font-size:11.5px;font-weight:600;cursor:pointer;border:1px solid #d8d4cc;background:#fff;color:#6f6a62}
.umchip.on{border-color:#8b5cf6;background:#f1ebfd;color:#6d3fc4}
.udet .uacts{margin:14px 0 0;padding-top:12px;border-top:1px solid #eee9df;flex-wrap:wrap;justify-content:flex-end}
.udet .uacts .xbtn{color:#a03050;border-color:#ecc6cf}
@media (max-width:760px){.ugrid{grid-template-columns:1fr}.urow .uinfo{width:auto;flex:1}.umeta{display:none}}
.mailbox{border:1px solid #e5e1d8;border-radius:11px;padding:16px;line-height:1.7;font-size:13.5px}
.creds{background:#f4f7f4;border-radius:9px;padding:12px 14px;margin-top:8px}
.minf{background:#faf9f5;border-radius:9px;padding:12px 14px}
.okmsg{margin-top:12px;padding:10px 12px;border-radius:8px;font-size:12.5px;background:#eef1ec;color:#3d5a41}
.err{margin-top:12px;padding:10px 12px;border-radius:8px;font-size:12.5px;background:#faeef0;color:#a03050}
.errbox{background:#fdecec;border:1px solid #f0b7b7;border-radius:12px;padding:16px 18px;margin-bottom:16px}
.errbox .eh{display:flex;align-items:center;gap:9px;margin-bottom:10px;font-size:14px;font-weight:700;color:#a5281b}
.errbox .ei{width:22px;height:22px;border-radius:50%;background:#c0392b;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}
.errbox ul{margin:0;padding-left:32px;color:#8c2f22;font-size:13px;line-height:1.7}

@media(max-width:820px){
  .side{position:fixed;z-index:40;height:100%;transform:translateX(-100%);transition:.2s}
  .side.open{transform:none}
  .kpis,.dp-kpis{grid-template-columns:1fr}
  .ejec-kpis{grid-template-columns:1fr}
  .ejec-kpi .v{font-size:24px}
  .two{grid-template-columns:1fr}
  .content{padding:16px}
  .dp-kpi-panel-head{padding:14px 16px 10px}
  .dp-kpi-row{padding:11px 16px;gap:10px}
  .dp-kpi-table{min-width:420px}
  .card .v{font-size:22px}
  .tz-hnav{padding:7px 8px;gap:6px}
  .tz-hnav-col{padding:7px 9px;font-size:11px}
  .tz-per{padding:8px 12px;min-height:36px}
  .tz-pager{padding:8px 0}
  .tz-pager-info{width:100%;margin-left:0}
  .tbl .th,.tbl .tr2{padding-left:12px;padding-right:12px}
  #regHNavWrap{display:none}
  .tbl:has(#regScroll){overflow:visible;background:transparent;border:0}
  #regScroll{overflow:visible}
  #regScroll .th{display:none}
  #regScroll .reg-tr{
    display:grid;grid-template-columns:1fr 1fr;
    gap:10px 14px;min-width:0;width:100%;
    padding:14px;margin:0 0 10px;align-items:start;
    border:1px solid #e5e1d8;border-radius:12px;
  }
  #regScroll .reg-c,#regScroll [data-regcol]{
    display:flex;flex-direction:column;align-items:flex-start;gap:3px;
    white-space:normal;overflow:visible;text-overflow:unset;justify-self:stretch;text-align:left;
  }
  #regScroll .reg-c::before{
    content:attr(data-lbl);font-size:11px;font-weight:500;
    letter-spacing:.04em;text-transform:uppercase;color:#6f6a62;
  }
  #regScroll [data-regcol="4"],
  #regScroll [data-regcol="10"],
  #regScroll [data-regcol="11"]{grid-column:1/-1}
  #regScroll .reg-acts{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    justify-items:stretch;align-items:stretch;max-width:280px;
  }
  #regScroll .reg-acts .ct-act{max-width:none}
}

/* ---------- CONTRATOS · lista estilo ClickUp ---------- */
.ct-sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.ct-shell{
  overflow-x:hidden;min-width:0;max-width:100%;
  --ct-accent:#3d7a4e;
  --ct-accent-2:#2f6d3c;
  --ct-text:#2a2722;
  --ct-muted:#8a8478;
  --ct-line:#e5e1d8;
  --ct-hover:#f4f2ec;
  --ct-canvas:#f6f4ef;
  --ct-row:54px;
  --ct-radius:12px;
  --ct-shadow:none;
  margin:0 auto;
  padding:0 0 32px;
  background:transparent;
  color:var(--ct-text);
}
.ct-sticky{
  position:sticky;top:0;z-index:8;
  background:#f6f4ef;
  padding:0 0 14px;
  border-bottom:0;
}
.ct-secs{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  margin:0 0 10px;
}
.ct-sec{
  background:#fff;border:1px solid var(--ct-line);cursor:pointer;
  padding:8px 16px;min-height:36px;
  font-size:14px;font-weight:500;color:var(--ct-muted);
  border-radius:2px;
}
.ct-sec:hover{color:var(--ct-text);border-color:#cfc9bc}
.ct-sec:focus-visible{outline:2px solid var(--ct-accent);outline-offset:2px}
.ct-sec.on{
  color:#fff;background:var(--ct-accent,#3d7a4e);border-color:var(--ct-accent,#3d7a4e);
}
.ct-lists{
  display:flex;align-items:flex-end;gap:4px;flex-wrap:wrap;
  border-bottom:1px solid var(--ct-line);
  margin:0 0 12px;
}
.ct-lists-gap{flex:1;min-width:16px;height:1px}
.ct-tab{
  position:relative;
  background:none;border:0;cursor:pointer;
  padding:10px 14px 12px;
  font-size:14px;font-weight:500;color:var(--ct-muted);
  border-radius:8px 8px 0 0;
  min-height:40px;
}
.ct-tab-n{margin-left:6px;font-size:12px;font-weight:500;opacity:.65}
.ct-tab.on .ct-tab-n{opacity:.8}
.ct-tab:hover{color:var(--ct-text);background:#f0ede6}
.ct-tab:focus-visible{outline:2px solid var(--ct-accent);outline-offset:2px}
.ct-tab.on{color:var(--ct-text)}
.ct-tab.on::after{
  content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2.5px;
  background:var(--ct-accent);border-radius:2px 2px 0 0;
}
.ct-toolbar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  min-height:40px;
}
.ct-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}
.ct-modes{
  display:flex;background:#fff;border:1px solid var(--ct-line);border-radius:10px;
  padding:3px;gap:2px;box-shadow:0 1px 0 rgba(31,35,40,.03);
}
.ct-mode{
  display:inline-flex;align-items:center;gap:6px;
  border:0;background:transparent;color:var(--ct-muted);
  padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;
  min-height:32px;
}
.ct-mode:hover{background:var(--ct-hover);color:var(--ct-text)}
.ct-mode:focus-visible{outline:2px solid var(--ct-accent);outline-offset:1px}
.ct-mode.on{background:#e8f1ea;color:var(--ct-accent-2);box-shadow:inset 0 0 0 1px #c9d6cb}
.ct-mode svg{display:block}
.ct-search{flex:1 1 240px;min-width:220px;max-width:360px;position:relative}
.ct-search svg{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#7a8088;pointer-events:none
}
.ct-search input{
  width:100%;height:36px;padding:0 36px 0 34px;border:1px solid var(--ct-line);
  border-radius:10px;background:#fff;font-size:14px;color:var(--ct-text);text-transform:none;
}
.ct-search input:focus{outline:none;border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.18)}
.ct-search-x{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border:0;border-radius:7px;background:transparent;
  color:#7a8088;cursor:pointer;display:none;align-items:center;justify-content:center;
}
.ct-search.has-q .ct-search-x{display:inline-flex}
.ct-search-x:hover{background:var(--ct-hover);color:var(--ct-text)}
.ct-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ct-chip{
  height:32px;padding:0 11px;border-radius:999px;border:1px solid var(--ct-line);
  background:#fff;color:var(--ct-muted);font-size:12.5px;font-weight:500;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
}
.ct-chip:hover{border-color:#c9d6cb;color:var(--ct-text)}
.ct-chip:focus-visible{outline:2px solid var(--ct-accent);outline-offset:2px}
.ct-chip.on{background:#e8f1ea;border-color:#c9d6cb;color:var(--ct-accent-2)}
.ct-chip b{font-variant-numeric:tabular-nums;font-weight:500}
.ct-sel{
  height:36px;padding:0 12px;border:1px solid var(--ct-line);border-radius:10px;
  background:#fff;font-size:13px;color:var(--ct-text);cursor:pointer;
}
.ct-sel:focus-visible{outline:2px solid var(--ct-accent);outline-offset:1px}
/* Desplegable "Ordenar" con casillas */
.ct-ord{position:relative;flex-shrink:0}
.ct-ord-btn{white-space:nowrap}
.ct-ord-btn.act{border-color:var(--ct-accent);color:var(--ct-accent);font-weight:500}
.ct-ord-pop{
  position:absolute;top:calc(100% + 6px);left:0;z-index:60;min-width:250px;max-width:calc(100vw - 32px);
  background:#fff;border:1px solid var(--ct-line);border-radius:10px;padding:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.ct-ord-pop[hidden]{display:none}
.ct-ord-h{font-size:12px;font-weight:600;color:var(--ct-text);padding:4px 6px 8px}
.ct-ord-h small{font-weight:400;color:#7c828d}
.ct-ord-it{display:flex;align-items:center;gap:6px;border-radius:6px;padding:0 4px}
.ct-ord-it:hover{background:#f4f5f2}
.ct-ord-it label{flex:1;display:flex;align-items:center;gap:8px;padding:6px 2px;font-size:13px;cursor:pointer;color:var(--ct-text)}
.ct-ord-it input{accent-color:var(--ct-accent);width:15px;height:15px;margin:0}
.ct-ord-n{min-width:16px;font-size:11px;font-weight:600;color:var(--ct-accent);text-align:center}
.ct-ord-dir{border:1px solid var(--ct-line);background:#fff;border-radius:6px;font-size:11.5px;padding:2px 7px;cursor:pointer;color:var(--ct-text);white-space:nowrap}
.ct-ord-dir:hover{border-color:var(--ct-accent)}
.ct-ord-clear{margin-top:6px;width:100%;border:0;background:transparent;color:#c0392b;font-size:12.5px;padding:6px;border-radius:6px;cursor:pointer}
.ct-ord-clear:hover{background:#fbeeee}
/* Desplegable "Columnas": columnas y fechas que muestra la lista */
.ct-ver-pop{min-width:420px}
.ct-ver-cols{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.ct-ver-off{opacity:.45;pointer-events:none}
.ct-ver-reset{color:var(--ct-accent)}
.ct-ver-reset:hover{background:#eef5ef}
@media(max-width:560px){.ct-ver-pop{min-width:0;width:calc(100vw - 32px)}.ct-ver-cols{grid-template-columns:1fr}}
/* Columnas de la lista según lo que eligió el usuario */
@media(min-width:821px){
  .ct-body .ct-cols,.ct-body .ct-row .ct-grid{grid-template-columns:var(--ct-cols)}
}
.ct-fechas.sin-estado{grid-template-columns:repeat(var(--ct-nf,4),minmax(0,1fr))}
.ct-foot.sin-trk{justify-content:flex-end}
.ct-new{
  height:36px;padding:0 16px;border:0;border-radius:10px;
  background:var(--ct-accent);color:#fff;font-size:13.5px;font-weight:500;cursor:pointer;
  display:inline-flex;align-items:center;gap:7px;
  box-shadow:0 1px 2px rgba(61,122,78,.22);
  flex-shrink:0;
}
.ct-new:hover{background:var(--ct-accent-2)}
.ct-new:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px var(--ct-accent)}
.ct-count{font-size:12.5px;color:var(--ct-muted);padding:0 6px;font-variant-numeric:tabular-nums}

.ct-body{
  padding:0;overflow:hidden;width:100%;min-width:0;box-sizing:border-box;
  background:#fff;border:1px solid #e5e1d8;border-radius:12px;
}
.ct-body:has(.ct-board),.ct-body:has(.ct-empty){
  background:transparent;border:0;
}
.ct-cols,.ct-row .ct-grid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,3fr) minmax(0,.8fr) minmax(0,.65fr) minmax(0,.6fr) 40px;
  width:100%;min-width:0;max-width:100%;
  align-items:center;gap:0 16px;padding:0 20px;
  box-sizing:border-box;
}
.ct-cols{
  position:sticky;top:0;z-index:2;
  height:42px;margin:0;
  font-size:11px;font-weight:500;letter-spacing:.05em;color:#6f6a62;text-transform:uppercase;
  background:#faf9f5;border-bottom:1px solid #e5e1d8;
}
.ct-cols > div{padding:10px 0}
.ct-c-monto,.ct-c-av{justify-self:end;text-align:right}
.ct-group{
  margin:0;background:#fff;border:0;border-top:1px solid #e5e1d8;
  border-radius:0;overflow:hidden;width:100%;min-width:0;max-width:100%;
  box-shadow:none;box-sizing:border-box;
}
.ct-group:first-of-type{border-top:0}
.ct-gh{
  display:flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;
  background:#faf9f5;cursor:pointer;user-select:none;border:0;width:100%;text-align:left;
  font:inherit;color:inherit;
}
.ct-gh:hover{background:var(--ct-hover)}
.ct-gh:focus-visible{outline:2px solid var(--ct-accent);outline-offset:-2px}
.ct-chev{width:16px;height:16px;color:#7a8088;transition:transform .18s ease;flex-shrink:0}
.ct-group.collapsed .ct-chev{transform:rotate(-90deg)}
.ct-gname{font-size:14px;font-weight:500;letter-spacing:.01em}
.ct-gcount{
  margin-left:4px;min-width:26px;height:22px;padding:0 8px;border-radius:999px;
  background:#eef0f4;color:#4e545c;font-size:12px;font-weight:500;
  display:inline-flex;align-items:center;justify-content:center;
}
.ct-gbar{height:2px;width:100%;opacity:.85}
.ct-group.collapsed .ct-gbody{display:none}

.ct-row{
  min-height:var(--ct-row);border-top:1px solid #eef0f4;cursor:pointer;
  background:#fff;position:relative;
}
.ct-gbody > .ct-row:nth-child(even){background:#fbfaf7}
.ct-row:hover,.ct-gbody > .ct-row:nth-child(even):hover{background:var(--ct-hover)}
.ct-row:focus-visible{outline:2px solid var(--ct-accent);outline-offset:-2px;z-index:1}
.ct-row.on,.ct-gbody > .ct-row:nth-child(even).on{background:#f4f8f4}
.ct-row.late{box-shadow:inset 3px 0 0 #d64545}
.ct-name{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 0}
.ct-stdot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.ct-title{
  font-size:14px;font-weight:500;color:var(--ct-text);letter-spacing:-.01em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ct-tag{
  font-size:11px;font-weight:500;padding:3px 7px;border-radius:7px;
  background:#eef0f4;color:#4e545c;flex-shrink:1;min-width:0;max-width:28%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ct-prop{
  display:inline-flex;align-items:center;gap:3px;color:#6a7078;font-size:11.5px;font-weight:500;
  flex-shrink:0;
}
.ct-prop svg{display:block}
.ct-exp{
  width:22px;height:22px;border:0;background:transparent;color:#6a7078;cursor:pointer;
  border-radius:6px;flex-shrink:0;padding:0;line-height:1;font-size:12px;
}
.ct-exp:hover{background:#eceef2;color:var(--ct-text)}
.ct-exp:focus-visible{outline:2px solid var(--ct-accent)}
.ct-exp-ph{width:22px;flex-shrink:0}
.ct-col-cli{display:flex;align-items:center;gap:10px;min-width:0}
.ct-av{
  width:28px;height:28px;border-radius:50%;color:#fff;font-size:11px;font-weight:500;
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.02em;
}
.ct-cli{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-due{
  font-size:12.5px;font-weight:500;padding:4px 9px;border-radius:8px;display:inline-block;
}
.ct-due.ok{color:var(--ct-muted)}
.ct-due.soon{background:#fff4e0;color:#9a5a14}
.ct-due.late{background:#fdeeee;color:#c42b32}
.ct-due.hoy{background:#e8f1ea;color:var(--ct-accent-2)}
.ct-c-st,.ct-c-fecha,.ct-c-prio,.ct-c-av,.ct-c-monto{min-width:0}
.ct-c-st,.ct-c-fecha,.ct-c-prio{display:flex;align-items:center}
.ct-c-fecha{justify-content:center}
.ct-foot{display:flex;align-items:center;gap:6px 16px;min-width:0;padding-right:20px}
.ct-foot>.ct-trk{flex:1 1 auto;min-width:0}
.ct-foot>.ct-acts{flex:0 0 auto;flex-wrap:nowrap;gap:6px;padding:0 0 12px;margin-left:auto}
.ct-foot .ct-act{height:28px;padding:0 11px;font-size:12px;gap:6px}
.ct-cols .ct-c-monto{font-size:inherit;font-weight:inherit;color:inherit}
/* Sección «Fechas»: prod · plan desp. · real desp. · BL + estado del despacho */
.ct-c-fechas{min-width:0}
.ct-fechas{display:grid;grid-template-columns:repeat(var(--ct-nf,4),minmax(0,1fr)) auto;gap:4px;align-items:stretch;padding:8px 0}
.ct-fechas > .ct-dbadge{align-self:center}
.ct-dbadge{justify-self:start;font-size:11px;font-weight:600;padding:3px 8px;border-radius:5px;white-space:nowrap}
.ct-dbadge.ok{background:#e3f0e6;color:#2f6d3c}
.ct-dbadge.late{background:#fdeeee;color:#c42b32}
.ct-dbadge.soon{background:#fff4e0;color:#9a5a14}
.ct-dbadge.wait{background:#eef2f7;color:#4a5a70}
.ct-dbadge.none{background:transparent;color:#b5b0a6;padding-left:0;font-weight:500}
/* Tablero: la misma sección, con el estado debajo */
.ct-card .ct-fechas{grid-template-columns:repeat(var(--ct-nf,4),minmax(0,1fr));padding:0;margin:0 0 8px 6px}
.ct-card .ct-fechas > .ct-dbadge{grid-column:1 / -1;margin-top:2px}
.ct-cd{display:flex;flex-direction:column;gap:1px;padding:5px 6px;border-radius:6px;background:#f7f5f0;min-width:0}
.ct-cd-k{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#736d65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-cd-v{font-size:12.5px;font-weight:600;color:#2a2722;white-space:nowrap;font-variant-numeric:tabular-nums}
.ct-cd.plan .ct-cd-v{color:#6a655c;font-weight:500}
.ct-cd.real{background:#e9f3eb}
.ct-cd.real .ct-cd-k{color:#2f6d3c}
.ct-cd.real .ct-cd-v{color:#1e5a2c;font-weight:700}
.ct-cd.soon{background:#fff4e0}
.ct-cd.soon .ct-cd-v{color:#9a5a14}
.ct-cd.late{background:#fdeeee}
.ct-cd.late .ct-cd-k,.ct-cd.late .ct-cd-v{color:#c42b32}
.ct-cd.none{background:#faf9f6}
.ct-cd.none .ct-cd-v{color:#c5c0b6;font-weight:400}
/* El lote nunca se recorta (todos se manejan por el lote): si no entra junto
   al código, baja a su propia línea; lo que cede es el código del contrato. */
.ct-name{flex-wrap:wrap;row-gap:5px;column-gap:8px}
.ct-name .ct-title{flex:0 1 auto;min-width:0}
.ct-name .ct-lote-tag{flex:0 0 auto;max-width:none;overflow:visible;font-size:12px;font-weight:600}
.ct-name .ct-lote-tag .mono{overflow:visible;text-overflow:clip}
.ct-c-prio{justify-content:center}
.ct-avbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:12px;color:var(--ct-muted);min-width:0}
.ct-prog{
  display:block;flex:1 1 40px;width:auto;max-width:56px;height:7px;border-radius:99px;background:#e6e8ee;overflow:hidden;min-width:0;
}
.ct-prog i{display:block;height:100%;border-radius:inherit;background:#3d7a4e;min-width:0}
.ct-prog-n{font-variant-numeric:tabular-nums;font-weight:500;font-size:12.5px;min-width:2.6em}
.ct-pill{
  display:inline-flex;align-items:center;height:26px;padding:0 8px;border-radius:8px;
  font-size:11.5px;font-weight:500;letter-spacing:.01em;white-space:nowrap;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;
}
.ct-stbtn{border:0;background:transparent;padding:0;cursor:pointer;display:inline-flex;align-items:center;font:inherit}
.ct-flag{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px}
.ct-c-monto{font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:500;color:#2d3138}
.ct-gbody > .ct-row:first-child{border-top:0}
.ct-acts{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  padding:2px 16px 14px;
}
.ct-card .ct-acts{padding:12px 6px 2px}
.ct-act{
  height:32px;padding:0 13px;border:1px solid #e5e1d8;border-radius:999px;
  background:#fff;color:#3a3630;font-size:12.5px;font-weight:500;cursor:pointer;
  display:inline-flex;align-items:center;gap:7px;letter-spacing:.01em;
  box-shadow:0 1px 0 rgba(42,39,34,.04);
}
.ct-act svg{display:block;flex-shrink:0}
.ct-act:hover{background:#f7f5f0;border-color:#cfcabf;color:#2a2722}
.ct-act:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px}
.ct-act-on{background:#3d7a4e;border-color:#3d7a4e;color:#fff;box-shadow:0 1px 2px rgba(61,122,78,.25)}
.ct-act-on:hover{background:#2f6d3c;border-color:#2f6d3c;color:#fff}
.ct-act-danger{color:#a03050;border-color:#edd4d8;background:#fff}
.ct-act-danger:hover{background:#fdeeee;border-color:#e3b4ba;color:#8a2440}
.ct-act-off{
  font-size:12px;color:#6f6a62;font-weight:500;padding:4px 10px;
  background:#f2f0ea;border-radius:999px;
}
.ct-addrow{
  display:block;min-height:44px;border-top:1px solid #eef0f4;color:#6a7078;font-size:13.5px;font-weight:500;
  background:#fff;border-left:0;border-right:0;border-bottom:0;width:100%;cursor:pointer;text-align:left;
  padding:0 16px 0 48px;
}
.ct-addrow:hover{background:var(--ct-hover);color:var(--ct-accent-2)}
.ct-addrow:focus-visible{outline:2px solid var(--ct-accent);outline-offset:-2px}
.ct-sub{
  display:flex;align-items:center;gap:10px;min-height:40px;padding:0 16px 0 48px;
  border-top:1px solid #f6f7f9;background:#fbfbfd;font-size:13.5px;cursor:pointer;color:var(--ct-muted);
  min-width:0;
}
.ct-sub:hover{background:#f4f8f4;color:var(--ct-text)}
.ct-sub:focus-visible{outline:2px solid var(--ct-accent);outline-offset:-2px}
.ct-subbranch{
  width:12px;height:12px;border-left:1.5px solid #d5d8e0;border-bottom:1.5px solid #d5d8e0;
  border-radius:0 0 0 4px;margin-top:-8px;flex-shrink:0;
}
.ct-subs{display:none}
.ct-subs.open{display:block}
.ct-empty{
  margin:8px 0;padding:56px 24px;text-align:center;background:#fff;
  border:1px dashed #e5e1d8;border-radius:12px;color:var(--ct-muted);
}
.ct-empty b{display:block;font-size:17px;font-weight:500;color:var(--ct-text);margin:10px 0 6px}
.ct-empty-ico{
  width:48px;height:48px;margin:0 auto;border-radius:14px;background:#e8f1ea;color:var(--ct-accent);
  display:flex;align-items:center;justify-content:center;
}

/* Tablero */
.ct-board{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap:14px;padding:8px 0 24px;align-items:stretch;min-height:0;overflow:visible;
}
.ct-col{
  background:#f0ede6;border-radius:12px;padding:10px;
  display:flex;flex-direction:column;min-width:0;max-height:none;
}
.ct-col-h{
  display:flex;align-items:center;gap:8px;padding:6px 8px 10px;flex-shrink:0;
}
.ct-col-h .ct-gname{font-size:13px}
.ct-col-list{overflow:visible;display:flex;flex-direction:column;gap:8px;padding:2px;min-height:40px}
.ct-card{
  background:#fff;border-radius:10px;padding:12px 13px;cursor:pointer;
  box-shadow:0 1px 2px rgba(31,35,40,.06);border:1px solid transparent;
  position:relative;
}
.ct-card::before{
  content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 2px 2px 0;
  background:var(--ct-stripe,#d5d8e0);
}
.ct-card:hover{border-color:#c9d6cb;box-shadow:0 4px 12px rgba(35,42,36,.06)}
.ct-card:focus-visible{outline:2px solid var(--ct-accent);outline-offset:2px}
.ct-card.on{border-color:var(--ct-accent);box-shadow:0 0 0 3px rgba(61,122,78,.18)}
.ct-card-t{font-size:14px;font-weight:500;margin-bottom:6px;line-height:1.3;padding-left:6px}
.ct-card-s{font-size:12.5px;color:var(--ct-muted);display:flex;align-items:center;gap:7px;margin-bottom:10px;padding-left:6px}
.ct-card-f{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-left:6px}
.ct-col-add{
  margin-top:8px;width:100%;min-height:36px;border:0;background:transparent;color:#5c616a;
  font-size:13px;font-weight:500;cursor:pointer;border-radius:8px;text-align:left;padding:0 10px;
}
.ct-col-add:hover{background:rgba(255,255,255,.7);color:var(--ct-accent-2)}

/* Panel de tarea */
.ct-pane{
  position:fixed;inset:0;z-index:45;display:flex;justify-content:flex-end;
  background:rgba(35,42,36,.4);
}
.ct-pane .box{
  width:min(500px,100vw);height:100%;max-height:100dvh;background:#f6f4ef;display:flex;flex-direction:column;
  box-shadow:-16px 0 48px rgba(35,42,36,.18);animation:ctPaneIn .22s ease;
  outline:none;
}
@keyframes ctPaneIn{from{transform:translateX(28px);opacity:.5}to{transform:none;opacity:1}}
.ct-pane-h{
  display:flex;align-items:flex-start;gap:12px;padding:18px 18px 14px;
  border-bottom:1px solid var(--ct-line);flex-shrink:0;background:#fff;
}
.ct-pane-h .ct-title{font-size:18px;font-weight:500;line-height:1.2;display:block}
.ct-pane-h .sub{font-size:13px;color:var(--ct-muted);margin-top:4px;font-weight:400}
.ct-pane-x{
  margin-left:auto;width:36px;height:36px;border:0;background:#f4f5f8;border-radius:10px;
  cursor:pointer;font-size:20px;color:#5c616a;flex-shrink:0;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
}
.ct-pane-x:hover{background:#eceef2;color:var(--ct-text)}
.ct-pane-x:focus-visible{outline:2px solid var(--ct-accent)}
.ct-pane-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ct-pane-strow{
  display:flex;align-items:center;gap:10px;padding:8px 16px 0;flex-shrink:0;
}
.ct-pane-strow label{font-size:12px;font-weight:500;color:#6f6a62;flex-shrink:0}
.ct-pane-dd{position:relative;flex:1;min-width:0}
.ct-pane-sel{
  display:inline-flex;align-items:center;gap:8px;width:100%;height:32px;padding:0 10px;
  border:1px solid #d8d4cc;border-radius:8px;background:#fff;
  font-size:13px;font-weight:500;cursor:pointer;text-align:left;
}
.ct-pane-sel:focus{outline:none;box-shadow:0 0 0 3px rgba(61,122,78,.16)}
.ct-pane-sel.off{cursor:default}
.ct-pane-dd-list{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:8;
  display:flex;flex-direction:column;gap:4px;padding:6px;
  background:#fff;border:1px solid #e5e1d8;border-radius:10px;
  box-shadow:0 8px 24px rgba(35,42,36,.12);
}
.ct-pane-dd-list[hidden]{display:none}
.ct-pane-opt{
  display:flex;align-items:center;gap:8px;width:100%;height:30px;padding:0 8px;
  border:0;border-radius:7px;background:transparent;cursor:pointer;
  font-size:13px;font-weight:500;text-align:left;
}
.ct-pane-opt:hover{filter:brightness(.97)}
.ct-pane-opt.on{box-shadow:inset 0 0 0 1px currentColor}
.ct-pane-track{margin:0 0 12px;padding:0 0 8px;border-bottom:1px solid #f0ede6}
.ct-pane-track-h{font-size:12px;font-weight:500;color:#6f6a62;margin:0 0 6px}
.ct-paso{display:flex;align-items:center;gap:4px;padding:3px 0;min-height:26px}
.ct-paso.sub{padding-left:20px}
.ct-paso-lab{display:flex;align-items:center;gap:8px;flex:1;min-width:0;cursor:pointer;font-size:13px;color:#2a2722;font-weight:400}
.ct-paso-lab input{width:15px;height:15px;accent-color:#3d7a4e;flex-shrink:0}
.ct-paso.done .ct-paso-t{color:#6f6a62;text-decoration:line-through}
.ct-paso-plus,.ct-paso-x{
  border:0;background:transparent;cursor:pointer;width:22px;height:22px;border-radius:6px;
  font-size:14px;line-height:1;color:#6f6a62;opacity:0;flex-shrink:0;
}
.ct-paso:hover .ct-paso-plus,.ct-paso:hover .ct-paso-x{opacity:1}
@media (hover:none){.ct-paso-plus,.ct-paso-x{opacity:.55}}
.ct-paso-plus:hover{background:#eef3ef;color:#2f6d3c}
.ct-paso-x{color:#c47}
.ct-paso-x:hover{background:#fdeeee}
.ct-paso-in{
  display:block;width:100%;height:30px;margin:2px 0 6px;padding:0 8px;border:1px solid #d8d4cc;border-radius:7px;
  background:#fff;font-size:13px;color:#2a2722;box-sizing:border-box;
}
.ct-paso-in.sub{margin-left:20px;width:calc(100% - 20px)}
.ct-paso-in[hidden]{display:none}
.ct-paso-in:focus{outline:none;border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.16)}
.ct-hero,.ct-pane-hero{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
  padding:12px 16px 0;flex-shrink:0;
}
.ct-hero-k,.ct-pane-kpi{min-width:0;background:#fff;border:1px solid #e5e1d8;border-radius:10px;padding:10px 10px 9px}
/* Lote del contrato: fila, tarjeta y panel */
.ct-lote-tag{
  display:inline-flex;align-items:center;gap:4px;flex-shrink:0;max-width:100%;
  height:22px;padding:0 7px;border-radius:6px;
  background:#eef5ef;color:#2f6d3c;box-shadow:inset 0 0 0 1px #d6e7d9;
  font-size:11.5px;font-weight:500;line-height:1;white-space:nowrap;
}
.ct-lote-tag .mono{letter-spacing:-.01em}
.ct-lote-more{
  display:inline-flex;align-items:center;height:16px;padding:0 5px;border-radius:4px;
  background:#2f6d3c;color:#fff;font-size:11px;font-weight:600;
}
.ct-card-lotes{display:flex;flex-wrap:wrap;gap:5px;margin:-2px 0 9px;padding-left:6px}

.ct-pane-resumen{display:flex;flex-direction:column;gap:10px;margin:0 0 14px}
.ct-lote-card{
  padding:12px 14px 13px;border-radius:12px;
  background:linear-gradient(180deg,#f4faf5 0%,#edf5ee 100%);
  box-shadow:inset 0 0 0 1px #d3e5d6,0 1px 2px rgba(35,76,43,.05);
}
.ct-lote-card.empty{background:#fff;box-shadow:inset 0 0 0 1px #e5e1d8}
.ct-lote-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.ct-lote-ico{
  width:24px;height:24px;border-radius:7px;display:grid;place-items:center;flex-shrink:0;
  background:#fff;color:#2f6d3c;box-shadow:inset 0 0 0 1px #d3e5d6;
}
.ct-lote-card.empty .ct-lote-ico{color:#7a746b;box-shadow:inset 0 0 0 1px #e5e1d8}
.ct-lote-lbl{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#47734d}
.ct-lote-card.empty .ct-lote-lbl{color:#6f6a62}
.ct-lote-n{
  margin-left:auto;min-width:20px;height:20px;padding:0 7px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#2f6d3c;color:#fff;font-size:11px;font-weight:600;
}
.ct-lote-list{display:flex;flex-wrap:wrap;gap:6px}
.ct-lote-chip{
  position:relative;display:inline-flex;align-items:center;gap:10px;max-width:100%;
  min-height:36px;padding:6px 10px 6px 12px;border:0;border-radius:9px;cursor:pointer;
  background:#fff;color:#1f3d25;box-shadow:inset 0 0 0 1px #cfe2d3,0 1px 1px rgba(35,76,43,.04);
  font:inherit;text-align:left;transition:box-shadow .15s ease,transform .15s ease;
}
.ct-lote-chip .mono{font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.25;overflow-wrap:anywhere}
.ct-lote-chip:hover{box-shadow:inset 0 0 0 1px #8fbf98,0 2px 6px rgba(35,76,43,.1)}
.ct-lote-chip:active{transform:translateY(1px)}
.ct-lote-chip:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #3d7a4e,0 0 0 3px rgba(61,122,78,.2)}
.ct-lote-cp,.ct-lote-ok{display:grid;place-items:center;flex-shrink:0;color:#8aa890;transition:color .15s ease}
.ct-lote-chip:hover .ct-lote-cp{color:#2f6d3c}
.ct-lote-ok{display:none;color:#2f6d3c}
.ct-lote-chip.ok .ct-lote-cp{display:none}
.ct-lote-chip.ok .ct-lote-ok{display:grid}
.ct-lote-vacio{margin:0;font-size:12.5px;line-height:1.5;color:#6f6a62}
.ct-lote-vacio b{font-weight:500;color:#5c574e}

.ct-kpis2{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;
  border-radius:12px;background:#e8e4db;box-shadow:inset 0 0 0 1px #e8e4db;
}
.ct-kpi2{display:flex;flex-direction:column;gap:3px;min-width:0;padding:10px 13px 11px;background:#fff}
.ct-kpi2-l{font-size:11px;font-weight:500;color:#6f6a62}
.ct-kpi2-v{font-size:14px;font-weight:500;color:#2a2722;line-height:1.35;overflow-wrap:anywhere}
.ct-kpi2-v.nil{color:#c4beb2}
.ct-kpi2-hint{font-size:11px;color:#7a746b;cursor:help}
.ct-kpi2-bar{display:block;height:4px;margin-top:4px;border-radius:4px;background:#eeebe4;overflow:hidden}
.ct-kpi2-bar i{display:block;height:100%;border-radius:4px;background:#3d7a4e;transition:width .3s ease}
@media (prefers-reduced-motion:reduce){.ct-lote-chip,.ct-kpi2-bar i{transition:none}}
.ct-hero-k span,.ct-pane-kpi span{display:block;font-size:11px;font-weight:500;color:#6f6a62;margin-bottom:4px}
.ct-hero-k b,.ct-pane-kpi div{
  display:block;font-size:13.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2a2722;
}
.ct-pane-b{flex:1;overflow-y:auto;padding:12px 16px 20px}
.ct-pane-b .ct-form-sec{margin:0 0 10px}
.ct-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.ct-field .lbl{display:block;font-size:11px;font-weight:500;color:#6f6a62;margin-bottom:3px}
.ct-field .val{font-size:13.5px;font-weight:400;color:var(--ct-text);word-break:break-word;line-height:1.4}
.ct-sec{font-size:12px;font-weight:500;color:#6f6a62;margin:0 0 8px}
.ct-note{font-size:13.5px;line-height:1.55;color:#2d3138;white-space:pre-wrap}
.ct-note.crit{color:#9a2038;background:#fdeeee;border-radius:10px;padding:12px 14px}
.ct-note + .ct-note{margin-top:8px}
.ct-check{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid #f0ede6;font-size:13.5px}
.ct-check:last-child{border-bottom:0}
.ct-ck{
  width:22px;height:22px;border-radius:8px;flex-shrink:0;margin-top:1px;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;
}
.ct-pane-acts{
  display:flex;flex-wrap:wrap;gap:8px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  border-top:1px solid #e5e1d8;background:#fff;flex-shrink:0;
}
.ct-pane-acts .btn{width:auto;font-weight:500}
.ct-pane-acts .ct-act{height:34px}
.ct-prod{
  font-size:13.5px;padding:10px 0;border-bottom:1px solid #f0ede6;
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
}
.ct-prod:last-child{border-bottom:0}
.ct-prod span:last-child{color:#5c616a;white-space:nowrap}
.ct-prod b{font-weight:500}
.ct-pane-doc{
  display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0ede6;
}
.ct-pane-doc:last-child{border-bottom:0}
.ct-pane-doc-t{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-pane-doc-s{font-size:12px;color:#6f6a62;margin-top:2px}
.ct-pane-empty{font-size:13px;color:#7a746b;padding:4px 0}
.ct-acc{
  border:1px solid var(--ct-line);border-radius:12px;background:#fff;margin:10px 0;
  overflow:hidden;
}
.ct-acc > summary{
  list-style:none;cursor:pointer;padding:11px 14px;font-size:13px;font-weight:500;
  display:flex;align-items:center;gap:8px;color:var(--ct-text);user-select:none;
}
.ct-acc > summary::-webkit-details-marker{display:none}
.ct-acc > summary::before{
  content:"";width:8px;height:8px;border-right:2px solid #8a9098;border-bottom:2px solid #8a9098;
  transform:rotate(-45deg);margin-right:4px;transition:transform .15s;
}
.ct-acc[open] > summary::before{transform:rotate(45deg)}
.ct-acc > summary:hover{background:var(--ct-hover)}
.ct-acc > summary:focus-visible{outline:2px solid var(--ct-accent);outline-offset:-2px}
.ct-acc-b{padding:0 14px 14px}
#ctForm .ct-acc{margin:0 0 12px}
#ctForm .ct-acc > summary{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:#5c616a}

.modal .box.ct-form{max-width:880px;background:#f6f4ef}
.modal .ct-form .mb{padding:16px 18px 20px}
.ct-form-h{
  background:#fff;border-bottom:1px solid #e5e1d8;
  padding:18px 22px;display:flex;align-items:flex-start;gap:14px;flex-shrink:0;
}
.ct-form-h .xbtn{
  margin-left:auto;width:36px;height:36px;border:0;border-radius:10px;
  background:#f4f5f8;color:#5c616a;font-size:20px;line-height:1;
}
.ct-form-h .xbtn:hover{background:#eceef2;color:#2a2722}
.ct-form-kicker{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#6f6a62;margin-bottom:3px}
.ct-form-title{display:block;font-size:18px;font-weight:500;line-height:1.2;color:#2a2722}
.ct-form-sub{font-size:13px;color:#6f6a62;margin-top:4px;font-weight:400}
.ct-form-b{padding:16px 18px 20px}
.ct-form-sec{
  background:#fff;border:1px solid #e5e1d8;border-radius:12px;margin:0 0 12px;overflow:hidden;
}
.ct-form-sec-h{
  display:flex;align-items:flex-start;gap:12px;padding:14px 16px;
}
details.ct-form-sec > summary.ct-form-sec-h{
  list-style:none;cursor:pointer;user-select:none;
}
details.ct-form-sec > summary.ct-form-sec-h::-webkit-details-marker{display:none}
details.ct-form-sec > summary.ct-form-sec-h::after{
  content:"";width:7px;height:7px;border-right:1.5px solid #8a8478;border-bottom:1.5px solid #8a8478;
  transform:rotate(45deg);margin-left:auto;margin-top:8px;flex-shrink:0;transition:transform .15s;
}
details.ct-form-sec[open] > summary.ct-form-sec-h::after{transform:rotate(-135deg);margin-top:10px}
details.ct-form-sec > summary.ct-form-sec-h:hover{background:#faf9f5}
.ct-form-n{
  width:24px;height:24px;border-radius:8px;background:#e8f1ea;color:#2f6d3c;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:500;flex-shrink:0;margin-top:1px;
}
.ct-form-sec-tx{min-width:0;flex:1}
.ct-form-sec-t{display:block;font-size:14px;font-weight:500;color:#2a2722}
.ct-form-sec-s{display:block;font-size:12px;color:#6f6a62;margin-top:2px;font-weight:400}
.ct-form-sec-meta{font-size:12px;color:#6f6a62;margin-left:auto;align-self:center;white-space:nowrap}
.ct-form-sec-b{padding:0 16px 16px}
.ct-form-g{display:grid;gap:12px 14px}
.ct-form-g2{grid-template-columns:1fr 1fr}
.ct-form-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ct-form-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ct-form-g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.ct-form-span2{grid-column:span 2}
.ct-form-hint{font-size:12.5px;color:#6f6a62;margin-top:10px}
.ct-opc-new{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center}
.ct-opc-new input{min-width:0}
.ct-opc-msg{grid-column:1/-1;font-size:12px;color:#b3261e}
.ct-opc-msg:empty{display:none}
.ct-opc-lbl{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ct-opc-add{border:0;background:none;padding:0 2px;font-size:11.5px;font-weight:700;color:#2f6d3c;cursor:pointer;white-space:nowrap}
.ct-opc-add:hover{text-decoration:underline}
.ct-opc-add:focus-visible{outline:2px solid #2f6d3c;outline-offset:2px;border-radius:4px}
.ct-opc-add[hidden]{display:none}
.ct-form .fld{margin:0}
.ct-form .lbl,.ct-form .btn{font-weight:500}
.ct-form .fld input,.ct-form .fld select,.ct-form .fld textarea{
  border-radius:9px;min-height:38px;
}
.ct-form .fld textarea{min-height:72px;padding-top:9px}
.ct-form-check{
  display:flex;align-items:center;gap:8px;margin-top:12px;
  font-size:13.5px;cursor:pointer;color:#2a2722;font-weight:400;
}
.ct-form-check input{width:16px;height:16px;accent-color:#3d7a4e}
.ct-form-mf{align-items:center}
.ct-form-prod{margin-bottom:12px}

#modal .box{max-width:960px}
#modal .det-h-acts{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}
#modal .ct-form-h .xbtn{margin-left:0}
#modal .mb .card{margin-top:12px;padding:14px 16px;border-radius:12px;box-shadow:none}
#modal .mb > .note{border-radius:10px}
#modal .sec-title{font-size:14px;font-weight:500;color:#2a2722;margin:0 0 10px}
#calModal .box{max-width:960px}
#calModal .ct-form-title{font-size:16px;font-weight:500}
#calModal .mb{padding:14px 16px 16px}
#calModal .note{margin-bottom:10px;padding:10px 12px;font-size:12.5px;font-weight:400;border-radius:2px}
#calModal .note b{font-weight:500}
#calModal .tbl.cal-dist{overflow:visible;border-radius:2px}
#calModal .cal-dist-h{
  display:flex;align-items:center;gap:10px;
  background:#faf9f5;color:#2a2722;border-bottom:1px solid #e5e1d8;
  padding:10px 14px;font-size:12.5px;font-weight:500;
}
#calModal .cal-dist-h .ct-act{margin-left:auto;height:28px;padding:0 10px;font-size:12px;border-radius:2px}
#calModal .cal-dist-b{padding:12px 14px 14px;background:#fff}
#calModal .cal-empty{font-size:12.5px;color:#7a746b;padding:4px 0}
#calModal .cal-kpis{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
  margin-top:12px;padding-top:12px;border-top:1px solid #e5e1d8;
}
#calModal .cal-kpi{
  min-width:0;background:#faf9f5;border:1px solid #e5e1d8;border-radius:2px;padding:8px 10px;
}
#calModal .cal-kpi span{display:block;font-size:11px;font-weight:500;color:#6f6a62;margin-bottom:3px;letter-spacing:.02em;text-transform:uppercase}
#calModal .cal-kpi .mono{font-size:18px;font-weight:500;color:#2a2722;line-height:1.15}
#calModal .cal-kpi.ok .mono{color:#2f6d3c}
#calModal .cal-kpi.warn .mono{color:#b5772a}
#calModal .cal-kpi.bad .mono{color:#c0562e}
#calModal .cal-aviso{margin-top:8px;padding:8px 12px;border-radius:2px;font-size:12.5px;font-weight:500}
#calModal .cal-card{
  margin-top:12px;padding:12px 14px;background:#fff;border:1px solid #e5e1d8;border-radius:2px;
}
#calModal .cal-line{
  display:grid;grid-template-columns:110px 140px 118px 140px minmax(190px,1fr) 38px;
  gap:10px;min-width:840px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #f0ede6;
}
#calModal .cal-line:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
#calModal .cal-line .lbl{font-size:11px;font-weight:500;color:#6f6a62}
#calModal .cal-line .cell,#calModal .cal-line input,#calModal .cal-line select{
  width:100%;min-height:34px;padding:6px 8px;border:1px solid #d8d4cc;border-radius:2px;background:#fff;font-size:13px;
}
#calModal .cal-line-x{display:flex;align-items:flex-end}
#calModal .cal-line-x button{
  width:100%;height:34px;background:#fff;border:1px solid #edd4d8;color:#c47;
  border-radius:2px;cursor:pointer;padding:0;font-size:16px;line-height:1;
}
#calModal .cal-line-x button:hover{background:#fdeeee}
#calModal .cal-foot{
  display:flex;align-items:flex-end;gap:8px;margin-top:14px;flex-wrap:wrap;
}
#calModal .cal-foot .ct-act{
  height:34px;padding:0 12px;border-radius:2px;font-size:12.5px;justify-content:center;
  width:auto;
}
#calModal .cal-act-obs{background:#fef6e6;border-color:#ead8b6;color:#9a5a14}
#calModal .cal-act-obs:hover{background:#f7eedc;border-color:#d4be90;color:#7a5518}
#calModal .fld .lbl{font-weight:500}
#calModal .fld input,#calModal .fld select,#calModal .fld textarea{border-radius:2px}
/* Validación de Almacenes · Envasado: mismo estilo que el modal de Calidad */
#almModal.alm-env .ct-form-title{font-size:16px;font-weight:500}
#almModal.alm-env .mb{padding:14px 16px 16px}
#almModal.alm-env .note{margin-bottom:10px;padding:10px 12px;font-size:12.5px;font-weight:400;border-radius:2px}
#almModal.alm-env .note b{font-weight:500}
#almModal.alm-env .tbl.cal-dist{overflow:visible;border-radius:2px}
#almModal.alm-env .cal-dist-h{
  display:flex;align-items:center;gap:10px;
  background:#faf9f5;color:#2a2722;border-bottom:1px solid #e5e1d8;
  padding:10px 14px;font-size:12.5px;font-weight:500;
}
#almModal.alm-env .cal-dist-h .ct-act{margin-left:auto;height:28px;padding:0 10px;font-size:12px;border-radius:2px}
#almModal.alm-env .cal-dist-b{padding:12px 14px 14px;background:#fff}
#almModal.alm-env .cal-empty{font-size:12.5px;color:#7a746b;padding:4px 0}
#almModal.alm-env .cal-kpis{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
  margin-top:12px;padding-top:12px;border-top:1px solid #e5e1d8;
}
#almModal.alm-env .cal-kpi{
  min-width:0;background:#faf9f5;border:1px solid #e5e1d8;border-radius:2px;padding:8px 10px;
}
#almModal.alm-env .cal-kpi span{display:block;font-size:11px;font-weight:500;color:#6f6a62;margin-bottom:3px;letter-spacing:.02em;text-transform:uppercase}
#almModal.alm-env .cal-kpi .mono{font-size:18px;font-weight:500;color:#2a2722;line-height:1.15}
#almModal.alm-env .cal-kpi.ok .mono{color:#2f6d3c}
#almModal.alm-env .cal-kpi.warn .mono{color:#b5772a}
#almModal.alm-env .cal-kpi.bad .mono{color:#c0562e}
#almModal.alm-env .cal-aviso{margin-top:8px;padding:8px 12px;border-radius:2px;font-size:12.5px;font-weight:500}
#almModal.alm-env .cal-card{
  margin-top:12px;padding:12px 14px;background:#fff;border:1px solid #e5e1d8;border-radius:2px;
}
#almModal.alm-env .cal-line{
  display:grid;grid-template-columns:110px 140px 118px 140px minmax(190px,1fr) 38px;
  gap:10px;min-width:840px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #f0ede6;
}
#almModal.alm-env .cal-line:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
#almModal.alm-env .cal-line .lbl{font-size:11px;font-weight:500;color:#6f6a62}
#almModal.alm-env .cal-line .cell,#almModal.alm-env .cal-line input,#almModal.alm-env .cal-line select{
  width:100%;min-height:34px;padding:6px 8px;border:1px solid #d8d4cc;border-radius:2px;background:#fff;font-size:13px;
}
#almModal.alm-env .cal-line-x{display:flex;align-items:flex-end}
#almModal.alm-env .cal-line-x button{
  width:100%;height:34px;background:#fff;border:1px solid #edd4d8;color:#c47;
  border-radius:2px;cursor:pointer;padding:0;font-size:16px;line-height:1;
}
#almModal.alm-env .cal-line-x button:hover{background:#fdeeee}
#almModal.alm-env .cal-foot{
  display:flex;align-items:flex-end;gap:8px;margin-top:14px;flex-wrap:wrap;
}
#almModal.alm-env .cal-foot .ct-act{
  height:34px;padding:0 12px;border-radius:2px;font-size:12.5px;justify-content:center;
  width:auto;
}
#almModal.alm-env .cal-act-obs{background:#fef6e6;border-color:#ead8b6;color:#9a5a14}
#almModal.alm-env .cal-act-obs:hover{background:#f7eedc;border-color:#d4be90;color:#7a5518}
#almModal.alm-env .fld .lbl{font-weight:500}
#almModal.alm-env .fld input,#almModal.alm-env .fld select,#almModal.alm-env .fld textarea{border-radius:2px}

#balShell .bal-kpis{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px;
}
#balShell .bal-kpi{
  min-width:0;background:#fff;border:1px solid #e5e1d8;border-radius:2px;padding:10px 12px;
}
#balShell .bal-kpi span{display:block;font-size:11px;font-weight:500;color:#6f6a62;letter-spacing:.02em;text-transform:uppercase;margin-bottom:4px}
#balShell .bal-kpi .mono{font-size:18px;font-weight:500;line-height:1.15}
#balShell .bal-kpi small{font-size:11px;color:#6f6a62;font-weight:400;margin-left:3px}
#balShell .bal-note{margin:0 0 12px;padding:10px 12px;border-radius:2px;font-size:12.5px}
#balShell .bal-note b{font-weight:500}
#balShell .tbl.bal-tbl{overflow:hidden;border-radius:2px;margin-bottom:12px}
#balShell .bal-tbl-h{
  background:#faf9f5;color:#2a2722;border-bottom:1px solid #e5e1d8;
  padding:10px 14px;font-size:12.5px;font-weight:500;
}
#balShell .bal-scroll{overflow-x:auto}
#balShell .bal-th,#balShell .bal-row{
  display:grid;grid-template-columns:88px minmax(90px,1fr) 52px 78px 78px 84px 88px 78px 58px minmax(168px,1.15fr);
  min-width:940px;gap:8px;align-items:center;padding:10px 14px;box-sizing:border-box;
}
#balShell.bal-benef .bal-th,#balShell.bal-benef .bal-row{
  grid-template-columns:88px minmax(90px,1fr) 52px 78px 92px 78px 84px 84px 88px 78px 58px minmax(168px,1.15fr);min-width:1110px;
}
#balShell.bal-tarwi .bal-th,#balShell.bal-tarwi .bal-row{
  grid-template-columns:88px minmax(90px,1fr) 52px 88px 100px minmax(140px,1.2fr) 78px 58px minmax(168px,1.15fr);
}
#balShell .bal-th{
  background:#faf9f5;border-bottom:1px solid #e5e1d8;
  font-size:11px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:#6f6a62;
}
#balShell .bal-row{background:#fff;border-top:1px solid #eef0f4;font-size:12.5px;font-weight:400}
#balShell .bal-row:hover{background:#f4f2ec}
#balShell .bal-row .mono{overflow:hidden;overflow-wrap:anywhere}
#balShell .bal-acts{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
#balShell .bal-acts .ct-act{
  height:26px;padding:0 9px;border-radius:2px;font-size:11px;width:auto;justify-content:center;
}
#balShell .bal-acts .ct-pill{height:auto;min-height:22px;border-radius:2px;font-size:11px}
#balShell .bal-mov{background:#faf9f5;border-top:1px solid #e5e1d8}
#balShell .bal-mov[hidden]{display:none}
#balShell .bal-mov-in{padding:8px 14px 12px}
#balShell .bal-mov-h{font-size:11px;font-weight:500;letter-spacing:.02em;color:#6f6a62;padding:6px 0 4px}
#balShell .bal-mov-f{font-size:12.5px;padding-top:8px;color:#4a463e}
#balShell .bal-mov-f b{font-weight:500}
#balShell .bal-step{
  display:grid;grid-template-columns:92px 86px 128px minmax(220px,1fr) 118px;
  gap:8px;align-items:start;padding:8px 0;border-bottom:1px solid #eef0f4;font-size:12px;
}
#balShell .bal-step .muted,#balShell .muted{color:#6f6a62}
#balShell .bal-step-est{font-size:11px;font-weight:500;margin-top:3px}
#balShell .bal-step-tx{color:#2a2722;line-height:1.4}
#balShell .bal-step-mot{color:#a03050;margin-top:2px}
#balShell .bal-step-pend{text-align:right;font-weight:500}
#balShell .bal-aj-box{margin-top:10px;padding-top:8px;border-top:1px solid #e5e1d8}
#balShell .bal-aj{
  display:grid;grid-template-columns:92px 100px minmax(160px,1fr) 100px 110px;
  gap:8px;padding:7px 0;border-bottom:1px solid #eef0f4;font-size:12px;align-items:center;
}
#balShell .bal-aj-h{border-bottom:0;padding-bottom:4px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:#6f6a62}
#balShell .bal-etapas{margin-top:4px}
@media(max-width:980px){
  #balShell .bal-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
  #balShell .bal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}

#tzShell .tz-kpis{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px;
}
#tzShell .tz-kpi{
  min-width:0;background:#fff;border:1px solid #e5e1d8;border-radius:2px;padding:10px 12px;
}
#tzShell .tz-kpi.bad{border-color:#edd4d8}
#tzShell .tz-kpi span{display:block;font-size:11px;font-weight:500;color:#6f6a62;letter-spacing:.02em;text-transform:uppercase;margin-bottom:4px}
#tzShell .tz-kpi .mono{font-size:18px;font-weight:500;line-height:1.15}
#tzShell .tz-kpi small{font-size:11px;color:#6f6a62;font-weight:400;margin-left:3px}
#tzShell .tz-kpi-s{font-size:11px;color:#6f6a62;margin-top:6px;line-height:1.45;font-weight:400}
#tzShell .tz-sep{color:#d0cbc0;margin:0 6px}
#tzShell .tz-note{margin:0 0 12px;padding:10px 12px;border-radius:2px;font-size:12.5px;font-weight:400}
#tzShell .tz-note b{font-weight:500}
#tzShell .tz-note.warn{background:#faeef0;border-left-color:#a03050;color:#a03050}
#tzShell button.tz-note.warn{display:block;width:100%;text-align:left;cursor:pointer;font-family:inherit;border-top:0;border-right:0;border-bottom:0}
#tzShell button.tz-note.warn .tz-warn-act{font-weight:600;text-decoration:underline}
#tzShell button.tz-note.warn.on{box-shadow:inset 0 0 0 1px #a03050}
#tzShell .tz-note.amber{background:#fbf1e3;border-left-color:#b5772a;color:#7a5518}
#tzShell .tz-note-s{margin-top:6px;font-size:12px;color:#6f6a62}
#tzShell .tz-leg{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:#4a463e}
#tzShell .tz-leg i{display:inline-block;width:8px;height:8px;border-radius:1px;margin-right:6px;vertical-align:middle}
#tzShell .tz-rend-lbl{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#6f6a62;white-space:nowrap}
#tzShell .tz-rend{
  width:64px;height:36px;padding:0 8px;border:1px solid #e5e1d8;border-radius:10px;background:#fff;font-size:13px
}
#tzShell .tz-rend:focus{outline:2px solid #3d7a4e;outline-offset:1px}
#tzShell .tbl.tz-tbl{overflow:hidden;border-radius:2px;margin-bottom:0}
#tzShell .tz-th,#tzShell .tz-row{
  display:grid;grid-template-columns:var(--tz-gc);gap:10px;
  min-width:1420px;padding:10px 16px;align-items:center;box-sizing:border-box;
  font-variant-numeric:tabular-nums
}
#tzShell .tz-th{
  background:#faf9f5;color:#6f6a62;font-size:11px;font-weight:500;
  text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e1d8
}
#tzShell .tz-row{background:#fff;border-top:1px solid #eef0f4;font-size:13px;font-weight:400}
#tzShell .tz-row:hover{background:#f4f2ec}
#tzShell .tz-hijo{background:#fbfaf7;font-size:12.5px}
#tzShell .tz-hijo:hover{background:#f4f2ec}
#tzShell .tz-c{min-width:0;overflow:hidden;overflow-wrap:anywhere}
#tzShell .tz-lote{font-weight:500;color:#3d7a4e}
#tzShell .tz-indent{padding-left:12px}
#tzShell .tz-sub{font-size:11px;font-weight:400;color:#6f6a62;margin-top:3px;line-height:1.35}
#tzShell .tz-mot{display:block;color:#7a3038;font-size:12px;overflow-wrap:anywhere;white-space:normal}
#tzShell .tz-mot.empty{color:#c5c0b6}
#tzShell .tz-faltan{color:#a03050;font-weight:500}
#tzShell .ct-pill{height:auto;min-height:20px;border-radius:2px;padding:2px 8px;font-size:11px;font-weight:500}
#tzShell .tz-panel{background:#faf9f5;border-top:1px solid #e5e1d8;min-width:1420px}
#tzShell .tz-panel-h{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 16px 10px
}
#tzShell .tz-panel-t{font-size:12.5px;font-weight:500;color:#2a2722}
#tzShell .tz-panel-h .muted{font-size:11.5px;color:#6f6a62}
#tzShell .tz-panel-h .ct-act{margin-left:auto;height:28px;padding:0 10px;border-radius:2px;font-size:12px}
#tzShell .tz-panel-b{
  margin:0 16px 14px;border:1px solid #e5e1d8;border-radius:2px;overflow:hidden;background:#fff
}
#tzShell .tz-dth,#tzShell .tz-dtr{display:grid;gap:10px;padding:8px 14px;align-items:center}
#tzShell .tz-dth{
  background:#faf9f5;font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.04em;color:#6f6a62
}
#tzShell .tz-dtr{border-top:1px solid #edeae3;font-size:12px;background:#fff}
#tzShell .tz-hnav{border-radius:2px;box-shadow:none}
#tzShell .tz-hnav-btn,#tzShell .tz-hnav-col{border-radius:2px;font-weight:500}
#tzShell .tz-hnav-col.on{background:#3d7a4e;border-color:#3d7a4e;color:#fff}
#tzShell .tz-pager-btn{border-radius:2px;font-weight:500}
#tzShell .tz-pager-btn.on{background:#3d7a4e;border-color:#3d7a4e;color:#fff}
#tzShell .tz-pager-gap{font-weight:500}
@media(max-width:980px){
  #tzShell .tz-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
  #tzShell .tz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .ct-form-g3,.ct-form-g4,.ct-form-g5{grid-template-columns:1fr 1fr}
  .ct-form-span2{grid-column:span 2}
}

#metaProg{margin-bottom:16px;border-radius:2px}
#metaProg .sec-title{font-weight:500}
#metaProg .meta-prog-s{font-size:12.5px;color:#6f6a62;margin:-4px 0 14px;font-weight:400}
#metaProg .meta-prog-g{display:grid;gap:10px}
#metaProg .meta-prog-lin{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:12px}
#metaProg .meta-prog-chk{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:#2a2722;cursor:pointer}
#metaProg .meta-prog-chk input,#metaProg .meta-prog-n input{accent-color:#3d7a4e;width:15px;height:15px}
#metaProg .meta-prog-r{
  display:grid;grid-template-columns:130px 1fr 1fr 90px;gap:12px;align-items:end;
  padding:8px 0;border-top:1px solid #f0ede6
}
#metaProg .meta-prog-r:first-child{border-top:0;padding-top:0}
#metaProg .meta-prog-n{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;padding-bottom:9px;color:#2a2722;cursor:pointer}
#metaProg .fld{margin:0}
#metaProg .lbl{font-weight:500}
#metaProg .fld input{border-radius:2px}
#metaProg .meta-prog-d{padding-bottom:8px}
#metaProg .meta-prog-d .k{display:block;font-size:11px;font-weight:500;color:#6f6a62;margin-bottom:2px}
#metaProg .meta-prog-d .mono{font-size:16px;font-weight:500}
#metaProg .meta-week{margin-top:16px;padding-top:14px;border-top:1px solid #e5e1d8}
#metaProg .meta-week-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
#metaProg .meta-week-t{font-size:13.5px;font-weight:500;min-width:160px}
#metaProg .meta-week-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
#metaProg .meta-week-d{background:#faf9f5;border:1px solid #e5e1d8;border-radius:2px;min-height:120px;padding:8px}
#metaProg .meta-week-d.fer,#metaProg .meta-week-d.sun{background:#f4f2ec}
#metaProg .meta-week-dh{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;font-weight:500;color:#4a463e;margin-bottom:8px}
#metaProg .meta-week-x{margin-left:auto;background:none;border:0;color:#a03050;font-size:11px;font-weight:500;cursor:pointer;padding:0}
#metaProg .meta-week-x:hover{text-decoration:underline}
#metaProg .meta-week-s{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid #e5e1d8;border-radius:2px;padding:6px;margin-bottom:6px;font-size:11px;line-height:1.35}
#metaProg .meta-week-s .ct-act{height:24px;padding:0 8px;font-size:11px;border-radius:2px}
#metaProg .meta-week-empty{font-size:11.5px;color:#7a746b;padding:8px 0}
@media(max-width:1100px){
  #metaProg .meta-week-g{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  #metaProg .meta-prog-r{grid-template-columns:1fr 1fr;gap:8px}
  #metaProg .meta-prog-n,#metaProg .meta-prog-d{grid-column:1/-1;padding-bottom:0}
  #metaProg .meta-week-g{grid-template-columns:1fr}
}

.hoy-card{padding:0;overflow:hidden;margin-bottom:16px;border-radius:2px}
.hoy-h{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:#fff;border-bottom:1px solid #e5e1d8;
  padding:12px 16px;font-size:14px;font-weight:500;color:#2a2722
}
.hoy-h span{margin-left:auto;font-size:12px;font-weight:500;color:#6f6a62}
.hoy-b{padding:0}
.hoy-lin-h{
  display:flex;align-items:center;gap:8px;
  padding:8px 16px;background:#faf9f5;border-bottom:1px solid #e5e1d8;
  border-left:3px solid #3d7a4e;font-size:11.5px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:#4a463e
}
.hoy-lin-h span{margin-left:auto;font-size:11.5px;font-weight:500;color:#6f6a62;letter-spacing:0;text-transform:none}
.hoy-row{
  display:flex;align-items:center;gap:12px;padding:11px 16px;
  border-bottom:1px solid #eef0f4;background:#fff
}
.hoy-row:hover{background:#f4f2ec}
.hoy-tx{min-width:0;flex:1}
.hoy-t{font-size:13.5px;font-weight:500;color:#2a2722}
.hoy-s{font-size:12px;color:#6f6a62;margin-top:2px}
.hoy-row .ct-act{height:28px;padding:0 12px;border-radius:2px;font-size:12px;flex-shrink:0}
.hoy-dot{width:8px;height:8px;border-radius:50%;background:#c9d6cb;flex-shrink:0}
.hoy-urg{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;flex-shrink:0;
  background:#a03050;color:#fff;font-size:13px;font-weight:700;line-height:1
}
.hoy-urg-lbl{
  display:inline-block;margin-left:6px;padding:1px 7px;border-radius:2px;
  background:#faeef0;color:#a03050;font-size:11px;font-weight:500;vertical-align:middle
}
.hoy-row.urg{background:#fff8f8}
.hoy-row.urg:hover{background:#faeef0}
.urg-card{border:1px solid #edd4d8}
.urg-h{background:#faeef0;color:#a03050;border-bottom-color:#edd4d8}
.urg-h span{color:#a03050}

.ct-lin-head{
  display:flex;align-items:center;gap:10px;margin:20px 0 12px;
  font-size:12px;font-weight:500;color:#6f6a62;
}
.ct-lin-head span{font-size:12px;color:#6f6a62;font-weight:500}
.ct-lin-box{max-width:860px}
.ct-lin-mh{align-items:flex-start}
.ct-lin-kicker{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#6f6a62;margin-bottom:3px}
.ct-lin-title{display:block;font-size:17px;font-weight:500;line-height:1.2}
.ct-lin-subh{font-size:13px;color:#6f6a62;margin-top:4px;font-weight:400}
.ct-lin{
  background:#fff;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden;margin-bottom:16px;
}
.ct-lin-h,.ct-lin-r{
  display:grid;grid-template-columns:minmax(0,1.6fr) 88px 72px 100px 96px 100px 36px;
  gap:10px;align-items:center;width:100%;min-width:0;box-sizing:border-box;
}
.ct-lin-h{
  padding:12px 18px;background:#faf9f5;font-size:11px;font-weight:500;
  text-transform:uppercase;letter-spacing:.05em;color:#6f6a62;
}
.ct-lin-r{
  padding:14px 18px;border-top:1px solid #f0ede6;font-size:13.5px;
}
.ct-lin-r:nth-child(even){background:#fbfaf7}
.ct-lin-r .ct-lin-prod{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;
}
.ct-lin-r .ct-lin-uni{color:#6f6a62}
.ct-lin-r .ct-lin-sub{font-weight:500}
.ct-lin-empty{padding:22px 18px;font-size:13px;color:#7a746b;text-align:center}
.ct-lin-tot,.ct-lin-foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:16px;
  padding:13px 18px;border-top:1px solid #e5e1d8;background:#faf9f5;
  font-size:12.5px;color:#6f6a62;
}
.ct-lin-foot{border:0;background:transparent;padding:0 12px 0 0;margin-right:auto}
.ct-lin-total{color:#2a2722;font-weight:400}
.ct-lin-eq{font-size:14px;font-weight:500;color:#2a2722;font-variant-numeric:tabular-nums}
.ct-lin-add{
  background:#f4f8f4;border:1px solid #d5e2d7;border-radius:12px;padding:16px 16px 14px;
}
.ct-lin-add-t{display:block;font-size:12px;font-weight:500;color:#4a6b52;margin-bottom:12px;letter-spacing:.03em}
.ct-lin-addg{display:grid;grid-template-columns:2fr 1fr 90px 1fr 140px auto;gap:10px;align-items:end}
.ct-lin-preview{margin-top:10px;font-size:13px;color:#5c616a;font-weight:400}
.ct-lin-preview .ct-lin-eq{color:#2f6d3c;font-size:13px}
.ct-lin-mf{align-items:center;gap:10px}

/* Editor de productos comprometidos (filas editables) */
.modal .box.ct-form.ct-le-box{max-width:1040px}
.ct-le-r{
  display:grid;grid-template-columns:minmax(0,2.2fr) 104px 86px 124px 96px 118px 32px;
  gap:10px;align-items:center;min-width:0;
}
.ct-le-h{padding:11px 16px;background:#faf9f5;border-bottom:1px solid #efece5;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#736d65}
.ct-le-row{padding:10px 16px 9px;border-top:1px solid #f1eee8}
.ct-le-row:first-child{border-top:0}
.ct-le-row:hover{background:#fcfbf8}
.ct-le-in{
  width:100%;height:36px;padding:0 10px;border:1px solid #e3dfd6;border-radius:8px;background:#fff;
  font-size:13.5px;color:#1f1d1a;box-sizing:border-box;transition:border-color .12s,box-shadow .12s;
}
.ct-le-in.right{text-align:right}
.ct-le-in:hover{border-color:#cfc9bc}
.ct-le-in:focus{outline:none;border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.15)}
.ct-le-sub{font-size:14px;font-weight:600;color:#1f1d1a;font-variant-numeric:tabular-nums}
.ct-le-sub.nil{color:#c4beb2;font-weight:400}
.ct-le-x{
  width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:#b0a99c;cursor:pointer;
  display:grid;place-items:center;transition:background .12s,color .12s;
}
.ct-le-x:hover{background:#fdeeee;color:#a03050}
.ct-le-x:focus-visible{outline:2px solid #a03050;outline-offset:1px}
.ct-le-info{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:6px;font-size:11.5px;color:#6f6a62;min-height:0}
.ct-le-info:empty{display:none}
.ct-le-kg{margin-left:auto;font-weight:600;color:#2f6d3c;font-variant-numeric:tabular-nums}
.ct-le-warn{color:#b5772a}
.ct-lin-add .ct-le-info{margin-top:8px}
@media(max-width:720px){
  .ct-le-r{grid-template-columns:minmax(0,1fr) 84px 32px;grid-template-areas:"p p x" "c u u" "pr s s" "e e e"}
  .ct-le-r > :nth-child(1){grid-area:p}.ct-le-r > :nth-child(2){grid-area:c}.ct-le-r > :nth-child(3){grid-area:u}
  .ct-le-r > :nth-child(4){grid-area:pr}.ct-le-r > :nth-child(5){grid-area:e}.ct-le-r > :nth-child(6){grid-area:s}.ct-le-r > :nth-child(7){grid-area:x}
  .ct-le-h{display:none}
}

/* Productos en la ventana de detalle */
.ct-dprod{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:10px 0;border-bottom:1px solid #f1eee8}
.ct-dprod:first-child{padding-top:0}
.ct-dprod-n{font-size:13.5px;font-weight:500;color:#1f1d1a;min-width:0;overflow-wrap:anywhere}
.ct-dprod-s{grid-column:1;font-size:12px;color:#6f6a62;font-variant-numeric:tabular-nums}
.ct-dprod-t{grid-row:1/3;grid-column:2;align-self:center;text-align:right;font-size:14px;font-weight:600;color:#1f1d1a;font-variant-numeric:tabular-nums;white-space:nowrap}
.ct-dprod-t.nil{font-size:12px;font-weight:500;color:#b5772a}
.ct-dprod-tot{display:flex;align-items:center;gap:10px;padding-top:12px}
.ct-dprod-tot span{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#6f6a62}
.ct-dprod-tot b{margin-left:auto;font-size:16px;font-weight:600;color:#2f6d3c;font-variant-numeric:tabular-nums}
.ct-dprod-edit{margin-right:4px}
.ct-lin-box .lbl,.ct-lin-box .btn{font-weight:500}
@media(max-width:720px){
  .ct-lin-addg{grid-template-columns:1fr 1fr; }
  .ct-lin-h,.ct-lin-r{grid-template-columns:minmax(0,1.4fr) 72px 56px 84px 80px 28px}
  .ct-lin-h > :nth-child(4),.ct-lin-r > :nth-child(4){display:none}
}

@media(max-width:1280px){
  .ct-cols,.ct-row .ct-grid{
    grid-template-columns:minmax(0,1.5fr) minmax(0,.95fr) minmax(0,.9fr) minmax(0,2.9fr) minmax(0,.65fr) 40px;
    gap:0 10px;padding:0 14px;
  }
  .ct-hide-md{display:none!important}
  .ct-prop{display:none}
  .ct-gh,.ct-addrow,.ct-sub{padding-left:14px;padding-right:14px}
  .ct-hero{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .ct-shell{margin:0;padding-bottom:88px}
  .ct-sticky{padding:0 0 10px;background:#f6f4ef}
  .ct-body{padding:0;overflow:hidden;background:transparent;border:0}
  .ct-toolbar{gap:8px}
  .ct-search{max-width:none;min-width:0;flex:1 1 100%}
  .ct-search input{height:44px;font-size:16px}
  .ct-modes,.ct-sel,.ct-chip{height:40px}
  .ct-mode{min-height:34px}
  .ct-chips{width:100%;overflow:visible;flex-wrap:wrap;padding-bottom:2px}
  .ct-cols{display:none}
  .ct-group{
    min-width:0;background:transparent;border:0;box-shadow:none;overflow:visible;margin:0 0 18px;
  }
  .ct-gh{background:transparent;padding:4px 4px 8px;min-height:36px}
  .ct-gbar{display:none}
  .ct-row{
    border:1px solid var(--ct-line);border-radius:14px;margin:0 0 8px;min-height:0;
    box-shadow:var(--ct-shadow);
  }
  .ct-row.late{box-shadow:var(--ct-shadow),inset 3px 0 0 #d64545}
  .ct-gbody > .ct-row:first-child{border-top:1px solid var(--ct-line)}
  .ct-row .ct-grid{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "name prio"
      "cli  st"
      "fechas fechas"
      "av   av";
    min-width:0;gap:8px 12px;padding:14px 16px;align-items:center;
  }
  .ct-name{grid-area:name}
  .ct-c-prio{grid-area:prio}
  .ct-col-cli{grid-area:cli}
  .ct-c-st{grid-area:st;justify-self:end}
  .ct-c-fechas{grid-area:fechas}
  .ct-fechas{grid-template-columns:repeat(var(--ct-nf,4),minmax(0,1fr));padding:0}
  .ct-row .ct-c-extra{display:none}
  .ct-fechas > .ct-dbadge{grid-column:1 / -1}
  .ct-c-av{grid-area:av;justify-self:end}
  .ct-hide-sm{display:flex!important}
  .ct-addrow{
    border:1px dashed var(--ct-line);border-radius:12px;margin-top:4px;padding:0 16px;
    min-height:44px;
  }
  .ct-pane .box{width:100%;border-radius:0}
  .ct-fields{grid-template-columns:1fr}
  .ct-hero{grid-template-columns:1fr 1fr}
  .ct-new{
    position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));
    z-index:20;height:48px;padding:0 18px;border-radius:999px;
    box-shadow:0 8px 24px rgba(61,122,78,.28);
  }
  .ct-board{padding-bottom:80px;grid-template-columns:1fr}
  .ct-col{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .ct-pane .box,.ct-chev,.ct-acc > summary::before{animation:none!important;transition:none!important}
}

/* ==========================================================
   CONTRATOS · acabado sobrio
   Misma paleta verde/crema, con menos relleno de color, líneas
   más finas y tipografía más firme. Va al final para ganar a
   las reglas base sin tocarlas.
   ========================================================== */
.ct-shell{--ct-line:#e6e2d9;--ct-hover:#f8f7f3;--ct-row:56px}

/* Navegación superior: control segmentado en vez de botones sueltos */
.ct-secs{gap:0;padding:3px;background:#fff;border:1px solid var(--ct-line);border-radius:10px;display:inline-flex}
.ct-sec{border:0;border-radius:7px;background:transparent;padding:7px 16px;min-height:34px;font-size:13.5px}
.ct-sec:hover{background:#f4f2ec;color:var(--ct-text)}
.ct-sec.on{background:var(--ct-accent);color:#fff;box-shadow:0 1px 2px rgba(47,109,60,.25)}
.ct-tab{font-size:13.5px;padding:10px 12px 12px}
.ct-tab:hover{background:transparent}
.ct-tab.on{font-weight:600}
.ct-tab.on::after{height:2px;left:10px;right:10px}
.ct-chip,.ct-sel,.ct-search input,.ct-modes{border-radius:8px}
.ct-chip{height:32px;font-size:12.5px}
.ct-chip.on{background:#2f6d3c;border-color:#2f6d3c;color:#fff}
.ct-chip.on b{opacity:.85}
.ct-new{border-radius:8px;font-weight:600}

/* Tabla */
.ct-body{border-color:var(--ct-line);border-radius:10px;box-shadow:0 1px 2px rgba(42,39,34,.04),0 4px 16px -8px rgba(42,39,34,.08)}
.ct-cols{
  height:40px;background:#fff;color:#736d65;font-size:11px;font-weight:600;letter-spacing:.08em;
  border-bottom:1px solid var(--ct-line);
}
@media(min-width:821px){
  .ct-group{border-top:1px solid var(--ct-line)}
  .ct-gh{min-height:40px;background:#fbfaf7;border-bottom:1px solid #efece5}
  .ct-gh:hover{background:#f6f4ef}
  .ct-row{border-top:1px solid #f1eee8}
  .ct-row.late{box-shadow:inset 3px 0 0 #c9403a}
}
.ct-gname{font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#4a463e}
.ct-gcount{height:20px;min-width:22px;padding:0 7px;border-radius:5px;background:#fff;color:#6a655c;box-shadow:inset 0 0 0 1px var(--ct-line);font-size:11px;font-weight:600}
.ct-gbar{height:2px;opacity:1}

.ct-row{transition:background .12s ease}
.ct-gbody > .ct-row:nth-child(even){background:#fff}
.ct-row:hover,.ct-gbody > .ct-row:nth-child(even):hover{background:var(--ct-hover)}
.ct-row.on,.ct-gbody > .ct-row:nth-child(even).on{background:#f3f8f4;box-shadow:inset 3px 0 0 var(--ct-accent)}
.ct-title{font-size:13.5px;font-weight:600;color:#1f1d1a;letter-spacing:-.005em;font-variant-numeric:tabular-nums}
.ct-stdot{width:8px;height:8px;box-shadow:none}
.ct-av{width:26px;height:26px;font-size:11px;font-weight:600;border-radius:7px}
.ct-cli{font-size:13px;color:#3a3630}
.ct-pill{height:24px;padding:0 9px;border-radius:6px;font-size:11.5px;font-weight:600;letter-spacing:.01em}
.ct-due{font-size:12px;padding:3px 8px;border-radius:6px;font-variant-numeric:tabular-nums}
.ct-c-monto{font-size:13px;font-weight:600;color:#1f1d1a}
.ct-prog{height:4px;max-width:64px;background:#ece9e2}
.ct-prog-n{font-size:12px;color:#4a463e}
.ct-flag{width:28px;height:28px;border-radius:7px}
.ct-sub{background:#fbfaf7;border-top:1px solid #f1eee8;font-size:13px}
.ct-addrow{font-size:13px;color:#6f6a62}
.ct-act{border-radius:8px;height:32px;font-weight:500;box-shadow:none}
.ct-act-on{font-weight:600}

/* Tablero */
.ct-col{background:#f1eee8;border-radius:10px}
.ct-card{border-radius:9px;border-color:#ebe7de;box-shadow:0 1px 2px rgba(42,39,34,.05)}
.ct-card-t{font-weight:600;font-size:13.5px;color:#1f1d1a}

/* ==========================================================
   CONTRATOS · detalle en ventana grande
   ========================================================== */
.ct-pane.ct-det{
  justify-content:center;align-items:center;padding:24px;
  background:rgba(28,33,29,.46);backdrop-filter:blur(2px);
}
.ct-det .box{
  width:min(1240px,100%);height:min(900px,100%);max-height:100%;
  border-radius:14px;overflow:hidden;background:#f5f3ee;
  box-shadow:0 24px 64px -12px rgba(20,24,21,.35),0 0 0 1px rgba(20,24,21,.06);
  animation:ctDetIn .2s cubic-bezier(.2,.8,.2,1);
}
@keyframes ctDetIn{from{transform:translateY(10px) scale(.985);opacity:0}to{transform:none;opacity:1}}
.ct-det-h{
  position:relative;display:flex;align-items:flex-start;gap:20px;flex-shrink:0;
  padding:20px 24px 18px;background:#fff;border-bottom:1px solid var(--ct-line,#e6e2d9);
}
.ct-det-id{flex:1;min-width:0}
.ct-det-title{margin:0;font-size:22px;font-weight:600;line-height:1.2;letter-spacing:-.015em;color:#1f1d1a;overflow-wrap:anywhere}
.ct-det-sub{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:13.5px;color:#5c574e}
.ct-det-sub .ct-av{width:22px;height:22px;font-size:11px;border-radius:6px}
.ct-det-dot{color:#c4beb2}
.ct-det .ct-pane-pills{margin-top:12px}
.ct-det-st{display:flex;flex-direction:column;gap:5px;width:240px;flex-shrink:0}
.ct-det-st label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6f6a62}
.ct-det-st .ct-pane-dd{flex:none}
.ct-det-st .ct-pane-sel{height:36px}
.ct-det .ct-pane-x{margin-left:0;background:#f4f2ec}
.ct-det .ct-pane-x:hover{background:#ebe8e0}

.ct-det-b{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px;align-items:start;
  padding:18px 24px 24px;
}
.ct-det-main,.ct-det-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.ct-det .ct-pane-resumen{margin:0}

.ct-dcard{background:#fff;border:1px solid var(--ct-line,#e6e2d9);border-radius:12px;overflow:hidden}
.ct-dcard-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #f1eee8}
.ct-dcard-h h3{margin:0;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#4a463e}
.ct-dcard-meta{
  margin-left:auto;height:20px;padding:0 8px;border-radius:5px;display:inline-flex;align-items:center;
  background:#f4f2ec;color:#5c574e;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;
}
.ct-dcard-b{padding:12px 16px 14px}
.ct-dcard .ct-fields{gap:12px 18px}
.ct-dcard .ct-field .lbl{font-size:11px;letter-spacing:.02em;color:#736d65}
.ct-dcard .ct-field .val{font-size:13.5px;color:#1f1d1a}
.ct-dcard .ct-check{padding:9px 0}
.ct-dcard .ct-sub{border-radius:8px;border:1px solid #f1eee8}
.ct-dcard .ct-pane-track,.ct-dcard .ct-pane-track-h{margin:0;padding:0;border:0}

.ct-det .ct-pane-acts{
  align-items:center;gap:8px;padding:12px 24px calc(12px + env(safe-area-inset-bottom));
  background:#fff;border-top:1px solid var(--ct-line,#e6e2d9);
}
.ct-det-gap{flex:1}
.ct-det .ct-pane-acts .ct-act{height:36px;padding:0 14px}

@media(max-width:1024px){
  .ct-det-b{grid-template-columns:1fr}
  .ct-det-st{width:200px}
}
@media(max-width:820px){
  .ct-pane.ct-det{padding:0}
  .ct-det .box{width:100%;height:100%;border-radius:0}
  .ct-det-h{flex-wrap:wrap;padding:16px 16px 14px;gap:12px}
  .ct-det-title{font-size:19px}
  .ct-det-st{order:3;width:100%}
  .ct-det .ct-pane-x{position:absolute;top:12px;right:12px}
  .ct-det-b{padding:14px 12px 20px;gap:12px}
  .ct-det .ct-pane-acts{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
  .ct-det-gap{display:none}
}
@media(prefers-reduced-motion:reduce){.ct-det .box,.ct-row{animation:none!important;transition:none!important}}

/* —— Pedidos (dentro de Contratos › Pedidos) —— */
.ped-banner{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:#e8f1ea;border:1px solid #c9d6cb;border-radius:2px;
  padding:12px 16px;margin-bottom:14px;font-size:13.5px;color:#2f6d3c;font-weight:500;
}
.ped-page{padding:4px 2px 8px;min-width:0}
.ct-body:has(.ped-page){
  padding:16px 18px;background:transparent;border:0;border-radius:0;overflow:visible;
}
.ped-hint{font-size:12.5px;color:#6f6a62;line-height:1.5;margin:0 0 14px;max-width:72ch}
.ped-form{
  background:#fff;border:1px solid #e5e1d8;border-radius:2px;
  padding:16px 18px;margin-bottom:22px;
}
.ped-form-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.ped-form-t{font-size:14.5px;font-weight:500;color:#2a2722;margin-right:auto}
.ped-form-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ped-span2{grid-column:span 2}
.ped-ctpick{position:relative}
.ped-ctpick.open{z-index:30}
.ped-ctpick-list{
  position:absolute;left:0;right:0;top:calc(100% - 2px);z-index:31;
  max-height:260px;overflow:auto;background:#fff;
  border:1px solid #d8d4cc;border-radius:8px;
  box-shadow:0 8px 24px rgba(42,39,34,.12);
}
.ped-ctpick-op{
  display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #f0ede6;
  background:#fff;padding:8px 12px;font-size:13px;line-height:1.35;cursor:pointer;
  font-family:inherit;color:#2a2722;
}
.ped-ctpick-op:last-child{border-bottom:0}
.ped-ctpick-op:hover,.ped-ctpick-op.on{background:#f4f8f4}
.ped-ctpick-empty{padding:10px 12px;font-size:12.5px;color:#6f6a62}
.ped-opt{font-weight:400;color:#7a746b}
.ped-ro,.ped-ro-box{
  background:#f6f4ef;color:#4a463e;border:1px solid #e5e1d8;border-radius:2px;
  padding:9px 12px;font-size:13px;width:100%;
}
.ped-form-lin{
  display:flex;align-items:center;gap:10px;margin:16px 0 10px;
  padding-top:14px;border-top:1px solid #e5e1d8;
}
.ped-form-lin-t{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62}
.ped-lin-wrap{overflow-x:auto}
.ped-lin-h,.ped-lin-r{
  display:grid;grid-template-columns:minmax(160px,1fr) 128px 104px 86px 74px 72px 82px 88px 118px 36px;
  gap:6px;min-width:994px;align-items:center;
}
.ped-lin-h{
  padding:7px 0;font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.04em;color:#6f6a62;
}
.ped-lin-r{margin-bottom:6px}
.ped-lin-r .cell{
  width:100%;padding:7px 9px;border:1px solid #e5e1d8;border-radius:2px;
  font-size:12.5px;background:#fff;min-height:34px;
}
.ped-form-f{margin-top:14px}
.ped-list-h{
  margin:8px 0 14px;padding:14px 16px;
  background:#fff;border:1px solid #e5e1d8;border-radius:2px;
}
.ped-list-h .ped-form-t{margin-right:0;margin-bottom:4px}
.ped-list-s{font-size:12.5px;color:#6f6a62;line-height:1.45;max-width:72ch}
.ped-list-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.ped-list-top .ct-search{flex:1;min-width:200px;max-width:360px;margin-top:2px}
.ped-list-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:12px;padding-top:12px;border-top:1px solid #eef0f4;
}
.ped-list-meta{font-size:12.5px;color:#6f6a62;font-weight:500}
.ped-pag{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ped-pag-n{font-size:12.5px;color:#4a463e;font-weight:500;min-width:72px;text-align:center}
.ped-pag-pp{display:flex;align-items:center;gap:6px;font-size:12px;color:#6f6a62;margin-left:4px}
.ped-pag-pp select{
  padding:5px 8px;border:1px solid #e5e1d8;border-radius:2px;background:#fff;
  font-size:12.5px;color:#2a2722;min-height:30px;
}
.ped-pag .ct-act:disabled{opacity:.4;cursor:default}
.ped-list{display:flex;flex-direction:column;gap:0}
.ped-empty-card{
  background:#fff;border:1px solid #e5e1d8;border-radius:2px;
  padding:28px 18px;text-align:center;color:#7a746b;font-size:13.5px;
}
.ped-card{
  background:#fff;border:1px solid #e5e1d8;border-radius:2px;
  margin-bottom:14px;overflow:hidden;
}
.ped-card-h{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:14px 16px;border-bottom:1px solid #eef0f4;
}
.ped-nro{font-size:15px;font-weight:500;color:#3d7a4e}
.ped-cli{font-size:12.5px;color:#4a463e;margin-top:2px}
.ped-meta{display:flex;flex-direction:column;gap:2px;font-size:12.5px}
.ped-meta .k{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62}
.ped-card-acts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.ped-kpis{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;
  padding:12px 16px;background:#faf9f5;border-bottom:1px solid #eef0f4;
}
.ped-kpi span{display:block;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62;margin-bottom:2px}
.ped-kpi .mono{font-size:17px;font-weight:500;color:#2a2722}
.ped-kpi-av{flex:1;min-width:160px}
.ped-ok{color:#2f6d3c!important}
.ped-warn{color:#b5772a!important}
.ped-bar{
  height:7px;background:#f0ede6;border-radius:2px;overflow:hidden;flex:1;min-width:48px;
}
.ped-bar i{display:block;height:100%;border-radius:2px}
.ped-bar-lg{height:9px;margin-top:4px}
.ped-tbl-wrap{overflow-x:auto}
.ped-tbl{min-width:980px}
.ped-th,.ped-r{
  display:grid;grid-template-columns:minmax(160px,1fr) 92px 84px 86px 86px 86px 70px 82px minmax(200px,1.2fr);
  gap:8px;align-items:center;padding:10px 16px;
}
.ped-th{
  background:#faf9f5;font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.04em;color:#6f6a62;
}
.ped-th .right,.ped-r-num{text-align:right}
.ped-r{border-bottom:1px solid #f0ede6;font-size:12.5px}
.ped-r:hover{background:#fbfaf7}
.ped-r-prod{font-weight:500;color:#2a2722}
.ped-r-prod .mono{display:block;font-size:11px;font-weight:400;color:#6f6a62;margin-top:2px}
.ped-r-lote{color:#3d7a4e;font-weight:500}
.ped-r-num span,.ped-r-m{display:block;font-size:11px;font-weight:400;color:#6f6a62}
.ped-r-m{font-size:11.5px;color:#6f6a62}
.ped-r-av{display:flex;align-items:center;gap:7px}
.ped-r-av .mono{font-size:11px;color:#6f6a62;min-width:36px}
.ped-r-av .ct-act{height:28px;padding:0 10px;font-size:11.5px;white-space:nowrap}
.ped-inp{
  width:78px;text-align:right;padding:5px 7px;border:1px solid #e5e1d8;
  border-radius:2px;font-size:12.5px;background:#fff;
}
.ped-empty{padding:14px 16px;font-size:12.5px;color:#7a746b}
/* Pantalla angosta: la tabla de productos se reacomoda como fichas (sin scroll
   horizontal). Cada dato lleva su etiqueta arriba, puesta por CSS según su posición. */
@media(max-width:1080px){
  .ped-tbl{min-width:0}
  .ped-tbl-wrap{overflow-x:visible}
  .ped-th{display:none}
  .ped-r{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;padding:12px 16px}
  .ped-r>div{min-width:0}
  .ped-r-prod{grid-column:1/-1;font-size:13.5px}
  .ped-r-av{grid-column:1/-1;flex-wrap:wrap}
  .ped-th .right,.ped-r-num{text-align:left}
  .ped-r>div:nth-child(n+2):nth-child(-n+8)::before{
    display:block;font-size:10px;font-weight:600;text-transform:uppercase;
    letter-spacing:.05em;color:#8a8478;margin-bottom:2px;font-family:inherit}
  .ped-r>div:nth-child(2)::before{content:"Lote"}
  .ped-r>div:nth-child(3)::before{content:"Etiquetas"}
  .ped-r>div:nth-child(4)::before{content:"Pedido"}
  .ped-r>div:nth-child(5)::before{content:"Producido"}
  .ped-r>div:nth-child(6)::before{content:"Saldo"}
  .ped-r>div:nth-child(7)::before{content:"Unidad"}
  .ped-r>div:nth-child(8)::before{content:"Vence"}
  .ped-inp{width:100%;max-width:110px;text-align:left}
}
@media(max-width:560px){
  .ped-r{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ped-kpis{gap:14px}
  .ped-kpi .mono{font-size:15px}
}
@media(max-width:900px){
  .ped-form-g{grid-template-columns:1fr 1fr}
  .ped-span2{grid-column:span 2}
}
@media(max-width:640px){
  .ped-form-g{grid-template-columns:1fr}
  .ped-span2{grid-column:auto}
}

/* Planear MP modal */
.ped-plan-res{
  background:#faf9f5;border:1px solid #e5e1d8;border-radius:2px;padding:14px 16px;
}
.ped-plan-kpis{display:flex;gap:20px;flex-wrap:wrap;align-items:center}
.ped-plan-kpis .ped-kpi .mono{font-size:16px}
.ped-plan-kpis .ped-kpi .mono small{font-size:11px;font-weight:400;margin-left:3px;color:#6f6a62}
.ped-plan-kpi-tx{font-size:12.5px;color:#6f6a62;max-width:280px;line-height:1.4}
.ped-plan-formula{margin-top:10px;padding:9px 12px;border-radius:9px;background:#eef5ef;border:1px solid #cfe0d3;color:#2f6d3c;font-size:12.5px;line-height:1.5}
.ped-plan-aviso{
  margin-top:10px;padding:10px 12px;background:#fbf1e3;border:1px solid #e5cfa6;
  border-radius:2px;color:#7a5518;font-size:12.5px;line-height:1.45;
}
.ped-plan-th,.ped-plan-r{
  display:grid;grid-template-columns:minmax(140px,1.3fr) minmax(150px,1.4fr) 104px 88px 70px 36px;
  gap:8px;align-items:end;
}
.ped-plan-th{
  padding:0 0 8px;font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.04em;color:#6f6a62;
}
.ped-plan-r{margin-bottom:8px}
.ped-plan-busca{grid-column:1/-1;margin-top:-2px}
.ped-plan-busca input{width:100%;max-width:340px;padding:5px 9px;border:1px dashed #d8d3c8;border-radius:2px;font-size:12px;background:#fcfbf8}
.ped-plan-busca input:focus{border-style:solid;border-color:#8a8478;outline:none;background:#fff}
.ped-plan-busca-msg{font-size:12px;line-height:1.45;margin-top:4px}
.ped-plan-busca-msg:empty{display:none}
.ped-plan-busca-msg.ok{color:#2f6d3c}
.ped-plan-busca-msg.bad{color:#a03050}
.ped-plan-r .cell{
  width:100%;padding:7px 9px;border:1px solid #e5e1d8;border-radius:2px;
  font-size:12.5px;background:#fff;min-height:34px;
}
.ped-plan-saldos{padding:0}
#planModal .ct-form-sec-meta{font-size:11.5px;color:#7a746b;font-weight:500}

/* —— Producción de tarwi (stock) —— */
.tw-shell{padding:0 0 24px;color:#2a2722}
.tw-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-bottom:18px;
}
.tw-kicker{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#6f6a62;margin-bottom:3px}
.tw-title{font-size:20px;font-weight:500;line-height:1.2}
.tw-sub{font-size:12.5px;color:#6f6a62;margin-top:4px;max-width:56ch;line-height:1.45}
.tw-sec-h{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  font-size:14px;font-weight:500;margin:18px 0 10px;
}
.tw-sec-s{font-size:12px;font-weight:400;color:#6f6a62}
.tw-tiles{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;
}
.tw-tile{
  background:#fff;border:1px solid #e5e1d8;border-radius:2px;padding:14px 14px 12px;
  cursor:pointer;min-height:132px;display:flex;flex-direction:column;gap:4px;
}
.tw-tile:hover{border-color:#c9d6cb;background:#fbfaf7}
.tw-tile.fin{cursor:default}
.tw-tile.fin:hover{border-color:#e5e1d8;background:#fff}
.tw-tile-t{font-size:12.5px;font-weight:500;color:#4a463e}
.tw-tile-q{font-size:22px;font-weight:500;color:#2a2722;margin:4px 0 2px}
.tw-tile-q small{font-size:12px;font-weight:400;color:#6f6a62}
.tw-tile-s,.tw-tile-n{font-size:11.5px;color:#6f6a62}
.tw-tile .ct-act{margin-top:auto;align-self:flex-start;height:28px;padding:0 10px;font-size:12px}
.tw-tile-fin{
  margin-top:auto;font-size:11.5px;color:#6f6a62;padding-top:6px;
}
.tw-panel{
  background:#fff;border:1px solid #e5e1d8;border-radius:2px;overflow:hidden;
}
.tw-empty{padding:22px 16px;text-align:center;color:#7a746b;font-size:13.5px}
.tw-tbl{min-width:720px}
.tw-mov .tw-th,.tw-mov .tw-row{grid-template-columns:110px minmax(100px,.9fr) minmax(140px,1.2fr) 90px 90px minmax(110px,.9fr)}
.tw-th,.tw-row{
  display:grid;grid-template-columns:minmax(100px,.9fr) minmax(120px,1.1fr) 84px 84px 84px 92px minmax(90px,.8fr) minmax(90px,.8fr);
  gap:8px;align-items:center;padding:10px 14px;font-size:12.5px;
}
.tw-th{
  background:#faf9f5;font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.04em;color:#6f6a62;
}
.tw-th .right,.tw-row .right{text-align:right}
.tw-row{border-top:1px solid #f0ede6}
.tw-row:hover{background:#fbfaf7}
.tw-row-lote{font-weight:500;color:#3d7a4e}
.tw-ok{color:#2f6d3c;font-weight:500}
.tw-muted{color:#6f6a62;font-size:12px}
.tw-orders{padding:4px 14px}
.tw-order{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f0ede6;font-size:13px}
.tw-order:last-child{border-bottom:0}
.tw-order small{display:block;color:#6f6a62;margin-top:3px}
.tw-order .ct-act{flex:none}
.tw-order-actions{display:flex;gap:6px;flex:none}
.tw-history{border-top:1px solid #e5e1d8;margin-top:4px}
.tw-history-title{padding:10px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62}
@media(max-width:1100px){
  .tw-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .tw-tiles{grid-template-columns:1fr}
  .tw-form,.tw-branches{grid-template-columns:1fr}
  .tw-order{align-items:flex-start;flex-direction:column}
  .tw-order-actions{width:100%}
}
.tw-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.tw-nav button{
  font:inherit;padding:8px 12px;border:1px solid #e5e1d8;border-radius:2px;background:#fff;color:#4a463e;cursor:pointer;
}
.tw-nav button[aria-pressed="true"]{background:#3d7a4e;color:#fff;border-color:#3d7a4e}
.tw-h3{font-size:15px;font-weight:500;margin:0 0 8px}
.tw-pad{padding:14px 16px}
.tw-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.tw-lbl{display:block;font-size:12px;color:#6f6a62}
.tw-inp{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid #e5e1d8;border-radius:2px;background:#fff;color:#2a2722;font:inherit}
.tw-note{color:#6f6a62;font-size:12.5px;margin:8px 0}
.tw-result{padding:12px;background:#faf9f5;border-radius:2px;margin-top:12px}
.tw-result-row{display:flex;justify-content:space-between;gap:10px}
.tw-scroll{overflow-x:auto}
.tw-table{width:100%;border-collapse:collapse}
.tw-table th,.tw-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #f0ede6;font-size:13px;vertical-align:top}
.tw-table th{color:#6f6a62;font-weight:500;font-size:11px}
.tw-acc{display:flex;gap:6px;flex-wrap:wrap}
.tw-late{color:#a15c12;font-weight:500}
.tw-tag{display:inline-block;padding:2px 7px;border-radius:2px;background:#faf9f5;color:#6f6a62;font-size:12px}
.tw-flow{max-width:460px;margin:8px auto;text-align:center}
.tw-node{padding:12px;background:#fff;border:1px solid #e5e1d8;border-radius:2px}
.tw-arrow{text-align:center;color:#6f6a62;padding:4px}
.tw-branches{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tw-branches .tw-node{text-align:center}
.tw-maqs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.tw-maq{background:#fff;border:1px solid #e5e1d8;border-radius:2px;padding:14px}
.tw-maq-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.tw-meter{height:7px;background:#faf9f5;border-radius:4px;margin:10px 0;overflow:hidden}
.tw-meter span{display:block;height:100%;background:#3d7a4e}
.tw-actions{margin-top:12px}
@media(max-width:750px){
  .tw-maqs{grid-template-columns:1fr}
}

/* Inventarios: tabla compacta para evitar scroll horizontal de columnas que sí caben. */
.inv-fam-h{font-size:12px;gap:7px;padding:10px 12px}
.inv-fam-h>.right{font-variant-numeric:tabular-nums}
.inv-grp{display:grid;gap:7px;padding:0 12px;margin-bottom:-1px}
.inv-grp>*{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:center;padding:5px 4px;border-radius:6px 6px 0 0}
.inv-grp>[data-invgrp]{border:0;border-top:2px solid var(--c);background:var(--bg);color:var(--c);font-family:inherit;cursor:pointer;transition:filter .12s}
.inv-grp>[data-invgrp]:hover{filter:brightness(.96)}
.inv-grp>[data-invgrp].on{background:var(--c);color:#fff}
.inv-grp>[data-invgrp].on::after{content:" ✕";font-weight:400}
.inv-colbar>span{font-size:11px;color:#6f6a62;font-weight:600;margin-right:2px;align-self:center}
.inv-tip{cursor:help}
#invScroll .th{gap:6px;padding:9px 10px;font-size:11px;letter-spacing:.02em;line-height:1.2;hyphens:manual}
#invScroll .th>div{min-width:0;overflow-wrap:anywhere}
#invScroll .inv-fam-h{gap:6px;padding:10px;font-size:11.5px}
#invScroll .inv-fam-h>div{min-width:0;overflow-wrap:anywhere}
#invScroll .inv-grp{gap:6px;padding:0 10px}
.inv-mot{font-size:11px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv-fam-h .inv-tip{text-decoration:underline dotted #c9c3b6;text-underline-offset:3px}
@media(max-width:900px){.inv-fam-h{font-size:11px;gap:5px;padding:9px 8px}.inv-stock-row>div:nth-child(n+5):nth-child(-n+14){display:none}.inv-grp,.inv-colbar{display:none!important}#invScroll .th,#invScroll .inv-fam-h{gap:5px;padding:9px 8px}.inv-stock-row{grid-template-columns:26px minmax(0,1fr) minmax(0,1fr) minmax(82px,.8fr) 18px!important;min-width:0!important}.inv-stock-row>div{min-width:0;overflow:hidden;text-overflow:ellipsis}.inv-stock-row>div:nth-child(2),.inv-stock-row>div:nth-child(3){font-size:11px}.inv-stock-row .badge{font-size:11px;padding:3px 5px}}

/* Producción de tarwi: misma composición y paleta de la maqueta. */
#tarwi-app{--paper:light-dark(#fff,#192622);--base:light-dark(#f3f6f4,#101a17);--ink:light-dark(#1c332a,#e4eee8);--sub:light-dark(#53685e,#afc2b7);--line:light-dark(#dbe5de,#35483e);--brand:light-dark(#216246,#96d4ae);--onbrand:light-dark(#fff,#12291c);color-scheme:light dark;color:var(--ink);background:var(--base);font:14px/1.5 Arial,sans-serif;border-radius:16px;overflow:hidden}
#tarwi-app *{box-sizing:border-box}
#tarwi-app header{padding:20px 24px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
#tarwi-app header h2{font-size:23px;margin:0;font-weight:600;color:var(--ink)}
#tarwi-app header small,#tarwi-app .sub,#tarwi-app small{color:var(--sub)}
#tarwi-app nav{display:flex;gap:8px;padding:14px 24px;flex-wrap:wrap}
#tarwi-app button{font:inherit;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);min-height:40px;cursor:pointer}
#tarwi-app button[aria-pressed=true],#tarwi-app .primary{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
#tarwi-app button:disabled{opacity:.45;cursor:not-allowed}
#tarwi-app button:focus-visible,#tarwi-app input:focus-visible,#tarwi-app select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
#tarwi-app main{padding:4px 24px 24px}
#tarwi-app h3{font-size:17px;margin:0 0 12px;color:var(--ink)}
#tarwi-app .row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
#tarwi-app .tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 22px}
#tarwi-app .tile,#tarwi-app .panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px;color:var(--ink)}
#tarwi-app .tile{display:flex;flex-direction:column;align-items:stretch;min-width:0}
#tarwi-app .tile .qty{font-size:23px;font-weight:600;margin:9px 0}
#tarwi-app .tile button{width:100%;margin-top:12px}
#tarwi-app .tag{display:inline-block;border-radius:5px;padding:3px 7px;background:var(--base);font-size:12px;color:var(--sub)}
#tarwi-app .tablewrap{overflow-x:auto}
#tarwi-app table{width:100%;border-collapse:collapse;white-space:nowrap}
#tarwi-app td,#tarwi-app th{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);font-size:13px}
#tarwi-app th{color:var(--sub);font-weight:500}
#tarwi-app .formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}
#tarwi-app label{display:block;color:var(--sub)}
#tarwi-app input,#tarwi-app select{display:block;width:100%;margin-top:5px;padding:11px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);font:16px Arial}
#tarwi-app input[readonly],#tarwi-app select:disabled{opacity:.8}
#tarwi-app .result{padding:14px;background:var(--base);border-radius:8px;margin-top:12px}
#tarwi-app .flowtop{max-width:500px;margin:auto;text-align:center}
#tarwi-app .node{padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:10px}
#tarwi-app .arrow{text-align:center;color:var(--sub);padding:4px}
#tarwi-app .branches{display:grid;grid-template-columns:1fr 1fr;gap:18px}
#tarwi-app .branches .node{text-align:center}
#tarwi-app .machinegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:15px}
#tarwi-app .machine p{margin:10px 0}
#tarwi-app .meter{height:7px;background:var(--base);border-radius:4px;margin:14px 0;overflow:hidden}
#tarwi-app .meter span{display:block;height:100%;background:var(--brand)}
#tarwi-app .notice{margin:10px 0;color:var(--sub);font-size:13px}
#tarwi-app .actions,.tw-row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
#tarwi-app .tw-row-actions button{min-height:30px;padding:4px 9px;font-size:12px;margin-top:6px}
#tarwi-app [hidden]{display:none!important}
@media(max-width:750px){#tarwi-app .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}#tarwi-app .machinegrid{grid-template-columns:1fr}#tarwi-app main{padding:4px 14px 18px}#tarwi-app header,#tarwi-app nav{padding:14px}}
@media(max-width:420px){#tarwi-app .tiles,#tarwi-app .formgrid,#tarwi-app .branches{grid-template-columns:1fr}#tarwi-app button{min-height:44px}}

/* ==========================================================
   CATÁLOGO › OPERARIOS · fijos y temporales
   Fijo = azul (sueldo mensual) · Temporal = ámbar (pago por hora)
   ========================================================== */
.op-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 10px}
.op-chips{display:inline-flex;gap:6px;flex-wrap:wrap}
.op-chip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border-radius:8px;border:1px solid #e3dfd6;background:#fff;color:#4a463e;font-size:12.5px;font-weight:500;cursor:pointer}
.op-chip b{font-weight:600;font-size:11.5px;min-width:18px;height:18px;padding:0 5px;border-radius:5px;display:inline-grid;place-items:center;background:#f2f0ea;color:#6a655c;font-variant-numeric:tabular-nums}
.op-chip:hover{border-color:#cfc9bc}
.op-chip:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px}
.op-chip.on{background:#2a2722;border-color:#2a2722;color:#fff}.op-chip.on b{background:rgba(255,255,255,.18);color:#fff}
.op-chip.f.on{background:#1f4e86;border-color:#1f4e86}
.op-chip.t.on{background:#9a6414;border-color:#9a6414}
.op-chip.s.on{background:#8a8478;border-color:#8a8478}
.op-plan{margin-left:auto;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:7px 14px;border-radius:9px;background:#eef3fa;border:1px solid #d3e0f1}
.op-plan span{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#4a6a92}
.op-plan b{font-size:16px;font-weight:600;color:#1f4e86}
.op-plan small{font-size:11.5px;color:#6a7f9a}

.op-tbl .op-row{position:relative;align-items:center;min-height:52px}
.op-tbl .op-row::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0}
.op-tbl .op-f::before{background:#3b6fb0}
.op-tbl .op-t::before{background:#d9a24a}
.op-tbl .op-s::before{background:#d8d4cc}
.op-tbl .op-f{background:#fafcff}
.op-tbl .op-f:hover{background:#f3f7fd}
.op-tbl .op-t:hover,.op-tbl .op-s:hover{background:#faf9f6}
.op-nom{font-weight:500;color:#1f1d1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op-tipo{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.op-tipo::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.op-tipo.fijo{background:#e8f0fb;color:#1f4e86}
.op-tipo.temp{background:#fbf1e3;color:#8a5a12}
.op-tipo.sin{background:#f2f0ea;color:#6f6a62}
.op-sueldo{width:150px;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.op-bs{font-size:13.5px;font-weight:600;color:#1f4e86}.op-bs small{font-size:11px;font-weight:400;color:#8a9ab0;margin-left:2px}
.op-hora{font-size:11.5px;color:#b8b2a6}
.op-falta{font-size:11.5px;color:#b5772a}
.op-link{border:0;background:none;padding:0;font-size:11.5px;color:#3b6fb0;cursor:pointer}
.op-link:hover{text-decoration:underline;text-underline-offset:2px}
.op-reg{border:1px dashed #9db8dc;background:#f3f7fd;color:#1f4e86;padding:4px 10px;border-radius:7px;font-size:11.5px;font-weight:600;cursor:pointer}
.op-reg:hover{border-style:solid;background:#e8f0fb}
.op-link:focus-visible,.op-reg:focus-visible{outline:2px solid #3b6fb0;outline-offset:2px}

/* Modal de sueldo fijo */
.modal .box.sue-box{max-width:560px}
.sue-act{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px;margin-bottom:14px;border-radius:10px;background:#eef3fa;border:1px solid #d3e0f1}
.sue-act span{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#4a6a92}
.sue-act b{font-size:15px;color:#1f4e86}
.sue-act small{font-size:11.5px;color:#6a7f9a}
.sue-main{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;align-items:end}
.sue-big span{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6a655c;margin-bottom:6px}
.sue-in{display:flex;align-items:center;height:48px;border:1px solid #d8d4cc;border-radius:10px;background:#fff;padding:0 12px;transition:border-color .12s,box-shadow .12s}
.sue-in:focus-within{border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.15)}
.sue-in em{font-style:normal;font-size:14px;color:#7a746b;margin-right:8px}
.sue-in input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:22px;font-weight:600;color:#1f1d1a;padding:0}
.sue-mas{margin-top:14px;border:1px solid #e5e1d8;border-radius:10px;background:#fff}
.sue-mas summary{cursor:pointer;padding:10px 14px;font-size:12.5px;font-weight:500;color:#6a655c;list-style:none}
.sue-mas summary::-webkit-details-marker{display:none}
.sue-mas summary::before{content:"▸";display:inline-block;margin-right:8px;transition:transform .15s}
.sue-mas[open] summary::before{transform:rotate(90deg)}
.sue-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px 12px}
.sue-calc{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;margin-top:14px;padding:10px 14px;border-radius:10px;background:#f4f8f4;font-size:12.5px;color:#4a6b52}
.sue-calc b{color:#2f6d3c}
.sue-dif{margin-left:auto;font-weight:600;color:#1f4e86}
.sue-hist{margin-top:14px}
.sue-hist-t{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#7a746b;margin-bottom:4px}
.sue-hist-r{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid #f1eee8;font-size:12.5px;color:#6a655c}
.sue-hist-r b{font-weight:500;color:#2a2722}
@media(max-width:560px){.sue-main,.sue-g3{grid-template-columns:1fr}.op-plan{margin-left:0}}
.op-cod{font-size:11px;color:#7a746b;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ==========================================================
   Gráficos de Costos (horas.js › vzColumnas / vzAcumulado)
   ========================================================== */
.vz-wrap{padding:4px 28px 18px}
.vz-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.vz-h b{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#4a463e}
.vz-h span{font-size:11.5px;color:#7a746b}
.vz-h select{margin-left:auto;height:32px;padding:0 10px;border:1px solid #e3dfd6;border-radius:8px;background:#fff;font:400 12.5px 'IBM Plex Sans',sans-serif;color:#2a2722}
.vz-h select:focus{outline:none;border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.15)}
.vz-dos{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px}
.vz{position:relative;min-height:60px}
.vz svg{display:block;overflow:visible}
.vz-grid{stroke:#efece5;stroke-width:1}
.vz-base{stroke:#d8d4cc;stroke-width:1}
.vz-ax{font:400 10.5px 'IBM Plex Sans',sans-serif;fill:#8a8478;font-variant-numeric:tabular-nums}
.vz-val{font:600 11px 'IBM Plex Sans',sans-serif;fill:#2a2722}
.vz-ref{stroke:#8a8478;stroke-width:1}
.vz-ref-t{fill:#4a463e;font-weight:500}
.vz-cross{stroke:#8a8478;stroke-width:1}
.vz-banda{fill:#3b6fb0;fill-opacity:.07}
.vz-col{transition:opacity .12s}
.vz-col.vz-dim{opacity:.35}
.vz-hit{cursor:default;outline:none}
.vz-hit:focus-visible{stroke:#3d7a4e;stroke-width:2}
.vz svg:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px;border-radius:4px}
.vz-ley{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 6px;font-size:11.5px;color:#4a463e}
.vz-ley span{display:inline-flex;align-items:center;gap:6px}
.vz-ley i{width:10px;height:10px;border-radius:2px;display:inline-block}
.vz-ley i.ln{height:2px;width:14px;border-radius:1px}
.vz-tip{position:absolute;z-index:5;display:none;min-width:150px;max-width:260px;padding:8px 10px;border-radius:8px;background:#fff;
  box-shadow:0 6px 20px rgba(42,39,34,.16),0 0 0 1px #e5e1d8;pointer-events:none;font-size:12px;color:#4a463e}
.vz-tip-t{font-size:11px;color:#6f6a62;margin-bottom:3px}
.vz-tip-tot{font-size:13.5px;font-weight:600;color:#1f1d1a;font-variant-numeric:tabular-nums;margin-bottom:3px}
.vz-tip-r{display:flex;align-items:center;gap:7px;padding:1px 0}
.vz-tip-r i{width:12px;height:2px;border-radius:1px;flex:none}
.vz-tip-r b{font-weight:600;color:#1f1d1a;font-variant-numeric:tabular-nums}
.vz-tip-r span{color:#6f6a62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vz-vacio{padding:28px 0;text-align:center;font-size:12.5px;color:#7a746b}
@media(max-width:900px){.vz-dos{grid-template-columns:1fr}}
@media(max-width:640px){.vz-wrap{padding:4px 16px 16px}}
@media(prefers-reduced-motion:reduce){.vz-col{transition:none}}

/* Producción de tarwi · ventana de cierre de proceso */
.modal .box.ct-form.tw-c-box{max-width:920px}
.tw-c-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}
.tw-c-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tw-c-wide{grid-column:span 2}
.tw-c-hint{grid-column:span 2;align-self:end;font-size:12px;color:#6f6a62;padding-bottom:10px}
.tw-c-div:not([hidden]){display:contents}
.tw-c-bal{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:14px;padding:10px 14px;border-radius:10px;background:#faf9f5;border:1px solid #efece5;font-size:12.5px;color:#6a655c}
.tw-c-bal b{color:#1f1d1a;font-weight:600}
.tw-c-bal .tw-c-ok{margin-left:auto;color:#2f6d3c}.tw-c-bal .tw-c-ok b{color:#2f6d3c}
.tw-c-mal{color:#a03050!important;font-weight:500}
.tw-c-bal .tw-c-mal{margin-left:auto}
.tw-op-add{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.tw-op-add input{flex:1;min-width:220px;height:36px;padding:0 12px;border:1px solid #d8d4cc;border-radius:8px;background:#fff;font-size:13.5px}
.tw-op-add input:focus{outline:none;border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.15)}
.tw-op-h,.tw-op-r{display:grid;grid-template-columns:minmax(0,2fr) 104px 104px 96px 86px 64px 32px;gap:8px;align-items:center}
.tw-op-h{padding:6px 0;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#736d65;border-bottom:1px solid #efece5}
.tw-op-h .r,.tw-op-r .r{text-align:right}
.tw-op-r{padding:7px 0;border-bottom:1px solid #f4f2ec}
.tw-op-r input{width:100%;height:34px;padding:0 8px;border:1px solid #e3dfd6;border-radius:7px;background:#fff;font-size:13px;box-sizing:border-box}
.tw-op-r input:focus{outline:none;border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.15)}
.tw-op-n{min-width:0;font-size:13px;font-weight:500;color:#1f1d1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw-op-n small{display:block;font-size:11px;font-weight:400;color:#7a746b}
.tw-op-vacio{padding:18px 0;text-align:center;font-size:12.5px;color:#7a746b}
.tw-chk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
.tw-chk label{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#4a463e;cursor:pointer}
.tw-chk input{width:16px;height:16px;margin-top:1px;accent-color:#3d7a4e;flex:none}
@media(max-width:760px){
  .tw-c-g,.tw-c-g4{grid-template-columns:1fr 1fr}.tw-chk{grid-template-columns:1fr}
  .tw-op-h{display:none}
  .tw-op-r{grid-template-columns:1fr 1fr 32px;grid-template-areas:"n n x" "a b b" "c d h"}
  .tw-op-r>:nth-child(1){grid-area:n}.tw-op-r>:nth-child(2){grid-area:a}.tw-op-r>:nth-child(3){grid-area:b}
  .tw-op-r>:nth-child(4){grid-area:c}.tw-op-r>:nth-child(5){grid-area:d}.tw-op-r>:nth-child(6){grid-area:h}.tw-op-r>:nth-child(7){grid-area:x}
}

/* Producción de tarwi · un color por proceso (claro / oscuro).
   La fila en curso lleva el color de su proceso; el botón Cerrar,
   el del proceso siguiente (a dónde pasa el producto). */
#tarwi-app .tw-c-prelimpieza,.tw-tl .tw-c-prelimpieza{--tw:light-dark(#9a6414,#e3b565);--tw-bg:light-dark(#fbf1e3,#3b2e17)}
#tarwi-app .tw-c-desamargado,.tw-tl .tw-c-desamargado{--tw:light-dark(#1f5fa8,#8fb8ec);--tw-bg:light-dark(#e8f0fb,#1c2d44)}
#tarwi-app .tw-c-deshidratado,.tw-tl .tw-c-deshidratado{--tw:light-dark(#b0521e,#efa07a);--tw-bg:light-dark(#fbeee4,#3f2618)}
#tarwi-app .tw-c-liofilizado,.tw-tl .tw-c-liofilizado{--tw:light-dark(#6b46a8,#bca5ea);--tw-bg:light-dark(#f1eaf8,#2e2443)}
#tarwi-app .tw-c-prensado,.tw-tl .tw-c-prensado{--tw:light-dark(#0f6e6a,#7fcfc7);--tw-bg:light-dark(#e3f3f1,#15332f)}
#tarwi-app .tw-c-molienda,.tw-tl .tw-c-molienda{--tw:light-dark(#a03a5c,#ec9ab4);--tw-bg:light-dark(#fbe9ef,#3d1f2a)}
#tarwi-app .tw-c-fin{--tw:light-dark(#216246,#96d4ae);--tw-bg:light-dark(#e4f0e6,#1a3325)}
#tarwi-app .tw-c-ruta{--tw:light-dark(#53685e,#afc2b7);--tw-bg:light-dark(#eef2ef,#22302a)}
#tarwi-app .tw-next{--tw-on:light-dark(#fff,#10201a);background:var(--tw,var(--brand));border-color:var(--tw,var(--brand));color:var(--tw-on);font-weight:600}
#tarwi-app .tw-next:hover:not(:disabled){filter:brightness(1.08)}
#tarwi-app .tw-next:focus-visible{outline-color:var(--tw,var(--brand))}
#tarwi-app .tile[class*="tw-c-"]{border-top:3px solid var(--tw)}
#tarwi-app .tw-ptab td{vertical-align:middle}
#tarwi-app .tw-ptab td small{display:block;font-size:11.5px;margin-top:2px}
#tarwi-app .tw-p td:first-child{box-shadow:inset 4px 0 0 var(--tw);padding-left:16px}
#tarwi-app .tw-p:hover td{background:color-mix(in srgb,var(--tw-bg) 55%,transparent)}
#tarwi-app .tw-cod{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px}
#tarwi-app .tw-proc{display:inline-flex;align-items:center;gap:7px;padding:3px 10px;border-radius:6px;background:var(--tw-bg);color:var(--tw);font-weight:600;font-size:12.5px}
#tarwi-app .tw-proc i{width:7px;height:7px;border-radius:50%;background:var(--tw)}
#tarwi-app .tw-estado{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--tw);font-weight:600}
#tarwi-app .tw-estado i{width:8px;height:8px;border-radius:50%;background:var(--tw);box-shadow:0 0 0 0 var(--tw);animation:twPulse 1.8s ease-out infinite}
@keyframes twPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--tw) 55%,transparent)}100%{box-shadow:0 0 0 7px transparent}}
#tarwi-app .tw-row-actions{margin-top:0;justify-content:flex-end;flex-wrap:nowrap}
#tarwi-app .tw-row-actions button{margin-top:0;min-height:32px;padding:5px 12px;font-size:12.5px}
#tarwi-app .tw-cancel{background:transparent;color:var(--sub)}
#tarwi-app .tw-cancel:hover{color:light-dark(#a03050,#f0a0b4);border-color:currentColor}
@media(prefers-reduced-motion:reduce){#tarwi-app .tw-estado i{animation:none}}

/* Pedidos · ventana Editar pedido */
.modal .box.ct-form.ped-ed-box{max-width:1160px}
.modal .box.ct-form.ped-one{max-width:1200px;width:96vw}
.ped-ed-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px}
.ped-ed-wide{grid-column:1/-1}
.ped-ed-box .ped-lin-wrap{overflow-x:auto}
.ped-ed-tot{display:flex;justify-content:flex-end;gap:18px;margin-top:10px;font-size:12.5px;color:#6f6a62}
.ped-ed-tot b{color:#1f1d1a;font-weight:600}
@media(max-width:760px){.ped-ed-g{grid-template-columns:1fr 1fr}}

/* Buscador de lote en las filas de consumo del envasado (comboLote en app.js) */
.lote-combo{position:relative;min-width:0}
.lote-combo-in{text-overflow:ellipsis}
.lote-combo-list{position:fixed;z-index:9999;max-height:260px;overflow-y:auto;background:#fff;border:1px solid #cfdff5;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:4px 0;font-size:12.5px}
.lote-combo-it{padding:7px 10px;cursor:pointer;font-family:ui-monospace,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lote-combo-it:hover,.lote-combo-it.on{background:#e8f0fb}
.lote-combo-it.sel{font-weight:700;color:#1f4e86}
.lote-combo-vacio{padding:8px 10px;color:#8a857b}
/* Mismo buscador en campos de texto (operario, ítem…): sin letra monoespaciada */
.lote-combo-list.combo-txt .lote-combo-it{font-family:inherit;font-size:13.5px;padding:8px 12px}
.lote-combo-it.dis{color:#a8a296;cursor:not-allowed;background:none}
.combo-txt .lote-combo-in,.fld .lote-combo-in{width:100%}

/* Nuevo contrato / pedido de Logística (openCtLogisticaModal en contratos.js) */
.ctl-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:14px;border:1.5px dashed #c9c3b6;border-radius:10px;background:#faf9f6;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}
.ctl-drop input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ctl-drop:hover,.ctl-drop.over{border-color:#1f4e86;background:#eef3fb}
.ctl-drop.has{border-style:solid;border-color:#6aa57a;background:#f1f8f3}
.ctl-drop-t{font-size:13px;color:#4a463e}
.ctl-drop-s{font-size:11.5px;color:#8a857b;word-break:break-word}
#ctlForm .ctl-falta{border-color:#c0506a !important;box-shadow:0 0 0 2px rgba(192,80,106,.15)}
@media (max-width:640px){#ctlForm .ct-form-g2{grid-template-columns:1fr}#ctlForm .ct-form-span2{grid-column:auto}}

/* Logística: checklist por contrato (logistica.js) */
.lg-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.lg-tools .ct-search{flex:1;min-width:220px}
.lg-card{background:#fff;border:1px solid #e5e1d8;border-radius:10px;margin-bottom:8px;overflow:hidden}
.lg-card[open]{border-color:#cfdff5}
.lg-h{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:10px 14px;cursor:pointer;list-style:none}
.lg-h::-webkit-details-marker{display:none}
.lg-h::before{content:'▸';color:#6f6a62;font-size:12px;transition:transform .15s}
.lg-card[open] .lg-h::before{transform:rotate(90deg)}
.lg-id{display:flex;align-items:center;gap:6px}
.lg-nro{font-size:13.5px;font-weight:700}
.lg-cli{font-size:12.5px;color:#6b665c;min-width:0}
.lg-def{font-size:11px;font-weight:700;color:#b5772a;background:#fef6e6;border-radius:999px;padding:2px 8px}
.lg-lim{font-size:11px;color:#6b665c;background:#f3f1ec;border-radius:999px;padding:2px 8px}
.lg-res{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:12px}
.lg-sigue{color:#4a463e;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-ok{color:#2f6d3c}
.lg-mute{color:#7a746b}
.lg-prog{display:flex;align-items:center;gap:6px}
.lg-bar{display:inline-block;width:80px;height:7px;background:#f0ede6;border-radius:4px;overflow:hidden}
.lg-bar i{display:block;height:100%;border-radius:4px}
.lg-b{padding:4px 14px 12px 34px;border-top:1px solid #f0ede6}
.lg-aviso{font-size:12.5px;color:#6b665c;background:#faf9f6;border-radius:8px;padding:8px 10px;margin:8px 0}
@media (max-width:640px){.lg-res{margin-left:0;width:100%}.lg-sigue{max-width:none;flex:1}.lg-b{padding-left:14px}}

/* Pasos: el título abre el modal del paso (openPasoModal en contratos.js) */
button.ct-paso-t{background:none;border:0;padding:2px 0;font:inherit;font-size:13px;color:#2a2722;text-align:left;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis}
button.ct-paso-t:hover{color:#1f4e86;text-decoration:underline}
.ct-paso-est{font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;white-space:nowrap}
.ct-paso-clip{font-size:11px;color:#6b665c;white-space:nowrap}
.pm-box{max-width:760px}
.pm-padre{color:#6f6a62;font-weight:500}
.pm-sec{padding:12px 0;border-bottom:1px solid #f0ede6}
.pm-sec:last-of-type{border-bottom:0}
.pm-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b665c;margin-bottom:8px}
.pm-h .pm-mute{text-transform:none;letter-spacing:0;font-weight:400}
.pm-mute{font-size:11.5px;color:#6f6a62}
.pm-est{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.pm-est button{border:1.5px solid #e5e1d8;background:#fff;color:#4a463e;border-radius:999px;padding:6px 12px;font-size:12.5px;cursor:pointer}
.pm-est button[aria-checked=true]{border-color:var(--c);background:var(--bg);color:var(--c);font-weight:700}
.pm-est button:disabled{cursor:default}
#pasoModal textarea,#pasoModal input[type=search],#pmAsunto,#pmTpl,#pmTipo{width:100%;box-sizing:border-box;border:1px solid #d8d4cc;border-radius:7px;padding:8px 10px;font:inherit;font-size:13px;text-transform:none}
.pm-acts{display:flex;justify-content:flex-end;margin-top:8px}
.pm-file{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f5f3ee;flex-wrap:wrap}
.pm-fname{background:none;border:0;padding:0;font:inherit;font-size:13px;color:#1f4e86;cursor:pointer;text-align:left;word-break:break-word}
.pm-fname:hover{text-decoration:underline}
.pm-up{display:grid;grid-template-columns:170px 1fr;gap:8px;margin-top:10px;align-items:stretch}
.pm-drop{min-height:60px;padding:10px}
.pm-tplrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pm-tplrow select{flex:1;min-width:180px}
.pm-lbl{font-size:11.5px;font-weight:600;color:#6b665c;margin:10px 0 4px}
.pm-usrq{margin-bottom:6px}
.pm-usr{max-height:150px;overflow-y:auto;border:1px solid #e5e1d8;border-radius:8px;padding:4px 8px}
.pm-u{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer;flex-wrap:wrap}
.pm-u input{width:15px;height:15px;accent-color:#1f4e86}
.pm-vars{font-size:11.5px;color:#6f6a62;margin-top:6px;line-height:1.9}
.pm-vars button{background:#eef3fb;border:1px solid #cfdff5;color:#1f4e86;border-radius:5px;padding:1px 6px;font-family:ui-monospace,Consolas,monospace;font-size:11px;cursor:pointer}
.pm-prev{white-space:pre-wrap;font-size:12.5px;background:#faf9f6;border:1px dashed #e0dbd0;border-radius:8px;padding:9px 11px;color:#2a2722;min-height:44px}
.pm-chk{display:flex;align-items:center;gap:7px;font-size:12.5px;margin-top:10px;cursor:pointer}
.pm-hist{font-size:12px;padding:4px 0;border-bottom:1px solid #f5f3ee;word-break:break-word}
@media (max-width:640px){.pm-up{grid-template-columns:1fr}}

/* Pasos como botones (ctPasosHtml en contratos.js): gris → amarillo → verde; rojo con problema */
.ps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;padding:6px 0}
#ctPanePasos.ps-grid{grid-template-columns:1fr}
.ps{border:1.5px solid var(--bd);background:var(--bg);border-radius:12px;padding:9px 10px;transition:background .2s,border-color .2s}
.ps-main{display:flex;align-items:center;gap:8px;min-width:0}
.ps-ck{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--bd);background:#fff;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;line-height:1;cursor:pointer;transition:transform .12s,background .15s}
.ps-ck[aria-hidden]{cursor:default}
.ps-ck:hover:not([aria-hidden]){transform:scale(1.1)}
.ps-ck:focus-visible{outline:2px solid #1f4e86;outline-offset:2px}
.ps-ck[aria-checked=true],.ps.ok>.ps-main>.ps-ck{background:#3d9a55;border-color:#3d9a55}
.ps-t{flex:1;min-width:0;background:none;border:0;padding:0;font:inherit;font-size:13px;font-weight:700;color:var(--c);text-align:left;cursor:pointer}
.ps-t:hover{text-decoration:underline}
.ps-n{font-size:11px;font-weight:700;color:var(--c);font-family:ui-monospace,Consolas,monospace}
.ps-i{font-size:11px;color:#6b665c;white-space:nowrap}
.ps-obs{display:flex;align-items:baseline;gap:6px;max-width:55%;min-width:0;font-size:11px;color:#5c5850}
.ps-obs b{flex-shrink:0;color:var(--c,#5c5850);font-weight:700;white-space:nowrap}
.ps-obs span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-sub .ps-obs b{color:inherit}
.ps-why{font-size:11px;font-weight:600;color:var(--c);margin:4px 0 0 30px}
.ps-bar{height:5px;background:rgba(0,0,0,.07);border-radius:3px;overflow:hidden;margin:7px 0 6px 30px}
.ps-bar i{display:block;height:100%;background:var(--c);border-radius:3px;transition:width .25s}
.ps-subs{display:flex;flex-direction:column;gap:4px;margin-left:30px}
.ps-sub{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #e5e1d8;border-radius:999px;padding:3px 9px 3px 4px;min-width:0}
.ps-sub button{flex:1;min-width:0;background:none;border:0;padding:0;font:inherit;font-size:12px;color:#4a463e;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-sub button:hover{text-decoration:underline}
.ps-sub.opc:not(.ok){border-style:dashed;background:#fbfaf7}
.ps-sub.opc:not(.ok) button{color:#6f6a62}
.ps-sub.opc:not(.ok)::after{content:"opcional";font-size:11px;font-weight:700;color:#7a746b;text-transform:uppercase;letter-spacing:.04em;flex:none}
.ps-ck.sm{width:17px;height:17px;font-size:11px;border-width:1.5px;border-color:#d8d3c8}
.ps-sub.ok{border-color:#a9d6b4;background:#f1f9f3}
.ps-sub.ok button{color:#2f6d3c}
.ps-sub.ok .ps-ck{background:#3d9a55;border-color:#3d9a55}
.ps-sub.mid{border-color:#f0cf87;background:#fffaf0}
.ps-sub.bad{border-color:#e8a39b;background:#fdf1ef}
.ps-sub.bad .ps-ck{background:#c0392b;border-color:#c0392b}
.ps-sub.bad button{color:#b3261e}
.ps-ck.bad{background:#c0392b;border-color:#c0392b}
/* Con alerta / bloqueado: icono del estado sobre blanco, borde y textos del color del estado */
.ps-ck.est{background:#fff;border-color:var(--c);font-size:12px}
.ps-sub.est{border-color:var(--sbd);background:var(--sbg)}
.ps-sub.est button{color:var(--sc)}
.ps-sub.est .ps-ck{background:#fff;border-color:var(--sc);font-size:11px}
.lg-st{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}
.lg-cli b{color:#2a2722;font-weight:700}
.lg-rec{font-size:11px;font-weight:600;color:#4a463e;border:1px solid #e0dbd0;border-radius:999px;padding:1px 8px;white-space:nowrap}
.lg-proc{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}

/* ===== Modal del paso de logística (openPasoModal en contratos.js) ===== */
.pm2{--ink:#24211c;--mute:#7c766b;--line:#e7e2d8;--soft:#f7f5f0;align-items:center}
.pm2-box{background:#fff;width:min(820px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;
  border-radius:18px;box-shadow:0 24px 60px -12px rgba(36,33,28,.35);overflow:hidden;animation:pm2In .18s ease-out}
@keyframes pm2In{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.pm2-box{animation:none}}
.pm2-head{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:start;padding:22px 24px 14px}
.pm2-crumb{font-size:12.5px;color:var(--mute);margin-bottom:2px}
.pm2-head h2{margin:0;font-size:21px;line-height:1.25;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.pm2-ctxs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pm2-ctx{display:inline-flex;align-items:baseline;gap:5px;font-size:12.5px;color:var(--ink);background:var(--soft);border-radius:8px;padding:4px 9px}
.pm2-ctx span{color:var(--mute);font-size:11.5px}
.pm2-now span{display:inline-block;font-size:12.5px;font-weight:700;border-radius:999px;padding:5px 11px;white-space:nowrap}
.pm2-x{width:34px;height:34px;border-radius:10px;border:0;background:transparent;font-size:22px;line-height:1;color:var(--mute);cursor:pointer}
.pm2-x:hover{background:var(--soft);color:var(--ink)}
.pm2-tabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--line)}
.pm2-tabs button{position:relative;background:none;border:0;padding:12px 10px;font:inherit;font-size:14px;font-weight:600;color:var(--mute);cursor:pointer}
.pm2-tabs button:hover{color:var(--ink)}
.pm2-tabs button[aria-selected=true]{color:var(--ink)}
.pm2-tabs button[aria-selected=true]::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:#1f4e86}
.pm2-n:not(:empty){display:inline-block;min-width:18px;font-size:11px;font-weight:700;color:#1f4e86;background:#e8f0fb;border-radius:999px;padding:1px 6px;margin-left:3px}
.pm2-body{padding:18px 24px 8px;overflow-y:auto;flex:1}
.pm2-lbl{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:16px 0 6px}
.pm2-body section>.pm2-lbl:first-child,.pm2-tplrow .pm2-lbl{margin-top:0}
.pm2-meta{font-size:12px;color:var(--mute);margin-top:8px}
.pm2 textarea,.pm2-in,.pm2 select{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;
  font:inherit;font-size:14px;color:var(--ink);background:#fff;text-transform:none;resize:vertical}
.pm2 textarea:focus,.pm2-in:focus,.pm2 select:focus{outline:none;border-color:#1f4e86;box-shadow:0 0 0 3px rgba(31,78,134,.14)}

/* Estado: cinco tarjetas; la elegida se llena con su color */
.pm2-est{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.pm2-est button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:12px 12px 11px;border-radius:12px;
  border:1.5px solid var(--line);background:#fff;font:inherit;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}
.pm2-est button:hover:not(:disabled){border-color:var(--c)}
.pm2-est button:active:not(:disabled){transform:scale(.98)}
.pm2-est button:focus-visible{outline:2px solid #1f4e86;outline-offset:2px}
.pm2-est-i{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;
  background:var(--bg);color:var(--c);margin-bottom:4px}
.pm2-est b{font-size:13.5px;color:var(--ink)}
.pm2-est small{font-size:11.5px;color:var(--mute);line-height:1.3}
.pm2-est button[aria-checked=true]{border-color:var(--c);background:var(--bg);box-shadow:inset 0 0 0 1px var(--c)}
.pm2-est button[aria-checked=true] .pm2-est-i{background:var(--c);color:#fff}
.pm2-est button[aria-checked=true] b{color:var(--c)}
.pm2-est button:disabled{cursor:default}

/* Archivos */
.pm2-seg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pm2-seg button{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
.pm2-seg button[aria-checked=true]{border-color:#1f4e86;background:#e8f0fb;color:#1f4e86;font-weight:600}
.pm2-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 16px;border:2px dashed #d5cfc3;border-radius:14px;
  background:var(--soft);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.pm2-drop input{position:absolute;width:1px;height:1px;opacity:0}
.pm2-drop:hover,.pm2-drop.over{border-color:#1f4e86;background:#eef3fb}
.pm2-drop.busy{opacity:.7;pointer-events:none}
.pm2-drop-i{width:38px;height:38px;border-radius:50%;background:#fff;color:#1f4e86;display:inline-flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.pm2-drop-t{font-size:14px;color:var(--ink);margin-top:4px}
.pm2-drop-s{font-size:12px;color:var(--mute)}
.pm2-drop:focus-within{outline:2px solid #1f4e86;outline-offset:2px}
.pm2-files{margin-top:14px}
.pm2-file{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.pm2-file:last-child{border-bottom:0}
.pm2-ext{flex-shrink:0;width:42px;height:42px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;
  background:#eef0f3;color:#4b5563}
.pm2-ext.e-pdf{background:#fdecea;color:#b3261e}
.pm2-ext.e-jpg,.pm2-ext.e-jpeg,.pm2-ext.e-png{background:#e6f4e9;color:#2f6d3c}
.pm2-ext.e-doc,.pm2-ext.e-docx{background:#e8f0fb;color:#1f4e86}
.pm2-file-t{flex:1;min-width:0}
.pm2-file-t button{display:block;max-width:100%;background:none;border:0;padding:0;font:inherit;font-size:14px;font-weight:600;color:var(--ink);
  text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm2-file-t button:hover{color:#1f4e86;text-decoration:underline}
.pm2-file-t small{font-size:12px;color:var(--mute)}
.pm2-del{background:none;border:0;font:inherit;font-size:12.5px;color:#b3261e;cursor:pointer;padding:6px 8px;border-radius:8px}
.pm2-del:hover{background:#fdecea}
.pm2-empty{font-size:13px;color:var(--mute);padding:14px 0}

/* Email */
.pm2-tpl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pm2-tpl select{flex:1;min-width:200px}
.pm2-link{background:none;border:0;font:inherit;font-size:13px;font-weight:600;color:#1f4e86;cursor:pointer;padding:6px 4px}
.pm2-link:hover{text-decoration:underline}
.pm2-link.danger{color:#b3261e}
.pm2-to{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:10px;padding:6px 8px;cursor:text}
.pm2-to:focus-within{border-color:#1f4e86;box-shadow:0 0 0 3px rgba(31,78,134,.14)}
.pm2-to #pmChips{display:contents}
.pm2-to input{flex:1;min-width:140px;border:0;outline:none;font:inherit;font-size:14px;padding:5px 4px;text-transform:none}
.pm2-chip{display:inline-flex;align-items:center;gap:4px;background:#e8f0fb;color:#1f4e86;border-radius:999px;padding:4px 4px 4px 11px;font-size:13px;font-weight:600}
.pm2-chip button{width:20px;height:20px;border-radius:50%;border:0;background:transparent;color:#1f4e86;font-size:15px;line-height:1;cursor:pointer}
.pm2-chip button:hover{background:#cfdff5}
.pm2-sug{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 12px 28px -8px rgba(36,33,28,.25);padding:4px;max-height:240px;overflow-y:auto}
.pm2-sug [role=option]{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13.5px}
.pm2-sug [role=option] span{color:var(--mute);font-size:12.5px;overflow:hidden;text-overflow:ellipsis}
.pm2-sug [role=option][aria-selected=true],.pm2-sug [role=option]:hover{background:#eef3fb}
.pm2-vars{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:8px;font-size:12.5px;color:var(--mute)}
.pm2-vars button{border:1px solid #cfdff5;background:#f3f7fd;color:#1f4e86;border-radius:7px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer}
.pm2-vars button::before{content:"+ "}
.pm2-vars button:hover{background:#e8f0fb}
/* ===== Enviar email: redactar como en Gmail, con la vista previa en vivo al lado ===== */
.pm2-box.pm2-ancho{width:min(1240px,calc(100vw - 32px))}
.pm2-tplbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:13px;color:var(--mute)}
.pm2-tplbar select{width:auto;flex:0 1 280px;padding:6px 10px}
.pm2-cmp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
/* Ventana de redactar */
.pm2-gm{border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.06);overflow:visible}
.pm2-gm-top{background:#f2f6fc;color:#1f1f1f;font-size:13.5px;font-weight:600;padding:10px 16px;border-radius:12px 12px 0 0}
.pm2-gm-ln{display:flex;align-items:center;gap:8px;padding:4px 16px;border-bottom:1px solid #eceff1;min-height:40px}
.pm2 .pm2-gm-ln.pm2-to{border:0;border-bottom:1px solid #eceff1;border-radius:0;padding:4px 16px;flex-wrap:wrap}
.pm2-gm-ln>label{font-size:13.5px;color:#5f6368;min-width:52px}
.pm2-gm-ln>input{flex:1;min-width:0;border:0;outline:none;padding:8px 0;font:inherit;font-size:14px;background:transparent;color:var(--ink)}
.pm2 textarea.pm2-gm-body{border:0;border-radius:0;padding:14px 16px;min-height:150px;resize:vertical;font-size:14px;line-height:1.55;box-shadow:none}
.pm2 textarea.pm2-gm-body:focus{box-shadow:none}
.pm2-gm-sec{border-top:1px solid #eceff1;padding:12px 16px}
.pm2-gm-h{display:block;font-size:12.5px;font-weight:700;color:#5f6368;margin-bottom:8px}
.pm2-gm-h small{font-weight:400;margin-left:6px}
.pm2-gm-fila{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pm2-gm-fila .pm2-gm-h{margin:0}
.pm2-gm-fila select{width:auto;padding:6px 10px}
.pm2-gm .pm2-vars{margin:0 0 10px}
.pm2-gm .pm2-att{border:0;border-top:1px solid #eceff1;border-radius:0;margin:0;padding:12px 16px}
/* Editor de la tabla: una fila por columna (título, valor, quitar) */
.pm2-tabla{display:grid;gap:6px;margin-bottom:6px}
.pm2-tabla-f{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;gap:6px;align-items:center}
.pm2-tabla-f input{min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:13px}
.pm2-tabla-f button{border:0;background:none;color:var(--mute);font-size:18px;line-height:1;padding:4px 8px;cursor:pointer;border-radius:6px}
.pm2-tabla-f button:hover{color:#b3261e;background:var(--soft)}
/* Vista previa: como se ve el correo abierto en la bandeja */
.pm2-pv{position:sticky;top:0}
.pm2-pv-h{font-size:12.5px;font-weight:700;color:#5f6368;margin:0 0 8px;display:flex;gap:8px;align-items:baseline}
.pm2-pv-h span{font-weight:400;color:var(--mute)}
.pm2-pv-mail{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.pm2-pv-cab{padding:14px 16px 10px;border-bottom:1px solid #eceff1;display:grid;gap:3px;font-size:13px;color:#3c4043}
.pm2-pv-asu{font-size:18px;color:#1f1f1f;margin-bottom:8px;overflow-wrap:anywhere}
.pm2-pv-f{display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px}
.pm2-pv-f>span{color:#5f6368}
.pm2-pv-f>div{overflow-wrap:anywhere}
.pm2-pv-f small{color:#5f6368}
.pm2-pv-adjs>div{display:flex;flex-wrap:wrap;gap:4px}
.pm2-pv-adj{background:#f1f3f4;border-radius:6px;padding:1px 8px;font-size:12px}
#pmPvFr{display:block;width:100%;height:min(560px,calc(100vh - 330px));min-height:300px;border:0;background:#fff}
@media (max-width:900px){
  .pm2-cmp{grid-template-columns:minmax(0,1fr)}
  .pm2-pv{position:static}
  #pmPvFr{height:420px}
}
.pm2-sw{position:relative;display:flex;align-items:center;gap:10px;margin-top:14px;font-size:13.5px;color:var(--ink);cursor:pointer}
.pm2-sw input{position:absolute;opacity:0;width:1px;height:1px}
.pm2-sw-t{flex-shrink:0;width:38px;height:22px;border-radius:999px;background:#d5cfc3;position:relative;transition:background .15s}
.pm2-sw-t::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.pm2-sw input:checked+.pm2-sw-t{background:#3d9a55}
.pm2-sw input:checked+.pm2-sw-t::after{transform:translateX(16px)}
.pm2-sw input:focus-visible+.pm2-sw-t{outline:2px solid #1f4e86;outline-offset:2px}
#pmHist{margin-top:6px}
.pm2-hist{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.pm2-hist li{position:relative;padding:4px 0 10px 8px;font-size:13px}
.pm2-hist li::before{content:"";position:absolute;left:-21px;top:9px;width:10px;height:10px;border-radius:50%;background:#3d9a55;border:2px solid #fff}
.pm2-hist li.bad::before{background:#b3261e}
.pm2-hist li b{display:block;color:var(--ink)}
.pm2-hist li span{font-size:12px;color:var(--mute)}

.pm2-msg{margin:12px 0 4px;padding:10px 12px;border-radius:10px;font-size:13px;background:#fdecea;color:#8c1d18}
.pm2-msg.ok{background:#e6f4e9;color:#245a31}
.pm2-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 24px 16px;border-top:1px solid var(--line);background:#fff}
.pm2-btn{border:0;border-radius:10px;padding:10px 18px;font:inherit;font-size:14px;font-weight:700;color:#fff;background:var(--acc,#1f4e86);cursor:pointer}
.pm2-btn[hidden]{display:none}
.pm2-btn:hover:not(:disabled){filter:brightness(1.08)}
.pm2-btn:disabled{opacity:.45;cursor:default}
.pm2-btn.ghost{background:transparent;color:var(--ink)}
.pm2-btn.ghost:hover{background:var(--soft)}
.pm2-btn:focus-visible,.pm2-x:focus-visible,.pm2-tabs button:focus-visible,.pm2-seg button:focus-visible{outline:2px solid #1f4e86;outline-offset:2px}

@media (max-width:720px){
  .pm2-est{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:560px){
  .pm2{align-items:stretch;padding:0}
  .pm2-box{width:100vw;max-height:100vh;height:100vh;border-radius:0}
  .pm2-head{grid-template-columns:1fr auto;padding:16px 16px 10px}
  .pm2-now{grid-column:1/-1;grid-row:2}
  .pm2-tabs{padding:0 10px;overflow-x:auto}
  .pm2-body{padding:14px 16px 8px}
  .pm2-est{grid-template-columns:1fr 1fr}
  .pm2-foot{padding:10px 16px 14px}
  .pm2-btn{flex:1}
}

/* ===== Contratos: tracking en la lista y resumen "¿Dónde están?" ===== */
.ct-trk{
  display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;min-width:0;
  padding:0 16px 12px 67px;margin-top:-4px;font-size:12.5px;color:#5c5850;
}
.ct-trk-none{padding-bottom:10px}
.ct-trk-ph{font-size:12px;color:#7a746b;font-style:italic}
.ct-trk-segs{display:inline-flex;gap:3px;flex-shrink:0;width:150px}
.ct-trk-segs i{
  display:block;flex:1 1 0;min-width:3px;height:6px;border-radius:3px;background:#e4e0d6;
}
.ct-trk-segs i.hecho{background:#3d7a4e}
.ct-trk-segs i.en_proceso{background:#e3a344}
.ct-trk-segs i.alerta{background:#e0b23a;box-shadow:0 0 0 1.5px #fff,0 0 0 3px #e0b23a}
.ct-trk-segs i.bloqueado{background:#c0392b;box-shadow:0 0 0 1.5px #fff,0 0 0 3px #c0392b}
.ct-trk-segs i.now:not(.alerta):not(.bloqueado){box-shadow:0 0 0 1.5px #fff,0 0 0 3px #8fb59a}
.ct-trk-now{display:inline-flex;align-items:baseline;gap:6px;min-width:0;max-width:100%}
.ct-trk-now b{font-weight:600;color:#2a2722;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-trk-now.done b{color:#2f6d3c}
.ct-trk-k{
  font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#6f6a62;
  white-space:nowrap;font-variant-numeric:tabular-nums;
}
.ct-trk-sub{color:#6f6a62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-trk-note{
  display:inline-flex;align-items:center;gap:7px;min-width:0;flex:1 1 260px;max-width:560px;
  padding:4px 10px;border-radius:8px;background:#f4f2ec;border:1px solid #ebe7de;
}
.ct-trk-note.prob.alerta{background:#fdf4dc;border-color:#ecd28e;color:#7a4c08}
.ct-trk-note.prob.bloqueado{background:#fdecea;border-color:#eeb3ab;color:#8f2a1f}
.ct-trk-ico{flex-shrink:0;font-size:12px;line-height:1}
.ct-trk-ico.q{font-family:Georgia,serif;font-size:18px;line-height:.6;color:#7a746b;margin-top:6px}
.ct-trk-date{
  flex-shrink:0;font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:6px;
  background:#fff;border:1px solid #e0dbd0;color:#3a3630;font-variant-numeric:tabular-nums;
}
.ct-trk-date.late{background:#fdeeee;border-color:#eeb3ab;color:#c42b32}
.ct-trk-txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-trk-txt i{font-style:normal;font-weight:500}
.ct-trk-of{flex-shrink:0;font-size:11px;opacity:.7;white-space:nowrap;max-width:40%;overflow:hidden;text-overflow:ellipsis}
.ct-trk-of::before{content:'· '}
.ct-trk-when{margin-left:auto;font-size:11.5px;color:#7a746b;white-space:nowrap}
.ct-trk-when.stale{color:#9a5a14;font-weight:500}

.ct-card-trk{display:flex;flex-direction:column;gap:5px;margin-top:10px;padding:9px 6px 0;border-top:1px dashed #ebe7de}
.ct-card-now{font-size:12px;font-weight:600;color:#2a2722}
.ct-card-note{
  font-size:11.5px;color:#5c5850;background:#f4f2ec;border-radius:6px;padding:3px 7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ct-card-note.alerta{background:#fdf4dc;color:#7a4c08}
.ct-card-note.bloqueado{background:#fdecea;color:#8f2a1f}

@media(max-width:820px){
  .ct-trk{padding-left:16px}
  .ct-foot{flex-direction:column;align-items:stretch;padding-right:0}
  .ct-foot>.ct-acts{margin-left:0;padding:2px 16px 14px;flex-wrap:wrap}
  .ct-foot .ct-act{height:34px}
  .ct-trk-segs{width:100%}
  .ct-trk-now{flex-wrap:wrap}
  .ct-trk-now b{white-space:normal}
  .ct-trk-note{flex-basis:100%;max-width:none}
  .ct-trk-of{display:none}
  .ct-trk-when{margin-left:0}
}

/* ===== Tarwi: disponible solo aprobado, registros por etapa y trazabilidad de batches ===== */
#tarwi-app .tile .tw-qty{width:auto;margin:9px 0 4px;padding:2px 6px 2px 0;border:0;background:transparent;color:var(--ink);
  font:inherit;font-size:23px;font-weight:600;text-align:left;cursor:pointer;border-radius:6px;min-height:0}
#tarwi-app .tile .tw-qty small{font-size:12px;font-weight:500;color:var(--sub)}
#tarwi-app .tile .tw-qty:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#tarwi-app .tile .tw-qty:focus-visible{outline:2px solid var(--tw,var(--brand));outline-offset:2px}
#tarwi-app .tile.tw-tile-on{box-shadow:0 0 0 2px var(--tw,var(--brand))}
#tarwi-app .tw-desg{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--sub);line-height:1.35}
#tarwi-app .tw-desg-l b{color:var(--ink);font-weight:600}
#tarwi-app .tw-desg-l span{opacity:.85}
#tarwi-app .tw-desg-l.pend{color:light-dark(#8a5a10,#e6bd73)}
#tarwi-app .tw-desg-l.pend b{color:inherit}
#tarwi-app .tw-desg-l.rech{color:light-dark(#a33228,#f0a097)}
#tarwi-app .tw-desg-l.rech b{color:inherit}

#tarwi-app .tw-det{margin:0 0 18px}
#tarwi-app .tw-det h4{font-size:13px;margin:16px 0 6px;color:var(--ink)}
#tarwi-app .tw-det .sub{font-size:12px;color:var(--sub);margin:-2px 0 6px}
#tarwi-app .tw-dt th,#tarwi-app .tw-dt td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:12.5px;vertical-align:middle}
#tarwi-app .tw-dt th{font-size:11px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.03em}
#tarwi-app .tw-dt .r{text-align:right}
#tarwi-app .tw-dt td{white-space:normal}
#tarwi-app .tw-og{display:inline-flex;align-items:center;gap:4px;margin:2px 8px 2px 0;white-space:nowrap}
#tarwi-app .tw-chip,.tw-traza .tw-chip{display:inline-flex;align-items:center;width:auto;min-height:0;margin:0;padding:2px 8px;border-radius:999px;
  border:1px solid var(--line,#ddd);background:light-dark(#f4f2ec,#2a2a26);color:var(--ink,#2a2722);font-size:12px;font-weight:600;cursor:pointer}
#tarwi-app button.tw-chip:hover{border-color:var(--brand,#3d7a4e)}
#tarwi-app .tw-chip-lote{cursor:default;font-weight:500;background:transparent}
.tw-b{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.tw-b.ok{background:light-dark(#e4f0e6,#1a3325);color:light-dark(#2f6d3c,#96d4ae)}
.tw-b.pend{background:light-dark(#fbf1e3,#3b2e17);color:light-dark(#8a5a10,#e6bd73)}
.tw-b.rech{background:light-dark(#fdecea,#3d1f1c);color:light-dark(#a33228,#f0a097)}
.tw-b.proc{background:light-dark(#e8f0fb,#1c2d44);color:light-dark(#1f5fa8,#8fb8ec)}
.tw-b.canc{background:light-dark(#f0f1f3,#2a2c30);color:light-dark(#6a7078,#a8adb5)}

#tarwi-app .tw-srcs{border:1px solid var(--line);border-radius:10px;margin:0 0 12px;overflow:hidden}
#tarwi-app .tw-srcs-h{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--sub);background:light-dark(#faf9f5,#24241f)}
#tarwi-app .tw-srcs-b{max-height:360px;overflow-y:auto}
#tarwi-app .tw-src{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line)}
#tarwi-app .tw-src-ck{display:flex;align-items:flex-start;gap:9px;min-width:0;font-size:13px;cursor:pointer}
#tarwi-app .tw-src-ck input{width:auto;margin-top:3px}
#tarwi-app .tw-src-ck span{display:flex;flex-direction:column;min-width:0}
#tarwi-app .tw-src-ck small{color:var(--sub);font-size:11.5px}
#tarwi-app .tw-src input[type=number]{width:100%}

.tw-traza{max-width:640px}
.tw-traza h4{font-size:13px;margin:14px 0 6px}
.tw-tree,.tw-tree ul{list-style:none;margin:0;padding:0 0 0 16px;font-size:13px;line-height:1.7}
ul.tw-tree{padding-left:0}
.tw-tree li{position:relative}
.tw-tree ul li::before{content:'└';position:absolute;left:-14px;color:#7a746b}
/* Desamargado: kilos con sal y sin sal por batch */
#tarwi-app .tw-src-sal{grid-template-columns:minmax(0,1fr) 120px 120px}
#tarwi-app .tw-sal-kg{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--sub);font-weight:600}
#tarwi-app .tw-sal{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;margin-left:5px;vertical-align:1px;white-space:nowrap;font-family:inherit}
#tarwi-app .tw-sal-con_sal{background:#e8f0fb;color:#1f4e86}
#tarwi-app .tw-sal-sin_sal{background:#fbf1e3;color:#8a5a0a}
#tarwi-app .tw-sal-mixto{background:#f1ebfd;color:#6d3fc4}
#tarwi-app .tw-sal-jalapeno{background:#e6f4e4;color:#2f6d2a}
@media(max-width:640px){#tarwi-app .tw-src{grid-template-columns:1fr}}
@media(max-width:640px){#tarwi-app .tw-src-sal{grid-template-columns:1fr 1fr}#tarwi-app .tw-src-sal>.tw-src-ck{grid-column:1/-1}}
#tarwi-app .tw-cal{background:light-dark(#fbf1e3,#3b2e17);border-color:light-dark(#e3c389,#7a5a22);color:light-dark(#8a5a10,#e6bd73);font-weight:600}
#tarwi-app .tw-cal:hover{filter:brightness(.97);border-color:currentColor}
#tarwi-app .tw-ptab td:last-child{white-space:normal;min-width:200px}
#tarwi-app .tw-ptab .tw-row-actions{flex-wrap:wrap;justify-content:flex-end}

/* ===== Tarwi: control de Calidad del batch y reporte ===== */
.tw-q{max-width:760px}
.tw-q-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.tw-q-sum>div{background:#faf9f5;border:1px solid #ebe7de;border-radius:10px;padding:9px 11px;min-width:0}
.tw-q-sum span{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#6f6a62;margin-bottom:3px}
.tw-q-sum b{font-size:14px;font-weight:600;color:#2a2722;overflow-wrap:anywhere}
.tw-q-sum small{font-weight:500;color:#6f6a62}
.tw-q-checks{display:flex;flex-direction:column;gap:6px}
.tw-q-ck{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:10px;padding:7px 8px 7px 12px;border:1px solid #ebe7de;border-radius:10px;background:#fff;transition:background .15s,border-color .15s}
.tw-q-ck.si{background:#f1f8f2;border-color:#bcd9c3}
.tw-q-ck.no{background:#fdf1ef;border-color:#eeb3ab}
.tw-q-ck-t{font-size:13.5px;color:#2a2722}
.tw-q-seg{display:inline-flex;border:1px solid #e0dbd0;border-radius:999px;overflow:hidden;background:#fff}
.tw-q-seg button{border:0;background:transparent;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:600;color:#6a655c;cursor:pointer;min-height:32px}
.tw-q-seg button+button{border-left:1px solid #e0dbd0}
.tw-q-seg button[data-v="1"][aria-checked="true"]{background:#2f6d3c;color:#fff}
.tw-q-seg button[data-v="0"][aria-checked="true"]{background:#c0392b;color:#fff}
.tw-q-seg button:focus-visible,.tw-q-op:focus-visible,.tw-q-x:focus-visible,.tw-r-open:focus-visible,.tw-b-btn:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px}
.tw-q-x{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:#7a746b;font-size:16px;cursor:pointer}
.tw-q-x:hover{background:#f4f2ec;color:#a03050}
.tw-q-add{display:flex;gap:8px;margin-top:8px}
.tw-q-add input{flex:1;min-width:0}
.tw-q-dec{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tw-q-dest{margin:10px 0}
.tw-q-op{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;border:1.5px solid #e0dbd0;border-radius:12px;background:#fff;font:inherit;text-align:left;cursor:pointer;color:#2a2722;transition:border-color .15s,background .15s,box-shadow .15s}
.tw-q-op b{font-size:14.5px}
.tw-q-op small{font-size:12px;color:#6a655c;line-height:1.35}
.tw-q-op:hover{border-color:#bfb8a9}
.tw-q-op.on{border-color:#3d7a4e;background:#f1f8f2;box-shadow:0 0 0 3px rgba(61,122,78,.14)}
.tw-q-op.bad.on,.tw-q-dest .tw-q-op[data-dest="desechar"].on{border-color:#c0392b;background:#fdf1ef;box-shadow:0 0 0 3px rgba(192,57,43,.12)}
.tw-q-dest .tw-q-op[data-dest="reprocesar"].on{border-color:#b5772a;background:#fbf4e8;box-shadow:0 0 0 3px rgba(181,119,42,.14)}
.tw-q-aviso{margin-top:10px;padding:9px 12px;border-radius:10px;background:#fbf1e3;color:#7a5518;font-size:13px}
.ct-act.tw-q-danger{background:#c0392b;border-color:#c0392b}
.ct-act.tw-q-danger:hover{background:#a8301f;border-color:#a8301f}

.tw-rep{max-width:720px}
.tw-r-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;margin:0 0 14px;font-size:13px}
.tw-r-banner b{font-size:15.5px}
.tw-r-banner.ok{background:#e9f3eb;color:#2f6d3c;border:1px solid #c6dfcc}
.tw-r-banner.bad{background:#fbeceb;color:#a33228;border:1px solid #eeb3ab}
.tw-r-banner span{color:#5c5850}
.tw-rep h4{font-size:13px;margin:16px 0 6px}
.tw-r-checks{list-style:none;margin:0;padding:0;border:1px solid #ebe7de;border-radius:10px;overflow:hidden}
.tw-r-checks li{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;border-top:1px solid #f1eee7}
.tw-r-checks li:first-child{border-top:0}
.tw-r-checks li i{font-style:normal;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:#f0eee8;color:#6f6a62;flex-shrink:0}
.tw-r-checks li.si i{background:#2f6d3c;color:#fff}
.tw-r-checks li.no i{background:#c0392b;color:#fff}
.tw-r-checks li small{margin-left:auto;font-size:12px;color:#6f6a62}
.tw-r-checks li.no small{color:#a33228;font-weight:600}
.tw-r-txt{margin:0;font-size:13.5px;line-height:1.5;white-space:pre-wrap;background:#faf9f5;border-radius:10px;padding:10px 12px}
.tw-r-ant{margin-top:8px;border:1px solid #ebe7de;border-radius:10px;padding:8px 12px}
.tw-r-ant summary{cursor:pointer;font-size:13px;font-weight:600}
.tw-r-open{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin:0 0 6px;padding:11px 14px;border:1px solid #c6dfcc;border-radius:12px;background:#f1f8f2;font:inherit;text-align:left;cursor:pointer}
.tw-r-open b{font-size:14px;color:#2f6d3c}
.tw-r-open span{font-size:12px;color:#5c5850}
.tw-r-open.pend{border-color:#e3c389;background:#fbf4e8}
.tw-r-open.pend b{color:#8a5a10}
.tw-r-open:hover{filter:brightness(.98)}
button.tw-b-btn{border:0;cursor:pointer;font:inherit;font-size:11px;font-weight:600;min-height:0;width:auto;margin:0}
button.tw-b-btn:hover{text-decoration:underline}
@media(max-width:640px){.tw-q-dec{grid-template-columns:1fr}.tw-q-ck{grid-template-columns:1fr 28px}.tw-q-seg{grid-column:1/2}}

/* Tarwi · trazabilidad como línea de tiempo */
.tw-traza{max-width:680px}
.tw-tl{list-style:none;margin:10px 0 0;padding:0;position:relative}
.tw-tl::before{content:'';position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:light-dark(#dbe5de,#35483e)}
.tw-tl-i{position:relative;padding:0 0 12px 30px}
.tw-tl-dot{position:absolute;left:3px;top:14px;width:14px;height:14px;border-radius:50%;background:var(--tw,#8a9a90);box-shadow:0 0 0 3px light-dark(#fff,#192622)}
.tw-tl-mp .tw-tl-dot{background:#8a6d3b}
.tw-tl-card{border:1px solid light-dark(#dbe5de,#35483e);border-left:4px solid var(--tw,#8a9a90);border-radius:10px;padding:9px 12px;background:light-dark(#fff,#192622)}
.tw-tl-mp .tw-tl-card{border-left-color:#8a6d3b;background:light-dark(#faf7f1,#22201a)}
.tw-tl-i.cur .tw-tl-card{background:var(--tw-bg,#f1f8f2);box-shadow:0 2px 10px rgba(0,0,0,.08)}
.tw-tl-i.cur .tw-tl-dot{width:18px;height:18px;left:1px;top:12px}
.tw-tl-tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tw,#216246);margin-bottom:2px}
.tw-tl-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.tw-tl-f{font-size:12px;color:light-dark(#53685e,#afc2b7)}
.tw-tl-p{color:var(--tw,inherit);font-size:14px}
.tw-tl-src{margin-top:6px;font-size:12.5px;color:light-dark(#53685e,#afc2b7);display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.tw-tl-src .tw-og{display:inline-flex;align-items:center;gap:4px}
.tw-tl-mas{color:#7a746b;font-weight:700}
.tw-tl-flow{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:7px;font-size:13px}
.tw-tl-flow b{font-size:14px}
.tw-tl-arr{color:#7a746b}
.tw-tl-wait{color:light-dark(#1f5fa8,#8fb8ec);font-style:italic}
.tw-tl-m{padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;background:light-dark(#fdecea,#3d1f1c);color:light-dark(#a33228,#f0a097)}
.tw-tl-m.agua{background:light-dark(#e8f0fb,#1c2d44);color:light-dark(#1f5fa8,#8fb8ec)}
.tw-tl-bar{height:6px;margin-top:7px;border-radius:999px;background:light-dark(#f4d9d5,#4a2622);overflow:hidden}
.tw-tl-bar i{display:block;height:100%;background:var(--tw,#216246);border-radius:999px}
.tw-tl-bar.agua{background:light-dark(#e8f0fb,#1c2d44)}
.tw-tl-nota{margin-top:4px;font-size:12px;color:light-dark(#53685e,#afc2b7)}
.tw-tl-q{margin-top:6px;padding-top:6px;border-top:1px dashed light-dark(#dbe5de,#35483e);font-size:12.5px}
.tw-tl-sep{position:relative;padding:2px 0 10px 30px}
.tw-tl-sep span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:light-dark(#53685e,#afc2b7)}
.tw-tl-sep.fin span{text-transform:none;letter-spacing:0;font-weight:400;font-style:italic}

/* ---------- Calidad (Beta): control de calidad por lote ---------- */
/* Textos secundarios con contraste suficiente (#5f5a51 sobre blanco ≈ 6.4:1) */
.cal-shell{--cal-muted:#5f5a51}
.cal-shell :focus-visible,.cal-pane :focus-visible{outline:3px solid #2f6d3c;outline-offset:2px}
/* Cabecera: buscador grande, vistas y actualizar */
.cal-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.cal-buscar{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;border:1px solid #d8d4cc;border-radius:11px;background:#fff}
.cal-buscar:focus-within{border-color:#2f6d3c;box-shadow:0 0 0 3px rgba(47,109,60,.18)}
.cal-buscar input{flex:1;border:0;outline:0;background:transparent;font-size:15px;text-transform:none;min-width:0;height:100%}
.cal-modos .ct-mode{white-space:nowrap}
.cal-recargar{font-size:17px;min-width:40px}
.cal-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.cal-tabs::-webkit-scrollbar{display:none}
.cal-tabs .ct-tab{white-space:nowrap}
.cal-resumen{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 0 4px}
.cal-chip b{font-size:12px}
.cal-chip-n{font-weight:700;margin-left:2px}
.ct-chip.cal-chip{color:var(--cal-c)}
.ct-chip.cal-chip.on{background:var(--cal-bg);border-color:var(--cal-c);color:var(--cal-c);box-shadow:inset 0 0 0 1px var(--cal-c)}
.cal-fams{padding-bottom:0}
.cal-fams-l{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#736d65;margin-right:2px}
.ct-chip.cal-chip-act{color:#18794a;border-color:#bfe3cc}
.ct-chip.cal-chip-act.on{background:#18794a;border-color:#18794a;color:#fff}
.ct-chip.cal-chip-act.on i{background:#fff}
.cal-chip-act i,.cal-act i,.cal-dot-act{display:inline-block;width:8px;height:8px;border-radius:50%;background:#18794a;flex-shrink:0;animation:calPulso 2s infinite}
@keyframes calPulso{0%{box-shadow:0 0 0 0 rgba(24,121,74,.45)}70%{box-shadow:0 0 0 6px rgba(24,121,74,0)}100%{box-shadow:0 0 0 0 rgba(24,121,74,0)}}
.cal-limpiar{border:0;background:none;color:#1f5f86;font-size:13px;font-weight:600;text-decoration:underline;cursor:pointer;padding:6px 4px}
.cal-cuenta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 6px;font-size:12.5px;color:var(--cal-muted)}
.cal-beta-txt{color:#7a5518}
.cal-vista-movil{display:none;margin-left:auto;border:0;background:none;color:#1f5f86;font-size:13px;font-weight:600;cursor:pointer;min-height:36px;padding:0 2px}
/* Tarjetas y filas */
.cal-pill{gap:5px}
.cal-pill b{font-size:11px}
.ct-pill.cal-act{gap:6px;color:#18794a;background:#e3f4ea;height:22px;font-size:11px;font-weight:600}
.cal-card{padding:12px 13px 10px}
.cal-card-act{box-shadow:0 0 0 1px #bfe3cc,0 1px 2px rgba(31,35,40,.06)}
.cal-card-top{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap;justify-content:space-between;padding-left:6px}
.cal-card-lote{font-size:15px;font-weight:600;color:#1f1d1a;white-space:nowrap}
.cal-card-prod{font-size:13px;color:var(--cal-muted,#5f5a51);padding-left:6px;margin:3px 0 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-card-f{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-left:6px}
.cal-card .ct-pill{height:22px;font-size:11px}
.cal-mini{font-size:12px;color:var(--cal-muted,#5f5a51)}
.cal-borr{color:#1f5f86;font-weight:600}
.cal-card-pie{display:flex;justify-content:space-between;gap:8px;margin-top:9px;padding:8px 0 0 6px;border-top:1px solid #f0ede6;font-size:12px;color:var(--cal-muted,#5f5a51)}
.cal-card-pie b{color:#2a2722}
.cal-col-d{font-size:12px;color:var(--cal-muted);padding:0 10px 8px;margin-top:-4px}
.cal-vacio{font-size:12.5px;color:var(--cal-muted);padding:10px 8px;text-align:center}
.cal-row{display:grid;grid-template-columns:150px minmax(140px,1.4fr) 130px 130px 130px minmax(130px,1fr);gap:10px;align-items:center;padding:10px 16px;border-top:1px solid #eef0f4;font-size:13px;cursor:pointer;background:#fff}
.cal-row:hover{background:var(--ct-hover,#f8f7f3)}
.cal-row.on{background:#f3f8f4;box-shadow:inset 3px 0 0 var(--cal-c)}
.cal-row-h{cursor:default;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cal-muted);background:#f7f5f0}
.cal-row-h:hover{background:#f7f5f0}
.cal-row-lote{display:flex;align-items:center;gap:8px;font-weight:600;min-width:0}
.cal-row-prod,.cal-row-ult{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-row-ult{font-size:12px;color:var(--cal-muted)}
.cal-row .ct-pill{height:22px;font-size:11px}
/* Mi trabajo: grupos por prioridad */
.cal-trabajo{display:flex;flex-direction:column;gap:10px;padding-bottom:20px}
.cal-grp{background:#f1eee8;border-radius:12px;padding:4px}
.cal-grp summary{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;column-gap:8px;row-gap:2px;padding:10px;cursor:pointer;list-style:none;border-radius:9px;min-height:44px}
.cal-grp summary::-webkit-details-marker{display:none}
.cal-grp summary::after{content:"▾";grid-column:4;grid-row:1;justify-self:end;color:var(--cal-muted,#5f5a51);transition:transform .15s}
.cal-grp summary .ct-gcount{grid-column:2;grid-row:1}
.cal-grp summary .cal-grp-t{grid-column:1;grid-row:1}
.cal-grp:not([open]) summary::after{transform:rotate(-90deg)}
.cal-grp-t{font-size:14px;font-weight:700;color:#2a2722}
.cal-grp-d{grid-column:1/-1;font-size:12px;color:var(--cal-muted,#5f5a51)}
/* En el grupo "En producción ahora" la pastilla de cada tarjeta sobra */
.cal-grp[data-calgrp="act"] .cal-act{display:none}
.cal-grp-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;padding:2px 4px 6px}
/* Panel del lote */
body.cal-pane-abierto{overflow:hidden}
/* hidden siempre oculta: si no, un display:flex del bloque le gana y aparece la barra Guardar en otras pestañas */
.cal-pane [hidden]{display:none !important}
.cal-pane .box{width:min(600px,100vw)}
.cal-ph{background:#fff;border-bottom:1px solid #e5e1d8;border-top:4px solid var(--cal-c);padding:12px 16px 0;flex-shrink:0}
.cal-ph-top{display:flex;align-items:flex-start;gap:10px}
.cal-ph-x{order:2;margin-left:auto;width:44px;height:44px;border:0;border-radius:11px;background:#f2f0ea;font-size:24px;line-height:1;color:#2a2722;cursor:pointer;flex-shrink:0}
.cal-ph-x:hover{background:#e8e4db}
.cal-ph-id{min-width:0}
.cal-ph-k{font-size:12px;font-weight:600;color:var(--cal-muted,#5f5a51);text-transform:uppercase;letter-spacing:.05em}
.cal-ph-lote{font-size:22px;font-weight:700;margin:2px 0 0;color:#1f1d1a;word-break:break-all}
.cal-ph-prod{font-size:14px;color:#4a463e;margin-top:2px}
.cal-ph-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 2px}
.cal-ptabs{display:flex;gap:4px;margin-top:10px}
.cal-ptab{flex:1;min-height:44px;border:0;background:transparent;border-bottom:3px solid transparent;font-size:14px;font-weight:600;color:var(--cal-muted,#5f5a51);cursor:pointer;padding:0 6px}
.cal-ptab:hover{color:#2a2722}
.cal-ptab.on{color:#2f6d3c;border-bottom-color:#2f6d3c}
.cal-ptab-n{display:inline-block;min-width:20px;padding:0 6px;border-radius:10px;background:#e3f4ea;color:#18794a;font-size:11.5px;margin-left:4px}
.cal-pane-b{flex:1;overflow-y:auto;padding:14px 16px 24px;-webkit-overflow-scrolling:touch}
.cal-pie{display:flex;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e5e1d8;flex-shrink:0;box-shadow:0 -6px 18px rgba(35,42,36,.06)}
.cal-pie .ct-mode{min-height:46px}
.cal-pie .btn{flex:1;min-height:46px;font-size:15px;font-weight:700;color:#fff;border:0;border-radius:11px}
.cal-borr-aviso{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:#1f5f86;background:#e6f0f7;border-radius:10px;padding:9px 12px;margin-bottom:12px}
.cal-dia-aviso{font-size:13px;color:#2f6d3c;background:#eef6f0;border:1px solid #d9e6dc;border-radius:10px;padding:9px 12px;margin-bottom:12px}
.cal-dia-aviso .cal-sub{display:block;margin-top:2px}
.cal-borr-aviso button{margin-left:auto;border:0;background:none;color:#1f5f86;font-weight:700;text-decoration:underline;cursor:pointer;min-height:36px}
/* Registrar */
.cal-paso-h{font-size:15px;font-weight:700;color:#2a2722;margin:0 0 10px}
.cal-acciones{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cal-accion{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:84px;padding:12px 6px;border-radius:12px;border:2px solid #e5e1d8;background:#fff;cursor:pointer;font-size:15px;font-weight:700;color:var(--cal-c)}
.cal-accion:hover{border-color:var(--cal-c);background:var(--cal-bg)}
.cal-accion.on{border-color:var(--cal-c);background:var(--cal-bg)}
.cal-accion-i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--cal-bg);font-size:17px}
.cal-accion.on .cal-accion-i{background:var(--cal-c);color:#fff}
.cal-anotar{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;width:100%;min-height:48px;margin-top:8px;border:2px dashed #b9cfe0;border-radius:12px;background:#f5f9fc;color:#1f5f86;font-size:14.5px;font-weight:700;cursor:pointer}
.cal-anotar span{font-weight:500;font-size:12.5px;color:#3d6f8f}
.cal-anotar.on{border-style:solid;border-color:#1f5f86;background:#e6f0f7}
#calForm{margin-top:14px;padding-top:14px;border-top:1px solid #eee9df}
#calForm .fld{margin-top:12px}
#calForm .fld:first-child{margin-top:0}
.cal-req{color:#b42318;font-weight:600;font-size:12px}
.cal-sub{font-size:12px;color:var(--cal-muted,#5f5a51);font-weight:400}
.cal-fotobar{display:flex;gap:8px;margin-top:12px}
.cal-fotobtn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border:2px dashed #cfc9bc;border-radius:12px;cursor:pointer;font-size:14px;font-weight:700;color:#2a2722;background:#faf9f5}
.cal-fotobtn:hover,.cal-fotobtn:focus-within{border-color:#2f6d3c;color:#2f6d3c}
.cal-prev{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cal-prev-it{position:relative;width:76px;height:76px;border-radius:9px;overflow:hidden;border:1px solid #e5e1d8}
.cal-prev-it img{width:100%;height:100%;object-fit:cover}
.cal-prev-it button{position:absolute;top:3px;right:3px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:16px;cursor:pointer;line-height:1}
.cal-det{margin-top:12px;border:1px solid #e5e1d8;border-radius:12px;padding:0 12px;background:#fff}
.cal-det summary{cursor:pointer;font-size:14px;font-weight:700;color:#2a2722;min-height:46px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cal-det[open]{padding-bottom:12px}
.cal-copiar{border:1px solid #bfd9c6;background:#eef5ef;color:#2f6d3c;border-radius:9px;padding:0 12px;min-height:36px;font-size:13px;font-weight:600;cursor:pointer;margin-bottom:6px}
.cal-params{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:6px}
.cal-params .fld{margin:0 !important}
.cal-propio{color:#8a5a10}
.cal-fila{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
/* Campos sueltos (fuera de .fld) con el mismo aspecto que el resto del formulario */
.cal-fila input,.cal-fila select{padding:9px 11px;border:1px solid #d8d4cc;border-radius:9px;font-size:14px;background:#fff;box-sizing:border-box;min-width:0;color:#2a2722}
.cal-fila input:focus,.cal-fila select:focus,.cal-pane .fld input:focus,.cal-pane .fld select:focus,.cal-pane textarea:focus{outline:none;border-color:#2f6d3c;box-shadow:0 0 0 3px rgba(47,109,60,.18)}
.cal-pane .fld input,.cal-pane .fld select,.cal-pane .fld textarea{border-radius:9px}
.cal-nuevo{display:grid;grid-template-columns:1fr auto}
.cal-nuevo #calParNom{grid-column:1/-1}
.cal-nuevo input{width:100%;min-width:0}
.cal-num{width:120px}
.cal-uni{width:auto;min-width:72px}
.cal-ref{flex:1;min-width:160px}
.cal-blk{padding:10px 0;border-top:1px solid #f0ede6}
.cal-blk:first-child{border-top:0}
.cal-blk-h{font-size:13px;font-weight:700;color:#2a2722;margin:0 0 6px}
.cal-seg{display:inline-flex;border:1px solid #cfc9bc;border-radius:10px;overflow:hidden;background:#fff}
.cal-seg button{border:0;background:transparent;min-height:40px;padding:0 14px;font-size:13.5px;font-weight:600;color:#4a463e;cursor:pointer}
.cal-seg button + button{border-left:1px solid #cfc9bc}
.cal-seg button.on{background:#2f6d3c;color:#fff}
#calQueda{margin-top:6px}
/* Historial y datos del lote */
.cal-tl{list-style:none;margin:0;padding:0 0 0 2px}
.cal-tl-it{position:relative;display:flex;gap:12px;padding-bottom:18px}
.cal-tl-it:not(:last-child)::before{content:"";position:absolute;left:14px;top:30px;bottom:0;width:2px;background:#e8e4db}
.cal-tl-dot{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:14px;font-weight:700;color:#fff;background:var(--cal-c)}
.cal-tl-c{flex:1;min-width:0}
.cal-tl-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-tl-h .ct-pill{height:22px;font-size:11px}
.cal-tl-m{font-size:12.5px;color:var(--cal-muted,#5f5a51)}
.cal-tl-o{font-size:12px;font-weight:600;color:#4a463e;margin-top:3px}
.cal-tl-del{margin-left:auto;border:0;background:none;color:#b42318;font-size:12.5px;text-decoration:underline;cursor:pointer;min-height:32px}
.cal-txt{font-size:13.5px;color:#2a2722;margin-top:6px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.cal-pars{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cal-par{font-size:12.5px;background:#f2f0ea;border-radius:7px;padding:4px 9px;color:#2a2722}
.cal-par.cal-mal{color:#b42318;background:#fdecec}
.cal-txt.cal-mal{color:#b42318}
.cal-par.cal-par-sep{background:#fdf3df;color:#7a4e0c}
.cal-fotos{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cal-foto{width:76px;height:76px;border-radius:9px;overflow:hidden;border:1px solid #e5e1d8;background:#f2f0ea;padding:0;cursor:zoom-in;display:flex;align-items:center;justify-content:center}
.cal-foto img{width:100%;height:100%;object-fit:cover}
.cal-nada{font-size:13.5px;color:var(--cal-muted,#5f5a51);padding:4px 0}
.cal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px}
.cal-pane .ct-pane-kpi .cal-kpi-l{font-size:12px;font-weight:500;color:var(--cal-muted,#5f5a51);margin-bottom:3px}
.cal-pane .ct-pane-kpi .cal-kpi-v{font-size:17px;font-weight:700;color:#2a2722;white-space:nowrap;font-family:inherit}
.cal-kpi-v small{font-size:11px;font-weight:400;color:var(--cal-muted,#5f5a51)}
.cal-bal{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e5e1d8;font-size:13px;color:#2a2722}
.cal-bal-m{color:#7a4e0c}
.cal-bal-q{margin-left:auto;color:#18794a}
.cal-bal-q b{font-size:15px}
.cal-trz{margin-top:12px;width:100%;justify-content:center;min-height:44px}
/* Celular: una columna, todo al alcance del pulgar */
@media (max-width:820px){
  /* Barra fija compacta: el lote tiene que verse sin desplazarse */
  .cal-shell .ct-sticky{padding:0 0 4px;margin:-6px -12px 0;padding-left:12px;padding-right:12px;box-shadow:0 6px 10px -8px rgba(35,42,36,.25)}
  .cal-top{flex-wrap:nowrap;gap:6px;margin-bottom:4px;padding-top:6px}
  .cal-buscar{min-width:0;height:44px}
  .cal-buscar input{font-size:16px}
  .cal-recargar{order:2;min-width:44px;min-height:44px;flex-shrink:0}
  .cal-modos{display:none}
  .cal-tabs{margin:0 -12px;padding:0 12px}
  .cal-tabs .ct-tab{min-height:40px;font-size:14px;padding:0 10px}
  .cal-resumen{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:6px 12px 2px}
  .cal-resumen::-webkit-scrollbar{display:none}
  .cal-resumen .ct-chip{flex-shrink:0;height:38px;min-height:38px;font-size:13px}
  .cal-cuenta{margin:4px 0 2px}
  .cal-beta-txt{display:none}
  .cal-vista-movil{display:inline-flex;align-items:center}
  .cal-grp-l{grid-template-columns:1fr}
  .cal-row{grid-template-columns:minmax(110px,1fr) minmax(90px,1.2fr) auto;padding:12px}
  .cal-hide-sm{display:none}
  .cal-pane .box{width:100vw;height:100dvh;max-height:100dvh}
  .cal-ph{padding:calc(10px + env(safe-area-inset-top)) 14px 0}
  .cal-pane-b{padding:14px 14px 24px}
  .cal-kpis{grid-template-columns:repeat(2,1fr)}
  .cal-pane input,.cal-pane select,.cal-pane textarea{font-size:16px;min-height:44px}
  .cal-pane textarea{min-height:88px}
  .cal-ref{flex:1 1 100%}
  .cal-bal-q{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.cal-chip-act i,.cal-act i,.cal-dot-act{animation:none}.cal-grp summary::after{transition:none}}

/* ---------- Calidad › Cloro residual ---------- */
/* El formulario no queda fijo: en el celular taparía la lista */
.cl-shell .ct-sticky{position:static}
.cal-vistas .ct-mode{white-space:nowrap;font-weight:600}
.cl-form{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:12px;margin-bottom:10px}
.cl-campos{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.cl-f{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#5f5a51;position:relative;min-width:0}
.cl-f i{font-weight:400;font-style:normal;color:#6f6a62}
.cl-f input,.cl-f select,.cl-f textarea{width:100%;min-width:0;box-sizing:border-box;height:42px;padding:0 10px;border:1px solid #d8d4cc;border-radius:10px;font-size:15px;background:#fff;color:#1f1d1a;text-transform:none}
.cl-f textarea{height:auto;padding:8px 10px;resize:vertical;font-family:inherit;font-size:14px}
.cl-f input:focus,.cl-f select:focus,.cl-f textarea:focus{outline:0;border-color:#2f6d3c;box-shadow:0 0 0 3px rgba(47,109,60,.18)}
.cl-f-punto{flex:2 1 180px}
.cl-f-ppm{flex:0 1 140px}
.cl-f-num{flex:0 1 110px}
.cl-campos-lote{align-items:flex-start;margin-bottom:12px;padding-bottom:12px;border-bottom:1px dashed #e5e1d8}
.cl-f-dia{flex:0 1 180px}
.cl-f-lote{flex:1 1 280px}
.cl-f select{font-size:14px}
.cl-f-ppm input{font-size:17px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.cl-in-ok{border-color:#18794a !important;background:#f1faf4 !important;color:#18794a !important}
.cl-in-mal{border-color:#b42318 !important;background:#fdf1f0 !important;color:#b42318 !important}
.cl-f-ppm small{position:absolute;left:2px;bottom:-17px;font-size:11.5px;white-space:nowrap}
.cl-f-ppm small.ok{color:#18794a}
.cl-f-ppm small.mal{color:#b42318}
.cl-sinos{display:flex;height:42px;border:1px solid #d8d4cc;border-radius:10px;overflow:hidden;background:#fff}
.cl-sino{min-width:58px;border:0;background:transparent;font-size:15px;font-weight:600;color:#5f5a51;cursor:pointer}
.cl-sino+.cl-sino{border-left:1px solid #d8d4cc}
.cl-sino.on[data-cldos="Si"]{background:#e3f4ea;color:#18794a}
.cl-sino.on[data-cldos="No"]{background:#fdecec;color:#b42318}
.cl-guardar{flex:0 0 auto;width:auto !important;margin:0 !important;height:42px;padding:0 22px;font-size:15px}
.cl-extra{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.cl-extra[hidden],.cl-req[hidden],.cl-pie [hidden]{display:none}
.cl-req{font-size:11px;color:#b42318;background:#fdecec;border-radius:6px;padding:1px 6px;margin-left:4px}
.cl-pie{display:flex;align-items:center;gap:10px;min-height:28px;margin-top:14px;font-size:13px}
.cl-lista-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 10px}
.cl-dia input{height:36px;padding:0 10px;border:1px solid #d8d4cc;border-radius:9px;background:#fff;font-size:14px}
.cl-cuenta{font-size:13px;color:#5f5a51}
.cl-cuenta-mal{color:#b42318}
.cl-lista-h .btn{margin-left:auto}
.cl-lista{background:#fff;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden}
.cl-row{display:grid;grid-template-columns:56px minmax(150px,1.3fr) 120px minmax(140px,1fr) 90px 32px;gap:4px 12px;align-items:center;padding:10px 14px;border-top:1px solid #f0ede6;font-size:13.5px}
.cl-row:first-child{border-top:0}
.cl-row.cl-mal{box-shadow:inset 3px 0 0 #b42318;background:#fffafa}
.cl-hora{color:#6f6a62;font-size:12.5px}
.cl-punto{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.cl-lote{font-size:12px;color:#1f5f86}
.cl-tag{display:inline-block;padding:2px 8px;border-radius:7px;font-weight:700;font-size:12.5px}
.cl-tag.ok{color:#18794a;background:#e3f4ea}
.cl-tag.mal{color:#b42318;background:#fdecec}
.cl-dos,.cl-resp{color:#5f5a51;font-size:12.5px}
.cl-dos b{color:#2a2722}
.cl-nota{grid-column:2/-1;font-size:12.5px;color:#5f5a51}
.cl-nota b{color:#a14a00}
.cl-del{grid-column:6;grid-row:1;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:#6f6a62;font-size:18px;cursor:pointer}
.cl-del:hover{background:#fdecec;color:#b42318}
@media (max-width:820px){
  .cl-campos{row-gap:24px}
  .cl-f-punto,.cl-f-lote,.cl-f-dia{flex:1 1 100%}
  .cl-f-ppm,.cl-f-num{flex:1 1 40%}
  .cl-guardar{flex:1 1 100%;width:100% !important}
  .cl-extra{grid-template-columns:1fr}
  .cl-row{grid-template-columns:48px 1fr auto 32px}
  .cl-ppm{grid-column:3;grid-row:1}
  .cl-dos{grid-column:2/4}
  .cl-resp{display:none}
  .cl-del{grid-column:4}
  .cl-nota{grid-column:2/-1}
  .cl-lista-h .btn{margin-left:0}
}
/* ---------- Calidad › Detector de metales ---------- */
.mt-prod{font-size:11.5px;font-weight:500;color:#1f5f86;min-height:14px}
/* Detector de metales: buscador de pedido / lote (combobox) */
.mt-cb{position:relative;display:block}
.mt-cb input{width:100%}
.mt-cb-ls{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);max-height:300px;overflow-y:auto;background:#fff;border:1px solid #e5e1d8;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:4px}
.mt-cb-ls[hidden]{display:none}
.mt-cb-sec{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6f6a62;padding:8px 8px 4px}
.mt-cb-op{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13.5px;min-height:40px}
.mt-cb-op i{font-style:normal;color:#6b665c;flex-basis:100%;font-size:12.5px}
.mt-cb-op:hover,.mt-cb-op.on{background:#f3f8f3;outline:1px solid #3d7a4e}
.mt-cb-vacio{display:block;padding:10px;font-size:13px;color:#6f6a62}
.mt-tabla{display:grid;gap:6px;margin:4px 0 12px}
.mt-h,.mt-r{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center}
.mt-h{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#5f5a51}
.mt-r b{font-size:14px;color:#2a2722}
.mt-sinos{height:40px}
.mt-sinos .cl-sino{flex:1;min-width:0;font-size:13.5px;padding:0 6px}
.mt-sinos .cl-sino.on[data-v="Si"]{background:#e3f4ea;color:#18794a}
.mt-sinos .cl-sino.on[data-v="No"]{background:#fdecec;color:#b42318}
.mt-acc{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.mt-acc .btn.ghost{height:42px;padding:0 16px;font-size:14px}
.mt-row{grid-template-columns:56px minmax(130px,1fr) minmax(260px,1.6fr) minmax(110px,.8fr) 90px 32px}
.mt-pats{display:flex;flex-wrap:wrap;gap:4px}
.mt-pat{font-size:12px;padding:2px 7px;border-radius:7px;background:#e3f4ea;color:#18794a;white-space:nowrap}
.mt-pat.mal{background:#fdecec;color:#b42318}
@media (max-width:820px){
  .mt-h{display:none}
  .mt-r{grid-template-columns:1fr 1fr;row-gap:6px}
  .mt-r b{grid-column:1/-1}
  .mt-acc .btn{flex:1 1 100%}
  .mt-row{grid-template-columns:48px 1fr 32px}
  .mt-row .mt-pats,.mt-row .cl-dos{grid-column:2/3}
  .mt-row .cl-del{grid-column:3}
}

/* Pedidos › Empaque y pallets */
.modal .box.ct-form.ped-emp{max-width:1280px;width:96vw}
.ped-emp-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.ped-emp-segs{display:inline-flex;gap:3px;padding:3px;background:#ebe8e1;border-radius:9px}
.ped-emp-seg{padding:6px 13px;border:0;border-radius:7px;background:transparent;color:#6a655c;font-size:12.5px;font-weight:700;cursor:pointer}
.ped-emp-seg.on{background:#fff;color:#2a2722;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ped-emp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.ped-emp-kpi{background:#fff;border:1px solid #e5e1d8;border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.ped-emp-kpi span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62}
.ped-emp-kpi b{font-size:19px;color:#2a2722}
.ped-emp-kpi small{font-size:11.5px;color:#6f6a62}
.ped-emp-t{width:100%;min-width:1100px;border-collapse:collapse;background:#fff;border:1px solid #e5e1d8;border-radius:10px;font-size:12.5px}
.ped-emp-t th{background:#faf9f5;color:#6f6a62;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:9px 10px;border-bottom:1px solid #e5e1d8;white-space:nowrap}
.ped-emp-t td{padding:9px 10px;border-bottom:1px solid #f0ede6;vertical-align:top}
.ped-emp-t .r{text-align:right;white-space:nowrap}
.ped-emp-t tfoot td{background:#faf9f5;font-weight:700;border-bottom:0}

/* Tracking: arrastrar para cambiar el orden */
.ps[draggable="true"],.ps-sub[draggable="true"]{cursor:grab}
.ps-grip{flex:none;color:#7a746b;font-size:14px;line-height:1;cursor:grab;user-select:none;margin-right:-2px}
.ps:hover>.ps-main>.ps-grip{color:#6a655c}
.ps-drag{opacity:.45;outline:2px dashed #8a8478;outline-offset:2px}
/* Contratos: envío real (fecha o mes) */
.ct-envio{display:flex;gap:6px}
.ct-envio select{flex:0 0 84px}
.ct-envio input{flex:1;min-width:0}

/* Etiquetas de cliente por producto (Amazon / Walmart) */
.ct-etq{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;vertical-align:1px;white-space:nowrap}
.ct-etq.amz{background:#fff1dc;color:#9a5a00}
.ct-etq.wmt{background:#e3eefc;color:#0b4f9c}
.ct-etq-cks{display:flex;align-items:center;gap:12px;margin-top:5px;font-size:12px;color:#6a655c;white-space:normal}
.ct-etq-cks>span{font-size:11px;color:#7a746b}
.ct-etq-ck{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-weight:500}
.ct-etq-ck input{margin:0;accent-color:#3d7a4e}
.ct-le-row .ct-etq-cks{padding:2px 2px 0}
.ct-etq-cel{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#4a463e;min-width:0}
.ct-etq-cel .ct-etq-ck{white-space:nowrap}
.ped-r-etq{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.ped-r-etq .ct-etq{margin-left:0}

/* Trazabilidad: saldo por etapa (botones de filtro y celda por lote) */
#tzShell .tz-etapas{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:12px 14px;margin-bottom:12px}
#tzShell .tz-etapas-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:13px;color:#2a2722}
#tzShell .tz-etapas-h span{font-size:12px;color:#6f6a62}
#tzShell .tz-etapas-h .ct-act{margin-left:auto}
#tzShell .tz-etapas-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#tzShell .tz-etapa{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;cursor:pointer;
  background:#faf9f5;border:1.5px solid #e5e1d8;border-radius:10px;padding:10px 12px;font:inherit;color:#2a2722;transition:border-color .15s,background .15s}
#tzShell .tz-etapa:hover{border-color:var(--c)}
#tzShell .tz-etapa.on{border-color:var(--c);background:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 14%,transparent)}
#tzShell .tz-etapa-t{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6a655c}
#tzShell .tz-etapa-t i{width:9px;height:9px;border-radius:50%;background:var(--c)}
#tzShell .tz-etapa-v{font-size:19px;font-weight:600;color:var(--c)}
#tzShell .tz-etapa-v small{font-size:11px;font-weight:400;color:#6f6a62}
#tzShell .tz-etapa-s{font-size:11.5px;color:#6f6a62}
#tzShell .tz-et{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;font-size:11px}
#tzShell .tz-et-i{display:flex;align-items:center;gap:4px;min-width:0;border-radius:4px;padding:0 3px}
#tzShell .tz-et-i.on{background:#f3f1ec}
#tzShell .tz-et-i i{width:6px;height:6px;border-radius:50%;flex:none}
#tzShell .tz-et-i b{font-weight:600;color:#6f6a62}
#tzShell .tz-et-i .mono{margin-left:auto;font-variant-numeric:tabular-nums}
#tzShell .tz-et-h{font-size:11px;color:#c5c0b6}
@media(max-width:900px){ #tzShell .tz-etapas-g{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* Notificaciones en el sistema: campana del encabezado y su panel */
.sy-bell-wrap{position:relative;align-self:center}
.sy-bell{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid #d8d4cc;background:#fff;color:#4a463e;cursor:pointer}
.sy-bell:hover,.sy-bell[aria-expanded="true"]{background:#f6f4ef;color:#2a2722}
.sy-bell-n{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#c0392b;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px #fff}
.sy-bell-n[hidden]{display:none}
.sy-bell-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:360px;max-height:70vh;overflow-y:auto;background:#fff;border:1px solid #e5e1d8;border-radius:12px;box-shadow:0 12px 32px rgba(42,39,34,.16)}
.sy-bell-panel[hidden]{display:none}
.sy-bell-h{position:sticky;top:0;display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid #f0ede6;font-size:13px}
.sy-bell-h button{margin-left:auto;background:none;border:0;padding:0;color:#1f4e86;font-size:11.5px;font-weight:600;cursor:pointer}
.sy-bell-i{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:10px 14px 10px 24px;border:0;border-bottom:1px solid #f4f2ec;background:#fff;font:inherit;cursor:pointer;position:relative}
.sy-bell-i:hover{background:#faf9f5}
.sy-bell-i.nueva{background:#f4f8fd}
.sy-bell-i.nueva::before{content:"";position:absolute;left:10px;top:15px;width:7px;height:7px;border-radius:50%;background:#1f4e86}
.sy-bell-t{font-size:12.5px;font-weight:700;color:#2a2722}
.sy-bell-d{font-size:11.5px;color:#4a463e;line-height:1.35;white-space:pre-line}
.sy-bell-f{font-size:11px;color:#6f6a62}
.sy-bell-vacio{padding:22px 14px;text-align:center;font-size:12.5px;color:#6f6a62}
@media(max-width:600px){.sy-bell-panel{position:fixed;top:64px;left:10px;right:10px;width:auto}}

/* Administración › Notificaciones: avisos creados por el admin (tarjetas + asistente) */
.nf-wrap{max-width:980px}
.nf-hero{display:flex;flex-wrap:wrap;align-items:center;gap:16px;background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:20px 22px;margin-bottom:16px}
.nf-hero h3{margin:0 0 4px;font-size:18px}
.nf-hero p{margin:0;font-size:13px;color:#6a655c}
.nf-hero-acts{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.nf-big{border:0;border-radius:10px;padding:12px 18px;font-size:14px;font-weight:700;cursor:pointer;background:#2f6d3c;color:#fff;font-family:inherit}
.nf-big:hover{filter:brightness(1.08)}
.nf-big.alt{background:#fff;color:#1f4e86;border:1.5px solid #b6cdf0}
.nf-empty{text-align:center;background:#fff;border:2px dashed #d8d4cc;border-radius:14px;padding:34px 20px}
.nf-empty-i{font-size:40px;margin-bottom:6px}
.nf-empty b{font-size:16px}
.nf-empty p{color:#6a655c;font-size:13px;margin:6px 0 16px}
.nf-card{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:16px 18px;margin-bottom:10px}
.nf-card.off{background:#faf9f5;opacity:.75}
.nf-card-i{font-size:30px;line-height:1;width:52px;height:52px;border-radius:12px;background:#f4f2ec;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nf-card-b{flex:1;min-width:0}
.nf-card-t{font-size:15px}
.nf-card-d{font-size:12px;color:#6f6a62;margin:2px 0 8px}
.nf-card-q{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px}
.nf-card-q>span:first-child{color:#6a655c;font-weight:600;margin-right:2px}
.nf-card-m{margin-top:8px;font-size:12.5px;color:#4a463e}
.nf-pausa{font-size:11px;font-weight:700;color:#8a5a0a;background:#fdf4dc;border-radius:20px;padding:2px 8px;vertical-align:middle}
.nf-chip{display:inline-flex;align-items:center;gap:5px;background:#f4f2ec;border-radius:20px;padding:3px 10px 3px 3px;font-size:12px}
.nf-chip.mas{padding:3px 10px;color:#6a655c}
.nf-av{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;flex-shrink:0}
.nf-av.g{width:40px;height:40px;font-size:14px}
.nf-card-a{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.nf-act{background:#fff;border:1px solid #d8d4cc;border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;min-width:110px;text-align:left}
.nf-act:hover{background:#f6f4ef}
.nf-act.del{color:#a03050;border-color:#e8b4bc}
.nf-sw{position:relative;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px}
.nf-sw input{position:absolute;opacity:0;width:0;height:0}
.nf-sw span{position:relative;width:42px;height:24px;border-radius:12px;background:#cfcabf;transition:background .15s}
.nf-sw span::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.nf-sw input:checked+span{background:#2f6d3c}
.nf-sw input:checked+span::after{left:21px}
.nf-sw input:focus-visible+span{outline:2px solid #1f4e86;outline-offset:2px}
.nf-sw em{font-style:normal;font-weight:700;color:#4a463e;min-width:72px}
.nf-pie{font-size:12px;color:#6f6a62;margin:10px 2px 22px}
.nf-mail{max-width:980px;margin-top:6px}
.nf-mail summary{cursor:pointer;font-weight:700;font-size:13.5px;padding:10px 2px;color:#4a463e}
/* Ventana del asistente */
.modal .box.nf-box{max-width:820px;background:#fff}
.nf-mh{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;border-bottom:1px solid #eee9df;font-size:16px}
.nf-mh .xbtn{margin-left:auto}
.nf-steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;font-size:12.5px;color:#6f6a62}
.nf-step{display:inline-flex;align-items:center;gap:6px}
.nf-step i{font-style:normal;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ece8df;font-size:11px;font-weight:700}
.nf-step.on{color:#2a2722;font-weight:700}
.nf-step.on i{background:#2f6d3c;color:#fff}
.nf-step.ok i{background:#e4f0e6;color:#2f6d3c}
.nf-step-sep{color:#c5c0b6}
.nf-mb{padding:18px 20px;overflow-y:auto;flex:1}
.nf-mf{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #eee9df;background:#faf9f5}
.nf-cuenta{margin-right:auto;font-size:13px;color:#4a463e}
.nf-sig{font-size:14px!important;padding:10px 18px!important}
.nf-sig:disabled{opacity:.45;cursor:not-allowed}
.nf-q{margin:0 0 2px;font-size:17px}
.nf-qs{margin:0 0 14px;font-size:12.5px;color:#6f6a62}
.nf-grupo{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6f6a62;margin:12px 0 8px}
.nf-evs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.nf-ev{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px;border:1.5px solid #e5e1d8;border-radius:12px;background:#fff;cursor:pointer;font-family:inherit}
.nf-ev:hover{border-color:#2f6d3c;background:#f7fbf8}
.nf-ev.on{border-color:#2f6d3c;background:#eef5ef;box-shadow:0 0 0 3px rgba(47,109,60,.15)}
.nf-ev-i{font-size:26px;line-height:1}
.nf-ev-n{font-size:14px;font-weight:700;color:#2a2722}
.nf-ev-d{font-size:12px;color:#6a655c;line-height:1.35}
.nf-elegido{display:inline-flex;align-items:center;gap:6px;background:#eef5ef;border-radius:20px;padding:6px 12px;font-size:13px;margin-bottom:14px}
.nf-link{background:none;border:0;padding:0;color:#1f4e86;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.nf-pk-top{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.nf-pk-q{width:100%;padding:11px 14px;font-size:14px;border:1.5px solid #d8d4cc;border-radius:10px}
.nf-pk-roles{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:#6f6a62}
.nf-pk-rol{border:1px solid #d8d4cc;background:#fff;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.nf-pk-rol small{color:#6f6a62;font-weight:400}
.nf-pk-rol.on{background:#1f4e86;border-color:#1f4e86;color:#fff}
.nf-pk-rol.on small{color:#dbe6f5}
.nf-pk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;max-height:46vh;overflow-y:auto;padding:2px}
.nf-pk-u{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px 12px;border:1.5px solid #e5e1d8;border-radius:12px;background:#fff;cursor:pointer;font-family:inherit;text-align:center}
.nf-pk-u:hover{border-color:#1f4e86}
.nf-pk-u.on{border-color:#1f4e86;background:#eef3fb;box-shadow:0 0 0 3px rgba(31,78,134,.14)}
.nf-pk-n{font-size:13px;font-weight:700;color:#2a2722}
.nf-pk-r{font-size:11px;color:#6f6a62}
.nf-pk-ok{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:#1f4e86;color:#fff;font-size:12px;font-weight:700;display:none;align-items:center;justify-content:center}
.nf-pk-u.on .nf-pk-ok{display:flex}
.nf-vacio-s{grid-column:1/-1;text-align:center;color:#6f6a62;font-size:13px;padding:18px}
.nf-resumen{display:flex;gap:14px;align-items:flex-start;background:#f6f4ef;border-radius:12px;padding:14px 16px;font-size:14.5px;line-height:1.5}
.nf-resumen-acts{margin-top:6px}
.nf-prev{margin-top:16px;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden;max-width:380px}
.nf-prev-bar{font-size:11px;font-weight:700;color:#6f6a62;padding:8px 12px;background:#faf9f5;border-bottom:1px solid #eee9df}
.nf-activo{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:13px;cursor:pointer}
@media(max-width:640px){
  .nf-card{flex-wrap:wrap}
  .nf-card-a{flex-direction:row;flex-wrap:wrap;align-items:center;width:100%}
  .nf-hero-acts{margin-left:0;width:100%}
  .nf-big{flex:1}
  .nf-pk-grid{grid-template-columns:repeat(2,1fr)}
}
.inv-sincero{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:#4a463e;cursor:pointer;padding:7px 12px;border:1px solid #d8d4cc;border-radius:8px;background:#fff;white-space:nowrap}
.inv-sincero input{margin:0;width:15px;height:15px;cursor:pointer}
/* Inventarios: ruta del lote bajo la etapa (directo a envasar / pasa por proceso) */
.inv-ruta{margin-top:4px;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-ruta.dir{color:#2f6d3c}
.inv-ruta.proc{color:#6a655c}

/* Saldos por lote: desglose debajo del total beneficiado (recuperada) */
.inv-ben-sub{font-size:11px;font-weight:600;color:#6f6a62}

/* ===== Modal de trazabilidad de lote ===== */
.modal .box.trz-box{max-width:1120px}
.trz-tit{font-size:16px;font-weight:700}
.trz-sub{font-size:12.5px;color:#c9cec6;margin-top:4px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.trz-chip{display:inline-block;background:rgba(255,255,255,.13);color:#fff;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}
.trz-mut{color:#6f6a62}
.trz-lk{color:#1f4e86;font-weight:600;text-decoration:none;border-bottom:1px dotted #1f4e86}
.trz-lk:hover{border-bottom-style:solid}
/* Cadena: 4 pasos con flechas */
.trz-flow{display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr 28px 1fr;align-items:stretch;margin-bottom:16px}
.trz-step{background:#fff;border:1px solid #e8e4da;border-top:3px solid var(--c);border-radius:10px;padding:12px 14px;min-width:0}
.trz-step.mp{--c:#1f4e86}.trz-step.ben{--c:#2f6d3c}.trz-step.env{--c:#b5772a}.trz-step.sal{--c:#3d7a4e;background:#f3f8f3}
.trz-step.na{opacity:.6;border-top-style:dashed}
.trz-step-h{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c)}
.trz-step-n{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--c);color:#fff;font-size:11px}
.trz-step-v{font-size:21px;font-weight:700;color:#2a2722;margin:6px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trz-step-s{font-size:12px;color:#5d584f;line-height:1.5}
.trz-arrow{display:grid;place-items:center;color:#7a746b}.trz-arrow svg{width:18px;height:18px}
/* Barra de destino de lo beneficiado */
.trz-card{background:#fff;border:1px solid #e8e4da;border-radius:10px;padding:12px 14px;margin-bottom:16px}
.trz-card-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6f6a60;margin-bottom:8px}
.trz-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:#f0ede6;gap:2px}
.trz-bar-s.env,.trz-ley i.env{background:#b5772a}.trz-bar-s.comp,.trz-ley i.comp{background:#6d3fc4}.trz-bar-s.libre,.trz-ley i.libre{background:#7fb38b}
.trz-leyes{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;font-size:12px;color:#4a463e}
.trz-ley i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.trz-alerta{background:#fbeef0;border:1px solid #e8b4bc;color:#7a3038;border-radius:8px;padding:8px 12px;font-size:12.5px;margin:10px 0 0}
.trz-box .mb>.trz-alerta{margin:0 0 14px}
.trz-nota{background:#f6f4ef;border:1px solid #e8e4da;color:#5d584f;border-radius:8px;padding:8px 12px;font-size:12.5px;margin:10px 0 0}
.trz-box .mb>.trz-nota{margin:0 0 14px}
/* Secciones y tablas */
.trz-sec{margin-bottom:16px}
.trz-sec.mp{--c:#1f4e86}.trz-sec.ben{--c:#2f6d3c}.trz-sec.env{--c:#b5772a}.trz-sec.comp{--c:#6d3fc4}
.trz-sec-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#4a463e;margin-bottom:7px}
.trz-dot{width:9px;height:9px;border-radius:50%;background:var(--c)}
.trz-cnt{background:#ebe7de;color:#6f6a60;border-radius:999px;padding:1px 8px;font-size:11px}
.trz-vacio{background:#fff;border:1px dashed #ddd8cc;border-radius:10px;padding:12px 14px;font-size:12.5px;color:#6f6a62}
.trz-tw{overflow-x:auto;background:#fff;border:1px solid #e8e4da;border-radius:10px}
.trz-tr{display:grid;gap:12px;align-items:center;padding:9px 14px;border-bottom:1px solid #f0ede6;font-size:12.5px;color:#2a2722}
.trz-tr:last-child{border-bottom:0}
.trz-tr>div{min-width:0;overflow-wrap:anywhere}
.trz-th{background:#faf9f5;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62;padding-top:8px;padding-bottom:8px}
.trz-tr .r{text-align:right}.trz-tr .c{text-align:center}.trz-tr .b{font-weight:700}
.trz-tr .ben{color:#2f6d3c}.trz-tr .env{color:#b5772a}.trz-tr .comp{color:#6d3fc4}
.trz-rep{font-size:11px;font-weight:700;color:#b5772a;background:#fbf1e3;border-radius:4px;padding:1px 5px;margin-left:4px}
.trz-est{display:inline-block;font-size:11px;font-weight:600;border-radius:999px;padding:2px 8px;white-space:nowrap}
.trz-est.ok{background:#e4f0e6;color:#2f6d3c}.trz-est.pend{background:#fdf4dc;color:#8a5a0a}.trz-est.bad{background:#fbeef0;color:#a03050}.trz-est.warn{background:#fbf1e3;color:#b5772a}
.trz-ped{margin-bottom:10px}
.trz-ped-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin:0 2px 6px;font-size:12.5px}
.trz-ped-n{font-weight:700;color:#b5772a;font-size:13px}
.trz-ped-c{color:#4a463e;font-weight:600}
.trz-ped-k{margin-left:auto;font-weight:700;color:#2a2722}
@media(max-width:860px){
  .trz-flow{grid-template-columns:1fr 1fr;gap:10px}
  .trz-arrow{display:none}
  .trz-step-v{font-size:18px}
}

/* Contratos · franja de datos de logística (solo usuarios de Logística) */
.ct-log{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:7px 14px;
  margin:0 20px 14px 52px;padding:10px 14px;border-radius:10px;
  background:#f7f9fc;border:1px solid #e3e9f2;
}
.ct-log-i{display:flex;flex-direction:column;gap:2px;min-width:0}
.ct-log-l{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#7d8794;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-log-v{font-size:12.5px;font-weight:600;color:#1f2a37;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-log-v.mono{font-variant-numeric:tabular-nums}
.ct-log-v.none{color:#c0c6cf;font-weight:400}
@media(max-width:820px){
  .ct-log{margin:0 16px 14px;grid-template-columns:1fr 1fr;padding:10px 12px}
}

/* ---------- Plan de producción beneficiado ---------- */
.pb-wrap{max-width:1400px}
.pb-head-t{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.pb-head-t>div:first-child{flex:1;min-width:240px}
.pb-titulo{font-size:19px;font-weight:700;letter-spacing:.02em;color:#2a2722}
.pb-sub{font-size:14px;color:#6f6a5f;margin-top:4px}
.pb-head-a{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.pb-ini{display:flex;flex-direction:column;font-size:11px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:#6f6a62;gap:3px}
.pb-ini input{font-size:14px;padding:7px 9px;text-transform:none;letter-spacing:0}
.pb-btn2{background:#fff;color:#2d2a24;border:1px solid #d9d4c8;border-radius:8px;padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}
.pb-btn2:hover{background:#f7f5f0}
.pb-resumen{margin-top:16px;background:#2f6d3c;color:#fff;border-radius:12px;padding:18px 20px}
.pb-res-k{font-size:14px;opacity:.85}
.pb-res-v{font-size:30px;font-weight:700;line-height:1.2;margin:4px 0 10px}
.pb-res-s{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;opacity:.95}
.pb-res-s b{font-weight:700}
.pb-pasos{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.pb-paso{display:flex;gap:12px;align-items:flex-start;background:#f3f8f4;border:1px solid #d6e8db;border-radius:12px;padding:14px;font-size:14px;color:#2a2722}
.pb-paso>span{flex:0 0 32px;height:32px;border-radius:50%;background:#3d7a4e;color:#fff;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center}
.pb-guardado{margin-top:10px;font-size:12px;color:#7a746b}
.pb-sucio{position:sticky;top:8px;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff4dc;border:1px solid #f0d49a;color:#6b4708;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:14px;font-weight:600;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.pb-sucio .btn{margin-left:auto;font-size:15px;padding:10px 22px}
.pb-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start;margin-top:16px}
.pb-sec{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;margin-bottom:14px;color:#2a2722}
.pb-sec-n{width:26px;height:26px;border-radius:50%;background:#2a2722;color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center}
.pb-list{display:flex;flex-direction:column;gap:8px}
.pb-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #e5e1d8;border-radius:12px;background:#fff}
.pb-row.pb-off{background:#faf9f5}
.pb-row.pb-drag{opacity:.4}
.pb-row.pb-over{border-color:#3d7a4e;box-shadow:0 -3px 0 #3d7a4e}
.pb-row[draggable]{cursor:grab}
.pb-row[draggable] .pb-lote-c{cursor:text;user-select:text;-webkit-user-select:text;display:inline-block}
.pb-n{width:40px;height:40px;border-radius:10px;color:#fff;font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center}
.pb-n.sm{width:26px;height:26px;font-size:13px;border-radius:7px;display:inline-flex}
.pb-lote{min-width:0}
.pb-lote-c{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:15px;color:#2a2722}
.pb-lote-i{font-size:13px;color:#6f6a5f;margin-top:1px}
.pb-cuando{font-size:13.5px;color:#2a2722;margin-top:5px}
.pb-cuando b{color:#2f6d3c}
.pb-chip{display:inline-block;margin-top:5px;font-size:12px;font-weight:650;padding:2px 9px;border-radius:999px}
.pb-acts{display:flex;gap:4px}
.pb-ib{width:34px;height:34px;border:1px solid #e0dbd0;background:#fff;border-radius:8px;font-size:13px;color:#4a463e;cursor:pointer}
.pb-ib:hover{background:#f3f1ea}
.pb-ib:disabled{opacity:.3;cursor:default}
.pb-ib.on{background:#2a2722;color:#fff;border-color:#2a2722}
.pb-ib-x{color:#a03050}
.pb-ajuste{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:#faf9f5;border-radius:10px;padding:10px 12px;cursor:default}
.pb-ajuste label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#6f6a5f}
.pb-ajuste input{width:170px;padding:7px 9px;font-size:14px}
.pb-ajuste-n{font-size:12px;color:#6f6a62;flex:1;min-width:180px}
.pb-vacio{padding:26px 12px;text-align:center;font-size:14px;color:#6f6a62;border:2px dashed #e5e1d8;border-radius:12px}
.pb-busca{width:100%;margin-bottom:10px;font-size:14px;padding:9px 11px}
.pb-displist{display:flex;flex-direction:column;gap:6px;max-height:620px;overflow:auto}
.pb-disp{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #e5e1d8;border-radius:10px;background:#fff;font-family:inherit;width:100%;color:inherit}
button.pb-disp{cursor:pointer}
button.pb-disp:hover{border-color:#3d7a4e;background:#f3f8f4}
.pb-disp-kg{font-family:'IBM Plex Mono',monospace;font-size:13.5px;white-space:nowrap}
.pb-disp-add{font-size:13px;font-weight:700;color:#2f6d3c;white-space:nowrap}
.pb-tabs{margin-left:auto;display:flex;background:#f0ede6;border-radius:9px;padding:3px}
.pb-tabs button{border:0;background:none;padding:6px 14px;border-radius:7px;font-size:13px;font-weight:600;color:#6f6a5f;cursor:pointer;font-family:inherit}
.pb-tabs button.on{background:#fff;color:#2a2722;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.pb-aviso{margin-bottom:12px;padding:10px 12px;border-radius:10px;background:#fdf3df;color:#7a4e0c;font-size:13px}
.pb-cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.pb-dia{border:1px solid #e5e1d8;border-radius:12px;padding:12px 14px;background:#fff}
.pb-dia-t{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pb-est{font-size:11px;font-weight:650;background:#fdf3df;color:#8a5a10;padding:2px 8px;border-radius:999px}
.pb-tu{padding:8px 0;border-top:1px solid #f0ede6}
.pb-tu-h{font-size:13px;color:#6f6a5f;margin-bottom:6px}
.pb-tu-h b{color:#2a2722}
.pb-barra{display:flex;height:26px;border-radius:7px;overflow:hidden;gap:2px;margin-bottom:6px}
.pb-barra span{min-width:4px;color:#fff;font-size:11px;font-weight:600;font-family:'IBM Plex Mono',monospace;display:flex;align-items:center;padding:0 6px;overflow:hidden;white-space:nowrap}
.pb-barra .pb-libre{background:repeating-linear-gradient(45deg,#f0ede6,#f0ede6 5px,#e7e3da 5px,#e7e3da 10px);color:#6f6a62;font-family:inherit}
.pb-tu-l{display:grid;grid-template-columns:10px auto minmax(0,1fr) auto auto;align-items:center;gap:8px;font-size:13px;padding:2px 0}
.pb-tu-l i{width:10px;height:10px;border-radius:3px;flex:0 0 10px}
.pb-tu-l span{color:#6f6a5f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pb-tu-l b.mono{text-align:right;white-space:nowrap}
.pb-tbl{overflow-x:auto}
.pb-tbl table{width:100%;border-collapse:collapse;font-size:13.5px}
.pb-tbl th{text-align:left;font-size:11px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:#6f6a62;background:#faf9f5;padding:10px;border-bottom:1px solid #e5e1d8;white-space:nowrap}
.pb-tbl td{padding:10px;border-bottom:1px solid #f0ede6;vertical-align:middle}
.pb-tbl tfoot td{font-weight:700;background:#faf9f5}
.pb-tbl .r{text-align:right}
@media (max-width:980px){ .pb-grid{grid-template-columns:1fr} }
@media (max-width:640px){
  .pb-res-v{font-size:23px}
  .pb-row{grid-template-columns:34px minmax(0,1fr)}
  .pb-n{width:34px;height:34px;font-size:15px}
  .pb-acts{grid-column:1/-1;justify-content:flex-end}
  .pb-cal{grid-template-columns:1fr}
}
@media print{
  .pb-grid .card:last-child,.pb-head-a,.pb-acts,.pb-tabs,.pb-sucio{display:none !important}
  .pb-grid{grid-template-columns:1fr}
  .pb-resumen,.pb-n,.pb-barra span{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Contratos no confirmados (proyecciones) */
.ct-new.ct-new-nc{background:#fff;color:#0e7490;border:1.5px dashed #0e7490}
.ct-new.ct-new-nc:hover{background:#e3f3f7}
.ct-nc-tag{flex:none;font-size:11px;font-weight:700;letter-spacing:.03em;color:#0e7490;background:#e3f3f7;border:1px dashed #7fb8c7;border-radius:5px;padding:1px 6px;white-space:nowrap}
#ctProbWrap[hidden],#ctNcHint[hidden]{display:none}

/* Horas trabajadas · modal de retraso */
.modal .box.hr-box{max-width:540px}
.hr-lbl{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6a655c;margin:4px 0 8px}
.hr-lbl:not(:first-child){margin-top:18px}
.hr-turnos{display:grid;gap:6px;max-height:228px;overflow-y:auto;padding:1px}
.hr-turno{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 12px;border:1px solid #e5e1d8;border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:#2a2722;transition:border-color .12s,background .12s}
.hr-turno:hover{border-color:#c9c3b6}
.hr-turno.on{border-color:#c0562e;background:#fdf5f1;box-shadow:0 0 0 2px rgba(192,86,46,.15)}
.hr-t-dia{display:flex;flex-direction:column;align-items:center;width:40px;flex-shrink:0;line-height:1.15}
.hr-t-dia b{font-size:13px;font-weight:600}
.hr-t-dia span{font-size:11px;color:#6f6a62}
.hr-t-tx{display:flex;flex-direction:column;min-width:0;flex:1}
.hr-t-a{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hr-t-h{font-size:11.5px;color:#6f6a62}
.hr-t-ret{font-size:11.5px;font-weight:600;color:#c0562e;background:#fbeae3;border-radius:20px;padding:2px 8px;flex-shrink:0}
.hr-min{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hr-in{width:150px;flex-shrink:0}
.hr-in em{margin:0 0 0 8px}
.hr-in:focus-within{border-color:#c0562e;box-shadow:0 0 0 3px rgba(192,86,46,.15)}
.hr-rap,.hr-mot{display:flex;gap:6px;flex-wrap:wrap}
.hr-rap button,.hr-mot button{border:1px solid #d8d4cc;background:#fff;color:#4a463e;border-radius:20px;padding:6px 12px;font:500 12.5px 'IBM Plex Sans',sans-serif;cursor:pointer}
.hr-rap button{font-family:'IBM Plex Mono',monospace;min-width:42px}
.hr-rap button:hover,.hr-mot button:hover{border-color:#c0562e;color:#c0562e}
.hr-rap button.on,.hr-mot button.on{background:#c0562e;border-color:#c0562e;color:#fff}
.hr-res{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin-top:18px;padding:11px 14px;border-radius:10px;background:#fff;border:1px solid #e5e1d8;font-size:12.5px;color:#6a655c}
.hr-res b{text-align:right;color:#2a2722;font-weight:600}
.hr-res.con{background:#fdf5f1;border-color:#f0d3c6}
.hr-res.con b{color:#c0562e}
.hr-res.mal{display:block;background:#faeef0;border-color:#eecdd3;color:#a03050}
.hr-err{font-size:12.5px;color:#a03050;margin-top:10px}
.hr-err:empty{display:none}
.hr-quitar{color:#a03050}
.hr-quitar[hidden]{display:none}
/* Un renglón por día: minutos y motivo propios */
.modal .box.hr-box{max-width:680px}
.hr-rap-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.hr-dias{display:grid;gap:6px;max-height:min(52vh,420px);overflow-y:auto;padding:2px}
.hr-dia{display:grid;grid-template-columns:40px minmax(0,1fr) 112px 164px;grid-template-areas:"d t m s" "x x x msg";align-items:center;column-gap:10px;padding:8px 12px;border:1px solid #e5e1d8;border-radius:10px;background:#fff;transition:border-color .12s,background .12s}
.hr-dia>.hr-t-dia{grid-area:d}.hr-dia>.hr-t-tx{grid-area:t}.hr-dia>.hr-in-dia{grid-area:m}.hr-dia>.hr-sel{grid-area:s}
.hr-dia.con{background:#fdf5f1;border-color:#f0d3c6}
.hr-dia.act,.hr-dia:focus-within{border-color:#c0562e;box-shadow:0 0 0 2px rgba(192,86,46,.15)}
.hr-dia.mal{border-color:#d98a9c;background:#fdf3f5}
.hr-in-dia{width:auto}
.hr-in-dia input{width:100%;min-width:0}
.hr-sel{width:100%;min-width:0;padding:7px 8px;border:1px solid #d8d4cc;border-radius:8px;background:#fff;font:500 12.5px 'IBM Plex Sans',sans-serif;color:#2a2722}
.hr-sel:focus{outline:none;border-color:#c0562e;box-shadow:0 0 0 3px rgba(192,86,46,.15)}
.hr-sel[aria-invalid="true"],.hr-dia input[aria-invalid="true"]{border-color:#c0562e;color:#a03050}
.hr-dia-msg{grid-area:msg;font-size:11px;color:#6f6a62;text-align:right;min-height:0}
.hr-dia-msg:empty{display:none}
.hr-dia.cambio .hr-dia-msg{color:#c0562e;font-weight:600;margin-top:4px}
.hr-dia.mal .hr-dia-msg{color:#a03050;font-weight:600;margin-top:4px}
.hr-rap button:focus-visible{outline:2px solid #c0562e;outline-offset:2px}
.hr-modal[aria-busy="true"] .hr-box{cursor:progress}
@media (max-width:600px){
  .hr-dia{grid-template-columns:40px minmax(0,1fr) 1fr;grid-template-areas:"d t t" "m m s" "msg msg msg";row-gap:8px}
  .hr-rap button{padding:8px 13px}
}

/* Calidad (Beta) · vista Bandeja: mismo formato que la Bandeja de entrada */
.cal-bandeja{padding-bottom:20px}
.cal-bdj{padding:0!important;overflow:hidden;margin-bottom:16px}
.cal-bdj-h{color:#fff;padding:11px 16px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:10px}
.cal-bdj-h span{margin-left:auto;background:rgba(255,255,255,.22);padding:2px 10px;border-radius:20px;font-size:12px}
.cal-bdj-sub{display:flex;align-items:center;gap:9px;padding:9px 16px;background:#faf9f5;border-bottom:1px solid #eee9df;border-left:3px solid #d8d4cc}
.cal-bdj-sub span:first-child{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#4a463e}
.cal-bdj-sub span.mono{margin-left:auto;font-size:11.5px;color:#6f6a62}
.cal-bdj-row{display:flex;align-items:center;gap:12px;padding:11px 14px 11px 22px;border-bottom:1px solid #f0ede6;background:#fff}
.cal-bdj-row.on{background:#f7f4fd}
.cal-bdj-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cal-bdj-tx{min-width:0;flex:1}
.cal-bdj-t{font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-bdj-s{font-size:12px;color:#6f6a62;margin-top:2px}
.cal-bdj-btn{padding:6px 12px!important;font-size:12px!important;flex-shrink:0}
.cal-bdj-vacio{padding:18px!important}
.cal-hab-tag{color:#6d28d9;background:#f1ebfd}
.cal-hab-btn{background:#6d28d9;padding:7px 14px!important;font-size:13px!important;white-space:nowrap}
.modal .box.cal-hab-box{max-width:560px}
.cal-hab-tipos button:hover{border-color:#6d28d9;color:#6d28d9}
.cal-hab-tipos button.on{background:#6d28d9;border-color:#6d28d9;color:#fff}
.cal-hab-ya{margin-top:12px;padding:10px 12px;border-radius:9px;background:#f1ebfd;border:1px solid #ddd0f7;font-size:12.5px;color:#4c1d95}
.cal-hab-ya[hidden]{display:none}
#calHabLote{text-transform:uppercase}
@media (max-width:600px){
  .cal-bdj-row{flex-wrap:wrap;padding-left:16px}
  .cal-bdj-tx{flex-basis:calc(100% - 24px)}
  .cal-bdj-btn{margin-left:20px}
}

/* Calidad (Beta) · vista Por etapa: pendientes / revisado / rechazados → etapa → lote → registros diarios */
.cal-etapas{display:flex;flex-direction:column;gap:12px;padding-bottom:20px}
.cal-et-cat{padding:0!important;overflow:hidden;border-top:4px solid var(--cal-c)}
.cal-et-cat-h{display:flex;align-items:center;gap:8px;padding:12px 14px;min-height:48px;font-size:14.5px;font-weight:700;color:var(--cal-c);cursor:pointer;list-style:none}
.cal-et-cat-h::-webkit-details-marker,.cal-et-alerta-h::-webkit-details-marker{display:none}
.cal-et-cat-h::before,.cal-et-alerta-h::before{content:"▸";transition:transform .15s}
.cal-et-cat[open]>.cal-et-cat-h::before,.cal-et-alerta[open]>.cal-et-alerta-h::before{transform:rotate(90deg)}
.cal-et-cat[open]>.cal-et-cat-h{border-bottom:1px solid #eee9df}
.cal-et-alerta-h{cursor:pointer;list-style:none}
.cal-et-n{margin-left:auto;background:var(--cal-c);color:#fff;padding:2px 10px;border-radius:20px;font-size:12px}
.cal-et-aviso{padding:8px 14px;font-size:12px;color:#8f1c13;background:#fdecec;border-bottom:1px solid #f5d2cf}
.cal-et-sub{border-bottom:1px solid #f0ede6}
.cal-et-sub>summary{display:flex;align-items:center;gap:8px;padding:10px 14px;min-height:44px;cursor:pointer;list-style:none;background:#faf9f5}
.cal-et-sub>summary::-webkit-details-marker{display:none}
.cal-et-sub>summary::before{content:"▸";color:#6f6a62;transition:transform .15s}
.cal-et-sub[open]>summary::before{transform:rotate(90deg)}
.cal-et-sub-t{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#4a463e}
.cal-et-sub>summary .ct-gcount{margin-left:auto}
/* Importante: lotes con formularios que en Registros siguen «Pendiente Calidad» */
.cal-imp-n{background:#fbf1e3;color:#8a5a10;border:1px solid #edd49a;border-radius:20px;padding:2px 9px;font-size:11.5px;font-weight:700;white-space:nowrap;text-transform:none;letter-spacing:0}
.cal-imp{color:#8a5a10;background:#fbf1e3;border:1px solid #edd49a}
.cal-et-imp{background:#fffaf1}
.cal-et-aviso-imp{color:#7a4f0e;background:#fbf1e3;border-bottom-color:#edd49a}
.cal-et-lote{border-top:1px solid #f0ede6;border-left:3px solid var(--cal-c);background:#fff}
.cal-et-lote>summary{display:block;padding:9px 14px 9px 16px;cursor:pointer;list-style:none}
.cal-et-lote>summary::-webkit-details-marker{display:none}
.cal-et-lote>summary:hover,.cal-et-lote[open]>summary{background:#f7f5f0}
.cal-et-lote-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px;font-weight:600}
.cal-et-lote-t::after{content:"▾";margin-left:auto;color:#6f6a62;font-weight:400}
.cal-et-lote[open] .cal-et-lote-t::after{content:"▴"}
.cal-et-lote-t .ct-pill{height:22px;font-size:11px}
.cal-et-lote-s{font-size:12px;color:#6f6a62;margin-top:2px}
.cal-et-form{margin-left:auto;border:0;background:#0f766e;color:#fff;border-radius:8px;padding:5px 11px;font:600 12px 'IBM Plex Sans',sans-serif;cursor:pointer;min-height:30px}
.cal-et-form:hover{background:#0b5f58}
.cal-et-form:focus-visible{outline:3px solid #0f766e;outline-offset:2px}
.cal-et-lote-t:has(.cal-et-form)::after{margin-left:6px}
.cal-et-lote-m{font-size:12px;color:#b42318;margin-top:3px}
.cal-et-lote-b{padding:6px 14px 12px 16px;border-top:1px dashed #eee9df}
.cal-et-dias-h{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#4a463e;margin:6px 0 10px}
.cal-et-abrir{margin-top:2px}
.cal-et-seg .cal-seg{display:flex;flex-wrap:wrap}
.cal-et-seg .cal-seg button{flex:1 1 auto}
.cal-et-seg{margin-bottom:14px}
.cal-et-alerta .cal-et-lote{border-left-color:#b42318}
@media (prefers-reduced-motion:reduce){ .cal-et-sub>summary::before,.cal-et-cat-h::before,.cal-et-alerta-h::before{transition:none} }

/* Calidad (Beta) · control de impurezas: A, B, C, piedras, insectos, larvas → impurezas y pureza */
.cal-imp-muestra{margin:4px 0 8px}
.cal-imp input.cal-imp-mal{border-color:#b42318;color:#b42318;background:#fdecec}
.cal-imp-res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.cal-imp-r{padding:9px 11px;border-radius:9px;background:#e3f4ea;border:1px solid #c6e6d2}
.cal-imp-r .cal-kpi-v{font-size:18px;font-weight:700;color:#18794a}
.cal-imp-r.cal-imp-mal{background:#fdecec;border-color:#f5d2cf}
.cal-imp-r.cal-imp-mal .cal-kpi-v{color:#b42318}
@media (max-width:520px){ .cal-imp-res{grid-template-columns:1fr} }
.cal-imp select.cal-imp-mal{border-color:#b42318;color:#b42318;background:#fdecec}
.cal-org-h{margin-top:14px}
.cal-imp select.cal-imp-reg{border-color:#a14a00;color:#a14a00;background:#ffeedd}
.cal-par.cal-reg{color:#a14a00;background:#ffeedd}
.cal-gel-dif{align-self:end}

/* Calidad · lote con formulario de papel: una sola ventana ancha y centrada */
.ct-pane.cal-pane-ancho{justify-content:center;align-items:center;padding:16px}
.cal-pane.cal-pane-ancho .box{width:min(980px,100%);height:100%;border-radius:14px;overflow:hidden;box-shadow:0 24px 64px rgba(35,42,36,.28);animation:calAnchoIn .18s ease}
@keyframes calAnchoIn{from{transform:translateY(10px);opacity:.6}to{transform:none;opacity:1}}
.cal-pane-ancho .cal-pane-b{padding:16px 20px 24px}
@media (max-width:820px){
  .ct-pane.cal-pane-ancho{padding:0}
  .cal-pane.cal-pane-ancho .box{width:100vw;height:100dvh;border-radius:0}
  .cal-pane-ancho .cal-pane-b{padding:14px 12px 24px}
}
@media (prefers-reduced-motion:reduce){.cal-pane.cal-pane-ancho .box{animation:none}}
/* Formulario de control en tarjetas (calPlanillaHtml), dentro del panel */
.cpl{display:grid;gap:12px;margin:14px 0}
.cpl-cab{position:sticky;top:-16px;z-index:2;background:#f6f4ef;padding:8px 0 6px;display:grid;gap:6px}
.cpl-cab-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cpl-cab-t{flex:1;min-width:200px;display:flex;flex-direction:column}
.cpl-cab-t b{font-size:15px;font-weight:700;color:#2a2722}
.cpl-cab-t span{font-size:12px;color:#7a756b}
.cpl-cab .cpl-estado{flex:none}
#calPasoObs .fld:last-child,#calDetCant .cal-blk:last-child{margin-bottom:0}
/* Paso 7 · decisión al final, después de llenar todo */
.cpl-sec.cpl-dec{border:2px solid #2f6d3c;background:#f4f8f5}
.cpl-dec .cpl-n{background:#1f4d2b}
.cpl-dec .cal-acciones{margin-top:0}
.cpl-dec .cal-anotar{margin-bottom:0}
.cal-pane-ancho #calMsg:empty{display:none}
.cpl-prog{height:4px;background:#e2ddd2;flex-shrink:0;border-radius:4px;overflow:hidden}
.cpl-prog i{display:block;height:100%;width:0;background:#4f9a5f;transition:width .2s}
.cpl-sec{background:#fff;border:1px solid #e6e1d6;border-radius:12px;padding:14px 16px}
.cpl-sh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.cpl-n{width:26px;height:26px;border-radius:50%;background:#2f6d3c;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.cpl-st{flex:1;min-width:180px}
.cpl-st h3{margin:0;font-size:15px;font-weight:700;color:#2a2722}
.cpl-sub{font-size:12px;color:#7a756b;margin-top:1px;line-height:1.35}
.cpl-cnt{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;color:#7a756b;background:#f3f1ea;border-radius:20px;padding:3px 9px;white-space:nowrap}
.cpl-cnt.full{background:#e3f4ea;color:#18794a}
.cpl-rap{border:1px solid #cfe0d3;background:#f4f8f5;color:#2f6d3c;border-radius:8px;padding:6px 11px;font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;min-height:36px}
.cpl-rap:hover{background:#e8f1ea}
.cpl-rap:focus-visible{outline:2px solid #2f6d3c;outline-offset:1px}
.cpl-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.cpl-f,.cpl-rt{position:relative;border:1px solid #e6e1d6;border-radius:10px;padding:9px 10px;background:#fbfaf7;display:flex;flex-direction:column;gap:6px;min-width:0}
.cpl-l{font-size:12.5px;font-weight:600;color:#3d3a34;line-height:1.25;padding-right:14px}
.cpl-lim{align-self:flex-start;font-size:11px;color:#6f6a60;background:#f0ede6;border-radius:20px;padding:1px 7px}
.cpl-step,.cpl-in{display:flex;align-items:stretch;border:1px solid #d8d4cc;border-radius:8px;background:#fff;overflow:hidden;margin-top:auto}
.cpl-step button{border:0;background:#f3f1ea;color:#3d3a34;width:40px;font-size:19px;line-height:1;cursor:pointer;flex-shrink:0}
.cpl-step button:hover{background:#e8e4da}
.cpl-step input{flex:1;min-width:0;border:0;text-align:center;font-size:17px;padding:9px 4px;background:#fff;color:#1f1d1a;-moz-appearance:textfield}
.cpl-in input{flex:1;min-width:0;border:0;font-size:17px;padding:9px 10px;background:transparent;color:#1f1d1a;-moz-appearance:textfield}
.cpl-step input::-webkit-inner-spin-button,.cpl-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cpl-in span{align-self:center;padding-right:10px;font-size:12px;color:#7a756b;white-space:nowrap}
.cpl-step input:focus,.cpl-in input:focus{outline:none}
.cpl-step:focus-within,.cpl-in:focus-within{border-color:#2f6d3c;box-shadow:0 0 0 3px rgba(47,109,60,.18)}
.cpl-f.ok{border-color:#bfe0c6;background:#f4faf5}
.cpl-f.mal{border-color:#e8b4bc;background:#fdecec}
.cpl-f.mal .cpl-step,.cpl-f.mal .cpl-in{border-color:#b42318}
.cpl-f.mal input{color:#b42318;font-weight:600}
.cpl-f.ok::after,.cpl-f.mal::after,.cpl-rt.ok::after,.cpl-rt.mal::after{position:absolute;top:8px;right:10px;font-size:12px;font-weight:700}
.cpl-f.ok::after,.cpl-rt.ok::after{content:"✓";color:#18794a}
.cpl-f.mal::after,.cpl-rt.mal::after{content:"!";color:#b42318}
.cpl-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}
.cpl-rt{background:#f4f8f5;border-style:dashed}
.cpl-rv{margin-top:auto}
.cpl-rv b{font-size:20px;color:#2a2722}
.cpl-rv small{color:#7a756b}
.cpl-rt.mal{background:#fdecec;border-color:#e8b4bc}
.cpl-rt.mal b{color:#b42318}
.cpl-g+.cpl-os,.cpl-res+.cpl-os{margin-top:12px}
.cpl-f-txt{grid-column:span 2}
.cpl-f-txt input{font-size:15px}
.cpl-o{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid #f0ede6}
.cpl-o:first-child{border-top:0;padding-top:0}
.cpl-ol{flex:1;min-width:150px;display:flex;flex-direction:column}
.cpl-seg{display:inline-flex;flex-wrap:wrap;gap:6px}
.cpl-seg button{display:inline-flex;align-items:center;gap:6px;border:1px solid #d8d4cc;background:#fff;color:#4a463e;border-radius:9px;padding:6px 12px 6px 7px;min-height:40px;font-family:inherit;font-size:13px;cursor:pointer}
.cpl-seg button b{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#f3f1ea;font-size:12px}
.cpl-seg button:hover{border-color:#b9b3a6}
.cpl-seg button:focus-visible{outline:2px solid #2f6d3c;outline-offset:1px}
.cpl-seg .cpl-ob.on{background:#e3f4ea;border-color:#18794a;color:#18794a;font-weight:600}
.cpl-seg .cpl-ob.on b{background:#18794a;color:#fff}
.cpl-seg .cpl-or.on{background:#ffeedd;border-color:#a14a00;color:#a14a00;font-weight:600}
.cpl-seg .cpl-or.on b{background:#a14a00;color:#fff}
.cpl-seg .cpl-om.on{background:#fdecec;border-color:#b42318;color:#b42318;font-weight:600}
.cpl-seg .cpl-om.on b{background:#b42318;color:#fff}
/* Opciones sin bueno/malo (p. ej. calidad orgánico / ecológico / convencional) */
.cpl-seg .cpl-oo{padding:6px 12px}
.cpl-seg .cpl-oo.on{background:#e6f0f7;border-color:#1f5f86;color:#1f5f86;font-weight:600}
.cpl-estado{flex:1;font-size:13px;color:#4a463e;align-self:center}
.cpl-mal{color:#b42318;font-weight:700}
.cpl-okt{color:#18794a;font-weight:600}
@media (max-width:700px){
  .cpl-sec{padding:12px}
  .cpl-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cpl-seg{width:100%}
  .cpl-seg button{flex:1;justify-content:center;padding:6px}
  .cpl-seg button span{display:none}
}
.cal-tl-imp{margin-left:auto;border:1px solid #cfe0d3;background:#f4f8f5;color:#2f6d3c;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;min-height:32px}
.cal-tl-imp:hover{background:#e6f0e9}
.cal-tl-imp+.cal-tl-del{margin-left:6px}

/* Tracking · agregar steps y sub-steps */
.ps.ps-add{--bd:#cfc9bd;--bg:transparent;border-style:dashed;display:flex;align-items:center;justify-content:center;gap:6px;min-height:52px;font:600 13px 'IBM Plex Sans',sans-serif;color:#5c5850;cursor:pointer}
.ps.ps-add:hover{--bd:#8a8478;color:#2a2722;background:#faf9f5}
.ps.ps-add span{font-size:18px;line-height:1}
.ps-add-sub{align-self:flex-start;background:none;border:1px dashed #cfc9bd;border-radius:999px;padding:2px 10px;font:500 11.5px 'IBM Plex Sans',sans-serif;color:#6a655c;cursor:pointer}
.ps-add-sub:hover{border-color:#8a8478;color:#2a2722}
.ps.ps-add:focus-visible,.ps-add-sub:focus-visible{outline:2px solid #1f4e86;outline-offset:2px}
.pm2-del-paso{display:block;margin-top:14px;padding-left:0}

/* Email del paso · adjuntos */
.pm2-att{border:1px solid var(--line,#e5e1d8);border-radius:12px;padding:4px 14px 12px;margin:16px 0 0;min-width:0;transition:border-color .15s,background .15s}
.pm2-att.over{border-color:#1f4e86;background:#f3f7fd}
.pm2-att>legend.pm2-lbl{margin:0;padding:0 6px}
.pm2-att-tot{font-weight:500;color:#6a655c}
.pm2-att-tot.mal{color:#b3261e;font-weight:700}
.pm2-att-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6f6a62;margin:10px 0 4px}
.pm2-att-ls{display:grid;gap:4px}
.pm2-att-it{display:flex;align-items:center;gap:10px;padding:5px 6px;border-radius:8px;cursor:pointer;min-width:0}
.pm2-att-it:hover{background:#faf9f5}
.pm2-att-it input{width:17px;height:17px;flex-shrink:0;accent-color:#1f4e86}
.pm2-att-it .pm2-ext{width:34px;height:34px;font-size:11px;border-radius:8px}
.pm2-att-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.pm2-att-it small{color:#6f6a62;font-size:11.5px;white-space:nowrap}
.pm2-att-x{border:0;background:none;color:#b3261e;font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}
.pm2-att-x:hover{background:#fdecea}
.pm2-att-acts{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:10px 0 6px}
.pm2-att-add{display:inline-flex;align-items:center;gap:6px;border:1px solid #c3d7ef;background:#e8f0fb;color:#1f4e86;border-radius:9px;padding:8px 14px;font:600 13px 'IBM Plex Sans',sans-serif;cursor:pointer}
.pm2-att-add:hover{background:#dce8f8}
.pm2-att-add:focus-within{outline:2px solid #1f4e86;outline-offset:2px}
.pm2-att-keep{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#4a463e;cursor:pointer}
.pm2-att-keep[hidden]{display:none}
.pm2-att-keep input{accent-color:#1f4e86}
.pm2-ext.e-xls,.pm2-ext.e-xlsx,.pm2-ext.e-csv{background:#e3f4ea;color:#18794a}
.pm2-ext.e-zip,.pm2-ext.e-txt{background:#f1efea;color:#5c5850}
.pm2-ext.e-webp{background:#e6f4e9;color:#2f6d3c}

/* Inventario para envasar: dos bloques (listo para envasar · MP con merma estimada) */
/* Inventarios: switch entre «Inventario disponible para la venta» y «Saldos por lote» */
.inv-vista-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.pe-switch{display:inline-flex;gap:2px;padding:3px;background:#f3f1ea;border:1px solid #e2ddd2;border-radius:10px;max-width:100%;flex-wrap:wrap}
.pe-switch button{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:#6f6a60;padding:7px 14px;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;min-height:34px}
.pe-switch button:hover{color:#2a2722;background:#faf9f5}
.pe-switch button.on{background:#fff;color:#2f6d3c;box-shadow:0 1px 2px rgba(31,35,40,.08),inset 0 0 0 1px #c9d6cb}
.pe-switch button:focus-visible{outline:2px solid #2f6d3c;outline-offset:1px}
[data-invpanel][hidden]{display:none}
.pe-filtros{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}
.pe-flbl{font-size:11px;color:#6f6a62;font-weight:600;margin-right:4px;align-self:center;min-width:52px}
.pe-sec{margin-top:16px}
.pe-sec-h{display:flex;align-items:center;gap:12px;padding:10px 14px;border-left:4px solid var(--c);background:var(--bg);border-radius:8px 8px 0 0}
.pe-sec-t{font-weight:700;color:var(--c);font-size:13.5px;text-transform:uppercase;letter-spacing:.04em}
.pe-sec-s{font-size:12px;color:#6f6a60;margin-top:2px}
.pe-sec .tbl{border-top-left-radius:0;border-top-right-radius:0}
.pe-row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.5fr) minmax(0,.85fr) repeat(5,minmax(0,.85fr));gap:8px;align-items:center;padding:9px 14px;border-bottom:1px solid #eee9df;font-size:13px}
.pe-row-mpe{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,.8fr) repeat(7,minmax(0,.75fr))}
.pe-th{background:#faf9f5;font-size:11px;font-weight:700;color:#6f6a60;text-transform:uppercase;letter-spacing:.04em}
.pe-tot{background:#f3f1ea;border-top:2px solid #d9d3c5;border-bottom:0;font-weight:700}
.pe-lote{background:none;border:0;padding:0;font:inherit;font-weight:700;color:#2f6d3c;cursor:pointer;font-size:13px;letter-spacing:.02em;text-align:left}
.pe-lote:hover{text-decoration:underline}
.pe-pp{font-size:11px;color:#2f6d3c;font-weight:600;margin-top:1px}
.pe-item{font-weight:600;font-size:13px}
.pe-sub{font-size:11px;color:#6f6a62;font-weight:400}
@media(max-width:900px){
  .pe-row,.pe-row-mpe{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) repeat(3,minmax(0,.85fr));font-size:11px;gap:4px;padding:8px 6px}
  .pe-row>div:nth-child(4),.pe-row>div:nth-child(5){display:none}
  .pe-row-mpe>div:nth-child(6),.pe-row-mpe>div:nth-child(7){display:none}
  .pe-etapa{display:none}
  .pe-sec-h{flex-wrap:wrap}
}

/* Inventario para envasar: fila desplegable con el desglose y acciones del lote */
.pe-tog{cursor:pointer}
.pe-tog:hover{background:#faf9f5}
.pe-chev{color:#6f6a62;font-size:11px;margin-right:6px}
.pe-box .inv-fam-det{padding-left:34px}
@media(max-width:900px){ .pe-box .inv-fam-det{padding-left:12px} }

/* Inventario para envasar: cantidades con detalle (ventana) */
.dv-num{background:none;border:0;padding:0;font:inherit;cursor:pointer;border-bottom:1px dotted currentColor;font-variant-numeric:tabular-nums}
.dv-num:hover{border-bottom-style:solid}
.pe-tot .dv-num{font-weight:700;color:inherit}
.dv-det h4{margin:16px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6f6a60}
.dv-lote{margin-bottom:8px;font-size:13.5px}
.dv-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.dv-cuenta{background:#fff;border:1px solid #e2ddd2;border-radius:8px;padding:8px 12px}
.dv-cuenta>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:13px}
.dv-cuenta>.tot{border-top:1px solid #e2ddd2;margin-top:3px;padding-top:6px;font-weight:700}
.dv-cuenta>.neg{color:#a03050}
.dv-alerta{margin-top:8px;background:#faeef0;border:1px solid #e8b4bc;color:#a03050;border-radius:8px;padding:8px 12px;font-size:12.5px}
.dv-tw{overflow-x:auto;background:#fff;border:1px solid #e2ddd2;border-radius:8px}
.dv-t{width:100%;border-collapse:collapse;font-size:12.5px}
.dv-t th{background:#faf9f5;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6f6a60;padding:7px 10px;border-bottom:1px solid #e2ddd2}
.dv-t td{padding:6px 10px;border-bottom:1px solid #f0ece3;white-space:nowrap}
.dv-t .r{text-align:right}
.dv-t tfoot td{font-weight:700;background:#f3f1ea;border-bottom:0}
.dv-vacio{color:#6f6a62;font-size:12.5px;padding:6px 0}
.dv-lotes{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}

/* ---------- Calidad: controles del día (cloro y metales) en la pantalla de lotes ---------- */
.cal-ctls{margin:0 0 14px}
.cal-ctls-h{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b665c;margin:0 0 8px;display:flex;gap:8px;align-items:baseline}
.cal-ctls-h span{font-weight:500;letter-spacing:0;text-transform:none;color:#736d65}
.cal-ctls-g{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cal-ctl{--k:#8a5a10;--kbg:#fdf6e9;display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:12px;
  border:1px solid color-mix(in srgb,var(--k) 30%,#fff);border-left:6px solid var(--k);background:var(--kbg);cursor:pointer;font:inherit;color:#2a2722;
  transition:box-shadow .15s,transform .15s}
.cal-ctl:hover{box-shadow:0 4px 14px -6px rgba(42,39,34,.25);transform:translateY(-1px)}
.cal-ctl:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.cal-ctl-ok{--k:#18794a;--kbg:#ecf7f0}
.cal-ctl-mal{--k:#b42318;--kbg:#fdecec}
.cal-ctl-sin{--k:#b5772a;--kbg:#fdf6e9}
.cal-ctl-tx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.cal-ctl-t{font-size:15px;font-weight:700}
.cal-ctl-est{font-size:13px;font-weight:700;color:var(--k)}
.cal-ctl-s{font-size:12px;color:#6b665c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ctl-go{flex-shrink:0;background:var(--k);color:#fff;border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:700}
.modal .box.ct-form.cal-ctl-box{max-width:980px}
.cal-ctl-box .cl-shell{padding-bottom:0}
@media(max-width:720px){ .cal-ctls-g{grid-template-columns:1fr} .cal-ctl-go{display:none} }

/* ---------- Calidad «Por etapa»: categorías y etapas más fáciles de distinguir ---------- */
.cal-et-cat{border-top:0!important;border-left:6px solid var(--cal-c)}
.cal-et-cat-h{background:color-mix(in srgb,var(--cal-c) 9%,#fff);min-height:58px;font-size:16px}
.cal-et-cat-l{display:flex;flex-direction:column;line-height:1.2}
.cal-et-cat-l small{font-size:12px;font-weight:500;color:#6b665c}
.cal-et-cat .cal-et-n{font-size:15px;padding:4px 14px;min-width:24px;text-align:center}
.cal-et-cat-rech:has(.cal-et-n){box-shadow:0 0 0 1px color-mix(in srgb,var(--cal-c) 25%,transparent)}
.cal-et-sub>summary{border-left:4px solid color-mix(in srgb,var(--cal-c) 45%,#fff);background:#fff}
.cal-et-sub[open]>summary{background:color-mix(in srgb,var(--cal-c) 5%,#fff)}
.cal-et-sub-t{font-size:13px;color:#2a2722}
@media (prefers-reduced-motion:reduce){ .cal-ctl{transition:none} .cal-ctl:hover{transform:none} }

/* ---------- Calidad: chips cortos del lote y desplegable por día ---------- */
.cal-chip-s{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid transparent;white-space:nowrap}
.cal-chip-s-pend{background:#fdf3df;color:#8a5a10;border-color:#edd49a}
.cal-chip-s-ok{background:#e3f4ea;color:#18794a;border-color:#bfe3cc}
.cal-chip-s-mal{background:#fdecec;color:#b42318;border-color:#f5c2bd}
.cal-chip-s-sin{background:#f2f0ea;color:#6b665c;border-color:#e3dfd6}
.cal-ed-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:8px 0 14px}
.cal-ed-tile{--k:#6b665c;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e9e5dc;border-top:3px solid var(--k)}
.cal-ed-ok{--k:#18794a}.cal-ed-mal{--k:#b42318}.cal-ed-pend{--k:#b5772a}.cal-ed-sin{--k:#8a8478}
.cal-ed-tile-t{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6f6a62}
.cal-ed-tile-v{font-size:15px;font-weight:600;color:var(--k)}
.cal-ed-tile-v b{font-size:18px}
.cal-ed-tile-d{font-size:12px;color:#6b665c}
.cal-ed-btn{align-self:flex-start;margin-top:4px;border:1px solid var(--k);background:#fff;color:var(--k);border-radius:7px;padding:4px 10px;font:600 12px 'IBM Plex Sans',sans-serif;cursor:pointer}
.cal-ed-btn:hover{background:var(--k);color:#fff}
.cal-ed-btn:focus-visible{outline:3px solid var(--k);outline-offset:2px}
.cal-ed-dias{display:flex;flex-direction:column;gap:10px}
.cal-ed-dia{border-left:2px solid #e3dfd6;padding-left:12px}
.cal-ed-dia-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#2a2722;margin-bottom:6px}
.cal-ed-dia-p{font-size:11px;font-weight:600;color:#8a5a10;background:#fdf3df;border-radius:999px;padding:1px 8px}
.cal-ed-it{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:7px 10px;border-radius:8px;background:#faf9f5;margin-bottom:5px;font-size:12.5px;color:#4a463e}
.cal-ed-it-cal{display:block;background:#fff;border:1px solid #e9e5dc;border-left:4px solid var(--cal-c)}
.cal-ed-it-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-ed-it-h .cal-tl-imp{margin-left:auto}
.cal-ed-hora{color:#6b665c;font-size:12px}
.cal-ed-quien{font-weight:600;color:#2a2722}
.cal-ed-o{font-size:11.5px;color:#6f6a62;margin:3px 0 2px}
.cal-ed-it-pend{background:#fdf6e9;border:1px dashed #e6c88a;color:#7a4f0e}
.cal-ed-it-pend span{color:#8a6a35}
.cal-ed-it-ctl{background:#f3f8f5;border:1px solid #d6eadc}
.cal-ed-it-ctl b{color:#18794a}
.cal-ed-it-ctl.mal{background:#fdecec;border-color:#f5c2bd}
.cal-ed-it-ctl.mal b{color:#b42318}
.cal-ed-corr{flex-basis:100%;font-size:12px;color:#4a463e}
.cal-ed-mas{margin:6px 0 4px}
/* Cobros */
.cob-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px}
.cob-kpi{text-align:left;border:1px solid #e2ddd2;border-top:3px solid var(--c);border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer;font:inherit;min-width:0}
.cob-kpi:hover{background:#faf9f5}
.cob-kpi-l{font-size:11px;font-weight:700;color:#6f6a60;text-transform:uppercase;letter-spacing:.04em}
.cob-kpi-v{font-size:19px;font-weight:700;color:var(--c);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cob-kpi-s{font-size:11px;color:#6f6a62;margin-top:2px}
.cob-tabs{margin-top:4px}
.cob-tw{overflow-x:auto;background:#fff;border:1px solid #e2ddd2;border-radius:10px}
.cob-t{width:100%;border-collapse:collapse;font-size:12.5px}
.cob-t th{background:#faf9f5;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6f6a60;padding:8px 10px;border-bottom:1px solid #e2ddd2;white-space:nowrap}
.cob-t td{padding:7px 10px;border-bottom:1px solid #f0ece3;vertical-align:middle;white-space:nowrap}
.cob-t .r{text-align:right;white-space:nowrap}
.cob-t tfoot td{font-weight:700;background:#f3f1ea;border-bottom:0}
.cob-click{cursor:pointer}.cob-click:hover td{background:#faf9f5}
.cob-sub{font-size:11px;color:#6f6a62;font-weight:400}
.cob-pill{display:inline-block;border-radius:10px;padding:2px 8px;font-size:11.5px;font-weight:600;white-space:nowrap}
.cob-nota{font-size:12px;color:#6f6a62;margin-top:8px}
.cob-t td.cob-wrap{white-space:normal;min-width:180px}
.cob-prods{border-bottom:1px dotted #8a8478;cursor:help;white-space:nowrap}
.cob-det h4{margin:16px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6f6a60}
.cob-ct-h{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cob-res{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cob-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.cob-form .fld{margin:0}
.cob-form .cell{width:100%;box-sizing:border-box}
.cob-calc{margin-top:12px}
.cob-desc-row{display:grid;grid-template-columns:minmax(0,1.3fr) 130px minmax(0,2fr) auto;gap:8px;align-items:center;margin-bottom:6px}
#cobCatModal .cob-desc-row{grid-template-columns:minmax(0,1fr) auto auto}
.cob-tex{margin-top:14px;padding:12px 14px;border:1px dashed #d9c9a0;border-radius:10px;background:#fbf7ec}
.cob-h4{margin:14px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6f6a60}
@media(max-width:900px){.cob-desc-row{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.cob-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cob-res,.cob-form{grid-template-columns:1fr}}

/* Exportaciones */
.exp-docs{white-space:nowrap}
.exp-docs .btn{margin:1px 2px}
.exp-lt td{padding:4px 4px}
.exp-lt input.cell{min-width:64px;padding:5px 6px}
.exp-lt td:nth-child(2) input{min-width:220px}
.exp-lt td:nth-child(3) input{min-width:0}
.exp-hint{text-transform:none;letter-spacing:0;font-weight:500;color:#2f6d3c}
.exp-hint.falta{color:#b5772a}
.cob-corte{white-space:nowrap}
.cob-corte-op{display:inline-flex;gap:4px;align-items:center;margin-right:10px;font-size:12.5px;cursor:pointer;color:#6f6a60}
.cob-corte-op.on{color:#2a2722;font-weight:600}
.cob-corte-ch td{background:#fbf7ec}
/* Facturación y cobranza: acciones rápidas, resumen del contrato y más opciones */
.cob-acc{white-space:nowrap;text-align:right}
.cob-acc .btn{margin-left:6px}
.cob-aviso{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#fbf7ec;border:1px solid #ecdcb4;border-left:4px solid #b5772a;border-radius:10px;padding:10px 14px;margin:0 0 12px;font-size:13px}
.cob-aviso .btn{margin-left:auto}
.cob-ctres{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.cob-chip{display:inline-flex;gap:5px;align-items:baseline;background:#f1f5f0;border:1px solid #dfe8dc;border-radius:999px;padding:3px 10px;font-size:12px;color:#2a2722}
.cob-chip i{font-style:normal;color:#6f6a60;font-size:11px}
.cob-chip.falta{background:#fbf1e3;border-color:#ecd3a9;color:#8a5a0a}
.cob-mas{margin-top:14px;border:1px solid #e2ddd2;border-radius:10px;padding:8px 12px;background:#fff}
.cob-mas summary{cursor:pointer;font-weight:600;font-size:13px;color:#4a463e}
.cob-mas[open] summary{margin-bottom:10px}
.cob-form4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cob-docs{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.cob-ok{background:#e9f4ec;border:1px solid #c5e1cc;border-radius:10px;padding:12px 14px;margin-bottom:12px}
.cob-rep{border:1px solid #d9d3c5;border-radius:8px;padding:6px 10px;background:#fff;font:inherit;font-weight:600;font-size:12.5px}
.cob-rep.on{background:#2f6d3c;color:#fff;border-color:#2f6d3c}
@media(max-width:900px){.cob-form4{grid-template-columns:repeat(2,minmax(0,1fr))}.cob-acc{white-space:normal}}

/* ---------- Editor de sacos (sacosMontar): cantidad × peso por saco ---------- */
.sacos-cab, .sacos-fila { display: grid; grid-template-columns: minmax(70px, 1fr) 18px minmax(90px, 1.4fr) minmax(80px, 1fr) 34px; gap: 8px; align-items: center; }
.sacos-cab { font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: #6f6a62; margin-bottom: 4px; }
.sacos-cab span:nth-child(4) { text-align: right; }
.sacos-fila { margin-bottom: 6px; }
.sacos-fila input { width: 100%; min-width: 0; padding: 9px 11px; border: 1px solid #d8d4cc; border-radius: 7px; font-size: 15px; text-align: right; background: #fff; box-sizing: border-box; }
.sacos-fila input::placeholder { text-transform: none; }
.sacos-x { text-align: center; color: #6f6a62; font-weight: 700; }
.sacos-sub { text-align: right; font-size: 13px; color: #8a5a1c; font-weight: 600; white-space: nowrap; }
.sacos-del { background: none; border: 1px solid #e5c8cf; color: #a03050; border-radius: 6px; width: 30px; height: 30px; cursor: pointer; }
@media (max-width: 520px) {
  .sacos-cab, .sacos-fila { grid-template-columns: 1fr 14px 1.2fr 34px; }
  .sacos-cab span:nth-child(4), .sacos-sub { display: none; }
}

/* Editar pedido dentro del modal del pedido (botón Planear) */
.ped-ed-dentro{margin-bottom:16px}
.ped-ed-inline{background:#fff;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden}
.ped-ed-dentro-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid #eeebe3;background:#faf9f5}
.ped-ed-dentro-b{padding:12px 14px 4px}
.ped-ed-dentro-b .ped-lin-wrap{overflow-x:auto}
.ped-ed-inline .ct-form-mf{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid #eeebe3;background:#faf9f5}

/* ---------- Tareas ---------- */
.tk-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.tk-tabs{display:flex;gap:4px;background:#ece8df;padding:4px;border-radius:11px}
.tk-tab{border:0;background:transparent;padding:7px 14px;border-radius:8px;font-size:13px;font-weight:500;color:#6b665c;cursor:pointer}
.tk-tab span{font-size:11px;color:#7a746b;margin-left:3px}
.tk-tab.on{background:#fff;color:#2a2722;box-shadow:0 1px 3px rgba(42,39,34,.12)}.tk-tab.on span{color:#3d7a4e}
.tk-nueva{margin-left:auto;display:flex;align-items:center;gap:8px;background:#3d7a4e;color:#fff;border:0;border-radius:10px;padding:9px 18px;font-size:13.5px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(61,122,78,.25)}
.tk-nueva span{font-size:18px;line-height:1}.tk-nueva:hover{background:#346a43}
.tk-rapidas{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tk-rapidas button{background:#fff;border:1px dashed #cfc9bc;color:#4a463e;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:500;cursor:pointer}
.tk-rapidas button:hover{border-style:solid;border-color:#3d7a4e;color:#2f6d3c;background:#f3f8f4}
.tk-ph{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#7a746b;margin-right:2px}
.tk-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}
.tk-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:#fff;border:1px solid #e5e1d8;border-radius:11px;padding:10px 14px;cursor:pointer;text-align:left}
.tk-kpi .n{font-size:22px;font-weight:600;color:#2a2722;line-height:1.1}.tk-kpi .l{font-size:11.5px;color:#6f6a62;font-weight:500}
.tk-kpi:hover{border-color:#cfc9bc}.tk-kpi.on{border-color:#2a2722;box-shadow:inset 0 0 0 1px #2a2722}
.tk-kpi.k-venc.alerta .n{color:#c0392b}.tk-kpi.k-venc.alerta{background:#fdf3f2;border-color:#f0c9c3}
.tk-kpi.k-venc.alerta.on{box-shadow:inset 0 0 0 1px #c0392b;border-color:#c0392b}
.tk-tool{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.tk-personas{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}
.tk-pf{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #e5e1d8;border-radius:20px;padding:3px 10px 3px 3px;font-size:12px;font-weight:500;color:#4a463e;cursor:pointer}
.tk-pf .mono{color:#7a746b;font-size:11px}.tk-pf.on{border-color:#2a2722;background:#2a2722;color:#fff}.tk-pf.on .mono{color:#d8d4cc}
.tk-pv{background:#c0392b;color:#fff;border-radius:10px;font-size:11px;padding:0 6px;font-weight:600}
.tk-busca{margin-left:auto;max-width:320px;flex:1}
.tk-av{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:#fff;font-size:11px;font-weight:600;flex-shrink:0;letter-spacing:.02em}
.tk-lista{display:flex;flex-direction:column;gap:16px}
.tk-grupo{display:flex;flex-direction:column;gap:5px}
.tk-gh{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6f6a62;padding:0 4px}
.tk-gh .mono{background:#ece8df;color:#6b665c;border-radius:10px;padding:0 7px;font-size:11px}
.tk-gh button{margin-left:auto;background:none;border:0;color:#2a6f97;font-size:11px;font-weight:600;cursor:pointer;text-transform:none;letter-spacing:0}
.g-venc .tk-gh{color:#c0392b}.g-venc .tk-gh .mono{background:#fbe4e1;color:#c0392b}
.tk-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border:1px solid #e5e1d8;border-radius:11px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.tk-row:hover{border-color:#cfc9bc;box-shadow:0 2px 8px rgba(42,39,34,.06)}
.tk-row:focus-visible{outline:2px solid #3d7a4e;outline-offset:1px}
.tk-row.alta{border-left:3px solid #c0392b}
.g-venc .tk-row{background:#fffafa}
.tk-row.cerrada{opacity:.6}.tk-row.cerrada b{text-decoration:line-through;text-decoration-color:#b8b2a6}
.tk-chk{width:22px;height:22px;border-radius:50%;border:2px solid #cfc9bc;background:#fff;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;padding:0;transition:all .12s}
.tk-chk:hover{border-color:#3d7a4e;background:#f3f8f4}.tk-chk.on{background:#3d7a4e;border-color:#3d7a4e}
.tk-chk.dis{cursor:default;color:#7a746b;border-style:dashed}
.tk-ico{font-size:17px;flex-shrink:0;width:22px;text-align:center}
.tk-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.tk-main b{font-size:13.5px;font-weight:500;color:#2a2722;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-sub{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.tk-chip{font-size:11px;font-weight:500;padding:1px 8px;border-radius:6px;background:#f4f2ec;color:#5f5a50;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}
.tk-chip.per{background:#eef3f8;color:#2a6f97}.tk-chip.cur{background:#e6f0f6;color:#2a6f97}
.tk-chip.venc{background:#fbe4e1;color:#c0392b}.tk-chip.p-alta{background:#fbe4e1;color:#c0392b}.tk-chip.p-baja{color:#6f6a62}
.tk-com-n{font-size:11px;color:#6f6a62}
.tk-vence{font-size:11.5px;font-weight:500;color:#6b665c;white-space:nowrap}.tk-vence.venc{color:#c0392b}
.tk-quien{display:flex;align-items:center;gap:6px;width:110px;flex-shrink:0}
.tk-quien>span:not(.tk-av){display:flex;flex-direction:column;font-size:12px;font-weight:500;color:#4a463e;line-height:1.15;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-quien i{font-style:normal;font-size:11px;color:#7a746b;font-weight:500}
.tk-vacio{background:#fff;border:1px dashed #d8d4cc;border-radius:12px;padding:30px;text-align:center;color:#6f6a62;font-size:13px}
.tk-vacio b{display:block;font-size:15px;color:#2a2722;margin-bottom:4px}
/* Detalle */
.modal .box.tk-box{max-width:660px}
.tk-dh{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.tk-dh h3{margin:0;font-size:18px;line-height:1.3;color:#2a2722}
.tk-dico{font-size:24px;line-height:1}
.tk-dpers{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #e5e1d8;border-radius:11px;padding:10px 14px;margin-bottom:10px}
.tk-dpers>div:not(.tk-dmeta){display:flex;align-items:center;gap:8px}
.tk-dpers span:not(.tk-av){display:flex;flex-direction:column;line-height:1.2}.tk-dpers i{font-style:normal;font-size:11px;color:#7a746b;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.tk-dpers b{font-size:13px;color:#2a2722}.tk-flecha{color:#b8b2a6;font-size:16px}
.tk-dmeta{margin-left:auto;display:flex;gap:5px;flex-wrap:wrap}
.tk-dmeta .tk-chip{display:inline-block}
.tk-refcard{display:flex;align-items:center;gap:12px;background:#f3f8f4;border:1px solid #cfe0d3;border-radius:11px;padding:10px 14px;margin-bottom:10px}
.tk-refcard>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tk-refcard i{font-style:normal;font-size:11px;color:#3d7a4e;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.tk-refcard b{font-size:13.5px;color:#2a2722}.tk-refcard span{font-size:12px;color:#5f5a50}.tk-refcard .vivo{color:#2f6d3c;font-weight:500}
.tk-refcard button{background:#3d7a4e;color:#fff;border:0;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.tk-detalle{white-space:pre-wrap;font-size:13.5px;line-height:1.55;color:#3a362f;background:#fff;border-left:3px solid #3d7a4e;border-radius:0 8px 8px 0;padding:10px 14px;margin-bottom:10px}
.tk-estados{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tk-eb{flex:1;min-width:110px;padding:9px 12px;border-radius:9px;border:1px solid #d8d4cc;background:#fff;font-size:13px;font-weight:600;color:#6b665c;cursor:pointer;text-align:center}
.tk-eb:hover{border-color:#a8a294}.tk-eb.on{border-color:transparent}.tk-eb:disabled{opacity:.5;cursor:wait}
.tk-eb.on.e-hecha{background:#3d7a4e;color:#fff}.tk-eb.on.e-en_curso{background:#2a6f97;color:#fff}.tk-eb.on.e-pendiente{background:#b5772a;color:#fff}.tk-eb.on.e-cancelada{background:#8a8478;color:#fff}
.tk-coms{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:10px;background:#efece5;border-radius:11px}
.tk-sis{font-size:11px;color:#6f6a62;text-align:center;padding:2px 8px}
.tk-com{display:flex;align-items:flex-end;gap:6px;max-width:85%}
.tk-com.mio{align-self:flex-end;flex-direction:row-reverse}
.tk-bub{background:#fff;border-radius:12px 12px 12px 4px;padding:7px 11px;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.tk-com.mio .tk-bub{background:#dcefe0;border-radius:12px 12px 4px 12px}
.tk-cq{display:flex;gap:8px;align-items:baseline;font-size:11.5px}.tk-cq b{color:#3d7a4e}.tk-cq span{color:#7a746b;font-size:11px}
.tk-com.mio .tk-cq b{display:none}
.tk-ct{white-space:pre-wrap;font-size:13px;line-height:1.45;color:#2a2722}
.tk-nuevo-com{display:flex;gap:8px;align-items:flex-end;margin-top:8px}
.tk-nuevo-com textarea{flex:1;resize:none;min-height:40px;border-radius:20px!important;padding:9px 14px!important}
.tk-send{width:40px;height:40px;border-radius:50%;border:0;background:#3d7a4e;color:#fff;font-size:15px;cursor:pointer;flex-shrink:0}
.tk-send:disabled{opacity:.5}
.tk-adm{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #e5e1d8}
.tk-adm button{background:#fff;border:1px solid #d8d4cc;color:#4a463e;padding:5px 11px;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer}
.tk-adm .xbtn{margin-left:auto;color:#a03050;border-color:#ecc6cf}
/* Nueva tarea */
.modal .box.tk-fbox{max-width:760px}
.tk-sec{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:12px 14px;margin-bottom:10px}
.tk-sech{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13.5px;color:#2a2722}
.tk-n{width:22px;height:22px;border-radius:50%;background:#2a2722;color:#fff;font-size:11.5px;font-weight:600;display:flex;align-items:center;justify-content:center}
.tk-plants{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tk-pl{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border:1px solid #e5e1d8;border-radius:10px;background:#faf9f5;cursor:pointer}
.tk-pl span{font-size:20px;line-height:1.2}.tk-pl b{font-size:13px;color:#2a2722}.tk-pl i{font-style:normal;font-size:11px;color:#6f6a62}
.tk-pl:hover{border-color:#a9cdb2}.tk-pl.on{border-color:#3d7a4e;background:#f3f8f4;box-shadow:inset 0 0 0 1px #3d7a4e}
.tk-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tk-c{padding:6px 12px;border-radius:20px;border:1px solid #d8d4cc;background:#fff;font-size:12.5px;font-weight:500;color:#5f5a50;cursor:pointer}
.tk-c.sm{padding:4px 10px;font-size:11.5px}.tk-c:hover{border-color:#a8a294}
.tk-c.on{background:#2a2722;border-color:#2a2722;color:#fff}.tk-c.per.on{background:#2a6f97;border-color:#2a6f97}
.tk-rango{display:flex;align-items:center;gap:6px;font-size:12px;color:#6f6a62;margin-left:4px}
.tk-rango input,.tk-vd{height:30px;padding:0 8px!important;font-size:12px!important;width:auto!important}
.tk-q{width:100%;margin-bottom:6px}
.tk-ops{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}
.tk-op{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 11px;border:1px solid #eee9df;border-radius:9px;background:#fff;cursor:pointer}
.tk-op:hover{border-color:#a9cdb2;background:#f8fbf8}
.tk-opm{flex:1;min-width:0;display:flex;flex-direction:column}
.tk-opm b{font-size:12.5px;color:#2a2722;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk-opm i{font-style:normal;font-size:11px;color:#6f6a62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-opc{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;background:#f4f2ec;color:#5f5a50;white-space:nowrap}
.tk-ops-msg{font-size:12.5px;color:#6f6a62;padding:10px;text-align:center}
.tk-ops-msg button{background:none;border:0;color:#2a6f97;font-weight:600;cursor:pointer}
.tk-elegido{display:flex;align-items:center;gap:8px;background:#f3f8f4;border:1px solid #a9cdb2;border-radius:9px;padding:9px 12px}
.tk-elegido>span{color:#fff;background:#3d7a4e;border-radius:50%;width:18px;height:18px;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tk-elegido b{font-size:13px;color:#2a2722}.tk-elegido i{font-style:normal;font-size:11px;font-weight:600;color:#5f5a50;background:#fff;border-radius:20px;padding:1px 8px}
.tk-elegido button{margin-left:auto;background:none;border:0;color:#2a6f97;font-size:12px;font-weight:600;cursor:pointer}
.tk-pchips{display:flex;flex-wrap:wrap;gap:6px}
.tk-pc{display:flex;align-items:center;gap:7px;padding:4px 12px 4px 4px;border:1px solid #e5e1d8;border-radius:22px;background:#fff;cursor:pointer;text-align:left}
.tk-pc span:not(.tk-av){display:flex;flex-direction:column;line-height:1.15}.tk-pc b{font-size:12.5px;color:#2a2722}.tk-pc i{font-style:normal;font-size:11px;color:#6f6a62}
.tk-pc .tk-av{display:inline-flex}
.tk-pc.sug{border-color:#a9cdb2;background:#f8fbf8}.tk-pc.sug i{color:#2f6d3c}
.tk-pc.on{border-color:#3d7a4e;background:#3d7a4e}.tk-pc.on b,.tk-pc.on i{color:#fff}
.tk-pc.mas{padding:8px 14px;font-size:12px;font-weight:600;color:#2a6f97;border-style:dashed}
.tk-hint{font-size:11.5px;color:#6f6a62;font-weight:400;margin-top:6px}
.tk-g2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px}
.tk-seg{display:flex;gap:4px}
.tk-seg button{flex:1;padding:7px 0;border:1px solid #d8d4cc;border-radius:7px;font-size:12.5px;font-weight:500;color:#6b665c;cursor:pointer;background:#fff}
.tk-seg button.on{background:#2a2722;border-color:#2a2722;color:#fff}.tk-seg button.on.p-alta{background:#c0392b;border-color:#c0392b}
.tk-ffoot{display:flex;align-items:center;gap:12px;padding:12px 18px;background:#fff;border-top:1px solid #e5e1d8;flex-shrink:0}
.tk-prev{flex:1;min-width:0;font-size:12.5px;color:#4a463e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-prev .falta{color:#7a746b}
.tk-asignar{background:#3d7a4e;color:#fff;border:0;border-radius:10px;padding:10px 22px;font-size:13.5px;font-weight:600;cursor:pointer}
.tk-asignar:disabled{background:#cfc9bc;cursor:not-allowed}
@media (max-width:760px){
  .tk-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tk-busca{margin-left:0;max-width:none;width:100%}
  .tk-plants{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tk-g2{grid-template-columns:1fr}
  .tk-row{flex-wrap:wrap}.tk-quien{width:auto}
  .tk-dmeta{margin-left:0}
}
/* Tareas y buscadores: texto normal (la regla general pasa los campos a mayúsculas) */
#tkApp input,#tkModal textarea,#tkForm input,#tkForm textarea,.usrch input{text-transform:none}
.tk-q{padding:9px 11px;border:1px solid #d8d4cc;border-radius:8px;font-size:13.5px;background:#fff;box-sizing:border-box}
.tk-q:focus{border-color:#3d7a4e}
/* Mis tareas de hoy (Mi cuenta y ventana al iniciar sesión) */
.tkh{background:#fff;border:1px solid #e5e1d9;border-radius:12px;padding:14px 16px;box-shadow:0 2px 8px #29251b08}
.tkh-h{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.tkh-h>div:first-child{display:flex;flex-direction:column}.tkh-h b{font-size:15px;color:#292720}.tkh-h>div:first-child span{font-size:12px;color:#6f6a62}
.tkh-k{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.tkh-k span{font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:20px;background:#f4f2ec;color:#5f5a50}
.tkh-k .v{background:#fbe4e1;color:#c0392b}.tkh-k .h{background:#fbf1e3;color:#8a5a1c}
.tkh-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid #eee9df;border-radius:10px;margin-bottom:6px;cursor:pointer;background:#fff}
.tkh-row:hover{border-color:#cfc9bc;background:#fdfcfa}
.tkh-row.venc{background:#fffafa;border-color:#f3d6d1}.tkh-row.alta{border-left:3px solid #c0392b}
.tkh-de{font-size:11px;color:#7a746b}
.tkh-ir{flex-shrink:0;background:#3d7a4e;color:#fff;border:0;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.tkh-ir:hover{background:#346a43}.tkh-ir.sec{background:#fff;color:#4a463e;border:1px solid #d8d4cc}
.tkh-vacio{font-size:13px;color:#6f6a62;padding:10px 4px;text-align:center}
.tkh-f{display:flex;align-items:center;gap:10px;margin-top:4px}.tkh-f span{font-size:12px;color:#6f6a62}
.tkh-f button{margin-left:auto;background:none;border:0;color:#2a6f97;font-size:12.5px;font-weight:600;cursor:pointer}
.modal .box.tkh-box{max-width:720px}.tkh-box .mb{padding:14px 16px}.tkh-box .tkh{border:0;box-shadow:none;padding:0;background:transparent}
.tkh-box .tkh-row{background:#fff}
@media (max-width:640px){.tkh-row{flex-wrap:wrap}.tkh-ir{width:100%}}
/* Tareas como chat */
.tk-refresh{background:#fff;border:1px solid #d8d4cc;color:#4a463e;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;margin-left:auto}
.tk-refresh:hover{border-color:#3d7a4e;color:#2f6d3c}
.tk-refresh+.tk-nueva{margin-left:0}
.girando{pointer-events:none;opacity:.7}
@keyframes tkGira{to{transform:rotate(360deg)}}
.tkc-btn.girando{animation:tkGira .7s linear infinite}
.tk-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.tk-kpi.k-msg.alerta{background:#effaf1;border-color:#9fd8ad}.tk-kpi.k-msg.alerta .n{color:#1f8a3b}
.tk-kpi.k-msg.alerta.on{box-shadow:inset 0 0 0 1px #1f8a3b;border-color:#1f8a3b}
.cnt.tk-cnt-msg{background:#25a244!important;color:#fff!important}
.tk-ult{font-size:12px;color:#6f6a62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.tk-ult b{color:#6b665c;font-weight:500}.tk-ult.nuevo{color:#2a2722}.tk-ult.nuevo b{color:#1f8a3b}
.tk-act{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0;min-width:70px}
.tk-act i{font-style:normal;font-size:11px;color:#7a746b}.tk-act i.nuevo{color:#1f8a3b;font-weight:600}
.tk-nuevos{background:#25a244;color:#fff;border-radius:11px;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
/* Ventana de conversación */
.modal .box.tkc-box{max-width:700px;height:min(780px,calc(100vh - 48px));background:#fff}
.tkc{display:flex;flex-direction:column;height:100%;min-height:0}
.tkc>.empty{margin:auto}
.tkc-h{display:flex;align-items:center;gap:10px;background:#232a24;color:#fff;padding:12px 14px;flex-shrink:0}
.tkc-ico{font-size:22px;line-height:1}
.tkc-ht{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tkc-ht b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkc-ht span{font-size:11.5px;color:#c9d2c8}.tkc-ht i{font-style:normal;font-weight:600}
.tkc-e.e-hecha{color:#8fdca2}.tkc-e.e-en_curso{color:#9cc9ea}.tkc-e.e-pendiente{color:#f2c98a}.tkc-e.e-cancelada{color:#c9c4ba}
.tkc-v{color:#ff9d90}
.tkc-btn{width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.1);color:#fff;font-size:16px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.tkc-btn:hover,.tkc-btn.on{background:rgba(255,255,255,.22)}
.tkc-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #e5e1d8;background:#faf9f5;flex-shrink:0;flex-wrap:wrap}
.tkc-est{display:flex;background:#ece8df;border-radius:9px;padding:3px;gap:2px}
.tkc-est button{border:0;background:transparent;padding:6px 12px;border-radius:7px;font-size:12.5px;font-weight:600;color:#6b665c;cursor:pointer}
.tkc-est button:hover{color:#2a2722}
.tkc-est button.on.e-hecha{background:#3d7a4e;color:#fff}.tkc-est button.on.e-en_curso{background:#2a6f97;color:#fff}.tkc-est button.on.e-pendiente{background:#fff;color:#8a5a1c;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tkc-est button:disabled{opacity:.5;cursor:wait}
.tkc-ir{margin-left:auto;background:#3d7a4e;color:#fff;border:0;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.tkc-ir:hover{background:#346a43}
.tkc-info{padding:10px 12px;border-bottom:1px solid #e5e1d8;background:#f6f4ef;flex-shrink:0;max-height:45%;overflow-y:auto}
.tkc-info .tk-dpers,.tkc-info .tk-refcard{margin-bottom:8px}.tkc-info .tk-adm{margin-top:4px;padding-top:0;border-top:0}
.tkc-chat{flex:1;min-height:0;overflow-y:auto;padding:12px 14px;background:#efeae2;display:flex;flex-direction:column;gap:2px}
.tkc-dia{display:flex;justify-content:center;margin:10px 0 6px}
.tkc-dia span{background:#fff;color:#6b665c;font-size:11px;font-weight:600;padding:4px 10px;border-radius:8px;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.tkc-sis{display:flex;justify-content:center;margin:4px 0}
.tkc-sis span{background:#fdf5d8;color:#6b5a1c;font-size:11px;padding:3px 10px;border-radius:8px;text-align:center}
.tkc-m{display:flex;align-items:flex-end;gap:6px;max-width:82%}
.tkc-m.pri{margin-top:6px}
.tkc-m.mio{align-self:flex-end}
.tkc-sp{width:26px;flex-shrink:0}
.tkc-b{position:relative;background:#fff;border-radius:10px;padding:6px 9px 6px 10px;box-shadow:0 1px 1px rgba(0,0,0,.08);min-width:70px}
.tkc-m.pri:not(.mio) .tkc-b{border-top-left-radius:2px}
.tkc-m.mio .tkc-b{background:#d9fdd3}.tkc-m.mio.pri .tkc-b{border-top-right-radius:2px}
.tkc-m.enviando .tkc-b{opacity:.65}
.tkc-au{font-size:12px;font-weight:600;margin-bottom:1px}
.tkc-ct{white-space:pre-wrap;font-size:13.5px;line-height:1.4;color:#1f1d19;overflow-wrap:anywhere;padding-right:44px}
.tkc-hr{position:absolute;right:8px;bottom:4px;font-size:11px;color:#6f6a62;white-space:nowrap}
.tkc-m.mio .tkc-hr{color:#5f8a62}
.tkc-b.es-tarea{border-left:3px solid #3d7a4e;max-width:520px}
.tkc-tarea{display:flex;flex-direction:column;gap:3px;padding-bottom:14px}
.tkc-tt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#3d7a4e}
.tkc-tarea>b{font-size:14px;color:#1f1d19}.tkc-tarea>span{font-size:12px;color:#5f5a50}
.tkc-tarea .alta{color:#c0392b}.tkc-tarea .tkc-ct{margin-top:4px;padding:6px 0 0;border-top:1px dashed #e5e1d8}
.tkc-in{display:flex;align-items:flex-end;gap:8px;padding:8px 10px;background:#f0f0f0;flex-shrink:0}
.tkc-in textarea{flex:1;resize:none;min-height:42px;max-height:130px;border:0!important;border-radius:21px!important;padding:11px 16px!important;font-size:14px;background:#fff;box-shadow:none!important;line-height:1.35}
.tkc-in textarea:focus{outline:2px solid rgba(61,122,78,.25)}
.tkc-in .tk-send{width:42px;height:42px}
@media (max-width:640px){
  .modal .box.tkc-box{height:calc(100vh - 24px)}
  .tkc-m{max-width:92%}
  .tk-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tk-act{min-width:0}
}
/* Plan de beneficiado: lotes comprometidos en pedidos (Planear MP) */
.pb-compr{display:inline-block;margin-top:4px;font-size:11.5px;color:#7a3e8a;background:#f5ecfa;border:1px solid #e2cdee;border-radius:6px;padding:2px 8px;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pb-disp.es-compr{border-color:#d9bfe8;background:#fcf8fe}
.pb-disp-g{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7a3e8a;margin:2px 2px 6px}
.pb-disp-g.libre{color:#7a746b;margin-top:12px}
.pb-compr-aviso{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;border-radius:10px;background:#f5ecfa;border:1px solid #e2cdee;color:#5c2d6b;font-size:13px;line-height:1.45}
.pb-compr-aviso>div{flex:1;min-width:220px}
.pb-compr-aviso .btn{background:#7a3e8a}
.pb-compr-aviso.ok{background:#e8f4ec;border-color:#bfe0c8;color:#2f6d3c}
/* Contratos › Producción: contratos de esta semana y la próxima por fecha de producción */
.ctp-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 8px}
.ctp-nav{display:inline-flex;align-items:center;border:1px solid #e3dfd6;border-radius:10px;background:#fff;overflow:hidden}
.ctp-nav.off{opacity:.55}
.ctp-navb{width:38px;height:40px;border:0;background:transparent;font-size:20px;color:#4a463e;cursor:pointer}
.ctp-navb:hover{background:#f6f4ef;color:#2a2722}
.ctp-navt{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:170px;height:40px;padding:0 12px;border-left:1px solid #efece5;border-right:1px solid #efece5;line-height:1.15}
.ctp-navt b{font-size:13.5px;color:#2a2722;white-space:nowrap}
.ctp-now{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:20px;background:#e4f0e6;color:#2f6d3c;margin-top:2px}
.ctp-now.fut{background:#e6f0f6;color:#2a6f97}.ctp-now.pas{background:#f0eeea;color:#6f6a62}
.ctp-dia{height:40px;padding:0 10px;border:1px solid #e3dfd6;border-radius:10px;background:#fff;font-size:13px;color:#2a2722}
.ctp-hoy,.ctp-ir{border:0;background:none;padding:0 4px;font-size:12.5px;font-weight:600;color:#2f6d3c;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ctp-atr{height:40px;padding:0 14px;border:1px solid #d8d4cc;border-radius:10px;background:#fff;font-size:13px;font-weight:700;color:#5f5a50;cursor:pointer}
.ctp-atr .mono{font-size:11.5px;color:#7a746b;margin-left:2px}
.ctp-atr.alerta{border-color:#f0c9c3;background:#fdf3f2;color:#c0392b}.ctp-atr.alerta .mono{color:#c0392b}
.ctp-atr.on{background:#c0392b;border-color:#c0392b;color:#fff}.ctp-atr.on .mono{color:#fde3df}
.ctp-modo{font-size:12.5px;color:#7a3b30;background:#fdf3f2;border:1px solid #f0c9c3;border-radius:9px;padding:7px 12px;margin-bottom:8px}
.ctp-bar .ct-search{margin-left:auto;min-width:220px}
.ctp-res{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.ctp-k{display:flex;align-items:baseline;gap:5px;background:#fff;border:1px solid #e5e1d8;border-radius:9px;padding:6px 11px}
.ctp-k b{font-size:16px;color:#2a2722;font-family:"Courier New",monospace}.ctp-k span{font-size:11.5px;color:#6f6a62}
@media (max-width:700px){.ctp-bar .ct-search{margin-left:0;width:100%}}
/* Trazabilidad: proceso en Producción de tarwi */
.trz-step.tw{--c:#b5772a}
.trz-sec.tw{--c:#b5772a}
.trz-tw-flow{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding:2px 0 10px}
.trz-tw-ar{display:flex;align-items:center;color:#c9c4b8;font-size:16px;flex-shrink:0}
.trz-tw-c{flex:1 0 160px;max-width:240px;background:#fff;border:1px solid #e5e1d8;border-top:3px solid #b5772a;border-radius:9px;padding:8px 10px}
.trz-tw-c.tw-coccion,.trz-tw-c.tw-desamargado{border-top-color:#8a5a1c}
.trz-tw-c.tw-liofilizado{border-top-color:#7a4a86}.trz-tw-c.tw-molienda{border-top-color:#2f6d3c}.trz-tw-c.tw-prensado{border-top-color:#a06a2c}
.trz-tw-h{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:12px;font-weight:700;color:#2a2722}
.trz-tw-h span{font-size:11px;font-weight:600;color:#7a746b}
.trz-tw-v{font-size:14px;margin:4px 0 2px;color:#4a463e}.trz-tw-v b{color:#2a2722}.trz-tw-v i{font-style:normal;color:#7a746b}.trz-tw-v small{font-size:11px;color:#6f6a62}
.trz-tw-s{font-size:11px;color:#6b665c;line-height:1.5}
.trz-tw-stock{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;margin:0 0 10px}
.trz-tw-chip{background:#fbf1e3;color:#7a5518;border-radius:7px;padding:3px 9px;font-size:11.5px}
.trz-tw-chip i{font-style:normal;color:#a8650f}
.trz-tw-sub{font-size:11px;font-weight:700;color:#6f6a62;text-transform:uppercase;letter-spacing:.04em;margin:10px 0 5px}
/* Plan de beneficiado: aviso de lotes sin saldo ocultos en el orden */
.pb-oculto{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:8px 12px;border:1px dashed #d8d4cc;border-radius:9px;font-size:12px;color:#6f6a62}
.pb-oculto .pb-btn2{margin-left:auto}
/* Catálogos › Familias */
.fam-cel{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}
.fam-it{font-size:11px;background:#eef4ef;color:#2f6d3c;border-radius:6px;padding:2px 7px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.fam-mas{font-size:11px;color:#6f6a62;font-weight:700}.fam-vacia{font-size:11.5px;color:#b5772a}
.fam-btn{margin-left:auto;background:#e8f0fb;border:1px solid #b6cdf0;color:#1f4e86;padding:4px 10px;border-radius:6px;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.fam-tool{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.fam-tool input{flex:1;min-width:200px;padding:8px 11px;border:1px solid #d8d4cc;border-radius:8px;text-transform:none}
.fam-tool .mono{font-size:12px;color:#6f6a62}
.fam-lista{max-height:52vh;overflow-y:auto;border:1px solid #e5e1d8;border-radius:10px;background:#fff;padding:6px 10px}
.fam-gt{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#7a746b;margin:8px 0 4px}
.fam-op{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;font-size:13px;cursor:pointer}
.fam-op:hover{background:#faf9f5}.fam-op input{accent-color:#3d7a4e;width:15px;height:15px}
.fam-op:has(input:checked){background:#f3f8f4;color:#2f6d3c;font-weight:600}
/* Inventarios: filtro por familia */
.inv-fam-sel{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#6b665c}
.inv-fam-sel select{height:32px;padding:0 8px;border:1px solid #d8d4cc;border-radius:8px;background:#fff;font-size:12.5px}
.fam-op[hidden],.fam-g[hidden]{display:none}
/* Producción de tarwi: batches con partes agrupados (PRE-003 ▸ PRE-003.1, .2…) */
#tarwi-app .tw-dt tr.tw-grp td{background:#faf9f5;border-bottom-color:#e5e1d8}
#tarwi-app .tw-grp-tog{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:left}
#tarwi-app .tw-grp-tog small{font-size:11px;color:var(--sub);background:#ece8df;border-radius:10px;padding:1px 7px}
#tarwi-app .tw-grp-ch{width:12px;color:var(--sub)}
#tarwi-app .tw-dt tr.tw-sub td:first-child{padding-left:28px}
#tarwi-app .tw-dt tr.tw-sub td{background:#fff}
#tarwi-app .tw-dt tr.tw-sub[hidden]{display:none}
/* Catálogos: los registros siempre se ven en MAYÚSCULAS (los nuevos ya se guardan así) */
#catRows .tr2>div{text-transform:uppercase}
#catRows .tr2 button{text-transform:none}

/* ==========================================================
   ACCESIBILIDAD · tanda 1
   ========================================================== */
/* Foco visible con teclado en todo el sistema, aunque un estilo viejo lo haya quitado */
:focus-visible{outline:2px solid #2a6f97 !important;outline-offset:2px}
#modTitle:focus,#syMain:focus{outline:none !important}
/* «Saltar al contenido»: invisible hasta que llega el foco con Tab */
.sy-skip{position:fixed;left:12px;top:-60px;z-index:10001;background:#1f2420;color:#fff;border:0;border-radius:9px;padding:10px 16px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:top .15s}
.sy-skip:focus{top:12px}
/* Botón para cerrar avisos de error */
.sy-toast-x{flex-shrink:0;margin-left:auto;background:none;border:0;color:inherit;opacity:.75;font-size:18px;line-height:1;cursor:pointer;padding:0 2px;min-width:24px;min-height:24px}
.sy-toast-x:hover{opacity:1}

/* ==================== AUDITORÍA (modulos/auditoria.js) ==================== */
.aud-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}
.aud-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;border:1px solid #e5e1d8;border-radius:11px;padding:12px 14px;cursor:pointer;text-align:left;font:inherit;color:#2a2722;border-top:3px solid #d8d4cc}
.aud-kpi:hover{border-color:#cfcabe}
.aud-kpi.is-on{background:#f4f7f4;border-color:#3d7a4e;box-shadow:0 0 0 1px #3d7a4e inset}
.aud-kpi-n{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}
.aud-kpi-l{font-size:11.5px;color:#6f6a62;font-weight:600}
.aud-kpi.aud-c-sesion{border-top-color:#5b7fa6}.aud-kpi.aud-c-alta{border-top-color:#3d7a4e}
.aud-kpi.aud-c-edita{border-top-color:#b5772a}.aud-kpi.aud-c-baja{border-top-color:#b0463a}

.aud-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.aud-filtros select,.aud-filtros input[type=date],.aud-q{padding:8px 10px;border:1px solid #d8d4cc;border-radius:8px;font-size:13px;background:#fff;color:#2a2722;max-width:220px}
.aud-q{flex:1;min-width:200px;max-width:none}
.aud-rango{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#6f6a62}
.aud-rango[hidden]{display:none}
.aud-seg{display:inline-flex;border:1px solid #d8d4cc;border-radius:8px;overflow:hidden;background:#fff}
.aud-seg button{border:0;background:transparent;padding:8px 12px;font-size:13px;cursor:pointer;color:#4a463e;border-right:1px solid #ece8df}
.aud-seg button:last-child{border-right:0}
.aud-seg button.is-on{background:#3d7a4e;color:#fff;font-weight:600}
.aud-hist{display:flex;align-items:center;gap:10px}
.aud-link{background:none;border:0;color:#3d7a4e;font-weight:600;cursor:pointer;text-decoration:underline;padding:0;font-size:13px}

.aud-lista{background:#fff;border:1px solid #e5e1d8;border-radius:12px;overflow:hidden}
.aud-dia{position:sticky;top:0;z-index:1;background:#faf9f5;border-bottom:1px solid #e5e1d8;padding:8px 16px;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6f6a62}
.aud-fila{display:grid;grid-template-columns:46px 30px minmax(110px,170px) 150px 1fr auto;align-items:center;gap:10px;width:100%;padding:10px 16px;border:0;border-bottom:1px solid #f0ede6;background:#fff;font:inherit;font-size:13px;color:#2a2722;text-align:left;cursor:pointer}
.aud-fila:hover{background:#f8faf6}
.aud-fila:focus-visible{outline:2px solid #3d7a4e;outline-offset:-2px}
.aud-hora{color:#6f6a62;font-size:12px}
.aud-av{width:28px;height:28px;border-radius:50%;background:#e9eee6;color:#3d5a45;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700}
.aud-quien{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aud-acc{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:650;padding:3px 9px;border-radius:20px;white-space:nowrap;justify-self:start}
.aud-acc i{font-style:normal;font-weight:700}
.aud-c-sesion.aud-acc{background:#eaf0f7;color:#3c5d82}
.aud-c-alta.aud-acc{background:#e4f0e6;color:#2f6d3c}
.aud-c-edita.aud-acc{background:#fbf1e3;color:#8a5a14}
.aud-c-baja.aud-acc{background:#faeceb;color:#a03a30}
.aud-c-aviso.aud-acc{background:#fdf5d8;color:#80630c}
.aud-c-otro.aud-acc{background:#f0eee9;color:#5c574f}
.aud-txt{min-width:0;line-height:1.4}
.aud-mod{display:block;font-size:11px;color:#8a847a;font-weight:600}
.aud-mas{font-size:11.5px;color:#3d7a4e;font-weight:600;white-space:nowrap}
.aud-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:13px;color:#6f6a62}
.aud-pager>span:last-child{display:inline-flex;align-items:center;gap:10px}

/* Detalle de un evento */
.aud-det-cab{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:14px}
.aud-det-txt{font-size:14.5px;font-weight:600;color:#2a2722;line-height:1.45}
.aud-dl{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0 0 16px;font-size:13px}
.aud-dl dt{color:#7a746b;font-weight:600}.aud-dl dd{margin:0}
.aud-gris{color:#8a847a}
.aud-h4{margin:6px 0 8px;font-size:13px;font-weight:700}
.aud-tabla{overflow:auto;max-height:46vh;border:1px solid #e5e1d8;border-radius:9px}
.aud-tabla table{width:100%;border-collapse:collapse;font-size:12.5px}
.aud-tabla th,.aud-tabla td{padding:7px 10px;border-bottom:1px solid #f0ede6;text-align:left;vertical-align:top;word-break:break-word}
.aud-tabla thead th{position:sticky;top:0;background:#faf9f5;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62}
.aud-tabla tbody th{font-family:"IBM Plex Mono",monospace;font-weight:500;color:#4a463e;width:30%}
.aud-tabla tr.is-cambio .aud-antes{background:#fdf0ee;color:#8f342b;text-decoration:line-through;text-decoration-color:rgba(143,52,43,.4)}
.aud-tabla tr.is-cambio .aud-desp{background:#eef6ef;color:#24603a;font-weight:600}
.aud-tabla code{font-size:11.5px;white-space:pre-wrap}
.aud-vacio{color:#a39d92;font-style:italic}
.aud-sin{font-size:13px;color:#7a746b;background:#faf9f5;border-radius:8px;padding:10px 12px}
.aud-todos{margin-top:10px;font-size:12.5px}.aud-todos summary{cursor:pointer;color:#3d7a4e;font-weight:600;margin-bottom:8px}
.aud-det-acc{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}

@media (max-width:900px){
  .aud-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .aud-fila{grid-template-columns:42px 1fr auto;grid-template-areas:"hora quien acc" "hora txt txt";row-gap:4px}
  .aud-hora{grid-area:hora;align-self:start}.aud-av,.aud-mas{display:none}
  .aud-quien{grid-area:quien}.aud-acc{grid-area:acc;justify-self:end}.aud-txt{grid-area:txt}
  .aud-filtros select,.aud-q{max-width:none;flex:1 1 45%}
}
.aud-nota{font-size:12.5px;color:#6f6a62;background:#faf9f5;border-left:3px solid #d8d4cc;padding:8px 12px;border-radius:0 8px 8px 0;margin:0 0 10px}

/* ==================== INICIO (modulos/inicio_personal.js) ==================== */
.ini{max-width:1180px}
.ini-hola{margin-bottom:18px}
.ini-fecha{font-size:12px;font-weight:600;color:#7a746b;letter-spacing:.02em}
.ini-hola h1{margin:4px 0 6px;font-size:26px;font-weight:650;color:#2a2722;letter-spacing:-.01em}
.ini-sub{margin:0;font-size:14px;color:#4a463e}
.ini-gris{color:#8a847a;font-weight:400}
.ini-aviso{margin-bottom:16px;background:#fbf1e3;border-left-color:#b5772a;color:#7a5518}
.ini-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
.ini-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.ini-card{background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:16px 18px}
.ini-card h2{margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6f6a62}
.ini-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px;margin-bottom:18px;position:sticky;top:0;z-index:5;padding:6px 0;background:linear-gradient(#f6f4ef 85%,rgba(246,244,239,0))}
.ini-tab{position:relative;display:flex;align-items:center;gap:12px;min-width:0;text-align:left;font:inherit;color:#4a463e;background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:12px 14px;cursor:pointer;box-shadow:0 1px 2px rgba(42,39,34,.04);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease}
.ini-tab:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(42,39,34,.08);border-color:#cfd9c8}
.ini-tab:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px}
.ini-tab.on{background:linear-gradient(135deg,#3d7a4e,#2f6d3c);border-color:#2f6d3c;color:#fff;box-shadow:0 8px 20px rgba(47,109,60,.25)}
.ini-tab-ico{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#f1f5ee;font-size:20px;transition:transform .2s ease}
.ini-tab.on .ini-tab-ico{background:rgba(255,255,255,.18);transform:scale(1.06)}
.ini-tab-tx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ini-tab-tx b{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ini-tab-tx small{font-size:12px;color:#8a847a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ini-tab.on .ini-tab-tx small{color:rgba(255,255,255,.8)}
.ini-tab-n{flex:none;min-width:24px;height:24px;padding:0 7px;box-sizing:border-box;border-radius:12px;background:#c0562e;color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center;font-variant-numeric:tabular-nums;animation:ini-pop .3s ease}
.ini-tab.on .ini-tab-n{background:#fff;color:#2f6d3c}
@keyframes ini-pop{from{transform:scale(.4);opacity:0}}
.ini-panel{margin-bottom:16px;animation:ini-entra .22s ease}
.ini-panel[hidden]{display:none}
@keyframes ini-entra{from{opacity:0;transform:translateY(6px)}}
.ini-card{transition:box-shadow .15s ease}
.ini-card:hover{box-shadow:0 4px 14px rgba(42,39,34,.06)}
@media (prefers-reduced-motion:reduce){.ini-tab,.ini-panel,.ini-tab-n,.ini-tab-ico{animation:none;transition:none}.ini-tab:hover{transform:none}}
@media (max-width:640px){
  .ini-tabs{gap:6px}
  .ini-tab{flex-direction:column;justify-content:center;gap:4px;padding:10px 6px;text-align:center;border-radius:12px}
  .ini-tab-ico{width:34px;height:34px;font-size:18px}
  .ini-tab-tx b{font-size:12.5px;white-space:normal;line-height:1.2}
  .ini-tab-tx small{display:none}
  .ini-tab-n{position:absolute;top:6px;right:6px;min-width:20px;height:20px;font-size:11px}
  .ini-card{padding:14px}
  .ini-hola h1{font-size:20px}
}
.ini-card-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ini-link{background:none;border:0;padding:0;color:#3d7a4e;font-weight:600;font-size:12.5px;cursor:pointer}
.ini-link:hover{text-decoration:underline}
.ini-vacio{margin:4px 0;font-size:13px;color:#7a746b}
.ini-cargando{height:44px;border-radius:9px;background:linear-gradient(90deg,#f3f1ec 25%,#ebe8e1 50%,#f3f1ec 75%);background-size:200% 100%;animation:ini-brillo 1.2s infinite}
@keyframes ini-brillo{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.ini-cargando{animation:none}}

.ini-pend,.ini-not,.ini-seg{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;color:#2a2722;background:#fff;border:1px solid #ece8df;border-radius:10px;padding:11px 12px;cursor:pointer}
.ini-pend+.ini-pend,.ini-not+.ini-not,.ini-seg+.ini-seg{margin-top:8px}
.ini-pend:hover,.ini-not:hover,.ini-seg:hover{border-color:#3d7a4e;background:#f8faf6}
.ini-pend:focus-visible,.ini-not:focus-visible,.ini-seg:focus-visible,.ini-chip:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px}
.ini-pend-n{min-width:46px;text-align:center;font-size:20px;font-weight:700;color:#3d7a4e;font-variant-numeric:tabular-nums}
.ini-pend-t,.ini-not-t,.ini-seg>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ini-pend-t span,.ini-not-t span,.ini-seg>span:last-child span{font-size:12.5px;color:#7a746b;overflow:hidden;text-overflow:ellipsis}
.ini-flecha{font-size:20px;color:#b3ada2}
.ini-not-ico{font-size:18px;flex:none}
.ini-not-h{font-size:11.5px;white-space:nowrap;flex:none}
.ini-mas{margin-top:10px}
.ini-seg>span:first-child{font-size:18px;flex:none;width:24px;text-align:center}
.ini-seg-borr{border-color:#e9d3ad;background:#fffaf1}
.ini-fijos{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:12.5px}
.ini-chip{border:1px solid #d8d4cc;background:#fff;border-radius:20px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer;color:#2a2722}
.ini-chip:hover{border-color:#3d7a4e;color:#3d7a4e}

.ini-jor-h{margin:0 0 10px;font-size:13px;color:#4a463e}
.ini-jor{list-style:none;margin:0;padding:0}
.ini-jor li{display:grid;grid-template-columns:42px auto 1fr;gap:8px;align-items:baseline;padding:7px 0;border-top:1px solid #f0ede6;font-size:12.5px}
.ini-jor li:first-child{border-top:0}
.ini-jor-t{min-width:0;line-height:1.4}

.ini-cuenta{margin-top:18px;background:#fff;border:1px solid #e5e1d8;border-radius:12px}
.ini-cuenta summary{padding:14px 18px;cursor:pointer;font-weight:600;font-size:13.5px;color:#4a463e}
.ini-cuenta[open] summary{border-bottom:1px solid #f0ede6}
.ini-cuenta-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);gap:24px;padding:18px}
.ini-perfil{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ini-dl{display:grid;grid-template-columns:70px 1fr;gap:6px 10px;margin:0;font-size:13px}.ini-dl dt{color:#7a746b}.ini-dl dd{margin:0}
.ini-cuenta .fld+.fld{margin-top:10px}.ini-cuenta input{width:100%;box-sizing:border-box}

@media (max-width:900px){
  .ini-grid,.ini-cuenta-grid{grid-template-columns:1fr}
  .ini-hola h1{font-size:22px}
}
.pm2-firma-aviso{flex-basis:100%;font-size:12.5px;color:#8a5a00;background:#fff7e0;border:1px solid #f0dfa8;border-radius:8px;padding:6px 10px}
.pm2-firma-aviso[hidden]{display:none}

/* Planear MP: selector visual de lote con barra de uso (planPickerAbrir) */
.pk{position:fixed;z-index:3000;background:#fff;border:1px solid #d9d4c9;border-radius:14px;box-shadow:0 18px 48px rgba(30,25,15,.22);display:flex;flex-direction:column;overflow:hidden}
.pk-top{display:flex;gap:8px;padding:10px 12px 6px}
.pk-top input{flex:1;border:1px solid #d9d4c9;border-radius:9px;padding:8px 11px;font:inherit;font-size:13px}
.pk-quitar{border:1px solid #e8b4bc;background:#fff;color:#a03050;border-radius:9px;padding:0 12px;font:inherit;font-size:12px;cursor:pointer}
.pk-ley{display:flex;gap:14px;flex-wrap:wrap;padding:2px 14px 8px;font-size:11px;color:#7a746b;border-bottom:1px solid #eeebe4}
.pk-ley>span{display:inline-flex;align-items:center;gap:5px}
.pk-list{overflow-y:auto;padding:8px 10px 10px;display:flex;flex-direction:column;gap:8px}
.pk-card{border:1px solid #e5e1d8;border-radius:12px;padding:10px 12px;background:#fdfcfa}
.pk-card:hover{border-color:#c9c2b3;background:#fff}
.pk-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:7px}
.pk-h .mono{font-weight:700;font-size:13px;color:#2a2722}
.pk-prod{font-size:11.5px;color:#7a746b;margin-top:1px}
.pk-libre{text-align:right;font-weight:700;font-size:14px;white-space:nowrap}
.pk-libre small{display:block;font-size:10.5px;font-weight:600;color:#8a8478;text-transform:uppercase;letter-spacing:.04em}
.pk-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:#eeebe4}
.pk-bar i{display:block;height:100%}
.pk-bar .b-l{background:#3f8f52}.pk-bar .m-l{background:#e0a84a}
.pk-bar .b-u{background:repeating-linear-gradient(135deg,#3f8f52 0 4px,#a9d1b2 4px 8px)}
.pk-bar .m-u{background:repeating-linear-gradient(135deg,#e0a84a 0 4px,#f5dcae 4px 8px)}
.pk-lg{margin-top:7px;display:flex;flex-direction:column;gap:2px;font-size:11.8px;color:#5f5a51}
.pk-lg b{color:#3a362f;font-weight:600}
.pk .dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.pk .dot.b{background:#3f8f52}.pk .dot.m{background:#e0a84a}.pk .dot.r{background:#b5772a}.pk .dot.p{background:#1f4e86}
.pk .dot.rs{background:repeating-linear-gradient(135deg,#8a8478 0 3px,#ddd8ce 3px 6px)}
.pk-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.pk-use{flex:1;min-width:170px;text-align:left;border:1px solid #bcd9c3;background:#f0f7f2;border-radius:10px;padding:7px 11px;cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:1px}
.pk-use b{font-size:12.5px;color:#2f6d3c}.pk-use span{font-size:11.5px;color:#4a463e}.pk-use small{font-size:11px;color:#6f6a62}
.pk-use.mp{border-color:#ecd3a5;background:#fdf6ea}.pk-use.mp b{color:#9a6a12}
.pk-use:hover{filter:brightness(.97)}
.pk-use.on{outline:2px solid #1f4e86;outline-offset:1px}
.pk-vacio{padding:18px;text-align:center;color:#7a746b;font-size:12.5px}

/* Inicio › Mi cuenta: correo de Google Workspace conectado */
.ini-google{margin-top:16px;padding-top:14px;border-top:1px solid #eeebe4}
.ini-g-btn{display:inline-flex;align-items:center;gap:10px;padding:9px 16px;border:1px solid #dadce0;border-radius:999px;background:#fff;color:#3c4043;font:inherit;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 1px 2px rgba(60,64,67,.12)}
.ini-g-btn:hover:not(:disabled){background:#f8f9fa;box-shadow:0 1px 3px rgba(60,64,67,.25)}
.ini-g-btn:disabled{opacity:.55;cursor:not-allowed}
.ini-g-ok{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid #cfe6d5;background:#f1f8f3;border-radius:12px}
.ini-g-ok>div{flex:1;min-width:160px;display:flex;flex-direction:column}
.ini-g-ok b{font-size:13.5px;color:#2a2722;word-break:break-all}

/* Pedidos: MP planificada por producto (desplegable; color = estado del lote)
   verde beneficiado · azul envasado directo · morado tarwi · ámbar por beneficiar · rojo sin ingreso */
.ped-mp{--ben:#2f8f4e;--dir:#2a6f97;--tw:#7a3e8a;--por:#d48a1f;--sin:#c0392b;border-bottom:1px solid #f0ede6;background:#fcfbf8;font-size:12px}
.ped-mp summary{list-style:none;cursor:pointer;padding:7px 16px 7px 24px;color:#4a463e;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ped-mp summary::-webkit-details-marker{display:none}
.ped-mp-chev{display:inline-block;transition:transform .15s}
.ped-mp[open] .ped-mp-chev{transform:rotate(90deg)}
.ped-mp-bar{display:inline-flex;width:140px;height:8px;border-radius:4px;overflow:hidden;background:#eeebe4}
.ped-mp-bar i{display:block;height:100%}
.ped-mp-bar .ben,.ped-mp-chip.ben::before{background:var(--ben)}.ped-mp-bar .dir,.ped-mp-chip.dir::before{background:var(--dir)}
.ped-mp-bar .tw,.ped-mp-chip.tw::before{background:var(--tw)}.ped-mp-bar .por,.ped-mp-chip.por::before{background:var(--por)}
.ped-mp-bar .sin,.ped-mp-chip.sin::before{background:var(--sin)}
.ped-mp-chip{display:inline-flex;align-items:center;gap:5px;color:#5f5a51;font-size:11.5px}
.ped-mp-chip::before{content:'';width:9px;height:9px;border-radius:3px}
.ped-mp-list{padding:2px 16px 10px 24px;display:flex;flex-direction:column;gap:5px}
.ped-mp-r{--c:#8a8478;display:grid;grid-template-columns:130px minmax(140px,1fr) 100px 150px minmax(160px,1.4fr);gap:10px;align-items:center;
  padding:7px 10px 7px 12px;border-radius:8px;border:1px solid color-mix(in srgb,var(--c) 30%,#fff);border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 7%,#fff)}
.ped-mp-r.ben{--c:var(--ben)}.ped-mp-r.dir{--c:var(--dir)}.ped-mp-r.tw{--c:var(--tw)}.ped-mp-r.por{--c:var(--por)}.ped-mp-r.sin{--c:var(--sin)}
.ped-mp-lote{font-weight:700;color:#2a2722}
.ped-mp-item{color:#4a463e;min-width:0}
.ped-mp-kg{text-align:right;font-weight:700;color:var(--c)}
.ped-mp-est{justify-self:start;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;background:var(--c);color:#fff}
.ped-mp-det{color:#6f6a62;font-size:11.5px}
@media (max-width:820px){
  .ped-mp-r{grid-template-columns:1fr auto;gap:4px 10px}
  .ped-mp-item,.ped-mp-det{grid-column:1/-1}
}
.ini-ce{display:flex;gap:8px;flex-wrap:wrap}
.ini-ce input{flex:1;min-width:200px;border:1px solid #d9d4c9;border-radius:9px;padding:8px 11px;font:inherit}

/* Contratos › Producción: muestreo / despacho y comentario por pedido */
.ctp-com{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 2px 34px;padding:7px 10px;border:1px dashed #e0dbd0;border-radius:10px;background:#fcfbf8;cursor:default}
.ctp-com.muestreo{border:1px solid #c9b8ec;background:#f6f2fd}
.ctp-com.despacho{border:1px solid #b9d9c2;background:#f1f8f3}
.ctp-com-dest{display:flex;gap:4px;flex:none}
.ctp-com-dest button{border:1px solid #ddd8ce;background:#fff;border-radius:999px;padding:4px 12px;font:inherit;font-size:12px;font-weight:600;color:#6f6a62;cursor:pointer}
.ctp-com-dest button[data-ctpdest=muestreo][aria-checked=true]{background:#6d3fc4;border-color:#6d3fc4;color:#fff}
.ctp-com-dest button[data-ctpdest=despacho][aria-checked=true]{background:#2f6d3c;border-color:#2f6d3c;color:#fff}
.ctp-com-in{flex:1;min-width:200px;border:1px solid #e0dbd0;border-radius:8px;padding:6px 10px;font:inherit;font-size:12.5px;background:#fff}
.ctp-com-in:focus{outline:none;border-color:#1f4e86;box-shadow:0 0 0 3px rgba(31,78,134,.12)}
.ctp-com-q{font-size:11px;color:#8a8478;white-space:nowrap}
@media (max-width:820px){.ctp-com{margin-left:0}}

/* Tracking del contrato: datos del pago y fecha obligatoria */
.pm2-oblig{font-size:11px;font-weight:600;color:#a03050;background:#fbecef;border-radius:6px;padding:1px 7px;margin-left:6px;text-transform:none;letter-spacing:0}
.pm2 .pm2-in.pm2-prop{border-color:#d9a441;background:#fffaf0}
.pm2-pago{border:1.5px solid #cfdcec;background:#f5f8fc;border-radius:12px;padding:10px 14px 12px;margin:14px 0 4px}
.pm2-pago legend{font-size:12px;font-weight:700;color:#1f4e86;padding:0 6px}
.pm2-pago-g{display:grid;grid-template-columns:140px 90px minmax(0,1fr);gap:10px}
.pm2-pago-g label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:#5f5a51}
.pm2-pago-g label.s2{grid-column:span 2}
.pm2-pago-g input,.pm2-pago-g select{border:1.5px solid #e7e2d8;border-radius:9px;padding:8px 10px;font:inherit;font-size:13px;background:#fff;width:100%;box-sizing:border-box}
@media (max-width:600px){.pm2-pago-g{grid-template-columns:1fr 1fr}.pm2-pago-g label.s2{grid-column:1/-1}}

/* Contrato: factura y pago terrestre divididos entre Sumaj Yapay y Termodinámica */
.ct-div{border:1.5px solid #cfdcec;background:#f5f8fc;border-radius:12px;padding:10px 14px;margin-top:8px}
.ct-div-h,.ct-div-r{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr) 110px;gap:10px;align-items:center}
.ct-div-h{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6f6a62;margin-bottom:6px}
.ct-div-h b:last-child,.ct-div-r b{text-align:right}
.ct-div-r{margin-bottom:8px}.ct-div-r>span{font-size:12.5px;font-weight:600;color:#3a362f}
.ct-div-r input{width:100%;box-sizing:border-box;border:1.5px solid #e7e2d8;border-radius:9px;padding:7px 10px;font:inherit;font-size:13px;background:#fff}
.ct-div-r b{font-size:13.5px;color:#1f4e86}
input.ct-div-calc{background:#eef3fb !important;color:#1f4e86;font-weight:700}
@media (max-width:600px){.ct-div-h{display:none}.ct-div-r{grid-template-columns:1fr 1fr}.ct-div-r>span{grid-column:1/-1}.ct-div-r b{grid-column:1/-1}}

/* Colores de los productos en el Excel del pedido */
.pcol-ayuda{font-size:12.5px;color:#6f6a62;margin-bottom:10px}
.pcol-r{display:grid;grid-template-columns:28px minmax(180px,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #f0ede6}
.pcol-r:first-child{border-top:0}
.pcol-sw{width:28px;height:28px;border-radius:7px;border:1px solid #d9d4c9}
.pcol-n b{display:block;font-size:12.5px;color:#2a2722}.pcol-n small{font-size:11px;color:#8a8478}
.pcol-pal{display:flex;gap:4px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.pcol-pal>button[data-pcolset]:not(.pcol-sin){width:20px;height:20px;border-radius:5px;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0}
.pcol-pal>button.on{outline:2px solid #1f1d1a;outline-offset:1px}
.pcol-otro{position:relative;width:22px;height:20px;border:1px dashed #b5afa3;border-radius:5px;display:grid;place-items:center;font-size:12px;color:#6f6a62;cursor:pointer;overflow:hidden}
.pcol-otro input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pcol-sin,.pcol-auto{border:1px solid #ddd8ce;background:#fff;border-radius:6px;padding:2px 8px;font:inherit;font-size:11px;cursor:pointer;color:#5f5a51}
.pcol-auto{color:#1f4e86;border-color:#cfdcec}
@media (max-width:600px){.pcol-r{grid-template-columns:28px 1fr}.pcol-pal{grid-column:1/-1;justify-content:flex-start}}

/* Inicio · Resumen del día: cifras arriba, tarjetas con encabezado e íconos de línea */
.ini-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.ini-kpi{display:flex;align-items:center;gap:12px;min-width:0;text-align:left;font:inherit;color:#2a2722;background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:14px 16px;cursor:pointer;position:relative;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.ini-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--k,#3d7a4e)}
.ini-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(42,39,34,.08);border-color:var(--k,#3d7a4e)}
.ini-kpi:focus-visible{outline:2px solid #3d7a4e;outline-offset:2px}
.ini-kpi-pend{--k:#c0562e;--kb:#fbeee8}.ini-kpi-not{--k:#2a6f97;--kb:#e8f1f7}.ini-kpi-tk{--k:#3d7a4e;--kb:#ebf3ec}.ini-kpi-jor{--k:#8a6d3b;--kb:#f5efe3}
.ini-kpi-ico{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--kb);color:var(--k)}
.ini-kpi-tx{display:flex;flex-direction:column;min-width:0}
.ini-kpi-n{font-size:24px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--k)}
.ini-kpi-l{font-size:12.5px;font-weight:600;color:#4a463e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ini-kpi-l small{font-weight:400;color:#8a847a;font-size:12px}
.ini-kpi.cero .ini-kpi-n{color:#b3ada2}
.ini-res .ini-card{border-radius:14px;padding:18px 20px;scroll-margin-top:90px}
.ini-res .ini-card-h{align-items:center;margin-bottom:12px}
.ini-res .ini-card h2{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}
.ini-h-ico{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#f1f5ee;color:#3d7a4e}
.ini-flash{animation:ini-flash 1.1s ease}
@keyframes ini-flash{0%,40%{box-shadow:0 0 0 3px rgba(61,122,78,.35)}100%{box-shadow:0 0 0 0 rgba(61,122,78,0)}}
.ini-vacio-ok{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:18px 10px;color:#8a847a}
.ini-vacio-ok svg{color:#9bbfa4;margin-bottom:4px}
.ini-vacio-ok b{font-size:13.5px;color:#4a463e;font-weight:600}
.ini-vacio-ok span{font-size:12.5px;max-width:300px}
/* Para hacer: número en una pastilla, filas con fondo suave */
.ini-res .ini-pend-w{border:1px solid #efebe3;border-radius:12px;margin-bottom:8px;padding:0 4px;transition:border-color .15s,background .15s}
.ini-res .ini-pend-w:last-child{border-bottom:1px solid #efebe3;margin-bottom:0}
.ini-res .ini-pend-w:hover{border-color:#cfd9c8;background:#fbfcfa}
.ini-res .ini-pend-w .ini-pend{background:transparent}
.ini-res .ini-pend-n{min-width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fbeee8;color:#c0562e;font-size:17px}
.ini-res .ini-flecha{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:#6f6a62}
.ini-res .ini-flecha:hover{background:#3d7a4e;color:#fff}
/* Notificaciones y Continuar */
.ini-res .ini-not,.ini-res .ini-seg{border-radius:12px;transition:border-color .15s,background .15s,transform .15s}
.ini-res .ini-not:hover,.ini-res .ini-seg:hover{transform:translateX(2px)}
.ini-not-ico,.ini-seg-ico{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e8f1f7;color:#2a6f97}
.ini-seg-ico{background:#f1f5ee;color:#3d7a4e}
.ini-seg-borr .ini-seg-ico{background:#fbf1e3;color:#b5772a}
.ini-res .ini-seg>span:first-child{width:34px;font-size:inherit}
/* Última jornada como línea de tiempo */
.ini-res .ini-jor{position:relative;padding-left:16px}
.ini-res .ini-jor::before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:2px;background:#ece8df;border-radius:2px}
.ini-res .ini-jor li{position:relative;border-top:0;padding:6px 0}
.ini-res .ini-jor li::before{content:"";position:absolute;left:-16px;top:12px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #8a6d3b}
@media (max-width:900px){.ini-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){
  .ini-kpis{gap:8px}
  .ini-kpi{padding:10px 12px;gap:10px}
  .ini-kpi-ico{width:32px;height:32px;border-radius:10px}
  .ini-kpi-n{font-size:20px}
  .ini-kpi-l small{display:none}
  .ini-res .ini-card{padding:14px}
  .ini-res .ini-jor li{grid-template-columns:38px 1fr}
  .ini-res .ini-jor li .aud-acc{grid-column:2}
  .ini-res .ini-jor-t{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){.ini-kpi,.ini-flash,.ini-res .ini-not,.ini-res .ini-seg{animation:none;transition:none}.ini-kpi:hover{transform:none}}

/* Inicio · Bandeja: filtro por línea */
.ini-lineas{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ini-lineas:empty{display:none}
.ini-lin{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13px;font-weight:600;color:#4a463e;background:#fff;border:1px solid #e5e1d8;border-radius:999px;padding:7px 14px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s}
.ini-lin:hover{border-color:var(--c);transform:translateY(-1px)}
.ini-lin:focus-visible{outline:2px solid var(--c);outline-offset:2px}
.ini-lin-dot{width:8px;height:8px;border-radius:50%;background:var(--c)}
.ini-lin.on{background:var(--c);border-color:var(--c);color:#fff}
.ini-lin.on .ini-lin-dot{background:#fff}
@media (max-width:640px){.ini-lineas{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.ini-lin{flex:none}}
@media (prefers-reduced-motion:reduce){.ini-lin{transition:none}.ini-lin:hover{transform:none}}

/* Inicio · Resumen: formularios de hoy por línea */
.ini-res .ini-hoy{margin-bottom:16px}
.ini-hoy-res{font-size:12.5px;color:#6f6a62}
.ini-hoy-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ini-hoy-l{border:1px solid #efebe3;border-top:3px solid var(--c);border-radius:12px;padding:10px 12px;min-width:0}
.ini-hoy-lh{display:flex;align-items:center;gap:8px;font-size:13.5px}
.ini-hoy-lh .mono{margin-left:auto;font-size:12px;color:#6f6a62}
.ini-hoy-bar{height:5px;border-radius:5px;background:#f0ede6;margin:8px 0 6px;overflow:hidden}
.ini-hoy-bar span{display:block;height:100%;background:var(--c);border-radius:5px;transition:width .4s ease}
.ini-hoy-f{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #f3f1ec}
.ini-hoy-f:first-of-type{border-top:0}
.ini-hoy-est{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#f5efe3;color:#8a6d3b}
.ini-hoy-f.ok .ini-hoy-est{background:#ebf3ec;color:#3d7a4e}
.ini-hoy-f.atr .ini-hoy-est{background:#fbeee8;color:#c0562e}
.ini-hoy-tx{display:flex;flex-direction:column;min-width:0;flex:1;font-size:13px}
.ini-hoy-tx small{font-size:12px;color:#7a746b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ini-hoy-f.atr .ini-hoy-tx small{color:#c0562e}
.ini-hoy-b{flex:none;font:inherit;font-size:12px;font-weight:600;border:1px solid #d8d4cc;background:#fff;color:#4a463e;border-radius:8px;padding:6px 12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.ini-hoy-b:hover{border-color:var(--c)}
.ini-hoy-b.on{background:var(--c);border-color:var(--c);color:#fff}
.ini-hoy-b.on:hover{filter:brightness(1.08)}
@media (max-width:480px){.ini-hoy-g{grid-template-columns:1fr}}

/* Inicio · pestaña que lleva a otro módulo (Calidad) */
.ini-tab-ir .ini-tab-ico{background:#f1ecfa;color:#6d28d9}
.ini-tab-ir:hover{border-color:#cdbcf0}

/* Tareas · tareas en grupo (avatares apilados) */
.tk-avs{display:inline-flex;align-items:center}
.tk-avs .tk-av{box-shadow:0 0 0 2px #fff}
.tk-avs .tk-av+.tk-av{margin-left:-8px}
.tk-av-mas{background:#8a847a !important;font-size:10px}
/* Tareas · Mi equipo */
.tk-equipo{margin:0 0 14px}
.tk-eq-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.tk-eq-h b{font-size:14px}
.tk-eq-h span{font-size:12.5px;color:#7a746b}
.tk-eq-ed{margin-left:auto;font:inherit;font-size:12.5px;font-weight:500;color:#3d7a4e;background:none;border:1px solid #cfd9c8;border-radius:8px;padding:5px 11px;cursor:pointer}
.tk-eq-ed:hover{background:#f1f5ee}
.tk-eq{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.tk-eq-c{display:flex;flex-direction:column;gap:10px;text-align:left;font:inherit;color:#2a2722;background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.tk-eq-c:hover{border-color:#3d7a4e;transform:translateY(-1px);box-shadow:0 6px 14px rgba(42,39,34,.07)}
.tk-eq-c.on{border-color:#3d7a4e;box-shadow:0 0 0 2px rgba(61,122,78,.25)}
.tk-eq-p{display:flex;align-items:center;gap:8px;font-size:13.5px;min-width:0}
.tk-eq-p b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-eq-k{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.tk-eq-k>span{display:flex;flex-direction:column;font-size:11px;color:#7a746b}
.tk-eq-k b{font-size:18px;color:#2a2722;line-height:1.1}
.tk-eq-k .v b{color:#c0562e}
.tk-eq-k .h b{color:#3d7a4e}
.tk-eq-bar{height:5px;border-radius:5px;background:#f0ede6;overflow:hidden}
.tk-eq-bar span{display:block;height:100%;background:#3d7a4e;border-radius:5px}
.tk-eq-vacio{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:22px 16px;background:#fff;border:1px dashed #d8d4cc;border-radius:12px}
.tk-eq-vacio span{font-size:13px;color:#7a746b;max-width:420px;margin-bottom:6px}
@media (max-width:480px){.tk-eq{grid-template-columns:1fr}}

/* Tareas: negritas más livianas */
#tkApp b,.tkc b,.tkh b,.tk-fbox b,.tkh-box b{font-weight:600}
.tk-main>b,.tk-eq-p b,.tk-pc b,.tk-pl b{font-weight:500}
.tk-ico svg,.tk-pl svg,.tk-rapidas svg,.tkc-ico svg{vertical-align:-3px}

/* Tareas · Mis dependientes: semáforo por área, tarjetas y ficha */
.tk-sem{display:inline-flex;gap:6px}
.tk-sem>span{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums;padding:3px 8px;border-radius:999px}
.tk-sem i,.tk-sem-ley i,.tk-fi-gh i{width:9px;height:9px;border-radius:50%;display:inline-block}
.tk-sem .r{background:#fdecea;color:#b42318}.tk-sem .r i,.tk-sem-ley .r i,.tk-fi-g.r .tk-fi-gh i{background:#d92d20}
.tk-sem .a{background:#fef6e0;color:#8a6100}.tk-sem .a i,.tk-sem-ley .a i,.tk-fi-g.a .tk-fi-gh i{background:#e3a008}
.tk-sem .v{background:#e8f3ea;color:#2f6d3c}.tk-sem .v i,.tk-sem-ley .v i,.tk-fi-g.v .tk-fi-gh i{background:#3d9a55}
.tk-sem .cero{background:#f4f2ec;color:#a39d92}.tk-sem .cero i{background:#cfcac0}
.tk-sem-ley{display:inline-flex;gap:10px;font-size:12px;color:#7a746b}
.tk-sem-ley>span{display:inline-flex;align-items:center;gap:5px}
.tk-areas{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.tk-area{display:inline-flex;align-items:center;gap:10px;font:inherit;background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:8px 10px 8px 12px;cursor:pointer;color:#2a2722;transition:border-color .15s,box-shadow .15s}
.tk-area b{font-size:13px;font-weight:500}
.tk-area:hover{border-color:#b9b2a5}
.tk-area.on{border-color:#3d7a4e;box-shadow:0 0 0 2px rgba(61,122,78,.2)}
.tk-eq-c{flex-direction:column;align-items:stretch;cursor:default;border-left:4px solid #3d9a55}
.tk-eq-c.amarillo{border-left-color:#e3a008}.tk-eq-c.rojo{border-left-color:#d92d20}
.tk-eq-c .tk-eq-p{display:flex;align-items:center;gap:9px;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.tk-eq-c .tk-eq-p>span{display:flex;flex-direction:column;min-width:0}
.tk-eq-c .tk-eq-p i{font-style:normal;font-size:12px;color:#7a746b}
.tk-eq-ver{align-self:flex-start;font:inherit;font-size:12.5px;font-weight:500;color:#3d7a4e;background:#f1f5ee;border:0;border-radius:8px;padding:6px 11px;cursor:pointer}
.tk-eq-ver:hover{background:#e3ede0}
.tk-ficha{max-width:720px}
.tk-fi-p{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.tk-fi-p>span{display:flex;flex-direction:column}.tk-fi-p i{font-style:normal;font-size:12.5px;color:#7a746b}
.tk-fi-sec{margin:16px 0 8px;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7a746b}
.tk-fi-gs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tk-fi-g{border:1px solid #efebe3;border-radius:12px;padding:8px;min-width:0}
.tk-fi-gh{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;padding:2px 4px 6px}
.tk-fi-gh .mono{margin-left:auto;color:#7a746b}
.tk-fi-t{display:flex;flex-direction:column;width:100%;text-align:left;font:inherit;background:#faf9f5;border:0;border-radius:8px;padding:7px 9px;margin-top:5px;cursor:pointer;color:#2a2722}
.tk-fi-t:hover{background:#f1efe8}
.tk-fi-t span{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-fi-t small{font-size:11.5px;color:#7a746b}
.tk-fi-g.r .tk-fi-t small{color:#b42318}
.tk-fi-v{font-size:12.5px;color:#a39d92;padding:6px 4px;text-align:center}
.tk-fi-b{border:1px solid #efebe3;border-radius:12px;padding:10px 12px;margin-bottom:8px}
.tk-fi-bh{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.tk-fi-bh>b{min-width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fbeee8;color:#c0562e;font-weight:600}
.tk-fi-bh>span{display:flex;flex-direction:column}.tk-fi-bh small{font-size:12px;color:#7a746b}
.tk-fi-i{display:grid;grid-template-columns:70px 48px 100px minmax(0,1fr);gap:8px;font-size:12px;padding:5px 2px;border-top:1px solid #f3f1ec}
.tk-fi-x{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){
  .tk-fi-gs{grid-template-columns:1fr}
  .tk-fi-i{grid-template-columns:60px 44px minmax(0,1fr)}.tk-fi-i>span:nth-child(3){display:none}
  .tk-sem-ley{display:none}
}

/* Tareas · semáforo (prioridad que elige quien asigna + vencidas/bloqueadas) */
.tk-row.sem-r{box-shadow:inset 3px 0 #d92d20}.tk-row.sem-a{box-shadow:inset 3px 0 #e3a008}.tk-row.sem-v{box-shadow:inset 3px 0 #3d9a55}
.tk-row.cerrada.sem-v{box-shadow:none}
.tk-semp{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;padding:2px 8px;border-radius:999px}
.tk-semp i{width:7px;height:7px;border-radius:50%}
.tk-semp.r{background:#fdecea;color:#b42318}.tk-semp.r i{background:#d92d20}
.tk-semp.a{background:#fef6e0;color:#8a6100}.tk-semp.a i{background:#e3a008}
.tk-semp.v{background:#e8f3ea;color:#2f6d3c}.tk-semp.v i{background:#3d9a55}
.tk-chip.clase{background:#eef2fb;color:#2a4f8f}.tk-chip.area{background:#f4f2ec;color:#6f6a62}.tk-chip.bloq{background:#fdecea;color:#b42318}
.tk-semb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.tk-semk{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;font:inherit;color:#2a2722;background:#fff;border:1px solid #e5e1d8;border-radius:11px;padding:10px 14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.tk-semk i{grid-row:1/3;width:12px;height:12px;border-radius:50%}
.tk-semk span{display:flex;align-items:baseline;gap:6px;font-size:13px}
.tk-semk b{font-size:20px;font-weight:600}
.tk-semk small{font-size:11.5px;color:#8a847a;grid-column:2}
.tk-semk.r i{background:#d92d20}.tk-semk.a i{background:#e3a008}.tk-semk.v i{background:#3d9a55}
.tk-semk.r b{color:#b42318}.tk-semk.a b{color:#8a6100}.tk-semk.v b{color:#2f6d3c}
.tk-semk:hover{border-color:#b9b2a5}
.tk-semk.on.r{border-color:#d92d20;box-shadow:0 0 0 2px rgba(217,45,32,.18)}.tk-semk.on.a{border-color:#e3a008;box-shadow:0 0 0 2px rgba(227,160,8,.2)}.tk-semk.on.v{border-color:#3d9a55;box-shadow:0 0 0 2px rgba(61,154,85,.2)}
.tk-areas-f{align-items:center}
.tk-abar{display:flex;width:60px;height:6px;border-radius:6px;overflow:hidden;background:#f0ede6}
.tk-abar .r{background:#d92d20}.tk-abar .a{background:#e3a008}.tk-abar .v{background:#3d9a55}
.tk-area .mono{font-size:12px;color:#7a746b}
.tk-segsem button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.tk-segsem button i{width:8px;height:8px;border-radius:50%}
.tk-segsem .p-alta i{background:#d92d20}.tk-segsem .p-normal i{background:#e3a008}.tk-segsem .p-baja i{background:#3d9a55}
.tk-segsem button.on.p-alta{background:#d92d20;border-color:#d92d20}.tk-segsem button.on.p-normal{background:#c98c00;border-color:#c98c00}.tk-segsem button.on.p-baja{background:#3d9a55;border-color:#3d9a55}
.tk-segsem button.on i{background:#fff}
.tk-motivo{width:100%;box-sizing:border-box;margin-top:8px;border:1px solid #f0c9c3;background:#fdf6f5;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}
.tkc-est button.on.e-bloqueada{background:#d92d20;border-color:#d92d20;color:#fff}
@media (max-width:640px){.tk-semb{gap:6px}.tk-semk{padding:8px 10px}.tk-semk small{display:none}.tk-segsem{flex-direction:column}}
/* Inicio · tareas por área */
.ini-sem-t{display:flex;gap:8px;margin-bottom:12px}
.ini-sem-k{flex:1;display:flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;color:#4a463e;background:#faf9f5;border:1px solid #efebe3;border-radius:10px;padding:8px 10px;cursor:pointer}
.ini-sem-k:hover{border-color:#b9b2a5}
.ini-sem-k i{width:9px;height:9px;border-radius:50%}
.ini-sem-k b{font-size:16px;font-weight:600}
.ini-sem-k.r i{background:#d92d20}.ini-sem-k.a i{background:#e3a008}.ini-sem-k.v i{background:#3d9a55}
.ini-sem-a+.ini-sem-a{margin-top:10px}
.ini-sem-ah{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;margin-bottom:5px}
.ini-sem-ah b{font-weight:500}.ini-sem-ah>span{color:#7a746b}
.ini-sem-ah .r{color:#b42318}.ini-sem-ah .a{color:#8a6100}
.ini-sem-bar{display:flex;height:7px;border-radius:7px;overflow:hidden;background:#f0ede6}
.ini-sem-bar .r{background:#d92d20}.ini-sem-bar .a{background:#e3a008}.ini-sem-bar .v{background:#3d9a55}

/* Tareas · formulario corto de nueva tarea */
.tk-fs{display:flex;flex-direction:column;gap:14px}
.tk-fs .fld{margin:0}
.tk-vinc{border:1px solid #efebe3;border-radius:10px;padding:10px 12px;background:#fcfbf8}
.tk-vinc summary{cursor:pointer;font-size:13px;color:#4a463e}
.tk-vinc .tk-sec{margin:6px 0 0;border:0;padding:0;background:none}

/* Tareas · nueva tarea más bonita: tarjetas por paso, título grande, prioridad en fichas de color */
.modal .box.tk-fbox:has(.tk-fs){max-width:720px;border-radius:18px;overflow:hidden}
.tk-fbox:has(.tk-fs) .mh{background:linear-gradient(135deg,#2f6d3c,#3d7a4e);font-size:15px;font-weight:500;padding:16px 20px}
.tk-fbox:has(.tk-fs) .mb{background:#f6f4ef;padding:16px}
.tk-fs{gap:12px}
.tk-fcard{background:#fff;border:1px solid #ebe7de;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 2px rgba(42,39,34,.03)}
.tk-fh{display:flex;align-items:center;gap:10px}
.tk-fn{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#ebf3ec;color:#2f6d3c;font-size:12.5px;font-weight:600}
.tk-fh>div{display:flex;flex-direction:column}
.tk-fh b{font-size:14px;font-weight:500;color:#2a2722}
.tk-fh small{font-size:12px;color:#8a847a}
.tk-fs .lbl{font-size:12px;font-weight:500;color:#6f6a62;margin-bottom:5px}
.tk-fs input:not([type=date]),.tk-fs textarea{width:100%;box-sizing:border-box;border:1px solid #e0dbd1;border-radius:10px;padding:10px 12px;font:inherit;font-size:13.5px;background:#fff;transition:border-color .15s,box-shadow .15s}
.tk-fs input:focus,.tk-fs textarea:focus{outline:0;border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.15)}
.tk-fs .tk-tit{font-size:15.5px;padding:12px 14px}
.tk-fs textarea{resize:vertical;min-height:58px}
.tk-clases{display:inline-flex;background:#f4f2ec;border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.tk-clases button{border:0;background:none;font:inherit;font-size:12.5px;color:#6f6a62;padding:6px 12px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}
.tk-clases button:hover{color:#2a2722}
.tk-clases button.on{background:#fff;color:#2a2722;box-shadow:0 1px 3px rgba(42,39,34,.12)}
.tk-fs .tk-c{border-color:#e0dbd1;color:#5f5a50;transition:all .15s}
.tk-fs .tk-c:hover{border-color:#3d7a4e;color:#2f6d3c}
.tk-fs .tk-c.on{background:#ebf3ec;border-color:#3d7a4e;color:#2f6d3c}
.tk-fs .tk-vd{border:1px solid #e0dbd1;border-radius:20px;height:28px}
.tk-fs .tk-pc{border-color:#ebe7de;transition:all .15s}
.tk-fs .tk-pc:hover{border-color:#3d7a4e;transform:translateY(-1px)}
.tk-fs .tk-pc.on{background:#ebf3ec;border-color:#3d7a4e}
.tk-fs .tk-pc.on b{color:#2f6d3c}.tk-fs .tk-pc.on i{color:#4f7f5a}
.tk-fs .tk-pc.on .tk-av{box-shadow:0 0 0 2px #3d7a4e}
.tk-grupo-ok{color:#2f6d3c;background:#ebf3ec;border-radius:8px;padding:6px 10px}
.tk-pris{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.tk-pri{display:flex;align-items:center;gap:8px;font:inherit;text-align:left;background:#fff;border:1px solid #e0dbd1;border-radius:10px;padding:8px 10px;cursor:pointer;transition:all .15s}
.tk-pri i{flex:none;width:11px;height:11px;border-radius:50%}
.tk-pri span{display:flex;flex-direction:column;min-width:0}
.tk-pri b{font-size:13px;font-weight:500;color:#2a2722}
.tk-pri small{font-size:11px;color:#8a847a}
.tk-pri.p-alta i{background:#d92d20}.tk-pri.p-normal i{background:#e3a008}.tk-pri.p-baja i{background:#3d9a55}
.tk-pri:hover{transform:translateY(-1px)}
.tk-pri.p-alta.on{background:#fdecea;border-color:#d92d20;box-shadow:0 0 0 2px rgba(217,45,32,.15)}
.tk-pri.p-normal.on{background:#fef6e0;border-color:#e3a008;box-shadow:0 0 0 2px rgba(227,160,8,.18)}
.tk-pri.p-baja.on{background:#e8f3ea;border-color:#3d9a55;box-shadow:0 0 0 2px rgba(61,154,85,.18)}
.tk-fs .tk-motivo{border-color:#f0c9c3;background:#fdf6f5}
.tk-fs .tk-vinc{background:#fff;border:1px dashed #d8d4cc;border-radius:14px;padding:12px 16px}
.tk-fs .tk-vinc[open]{border-style:solid;border-color:#ebe7de}
.tk-fs .tk-vinc summary{font-size:13.5px;color:#4a463e;list-style:none;display:flex;align-items:center;gap:8px}
.tk-fs .tk-vinc summary::-webkit-details-marker{display:none}
.tk-fs .tk-vinc summary::before{content:"+";display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#f4f2ec;color:#6f6a62;font-size:15px;transition:transform .2s}
.tk-fs .tk-vinc[open] summary::before{content:"−"}
.tk-fbox:has(.tk-fs) .tk-ffoot{padding:12px 16px;background:#fff}
.tk-fbox:has(.tk-fs) .tk-prev{background:#f6f4ef;border-radius:10px;padding:9px 12px}
.tk-fbox:has(.tk-fs) .tk-asignar{border-radius:10px;padding:11px 22px;font-weight:500;box-shadow:0 4px 12px rgba(47,109,60,.25);transition:transform .15s,box-shadow .15s}
.tk-fbox:has(.tk-fs) .tk-asignar:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(47,109,60,.3)}
.tk-fbox:has(.tk-fs) .tk-asignar:disabled{box-shadow:none}
@media (max-width:640px){
  .tk-fbox:has(.tk-fs) .mb{padding:10px}
  .tk-fcard{padding:12px}
  .tk-pris{grid-template-columns:1fr}
  .tk-fbox:has(.tk-fs) .tk-ffoot{flex-direction:column;align-items:stretch}
  .tk-fbox:has(.tk-fs) .tk-asignar{width:100%}
}
@media (prefers-reduced-motion:reduce){.tk-pri,.tk-fs .tk-pc,.tk-fbox .tk-asignar{transition:none}.tk-pri:hover,.tk-fs .tk-pc:hover{transform:none}}

/* Nueva tarea · Mi equipo arriba en "Para quién" */
.tk-pgrupo{background:#f7faf6;border:1px solid #dfeadb;border-radius:12px;padding:10px 12px;margin-bottom:12px}
.tk-pgh{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px}
.tk-pgh b{font-weight:500;color:#2a2722}
.tk-pgh span{color:#8a847a}
.tk-pgh2{margin-bottom:6px}
.tk-peq{margin-left:auto;font:inherit;font-size:12px;font-weight:500;color:#2f6d3c;background:#fff;border:1px solid #bcd5bf;border-radius:999px;padding:5px 12px;cursor:pointer;transition:all .15s}
.tk-peq:hover{background:#ebf3ec}
.tk-peq.on{background:#3d7a4e;border-color:#3d7a4e;color:#fff}

/* Inicio › Bandeja de trabajo (bandeja única): tareas + lo recibido para responder o decidir */
.ib-nota{margin:0 0 14px;font-size:12.5px;line-height:1.6}
.ib-tr{color:#b42318;font-weight:600}.ib-ta{color:#8a6100;font-weight:600}.ib-tv{color:#2f6d3c;font-weight:600}
.ib-kpi-vis{--k:#3d7a4e;--kb:#ebf3ec}.ib-kpi-r{--k:#b42318;--kb:#fdecea}.ib-kpi-a{--k:#b5772a;--kb:#fbf1e3}.ib-kpi-v{--k:#2f6d3c;--kb:#e8f3ea}
.ib-kpi-pend{--k:#2a6f97;--kb:#e8f1f7}.ib-kpi-con{--k:#6d3fc4;--kb:#f1ebfd}.ib-kpi-apr{--k:#8a6d3b;--kb:#f5efe3}
.ib-tool{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.ib-busca{flex:1;min-width:220px}
.ib-sel{border:1px solid #d8d4cc;border-radius:10px;background:#fff;padding:8px 10px;font:inherit;font-size:13px;color:#4a463e}
.ib-tool .tk-nueva{margin-left:0}
.ib-card{border-radius:14px;padding:18px 20px;margin-bottom:16px}
.ib-card .ini-card-h{align-items:center;margin-bottom:12px}
.ib-card .ini-card-h h2{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}
.ib-h2{font-size:15px;font-weight:600;color:#2a2722;margin:22px 0 10px}
.ib-tabla{border:1px solid #efebe3;border-radius:12px;overflow:auto}
.ib-r{display:grid;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #f3f1ec;font-size:12.5px;color:#4a463e;min-width:760px}
.ib-r:last-child{border-bottom:0}
.ib-rt{grid-template-columns:96px minmax(0,1fr) 110px 120px 92px 92px 96px}
.ib-rs{grid-template-columns:96px minmax(0,1fr) 92px 110px 100px 92px 86px 190px;min-width:960px}
.ib-h{position:sticky;top:0;background:#faf9f5;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8a847a;z-index:1}
.ib-r[data-ibver]{cursor:pointer;transition:background .12s}.ib-r[data-ibver]:hover{background:#fbfcfa}
.ib-r[data-ibver]:focus-visible{outline:2px solid #3d7a4e;outline-offset:-2px}
.ib-tit{min-width:0;display:flex;flex-direction:column;gap:3px}
.ib-tit b{font-weight:600;color:#2a2722;line-height:1.35}
.ib-tit small{color:#8a847a;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ib-tit .ib-ult{color:#2a6f97}.ib-tit .ib-ult b{font-weight:600;color:inherit}
.ib-c{color:#6f6a62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ib-c.venc{color:#b42318;font-weight:600}
.ib-quien{display:inline-flex;align-items:center;gap:6px;min-width:0}.ib-quien>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ib-est{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;padding:3px 9px;border-radius:999px;background:#f4f2ec;color:#6f6a62}
.ib-est.r{background:#fdecea;color:#b42318}.ib-est.a{background:#fbf1e3;color:#8a6100}.ib-est.az{background:#e8f1f7;color:#2a6f97}
.ib-acc{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.ib-b{border:1px solid #d8d4cc;background:#fff;border-radius:8px;padding:5px 10px;font:inherit;font-size:12px;font-weight:600;color:#4a463e;cursor:pointer;white-space:nowrap}
.ib-b:hover{background:#f6f4ee}.ib-b:disabled{opacity:.5;cursor:default}
.ib-b.on{border-color:#3d7a4e;color:#2f6d3c}.ib-b.on:hover{background:#3d7a4e;color:#fff}
.ib-b.no{border-color:#e6b8b2;color:#b42318}.ib-b.no:hover{background:#b42318;color:#fff}
.ib-vacio{padding:22px 12px;text-align:center;color:#8a847a;font-size:13px}
.ib-area{display:block;width:100%;text-align:left;font:inherit;background:none;border:1px solid transparent;border-radius:10px;padding:6px 8px;cursor:pointer;color:inherit}
.ib-area:hover{background:#faf9f5}.ib-area.on{border-color:#cfd9c8;background:#f6faf5}
.ib-pasos{margin:0;padding:0;list-style:none;counter-reset:ib;display:grid;gap:12px}
.ib-pasos li{counter-increment:ib;display:grid;grid-template-columns:30px 1fr;gap:4px 10px}
.ib-pasos li::before{content:counter(ib);grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f1f5ee;color:#3d7a4e;font-weight:700;font-size:13px}
.ib-pasos b{font-size:13px;color:#2a2722}.ib-pasos span{font-size:12.5px;color:#6f6a62;line-height:1.5}
@media (max-width:600px){.ib-card{padding:14px}.ib-sel{flex:1}.ib-busca{min-width:100%}}
/* Formularios de hoy: aviso de atrasados que lleva a la Bandeja de entrada */
.ini-hoy-atr{display:block;width:100%;text-align:left;margin-top:8px;padding:8px 10px;border:1px dashed #e6b8b2;border-radius:9px;background:#fdf5f3;color:#b42318;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.ini-hoy-atr:hover{background:#fbe9e5}

/* Plan de producción beneficiado: horas por lote, feriados y turnos del calendario de trabajo */
.pb-hl{margin-top:8px}
.pb-hl-t{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#6f6a62}
.pb-hl-t b{color:#2a2722;font-size:12.5px}
.pb-hl-reloj{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#f1f5ee;font-size:11px}
.pb-hl-bar{display:flex;gap:2px;height:16px;margin-top:5px;border-radius:6px;overflow:hidden}
.pb-hl-bar span{display:grid;place-items:center;min-width:4px;background:var(--c);color:#fff;font-size:9.5px;font-weight:700;opacity:.88;transition:opacity .15s ease,transform .15s ease;cursor:default}
.pb-hl-bar span:nth-child(even){opacity:.7}
.pb-hl-bar span:hover{opacity:1;transform:scaleY(1.15)}
.pb-tu-hh{margin-left:auto;font-size:11px;font-weight:600;color:#2f6d3c;background:#ebf3ec;border-radius:999px;padding:1px 8px}
.pb-tu-hp{font-size:11px;font-weight:600;color:#2a6f97;background:#e8f1f7;border-radius:999px;padding:0 7px;white-space:nowrap}
.pb-bxs{margin-left:auto;display:inline-flex;gap:6px}
.pb-bx{border:1px dashed #cfc9bd;background:#fff;border-radius:7px;padding:2px 8px;font:inherit;font-size:11px;font-weight:600;color:#6f6a62;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}
.pb-bx:hover{border-style:solid;border-color:#6d3fc4;color:#6d3fc4;background:#faf7ff}
.pb-tu-h .pb-bx{margin-left:6px}
.pb-dia-fer{background:repeating-linear-gradient(135deg,#faf9f5,#faf9f5 8px,#f3f0e9 8px,#f3f0e9 16px)}
.pb-dia-fer .pb-dia-t .pb-bx{margin-left:auto}
.pb-fer-m{font-size:12.5px;color:#6f6a62;padding:4px 2px 2px}
.pb-est.pb-fer{background:#efebe3;color:#4a463e}.pb-est.pb-extra{background:#f1ebfd;color:#6d3fc4}

/* Horas trabajadas: justificación de horas extra bajo la fila del trabajador */
.hh-tbl .tr2 .hh-jus{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:4px;padding:6px 10px;border-radius:8px;background:#fbf1e3;border:1px dashed #e8c98f;font-size:12px;color:#7a5518}
.hh-tbl .tr2 .hh-jus.ok{background:#eef4fb;border:1px solid #cfdff5;color:#1f4e86}
.hh-jus-t{flex:1;min-width:0;line-height:1.45}
.hh-jus-t i{font-style:normal;color:#8a847a;margin-left:4px}
.hh-jus-b{flex:none;padding:0 10px;min-height:26px;font-size:11.5px}

/* Producción › Centro de producción: panorama de líneas y simulador (estilo de Inicio, con movimiento) */
.ap .ini-tabs{grid-auto-columns:minmax(0,1fr)}
.ap-filtros{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.ap-filtros-n{margin-left:auto;font-size:12px}
.ap-chip{border:1px solid #d8d4cc;background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:12.5px;font-weight:600;color:#4a463e;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.ap-chip:hover{border-color:#3d7a4e;transform:translateY(-1px)}.ap-chip.on{background:#3d7a4e;border-color:#3d7a4e;color:#fff;box-shadow:0 4px 12px rgba(61,122,78,.25)}
.ap .ini-kpi-n small{font-size:.6em;color:#8a847a;font-weight:600}

/* Tarjeta de cada línea */
.ap-lineas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.ap-lin{border-radius:16px;padding:16px 18px;border-top:4px solid var(--c);transition:box-shadow .2s,transform .2s}
.ap-lin:hover{box-shadow:0 12px 28px rgba(42,39,34,.08)}
.ap-lin-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ap-lin-t{display:flex;flex-direction:column;min-width:0}
.ap-lin-t b{font-size:15px;color:#2a2722}.ap-lin-t small{font-size:11.5px;color:#8a847a}
.ap-dot{position:relative;width:11px;height:11px;border-radius:50%;background:#cfc9bd;flex:none}
.ap-dot.vivo{background:var(--c)}
.ap-dot.vivo::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--c);animation:ap-pulso 1.8s ease-out infinite}
@keyframes ap-pulso{0%{transform:scale(.5);opacity:.9}100%{transform:scale(1.6);opacity:0}}
.ap-ring{position:relative;margin-left:auto;display:grid;place-items:center;width:48px;height:48px;flex:none}
.ap-ring svg{position:absolute;inset:0}
.ap-ring circle{fill:none;stroke-width:5}
.ap-ring-v{stroke-linecap:round;stroke-dasharray:var(--c);stroke-dashoffset:var(--o);transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1)}
.ap-ring b{font-size:11.5px;color:#2a2722;font-variant-numeric:tabular-nums}
.ap-ring i{position:absolute;right:-4px;bottom:-2px;width:17px;height:17px;border-radius:50%;color:#fff;font-size:9.5px;font-style:normal;font-weight:800;display:grid;place-items:center;border:2px solid #fff}
.ap-lin-k{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px;margin-bottom:8px}
.ap-k-n{display:block;font-size:21px;font-weight:700;color:#2a2722;font-variant-numeric:tabular-nums;line-height:1.15}
.ap-k-n small{font-size:.62em;color:#8a847a}
.ap-k-l{font-size:11.5px;color:#8a847a}
.ap-meter{height:6px;border-radius:6px;background:color-mix(in srgb,var(--c,#3d7a4e) 16%,#fff);overflow:hidden;margin-top:6px}
.ap-meter span{display:block;height:100%;width:var(--w);background:var(--c,#3d7a4e);border-radius:6px;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.ap-meter.env{--c:#2a72b8}

/* Gráfico de columnas */
.ap-svg{width:100%;height:auto;display:block;overflow:visible}
.ap-grid{stroke:#ece8df;stroke-width:1}
.ap-base{stroke:#cfc9bd;stroke-width:1}
.ap-meta{stroke:#4a463e;stroke-width:2;stroke-linecap:round}
.ap-eje{font-size:10.5px;fill:#8a847a;font-family:inherit}
.ap-eje.hoy{fill:#2a2722;font-weight:700}
.ap-hit{cursor:pointer;outline:none}
.ap-banda{fill:transparent;transition:fill .15s}
.ap-hit:hover .ap-banda,.ap-hit:focus-visible .ap-banda{fill:rgba(42,39,34,.05)}
.ap-hit.sel .ap-banda{fill:color-mix(in srgb,var(--c) 12%,transparent)}
.ap-col{transition:filter .15s,opacity .15s}
.ap-col.bajo{opacity:.55}
.ap-hit:hover .ap-col,.ap-hit:focus-visible .ap-col,.ap-hit.sel .ap-col{filter:brightness(1.12) drop-shadow(0 3px 4px rgba(42,39,34,.18));opacity:1}
.ap-pie{display:flex;align-items:center;gap:10px;margin-top:6px}
.ap-ley{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:#6f6a62}
.ap-ley span{display:inline-flex;align-items:center;gap:6px}
.ap-ley i.col{width:10px;height:10px;border-radius:3px;background:var(--c)}.ap-ley i.col.claro{opacity:.55}
.ap-ley i.lin{width:14px;height:2px;background:#4a463e;border-radius:2px}
.ap-link{margin-left:auto;border:1px solid #e5e1d8;background:#fff;color:#4a463e;font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:5px 10px;border-radius:8px;white-space:nowrap;transition:border-color .15s,background .15s}
.ap-link:hover{border-color:var(--c);background:#faf9f5}
.ap-tabla{border:1px solid #efebe3;border-radius:10px;max-height:190px;overflow:auto}
.ap-tr{display:grid;grid-template-columns:1.2fr 1fr 1fr .6fr .6fr;gap:8px;padding:6px 10px;border-bottom:1px solid #f3f1ec;font-size:12px;color:#4a463e}
.ap-tr:last-child{border-bottom:0}.ap-tr span:not(:first-child){text-align:right}
.ap-th{position:sticky;top:0;background:#faf9f5;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#8a847a}
/* Detalle del día elegido */
.ap-det-box{margin-top:10px}
.ap-det{border:1px solid color-mix(in srgb,var(--c) 30%,#efebe3);background:color-mix(in srgb,var(--c) 5%,#fff);border-radius:12px;padding:8px 10px;animation:ap-abre .25s ease}
@keyframes ap-abre{from{opacity:0;transform:translateY(-6px) scale(.98)}}
.ap-det-h{display:flex;align-items:center;gap:8px;font-size:12.5px;margin-bottom:4px}
.ap-x{margin-left:auto;border:0;background:none;font-size:18px;line-height:1;color:#8a847a;cursor:pointer;width:26px;height:26px;border-radius:7px}
.ap-x:hover{background:#fff;color:#2a2722}
.ap-det-r{display:grid;grid-template-columns:80px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:5px 2px;border-top:1px solid rgba(42,39,34,.06);font-size:12px}
.ap-det-vacio{font-size:12px;color:#8a847a;text-align:center;padding:6px;border:1px dashed #e5e1d8;border-radius:10px}
.ap-pill{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:#f4f2ec;color:#6f6a62;white-space:nowrap}
.ap-pill.ok{background:#e8f3ea;color:#2f6d3c}.ap-pill.av{background:#fbf1e3;color:#8a6100}.ap-pill.mal{background:#fdecea;color:#b42318}

/* Tooltip */
.ap-tip{position:fixed;z-index:3000;background:#fff;border:1px solid #e5e1d8;border-radius:12px;box-shadow:0 14px 32px rgba(42,39,34,.16);padding:10px 12px;min-width:180px;pointer-events:none;font-size:12px;opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s,left .06s linear,top .06s linear}
.ap-tip.ver{opacity:1;transform:none}
.ap-tip-r{display:flex;align-items:center;gap:7px;padding:2px 0}
.ap-tip-r.h{padding-bottom:5px;margin-bottom:3px;border-bottom:1px solid #f0ede6}
.ap-tip-r i{width:12px;height:2px;border-radius:2px;flex:none}
.ap-tip-r b{color:#2a2722;font-variant-numeric:tabular-nums}.ap-tip-r span{color:#8a847a}

/* Pedidos y lotes */
.ap-ped{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:9px 6px;border-bottom:1px solid #f3f1ec;cursor:pointer;border-radius:10px;transition:background .12s,transform .12s}
.ap-ped:hover{background:#fbfcfa;transform:translateX(3px)}.ap-ped:last-child{border-bottom:0}
.ap-ped-h{display:flex;align-items:baseline;gap:8px;font-size:12.5px}.ap-ped-h span{color:#8a847a;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-ped-p{color:#2a2722}
.ap-lote{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 2px;border-bottom:1px solid #f3f1ec;font-size:12.5px}
.ap-lote:last-of-type{border-bottom:0}
.ap-lote-t{display:flex;flex-direction:column;gap:3px;min-width:0}.ap-lote-t small{color:#8a847a;font-size:11.5px}
.ap-lote-bar{position:relative;height:5px;border-radius:4px;background:#f0ede6}
.ap-lote-bar span{position:absolute;top:0;bottom:0;left:var(--l);width:var(--w);border-radius:4px;background:#2f8a4c}
.ap-lote-f{font-size:11.5px;text-align:right;line-height:1.35}
.ap-n{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#ebf3ec;color:#2f6d3c;font-size:11.5px;font-weight:700;flex:none}

/* Simulador */
.ap-sandbox{background:linear-gradient(135deg,#f5f1fd,#eef4fb);border:1px solid #ddd0f7;color:#4b2f8a;border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:12.5px;line-height:1.55;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ap-sandbox-i{font-size:22px;animation:ap-flota 3s ease-in-out infinite}
@keyframes ap-flota{50%{transform:translateY(-3px) rotate(-6deg)}}
.ap-sandbox>span:nth-child(2){flex:1;min-width:220px}
.ap-pars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.ap-par-l{border:1px solid #efebe3;border-top:3px solid var(--c);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s}
.ap-par-l:hover{box-shadow:0 8px 20px rgba(42,39,34,.07)}
.ap-par-h{display:flex;align-items:center;gap:7px;font-size:13.5px}
.ap-cap{margin-left:auto;font-size:11.5px;font-weight:700;color:#2a2722;background:color-mix(in srgb,var(--c) 12%,#fff);border-radius:999px;padding:2px 8px;white-space:nowrap}
.ap-sl{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:#6f6a62;font-weight:600}
.ap-sl-h{display:flex;justify-content:space-between;align-items:baseline}
.ap-sl-v{font-size:14px;color:#2a2722;font-variant-numeric:tabular-nums}
.ap-sl.cambio .ap-sl-v{color:#b5772a}
.ap-sl-antes{font-weight:400;color:#b5772a;font-size:11px;min-height:13px}
.ap-sl input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;background:color-mix(in srgb,var(--c) 18%,#fff);outline:none;margin:4px 0}
.ap-sl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 2px 6px rgba(42,39,34,.3);cursor:grab;transition:transform .12s}
.ap-sl input[type=range]:active::-webkit-slider-thumb{transform:scale(1.25);cursor:grabbing}
.ap-sl input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 2px 6px rgba(42,39,34,.3);cursor:grab}
.ap-sl input[type=range]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 30%,transparent)}
.ap-sub{font-size:12px;color:#6f6a62;display:flex;align-items:center;gap:6px;margin:4px 0 10px}
.ap-key{display:inline-block;width:12px;height:12px;border-radius:50%;background:#2f8a4c}
.ap-key.gris{background:#b9b3a8}.ap-key.fina{width:16px;height:4px;border-radius:2px}
/* Capacidad actual → simulada */
.ap-ps{position:relative;padding-top:18px}
.ap-ps-eje{position:relative;height:0;margin-left:120px;margin-right:150px}
.ap-ps-eje span{position:absolute;top:-16px;transform:translateX(-50%);font-size:10.5px;color:#8a847a;transition:left .5s cubic-bezier(.2,.8,.2,1)}
.ap-ps-f{display:grid;grid-template-columns:120px minmax(0,1fr) 150px;align-items:center;height:38px;border-radius:10px;outline:none;transition:background .15s}
.ap-ps-f:hover,.ap-ps-f:focus-visible{background:#faf9f5}
.ap-ps-l{font-size:12px;font-weight:600;color:#4a463e;text-align:right;padding-right:12px}
.ap-ps-t{position:relative;height:100%}
.ap-ps-cien{position:absolute;top:4px;bottom:4px;width:1px;background:#cfc9bd;transition:left .5s cubic-bezier(.2,.8,.2,1)}
.ap-ps-bar{position:absolute;top:50%;height:4px;margin-top:-2px;border-radius:4px;background:color-mix(in srgb,var(--c) 45%,#fff);transition:left .5s cubic-bezier(.2,.8,.2,1),width .5s cubic-bezier(.2,.8,.2,1)}
.ap-ps-a,.ap-ps-b{position:absolute;top:50%;border-radius:50%;transform:translate(-50%,-50%);border:2px solid #fff;transition:left .5s cubic-bezier(.2,.8,.2,1)}
.ap-ps-a{width:11px;height:11px;background:#b9b3a8}
.ap-ps-b{width:15px;height:15px;background:var(--c);box-shadow:0 2px 6px rgba(42,39,34,.25)}
.ap-ps-v{font-size:11.5px;color:#6f6a62;padding-left:12px;white-space:nowrap}
.ap-ps-v b{color:#2a2722}
.ap-ps-v i{font-style:normal;font-weight:700;margin-left:4px;color:#8a847a}.ap-ps-v i.up{color:#2f6d3c}.ap-ps-v i.down{color:#b42318}
/* Feriados de prueba */
.ap-fer{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.ap-fer-d{display:flex;flex-direction:column;align-items:center;gap:1px;border:1px solid #e5e1d8;background:#fff;border-radius:11px;padding:7px 2px;font:inherit;cursor:pointer;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}
.ap-fer-d small{font-size:10.5px;color:#8a847a}.ap-fer-d b{font-size:15px;color:#2a2722}
.ap-fer-d:hover:not(:disabled){transform:translateY(-2px);border-color:#3d7a4e;box-shadow:0 6px 14px rgba(42,39,34,.08)}
.ap-fer-d.on{background:repeating-linear-gradient(135deg,#fdecea,#fdecea 6px,#fbdcd8 6px,#fbdcd8 12px);border-color:#e6b8b2;animation:ap-pop .25s ease}
.ap-fer-d.on b{color:#b42318}
.ap-fer-d.real{background:repeating-linear-gradient(135deg,#faf9f5,#faf9f5 6px,#f0ece4 6px,#f0ece4 12px);cursor:default}
.ap-fer-d.no{opacity:.4;cursor:default}
@keyframes ap-pop{50%{transform:scale(1.12)}}
/* Barras de tiempo de los lotes */
.ap-gt{position:relative;padding-top:20px;margin-bottom:12px}
.ap-gt-eje{position:relative;height:0;margin-left:150px}
.ap-gt-eje span{position:absolute;top:-18px;font-size:10.5px;color:#8a847a;white-space:nowrap;padding-left:3px;border-left:1px solid #e5e1d8;transition:left .5s cubic-bezier(.2,.8,.2,1)}
.ap-gt-filas{display:flex;flex-direction:column;gap:2px}
.ap-gt-f{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;height:34px;border-radius:9px;outline:none;transition:background .15s,opacity .35s,transform .35s}
.ap-gt-f.nuevo{opacity:0;transform:translateX(-10px)}
.ap-gt-f:hover,.ap-gt-f:focus-visible{background:#faf9f5}
.ap-gt-l{display:flex;flex-direction:column;padding-right:10px;text-align:right;min-width:0}
.ap-gt-l b{font-size:12px;color:#2a2722}.ap-gt-l small{font-size:10.5px;color:#8a847a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-gt-t{position:relative;height:100%;background:repeating-linear-gradient(90deg,transparent,transparent 59px,#f3f1ec 59px,#f3f1ec 60px)}
.ap-gt-sim{position:absolute;top:7px;height:14px;border-radius:5px;background:linear-gradient(90deg,#2f8a4c,#3fa25e);box-shadow:0 2px 6px rgba(47,138,76,.28);transition:left .55s cubic-bezier(.2,.8,.2,1),width .55s cubic-bezier(.2,.8,.2,1);display:flex;align-items:center;overflow:hidden}
.ap-gt-sim em{font-style:normal;font-size:10px;font-weight:700;color:#fff;padding-left:6px;white-space:nowrap}
.ap-gt-real{position:absolute;top:25px;height:4px;border-radius:2px;background:#b9b3a8;transition:left .55s cubic-bezier(.2,.8,.2,1),width .55s cubic-bezier(.2,.8,.2,1),opacity .3s}
.ap-gt-f:hover .ap-gt-sim{filter:brightness(1.08)}
.ap-orden{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.ap-ord{display:flex;align-items:center;gap:8px;border:1px solid #efebe3;background:#fff;border-radius:11px;padding:7px 8px;font-size:12.5px;cursor:grab;transition:transform .15s,box-shadow .15s,border-color .15s,opacity .15s}
.ap-ord:hover{border-color:#cfd9c8;box-shadow:0 6px 14px rgba(42,39,34,.06)}
.ap-ord.arrastra{opacity:.45;transform:scale(.97)}
.ap-ord.sobre{border-color:#2f8a4c;box-shadow:0 0 0 2px rgba(47,138,76,.25);transform:translateY(-2px)}
.ap-grip{color:#c9c4b8;font-size:14px}
.ap-ord-t{display:flex;flex-direction:column;min-width:0}.ap-ord-t small{color:#8a847a;font-size:11px}
.ap-ord-b{margin-left:auto;display:flex;gap:3px}
.ap-ord-b button{border:1px solid #e5e1d8;background:#fff;border-radius:6px;width:24px;height:24px;font-size:10px;color:#6f6a62;cursor:pointer}
.ap-ord-b button:hover:not(:disabled){border-color:#3d7a4e;color:#2f6d3c}.ap-ord-b button:disabled{opacity:.35;cursor:default}
.ap-add{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:#6f6a62;border:1px dashed #cfc9bd;border-radius:11px;padding:7px 8px}
.ap-add select,.ap-asg-r select{border:1px solid #d8d4cc;border-radius:9px;padding:6px 8px;font:inherit;font-size:12.5px;background:#fff;min-width:0}
/* Asignación de lotes a pedidos */
.ap-asg{border:1px solid #efebe3;border-radius:12px;padding:10px 12px;margin-bottom:10px}
.ap-asg-h{display:flex;gap:8px;align-items:baseline;margin-bottom:6px}
.ap-asg-r{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,.9fr);gap:10px;align-items:center;padding:7px 0;border-top:1px solid #f3f1ec;transition:background .2s}
.ap-asg-r.ok{background:linear-gradient(90deg,rgba(47,109,60,.05),transparent)}
.ap-asg-p{display:flex;flex-direction:column;font-size:12.5px;min-width:0}.ap-asg-p small{color:#8a847a}
.ap-cob{display:flex;flex-direction:column;gap:4px}
.ap-cob-b{height:8px;border-radius:5px;overflow:hidden;background:#f3c9c4}
.ap-cob-b .ok{display:block;height:100%;width:var(--w);background:#2f6d3c;border-radius:5px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.ap-cob small{font-size:11.5px;font-weight:600}.ap-cob small.ok{color:#2f6d3c}.ap-cob small.mal{color:#b42318}
/* Cifras que giran al cambiar y festejo */
.ap-flip{display:inline-block}
.ap-flip.gira{animation:ap-gira .45s cubic-bezier(.2,.8,.2,1)}
@keyframes ap-gira{0%{transform:rotateX(90deg);opacity:0}100%{transform:none;opacity:1}}
.ap-confeti{position:fixed;z-index:3100;font-size:20px;pointer-events:none;animation:ap-confeti 1.1s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes ap-confeti{0%{transform:translate(-50%,0) scale(.4);opacity:0}20%{opacity:1}100%{transform:translate(calc(-50% + var(--dx)),-70px) scale(1.1) rotate(25deg);opacity:0}}

/* Entrada animada (solo al abrir; nunca con «reducir movimiento») */
.ap-anim .ap-lin{animation:ap-sube .45s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--k) * 70ms)}
.ap-anim .ap-col{transform-box:fill-box;transform-origin:bottom;animation:ap-crece .65s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(150ms + var(--i) * 28ms)}
.ap-anim .ap-meta{stroke-dasharray:60;stroke-dashoffset:60;animation:ap-traza .4s ease forwards;animation-delay:calc(400ms + var(--i) * 28ms)}
.ap-anim .ap-ring-v{animation:ap-anillo 1.1s cubic-bezier(.2,.8,.2,1) backwards .2s}
.ap-anim .ap-meter span{animation:ap-llena .9s cubic-bezier(.2,.8,.2,1) backwards .25s}
.ap-anim .ap-ped,.ap-anim .ap-lote{animation:ap-sube .4s ease backwards;animation-delay:calc(300ms + var(--k) * 45ms)}
.ap-anim .ap-ord{animation:ap-sube .35s ease backwards;animation-delay:calc(var(--n) * 30ms)}
@keyframes ap-sube{from{opacity:0;transform:translateY(10px)}}
@keyframes ap-crece{from{transform:scaleY(0)}}
@keyframes ap-traza{to{stroke-dashoffset:0}}
@keyframes ap-anillo{from{stroke-dashoffset:var(--c)}}
@keyframes ap-llena{from{width:0}}
@media (prefers-reduced-motion:reduce){
  .ap *,.ap *::after,.ap-tip,.ap-confeti{animation:none!important;transition:none!important}
  .ap-meta{stroke-dasharray:none;stroke-dashoffset:0}
}
@media (max-width:980px){.ap-lineas{grid-template-columns:1fr}.ap-pars{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){
  .ap-pars{grid-template-columns:1fr}.ap-asg-r{grid-template-columns:1fr}.ap-lin-k{grid-template-columns:1fr 1fr}.ap-filtros-n{margin-left:0}
  .ap-ps-f{grid-template-columns:80px minmax(0,1fr) 96px}.ap-ps-eje{margin-left:80px;margin-right:96px}.ap-ps-v{font-size:10.5px}
  .ap-gt-f{grid-template-columns:96px minmax(0,1fr)}.ap-gt-eje{margin-left:96px}
  .ap-fer{gap:4px}.ap-det-r{grid-template-columns:62px minmax(0,1fr) auto}.ap-det-r .ap-pill{grid-column:1/-1;justify-self:start}
}
/* Centro de producción · Estado de las líneas (disponible / en producción / comprometido) */
.ap-est-card .ini-card-h{margin-bottom:6px}
.ap-est-ley{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:#4a463e;margin-bottom:10px}
.ap-est-ley span{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.ap-est-ley i{width:12px;height:12px;border-radius:4px}
.ap-est-f{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px;padding:6px 0}
.ap-est-l{display:flex;align-items:center;gap:8px;min-width:0}
.ap-est-l b{font-size:13px;color:#2a2722}.ap-est-l small{margin-left:auto;font-size:11.5px;color:#8a847a;white-space:nowrap}
.ap-est-b{display:flex;gap:2px;height:30px;border-radius:9px;overflow:hidden;background:#f3f1ec}
.ap-est-f.vacia .ap-est-b{background:repeating-linear-gradient(135deg,#faf9f5,#faf9f5 6px,#f0ece4 6px,#f0ece4 12px)}
.ap-est-f.vacia .ap-est-s{opacity:0}
.ap-est-s{flex-basis:0;min-width:0;display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;position:relative;transition:flex-grow .7s cubic-bezier(.2,.8,.2,1),filter .15s,transform .15s}
.ap-est-s.cero{min-width:0}
.ap-est-s em{font-style:normal;font-size:11.5px;font-weight:700;color:#fff;white-space:nowrap;text-shadow:0 1px 1px rgba(0,0,0,.18)}
.ap-est-s:hover,.ap-est-s:focus-visible{filter:brightness(1.1);transform:scaleY(1.08)}
.ap-est-s.sel{filter:brightness(1.12);box-shadow:inset 0 0 0 2px rgba(255,255,255,.85)}
.ap-est-k{display:inline-block;width:10px;height:10px;border-radius:3px}
.ap-est-det{margin-top:8px}
.ap-est-tabla{margin-top:10px;border:1px solid #efebe3;border-radius:10px;overflow:auto}
.ap-tr.ap-tr4{grid-template-columns:1.2fr 1fr 1fr 1fr}
.ap-tr4 small{color:#8a847a}
.ap-det-tip{font-size:12px;color:#4b2f8a;background:#f5f1fd;border-radius:8px;padding:5px 9px;margin:4px 0 8px}
.ap-chips{display:flex;flex-wrap:wrap;gap:6px}
.ap-lchip{display:inline-flex;align-items:center;gap:6px;border:1px solid #e5e1d8;background:#fff;border-radius:999px;padding:4px 10px 4px 8px;font-size:12px;transition:transform .15s,box-shadow .15s,border-color .15s;animation:ap-sube .25s ease backwards}
.ap-lchip small{color:#8a847a;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-lchip i{font-style:normal;font-weight:700;color:#2a2722;background:#f4f2ec;border-radius:999px;padding:0 6px}
.ap-lchip[draggable]{cursor:grab}
.ap-lchip[draggable]:hover{transform:translateY(-2px);border-color:var(--c);box-shadow:0 6px 14px rgba(42,39,34,.1)}
.ap-lchip[draggable]::before{content:"⠿";color:#c9c4b8;font-size:12px}
.ap-lchip.arrastra{opacity:.5;transform:scale(.95)}
/* Mientras se arrastra un lote, los destinos se encienden */
body.ap-arrastrando #apOrden{outline:2px dashed #5a5bd0;outline-offset:4px;border-radius:12px}
body.ap-arrastrando .ap-asg-r{outline:1px dashed #d35a24;outline-offset:2px;border-radius:8px}
#apOrden.sobre{background:#f3f2fd;outline-style:solid}
.ap-asg-r.sobre{background:#fdf1ea;outline:2px solid #d35a24}
.ap-asg-r.soltado{animation:ap-pop .45s ease}
@media (max-width:600px){.ap-est-f{grid-template-columns:1fr;gap:4px}.ap-est-b{height:26px}}
/* Centro de producción · selector de líneas (una = detalle, dos = comparar) */
.ap-sel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;margin-bottom:16px;align-items:stretch}
.ap-sel-b{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;font:inherit;color:#4a463e;background:#fff;border:1px solid #e5e1d8;border-radius:16px;padding:12px 14px 12px 16px;cursor:pointer;overflow:hidden;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,border-color .2s,background .3s,color .3s,opacity .2s}
.ap-sel-b::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c);transition:width .3s cubic-bezier(.2,.8,.2,1)}
.ap-sel-b:hover{transform:translateY(-3px);box-shadow:0 12px 24px color-mix(in srgb,var(--c) 22%,transparent);border-color:var(--c)}
.ap-sel-b:not(.on){opacity:.62;filter:saturate(.6)}
.ap-sel-b:not(.on):hover{opacity:1;filter:none}
.ap-sel-b.on{border-color:color-mix(in srgb,var(--c) 45%,#e5e1d8)}
.ap-sel-b.foco{background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 70%,#000));color:#fff;border-color:transparent;box-shadow:0 14px 30px color-mix(in srgb,var(--c) 40%,transparent);transform:translateY(-2px)}
.ap-sel-b.foco::before{width:0}
.ap-sel-ck{position:absolute;right:10px;top:10px;width:22px;height:22px;border-radius:50%;border:2px solid #d8d4cc;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;transition:background .2s,border-color .2s,transform .25s cubic-bezier(.3,1.6,.5,1)}
.ap-sel-b.on .ap-sel-ck{background:var(--c);border-color:var(--c);transform:scale(1.05)}
.ap-sel-b.foco .ap-sel-ck{background:#fff;border-color:#fff;color:var(--c)}
.ap-sel-n{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#2a2722}
.ap-sel-b.foco .ap-sel-n{color:#fff}
.ap-sel-vivo{position:relative;width:8px;height:8px;border-radius:50%;background:var(--c)}
.ap-sel-b.foco .ap-sel-vivo{background:#fff}
.ap-sel-vivo::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid currentColor;color:var(--c);animation:ap-pulso 1.8s ease-out infinite}
.ap-sel-b.foco .ap-sel-vivo::after{color:#fff}
.ap-sel-v{font-size:12px;color:#6f6a62}.ap-sel-v b{font-size:18px;color:#2a2722;font-variant-numeric:tabular-nums}
.ap-sel-b.foco .ap-sel-v,.ap-sel-b.foco .ap-sel-v b{color:#fff}
.ap-sel-m{display:flex;flex-direction:column;gap:4px;width:100%}
.ap-sel-m small{font-size:11px;color:#8a847a}.ap-sel-b.foco .ap-sel-m small{color:rgba(255,255,255,.85)}
.ap-sel-bar{height:5px;border-radius:5px;background:color-mix(in srgb,var(--c) 15%,#fff);overflow:hidden}
.ap-sel-b.foco .ap-sel-bar{background:rgba(255,255,255,.25)}
.ap-sel-bar span{display:block;height:100%;width:var(--w);background:var(--c);border-radius:5px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.ap-sel-b.foco .ap-sel-bar span{background:#fff}
.ap-sel-x{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:120px}
.ap-sel-x small{font-size:11.5px;line-height:1.35}
/* Tema: con una línea elegida, la pantalla toma su color */
.ap.ap-uno .ini-tab.on{background:linear-gradient(135deg,var(--ac),color-mix(in srgb,var(--ac) 72%,#000));box-shadow:0 8px 20px color-mix(in srgb,var(--ac) 30%,transparent)}
.ap.ap-uno .ap-chip.on{background:var(--ac);border-color:var(--ac)}
.ap.ap-uno .ini-kpi::before{background:var(--ac)}.ap.ap-uno .ini-kpi .ini-kpi-n{color:var(--ac)}.ap.ap-uno .ini-kpi .ini-kpi-ico{color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,#fff)}
.ap-h1-l{color:var(--ac);transition:color .3s}
.ap-lineas.uno{grid-template-columns:1fr}
.ini-grid.ap-una-col{grid-template-columns:1fr}
.ap-pars.uno{grid-template-columns:1fr}.ap-pars.uno .ap-par-l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end}.ap-pars.uno .ap-par-h{grid-column:1/-1}
/* Vista de una línea: anillo grande con sus estados */
.ap-foco{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:center;border-radius:16px;padding:18px 20px;margin-bottom:16px;border-top:4px solid var(--c);background:linear-gradient(135deg,#fff 60%,color-mix(in srgb,var(--c) 7%,#fff))}
.ap-don{position:relative;width:180px;height:180px;margin:0 auto}
.ap-don svg{transform:rotate(-90deg)}
.ap-don-t{fill:none;stroke:#f0ede6;stroke-width:22}
.ap-don-a{fill:none;stroke-width:22;stroke-dasharray:var(--d) var(--g);stroke-dashoffset:var(--o);cursor:pointer;outline:none;transition:stroke-width .2s,filter .2s}
.ap-don-a:hover,.ap-don-a:focus-visible{stroke-width:28;filter:brightness(1.08)}
.ap-anim .ap-don-a{animation:ap-don .9s cubic-bezier(.2,.8,.2,1) backwards .15s}
@keyframes ap-don{from{stroke-dasharray:0 var(--g)}}
.ap-don-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.ap-don-c b{font-size:24px;color:#2a2722;font-variant-numeric:tabular-nums}.ap-don-c small{font-size:11.5px;color:#8a847a;max-width:110px}
.ap-foco-l{display:flex;flex-direction:column;gap:12px}
.ap-foco-e{border-left:4px solid var(--e);padding:4px 0 4px 12px}
.ap-foco-eh{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:6px}
.ap-foco-eh i{width:10px;height:10px;border-radius:3px;background:var(--e)}
.ap-foco-eh .mono{margin-left:auto;font-weight:700;color:#2a2722}
.ap-foco-eh em{font-style:normal;font-size:11.5px;font-weight:700;color:#fff;background:var(--e);border-radius:999px;padding:1px 8px}
.ap-anim .ap-foco{animation:ap-sube .45s cubic-bezier(.2,.8,.2,1) backwards}
.ap-anim .ap-sel-b{animation:ap-sube .4s cubic-bezier(.2,.8,.2,1) backwards}
.ap-anim .ap-sel-b:nth-child(2){animation-delay:50ms}.ap-anim .ap-sel-b:nth-child(3){animation-delay:100ms}.ap-anim .ap-sel-b:nth-child(4){animation-delay:150ms}
@media (max-width:980px){.ap-sel{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-sel-x{grid-column:1/-1;flex-direction:row;align-items:center}.ap-pars.uno .ap-par-l{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.ap-foco{grid-template-columns:1fr}.ap-sel-v b{font-size:16px}}
/* Centro de producción: tamaños más contenidos */
.ap-lin .ap-svg{max-height:200px}
.ap-lineas.uno .ap-svg{max-height:190px}
.ap-don,.ap-don svg{width:150px;height:150px}
.ap-foco{grid-template-columns:170px minmax(0,1fr);padding:14px 18px}
.ap-don-c b{font-size:20px}
.ap-sel-b{padding:10px 12px 10px 14px}
.ap-sel-v b{font-size:16px}

/* Asignar lotes: pedidos con barras + panel flotante de lotes */
.ap-asg-w{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;align-items:start}
.ap-asg-h .ap-asg-pc{margin-left:auto;font-weight:700;font-size:13px;color:#b42318}.ap-asg-h .ap-asg-pc.ok{color:#2f6d3c}
.ap-asg-tot{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.ap-asg-tot .ap-pb{height:12px}.ap-asg-tot small{font-size:11.5px;color:#6f695f}
.ap-pb{display:flex;height:9px;border-radius:5px;overflow:hidden;background:#f3c9c4}
.ap-pb>span{display:block;height:100%;width:var(--w);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.ap-pb-l{background:#2f6d3c}.ap-pb-c{background:#0a8f7f;background-image:repeating-linear-gradient(45deg,transparent 0 4px,rgba(255,255,255,.25) 4px 8px)}
.ap-pb-u{background:#d35a24}
.ap-cob small i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:3px}.ap-k-l{background:#2f6d3c}.ap-k-c{background:#0a8f7f}
.ap-cob small{color:#6f695f;font-weight:500}.ap-cob small b.ok{color:#2f6d3c}.ap-cob small b.mal{color:#b42318}
.ap-asg-r.armado{cursor:copy}.ap-asg-r.armado:hover{background:#eef7f5}
.ap-flot{position:sticky;top:72px;border:1px solid #e7e2d8;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(40,30,10,.10);padding:10px}
.ap-flot-h{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.ap-flot-h small{font-size:11.5px;color:#8a847a}
.ap-flot-l{display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 160px);overflow-y:auto}
.ap-flot-i{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid #efebe3;border-radius:10px;padding:7px 9px;background:#fbfaf7;font:inherit;cursor:grab}
.ap-flot-i .ap-pb{background:#d9efe9;height:6px}
.ap-flot-i.on{border-color:#0a8f7f;box-shadow:0 0 0 2px rgba(10,143,127,.25)}
.ap-flot-i.agot{opacity:.6}.ap-flot-i.sobre{border-color:#f3c9c4;background:#fdf3f2}
.ap-flot-t{display:flex;gap:6px;align-items:baseline;min-width:0}.ap-flot-t small{color:#8a847a;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-flot-k{font-size:11px;color:#6f695f}
@media (max-width:760px){.ap-asg-w{grid-template-columns:1fr}.ap-flot{position:static;order:-1}.ap-flot-l{flex-direction:row;overflow-x:auto;max-height:none}.ap-flot-i{min-width:180px}}
.ap-asg-lts{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:0}
.ap-asg-lt{display:inline-flex;gap:4px;align-items:center;border:1px solid #bfe3dc;background:#eef7f5;border-radius:8px;padding:2px 4px 2px 7px;font-size:12px}
.ap-asg-lt small{color:#0a6f63}.ap-asg-lt.cero{opacity:.55}
.ap-asg-lt button{border:0;background:none;color:#8a847a;cursor:pointer;padding:0 3px;font-size:11px}.ap-asg-lt button:hover{color:#b42318}
.ap-asg-lts select{flex:1 1 110px}
/* Color por materia de cada lote */
.ap-flot-g{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--m);text-transform:uppercase;letter-spacing:.03em;margin-top:4px}
.ap-flot-g i{width:9px;height:9px;border-radius:50%;background:var(--m)}
.ap-flot-i{border-left:4px solid var(--m)}.ap-flot-i .ap-flot-t small{color:var(--m);font-weight:600}
.ap-asg-lt{border-color:var(--m);background:color-mix(in srgb,var(--m) 10%,#fff)}.ap-asg-lt small{color:var(--m)}
.ap-asg-lt.mal{border:1.5px solid #b42318;background:#fdf3f2;color:#b42318}
.ap-asg-r.no-va{opacity:.4;cursor:not-allowed}.ap-asg-r.no-va:hover{background:none}
/* Panel de lotes: tarjetas para arrastrar */
.ap-flot{padding:0;overflow:hidden;border-radius:16px}
.ap-flot-h{flex-direction:row;align-items:center;gap:10px;margin:0;padding:12px 14px;background:linear-gradient(135deg,#f4f1ea,#fff)}
.ap-flot-h>span:last-child{display:flex;flex-direction:column}.ap-flot-hi{font-size:20px}
.ap-flot-ay{margin:0 10px 8px;padding:7px 10px;border-radius:10px;background:#f6f4ef;font-size:11.5px;color:#6f695f}
.ap-flot-ay.sel{background:#eef7f5;color:#0a6f63;animation:ap-pop .45s ease}
.ap-flot-f{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px 8px}
.ap-flot-f button{display:inline-flex;align-items:center;gap:4px;border:1px solid #e7e2d8;background:#fff;border-radius:999px;padding:3px 9px;font:inherit;font-size:11px;cursor:pointer;color:#4a453d}
.ap-flot-f button i{width:8px;height:8px;border-radius:50%;background:var(--m)}
.ap-flot-f button.on{background:var(--m,#3d3a33);border-color:var(--m,#3d3a33);color:#fff}.ap-flot-f button.on i{background:#fff}
.ap-flot-l{padding:0 10px 10px;gap:7px}
.ap-flot-i{flex-direction:row;align-items:stretch;gap:8px;padding:8px 10px 8px 6px;border:1px solid #ece7dd;border-left:5px solid var(--m);border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(40,30,10,.06);transition:transform .15s,box-shadow .15s,border-color .15s;user-select:none}
.ap-flot-i:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(40,30,10,.12)}
.ap-flot-i:active{cursor:grabbing}
.ap-flot-i.arrastra{opacity:.45;transform:scale(.97)}
.ap-flot-i.agot{cursor:default;background:#faf9f6}.ap-flot-i.agot:hover{transform:none;box-shadow:none}
.ap-flot-grip{display:flex;align-items:center;color:#c9c3b8;font-size:15px;line-height:1}.ap-flot-i:hover .ap-flot-grip{color:var(--m)}
.ap-flot-c{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.ap-flot-t{justify-content:space-between}.ap-flot-t b.mono{font-size:13px}
.ap-flot-kg{font-size:11px;color:#8a847a;white-space:nowrap}.ap-flot-kg b{font-size:15px;color:var(--m)}
.ap-flot-i .ap-pb{background:color-mix(in srgb,var(--m) 18%,#fff)}.ap-flot-i .ap-pb-u{background:color-mix(in srgb,var(--m) 55%,#8a847a)}
/* Destinos mientras se arrastra */
body.ap-arrastrando .ap-asg-r.va{outline:2px dashed #0a8f7f;background:#f2faf8}
body.ap-arrastrando .ap-asg-r.no-va{outline:none;opacity:.35}
.ap-asg-r{position:relative}
.ap-asg-r.sobre.va{outline:2px solid #0a8f7f;background:#e3f4f0}
.ap-asg-r.sobre::after{content:'Suelta aquí';position:absolute;right:10px;top:-10px;background:#0a8f7f;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}
.ap-asg-r.sobre.no-va::after{content:'No coincide';background:#b42318}
.ap-lote-ayuda{margin:0 0 6px;font-size:11.5px}
.ap-lote-eje{padding-top:0;padding-bottom:0;border:0;min-height:0}
.ap-lote-ej{display:flex;justify-content:space-between;font-size:10.5px;color:#8a847a}
.ap-lote-bar{height:8px}
.ap-lote-bar [data-aplbar]{cursor:help;transition:filter .15s,transform .15s}
.ap-lote-bar [data-aplbar]:hover{filter:brightness(1.15);transform:scaleY(1.5)}
/* Próximos lotes: proyectado (claro) y ya beneficiado (real) */
.ap-lote-bar span[data-aplbar]{background:#a9d3b6;overflow:hidden}
.ap-lote-bar span[data-aplbar] i{position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);background:#5a5bd0;border-radius:4px 0 0 4px}
.ap-lote-bar span[data-aplbar].curso{box-shadow:0 0 0 1.5px #5a5bd0}
.ap-lote-ley{display:inline-flex;align-items:center;gap:4px;margin-left:6px}.ap-lote-ley i{width:14px;height:7px;border-radius:3px;background:#a9d3b6}.ap-lote-ley i.real{background:#5a5bd0}
.ap-lote-en{font-family:inherit;font-size:10.5px;font-weight:700;color:#5a5bd0;margin-left:6px}
/* Botón del recorrido guiado de Almacén */
.sy-guia{margin-right:6px}
/* Respaldos (estilo Inicio): cifras, acciones grandes, zona para soltar el .sql y lista */
.bk-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.bk-kpis .ini-kpi{cursor:default}
.bk-kpi-n{--k:#3d7a4e;--kb:#ebf3ec}.bk-kpi-ult{--k:#2a6f97;--kb:#e8f1f7}.bk-kpi-tam{--k:#8a6d3b;--kb:#f5efe3}
.bk-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.bk-acc{display:flex;flex-direction:column;gap:10px}
.bk-grande{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;text-decoration:none;color:#fff;background:#3d7a4e;border:0;border-radius:12px;padding:12px 14px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s}
.bk-grande span{display:flex;flex-direction:column}.bk-grande b{font-size:14px;font-weight:650}.bk-grande small{font-size:12px;opacity:.85}
.bk-grande.sec{background:#e8f1f7;color:#2a6f97}
.bk-grande:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(42,39,34,.1)}
.bk-grande.cargando,.bk-drop.cargando{opacity:.6;pointer-events:none}
.bk-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;min-height:118px;padding:16px;border:2px dashed #d5d0c4;border-radius:12px;color:#6f6a62;cursor:pointer;transition:border-color .15s,background .15s}
.bk-drop svg{color:#2a6f97;margin-bottom:2px}.bk-drop b{font-size:13.5px;color:#2a2722;font-weight:600}.bk-drop small{font-size:12px}
.bk-drop:hover,.bk-drop.sobre{border-color:#2a6f97;background:#f3f8fb}
.bk-msg{font-size:12.5px;margin-top:8px}
.bk-cuenta{font-size:12px;color:#8a847a}
.bk-fila{display:flex;align-items:center;gap:12px;padding:10px 4px;border-top:1px solid #efece5;animation:bk-entra .25s ease both}
.bk-fila:first-of-type{border-top:0}
.bk-fila:hover{background:#faf9f6}
@keyframes bk-entra{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.bk-fila-ico{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#ebf3ec;color:#3d7a4e}
.bk-fila-ico.sub{background:#e8f1f7;color:#2a6f97}
.bk-fila-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.bk-fila-tx b{font-size:13px;font-weight:600;color:#2a2722;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-fila-tx span{font-size:12px;color:#8a847a}
.bk-tag{font-style:normal;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#e8f1f7;color:#2a6f97;margin-left:4px}
.bk-tag.nuevo{background:#ebf3ec;color:#3d7a4e}
.bk-fila-acc{flex:none;display:flex;gap:6px}
.bk-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;font-weight:600;text-decoration:none;color:#4a463e;background:#fff;border:1px solid #e5e1d8;border-radius:9px;padding:6px 10px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.bk-btn:hover{border-color:#2a6f97;color:#2a6f97}
.bk-btn.rest:hover{border-color:#c0562e;color:#c0562e;background:#fbeee8}
.bk-btn.del{padding:6px 8px;color:#a39d92}.bk-btn.del:hover{border-color:#c44;color:#c44;background:#fdeeee}
@media (max-width:820px){.bk-grid{grid-template-columns:1fr}}
@media (max-width:640px){.bk-kpis{grid-template-columns:1fr}.bk-fila{flex-wrap:wrap}.bk-fila-acc{width:100%;justify-content:flex-end}.bk-btn span{display:none}}
@media (prefers-reduced-motion:reduce){.bk-fila{animation:none}.bk-grande:hover{transform:none}}
/* Inicio · Mi cuenta: tarjeta de perfil con foto, chips de roles/líneas y tarjetas de correo y seguridad */
.ini-cuenta{border-radius:14px;overflow:hidden;transition:box-shadow .15s ease}
.ini-cuenta:hover{box-shadow:0 6px 16px rgba(42,39,34,.06)}
.ini-cuenta summary{display:flex;align-items:center;gap:12px;list-style:none;padding:12px 16px}
.ini-cuenta summary::-webkit-details-marker{display:none}
.mc-sum-tx{flex:1;display:flex;flex-direction:column;min-width:0}.mc-sum-tx b{font-size:14px;color:#2a2722}.mc-sum-tx small{font-size:12px;font-weight:400;color:#8a847a}
.mc-sum-ch{color:#8a847a;transition:transform .2s ease}.ini-cuenta[open] .mc-sum-ch{transform:rotate(180deg)}
.mc-av{display:block;border-radius:50%;object-fit:cover;flex:none}
.mc-av-ini{display:grid;place-items:center;background:linear-gradient(135deg,#3d7a4e,#2a6f97);color:#fff;font-weight:700}
.mc{padding:0 0 18px}
.mc-perfil{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:center;padding:28px 22px 18px;background:linear-gradient(180deg,#eef5ef 0,#eef5ef 64px,#fff 64px)}
.mc-av-w{position:relative;grid-row:span 2;align-self:start}
.mc-av-w .mc-av{box-shadow:0 0 0 4px #fff,0 6px 16px rgba(42,39,34,.12)}
#mcAvGrande.cargando{opacity:.5}
.mc-cam{position:absolute;right:-2px;bottom:-2px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#3d7a4e;color:#fff;border:3px solid #fff;cursor:pointer;transition:transform .15s ease}
.mc-cam:hover{transform:scale(1.1)}
.mc-id{padding-top:26px;min-width:0}.mc-id h2{margin:0;font-size:20px;font-weight:650;color:#2a2722}
.mc-foto-acc{display:flex;gap:12px;margin-top:4px}.mc-foto-acc label{cursor:pointer}
.mc-chips{grid-column:2;display:flex;flex-direction:column;gap:6px;margin-top:6px}
.mc-chips>div{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.mc-et{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a847a;min-width:52px}
.mc-chip{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:#ebf3ec;color:#3d7a4e}
.mc-chip.ln{background:#f5efe3;color:#8a6d3b}
.mc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:0 18px}
.mc-grid .ini-card-h{align-items:center;margin-bottom:12px}
.mc-grid .ini-card h2{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}
.mc-pw{position:relative}.mc-pw input{padding-right:38px}
.mc-ojo{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:28px;height:28px;border:0;background:none;color:#a39d92;cursor:pointer;border-radius:7px}
.mc-ojo:hover,.mc-ojo.on{color:#3d7a4e;background:#f1f5ee}
.mc-fuerza{display:flex;align-items:center;gap:4px;margin-top:6px}
.mc-fuerza i{flex:1;height:4px;border-radius:2px;background:#ece8e0;transition:background .2s}
.mc-fuerza span{font-size:11.5px;font-weight:600;min-width:62px;text-align:right;color:#8a847a}
.mc-fuerza[data-n="1"] i:nth-child(-n+1){background:#c44}.mc-fuerza[data-n="1"] span{color:#c44}
.mc-fuerza[data-n="2"] i:nth-child(-n+2){background:#d08a2c}.mc-fuerza[data-n="2"] span{color:#d08a2c}
.mc-fuerza[data-n="3"] i:nth-child(-n+3){background:#6a9b4f}.mc-fuerza[data-n="3"] span{color:#6a9b4f}
.mc-fuerza[data-n="4"] i{background:#3d7a4e}.mc-fuerza[data-n="4"] span{color:#3d7a4e}
.side .foot-u{display:flex;align-items:center;gap:10px}.side .foot-u .mc-av-ini{font-size:12px}
@media (max-width:820px){.mc-grid{grid-template-columns:1fr}}
@media (max-width:560px){.mc-perfil{grid-template-columns:1fr;justify-items:center;text-align:center}.mc-av-w{grid-row:auto}.mc-id{padding-top:0}.mc-foto-acc{justify-content:center}.mc-chips{grid-column:1}.mc-chips>div{justify-content:center}}
@media (prefers-reduced-motion:reduce){.mc-sum-ch,.mc-cam{transition:none}}
/* Menú del usuario en la barra superior (foto + nombre; Mi cuenta, Actuar como, Cerrar sesión) */
.sy-um{position:relative;align-self:center}
.sy-um-btn{display:flex;align-items:center;gap:9px;height:40px;padding:0 10px 0 5px;border:1px solid #d8d4cc;border-radius:999px;background:#fff;color:#4a463e;font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.sy-um-btn:hover,.sy-um-btn[aria-expanded="true"]{border-color:#3d7a4e;box-shadow:0 4px 12px rgba(42,39,34,.08)}
.sy-um-btn svg{transition:transform .2s}.sy-um-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.sy-um-av{display:flex}
.sy-um-tx{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;max-width:150px}
.sy-um-tx b{font-size:13px;color:#2a2722}.sy-um-tx small{font-size:11px;color:#8a847a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.sy-um-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:290px;background:#fff;border:1px solid #e5e1d8;border-radius:14px;box-shadow:0 12px 32px rgba(42,39,34,.16);overflow:hidden;animation:sy-um-in .15s ease}
@keyframes sy-um-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.sy-um-h{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(180deg,#eef5ef,#fff)}
.sy-um-h div{display:flex;flex-direction:column;min-width:0}.sy-um-h b{font-size:14px;color:#2a2722}.sy-um-h small{font-size:12px;color:#8a847a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sy-um-sec{padding:10px 16px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a847a;border-top:1px solid #efece5}
.sy-um-roles{max-height:240px;overflow-y:auto;padding:0 8px 8px}
.sy-um-rol{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:8px;background:none;font:inherit;font-size:13px;color:#4a463e;text-align:left;cursor:pointer}
.sy-um-rol:hover{background:#f5f3ee}
.sy-um-rol i{width:14px;height:14px;border-radius:50%;border:2px solid #cfc9bd;flex:none}
.sy-um-rol.on{color:#2a2722;font-weight:600}.sy-um-rol.on i{border-color:#3d7a4e;background:radial-gradient(circle,#3d7a4e 45%,#fff 50%)}
.sy-um-pie{border-top:1px solid #efece5;padding:6px 8px}
.sy-um-it{display:block;width:100%;padding:8px;border:0;border-radius:8px;background:none;font:inherit;font-size:13px;color:#4a463e;text-align:left;cursor:pointer}
.sy-um-it:hover{background:#f5f3ee}.sy-um-it.sal{color:#b4442c}.sy-um-it.sal:hover{background:#fdeeea}
@media (max-width:600px){.sy-um-tx{display:none}.sy-um-panel{position:fixed;top:64px;left:10px;right:10px;width:auto}}
@media (prefers-reduced-motion:reduce){.sy-um-panel{animation:none}}
/* Mi perfil (página propia) y Personal › Usuarios del sistema */

.pf-form{padding:4px 18px 18px}
.pf-cab{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.pf-cab>div:first-child{display:flex;flex-direction:column;gap:2px}.pf-cab b{font-size:15px;color:#2a2722}
.pf-barra{flex:0 0 160px;height:8px;border-radius:999px;background:#ece8e0;overflow:hidden}
.pf-barra i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6a9b4f,#3d7a4e);transition:width .4s ease}
.pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.pf-sec .ini-card-h{align-items:center;margin-bottom:12px}
.pf-sec h2{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}
.pf-campos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pf-campos .fld{margin:0;min-width:0}.pf-campos .pf-ancho{grid-column:1/-1}
.pf-campos input,.pf-campos select{width:100%;box-sizing:border-box}
.pf-edad{font-weight:400;color:#8a847a}
.pf-pie{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #efece5}
.pf-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.pf-tools input{flex:1;min-width:220px;padding:9px 12px;border:1px solid #d8d4cc;border-radius:9px;font:inherit;font-size:13.5px}
.pf-lista{padding:6px}
.pf-fila{display:grid;grid-template-columns:36px minmax(0,1.6fr) minmax(0,.8fr) minmax(0,.8fr) 130px;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;font:inherit;text-align:left;cursor:pointer;transition:background .15s}
.pf-fila:hover{background:#f7f5f0}.pf-fila.on{background:#eef5ef;box-shadow:inset 3px 0 0 #3d7a4e}
.pf-fila.inact{opacity:.55}
.pf-fila-tx{display:flex;flex-direction:column;min-width:0}.pf-fila-tx b{font-size:13.5px;color:#2a2722}
.pf-fila-tx small{font-size:12px;color:#8a847a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-fila-d{display:flex;flex-direction:column;font-size:13px;color:#4a463e;min-width:0}.pf-fila-d small{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#a39d92}
.pf-fila-p{display:flex;align-items:center;gap:8px}.pf-fila-p .pf-barra{flex:1;height:6px}.pf-fila-p small{font-size:12px;font-weight:600;color:#4a463e;min-width:34px;text-align:right}
.pf-ficha{margin-top:16px;border-top:4px solid #3d7a4e;scroll-margin-top:80px}
@media (max-width:1100px){.pf-grid{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.pf-grid{grid-template-columns:1fr}.pf-fila{grid-template-columns:36px minmax(0,1fr) 90px}.pf-fila-d{display:none}}
@media (max-width:480px){.pf-campos{grid-template-columns:1fr}.pf-cab{flex-direction:column;align-items:stretch}.pf-barra{flex-basis:auto}}
/* Mi perfil v2: portada animada, anillo de avance, pestañas con indicador, mosaicos y edición por tarjeta */
.pf{max-width:1180px}
.pf-hero{position:relative;background:#fff;border:1px solid #e5e1d8;border-radius:18px;overflow:hidden;margin-bottom:16px;animation:pf-sube .45s ease both}
.pf-cover{position:relative;height:120px;background:linear-gradient(120deg,#2f6d3c,#3d7a4e 40%,#2a6f97);background-size:200% 200%;animation:pf-grad 14s ease infinite;overflow:hidden}
.pf-cover i{position:absolute;border-radius:50%;background:rgba(255,255,255,.09);animation:pf-flota 9s ease-in-out infinite}
.pf-cover i:nth-child(1){width:220px;height:220px;right:-40px;top:-90px}
.pf-cover i:nth-child(2){width:120px;height:120px;right:220px;top:40px;animation-delay:-3s}
.pf-cover i:nth-child(3){width:70px;height:70px;left:38%;top:-20px;animation-delay:-6s}
@keyframes pf-grad{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes pf-flota{0%,100%{transform:translate(0,0)}50%{transform:translate(-14px,10px)}}
@keyframes pf-sube{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pf-hero-in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:end;padding:0 24px 20px;margin-top:-56px;position:relative}
.pf-av-w{position:relative;width:120px;height:120px;display:grid;place-items:center}
.pf-av-w .mc-av{box-shadow:0 0 0 4px #fff;transition:transform .3s ease}
.pf-av-w:hover .mc-av{transform:scale(1.04)}
#mcAvGrande{display:grid;place-items:center;border-radius:50%;background:#fff}
#mcAvGrande.cargando{opacity:.5;animation:pf-late 1s ease infinite}
@keyframes pf-late{50%{opacity:.25}}
.pf-anillo{position:absolute;inset:0;transform:rotate(-90deg)}
.pf-anillo circle{fill:none;stroke:#e8efe9;stroke-width:5}
.pf-anillo .pf-anillo-v{stroke:#6fbf73;stroke-linecap:round;transition:stroke-dasharray 1.2s cubic-bezier(.2,.8,.2,1)}
.pf-cam{right:6px;bottom:6px;width:34px;height:34px}
.pf-id{padding-bottom:4px;min-width:0}
.pf-id h1{margin:0 0 4px;font-size:26px;font-weight:700;color:#2a2722;letter-spacing:-.01em}
.pf-mail{display:flex;align-items:center;gap:6px;font-size:13px;color:#6f6a62;margin-bottom:8px}
.pf-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
.pf-chips .mc-chip{animation:pf-pop .35s ease both;transition:transform .15s}
.pf-chips .mc-chip:hover{transform:translateY(-2px)}
@keyframes pf-pop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}
.pf-avance{min-width:210px;max-width:260px;padding:14px 16px;border-radius:14px;background:#f6faf6;border:1px solid #e1ece2}
.pf-pct{display:flex;align-items:baseline;gap:2px;color:#3d7a4e}.pf-pct b{font-size:34px;line-height:1;font-weight:800;font-variant-numeric:tabular-nums}.pf-pct span{font-size:16px;font-weight:700}
.pf-pct-l{font-size:12.5px;font-weight:600;color:#4a463e;margin-bottom:6px}
.pf-falta{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.pf-falta small{width:100%;font-size:11.5px;color:#8a847a}
.pf-falta-b{font:inherit;font-size:11.5px;font-weight:600;color:#c0562e;background:#fff;border:1px dashed #e0a58c;border-radius:999px;padding:2px 9px;cursor:pointer;transition:all .15s}
.pf-falta-b:hover{background:#c0562e;color:#fff;border-style:solid;transform:translateY(-1px)}
.pf-falta-m{font-size:11.5px;color:#8a847a}
.pf-tabs{position:relative;display:flex;gap:4px;background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:5px;margin-bottom:16px;width:max-content;max-width:100%;overflow-x:auto}
.pf-tab{position:relative;z-index:1;display:flex;align-items:center;gap:8px;padding:9px 16px;border:0;border-radius:10px;background:none;font:inherit;font-size:13.5px;font-weight:600;color:#6f6a62;cursor:pointer;white-space:nowrap;transition:color .25s}
.pf-tab:hover{color:#2a2722}.pf-tab.on{color:#fff}
.pf-tabs-ind{position:absolute;left:0;top:5px;bottom:5px;border-radius:10px;background:#3d7a4e;box-shadow:0 4px 12px rgba(61,122,78,.3);transition:transform .35s cubic-bezier(.3,1.3,.5,1),width .35s ease}
.pf-entra{animation:pf-fade .3s ease both}
@keyframes pf-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pf-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.pf-card{--c:#3d7a4e;--cb:#ebf3ec;position:relative;background:#fff;border:1px solid #e5e1d8;border-radius:16px;padding:18px;animation:pf-sube .4s ease both;transition:box-shadow .2s,border-color .2s,transform .2s}
.pf-card:hover{box-shadow:0 10px 26px rgba(42,39,34,.08);border-color:color-mix(in srgb,var(--c) 35%,#e5e1d8)}
.pf-verde{--c:#3d7a4e;--cb:#ebf3ec}.pf-azul{--c:#2a6f97;--cb:#e8f1f7}.pf-rosa{--c:#b9465f;--cb:#fbecef}.pf-ambar{--c:#b9772a;--cb:#fbf1e3}
.pf-card-h{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.pf-card-h>div{flex:1;min-width:0}.pf-card-h h2{margin:0;font-size:15px;font-weight:700;color:#2a2722}.pf-card-h small{font-size:12px;color:#8a847a}
.pf-card-ico{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--cb);color:var(--c);transition:transform .3s}
.pf-card:hover .pf-card-ico{transform:rotate(-8deg) scale(1.08)}
.pf-lapiz{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid #e5e1d8;background:#fff;color:#8a847a;cursor:pointer;opacity:.6;transition:all .2s}
.pf-card:hover .pf-lapiz{opacity:1}.pf-lapiz:hover{background:var(--c);color:#fff;border-color:var(--c);transform:rotate(-12deg)}
.pf-mini{height:4px;border-radius:999px;background:#f0ede6;margin-bottom:14px;overflow:hidden}
.pf-mini i{display:block;height:100%;border-radius:inherit;background:var(--c);transition:width .6s ease}
.pf-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pf-tile{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;border:1px solid #efece5;border-radius:12px;background:#fcfbf8;font:inherit;text-align:left;cursor:pointer;animation:pf-sube .35s ease both;transition:transform .18s ease,box-shadow .18s,border-color .18s,background .18s}
.pf-tile:hover{transform:translateY(-3px);background:#fff;border-color:var(--c);box-shadow:0 8px 18px rgba(42,39,34,.08)}
.pf-tile:active{transform:translateY(-1px) scale(.98)}
.pf-tile-ico{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--cb);color:var(--c);transition:transform .25s}
.pf-tile:hover .pf-tile-ico{transform:scale(1.12)}
.pf-tile-tx{display:flex;flex-direction:column;min-width:0}
.pf-tile-tx small{font-size:11px;color:#8a847a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-tile-tx b{font-size:13.5px;font-weight:600;color:#2a2722;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-tile.vacio{border-style:dashed;background:#fff}.pf-tile.vacio .pf-tile-ico{background:#f3f1ec;color:#b3ada2}
.pf-tile.vacio b{color:var(--c);font-weight:600;font-size:12.5px}
.pf-tile.vacio:hover .pf-tile-ico{background:var(--cb);color:var(--c)}
.pf-ancho{grid-column:1/-1}
.pf-flip{animation:pf-flip .35s ease both}
@keyframes pf-flip{from{opacity:0;transform:perspective(800px) rotateX(-8deg) translateY(-4px)}to{opacity:1;transform:none}}
.pf-card.editando{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 15%,transparent),0 10px 26px rgba(42,39,34,.08)}
.pf-card.pf-ok::after{content:"\2713";position:absolute;top:14px;right:14px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--c);color:#fff;font-weight:800;animation:pf-ok 1.6s ease forwards}
@keyframes pf-ok{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1.15)}35%{transform:scale(1)}80%{opacity:1}100%{opacity:0}}
.pf-edit .pf-campos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pf-in{display:flex;align-items:center;gap:10px;min-width:0;padding:6px 10px;border:1.5px solid #e5e1d8;border-radius:12px;background:#fff;cursor:text;transition:border-color .15s,box-shadow .15s}
.pf-in:focus-within{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 14%,transparent)}
.pf-in-ico{flex:none;color:#b3ada2;transition:color .15s}.pf-in:focus-within .pf-in-ico{color:var(--c)}
.pf-in-tx{display:flex;flex-direction:column;flex:1;min-width:0}
.pf-in-tx small{font-size:11px;color:#8a847a}.pf-in:focus-within small{color:var(--c);font-weight:600}
.pf-in input,.pf-in select{width:100%;border:0;outline:0;padding:2px 0;font:inherit;font-size:13.5px;color:#2a2722;background:transparent;box-sizing:border-box}
.pf-edit-pie{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.pf-guardar{background:var(--c)!important;transition:transform .15s,box-shadow .15s}.pf-guardar:hover{transform:translateY(-1px);box-shadow:0 6px 14px color-mix(in srgb,var(--c) 35%,transparent)}
.pf-guardar.cargando{opacity:.6}
.pf-upd{margin-top:14px;font-size:12px;color:#8a847a;text-align:center}
.pf-solo{max-width:640px}
.pf-seg{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start;max-width:960px}
.pf-seg .mc-fuerza{margin:0 2px}
.pf-tips ul{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.pf-tips li{display:flex;align-items:center;gap:10px;font-size:13px;color:#8a847a;transition:color .2s}
.pf-tips li span{display:grid;color:#cfc9bd;transition:color .2s,transform .3s}
.pf-tips li.ok{color:#2a2722}.pf-tips li.ok span{color:#3d7a4e;transform:scale(1.15)}
@media (max-width:1000px){.pf-cards{grid-template-columns:1fr 1fr}.pf-hero-in{grid-template-columns:auto minmax(0,1fr)}.pf-avance{grid-column:1/-1;max-width:none}}
@media (max-width:720px){.pf-cards,.pf-seg{grid-template-columns:1fr}}
@media (max-width:560px){.pf-hero-in{grid-template-columns:1fr;justify-items:center;text-align:center}.pf-mail,.pf-chips,.pf-id .mc-foto-acc{justify-content:center}.pf-tiles,.pf-edit .pf-campos{grid-template-columns:1fr}.pf-tabs{width:100%}.pf-tab span{display:none}.pf-tab{flex:1;justify-content:center}}
@media (prefers-reduced-motion:reduce){.pf-cover,.pf-cover i,.pf-hero,.pf-card,.pf-tile,.pf-entra,.pf-flip,.pf-chips .mc-chip{animation:none}.pf-tile:hover,.pf-card:hover{transform:none}}
/* Inicio · anuncio de Mi perfil (foto + perfil completo) */
.ini-pfav{position:relative;display:flex;align-items:center;gap:14px;width:100%;margin-bottom:16px;padding:12px 16px;border:1px solid #cfe2d3;border-radius:14px;background:linear-gradient(110deg,#eef6f0,#e9f2f8);font:inherit;text-align:left;color:#2a2722;cursor:pointer;overflow:hidden;animation:pf-sube .4s ease both;transition:transform .18s ease,box-shadow .18s,border-color .18s}
.ini-pfav::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);animation:ini-pfav-brillo 5s ease-in-out 1s infinite}
@keyframes ini-pfav-brillo{0%,70%{left:-40%}100%{left:130%}}
.ini-pfav:hover{transform:translateY(-2px);border-color:#3d7a4e;box-shadow:0 10px 22px rgba(42,39,34,.09)}
.ini-pfav-av{position:relative;flex:none}
.ini-pfav-av .mc-av{box-shadow:0 0 0 3px #fff}
.ini-pfav-cam{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#3d7a4e;color:#fff;border:2px solid #fff;transition:transform .2s}
.ini-pfav:hover .ini-pfav-cam{transform:scale(1.15) rotate(-10deg)}
.ini-pfav-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ini-pfav-tx b{font-size:14.5px}
.ini-pfav-tx small{font-size:12.5px;color:#5f5a52}
.ini-pfav-new{align-self:flex-start;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:#c0562e;border-radius:999px;padding:1px 8px;margin-bottom:2px}
.ini-pfav-pct{flex:0 0 110px;display:flex;flex-direction:column;gap:4px}
.ini-pfav-pct b{font-size:13px;color:#3d7a4e}.ini-pfav-pct .pf-barra{flex:none;width:100%;height:6px;background:#fff}
.ini-pfav-ir{flex:none;display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;background:#3d7a4e;color:#fff;font-size:13px;font-weight:600;white-space:nowrap}
.ini-pfav-ir svg{transition:transform .2s}.ini-pfav:hover .ini-pfav-ir svg{transform:translateX(3px)}
@media (max-width:760px){.ini-pfav{flex-wrap:wrap}.ini-pfav-pct{flex:1 1 auto}.ini-pfav-tx{flex-basis:calc(100% - 60px)}}
@media (prefers-reduced-motion:reduce){.ini-pfav,.ini-pfav::after{animation:none}}
/* Mi perfil v3: más secciones (violeta), listas repetibles, documentos y ficha de RR.HH. */
.pf-violeta{--c:#6b4fa0;--cb:#f0ebf8}
.pf-rrhh{display:inline-block;vertical-align:middle;font-size:10px;font-weight:700;letter-spacing:.05em;padding:1px 7px;border-radius:999px;background:#f0ede6;color:#8a847a;margin-left:4px}
.pf-tile.ro{cursor:default}.pf-tile.ro:hover{transform:none;box-shadow:none;border-color:#efece5}
.pf-tile.ro.vacio b{color:#a39d92;font-weight:500}
.pf-tile.alerta{border-color:#e7a08a;background:#fdf1ec}.pf-tile.alerta b{color:#b4442c}
.pf-in small em{font-style:normal;color:#b3ada2;font-weight:400}
.pf-lista{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.pf-card-lista .pf-lista{margin-top:0}
.pf-lista-t{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a847a;margin:4px 0 2px}
.pf-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid #efece5;border-radius:12px;background:#fcfbf8;animation:pf-sube .35s ease both;transition:transform .18s,border-color .18s,background .18s}
.pf-item:hover{transform:translateX(3px);border-color:var(--c);background:#fff}
.pf-lista-ed{margin-top:10px}
.pf-fila-ed{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 38px 10px 10px;margin-bottom:8px;border:1px dashed #d8d4cc;border-radius:12px;background:#fcfbf8;animation:pf-sube .25s ease both;transition:opacity .2s,transform .2s}
.pf-fila-ed.sale{opacity:0;transform:scale(.96)}
.pf-fila-ed .pf-in{padding:4px 8px}
.pf-fila-x{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:7px;background:#fff;color:#a39d92;cursor:pointer;transition:all .15s}
.pf-fila-x:hover{background:#fdeeee;color:#c44;transform:rotate(90deg)}
.pf-add{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px;border:1.5px dashed var(--c);border-radius:12px;background:none;color:var(--c);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,transform .15s}
.pf-add:hover{background:var(--cb);transform:translateY(-1px)}
.pf-docs{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}
.pf-docs .pf-ancho{grid-column:1/-1}
.pf-doc-sube{display:flex;flex-direction:column;gap:10px}
.pf-drop{min-height:110px}
.pf-check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.pf-check li{display:flex;align-items:center;gap:10px;font-size:13px;color:#8a847a}
.pf-check li span{display:grid;color:#cfc9bd}.pf-check li.ok{color:#2a2722}.pf-check li.ok span{color:#3d7a4e}
.pf-check .ini-link{margin-left:auto;font-size:12px}
.pf-doc{display:flex;align-items:center;gap:10px;padding:9px 6px;border-top:1px solid #efece5;animation:pf-sube .3s ease both}
.pf-doc:first-of-type{border-top:0}.pf-doc .pf-tile-tx{flex:1}
.pf-doc .pf-tile-tx small{white-space:normal}
.pf-ficha-w{margin-top:16px;scroll-margin-top:80px}
.pf-ficha{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;margin-bottom:12px;background:#fff;border:1px solid #e5e1d8;border-top:4px solid #3d7a4e;border-radius:14px;animation:pf-sube .35s ease both}
.pf-ficha-id{flex:1;min-width:180px;display:flex;flex-direction:column}.pf-ficha-id b{font-size:16px;color:#2a2722}.pf-ficha-id small{font-size:12.5px;color:#8a847a}
.pf-ficha-pct{display:flex;align-items:center;gap:8px;min-width:150px}.pf-ficha-pct .pf-barra{flex:1}.pf-ficha-pct b{font-size:13px;color:#3d7a4e}
@media (max-width:720px){.pf-docs{grid-template-columns:1fr}.pf-fila-ed{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.pf-item,.pf-fila-ed,.pf-doc,.pf-ficha{animation:none}}
/* Personal: carnet sanitario y EPP de los operarios */
.per-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.per-chip{font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:#f2f0ea;color:#8a847a}
.per-chip.ok{background:#e4f0e6;color:#2f6d3c}
.per-chip.pronto{background:#fbf1e3;color:#9a6216}
.per-chip.venc{background:#fbe6e1;color:#b4442c}
.per-chip.epp{background:#e8f1f7;color:#2a6f97}
.per-resumen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.per-res{--k:#8a847a;display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border:1px solid #e5e1d8;border-left:4px solid var(--k);border-radius:12px;transition:transform .15s,box-shadow .15s}
.per-res:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(42,39,34,.07)}
.per-res b{font-size:22px;font-weight:800;color:var(--k);font-variant-numeric:tabular-nums}
.per-res span{font-size:12.5px;font-weight:600;color:#4a463e}
.per-res.venc{--k:#b4442c}.per-res.pronto{--k:#c58a2c}.per-res.sin{--k:#8a847a}.per-res.epp{--k:#2a6f97}
.per-dato-c{background:#faf9f5;border-radius:9px;padding:11px 13px;font-size:13.5px;font-weight:600;color:#4a463e}
.per-dato-c small{display:block;font-size:11.5px;font-weight:700;margin-top:2px}
.per-dato-c.ok small{color:#2f6d3c}.per-dato-c.pronto{background:#fbf1e3}.per-dato-c.pronto small{color:#9a6216}
.per-dato-c.venc{background:#fbe6e1}.per-dato-c.venc small{color:#b4442c}.per-dato-c.sin small{color:#8a847a}
@media (max-width:820px){.per-resumen{grid-template-columns:1fr 1fr}}
/* ===== Personal y mano de obra (rediseño): cifras que filtran, tarjetas, maestro-detalle y modales propios ===== */
.per{max-width:none}
.per-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.per-cab-acc{display:flex;gap:8px;flex-wrap:wrap}
.per-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid #d8d4cc;border-radius:11px;background:#fff;color:#4a463e;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}
.per-btn:hover{transform:translateY(-2px);border-color:#3d7a4e;box-shadow:0 8px 18px rgba(42,39,34,.08)}
.per-btn.pri{background:#3d7a4e;border-color:#3d7a4e;color:#fff}.per-btn.pri:hover{background:#346a43}
.per-btn.cargando{opacity:.6;pointer-events:none}
.per-btn svg{transition:transform .25s}.per-btn:hover svg{transform:rotate(-10deg) scale(1.1)}
.per-tabs{margin-bottom:16px}
.per-tab-n{font-style:normal;font-size:11px;font-weight:700;min-width:20px;padding:1px 6px;border-radius:999px;background:rgba(0,0,0,.08);text-align:center}
.pf-tab.on .per-tab-n{background:rgba(255,255,255,.25)}
/* Cifras */
.per-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.per-kpi{--k:#3d7a4e;--kb:#ebf3ec}
.per-kpi-temporal{--k:#b9772a;--kb:#fbf1e3}.per-kpi-fijo{--k:#2a6f97;--kb:#e8f1f7}.per-kpi-carnet{--k:#b9465f;--kb:#fbecef}.per-kpi-epp{--k:#6b4fa0;--kb:#f0ebf8}
.per-kpi.on{border-color:var(--k);background:var(--kb);box-shadow:0 0 0 3px color-mix(in srgb,var(--k) 18%,transparent)}
.per-kpi.on .ini-kpi-ico{background:#fff}
/* Barra de herramientas */
.per-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.per-buscar{display:flex;align-items:center;gap:8px;flex:1 1 280px;max-width:440px;padding:0 12px;background:#fff;border:1.5px solid #e5e1d8;border-radius:12px;color:#a39d92;transition:border-color .15s,box-shadow .15s}
.per-buscar:focus-within{border-color:#3d7a4e;box-shadow:0 0 0 3px rgba(61,122,78,.14);color:#3d7a4e}
.per-buscar input{flex:1;min-width:0;border:0;outline:0;padding:10px 0;font:inherit;font-size:13.5px;background:transparent;color:#2a2722}
.per-seg{display:flex;background:#f1efe9;border-radius:11px;padding:3px}
.per-seg-b{padding:7px 13px;border:0;border-radius:8px;background:none;font:inherit;font-size:12.5px;font-weight:600;color:#6f6a62;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.per-seg-b.on{background:#fff;color:#2a2722;box-shadow:0 2px 6px rgba(42,39,34,.1)}
.per-lineas{display:flex;gap:6px;flex-wrap:wrap}
.per-lin{--lc:#8a847a;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid #e5e1d8;border-radius:999px;background:#fff;font:inherit;font-size:12px;font-weight:600;color:#6f6a62;cursor:pointer;transition:all .15s}
.per-lin i{width:8px;height:8px;border-radius:50%;background:var(--lc)}
.per-lin:hover{border-color:var(--lc);color:#2a2722}
.per-lin.on{background:color-mix(in srgb,var(--lc) 12%,#fff);border-color:var(--lc);color:#2a2722}
.per-cuenta{margin-left:auto;font-size:12.5px;color:#8a847a}
/* Tarjetas */
.per-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.pc-card{--lc:#3d7a4e;position:relative;display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px;background:#fff;border:1px solid #e5e1d8;border-radius:16px;cursor:pointer;overflow:hidden;outline:none;animation:pf-sube .35s ease both;transition:transform .18s ease,box-shadow .18s,border-color .18s}
.pc-card::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--lc);transform:scaleX(.25);transform-origin:left;transition:transform .3s ease}
.pc-card:hover,.pc-card:focus-visible{transform:translateY(-3px);border-color:color-mix(in srgb,var(--lc) 45%,#e5e1d8);box-shadow:0 12px 26px rgba(42,39,34,.09)}
.pc-card:hover::before,.pc-card:focus-visible::before{transform:scaleX(1)}
.pc-card.inact{opacity:.6}
.pc-top{display:flex;align-items:center;gap:11px;min-width:0}
.pc-av{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--lc,#3d7a4e) 14%,#fff);color:var(--lc,#3d7a4e);font-weight:800;font-size:14px;letter-spacing:.02em;transition:transform .25s}
.pc-av.sm{width:34px;height:34px;border-radius:10px;font-size:12px}
.pc-av.xl{width:76px;height:76px;border-radius:22px;font-size:26px;background:#fff;box-shadow:0 0 0 4px #fff,0 8px 20px rgba(42,39,34,.14)}
.pc-card:hover .pc-av{transform:rotate(-6deg) scale(1.06)}
.pc-tx{flex:1;min-width:0;display:flex;flex-direction:column}
.pc-tx b{font-size:14px;color:#2a2722;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-tx small{font-size:12px;color:#8a847a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-tipo{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:8px;background:#fbf1e3;color:#9a6216}
.pc-tipo.fijo{background:#e8f1f7;color:#1f4e86}
.pc-chips{display:flex;flex-wrap:wrap;gap:5px}
.per-chip.lin{--lc:#8a847a;display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--lc) 12%,#fff);color:color-mix(in srgb,var(--lc) 80%,#000)}
.per-chip.lin i{width:6px;height:6px;border-radius:50%;background:var(--lc)}
.per-chip.fijo{background:#e8f1f7;color:#1f4e86}.per-chip.temp{background:#fbf1e3;color:#9a6216}
.pc-acc{display:flex;justify-content:flex-end;gap:6px;padding-top:8px;border-top:1px dashed #efece5}
.pc-b{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #e5e1d8;border-radius:9px;background:#fff;font:inherit;font-size:12px;font-weight:600;color:#6f6a62;cursor:pointer;transition:all .15s}
.pc-b:hover{border-color:var(--lc);color:var(--lc);background:color-mix(in srgb,var(--lc) 8%,#fff)}
.per-vacio{grid-column:1/-1;padding:40px 10px}
/* Maestro-detalle (tarifas / sueldos) */
.per-md{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px;align-items:start}
.per-md-l{position:sticky;top:12px;padding:12px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 160px)}
.per-md-l .per-buscar{max-width:none;flex:none}
.per-md-lista{overflow-y:auto;display:flex;flex-direction:column;gap:3px;margin:0 -4px;padding:0 4px}
.per-md-it{--lc:#3d7a4e;display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:0;border-radius:11px;background:none;font:inherit;text-align:left;cursor:pointer;transition:background .15s,transform .15s}
.per-md-it:hover{background:#f7f5f0;transform:translateX(2px)}
.per-md-it.on{background:color-mix(in srgb,var(--lc) 11%,#fff);box-shadow:inset 3px 0 0 var(--lc)}
.per-md-it[hidden]{display:none}
.per-md-r{min-width:0;display:flex;flex-direction:column;gap:12px}
.per-md-r .note{margin:0}
.per-det-cab{--lc:#3d7a4e;display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:1px solid #e5e1d8;border-left:4px solid var(--lc);border-radius:14px;margin-bottom:12px}
.per-big{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:12px}
.per-big>div{display:flex;flex-direction:column;gap:2px;padding:16px 18px;background:#fff;border:1px solid #e5e1d8;border-radius:14px;animation:pf-sube .35s ease both}
.per-big small{font-size:12px;font-weight:600;color:#8a847a}.per-big b{font-size:24px;font-weight:800;color:#2a2722;font-variant-numeric:tabular-nums}
.per-big em{font-style:normal;font-size:11.5px;color:#8a847a}
.per-big .hl{background:linear-gradient(135deg,#3d7a4e,#2a6f97);border:0}.per-big .hl small,.per-big .hl em{color:rgba(255,255,255,.8)}.per-big .hl b{color:#fff}
.per-tarifas{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:12px}
.per-tar{--lc:#3d7a4e;display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:#fff;border:1px solid #e5e1d8;border-top:4px solid var(--lc);border-radius:14px;animation:pf-sube .35s ease both;transition:transform .15s,box-shadow .15s}
.per-tar:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(42,39,34,.08)}
.per-tar small{font-size:12px;font-weight:700;color:var(--lc)}.per-tar b{font-size:22px;font-weight:800;color:#2a2722}.per-tar b span{font-size:13px;color:#8a847a;font-weight:600}
.per-tar em{font-style:normal;font-size:11.5px;color:#8a847a}
.per-hist{padding:14px 16px}
.per-hist-t{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a847a;margin-bottom:10px}
.per-tl{position:relative;display:flex;gap:12px;padding:0 0 14px 2px;animation:pf-sube .3s ease both}
.per-tl::before{content:"";position:absolute;left:7px;top:16px;bottom:0;width:2px;background:#efece5}
.per-tl:last-child::before{display:none}
.per-tl>i{flex:none;width:16px;height:16px;margin-top:2px;border-radius:50%;background:#fff;border:3px solid #d8d4cc}
.per-tl.on>i{border-color:#3d7a4e;box-shadow:0 0 0 4px rgba(61,122,78,.15)}.per-tl.off>i{border-color:#b4442c}
.per-tl b{font-size:13.5px;color:#2a2722}.per-tl span{font-size:13px;font-weight:600;color:#3d7a4e}
.per-tl small{display:block;font-size:12px;color:#8a847a;margin-top:1px}
/* ===== Modales (perModal) ===== */
.pm-ov{position:fixed;inset:0;z-index:9100;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(30,28,24,0);backdrop-filter:blur(0);transition:background .22s,backdrop-filter .22s}
.pm-ov.on{background:rgba(30,28,24,.42);backdrop-filter:blur(4px)}
.pm-box{--w:560px;--c:#3d7a4e;--cb:#ebf3ec;position:relative;display:flex;flex-direction:column;width:100%;max-width:var(--w);max-height:calc(100vh - 32px);background:#fff;border-radius:20px;box-shadow:0 24px 60px rgba(20,18,14,.28);overflow:hidden;opacity:0;transform:translateY(16px) scale(.97);transition:opacity .22s ease,transform .25s cubic-bezier(.2,.9,.3,1.15)}
.pm-ov.on .pm-box{opacity:1;transform:none}
.pm-ov.sale .pm-box{opacity:0;transform:translateY(10px) scale(.98)}
.pm-h{display:flex;align-items:center;gap:14px;padding:18px 20px 14px;background:linear-gradient(180deg,var(--cb),#fff)}
.pm-h>div{flex:1;min-width:0}.pm-h h2{margin:0;font-size:17px;font-weight:700;color:#2a2722}.pm-h small{font-size:12.5px;color:#8a847a}
.pm-h-ico{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--c);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--c) 35%,transparent);animation:pm-ico .5s cubic-bezier(.3,1.5,.5,1) both .1s}
@keyframes pm-ico{from{transform:scale(.4) rotate(-20deg);opacity:0}to{transform:none;opacity:1}}
.pm-x{flex:none;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:11px;background:rgba(255,255,255,.7);color:#6f6a62;cursor:pointer;transition:background .15s,transform .2s,color .15s}
.pm-x:hover{background:#fff;color:#2a2722;transform:rotate(90deg)}
.pm-body{flex:1;overflow-y:auto;padding:4px 20px 18px}
.pm-body .pf-edit .pf-campos{grid-template-columns:1fr 1fr}
.pm-body .pf-in{--c:var(--c)}
.pm-pie{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid #efece5;background:#fcfbf8}
.pm-txt{font-size:13.5px;color:#4a463e;line-height:1.55;margin:8px 0 12px}
.pm-nota{font-size:12px;color:#8a847a;margin:12px 0 0;text-align:center}
.pm-estado{display:flex;align-items:center;gap:10px;padding:11px 14px;margin:6px 0 14px;border-radius:12px;font-size:13.5px;font-weight:600;background:#ebf3ec;color:#2f6d3c;animation:pf-sube .3s ease both}
.pm-estado.pronto{background:#fbf1e3;color:#9a6216}.pm-estado.venc{background:#fbe6e1;color:#b4442c}.pm-estado.sin{background:#f2f0ea;color:#6f6a62}
.pm-sug{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pm-sug button{padding:5px 10px;border:1px dashed #d8d4cc;border-radius:999px;background:#fff;font:inherit;font-size:12px;color:#6f6a62;cursor:pointer;transition:all .15s}
.pm-sug button:hover{border-color:var(--c);color:var(--c)}
.pm-sug button.on{border-style:solid;border-color:var(--c);background:var(--cb);color:var(--c);transform:scale(.96)}
.pm-calc{margin-top:12px;font-size:13px;color:#4a463e;min-height:18px}
.pm-calc.grande{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;min-height:62px}
.pm-calc.grande>div{display:flex;flex-direction:column;padding:10px 12px;border-radius:12px;background:var(--cb);animation:pf-sube .25s ease both}
.pm-calc.grande small{font-size:11.5px;color:#6f6a62}.pm-calc.grande b{font-size:17px;color:var(--c);font-variant-numeric:tabular-nums}
.pm-calc.grande>span{grid-column:1/-1;align-self:center}
/* Panel lateral (ficha) */
.pm-ov-dr{justify-content:flex-end;padding:0}
.pm-drawer{max-width:min(var(--w),100vw);height:100vh;max-height:none;border-radius:22px 0 0 22px;transform:translateX(40px);opacity:0}
.pm-ov.on .pm-drawer{transform:none;opacity:1}
.pm-ov.sale .pm-drawer{transform:translateX(60px);opacity:0}
.pm-dr-h{--lc:#3d7a4e;position:relative;flex:none;background:#fff;border-bottom:1px solid #efece5}
.pm-dr-cover{height:96px;background:linear-gradient(120deg,var(--lc),color-mix(in srgb,var(--lc) 55%,#2a6f97));background-size:200% 200%;animation:pf-grad 12s ease infinite}
.pm-dr-h .pm-x{position:absolute;top:14px;right:14px}
.pm-dr-id{display:flex;align-items:flex-end;gap:16px;padding:0 22px;margin-top:-38px}
.pm-dr-id .pc-av.xl{--lc:var(--lc)}
.pm-dr-id>div{flex:1;min-width:0;padding-bottom:2px}.pm-dr-id h2{margin:0;font-size:20px;font-weight:700;color:#2a2722}.pm-dr-id small{display:block;font-size:12.5px;color:#8a847a;margin-bottom:6px}
.pm-tabs{display:flex;gap:4px;padding:14px 18px 0;overflow-x:auto}
.pm-tab{position:relative;padding:9px 14px 12px;border:0;background:none;font:inherit;font-size:13.5px;font-weight:600;color:#8a847a;cursor:pointer;white-space:nowrap;transition:color .2s}
.pm-tab::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--lc);transform:scaleX(0);transition:transform .25s ease}
.pm-tab:hover{color:#2a2722}.pm-tab.on{color:#2a2722}.pm-tab.on::after{transform:scaleX(1)}
.pm-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b4442c;vertical-align:middle;margin-left:3px;animation:pm-lat 1.6s ease infinite}
@keyframes pm-lat{50%{transform:scale(1.4);opacity:.6}}
.pm-drawer .pm-body{padding:18px 22px 22px}
.pm-tiles{--cb:color-mix(in srgb,var(--c) 12%,#fff)}
.pm-ancho-b{width:100%;justify-content:center;margin-top:14px}
.pm-drawer .pm-pie{justify-content:space-between}
@media (max-width:1100px){.per-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.per-md{grid-template-columns:1fr}.per-md-l{position:static;max-height:300px}.per-kpis{grid-template-columns:1fr 1fr}.per-cuenta{margin-left:0}}
@media (max-width:560px){.pm-body .pf-edit .pf-campos,.pm-calc.grande{grid-template-columns:1fr}.pm-drawer{border-radius:0}.pm-box:not(.pm-drawer){border-radius:18px}.per-cab-acc .per-btn span{display:none}}
@media (prefers-reduced-motion:reduce){.pc-card,.per-big>div,.per-tar,.per-tl,.pm-estado,.pm-h-ico,.pm-dr-cover,.pm-dot{animation:none}.pm-box,.pm-ov{transition:none}.pc-card:hover{transform:none}}
/* Ficha del operario en modal centrado (alto fijo: no salta al cambiar de pestaña) */
.pm-ficha{height:min(780px,calc(100vh - 32px))}
.pm-ficha .pm-body{padding:18px 22px 22px}
.pm-ficha .pm-pie{justify-content:space-between}
.pm-inline-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #efece5}
/* Registro masivo de carnet y EPP */
.pm-masivo{height:calc(100vh - 32px)}
.pm-masivo .pm-body{display:flex;flex-direction:column;gap:12px;padding:6px 20px 0;overflow:hidden}
.pmm-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pmm-aplicar{display:grid;grid-template-columns:auto 170px minmax(200px,1fr) auto;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;background:linear-gradient(110deg,#fbecef,#f6f1fb);border:1px solid #f0d6dc}
.pmm-ap-t{display:flex;align-items:center;gap:10px;color:#b9465f}.pmm-ap-t>div{display:flex;flex-direction:column}.pmm-ap-t b{font-size:13.5px;color:#2a2722}.pmm-ap-t small{font-size:11.5px;color:#8a847a}
.pmm-aplicar .pf-in{padding:4px 10px;background:#fff}
.pmm-sug{grid-column:1/-1;margin-top:0}
.pmm-tabla{flex:1;min-height:0;overflow:auto;border:1px solid #e5e1d8;border-radius:14px;background:#fff}
.pmm-fila{--lc:#3d7a4e;display:grid;grid-template-columns:44px minmax(220px,1.4fr) minmax(110px,.8fr) 150px 104px 150px minmax(200px,1.6fr);gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid #f2efe9;animation:pf-sube .3s ease both;transition:background .15s}
.pmm-fila:hover{background:#fcfbf8}
.pmm-fila.sel{background:#fbf3f5}
.pmm-fila.cambio{background:#fffaf0;box-shadow:inset 3px 0 0 #c58a2c}
.pmm-fila.sel.cambio{background:#fdf2ea}
.pmm-fila[hidden]{display:none}
.pmm-th{position:sticky;top:0;z-index:2;background:#faf8f4;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8a847a;animation:none;padding-top:10px;padding-bottom:10px}
.pmm-th:hover{background:#faf8f4}
.pmm-chk{display:grid;place-items:center;cursor:pointer}.pmm-chk input{width:17px;height:17px;accent-color:#b9465f;cursor:pointer}
.pmm-op{display:flex;align-items:center;gap:10px;min-width:0;cursor:pointer}
.pmm-fila>input{width:100%;min-width:0;box-sizing:border-box;padding:7px 9px;border:1.5px solid transparent;border-radius:9px;background:#f6f4ef;font:inherit;font-size:13px;color:#2a2722;transition:border-color .15s,background .15s,box-shadow .15s}
.pmm-fila>input:hover{background:#efece5}
.pmm-fila>input:focus{outline:0;background:#fff;border-color:#b9465f;box-shadow:0 0 0 3px rgba(185,70,95,.14)}
.pmm-est .per-chip{white-space:nowrap}
.pmm-flash{animation:pmm-flash .9s ease var(--d,0ms) both}
@keyframes pmm-flash{0%{background:#fff}30%{background:#e4f0e6}100%{background:#fffaf0}}
.pmm-cuenta{margin-right:auto;font-size:13px;color:#8a847a}.pmm-cuenta b{color:#c58a2c}
@media (max-width:1000px){.pmm-aplicar{grid-template-columns:1fr 1fr}.pmm-ap-t{grid-column:1/-1}.pmm-tabla .pmm-fila{min-width:1000px}}
@media (prefers-reduced-motion:reduce){.pmm-fila,.pmm-flash{animation:none}}
/* Ficha: encabezado limpio, sin portada; el color de la línea queda en el avatar y una franja fina */
.pm-ficha .pm-dr-h{border-top:4px solid var(--lc)}
.pm-ficha .pm-dr-id{margin-top:0;padding:20px 64px 0 22px;align-items:center}
.pm-ficha .pc-av.xl{width:64px;height:64px;border-radius:18px;font-size:22px;background:color-mix(in srgb,var(--lc) 13%,#fff);color:var(--lc);box-shadow:none}
.pm-ficha .pm-dr-h .pm-x{background:#f5f3ee}
/* Contratos y pedidos › Producción › Ver pedido: planilla de empaque del Excel dentro del
   modal del pedido. Compacta: entra a lo ancho sin desplazarse (encabezados en 2 líneas). */
.pev{margin-top:12px}
.pev-info{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:12.5px;color:#6f6a62;margin-bottom:8px}
.pev-info b{color:#2a2722}
.pev-warn{color:#b4442c;font-weight:600}
.pev-tabla{border:1px solid #e5e1d8;border-radius:12px;overflow:hidden}
.pev-tabla table{width:100%;table-layout:auto;border-collapse:collapse;font-size:11.5px}
.pev-tabla th{background:#2f6d3c;color:#fff;font-size:10.5px;font-weight:700;line-height:1.2;text-align:left;padding:6px 5px;vertical-align:bottom;white-space:normal;border-right:1px solid rgba(255,255,255,.15)}
.pev-tabla td{padding:5px;border-bottom:1px solid #ece8e0;border-right:1px solid #f2efe9;color:#2a2722;white-space:nowrap}
.pev-tabla .num{text-align:right;font-variant-numeric:tabular-nums}
.pev-tabla td.item{font-weight:600;white-space:normal;min-width:170px;line-height:1.25}
.pev-tabla tbody tr.pev-c td{background:color-mix(in srgb,var(--pev) 55%,#fff)}
.pev-tabla tbody tr:hover td{filter:brightness(.96)}
.pev-tabla tfoot td{background:#f1efe9;font-weight:800;border-top:2px solid #2f6d3c}
@media (max-width:1100px){.pev-tabla{overflow-x:auto}}
/* Personal › Tarifas por hora / Sueldos fijos: todos los registros en una tabla */
.per-pt-wrap{overflow:auto;max-height:calc(100vh - 300px);background:#fff;border:1px solid #e5e1d8;border-radius:14px}
.per-pt{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.per-pt th{position:sticky;top:0;z-index:2;background:#faf8f4;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a847a;text-align:left;padding:10px;border-bottom:1px solid #e5e1d8;white-space:nowrap}
.per-pt th.n,.per-pt td.n{text-align:right}
.per-pt td{padding:7px 10px;border-bottom:1px solid #f2efe9;color:#2a2722;white-space:nowrap;font-variant-numeric:tabular-nums}
.per-pt tbody tr{transition:background .15s}
.per-pt tbody tr:hover td{background:#fcfbf8}
.per-pt-op{position:sticky;left:0;z-index:1;background:#fff;min-width:240px;box-shadow:1px 0 0 #efece5}
.per-pt th:first-child{position:sticky;left:0;z-index:3}
.per-pt-nom{--lc:#3d7a4e;display:flex;align-items:center;gap:10px;width:100%;padding:2px;border:0;background:none;font:inherit;text-align:left;cursor:pointer;border-radius:9px;transition:background .15s}
.per-pt-nom:hover{background:color-mix(in srgb,var(--lc) 9%,#fff)}
.per-pt-lin{--lc:#8a847a}.per-pt-lin i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lc);margin-right:5px;vertical-align:middle}
.per-pt-t{cursor:default;min-width:96px}
.per-pt-t b{display:block;font-size:14px;font-weight:700}.per-pt-t small{display:block;font-size:10.5px;color:#a39d92}
.per-pt-t[data-pertar]{cursor:pointer;transition:background .15s,box-shadow .15s}
.per-pt-t[data-pertar]:hover{background:#fbf1e3!important;box-shadow:inset 0 0 0 2px #e0b77a}
.per-pt-t.vacia{color:#cfc9bd}.per-pt-t.vacia span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;border:1.5px dashed #d8d4cc;font-weight:700;transition:all .15s}
.per-pt-t.vacia[data-pertar]:hover span{border-color:#b9772a;color:#b9772a;transform:scale(1.1)}
.per-pt-hl{font-weight:800;color:#2f6d3c}
.per-pt-n{min-width:28px;padding:3px 9px;border:1px solid #e5e1d8;border-radius:999px;background:#fff;font:inherit;font-size:12px;font-weight:700;color:#6f6a62;cursor:pointer;transition:all .15s}
.per-pt-n:hover{border-color:#3d7a4e;color:#3d7a4e}
.per-pt-acc{text-align:right}
.per-pt-sin td{background:#fffaf6}.per-pt-sin .per-pt-op{background:#fffaf6}
.per-pt-flash tbody tr{animation:pf-sube .3s ease both}

/* Producción › Línea en el subtítulo de la cabecera (sin selector de línea arriba) */
.hdr .sub .mod-lin{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:#2a2722}
.hdr .sub .mod-lin i{width:8px;height:8px;border-radius:50%;background:var(--c)}
/* Centro de producción: una tarjeta por línea con sus pantallas */
.ap-acc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.ap-acc .lacc{background:#fff;border:1px solid #e5e1d8;border-top:4px solid var(--c);border-radius:14px;padding:14px 16px;transition:transform .15s,box-shadow .15s}
.ap-acc .lacc:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(42,39,34,.08)}
.ap-acc .lacc>b{display:flex;align-items:center;gap:8px;font-size:14px;color:#2a2722}
.ap-acc .lacc>b i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.ap-acc .lacc .r{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#8a847a;margin-top:8px}
.ap-acc .lacc .bar{height:5px;border-radius:5px;background:#ece8df;margin-top:8px;overflow:hidden}
.ap-acc .lacc .bar span{display:block;height:100%;background:var(--c);transition:width .4s ease}
.ap-acc .lacc .ir{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.ap-acc .lacc .ir button{border:1px solid #e5e1d8;background:#faf9f5;border-radius:8px;padding:5px 10px;font:inherit;font-size:11.5px;font-weight:600;color:#4a463e;cursor:pointer}
.ap-acc .lacc .ir button:hover{border-color:var(--c);color:var(--c)}
@media(max-width:1000px){.ap-acc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ap-acc{grid-template-columns:1fr}}
