*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
:root{--b:#1a3f7a;--g:#4db848;--bl:#e8eef7;--gl:#eaf7e8;--r:#e05252;--rl:#fde8e8;--am:#e8861a;--aml:#fff3e0;--card:#fff;--border:#e5e7eb;--text:#111;--muted:#888;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f8f9fa;color:var(--text);min-height:100vh;max-width:430px;margin:0 auto;}
.screen{display:none;flex-direction:column;min-height:100vh;}
.screen.active{display:flex;}
#modal-confirm.active,#modal-cancel.active,#modal-relevo.active,#modal-entrante.active,#modal-detalle.active,#dec-fullscreen.on{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;height:100vh;z-index:9999;}
input,select,textarea{background:#f5f7fa;border:0.5px solid var(--border);border-radius:8px;padding:9px 12px;font-size:14px;color:var(--text);width:100%;outline:none;font-family:inherit;-webkit-appearance:none;}
input:focus,select:focus{border-color:var(--g);background:var(--gl);}
textarea{resize:none;min-height:70px;}
.btn-p{background:var(--b);color:#fff;border:none;border-radius:10px;padding:13px;font-size:14px;font-weight:500;cursor:pointer;border-left:4px solid var(--g);width:100%;}
.btn-s{background:transparent;color:var(--b);border:0.5px solid var(--b);border-radius:10px;padding:11px;font-size:13px;font-weight:500;cursor:pointer;width:100%;}
.btn-d{background:var(--r);color:#fff;border:none;border-radius:10px;padding:11px;font-size:13px;font-weight:500;cursor:pointer;}
.topbar{background:var(--b);padding:44px 16px 12px;flex-shrink:0;}
.title{color:#fff;font-size:15px;font-weight:500;}
.sub{color:rgba(255,255,255,.6);font-size:11px;margin-top:2px;}
.gline{height:3px;background:var(--g);}
.scroll{flex:1;overflow-y:auto;padding:14px;-webkit-overflow-scrolling:touch;}
.card{background:var(--card);border:0.5px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px;}
.sec{font-size:10px;font-weight:500;color:var(--b);text-transform:uppercase;letter-spacing:.07em;margin:16px 0 7px;display:flex;align-items:center;gap:6px;}
.sec::after{content:'';flex:1;height:1px;background:var(--g);opacity:.3;}
.sec:first-child{margin-top:2px;}
.f{display:flex;flex-direction:column;gap:3px;flex:1;}
.f label{font-size:11px;color:var(--muted);}
.row{display:flex;gap:9px;margin-bottom:9px;}
.req{color:var(--r);}
.air{background:var(--bl);border:0.5px solid rgba(26,63,122,.2);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--b);font-weight:500;min-height:36px;display:flex;align-items:center;}
.chk{display:flex;align-items:center;gap:9px;background:var(--bl);border-radius:9px;padding:11px 13px;cursor:pointer;margin-bottom:8px;}
.chkbox{width:19px;height:19px;border:1.5px solid var(--b);border-radius:4px;display:flex;align-items:center;justify-content:center;background:#fff;flex-shrink:0;}
.chkbox.on{background:var(--b);}
.badge{display:inline-flex;align-items:center;gap:4px;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:500;}
.dot{width:6px;height:6px;border-radius:50%;}
.b-env{background:#eaf7e8;color:#27500a;}.b-env .dot{background:var(--g);}
.b-cur{background:#e8eef7;color:#0c447c;}.b-cur .dot{background:var(--b);}
.b-pen{background:#faeeda;color:#633806;}.b-pen .dot{background:var(--am);}
.b-rec{background:#fde8e8;color:#791f1f;}.b-rec .dot{background:var(--r);}
.b-can{background:#f5f5f5;color:#888;}.b-can .dot{background:#bbb;}
.b-bor{background:#f5f5f5;color:#888;}.b-bor .dot{background:#bbb;}
.b-apr{background:#eaf7e8;color:#27500a;}.b-apr .dot{background:var(--g);}
.sino-row{display:flex;align-items:center;margin-bottom:8px;}
.sino-lbl{flex:1;font-size:13px;color:var(--muted);}
.sino-wrap{display:flex;gap:5px;}
.sino-btn{border:0.5px solid var(--border);border-radius:5px;padding:5px 11px;font-size:11px;font-weight:500;cursor:pointer;background:#f5f7fa;color:var(--muted);}
.sino-btn.si{background:var(--gl);border-color:var(--g);color:#27500a;}
.sino-btn.no{background:var(--rl);border-color:var(--r);color:#791f1f;}
.items-hd{display:grid;grid-template-columns:26px 50px 1fr 56px 20px;gap:5px;margin-bottom:4px;}
.items-hd span{font-size:9px;color:var(--muted);font-weight:500;text-transform:uppercase;}
.items-row{display:grid;grid-template-columns:26px 50px 1fr 56px 20px;gap:5px;margin-bottom:5px;align-items:center;}
.items-n{text-align:center;font-size:12px;color:var(--muted);}
.add-btn{display:flex;align-items:center;gap:6px;padding:7px 0;color:var(--b);font-size:12px;font-weight:500;cursor:pointer;}
.add-ico{width:19px;height:19px;border:1.5px solid var(--g);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--g);font-size:14px;}
.total{background:var(--gl);border-radius:7px;padding:9px 12px;display:flex;justify-content:space-between;font-size:13px;color:#27500a;font-weight:500;margin-top:3px;}
.sig-box{background:#f5f7fa;border:0.5px dashed var(--border);border-radius:8px;height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;margin-bottom:7px;}
.alert{border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:10px;display:flex;gap:8px;align-items:flex-start;}
.alert.warn{background:var(--aml);border:0.5px solid #ef9f27;color:#854f0b;}
.alert.danger{background:var(--rl);border:0.5px solid #f09595;color:#791f1f;}
.alert.ok{background:var(--gl);border:0.5px solid var(--g);color:#27500a;}
.bbar{background:var(--card);border-top:0.5px solid var(--border);padding:10px 14px 22px;flex-shrink:0;}
.brow{display:flex;gap:8px;margin-bottom:8px;}
.b-bor-btn{flex:1;background:transparent;color:var(--b);border:0.5px solid var(--b);border-radius:10px;padding:11px;font-size:13px;font-weight:500;cursor:pointer;}
.b-env-btn{flex:2;background:var(--b);color:#fff;border:none;border-radius:10px;padding:11px;font-size:13px;font-weight:500;cursor:pointer;border-left:4px solid var(--g);}
.b-env-btn.lock{background:#999;border-left-color:#bbb;}
.b-can-btn{width:100%;background:#fff8f8;color:var(--r);border:0.5px solid var(--r);border-radius:10px;padding:10px;font-size:13px;font-weight:500;cursor:pointer;}
.modal-wrap{background:rgba(0,0,0,.45);display:flex;align-items:flex-end;min-height:100vh;}
.modal{background:var(--card);border-radius:16px 16px 0 0;width:100%;max-height:92vh;overflow-y:auto;}
.mhead{padding:13px 16px;display:flex;justify-content:space-between;align-items:center;}
.mbody{padding:4px 16px 14px;}
.mfoot{padding:10px 16px 22px;border-top:0.5px solid var(--border);display:flex;gap:8px;}
.undo-opts{display:flex;gap:8px;}
.undo-opt{flex:1;display:flex;align-items:center;gap:8px;border:0.5px solid var(--border);border-radius:9px;padding:10px;cursor:pointer;}
.undo-opt.op{background:var(--gl);border-color:var(--g);}
.undo-opt.rep{background:var(--rl);border-color:var(--r);}
.radio{width:16px;height:16px;border-radius:50%;border:1.5px solid #bbb;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.radio.g{border-color:var(--g);}
.radio.r{border-color:var(--r);}
.rdot{width:8px;height:8px;border-radius:50%;}
.at-badge{background:var(--b);color:#fff;font-size:9px;font-weight:700;border-radius:3px;padding:1px 5px;}
.tipo-card{background:var(--b);border-radius:10px;padding:13px;display:flex;align-items:center;gap:11px;margin-bottom:12px;border-left:4px solid var(--g);}
.sup-tabs{display:flex;border-bottom:0.5px solid var(--border);background:var(--card);}
.sup-tab{flex:1;padding:12px 4px;font-size:12px;text-align:center;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;}
.sup-tab.on{color:var(--b);border-bottom-color:var(--g);font-weight:500;}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}

/* ═══ SALIDA BASE ═══ */
.salida-btn{width:100%;background:var(--b);border:none;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;cursor:pointer;border-left:4px solid var(--g);text-align:left;}
.salida-btn.done{background:#1e5c1a;border-left-color:#4db848;}
.sb-icon{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.sb-txt{flex:1;}
.sb-titulo{color:#fff;font-size:14px;font-weight:500;}
.sb-sub{color:rgba(255,255,255,.65);font-size:11px;margin-top:2px;}

/* ═══ BARRA DE ESTADO — STICKY, SIEMPRE VISIBLE ═══ */
.vsb{
  flex-shrink:0;
  max-height:0;
  overflow:hidden;
  transition:max-height .45s ease;
  position:sticky;
  top:0;
  z-index:50;
}
.vsb.on{max-height:80px;}
.vsb-inner{
  padding:11px 16px 11px 20px;
  display:flex;
  align-items:center;
  gap:11px;
  border-bottom:1px solid rgba(0,0,0,.1);
  box-shadow:0 3px 10px rgba(0,0,0,.15);
  position:relative;
}
.vsb-inner::before{
  content:'';
  position:absolute;
  left:0;top:0;bottom:0;
  width:5px;
  background:rgba(255,255,255,.18);
}
@keyframes dot-pulse{
  0%,100%{opacity:1;transform:scale(1);}
  50%{opacity:.4;transform:scale(.72);}
}
.vsb-pulse{
  width:11px;height:11px;border-radius:50%;flex-shrink:0;
  animation:dot-pulse 1.5s ease-in-out infinite;
}
.vsb-msg{flex:1;padding-left:2px;}
.vsb-etiqueta{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;opacity:.78;}
.vsb-texto{font-size:16px;font-weight:600;margin-top:2px;line-height:1.2;}
.vsb-hora{font-size:11px;margin-top:2px;opacity:.72;}
.vsb-ico{font-size:24px;flex-shrink:0;opacity:.9;}

/* ═══ PASOS ═══ */
.paso-done{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:0.5px solid var(--border);}
.paso-done-ico{width:30px;height:30px;border-radius:50%;background:var(--g);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;color:#fff;font-weight:700;}
.paso-done-lbl{font-size:12px;color:var(--muted);}
.paso-done-hora{font-size:14px;font-weight:500;color:#27500a;margin-top:1px;}

/* ═══ BOTÓN GIGANTE DEL PASO ACTUAL ═══ */
.paso-gigante{
  background:var(--card);
  border:2px solid var(--b);
  border-radius:16px;
  padding:28px 20px;
  margin:14px 0;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:12px;
  transition:transform .12s, box-shadow .2s;
  box-shadow:0 4px 16px rgba(26,63,122,.18);
  min-height:180px;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.paso-gigante::after{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:5px;
  background:var(--g);
}
.paso-gigante:active{transform:scale(.97);}
.pg-ico{
  width:80px;height:80px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:40px;
  flex-shrink:0;
  background:rgba(26,63,122,.08);
}
.pg-titulo{font-size:22px;font-weight:600;line-height:1.2;padding:0 8px;}
.pg-sub{font-size:13px;color:var(--muted);line-height:1.3;padding:0 12px;}
.pg-cta{
  margin-top:6px;
  display:inline-flex;align-items:center;gap:6px;
  background:var(--b);color:#fff;
  padding:10px 18px;border-radius:20px;
  font-size:13px;font-weight:500;
  box-shadow:0 2px 6px rgba(26,63,122,.3);
}

/* Historial minimizado de pasos anteriores */
.historial-pasos{
  background:var(--card);
  border:0.5px solid var(--border);
  border-radius:10px;
  margin-bottom:10px;
  overflow:hidden;
}
.historial-head{
  padding:9px 14px;
  background:#f5f7fa;
  border-bottom:0.5px solid var(--border);
  font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
}
.historial-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 14px;
  border-bottom:0.5px solid #f0f0f0;
  font-size:12px;
}
.historial-item:last-child{border-bottom:none;}
.hi-tick{
  width:20px;height:20px;border-radius:50%;background:var(--g);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:11px;font-weight:700;flex-shrink:0;
}
.hi-lbl{flex:1;color:var(--muted);}
.hi-hora{font-weight:500;color:#27500a;}

/* ═══ SECCIÓN COLAPSABLE ═══ */
.col-sec{
  background:#f5f7fa;
  border:0.5px solid var(--border);
  border-radius:9px;
  margin-bottom:9px;
  overflow:hidden;
}
.col-head{
  padding:11px 14px;
  display:flex;align-items:center;gap:10px;
  cursor:pointer;
}
.col-head-ico{
  width:26px;height:26px;border-radius:50%;
  background:var(--bl);color:var(--b);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;flex-shrink:0;
}
.col-head-txt{flex:1;font-size:13px;font-weight:500;color:var(--b);}
.col-head-hint{font-size:10px;color:var(--muted);}
.col-head-btn{
  font-size:11px;color:var(--b);
  background:var(--bl);border:0.5px solid rgba(26,63,122,.2);
  border-radius:5px;padding:3px 10px;cursor:pointer;
}
.col-body{
  padding:0 14px 12px;
  border-top:0.5px solid var(--border);
  display:none;
}
.col-sec.open .col-body{display:block;}
.col-sec.open .col-head-btn::after{content:'';}
.col-done-badge{
  background:var(--gl);color:#27500a;
  font-size:10px;font-weight:500;
  border-radius:10px;padding:2px 8px;
}

/* Resumen minimizado de vehículos */
.veh-resumen{
  background:#f5f7fa;
  border:0.5px solid var(--border);
  border-radius:9px;
  padding:10px 14px;
  display:flex;align-items:center;gap:10px;
  margin-bottom:12px;
  font-size:12px;
}
.veh-resumen-ico{font-size:18px;flex-shrink:0;}
.veh-resumen-txt{flex:1;color:var(--b);font-weight:500;}
.veh-resumen-edit{
  font-size:11px;color:var(--muted);
  background:transparent;border:0.5px solid var(--border);
  border-radius:5px;padding:3px 8px;cursor:pointer;
}

.paso-activo{background:var(--card);border:2px solid var(--b);border-radius:12px;padding:15px;margin:10px 0;cursor:pointer;display:flex;align-items:center;gap:12px;transition:transform .1s;}
.paso-activo:active{transform:scale(.97);background:var(--bl);}
.pa-num{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:500;color:#fff;flex-shrink:0;}
.pa-lbl{font-size:14px;font-weight:500;}
.pa-sub{font-size:11px;color:var(--muted);margin-top:2px;}
.pa-arr{font-size:22px;opacity:.5;}

.paso-lock{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:0.5px solid var(--border);opacity:.32;}
.paso-lock-ico{width:28px;height:28px;border-radius:50%;border:1.5px solid #ccc;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;color:#bbb;}
.paso-lock-lbl{font-size:12px;color:var(--muted);}

.paso-opcional{background:#f5f7fa;border:0.5px dashed var(--border);border-radius:10px;padding:12px;margin-top:8px;cursor:pointer;display:flex;align-items:center;gap:10px;}
.paso-opcional.done{background:var(--gl);border-color:var(--g);border-style:solid;}

/* ═══ MODAL DE DECISIÓN FULLSCREEN ═══ */
.dec-fullscreen{
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  background:var(--b);
  z-index:200;
  display:none;
  flex-direction:column;
  padding:40px 24px 30px;
  animation:dec-in .3s ease;
}
.dec-fullscreen.on{display:flex;}
@keyframes dec-in{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.dec-top{color:#fff;margin-bottom:28px;text-align:center;}
.dec-emoji{font-size:56px;margin-bottom:16px;display:block;}
.dec-titulo{font-size:22px;font-weight:600;margin-bottom:8px;line-height:1.3;}
.dec-sub{font-size:14px;opacity:.75;line-height:1.4;}
.dec-opts{flex:1;display:flex;flex-direction:column;gap:14px;justify-content:center;}
.dec-opt{
  background:#fff;
  border:none;
  border-radius:14px;
  padding:20px 18px;
  display:flex;align-items:center;gap:14px;
  cursor:pointer;
  text-align:left;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
  transition:transform .1s, box-shadow .2s;
}
.dec-opt:active{transform:scale(.97);}
.dec-opt .dec-opt-ico{
  width:54px;height:54px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:26px;flex-shrink:0;
}
.dec-opt .dec-opt-txt{flex:1;}
.dec-opt .dec-opt-ttl{font-size:16px;font-weight:600;color:var(--text);line-height:1.25;}
.dec-opt .dec-opt-sub{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.35;}
.dec-opt .dec-opt-arrow{font-size:24px;color:var(--muted);opacity:.6;}
.dec-opt.otro-pozo .dec-opt-ico{background:var(--bl);color:var(--b);}
.dec-opt.descarga .dec-opt-ico{background:var(--aml);color:var(--am);}
.dec-opt.finalizar .dec-opt-ico{background:var(--gl);color:var(--g);}
.dec-badge{
  display:inline-block;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:11px;font-weight:500;
  padding:4px 10px;border-radius:12px;
  margin-top:12px;
}

/* ═══ MODAL CONFIRMACIÓN ═══ */
.confirm-overlay{background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:20px;min-height:100vh;}
.confirm-box{background:var(--card);border-radius:14px;width:100%;max-width:360px;overflow:hidden;}
.confirm-head{padding:18px 18px 12px;text-align:center;}
.confirm-icon{font-size:32px;margin-bottom:8px;}
.confirm-titulo{font-size:16px;font-weight:500;color:var(--text);}
.confirm-sub{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.5;}
.confirm-hora{font-size:22px;font-weight:500;color:var(--b);margin-top:10px;background:var(--bl);border-radius:8px;padding:10px;}
.confirm-btns{display:flex;border-top:0.5px solid var(--border);}
.confirm-btn{flex:1;padding:15px;border:none;font-size:14px;font-weight:500;cursor:pointer;background:transparent;}
.confirm-btn.cancelar{color:var(--muted);border-right:0.5px solid var(--border);}
.confirm-btn.confirmar{color:var(--b);}