/* Panel AHS: tema oscuro, minimalista y futurista */
:root{color-scheme:dark;--red:#ff4a4f;--red-dark:#c10f14;--blue:#5aa2ff;--azul-fuerte:#1c5fd1;--ink:#e9f1ff;--muted:#9db2d3;--line:rgba(255,255,255,.12);--glass:rgba(255,255,255,.055);--glass2:rgba(255,255,255,.1);--verde:#4be0a0;--ambar:#ffc15a;--bg:#06142b}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font-family:Barlow,system-ui,sans-serif;color:var(--ink);font-size:17px;line-height:1.45;min-height:100vh;
  background:radial-gradient(1100px 650px at 12% -5%,rgba(28,95,209,.55),transparent 60%),radial-gradient(900px 600px at 100% 100%,rgba(150,12,18,.45),transparent 55%),linear-gradient(170deg,#08193a,#050f22) fixed}
body:not(.login)::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:none;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 25%,transparent 80%);mask-image:radial-gradient(ellipse at 50% 30%,#000 25%,transparent 80%)}
.barra,.contenido{position:relative;z-index:1}
h1{font-family:"Barlow Condensed",Barlow,sans-serif;color:#fff;margin:.2em 0 .6em;font-size:2.3rem;letter-spacing:.01em}
.contenido h2{font-family:Barlow,sans-serif;color:var(--blue);margin:1.8em 0 .7em;font-size:.82rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
a{color:var(--blue)}
label{display:grid;gap:5px;font-weight:600;color:var(--muted);margin-bottom:14px;font-size:.95rem}
input[type=text],input[type=tel],input[type=password],input[type=search],select,textarea{width:100%;font:inherit;color:#fff;padding:.75em .9em;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(5,15,34,.55);outline:0;transition:border-color .2s,box-shadow .2s,background .2s}
input::placeholder,textarea::placeholder{color:rgba(157,178,211,.7)}
input:focus,select:focus,textarea:focus{border-color:var(--blue);background:rgba(5,15,34,.75);box-shadow:0 0 0 4px rgba(90,162,255,.2),0 0 22px rgba(90,162,255,.2)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b9cdee;outline-offset:2px}
select option{background:#0a1d3d;color:#fff}
select{appearance:none;-webkit-appearance:none;padding-right:2.6em;text-overflow:ellipsis;cursor:pointer}
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:.8em 1.5em;font:inherit;font-weight:700;letter-spacing:.02em;color:#fff;cursor:pointer;text-decoration:none;background:linear-gradient(135deg,#ff3b40,#c10f14);box-shadow:0 8px 24px rgba(209,19,23,.4),inset 0 1px 0 rgba(255,255,255,.3);transition:transform .15s,box-shadow .2s}
.boton:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(209,19,23,.55),inset 0 1px 0 rgba(255,255,255,.3)}
.boton:disabled{opacity:.4;cursor:not-allowed;transform:none}
.error,.ok,.aviso{padding:12px 16px;border-radius:14px;font-weight:600;border:1px solid}
.error{background:rgba(209,19,23,.2);border-color:rgba(255,110,114,.5);color:#ffd7d8}
.ok,.aviso{background:rgba(60,190,120,.15);border-color:rgba(110,220,160,.45);color:#d6ffe8}
fieldset{border:1px solid var(--line);border-radius:14px;margin:0 0 16px;padding:12px 14px}
legend{font-weight:700;color:var(--blue);padding:0 6px}
code{font-family:ui-monospace,Menlo,monospace}

/* Barra superior */
.barra{position:sticky;top:0;z-index:15;display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 16px;background:rgba(6,20,43,.72);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid var(--line)}
.barra::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--azul-fuerte) 25%,var(--red-dark) 75%,transparent);opacity:.9}
.barra img{height:auto;margin-right:auto}
.barra form{display:flex;align-items:center;gap:12px;margin:0}
.quien{color:#fff;font-weight:600;text-decoration:none;padding:.3em .7em;border-radius:999px;transition:background .2s}
a.quien:hover{background:var(--glass2)}
.quien.activo{background:var(--glass2)}
.salir{background:var(--glass);color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:.4em 1.1em;font:inherit;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s}
.salir:hover{background:var(--glass2);border-color:rgba(255,255,255,.5)}
.hamb{background:transparent;border:0;padding:8px;margin-right:6px;cursor:pointer;display:grid;gap:5px}
.hamb span{display:block;width:22px;height:2px;border-radius:2px;background:#fff;transition:width .2s}
.hamb span:nth-child(2){width:15px}
.hamb:hover span:nth-child(2){width:22px}
.contenido{width:min(780px,100% - 24px);margin:22px auto 70px}

/* Menú lateral */
.velo{position:fixed;inset:0;background:rgba(2,8,20,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20}
.lateral{position:fixed;top:0;left:0;bottom:0;width:min(290px,82vw);z-index:21;padding:22px 14px;background:rgba(8,22,48,.94);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid var(--line);box-shadow:10px 0 50px rgba(0,0,0,.5);animation:desliza .25s cubic-bezier(.2,.8,.2,1)}
@keyframes desliza{from{transform:translateX(-24px);opacity:0}}
.lateral ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.lateral a{display:block;padding:.8em 16px;border-radius:12px;color:var(--muted);font-weight:600;text-decoration:none;font-size:1.02rem;transition:background .2s,color .2s}
.lateral a:hover{background:var(--glass2);color:#fff}
.lateral a.activo{color:#fff;background:linear-gradient(90deg,rgba(90,162,255,.28),rgba(90,162,255,.05));box-shadow:inset 3px 0 0 var(--blue)}
.lateral .aparte{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}

/* Buscar y filtros */
.buscar{display:flex;gap:8px;margin-bottom:12px}
.buscar input{flex:1}
.actualizar{margin:0 0 12px;color:var(--muted);font-size:.9rem}
.actualizar a{font-weight:700;text-decoration:none}
.filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chip{background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:.38em 1em;color:var(--ink);font-weight:600;text-decoration:none;font-size:.93rem;transition:background .2s,border-color .2s,box-shadow .2s}
.chip:hover{background:var(--glass2);border-color:rgba(255,255,255,.3)}
.chip b{color:var(--red);margin-left:2px}
.chip.activo{background:linear-gradient(135deg,rgba(90,162,255,.35),rgba(28,95,209,.35));border-color:rgba(90,162,255,.7);color:#fff;box-shadow:0 0 18px rgba(90,162,255,.3)}
.chip.activo b{color:#fff}
.grid{display:grid;gap:0;margin-top:14px}

/* Tarjetas de paquetes */
.paq{background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 40px rgba(0,0,0,.25);transition:border-color .2s,transform .2s;animation:aparece .5s cubic-bezier(.2,.8,.2,1) both}
.paq:hover{border-color:rgba(90,162,255,.4)}
@keyframes aparece{from{opacity:0;transform:translateY(10px)}}
.paq header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.paq strong{font-size:1.15rem;color:#fff;font-weight:600}
.estado{border-radius:999px;padding:.2em .85em;font-weight:700;font-size:.78rem;letter-spacing:.04em;white-space:nowrap;background:rgba(90,162,255,.16);color:#a9ceff;border:1px solid rgba(90,162,255,.4)}
.e-prealertado{background:rgba(157,178,211,.14);color:#c4d3ec;border-color:rgba(157,178,211,.4)}
.e-en_miami{background:rgba(255,193,90,.14);color:var(--ambar);border-color:rgba(255,193,90,.45)}
.e-en_transito{background:rgba(190,140,255,.15);color:#d4b8ff;border-color:rgba(190,140,255,.45)}
.e-en_bodega{background:rgba(90,162,255,.16);color:#a9ceff;border-color:rgba(90,162,255,.45)}
.e-entregado,.e-retirado{background:rgba(75,224,160,.14);color:var(--verde);border-color:rgba(75,224,160,.45)}
.trk{font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:600;font-size:1.5rem;letter-spacing:.04em;margin:.25em 0;word-break:break-all;color:#fff}
.meta,.obs{margin:.25em 0;color:var(--muted)}
.enlaces{display:flex;flex-wrap:wrap;gap:16px;margin:.6em 0}
.enlaces a{font-weight:600;text-decoration:none;border-bottom:1px solid rgba(90,162,255,.4)}
.acciones{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.acciones form{margin:0}
.acciones button{background:var(--glass);border:1px solid rgba(90,162,255,.55);color:#cfe3ff;border-radius:12px;padding:.5em 1.05em;font:inherit;font-weight:600;cursor:pointer;transition:background .2s,box-shadow .2s,color .2s}
.acciones button:hover{background:rgba(90,162,255,.25);color:#fff;box-shadow:0 0 18px rgba(90,162,255,.3)}
.acciones button.atras{border-color:var(--line);color:var(--muted)}
.acciones button.atras:hover{background:var(--glass2);box-shadow:none;color:#fff}
.hist{margin-top:12px;color:var(--muted);font-size:.92rem}
.hist summary,.agregar summary,.olvide summary{cursor:pointer;font-weight:600}
.hist ul{margin:6px 0 0;padding-left:18px}
.vacio{color:var(--muted);text-align:center;margin:36px 0}
.agregar{background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:12px 16px;margin-bottom:16px}
.agregar summary{color:var(--blue)}
.paq.inactivo{opacity:.55}
.paq.grid{gap:0}

/* Bitácora */
.bita{list-style:none;margin:0;padding:0}
.bita li{background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:12px 16px;margin-bottom:8px}
.bita small{display:block;color:var(--muted)}
.bita a{font-weight:700;word-break:break-all;text-decoration:none}
.pag{display:flex;justify-content:space-between;margin:14px 0}
.pag a{font-weight:700;text-decoration:none}

/* Ventanas */
[hidden]{display:none!important}
.modal{border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:24px;width:min(430px,calc(100% - 32px));background:rgba(10,29,61,.92);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 30px 80px rgba(0,0,0,.6);color:var(--ink);font:inherit}
.modal::backdrop{background:rgba(2,8,20,.65);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.modal h2{margin:0 0 14px;font-family:"Barlow Condensed",Barlow,sans-serif;color:#fff;font-size:1.6rem;letter-spacing:0;text-transform:none;font-weight:600}
.modal p{margin:0 0 14px;font-weight:600;font-size:1.05rem}
.modal textarea{resize:vertical}
.modal small{color:#ff8a8e;font-weight:600;min-height:1.2em}
.modal-botones{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
.modal-botones .sec{background:var(--glass);border:1px solid rgba(255,255,255,.25);color:var(--ink);border-radius:14px;padding:.75em 1.3em;font:inherit;font-weight:700;cursor:pointer}
.modal-botones .sec:hover{background:var(--glass2)}

/* Indicadores */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.kpi{background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:16px 18px;display:grid;gap:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);animation:aparece .5s cubic-bezier(.2,.8,.2,1) both}
.kpi small{color:var(--muted);font-weight:600;font-size:.85rem}
.kpi b{font-family:"Barlow Condensed",Barlow,sans-serif;font-size:2.7rem;font-weight:600;line-height:1.05;background:linear-gradient(180deg,#fff,#8db8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.var{font-size:.88rem;font-weight:700;color:var(--muted)}
.var.bien{color:var(--verde)}
.var.mal{color:#ff8a8e}
.nota{color:var(--muted);font-size:.88rem;margin:10px 0 0}
.grafica{display:flex;gap:6px;align-items:flex-end;background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:22px 12px 12px;overflow-x:auto}
.col{flex:1;min-width:36px;display:grid;gap:6px;text-align:center}
.barras{height:160px;display:flex;gap:3px;align-items:flex-end;justify-content:center}
.b{display:block;width:12px;border-radius:6px 6px 0 0;min-height:2px;position:relative}
.b.rec{background:linear-gradient(180deg,#8db8ff,#1c5fd1);box-shadow:0 0 14px rgba(90,162,255,.35)}
.b.ent{background:linear-gradient(180deg,#ff7478,#c10f14);box-shadow:0 0 14px rgba(255,74,79,.3)}
.b i{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-style:normal;font-size:.7rem;font-weight:700;color:var(--muted);padding-bottom:2px}
.col small{color:var(--muted);font-size:.74rem}
.leyenda{color:var(--muted);font-size:.9rem}
.leyenda .b{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-1px;margin:0 4px 0 12px;min-height:0;box-shadow:none}

/* Perfil y usuarios */
.datos{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:0}
.datos dt{color:var(--muted);font-weight:600}
.datos dd{margin:0;font-weight:600;word-break:break-word;color:#fff}
.clave{background:rgba(5,15,34,.7);border:1px dashed var(--blue);border-radius:10px;padding:2px 10px;font-size:1.15rem;letter-spacing:.08em;user-select:all;color:#fff}
.olvide{margin-top:18px}
.olvide summary{color:var(--blue)}
.olvide form{margin-top:12px}
@media (prefers-reduced-motion:reduce){.paq,.kpi,.lateral{animation:none}}

/* Tema claro (se elige desde el menú o el perfil; el oscuro es el de base) */
html[data-tema=claro]{color-scheme:light;--ink:#0f2347;--muted:#566884;--line:rgba(20,68,137,.16);--glass:rgba(255,255,255,.72);--glass2:rgba(255,255,255,.96);--blue:#1c5fd1;--red:#d11317;--verde:#12804f;--ambar:#9a5b00;--bg:#f2f6fd}
html[data-tema=claro]{background:#f2f6fd}
html[data-tema=claro] body:not(.login){background:radial-gradient(1100px 650px at 10% -5%,rgba(90,162,255,.28),transparent 60%),radial-gradient(900px 600px at 100% 100%,rgba(255,74,79,.14),transparent 55%),linear-gradient(170deg,#f7faff,#eaf1fb) fixed}
html[data-tema=claro] body:not(.login)::before{background-image:none}
html[data-tema=claro] h1{color:#0f2347}
html[data-tema=claro] .contenido h2{color:#1c5fd1}
html[data-tema=claro] label{color:#566884}
html[data-tema=claro] input[type=text],html[data-tema=claro] input[type=tel],html[data-tema=claro] input[type=password],html[data-tema=claro] input[type=search],html[data-tema=claro] select,html[data-tema=claro] textarea{color:#0f2347;background:#fff;border-color:rgba(20,68,137,.25)}
html[data-tema=claro] input::placeholder,html[data-tema=claro] textarea::placeholder{color:#7b8aa3}
html[data-tema=claro] input:focus,html[data-tema=claro] select:focus,html[data-tema=claro] textarea:focus{background:#fff;border-color:#1c5fd1;box-shadow:0 0 0 4px rgba(28,95,209,.15)}
html[data-tema=claro] select option{background:#fff;color:#0f2347}
select,select:focus,html[data-tema=claro] select,html[data-tema=claro] select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%238db8ff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;background-size:14px 9px}
html[data-tema=claro] select,html[data-tema=claro] select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%235b6f8f' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}
html[data-tema=claro] .error{background:#fdecec;border-color:#f0a3a5;color:#a90e12}
html[data-tema=claro] .ok,html[data-tema=claro] .aviso{background:#eaf6ee;border-color:#9fd1ad;color:#1d5b31}
html[data-tema=claro] .barra{background:rgba(255,255,255,.82);border-bottom-color:rgba(20,68,137,.14)}
html[data-tema=claro] .quien,html[data-tema=claro] .salir{color:#0f2347}
html[data-tema=claro] .salir{border-color:rgba(20,68,137,.3);background:#fff}
html[data-tema=claro] .salir:hover,html[data-tema=claro] a.quien:hover,html[data-tema=claro] .quien.activo{background:#e8f0fc}
html[data-tema=claro] .hamb span{background:#0f2347}
html[data-tema=claro] .velo{background:rgba(15,35,71,.35)}
html[data-tema=claro] .lateral{background:rgba(255,255,255,.97);border-right-color:rgba(20,68,137,.14);box-shadow:10px 0 40px rgba(15,35,71,.18)}
html[data-tema=claro] .lateral a:hover{background:#eef4fd;color:#0f2347}
html[data-tema=claro] .lateral a.activo{color:#0f2347;background:linear-gradient(90deg,rgba(28,95,209,.16),rgba(28,95,209,.03))}
html[data-tema=claro] .chip{color:#0f2347;background:#fff}
html[data-tema=claro] .chip:hover{background:#eef4fd;border-color:rgba(20,68,137,.3)}
html[data-tema=claro] .chip b{color:#d11317}
html[data-tema=claro] .chip.activo{background:linear-gradient(135deg,#2f74e0,#1c5fd1);color:#fff;border-color:#1c5fd1;box-shadow:0 6px 18px rgba(28,95,209,.3)}
html[data-tema=claro] .chip.activo b{color:#fff}
html[data-tema=claro] .paq,html[data-tema=claro] .kpi,html[data-tema=claro] .bita li,html[data-tema=claro] .grafica,html[data-tema=claro] .agregar{box-shadow:0 10px 30px rgba(15,35,71,.08),inset 0 1px 0 #fff}
html[data-tema=claro] .paq:hover{border-color:rgba(28,95,209,.45)}
html[data-tema=claro] .paq strong,html[data-tema=claro] .trk,html[data-tema=claro] .datos dd{color:#0f2347}
html[data-tema=claro] .estado,html[data-tema=claro] .e-en_bodega{background:#e4eefc;color:#174a9a;border-color:#a9c4ee}
html[data-tema=claro] .e-descartado,html[data-tema=claro] .e-prealertado{background:#eceff5;color:#4a5a75;border-color:#c6cfdf}
html[data-tema=claro] .e-en_transito{background:#f1e8ff;color:#5b2a9e;border-color:#cfb5f2}
html[data-tema=claro] .e-en_miami{background:#fff1d6;color:#7a4b00;border-color:#f0cf8d}
html[data-tema=claro] .e-entregado,html[data-tema=claro] .e-retirado{background:#e1f4e6;color:#1d5b31;border-color:#9fd1ad}
html[data-tema=claro] .acciones button{background:#fff;color:#174a9a;border-color:#1c5fd1}
html[data-tema=claro] .acciones button:hover{background:#1c5fd1;color:#fff;box-shadow:0 6px 16px rgba(28,95,209,.3)}
html[data-tema=claro] .acciones button.atras{border-color:rgba(20,68,137,.2);color:#566884}
html[data-tema=claro] .acciones button.atras:hover{background:#eef4fd;color:#0f2347;box-shadow:none}
html[data-tema=claro] .enlaces a{border-bottom-color:rgba(28,95,209,.4)}
html[data-tema=claro] .modal{background:rgba(255,255,255,.97);border-color:rgba(20,68,137,.18);box-shadow:0 30px 80px rgba(15,35,71,.35);color:#0f2347}
html[data-tema=claro] .modal::backdrop{background:rgba(15,35,71,.45)}
html[data-tema=claro] .modal h2{color:#0f2347}
html[data-tema=claro] .modal small{color:#c10f14}
html[data-tema=claro] .modal-botones .sec{background:#fff;border-color:rgba(20,68,137,.3);color:#0f2347}
html[data-tema=claro] .modal-botones .sec:hover{background:#eef4fd}
html[data-tema=claro] .kpi b{background:linear-gradient(180deg,#0f2347,#1c5fd1);-webkit-background-clip:text;background-clip:text}
html[data-tema=claro] .var.mal{color:#c10f14}
html[data-tema=claro] .b.rec{background:linear-gradient(180deg,#5aa2ff,#1c5fd1);box-shadow:none}
html[data-tema=claro] .b.ent{background:linear-gradient(180deg,#ff6a6e,#d11317);box-shadow:none}
html[data-tema=claro] .clave{background:#f2f6fd;color:#0f2347}
html[data-tema=claro] .agregar summary,html[data-tema=claro] .olvide summary{color:#1c5fd1}

/* Selector de tema */
.logo-claro{display:none}
html[data-tema=claro] .logo-claro{display:block}
html[data-tema=claro] .logo-oscuro{display:none}
.btn-tema{background:var(--glass);border:1px solid var(--line);color:var(--ink);width:38px;height:38px;border-radius:999px;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.btn-tema:hover{background:var(--glass2)}
.btn-tema svg{width:18px;height:18px}
.btn-tema .sol{display:none}
html[data-tema=claro] .btn-tema .luna{display:none}
html[data-tema=claro] .btn-tema .sol{display:block}
.opciones-tema{display:flex;flex-wrap:wrap;gap:8px}
.opciones-tema button{background:var(--glass);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:.55em 1.1em;font:inherit;font-weight:600;cursor:pointer}
.opciones-tema button[aria-pressed=true]{border-color:var(--blue);box-shadow:0 0 0 3px rgba(90,162,255,.25);color:var(--blue)}
.lateral .tema-fila{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.lateral .tema-fila button{width:100%;text-align:left;background:transparent;border:0;border-radius:12px;padding:.8em 16px;color:var(--muted);font:inherit;font-weight:600;font-size:1.02rem;cursor:pointer}
.lateral .tema-fila button:hover{background:var(--glass2);color:var(--ink)}

/* Pantalla de entrada */
body.login{min-height:100vh;margin:0;display:grid;place-items:center;padding:20px;color:#fff;background:#06142b;overflow-x:hidden;position:relative}
.fondo{position:fixed;inset:0;z-index:0;overflow:hidden;background:
  radial-gradient(1200px 700px at 15% 10%,#12408a 0%,transparent 60%),
  radial-gradient(900px 600px at 90% 95%,#5b0b10 0%,transparent 55%),
  linear-gradient(160deg,#08193a,#050f22)}
.fondo::before{content:"";position:absolute;inset:0;background-image:none;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 78%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 78%)}
.orbe{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55}
.o1{width:380px;height:380px;background:#1c5fd1;top:-110px;left:-90px;animation:flota 14s ease-in-out infinite alternate}
.o2{width:340px;height:340px;background:#d11317;bottom:-120px;right:-80px;animation:flota 17s ease-in-out infinite alternate-reverse}
.ruta{position:absolute;inset:0;width:100%;height:100%;opacity:.85}
.ruta path{animation:avanza 24s linear infinite}
.ruta .pulso{transform-box:fill-box;transform-origin:center;animation:pulso 2.6s ease-out infinite}
.ciudad{fill:rgba(255,255,255,.55);font:600 13px Barlow,sans-serif;letter-spacing:.2em}
@keyframes avanza{to{stroke-dashoffset:-320}}
@keyframes pulso{from{transform:scale(1);opacity:.9}to{transform:scale(5);opacity:0}}
@keyframes flota{to{transform:translate(40px,30px)}}
.tarjeta{position:relative;z-index:1;width:min(420px,100%);padding:34px 30px 24px;border-radius:26px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%);box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.18);animation:entra .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes entra{from{opacity:0;transform:translateY(16px) scale(.98)}}
.logo-login{display:block;height:auto;margin:0 0 18px}
.etiqueta{margin:0;font-weight:700;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:#8db8ff}
.tarjeta h1{color:#fff;font-size:2.4rem;margin:.1em 0 .7em;letter-spacing:.01em}
.tarjeta .error{background:rgba(209,19,23,.22);border:1px solid rgba(255,110,114,.55);color:#ffd7d8}
.tarjeta .ok{background:rgba(60,190,120,.18);border:1px solid rgba(110,220,160,.5);color:#d6ffe8}
.campo{position:relative;display:block;margin:0 0 16px;color:inherit}
.campo input{width:100%;font:inherit;font-size:1.05rem;color:#fff;background:rgba(5,15,34,.55);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:1.45em 4.8em .55em 1em;outline:0;transition:border-color .2s,box-shadow .2s,background .2s}
.campo input[name=usuario]{padding-right:1em}
.campo input:focus{border-color:#5aa2ff;background:rgba(5,15,34,.75);box-shadow:0 0 0 4px rgba(90,162,255,.22),0 0 24px rgba(90,162,255,.25)}
.campo span{position:absolute;left:1em;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.7);font-weight:600;pointer-events:none;transition:all .18s}
.campo input:focus+span,.campo input:not(:placeholder-shown)+span{top:.95em;transform:none;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#8db8ff}
.campo input:-webkit-autofill{-webkit-text-fill-color:#fff;box-shadow:0 0 0 40px #0a2147 inset}
.ver{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:#8db8ff;font:inherit;font-weight:700;font-size:.85rem;padding:8px 10px;border-radius:10px;cursor:pointer}
.ver:hover{background:rgba(255,255,255,.08)}
.ver:focus-visible,.entrar:focus-visible,.olvide summary:focus-visible{outline:3px solid #b9cdee;outline-offset:2px}
.entrar{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px;border:0;border-radius:14px;padding:.95em 1.2em;font:inherit;font-weight:700;font-size:1.05rem;letter-spacing:.03em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff3b40,#c10f14);box-shadow:0 10px 30px rgba(209,19,23,.45),inset 0 1px 0 rgba(255,255,255,.3);transition:transform .15s,box-shadow .2s}
.entrar:hover{transform:translateY(-1px);box-shadow:0 14px 36px rgba(209,19,23,.6),inset 0 1px 0 rgba(255,255,255,.3)}
.entrar svg{transition:transform .2s}
.entrar:hover svg{transform:translateX(4px)}
.entrar.enviando{pointer-events:none;cursor:progress;background:linear-gradient(135deg,#e0282d,#a80d11);box-shadow:0 6px 18px rgba(209,19,23,.35);position:relative;overflow:hidden}
.entrar.enviando::before{content:"";width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:girar-btn .7s linear infinite}
.entrar.enviando::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transform:translateX(-100%);animation:brillo-btn 1.2s ease-in-out infinite}
@keyframes girar-btn{to{transform:rotate(360deg)}}
@keyframes brillo-btn{to{transform:translateX(100%)}}
.tarjeta.saliendo,main.saliendo{opacity:.92;transition:opacity .3s}
@media (prefers-reduced-motion:reduce){.entrar.enviando::before,.entrar.enviando::after{animation:none}}
.entrar.sec{background:rgba(255,255,255,.1);box-shadow:none;border:1px solid rgba(255,255,255,.2)}
.tarjeta .olvide{margin-top:18px}
.tarjeta .olvide summary{cursor:pointer;color:#8db8ff;font-weight:600;font-size:.95rem;list-style:none}
.tarjeta .olvide summary::-webkit-details-marker{display:none}
.tarjeta .olvide summary::after{content:" ›"}
.tarjeta .olvide[open] summary::after{content:" ⌄"}
.pie-login{display:flex;gap:6px;align-items:center;justify-content:center;margin:22px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem;color:rgba(255,255,255,.6)}
@media (prefers-reduced-motion:reduce){.orbe,.ruta path,.ruta .pulso,.tarjeta{animation:none}.ruta circle animateMotion{display:none}}
@media (max-width:480px){.tarjeta{padding:28px 22px 20px}.ciudad{font-size:11px}}
.barra .quien{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}
.barra form{min-width:0}
@media (max-width:430px){.barra{padding:8px 10px}.barra form{gap:6px}.hamb{margin-right:0;padding:6px}.barra .quien{padding:.3em .4em}.salir{padding:.4em .85em}.barra img{width:78px;height:auto}}
.arroba{color:var(--muted);font-weight:500;font-size:.85rem;margin-left:4px}
.e-fallo{background:rgba(255,74,79,.16);color:#ff9ea1;border-color:rgba(255,74,79,.5)}
html[data-tema=claro] .e-fallo{background:#fdecec;color:#a90e12;border-color:#f0a3a5}
.acceso .meta{margin:.1em 0}

.e-en_ruta{background:rgba(255,110,199,.15);color:#ffa6dc;border-color:rgba(255,110,199,.5)}
html[data-tema=claro] .e-en_ruta{background:#fde7f4;color:#9c1a68;border-color:#f2b3d8}

/* Escáner */
.visor{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#000;max-width:520px;aspect-ratio:4/3;margin-bottom:14px}
.visor video{width:100%;height:100%;object-fit:cover}
.visor .mira{position:absolute;inset:22% 8%;border:2px solid var(--blue);border-radius:14px;box-shadow:0 0 0 999px rgba(0,0,0,.35),0 0 24px rgba(90,162,255,.6)}
.visor .mira::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--red);box-shadow:0 0 12px var(--red);animation:barrido 1.6s ease-in-out infinite alternate}
@keyframes barrido{from{top:8%}to{top:92%}}
.resultado{display:grid;gap:4px;padding:18px;border-radius:20px;border:1px solid var(--line);background:var(--glass);margin:14px 0;max-width:520px}
.resultado strong{font-family:"Barlow Condensed",sans-serif;font-size:2rem;letter-spacing:.04em}
.resultado em{font-style:normal;font-weight:700}
.resultado .chip{justify-self:start;margin-top:8px;cursor:pointer}
.resultado.ok{border-color:rgba(75,224,160,.6);background:rgba(75,224,160,.12)}
.resultado.ok em{color:var(--verde)}
.resultado.ya{border-color:rgba(255,193,90,.6);background:rgba(255,193,90,.12)}
.resultado.ya em{color:var(--ambar)}
.resultado.mal{border-color:rgba(255,74,79,.6);background:rgba(255,74,79,.12)}
.resultado.mal em{color:var(--red)}
.hist{list-style:none;padding:0;margin:0;display:grid;gap:6px;max-width:520px}
.hist li{padding:.6em 1em;border:1px solid var(--line);border-radius:12px;background:var(--glass)}
.manual{max-width:520px}
.asignar{display:grid;gap:8px;margin-top:10px}
.asignar .boton{justify-self:start}
.sugerencias{display:flex;flex-wrap:wrap;gap:6px}
.sugerencias:empty{display:none}
.sugerencias .chip small{margin-left:.5em;opacity:.7;font-weight:500}
.sugerencias .chip-cuenta{border-color:rgba(46,204,113,.6)}
.guardado{margin:8px 0 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Pie con versión */
body:not(.login){display:flex;flex-direction:column}
body:not(.login) .contenido{flex:1 0 auto;margin-bottom:24px}
.pie{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.74rem;padding:12px 18px;border-top:1px solid var(--line);margin-top:auto;opacity:.8;white-space:nowrap}
.pie span:last-child{font-variant-numeric:tabular-nums}
body.login{align-content:center;gap:14px}
body.login .pie{width:min(420px,100%);border:0;padding:0 6px;margin:0;color:rgba(255,255,255,.5)}
.resultado b.estado{justify-self:start}
.insignias{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.estado.e-permiso,.paq .estado.e-permiso{background:rgba(255,74,79,.18);color:#ff9ea1;border-color:rgba(255,74,79,.6)}
html[data-tema=claro] .estado.e-permiso,html[data-tema=claro] .paq .estado.e-permiso{background:#fdecec;color:#a90e12;border-color:#e58a8d}

@keyframes dest-ok{0%{box-shadow:inset 0 0 0 999px rgba(75,224,160,.35)}100%{box-shadow:inset 0 0 0 999px rgba(75,224,160,0)}}
@keyframes dest-mal{0%{box-shadow:inset 0 0 0 999px rgba(255,74,79,.4)}100%{box-shadow:inset 0 0 0 999px rgba(255,74,79,0)}}
body.destello-ok{animation:dest-ok .6s ease-out}
body.destello-mal{animation:dest-mal .8s ease-out}
@media (prefers-reduced-motion:reduce){body.destello-ok,body.destello-mal{animation:none}}
.estado.e-cuenta{background:rgba(75,224,160,.14);color:#8ff0c6;border-color:rgba(75,224,160,.5)}
html[data-tema=claro] .estado.e-cuenta{background:#e3f8ee;color:#0b7a4b;border-color:#8fd9b5}

/* Pantallas de entrada en tema claro */
html[data-tema=claro] body.login{background:#eef3fb;color:#0f2347}
html[data-tema=claro] .fondo{background:radial-gradient(1200px 700px at 15% 10%,#cfe0ff 0%,transparent 60%),radial-gradient(900px 600px at 90% 95%,#ffd9da 0%,transparent 55%),linear-gradient(160deg,#f6f9ff,#e9effa)}
html[data-tema=claro] .fondo::before{background-image:none}
html[data-tema=claro] .orbe{opacity:.22}
html[data-tema=claro] .ciudad{fill:rgba(15,35,71,.55)}
html[data-tema=claro] .tarjeta{background:rgba(255,255,255,.78);border-color:rgba(255,255,255,.9);box-shadow:0 30px 80px rgba(15,35,71,.16),inset 0 1px 0 #fff}
html[data-tema=claro] .tarjeta h1{color:#0f2347}
html[data-tema=claro] .etiqueta{color:#1c5fd1}
html[data-tema=claro] .campo input{color:#0f2347;background:#fff;border-color:#c3d0e4}
html[data-tema=claro] .campo input:focus{border-color:#1c5fd1;background:#fff;box-shadow:0 0 0 4px rgba(28,95,209,.15)}
html[data-tema=claro] .campo span{color:#5b6f8f}
html[data-tema=claro] .campo input:focus+span,html[data-tema=claro] .campo input:not(:placeholder-shown)+span{color:#1c5fd1}
html[data-tema=claro] .campo input:-webkit-autofill{-webkit-text-fill-color:#0f2347;box-shadow:0 0 0 40px #fff inset}
html[data-tema=claro] .ver,html[data-tema=claro] .enlace-chico a,html[data-tema=claro] .enlace,html[data-tema=claro] .pie-login a{color:#1c5fd1}
html[data-tema=claro] .entrar.sec{color:#0f2347;background:#fff;border-color:#c3d0e4}
html[data-tema=claro] .pie-login{color:#5b6f8f;border-top-color:#d5dfee}
html[data-tema=claro] .tarjeta .error{background:#fdecec;border-color:#e58a8d;color:#a90e12}
html[data-tema=claro] .tarjeta .ok{background:#e3f8ee;border-color:#8fd9b5;color:#0b7a4b}
html[data-tema=claro] body.login .pie{color:#5b6f8f}
html[data-tema=claro] .tarjeta .logo-login{content:url(/img/logo-color.png)}
.tema-login{position:fixed;top:14px;right:14px;z-index:2}
html[data-tema=claro] .campo input:-webkit-autofill{border-color:#c3d0e4}
html[data-tema=claro] .campo input:-webkit-autofill-strong-password{-webkit-text-fill-color:#0f2347;box-shadow:0 0 0 40px #fff inset}

/* Rutas de entrega y mensajeros */
.asignar{display:grid;gap:14px}
.elegir,.ruta-lista{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.elegir li{background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:12px 14px;display:grid;gap:8px}
.fila{display:flex;gap:12px;align-items:center;cursor:pointer}
.fila input{width:22px;height:22px;flex:none;accent-color:var(--red)}
.fila span,.ruta-lista span:first-child{display:grid;gap:2px}
.fila small,.ruta-lista small{color:var(--muted);font-size:.9rem}
.ruta-lista li{display:flex;gap:8px 10px;align-items:center;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.ruta-lista li>span:first-child{flex:1 1 180px;min-width:0}
.ruta-lista li .botones{display:flex;gap:8px;margin-left:auto}
.ruta-lista li .ruta-por{flex-basis:100%;margin-top:-4px;color:var(--muted);font-size:.85rem}
.ruta-lista li .ruta-por.otro{color:var(--ambar)}
.ruta-lista li .quitar{min-width:7.2em;text-align:center}
.ruta-lista li.hecho{opacity:.7}
.ruta-lista form{margin:0}
.quitar,.no-entregado{background:var(--glass);border:1px solid var(--line);color:var(--muted);border-radius:12px;padding:.5em 1em;font:inherit;font-weight:600;cursor:pointer}
.quitar:hover,.no-entregado:hover{color:var(--ink);border-color:rgba(255,110,114,.6)}
.no-entregado{width:100%;margin-top:10px;padding:.8em 1em}
.entrega{display:grid;gap:12px;margin-top:14px}
.peso-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.peso-form label{display:flex;align-items:center;gap:8px;font-weight:600}
.peso-form input[name=valor]{width:90px}
.peso-form small{flex-basis:100%;color:var(--muted)}
.peso-scan{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.peso-scan input{width:90px}
.peso-scan em{flex-basis:100%}
.parametros{display:grid;gap:12px;max-width:520px}
.parametros label{display:grid;gap:6px;font-weight:600}
.cobro-check{display:flex;gap:10px;align-items:center;margin:12px 0 4px;font-weight:600;cursor:pointer}
.cobro-check input{width:20px;height:20px}
.cobro-campos{display:none;gap:10px;margin:8px 0 12px;padding:12px;border-radius:14px;border:1px solid rgba(90,162,255,.35);background:rgba(90,162,255,.08)}
.cobro-check:has(input:checked)+.cobro-campos{display:grid}
.foto-boton{display:grid;gap:10px;place-items:center;text-align:center;padding:16px;border:1.5px dashed rgba(90,162,255,.55);border-radius:16px;cursor:pointer;color:var(--blue);font-weight:700;background:var(--glass)}
.foto-boton input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.foto-boton.trabajando{opacity:.6}
.foto-boton.lista{border-style:solid;border-color:var(--verde)}
.foto-previa{max-width:100%;max-height:220px;border-radius:12px}
.boton.grande{width:100%;padding:1em 1.5em;font-size:1.1rem}
html[data-tema=claro] .error{color:#8a0d10}
/* Submenús del menú lateral */
.lateral .grupo summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:.8em 16px;border-radius:12px;color:var(--muted);font-weight:600;font-size:1.02rem;transition:background .2s,color .2s}
.lateral .grupo summary::-webkit-details-marker{display:none}
.lateral .grupo summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-right:4px;transition:transform .2s}
.lateral .grupo details[open]>summary::after{transform:rotate(-135deg)}
.lateral .grupo summary:hover,.lateral .grupo summary.activo{background:var(--glass2);color:#fff}
.lateral .grupo ul{margin:2px 0 6px 14px;padding-left:10px;border-left:1px solid var(--line)}
.lateral .grupo ul a{font-size:.96rem;padding:.65em 14px}
html[data-tema=claro] .lateral .grupo summary:hover,html[data-tema=claro] .lateral .grupo summary.activo{background:#eef4fd;color:#0f2347}

/* iPhone con la app instalada: la barra baja lo que mide la hora y la isla para que el tema y Salir queden a la vista */
.barra{padding-top:calc(8px + env(safe-area-inset-top,0px))}

/* Lista de paquetes: filtros en una fila deslizable y tarjetas compactas que se abren al tocarlas */
.filtros{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:-16px;padding:2px 16px 6px;scroll-snap-type:x proximity}
.filtros::-webkit-scrollbar{display:none}
.filtros .chip{flex:none;white-space:nowrap;scroll-snap-align:start}
.paq details.fila>summary{list-style:none;cursor:pointer;display:block}
.paq details.fila>summary::-webkit-details-marker{display:none}
.paq details.fila>summary header{flex-wrap:wrap;align-items:center}
.paq details.fila>summary header strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.paq .insignias{order:3;flex-basis:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px;margin:2px 0 0}
.paq details.fila{display:block;min-width:0;overflow:hidden}
.paq details.fila>summary{min-width:0}
.paq details.fila:not([open]) .meta.resumen{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paq details.fila:not([open]) .trk{margin-bottom:2px}
.paq .cuerpo{margin-top:8px}
.conteo{text-align:center;color:var(--muted);font-size:.9rem;margin:8px 0}
.ver-mas{text-align:center;margin:6px 0 18px}.ver-mas .boton{width:100%;max-width:420px}
@media (min-width:760px){.filtros{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0}}
.hist-abierto{margin-top:12px;color:var(--muted);font-size:.92rem}
.hist-abierto .hist-t{margin:0;font-weight:700;color:var(--ink)}
.hist-abierto ul{margin:6px 0 0;padding-left:18px}
.paq details.fila .cuerpo{cursor:pointer}
.paq details.fila .cuerpo a,.paq details.fila .cuerpo button,.paq details.fila .cuerpo input{cursor:auto}

/* Tarjeta tocable sin flecha: se nota por el brillo al tocar y el borde azul al abrirse */
article.paq{transition:border-color .2s,box-shadow .2s}
article.paq:hover{border-color:rgba(90,162,255,.4)}
article.paq:has(details.fila[open]){border-color:rgba(90,162,255,.65);box-shadow:0 0 0 1px rgba(90,162,255,.25),0 12px 34px rgba(0,0,0,.25)}
html[data-tema=claro] article.paq:has(details.fila[open]){border-color:#7fa9ec;box-shadow:0 0 0 1px rgba(28,95,209,.15),0 14px 34px rgba(15,35,71,.12)}
.paq details.fila{border:0;background:none;box-shadow:none;padding:0}
.paq details.fila>summary{outline:0}.paq details.fila>summary:focus-visible{outline:2px solid rgba(90,162,255,.7);outline-offset:2px;border-radius:12px}

/* Reportes */
.navper{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 14px}
.navper strong{text-align:center;font-size:1.05rem}
.navper .chip{white-space:nowrap}
.chip.off{opacity:.4;pointer-events:none}
.seccion-rep{margin:0 0 22px}
.seccion-rep h2{margin-bottom:10px}
.lectura{margin:0;padding:14px 18px 14px 32px;background:var(--glass);border:1px solid var(--line);border-radius:18px;display:grid;gap:8px;line-height:1.45}
.tabla-rep{overflow-x:auto;background:var(--glass);border:1px solid var(--line);border-radius:18px;margin:10px 0 0}
.tabla-rep table{width:100%;border-collapse:collapse;font-size:.93rem}
.tabla-rep th,.tabla-rep td{padding:9px 12px;text-align:right;border-bottom:1px solid var(--line);vertical-align:top}
.tabla-rep th:first-child,.tabla-rep td:first-child{text-align:left}
.tabla-rep thead th{color:var(--muted);font-weight:700;font-size:.8rem;white-space:nowrap}
.tabla-rep tr.grupo th{text-align:left;background:rgba(90,162,255,.12);color:var(--blue);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.tabla-rep tr:last-child td{border-bottom:0}
.tabla-rep small{color:var(--muted)}
.tabla-rep .ancho{display:none}
@media (min-width:760px){.tabla-rep .ancho{display:table-cell}}
.descargas{display:flex;flex-wrap:wrap;gap:10px}
.solo-imprimir{display:none}
html[data-tema=claro] .tabla-rep tr.grupo th{background:#e8f0fd;color:#1c5fd1}
html[data-tema=claro] .lectura,html[data-tema=claro] .tabla-rep{background:#fff;box-shadow:0 10px 30px rgba(15,35,71,.06)}
@media print{
  body{background:#fff!important;color:#111!important}
  .no-imprimir,.barra,.lateral,.pie,footer,header.barra,#menu-lateral{display:none!important}
  .solo-imprimir{display:block}
  .reporte h1{margin-bottom:0}
  .lectura,.tabla-rep,.kpi,.grafica{background:#fff!important;box-shadow:none!important;border-color:#ccc!important;color:#111!important}
  .tabla-rep .ancho{display:table-cell}
  .kpi b{background:none!important;-webkit-text-fill-color:#111;color:#111}
  .seccion-rep{break-inside:avoid}
}

/* Cobros */
.cobro-monto{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 0}
.cobro-monto input[name=monto]{flex:1 1 120px;min-width:0}
.cobro-monto select{flex:1 1 130px}
.quitar-cobro{margin-top:8px}
.elegir .debe{color:#c2750a;font-weight:600}
html:not([data-tema=claro]) .elegir .debe{color:#ffd98a}
.quitar-cobro .enlace{background:none;border:0;padding:0;font:inherit;font-size:.9rem;color:var(--muted);text-decoration:underline;cursor:pointer}
.peso-form select,.peso-scan select{width:auto;min-width:76px}

/* Cobros: más aire entre bloques */
.kpis{margin-bottom:22px}
.kpis + .filtros{margin-bottom:20px}
.filtros + .nota{margin:4px 0 20px;line-height:1.5}
.paq .obs{margin:10px 0 0;line-height:1.5}
.paq .cobro-monto{margin-top:16px;gap:10px}
.paq .enlaces{margin:14px 0 0}
.paq .quitar-cobro{margin-top:14px}
.paq .meta{margin:8px 0 0;line-height:1.5}
.paq form.parametros{margin-top:18px}.paq .acciones{margin:14px 0 4px}

/* Parámetros y formularios sueltos: más aire */
main.contenido h1 + .nota{margin:2px 0 24px;line-height:1.55}
main.contenido > .aviso,main.contenido > .error{margin-bottom:20px}
.paq > header{margin-bottom:16px}
.paq .parametros{gap:18px;margin-top:20px}
.paq .parametros label{margin-bottom:0;gap:8px}
.paq > .acciones{margin:18px 0 6px}
.paq > .meta{margin:6px 0 0}
.paq > .parametros + .parametros{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
article.paq:has(.parametros){padding:24px;margin-bottom:22px}
.paq .parametros ~ .meta{margin-top:20px}
details.corregir{margin:10px 0 0}details.corregir>summary{cursor:pointer;color:var(--muted);font-size:.9rem;list-style:none}details.corregir>summary::-webkit-details-marker{display:none}details.corregir[open]>summary{margin-bottom:4px}

/* Ventana de confirmación */
dialog.ahs-conf{border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:24px;width:min(420px,calc(100% - 32px));background:rgba(10,29,61,.94);color:#fff;font:inherit;box-shadow:0 30px 80px rgba(0,0,0,.6)}
dialog.ahs-conf::backdrop{background:rgba(2,8,20,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
dialog.ahs-conf p{margin:0 0 20px;font-weight:600;font-size:1.05rem;line-height:1.45}
.ahs-conf-botones{display:flex;gap:10px;justify-content:flex-end}
.ahs-conf-botones button{font:inherit;font-weight:700;border-radius:14px;padding:.75em 1.3em;cursor:pointer;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:inherit}
.ahs-conf-botones .ahs-conf-si{background:linear-gradient(135deg,#ff3b3f,#c8141a);border-color:transparent;color:#fff}
html[data-tema=claro] dialog.ahs-conf{background:#fff;color:#0f2347;border-color:rgba(20,68,137,.18);box-shadow:0 30px 80px rgba(15,35,71,.35)}
html[data-tema=claro] .ahs-conf-botones button:not(.ahs-conf-si){background:#f1f5fb;border-color:#cfdaec}

/* Menú lateral por secciones */
.lateral{overflow-y:auto}
.lateral .seccion{margin:16px 0 2px;padding:0 16px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.75}
.lateral .seccion:first-child{margin-top:0}
.lateral a{padding:.62em 16px}
.lateral ul{gap:2px}

/* Peso: texto + corrección escondida */
.peso-linea{margin:6px 0 0}
.paq details.corregir{margin:6px 0 10px}
.peso-form{display:grid;grid-template-columns:1fr 92px auto;gap:10px;align-items:center;margin:10px 0 4px;max-width:420px}
.peso-form input[name=valor],.peso-form select{width:100%;min-width:0}
.peso-form .boton{white-space:nowrap}
.e-descartado{background:rgba(157,178,211,.14);color:#c4d3ec;border-color:rgba(157,178,211,.4)}
.descartar-form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:10px 0 4px}
.descartar-form input[type=text]{width:100%;box-sizing:border-box;min-width:0;padding:.75em .9em;font-size:1rem;min-height:46px}
.descartar-form button{justify-self:start}

/* La app instalada no debe poder moverse de lado. */
html,body{overflow-x:clip;max-width:100%}
.filtros,.tabla-rep,.grafica{touch-action:pan-x pan-y}
html{touch-action:pan-x pan-y}
/* Estado arriba a la derecha; las demás insignias (permiso, cuenta, pagado) debajo. */
.paq .estado-top{order:2;flex:none}
.paq .insignias:not(:has(.estado)){display:none}

.paq details.fila>summary header strong.quien-paq{display:flex;align-items:center;gap:8px;overflow:visible}
.quien-paq .nom{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.paq .cod-cli{flex:none;font-size:.7rem;font-weight:700;letter-spacing:.05em;line-height:1.5;padding:.1em .7em;white-space:nowrap}

.fuentes{display:grid;gap:8px;margin:0 0 6px}
.fuente{position:relative;display:flex;justify-content:space-between;align-items:center;padding:.6em .9em;border-radius:12px;border:1px solid rgba(90,162,255,.3);overflow:hidden;font-weight:600}
.fuente i{position:absolute;left:0;top:0;bottom:0;background:rgba(90,162,255,.2);z-index:0}
.fuente span,.fuente b{position:relative;z-index:1}



.nota-filtro{margin:4px 0 12px;font-size:.88rem;opacity:.8}

.editar-cliente label{display:grid;gap:4px;font-size:.85rem;font-weight:600}
.descartar-form input[type=email],.descartar-form input[type=tel]{width:100%;box-sizing:border-box;min-width:0;padding:.75em .9em;font-size:1rem;min-height:46px}
.filtros .rotulo{flex:none;align-self:center;font-size:.8rem;font-weight:600;opacity:.7;white-space:nowrap}

.solo-imprimir{display:none}
@page{size:letter landscape;margin:0}
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{background:#fff!important;color:#000!important}
  body>*:not(main){display:none!important}
  main.contenido{max-width:none!important;width:auto!important;padding:0!important;margin:0!important}
  .solo-imprimir{box-sizing:border-box;width:100%}
  .no-imprimir,.filtros,#lista,form,nav,header.barra,.pie,footer.pie{display:none!important}
  .solo-imprimir{display:block!important;padding:12mm;color:#111;font-family:Barlow,Arial,sans-serif}
  .rep-cab{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:center;gap:18px;padding-bottom:8px;border-bottom:3px solid #D11317}
  .nota-filtro{display:none!important}
  .rep-cab img{display:block;height:auto}
  .contenido .rep-tit h2{margin:0;font-size:20pt;color:#144489;letter-spacing:0;text-transform:none;font-family:"Barlow Condensed",Barlow,Arial,sans-serif}
  .rep-tit p{margin:2px 0 0;font-size:9.5pt;color:#555}
  .rep-filtro{margin:10px 0;padding:6px 10px;background:#eef3fb;border-left:4px solid #144489;font-size:10.5pt}
  .rep table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9.5pt}
  .rep .c-n{width:7mm}.rep .c-sh{width:26mm}.rep .c-trk{width:54mm}.rep .c-kg{width:18mm}.rep td.kg{white-space:nowrap}.rep .c-cli{width:42mm}.rep .c-est{width:30mm}.rep .c-vu{width:22mm}
  .rep thead{display:table-header-group}
  .rep th{background:#144489;color:#fff;font-weight:600;text-align:left;padding:5px 6px;font-size:9pt}
  .rep td{padding:4px 6px;border-bottom:1px solid #d5dbe5;vertical-align:top;overflow-wrap:anywhere;color:#111}
  .rep tbody tr:nth-child(even) td{background:#f5f7fb}
  .rep tr{break-inside:avoid}
  .rep td.n{color:#777}.rep td.sh,.rep td.tk{font-weight:600}
  .rep .est{display:inline-block;padding:1px 7px;border-radius:9px;font-size:8.5pt;white-space:nowrap;background:#e8ecf3;color:#144489}
  .rep .est.e-en_miami{background:#fff1d6;color:#8a5a00}
  .rep .est.e-en_transito{background:#e1ecff;color:#144489}
  .rep .est.e-en_bodega{background:#dff3e4;color:#17602d}
  .rep .est.e-en_ruta{background:#fde7f4;color:#9c1a68}
  .rep .est.e-entregado,.rep .est.e-retirado{background:#dff3e4;color:#17602d}
  .rep-pie{margin-top:10px;font-size:8.5pt;color:#777;text-align:right}
}
.mas{text-align:center;margin:10px 0 18px}.mas .boton{display:inline-block;text-decoration:none}

/* Reportes: descargas en tarjetas iguales */
.descargas{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:4px}
.descargas .boton{display:grid;gap:2px;text-align:left;place-content:center start;justify-items:start;padding:14px 18px;text-decoration:none;border-radius:16px;font-weight:400;background:var(--glass);color:var(--ink);border:1px solid var(--line);box-shadow:none;cursor:pointer;font-family:inherit}
.descargas .boton:hover{border-color:rgba(90,162,255,.65);transform:none}
.descargas .boton b{font-size:1.02rem;font-weight:700}
.descargas .boton small{font-size:.82rem;opacity:.75;font-weight:500}
.seccion-rep > .nota{margin-bottom:12px}

/* Reportes: impresión con logo, encabezado y tablas ordenadas */
.rp-cab{display:none}
main.reporte{page:reporte}
@page reporte{size:letter portrait;margin:0}
@media print{
  main.reporte{padding:12mm!important;max-width:none!important;width:auto!important;margin:0!important;font-family:Barlow,Arial,sans-serif;color:#111}
  main.reporte .solo-imprimir{padding:0}
  main.reporte h1{display:none}
  .rp-cab.solo-imprimir{display:flex!important;align-items:center;gap:18px;padding-bottom:8px!important;border-bottom:3px solid #D11317;margin-bottom:12px}
  .rp-cab img{display:block;height:auto}
  .rp-cab h2{margin:0!important;font-size:20pt!important;color:#144489!important;letter-spacing:0!important;text-transform:none!important;font-family:"Barlow Condensed",Barlow,Arial,sans-serif}
  .rp-cab p{margin:2px 0 0;font-size:9.5pt;color:#555}
  main.reporte .seccion-rep h2{font-size:10pt;letter-spacing:.14em;color:#144489!important;margin:14px 0 6px;padding-bottom:3px;border-bottom:1px solid #d5dbe5}
  main.reporte .lectura{border:0!important;border-left:4px solid #144489!important;background:#eef3fb!important;border-radius:0;padding:8px 14px 8px 28px;font-size:10pt}
  main.reporte .lectura li{margin:3px 0}
  main.reporte .tabla-rep{border:0!important;border-radius:0}
  main.reporte .tabla-rep table{width:100%;border-collapse:collapse;font-size:9.5pt}
  main.reporte .tabla-rep thead th{background:#144489!important;color:#fff!important;padding:5px 7px;text-align:left}
  main.reporte .tabla-rep tr.grupo th{background:#e8f0fd!important;color:#144489!important;padding:4px 7px}
  main.reporte .tabla-rep td{padding:4px 7px;border-bottom:1px solid #d5dbe5;color:#111!important}
  main.reporte .tabla-rep tbody tr:nth-child(even) td{background:#f7f9fc}
  main.reporte .tabla-rep tr{break-inside:avoid}
  main.reporte .var{color:#111}
  main.reporte .var.bien{color:#17602d!important}
  main.reporte .var.mal{color:#b3261e!important}
  main.reporte .kpi{border:1px solid #d5dbe5!important;border-radius:10px;padding:8px 12px}
  main.reporte .kpi small{color:#555}
  main.reporte .kpi b{-webkit-text-fill-color:#144489;color:#144489;font-size:22pt}
  main.reporte .grafica{border:1px solid #d5dbe5!important;border-radius:10px}
  main.reporte .seccion-rep{break-inside:auto}
  main.reporte .seccion-rep h2{break-after:avoid}
  main.reporte .nota{font-size:8.5pt;color:#555}
  main.reporte .nota a{color:inherit}
}

.manif tr.dudoso td{background:rgba(255,196,60,.16)}
.manif tr.dudoso .f-cod{border-color:#e0a21a;box-shadow:0 0 0 1px rgba(224,162,26,.5)}
.manif tr.parecido td{background:rgba(224,70,70,.2)}
.manif tr.parecido .f-cod{border-color:#e04646;box-shadow:0 0 0 1px rgba(224,70,70,.6)}
.manif .f-por{display:block;margin-top:4px;font-size:.78rem;line-height:1.25;color:var(--muted)}
.manif tr.borrosa .f-por{color:#e8832a}.manif tr.dudoso .f-por{color:#e0a21a}.manif tr.parecido .f-por{color:#e04646}
.manif tr.borrosa td{background:rgba(255,140,40,.14)}
.manif tr.borrosa input{border-color:#e8832a;box-shadow:0 0 0 1px rgba(232,131,42,.45)}

/* Conexión: bloque de vuelos con aire entre tarjetas */
.vuelos{display:grid;gap:14px;margin:8px 0 34px}
.vuelos h2{margin-bottom:0}
.vuelos > p{margin:0}
.vuelos details.agregar{margin:0}
.tarjeta-accion{display:grid;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:20px;background:var(--glass)}
.tarjeta-accion .nota{margin:0}

.cargando{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;background:rgba(3,8,20,.82);backdrop-filter:blur(4px);padding:16px}
.cargando[hidden]{display:none}
.cargando-caja{max-width:360px;width:100%;text-align:center;padding:28px 22px;border-radius:16px;background:#0d1a33;border:1px solid rgba(96,165,250,.35);box-shadow:0 0 40px rgba(59,130,246,.25)}
.cargando-caja p{margin:10px 0 0}
.giro{width:44px;height:44px;margin:0 auto;border-radius:50%;border:4px solid rgba(96,165,250,.25);border-top-color:#60a5fa;animation:giro .9s linear infinite}
@keyframes giro{to{transform:rotate(360deg)}}

/* Barra: avisos y menú del nombre */
.acciones-barra{display:flex;align-items:center;gap:8px;min-width:0}
.menu-barra{position:relative;min-width:0}
.barra button.quien{background:transparent;border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;color:#fff}
.barra button.quien:hover,.barra button.quien[aria-expanded=true]{background:var(--glass2)}
.flecha{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;flex:none}
.btn-campana{position:relative;background:var(--glass);border:1px solid var(--line);color:var(--ink);width:38px;height:38px;border-radius:999px;display:grid;place-items:center;cursor:pointer}
.btn-campana svg{width:18px;height:18px}
.btn-campana .punto{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#D11317;color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px #06142b}
.desplegable{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:max-content;min-width:200px;max-width:min(300px,86vw);padding:6px;border-radius:14px;background:#0b1a36;border:1px solid var(--line);box-shadow:0 14px 40px rgba(0,0,0,.45);display:grid;gap:2px}
.desplegable[hidden]{display:none}
.desplegable a,.desplegable button,.item-aviso{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:.7em 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.desplegable a:hover,.desplegable button:hover{background:var(--glass2)}
.desplegable form{margin:0;display:block;border-top:1px solid var(--line);padding-top:4px;margin-top:2px}
.desplegable .item-salir{color:#ff8a8d}
.item-aviso{cursor:default}
.vacio-aviso{margin:0;padding:.7em 12px;color:var(--muted)}
.item-tema svg{width:18px;height:18px;flex:none}
.item-tema .luna,.item-tema .t-oscuro{display:none}
html[data-tema=claro] .item-tema .sol,html[data-tema=claro] .item-tema .t-claro{display:none}
html[data-tema=claro] .item-tema .luna{display:block}
html[data-tema=claro] .item-tema .t-oscuro{display:inline}
html[data-tema=claro] .desplegable{background:#fff;border-color:rgba(20,68,137,.18);box-shadow:0 14px 40px rgba(15,35,71,.2)}
html[data-tema=claro] .barra button.quien{color:#0f2347}
html[data-tema=claro] .btn-campana .punto{box-shadow:0 0 0 2px #fff}
html[data-tema=claro] .desplegable .item-salir{color:#b4151a}
html[data-tema=claro] .desplegable a:hover,html[data-tema=claro] .desplegable button:hover,html[data-tema=claro] .barra button.quien:hover{background:#e8f0fc}

/* Celular: logo corto, nombre corto y menús que usan todo el ancho */
.logo-corto{display:none}
@media (max-width:560px){
  .barra img.logo-oscuro,.barra img.logo-claro{display:none}
  .barra img.logo-corto-oscuro{display:block;width:72px;height:auto;margin-right:auto}
  html[data-tema=claro] .barra img.logo-corto-oscuro{display:none}
  html[data-tema=claro] .barra img.logo-corto-claro{display:block;width:72px;height:auto;margin-right:auto}
  .barra .menu-barra{position:static}
  .desplegable,.desplegable.derecha{position:absolute;top:100%;left:10px;right:10px;width:auto;max-width:none;margin-top:6px}
  .item-aviso,.desplegable a{white-space:normal}
}

@media print{.rep tr.grupo td{background:#dfe8f7!important;color:#144489;font-weight:700;border-bottom:1px solid #9cb5dd}.rep tbody tr.grupo{break-after:avoid}}

/* Filtros: unos pocos botones; cada uno abre su lista (en el celular, una hoja desde abajo) */
.fbarra{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.fdesp{position:relative}
.fdesp>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap}
.fdesp>summary::-webkit-details-marker{display:none}
.fdesp>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-3px 0 0 2px;flex:none}
.fdesp[open]>summary::after{transform:rotate(-135deg);margin-top:3px}
.fdesp .fv{color:#fff;font-weight:700}
.fdesp .fv:empty{display:none}
.fdesp>summary .fn{opacity:.85}
.fdesp>summary.activo .fn{opacity:.75;font-weight:500}
.fpanel{position:absolute;top:calc(100% + 8px);left:0;z-index:25;min-width:230px;max-height:60vh;overflow:auto;padding:8px;border-radius:14px;background:#0b1a36;border:1px solid var(--line);box-shadow:0 14px 40px rgba(0,0,0,.45);display:grid;gap:2px}
.ftit{margin:4px 10px 6px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fpanel .opc{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:.75em 12px;border-radius:10px;color:var(--ink);font-weight:600;text-decoration:none}
.fpanel .opc b{color:var(--red)}
.fpanel .opc:hover{background:var(--glass2)}
.fpanel .opc.sel{background:linear-gradient(135deg,rgba(90,162,255,.3),rgba(28,95,209,.3));box-shadow:inset 0 0 0 1px rgba(90,162,255,.55)}
.chip.limpiar{color:#ff8a8d;border-color:rgba(255,138,141,.45)}
html[data-tema=claro] .fpanel{background:#fff;border-color:rgba(20,68,137,.18);box-shadow:0 14px 40px rgba(15,35,71,.2)}
html[data-tema=claro] .fdesp .fv{color:#0f2347}
html[data-tema=claro] .fpanel .opc{color:#0f2347}
html[data-tema=claro] .fpanel .opc:hover{background:#eef4fd}
html[data-tema=claro] .fpanel .opc.sel{background:#dce9ff;box-shadow:inset 0 0 0 1px #9cc0f5}
html[data-tema=claro] .chip.limpiar{color:#b4151a;border-color:rgba(180,21,26,.4)}
@media (max-width:640px){
  .fdesp[open]::before{content:"";position:fixed;inset:0;z-index:24;background:rgba(2,8,20,.6)}
  .fpanel{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:26;max-height:72vh;border-radius:20px 20px 0 0;padding:10px 12px calc(18px + env(safe-area-inset-bottom));min-width:0;animation:desliza-arriba .22s ease-out}
  .fpanel .opc{padding:.8em 14px;font-size:1rem}
}
@keyframes desliza-arriba{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media print{.fbarra{display:none!important}}
@media (max-width:640px){.fbarra{gap:6px}.fbarra .chip{padding:.4em .7em;font-size:.88rem}.fdesp>summary{gap:5px}}

.obs.sin-vuelo{padding:8px 12px;border-radius:10px;background:rgba(245,166,35,.14);border:1px solid rgba(245,166,35,.45)}
h3.sin-vuelo{margin:22px 0 4px;color:#f5a623;font-size:1.05rem}
html[data-tema=claro] h3.sin-vuelo{color:#a15c00}
html[data-tema=claro] .obs.sin-vuelo{background:#fff4e0;border-color:#f0c27a}
.sug-wa{margin:.2rem 0 .4rem;font-size:.9rem}.sug-wa .chip{margin-left:.3rem}
.cliente-form{display:grid;grid-template-columns:1fr;gap:10px;margin:10px 0 4px;max-width:420px}
.fila .cliente-form input,.fila .cliente-form select{width:100%;height:auto;min-height:46px;flex:auto;box-sizing:border-box}
/* Editar paquete: iconos en línea, un panel a la vez */
.editar{margin:12px 0 4px}
.ed-barra{display:flex;flex-wrap:wrap;gap:8px}
.ed-btn{display:inline-flex;align-items:center;gap:6px;padding:.5em .85em;min-height:40px;font:inherit;font-size:.9rem;font-weight:600;color:var(--muted);background:transparent;border:1px solid rgba(157,178,211,.35);border-radius:999px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.ed-btn:hover{border-color:var(--blue)}
.ed-btn[aria-expanded=true]{color:#fff;background:rgba(90,162,255,.22);border-color:var(--blue)}
.ed-peligro[aria-expanded=true]{background:rgba(209,19,23,.3);border-color:#ff6b6e}
.ed-peligro:hover{border-color:#ff6b6e}
.ed-panel{margin:10px 0 2px;padding:12px;border:1px solid rgba(157,178,211,.25);border-radius:14px;background:rgba(5,15,34,.25)}
.ed-panel[hidden]{display:none}
.ed-panel .peso-form,.ed-panel .cliente-form,.ed-panel .descartar-form{margin:0;max-width:none}
.ed-panel .cliente-form{max-width:420px}
.fila .ed-panel input{width:100%;height:auto;min-height:46px;flex:auto;box-sizing:border-box}
.fila .ed-panel .peso-form{grid-template-columns:1fr 92px auto}
.ed-panel .tracking-form,.fila .ed-panel .tracking-form{grid-template-columns:1fr 1fr auto}
.fila .ed-panel input[type=hidden]{display:none}
html[data-tema=claro] .ed-btn[aria-expanded=true]{color:#0f2347}
html[data-tema=claro] .ed-panel{background:rgba(20,68,137,.04)}
@media (max-width:420px){.ed-barra{gap:6px}.ed-btn{padding:.45em .7em}.fila .ed-panel .peso-form{grid-template-columns:1fr 84px}.fila .ed-panel .peso-form .boton{grid-column:1/-1}}
@media (max-width:560px){.fila .ed-panel .tracking-form{grid-template-columns:1fr}.fila .ed-panel .tracking-form .boton{grid-column:1/-1;justify-self:start}}
.boton-mapa{display:inline-flex;align-items:center;gap:6px;padding:.6em 1em;min-height:44px;border:1px solid var(--blue);border-radius:999px;font-weight:700;text-decoration:none}
/* Enlaces como íconos (pensado para celular) */
.ico-enlaces{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.ico-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--blue);border-radius:50%;color:var(--blue);background:transparent;text-decoration:none;transition:background .2s,color .2s}
@media (hover:hover){.ico-btn:hover{background:var(--blue);color:#fff}}
.ico-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ico-wa{border-color:#25a244;color:#25a244}@media (hover:hover){.ico-wa:hover{background:#25a244;color:#fff}}
.ico-neutro{border-color:rgba(157,178,211,.35);color:var(--muted)}@media (hover:hover){.ico-neutro:hover{border-color:var(--blue);color:var(--blue)}}
.foto-linea{display:inline-flex;align-items:center;gap:8px}
/* Íconos redondos dentro de .enlaces (Mi ruta): el subrayado de .enlaces a pintaba gris la parte de abajo del círculo. */
.enlaces a.ico-btn.ico-btn{border-bottom-color:var(--blue)}.enlaces a.ico-btn.ico-wa{border-bottom-color:#25a244}.enlaces a.ico-btn.ico-mapa{border-bottom-color:var(--red)}.enlaces a.ico-btn.ico-neutro{border-bottom-color:rgba(157,178,211,.35)}
.ico-mapa{border-color:var(--red);color:var(--red)}@media (hover:hover){.ico-mapa:hover{background:var(--red);color:#fff}}
.ico-mini{width:34px;height:34px;vertical-align:middle;margin-left:4px}
.ed-icono{width:48px;height:48px;padding:0;justify-content:center;border-radius:50%}
.ed-barra form{display:contents}
.ed-ok{color:#25a244;border-color:#25a244}
.ed-barra .ed-peligro{color:var(--red);border-color:var(--red)}
@media (hover:hover){.ed-barra .ed-peligro:hover{background:var(--red);color:#fff}}
@media (hover:hover){.ed-barra .ed-ok:hover{background:#25a244;color:#fff}}
.barra-actualizar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ico-fila{display:inline-flex;gap:8px}
.ico-chico{width:40px;height:40px}
/* Móvil: nombre arriba; códigos y estados en una sola línea; tracking abajo */
.paq .cod-fuera{order:1;flex:none}
@media (max-width:560px){
  .paq details.fila>summary header{row-gap:8px;column-gap:6px;justify-content:flex-start}
  .paq details.fila>summary header strong.quien-paq{order:0;flex:1 1 100%}
  .paq .cod-fuera{order:1}
  .paq .estado-top{order:2}
  .paq .insignias{order:3;flex:0 1 auto;margin:0}
}
/* Visor de imágenes (foto de entrega, factura en imagen) */
.visor-img{border:0;padding:0;background:rgba(3,10,25,.92);position:fixed;inset:0;margin:0;max-width:none;max-height:none;width:100vw;height:100vh;height:100dvh;overflow:auto;-webkit-overflow-scrolling:touch}
.visor-img::backdrop{background:rgba(3,10,25,.86)}
.visor-img img{display:block;max-width:92vw;max-height:84vh;max-height:84dvh;margin:8vh auto 0;border-radius:14px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.visor-img[open]{display:grid;place-items:center}
.visor-img[open].con-zoom{display:block;place-items:normal}
.visor-img:not(.con-zoom) img{margin:0}
.visor-img.con-zoom img{max-width:none;max-height:none;margin:0}
@media (hover:hover) and (pointer:fine){.visor-img img{max-height:78vh}}
.visor-img img{touch-action:pan-x pan-y}
.visor-zoom{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:2;display:flex;gap:10px}
.visor-zoom button{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:var(--azul,#144489);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.visor-cerrar{position:fixed;top:14px;right:14px;z-index:2;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:var(--red,#d11317);color:#fff;font-size:1.3rem;cursor:pointer}
.boton:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;filter:grayscale(.35)}
.entrar.enviando svg{display:none}

/* Código largo (etiqueta de otro courier): baja de línea en lugar de salirse de la tarjeta */
.resultado{min-width:0;box-sizing:border-box}
.resultado>*{min-width:0;overflow-wrap:anywhere}
.resultado strong{overflow-wrap:anywhere;word-break:break-all;font-size:clamp(1.1rem,6vw,2rem);line-height:1.15}

/* Impresión (también en Android): fondo blanco y sin contenedor flex, que cortaba las hojas dejando espacio vacío */
@media print{
  html,body{background:#fff!important;background-image:none!important;min-height:0!important;height:auto!important}
  body{display:block!important}
  body::before{display:none!important}
  main.contenido{display:block!important;flex:none!important;overflow:visible!important}
}

.botones-fila{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.asignar .botones-fila .boton{justify-self:auto}
.botones-fila .boton.sec{background:transparent;box-shadow:none;border:1px solid rgba(157,178,211,.45);color:var(--muted)}

/* Visor del PDF de la lista (iPhone/iPad/app instalada) */
.visor-pdf{border:0;padding:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;background:#e9eef7;color:#0f2347;overflow:hidden}
.visor-pdf[open]{display:flex;flex-direction:column}
.vp-titulo{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-barra{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));background:#0f2347;color:#fff;font-weight:700}
.vp-barra button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-size:1.2rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.vp-barra .vp-compartir{background:var(--blue,#5aa2ff);border-color:transparent;color:#06142b}
.vp-paginas{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:10px 0 24px;touch-action:pan-x pan-y}
.vp-in{width:fit-content;min-width:100%;text-align:center}
.vp-acc{display:flex;gap:8px}
.vp-barra .vp-menos,.vp-barra .vp-mas{font-size:1.5rem;line-height:1}
.vp-paginas canvas{display:block;margin:0 auto 10px;background:#fff;box-shadow:0 4px 18px rgba(15,35,71,.25)}
.vp-msg{margin:40px 16px}
.resultado .botones-fila{margin-top:12px}

/* Campo con X para quitar lo elegido */
.campo-x{position:relative}
.campo-x input{width:100%;box-sizing:border-box;padding-right:48px}
.campo-x-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:0;background:rgba(157,178,211,.25);color:inherit;font-size:1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.campo-x-btn[hidden]{display:none}
input.bloqueado{opacity:.7;cursor:not-allowed}

/* Tracking con ícono de copiar */
.trk{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.trk-t{word-break:break-all}
.copiar-trk{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;border:1px solid rgba(157,178,211,.4);background:transparent;color:var(--blue,#5aa2ff);cursor:pointer}
@media (hover:hover){.copiar-trk:hover{background:var(--blue,#5aa2ff);color:#06142b}}
.copiar-trk .i-listo{display:none}
.copiar-trk.copiado{color:#1fbf75;border-color:#1fbf75}
.copiar-trk.copiado .i-copiar{display:none}
.copiar-trk.copiado .i-listo{display:inline-flex}
.copiar-trk .i-copiar{display:inline-flex}
html[data-tema=claro] .copiar-trk{color:#144489}

/* Login: "Olvidé mi clave" cambia el formulario por el de pedir clave */
.tarjeta .olvide{margin:18px 0 0;text-align:center}
.enlace-olvide{background:none;border:0;padding:.4em .6em;font:inherit;font-weight:600;font-size:.95rem;color:#8db8ff;cursor:pointer}
.enlace-olvide::after{content:" ›"}
.nota-olvide{margin:0 0 14px;color:#c7d6f0;line-height:1.45}
html[data-tema=claro] .enlace-olvide{color:#1c5fd1}
html[data-tema=claro] .nota-olvide{color:#41557a}

/* Contraseña con botón Mostrar */
.campo-ver{position:relative;display:block}
.campo-ver input{width:100%;box-sizing:border-box;padding-right:86px}
.mostrar-clave{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--blue,#5aa2ff);font:inherit;font-weight:700;font-size:.85rem;padding:10px;border-radius:10px;cursor:pointer}
html[data-tema=claro] .mostrar-clave{color:#1c5fd1}
.cierre{margin:4px 0 8px}.cierre .boton{width:100%}
.modos{display:flex;gap:8px;margin:12px 0}.modos .boton{flex:1 1 0;min-width:0;padding-left:.4em;padding-right:.4em;background:var(--glass);color:var(--ink);border:1px solid var(--line);box-shadow:none;font-size:.95rem}.modos .boton.activo{background:linear-gradient(135deg,#2f74e0,#144489);color:#fff;border-color:transparent}.modos.bloques{margin-top:4px}.modos.bloques .boton{font-weight:700;padding-top:.95em;padding-bottom:.95em}.modos:not(.bloques) .boton{font-size:.9rem}
[data-bloque]{margin-top:12px}[data-bloque][hidden]{display:none}
.nota-retiro{padding:10px 14px;border:1px solid rgba(255,193,90,.6);background:rgba(255,193,90,.12);border-radius:14px;max-width:520px;font-weight:600}
.hist li.sin-cliente{cursor:pointer;border-color:rgba(255,193,90,.7);background:rgba(255,193,90,.12);font-weight:600}
.fdesp .fcant{display:inline-block;min-width:1.5em;margin-left:4px;padding:0 .45em;border-radius:999px;background:rgba(255,255,255,.22);color:#fff;font-size:.85em;text-align:center}html[data-tema=claro] .fdesp summary:not(.activo) .fcant{background:rgba(28,95,209,.12);color:inherit}
.fvuelos{display:grid;gap:2px}.fvuelos .opc{cursor:pointer}.fvuelos .opc input{width:auto;margin-right:6px;accent-color:var(--blue,#144489)}.fvuelos .boton{margin-top:8px;width:100%}
.alias-form { display: flex; gap: .5rem; align-items: center; }
.alias-form input[type=text] { flex: 1; min-width: 0; }
.alias-form .boton { flex: none; white-space: nowrap; padding-inline: 1rem; }
form.asignar[data-bloque] { display: flex; flex-direction: column; gap: .9rem; margin-bottom: 1.2rem; }
form.asignar[data-bloque][hidden] { display: none; }
.alias-form .boton[hidden] { display: none; }
.ed-panel ~ .alias-form, details.fila > .alias-form { margin: .8rem 0; }
details.fila > .alias-form input[type=text] { padding: .7rem .9rem; }
#retiro-form .botones-fila{margin-bottom:22px}
.contacto-edit { display: flex; gap: .6rem; justify-content: flex-end; margin-top: .25rem; }
.alias-editar { flex-direction: column; align-items: stretch; margin: .6rem 0 0; }
.alias-editar[hidden] { display: none; }
.alias-editar .boton { align-self: flex-start; }

/* Servidor y seguridad (Conexión) */
.seg-lista{list-style:none;margin:6px 0 10px;padding:0;display:grid;gap:8px}
.seg-lista li{border:1px solid var(--line);border-left-width:4px;border-radius:12px;padding:8px 12px;background:var(--glass)}
.seg-lista p{margin:2px 0 0;font-size:.9rem;color:var(--muted)}
.seg-cab{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.seg-cab span{color:var(--muted);font-size:.9rem}
.seg-cab em{margin-left:auto;font-style:normal;font-weight:700;font-size:.8rem}
.seg-lista .seg-ok{border-left-color:#2ea44f}.seg-lista .seg-info{border-left-color:#6b7a90}.seg-lista .seg-aviso{border-left-color:#e0a100}.seg-lista .seg-alerta{border-left-color:#d11317}.seg-lista .seg-desconocido{border-left-color:#9aa4b2}
.ed-panel .descartar-form + .descartar-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}

/* Fotos de bodega de un paquete */
.fotos-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.foto-item{display:grid;gap:6px;align-content:start}
.foto-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.foto-acc{display:flex;flex-wrap:wrap;gap:4px}
.foto-acc .chip{padding:.25em .7em;font-size:.8rem;cursor:pointer}
.fotos-lista .foto-mas{grid-column:1/-1;justify-self:start;padding:.5em 1.1em;font-size:.9rem;background:transparent;border:1px dashed var(--blue);color:var(--blue);cursor:pointer;box-shadow:none}
.fotos-lista .foto-mas:hover{background:rgba(90,162,255,.12)}
.fotos-msg{display:block;margin-top:8px;color:var(--muted)}
.resultado .fotos-caja{margin-top:10px;text-align:left}
.foto-acc .ed-peligro{color:var(--red);border-color:var(--red)}

/* Reporte para cliente */
.reporte-elegir select{width:100%;max-width:420px;min-height:46px;box-sizing:border-box}
.reporte h2{margin:18px 0 8px;font-size:1.1rem}
.reporte-paq{display:grid;gap:4px;padding:12px 14px;margin-bottom:10px;border:1px solid var(--line);border-radius:14px;background:var(--glass)}
.reporte-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:6px}
.reporte-fotos img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.reporte-elegir{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;max-width:520px}
.reporte-elegir select{grid-column:1/-1;width:100%;max-width:none}
.reporte-fecha{display:grid;gap:4px;min-width:0;font-size:.85rem;color:var(--muted)}
.fecha-campo{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;box-sizing:border-box;height:46px;padding:0 12px;border:1px solid var(--line);border-radius:14px;background:var(--glass);color:var(--ink);font-size:1rem}
.fecha-campo svg{flex:none;opacity:.7}
.fecha-campo input[type=date]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:16px}
.reporte-total{margin:14px 0 6px;font-size:1.05rem}
.reporte-kg{margin-left:8px;padding:.1em .6em;border-radius:999px;font-size:.85rem;font-weight:600;background:rgba(90,162,255,.18)}
.reporte-extra{color:var(--red);font-weight:600}
.reporte-paq .cliente-final{margin-top:8px;min-height:40px;font-size:.9rem}
.reporte-lote{margin:26px 0 10px}
.reporte-lote summary{cursor:pointer;font-weight:600}
.reporte-lote textarea{width:100%;box-sizing:border-box;margin:6px 0 10px;font:inherit;padding:.75em .9em;border:1px solid var(--line);border-radius:14px;background:var(--glass);color:var(--ink)}
.reporte-previa{padding-left:18px;margin:6px 0 12px}
.resultado .aviso-peso{margin:6px 0 0;padding:8px 10px;border-radius:10px;font-weight:600;font-size:.92rem;color:#7a4a00;background:#fff1cf;border:1px solid #f0c36d}
.cliente-final-fila{margin:10px 0}
.cliente-final-fila label{display:grid;gap:4px;font-size:.85rem;color:var(--muted)}
.cliente-final-fila input{min-height:46px}
.resultado .cf-linea{display:block;margin-top:6px;font-weight:600}

/* Clientes finales de un contacto */
.subclientes{margin-top:10px}
.subclientes summary{cursor:pointer;font-weight:600}
.sub-lista{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.sub-lista li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border:1px solid var(--line);border-radius:12px}
.sub-lista form{margin:0}
.sub-lista .chip{cursor:pointer;padding:.2em .8em;font-size:.82rem}
.sub-agregar{display:flex;gap:8px;align-items:center}
.sub-agregar input{flex:1;min-width:0}
.reporte-sub{margin:10px 0 4px;max-width:520px}.reporte-paq select.cliente-final{margin-top:8px;min-height:44px}

/* Select como hoja inferior en el celular (selector.js) */
.fpanel button.opc{width:100%;border:0;background:none;font:inherit;font-weight:600;text-align:left;cursor:pointer}
.hoja-sel{width:100%}
.hoja-sel>summary.chip{width:100%;box-sizing:border-box;min-height:46px;padding:0 14px;justify-content:space-between;border-radius:14px;font-size:1rem;background:rgba(5,15,34,.55);color:#fff;border-color:rgba(255,255,255,.2)}
html[data-tema=claro] .hoja-sel>summary.chip{background:#fff;color:#0f2347;border-color:var(--line)}
.hoja-sel .fv{overflow:hidden;text-overflow:ellipsis;font-weight:500}
.hoja-sel[hidden]{display:none}
.contenido:has(.hoja-sel[open]){z-index:30}
.boton-camara{width:100%;margin-bottom:14px;background:var(--glass);color:var(--ink);border:1px solid var(--line);box-shadow:none}.boton-camara[hidden]{display:none}
.foto-barra{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0}.foto-barra[hidden]{display:none}
.foto-barra .foto-disparo{display:flex;width:100%;min-height:72px;margin:0;font-size:1.15rem;color:#fff}.foto-barra .foto-disparo.ocupado{opacity:.6;pointer-events:none}
.foto-barra .actualizar{flex:1 1 100%;margin:0}
.foto-barra .foto-mal{color:var(--red);font-weight:600}
.conf-fotos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 0}.conf-fotos[hidden]{display:none}.conf-fotos small{grid-column:1/-1;margin:0}
.foto-toma{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;min-height:120px;border:1.5px dashed var(--line);border-radius:16px;background:var(--glass);color:var(--ink);cursor:pointer;overflow:hidden;text-align:center}
.foto-toma span{font-size:1.8rem}.foto-toma b{font-size:.95rem}
.foto-toma img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.foto-toma img[hidden]{display:none}
.foto-toma.lista{border-style:solid;border-color:#3ddc97}.foto-toma.lista b{position:absolute;bottom:6px;left:6px;right:6px;z-index:1;background:rgba(0,0,0,.6);color:#fff;border-radius:8px;padding:2px 6px}
#conf-entrega{grid-template-columns:1fr;margin-top:12px}
/* Paquete con fotos: insignia en el resumen y número sobre el ícono de la cámara */
.estado.e-fotos{display:inline-flex;align-items:center;gap:4px;background:rgba(90,162,255,.14);color:#a9ceff;border-color:rgba(90,162,255,.45)}
.estado.e-fotos svg{flex:none}
.estado.e-fotos .sr,.ico-fotos .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
html[data-tema=claro] .estado.e-fotos{background:#e4eefc;color:#174a9a;border-color:#a9c4ee}
.ico-fotos{position:relative}
.ico-fotos.tiene{color:#fff;background:rgba(90,162,255,.3);border-color:rgba(90,162,255,.75)}
html[data-tema=claro] .ico-fotos.tiene{color:#174a9a;background:#dce9fd;border-color:#7fa6e6}
.ico-fotos .ico-cant{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--red);color:#fff;font-size:.72rem;line-height:20px;text-align:center;font-weight:800;box-shadow:0 0 0 2px #0a1d3d}
html[data-tema=claro] .ico-fotos .ico-cant{box-shadow:0 0 0 2px #fff}
/* Acciones de cada foto: solo íconos */
.foto-acc{gap:8px}
.foto-acc .foto-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;cursor:pointer;color:var(--ink);background:var(--glass);border:1px solid var(--line)}
.foto-acc .foto-ico:hover{border-color:var(--blue);color:#fff}
.foto-acc .foto-ico.ed-peligro{color:var(--red);border-color:rgba(255,74,79,.6)}
html[data-tema=claro] .foto-acc .foto-ico{color:#174a9a;background:#fff;border-color:#c6d4ea}
html[data-tema=claro] .foto-acc .foto-ico.ed-peligro{color:#b3121a;border-color:#f0a3a5}
/* Buscar con código de barras: botón junto a la búsqueda y hoja con la cámara */
.buscar .buscar-cod{flex:none;padding:0 1.1em;align-self:stretch}
.bc-hoja{position:fixed;inset:0;z-index:60;background:rgba(2,8,20,.7);display:flex;align-items:flex-end;justify-content:center}
.bc-hoja[hidden]{display:none}
.bc-caja{width:100%;max-width:520px;background:#0c1f40;border:1px solid var(--line);border-radius:22px 22px 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom,0px));display:grid;gap:12px}
.bc-top{display:flex;justify-content:space-between;align-items:center;color:#fff}
.bc-x{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--glass);color:var(--ink);font-size:1rem;cursor:pointer}
.bc-visor{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:4/3}
.bc-visor[hidden]{display:none}
.bc-visor video{width:100%;height:100%;object-fit:cover;display:block}
.bc-marco{position:absolute;left:10%;right:10%;top:35%;bottom:35%;border:2px solid rgba(255,255,255,.85);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.25)}
.bc-aviso{margin:0;color:var(--muted);font-size:.95rem}
.bc-foto{justify-content:center;cursor:pointer}
html[data-tema=claro] .bc-caja{background:#fff;border-color:#c6d4ea}
html[data-tema=claro] .bc-top{color:#0f2347}
html[data-tema=claro] .bc-x{background:#f2f6fc;color:#174a9a;border-color:#c6d4ea}
/* Búsqueda: X para limpiar; actualizar junto al texto e imprimir alineado con el final de la búsqueda */
.buscar-caja{position:relative;flex:1;display:flex}
.buscar-caja input{flex:1;padding-right:2.8em}
.buscar-caja input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.buscar-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:var(--ink);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.buscar-x[hidden]{display:none}
html[data-tema=claro] .buscar-x{background:#e4ebf6;color:#174a9a}
.barra-actualizar .act-texto{display:inline-flex;align-items:center;gap:10px}
/* Fila de arriba: Bodega a la izquierda e imprimir a la derecha */
.fila-arriba{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.fila-arriba #btn-lista{margin-left:auto}
.boton-bodega svg{flex:none}
.logo-inicio{display:contents}
.atajos{display:flex;gap:10px;flex-wrap:wrap}
.atajos .boton{padding:.7em 1em;flex:1 1 40%;justify-content:center;font-size:.95rem}
@media (min-width:700px){.atajos .boton{flex:0 0 auto}}
.boton.boton-rutas{background:transparent;color:var(--ink);border:1px solid rgba(90,162,255,.6);box-shadow:none}
.boton.boton-rutas:hover{background:rgba(90,162,255,.14);box-shadow:none}
html[data-tema=claro] .boton.boton-rutas{color:#174a9a;border-color:#7fa6e6;background:#fff}
/* Íconos del menú lateral */
.lateral a,.lateral .item-menu{display:flex;align-items:center;gap:12px}
.lateral .ico-menu{flex:none;opacity:.85}
.lateral a.activo .ico-menu,.lateral a:hover .ico-menu{opacity:1}
.lateral .grupo ul .ico-menu{width:18px;height:18px}
/* Rutas: cada mensajero cerrado con su resumen; se abre para ver los paquetes. Flechas para ver otros días. */
.ruta-card>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px}
.ruta-card>summary::-webkit-details-marker{display:none}
.ruta-card>summary strong{display:flex;align-items:center;gap:10px}
.ruta-card>summary strong::before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s;flex:none}
.ruta-card[open]>summary strong::before{transform:rotate(45deg)}
.ruta-card[open]>summary{margin-bottom:10px}
.ruta-dia{margin:0 0 14px}
.ruta-fecha{position:relative;margin:0;flex:1;min-width:0;display:flex;justify-content:center;text-align:center;cursor:pointer;color:inherit;font-weight:inherit}
.ruta-fecha strong{font-size:.98rem;line-height:1.25}
.ruta-fecha input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;padding:0;border:0}
.ruta-volver{text-align:center;margin:-6px 0 14px}
.ruta-dia .ico-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;padding:0}
.ruta-dia .ico-btn.off{opacity:.3;pointer-events:none}
.ruta-fecha strong{white-space:nowrap}

/* Paquetes compacto (oct 2026): un solo rojo por pantalla, atajos tipo barra, filtros en una fila, tarjetas más cortas */
.barra-actualizar{margin:0 0 10px}
.barra-actualizar .act-texto{gap:6px;color:var(--muted);text-decoration:none;font-weight:500;font-size:.85rem;padding:.25em 0;border-radius:8px;-webkit-tap-highlight-color:transparent}
.barra-actualizar .act-texto svg{flex:none;opacity:.8}
@media (hover:hover){.barra-actualizar .act-texto:hover{color:var(--ink)}}
.chip.limpiar,html[data-tema=claro] .chip.limpiar{color:var(--muted);border-color:var(--line);font-weight:500}
.buscar .buscar-cod.boton-rutas{color:var(--blue);padding:0 1em}
html[data-tema=claro] .buscar .buscar-cod.boton-rutas{color:#144489;border-color:rgba(20,68,137,.45)}
.fpanel .opc.opc-sep{margin-top:4px;padding-top:.85em;border-top:1px solid var(--line);border-radius:0 0 10px 10px;justify-content:flex-start;gap:10px;color:var(--muted);font-weight:600}
.fpanel .opc.opc-sep svg{flex:none}
.trk{gap:6px}
.copiar-trk{width:30px;height:30px;border-color:rgba(157,178,211,.3)}
.paq details.fila .meta.resumen span{display:block}
.paq details.fila:not([open]) .meta.resumen{white-space:normal;overflow:visible;text-overflow:clip}
.paq details.fila:not([open]) .meta.resumen .r1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paq details.fila .meta.resumen .r2{opacity:.85}
.paq .insignias .cod-cli{order:-1}
@media (max-width:699px){
  .atajos{gap:6px;margin-bottom:12px;flex:1;width:100%}
  .atajos .boton{flex:1 1 0;min-width:0;flex-direction:column;gap:4px;padding:.6em .15em .55em;font-size:.68rem;line-height:1.1;letter-spacing:0;border-radius:14px}
  .atajos .boton svg{width:22px;height:22px}
  .atajos .boton.boton-rutas{box-shadow:none}
}
@media (max-width:640px){
  .fbarra{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 0 12px;padding:2px 0 4px}
  .fbarra::-webkit-scrollbar{display:none}
  .fbarra>*{flex:none}
  .fbarra .fdesp{position:static}
  /* iPhone recorta lo «fixed» dentro de una fila con scroll: al abrir un filtro la fila deja de deslizarse */
  .fbarra:has(.fdesp[open]){overflow:visible;flex-wrap:wrap}
  .contenido:has(.fdesp[open]){z-index:30}
}
@media (max-width:560px){
  .paq{padding:13px 14px 12px;margin-bottom:10px;border-radius:16px}
  .paq details.fila>summary header{row-gap:6px;column-gap:8px;flex-wrap:wrap}
  .paq details.fila>summary header strong.quien-paq{order:0;flex:1 1 0;min-width:0;font-size:1.05rem}
  .paq .estado-top{order:1;margin-left:auto}
  .paq .insignias{order:3;flex:1 1 100%;margin:0}
  .paq details.fila .trk{font-size:1.25rem;margin:.15em 0 0}
  .paq details.fila:not([open]) .trk{margin-bottom:0}
  .paq .meta.resumen{margin-top:4px;font-size:.9rem;line-height:1.4}
}
/* Clientes: nombre y código en su propia línea; Activa y WhatsApp debajo, sin montarse */
@media (max-width:560px){
  .paq.cli details.fila>summary header strong.quien-paq{flex:1 1 100%;flex-wrap:wrap}
  .paq.cli .quien-paq .nom{white-space:normal}
  .paq.cli details.fila>summary header .estado-top{margin-left:0}
}
.paq.cli .quien-paq small.e-fallo{flex:none;font-size:.7rem;font-weight:700;letter-spacing:.05em;line-height:1.5;padding:.1em .7em}
/* Bodega y Rutas: la opción principal es un control segmentado (una u otra); los modos de adentro son pestañas subrayadas, más discretas. */
.modos.seg{gap:4px;padding:4px;margin:12px 0 6px;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:16px}
html[data-tema=claro] .modos.seg{background:rgba(20,68,137,.08)}
.modos.seg .boton{background:transparent;border:0;border-radius:12px;color:var(--muted);font-weight:700}
.modos.seg .boton.activo{background:linear-gradient(135deg,#2f74e0,#144489);color:#fff;box-shadow:0 6px 18px rgba(20,68,137,.35)}
.modos.sub{gap:0;margin:6px 0 10px;border-bottom:1px solid var(--line)}
.modos.sub .boton{flex:1 1 0;background:transparent;border:0;border-radius:0;border-bottom:3px solid transparent;margin-bottom:-1px;color:var(--muted);font-weight:600;padding-top:.7em;padding-bottom:.6em;box-shadow:none}
.modos.sub .boton.activo{background:transparent;color:var(--ink);border-bottom-color:var(--blue);font-weight:700}
@media (hover:hover){.modos.seg .boton:not(.activo):hover,.modos.sub .boton:not(.activo):hover{color:var(--ink);background:transparent}}
/* «Cómo va AHS»: resumen con gráficos. Colores por clase para que sigan el tema. */
.cv{--c-azul:#4d8dff;--c-verde:#2fd08a;--c-ambar:#ffb547;--c-rojo:#ff5a5f;--c-violeta:#a78bfa;--c-cian:#38c6e8;--c-gris:rgba(157,178,211,.35)}
html[data-tema=claro] .cv{--c-azul:#1c5fd1;--c-verde:#12a066;--c-ambar:#d98a00;--c-rojo:#d11317;--c-violeta:#7c5ce0;--c-cian:#0e9bbf;--c-gris:rgba(20,68,137,.18)}
.cv .cv-periodos{max-width:560px}
.cv .cv-periodos .boton{text-decoration:none;display:flex;align-items:center;justify-content:center}
.cv-heroes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.cv-hero{position:relative;overflow:hidden;background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:16px 18px 54px;display:grid;gap:4px;align-content:start}
.cv-hero small{color:var(--muted);font-weight:600;font-size:.85rem}
.cv-hero b{font-family:"Barlow Condensed",Barlow,sans-serif;font-size:2.5rem;font-weight:600;line-height:1.05;color:var(--ink)}
.cv-hero b em{font-style:normal;font-size:1.1rem;color:var(--muted);font-weight:600}
.cv-hero-verde b{color:var(--c-verde)}
.cv-proy-t{color:var(--muted);font-size:.82rem}
.cv-mini{position:absolute;left:0;right:0;bottom:8px;width:100%;height:38px}
.cv-mini polyline{stroke:var(--c);opacity:.9}
.cv-mini.cv-azul{--c:var(--c-azul)}.cv-mini.cv-verde{--c:var(--c-verde)}.cv-mini.cv-cian{--c:var(--c-cian)}
.cv-tarjeta{background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:18px;margin:0 0 14px;min-width:0}
.cv-tarjeta header{margin-bottom:10px}
.cv-tarjeta h2{margin:0;font-size:1.25rem}
.cv-tarjeta h3{margin:16px 0 8px;font-size:.95rem;color:var(--muted)}
.cv-tarjeta header p{margin:4px 0 0;color:var(--muted);font-size:.92rem}
.cv-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cv-dos>.cv-tarjeta{margin:0 0 14px}
.cv-svg{width:100%;height:auto;display:block;overflow:visible}
.cv-svg .cv-guia{stroke:var(--line);stroke-width:1}
.cv-svg text{font-family:Barlow,system-ui,sans-serif}
.cv-eje{fill:var(--muted);font-size:15px;font-weight:600}
.cv-sub{fill:var(--muted);font-size:12.5px;opacity:.8}
.cv-val{fill:var(--ink);font-size:14px;font-weight:700}
.cv-fuerte{fill:var(--ink);font-weight:800}
.cv-svg rect.cv-azul{fill:var(--c-azul);opacity:.55}.cv-svg rect.cv-azul.cv-act{opacity:1}
.cv-svg rect.cv-verde{fill:var(--c-verde);opacity:.6}.cv-svg rect.cv-verde.cv-act{opacity:1}
.cv-svg rect.cv-gris{fill:var(--c-gris)}
.cv-svg .cv-proy{fill:none;stroke:var(--c-azul);stroke-width:2;stroke-dasharray:5 4;opacity:.8}
.cv-svg polyline.cv-cian{stroke:var(--c-cian)}.cv-svg circle.cv-cian{fill:var(--c-cian)}
.cv-pie{color:var(--muted);font-size:.84rem;margin:10px 0 0}
.cv-pie a{color:var(--blue)}
.cv-leyenda{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;padding:0;margin:10px 0 0;font-size:.88rem;color:var(--muted)}
.cv-leyenda li{display:flex;align-items:center;gap:6px}
.cv-leyenda b{color:var(--ink)}
.cv-leyenda i{width:11px;height:11px;border-radius:3px;display:inline-block;background:var(--c-gris)}
.cv-leyenda.cv-vertical{flex-direction:column;gap:8px;margin:0}
i.cv-azul{background:var(--c-azul)}i.cv-verde{background:var(--c-verde)}i.cv-ambar{background:var(--c-ambar)}i.cv-violeta{background:var(--c-violeta)}i.cv-cian{background:var(--c-cian)}i.cv-gris{background:var(--c-gris)}
.cv-flujo{display:flex;gap:4px;height:46px;border-radius:12px;overflow:hidden}
.cv-etapa{display:flex;align-items:center;justify-content:center;min-width:34px;color:#fff;text-decoration:none;font-weight:800;font-size:1rem}
.cv-e-prealertado{background:#7d8ba6}.cv-e-en_miami{background:var(--c-azul)}.cv-e-en_transito{background:var(--c-cian)}.cv-e-en_bodega{background:var(--c-violeta)}.cv-e-en_ruta{background:var(--c-verde)}
.cv-leyenda i.cv-e-prealertado{background:#7d8ba6}.cv-leyenda i.cv-e-en_miami{background:var(--c-azul)}.cv-leyenda i.cv-e-en_transito{background:var(--c-cian)}.cv-leyenda i.cv-e-en_bodega{background:var(--c-violeta)}.cv-leyenda i.cv-e-en_ruta{background:var(--c-verde)}
.cv-alertas{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}
.cv-alertas li a{display:block;padding:10px 14px;border-radius:12px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--c-ambar)}
.cv-alertas li.cv-al-rojo a{border-left-color:var(--c-rojo)}
.cv-alertas b{font-size:1.05rem}
.cv-ok{margin:12px 0 0;color:var(--c-verde);font-weight:600}
.cv-anillo-fila{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cv-anillo{width:170px;height:170px;flex:none}
.cv-anillo .cv-pista,.cv-medidor .cv-pista{stroke:var(--c-gris)}
.cv-anillo circle.cv-azul,.cv-medidor path.cv-azul{stroke:var(--c-azul)}.cv-anillo circle.cv-verde,.cv-medidor path.cv-verde{stroke:var(--c-verde)}
.cv-anillo circle.cv-ambar{stroke:var(--c-ambar)}.cv-anillo circle.cv-violeta{stroke:var(--c-violeta)}.cv-anillo circle.cv-cian,.cv-medidor path.cv-cian{stroke:var(--c-cian)}
.cv-centro{fill:var(--ink);font:700 17px "Barlow Condensed",Barlow,sans-serif}
.cv-anillo .cv-sub{font-size:10px}
.cv-tramo,.cv-cien{display:flex;gap:4px;margin-top:12px;border-radius:10px;overflow:hidden;font-size:.82rem;font-weight:600}
.cv-tramo span,.cv-cien span{padding:8px 10px;color:#fff;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.cv-azul-f{background:var(--c-azul)}.cv-verde-f{background:var(--c-verde)}
.cv-vacio{color:var(--muted);font-size:.9rem}
.cv-tramo .cv-vacio{color:var(--muted);padding:0}
.cv-top{list-style:none;counter-reset:t;padding:0;margin:0;display:grid;gap:8px}
.cv-top li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:.9rem}
.cv-top-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.cv-top-b{height:10px;border-radius:6px;background:var(--c-gris);overflow:hidden}
.cv-top-b i{display:block;height:100%;background:var(--c-azul);border-radius:6px}
.cv-top-v{font-weight:700;text-align:right;white-space:nowrap}
.cv-top-v small{color:var(--muted);font-weight:600;margin-left:6px}
.cv-cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.cv-cifras div{display:grid;gap:2px}
.cv-cifras b{font:600 2rem/1.05 "Barlow Condensed",Barlow,sans-serif;color:var(--ink)}
.cv-cifras small{color:var(--muted);font-size:.82rem}
.cv-t-verde{color:var(--c-verde)!important}.cv-t-rojo{color:var(--c-rojo)!important}
.cv-medidores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.cv-medidores figure{margin:0;text-align:center}
.cv-medidor{width:100%;max-width:150px;height:auto}
.cv-medidores figcaption{color:var(--muted);font-size:.78rem;line-height:1.25}
.cv-canales{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.cv-canales li{display:grid;grid-template-columns:minmax(0,9em) 1fr auto;gap:10px;align-items:center;font-size:.88rem}
.cv-canales span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-canales i{height:9px;border-radius:5px;background:var(--c-violeta);min-width:4px}
.cv-tabla{width:100%;border-collapse:collapse;font-size:.92rem}
.cv-tabla th,.cv-tabla td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.cv-tabla thead th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.cv-tabla tbody th,.cv-tabla tfoot th{text-align:left;font-weight:600;color:var(--ink);white-space:normal}
.cv-tabla th i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:7px;vertical-align:1px}
.cv-tabla th small{display:block;color:var(--muted);font-weight:500;font-size:.78rem}
.cv-tabla td{font-weight:700;font-variant-numeric:tabular-nums}
.cv-tabla tfoot th,.cv-tabla tfoot td{border-bottom:0;border-top:2px solid var(--line);font-weight:800}
.cv-tabla i.cv-azul{background:var(--c-azul)}.cv-tabla i.cv-ambar{background:var(--c-ambar)}.cv-tabla i.cv-violeta{background:var(--c-violeta)}.cv-tabla i.cv-verde{background:var(--c-verde)}.cv-tabla i.cv-cian{background:var(--c-cian)}
.cv-mini.cv-gris{--c:var(--c-gris)}
.cv-cifras-fila{margin-bottom:6px;grid-template-columns:repeat(3,minmax(0,1fr))}
.cv-cifras b em{font-style:normal;font-size:1rem;color:var(--muted);font-weight:600}
.cv-cifras small .var{margin-left:4px}
.cv-calor{width:100%;border-collapse:separate;border-spacing:4px;font-size:.85rem}
.cv-calor th{color:var(--muted);font-weight:600;text-align:center}
.cv-calor tbody th{text-align:left;white-space:nowrap;font-size:.8rem}
.cv-calor td{text-align:center;height:36px;border-radius:8px;font-weight:700;color:var(--ink);background:color-mix(in srgb,var(--c-azul) calc(var(--i) * 85%),transparent);border:1px solid var(--line)}
@media (max-width:900px){.cv-heroes{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-dos{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.cv-hero{padding:13px 14px 48px}.cv-hero b{font-size:2rem}.cv-tarjeta{padding:14px}.cv-anillo{width:140px;height:140px}.cv-eje{font-size:17px}.cv-val{font-size:16px}.cv-sub{font-size:14px}}
.cv-tarjeta h2{letter-spacing:0;text-transform:none;color:var(--ink);font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:700;font-size:1.35rem}
.cv-eje{font-size:12px}.cv-sub{font-size:10px}.cv-val{font-size:11px}
@media (max-width:560px){.cv-eje{font-size:13px}.cv-val{font-size:12px}.cv-sub{font-size:10.5px}}
/* Parámetros: tarifas en dos grupos */
.parametros .tarifa-grupo{margin:6px 0 -6px;font:700 .82rem/1 "Barlow Condensed",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#7d8fb0)}
.parametros .tarifas{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}
.parametros .tarifa-nota{margin:-4px 0 0}
/* Contactos: tarifas propias */
.tarifas-contacto{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.tarifas-contacto label{margin:0;font-size:.88rem}
.tarifas-contacto .boton{grid-column:1/-1}
.fila .tarifas-contacto input,.fila .sub-agregar input[type=text]{width:100%;height:auto;flex:1 1 auto}
/* Sesiones */
a.kpi{text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}
a.kpi:hover{border-color:var(--blue);transform:translateY(-1px)}
.kpi.kpi-alerta{border-color:rgba(255,74,79,.55)}
.kpi.kpi-alerta b{background:none;-webkit-text-fill-color:var(--red);color:var(--red)}
.ses-ips{border-color:rgba(255,74,79,.45)}
.ses-ips .meta{margin:.35em 0}
.paq.acceso header{flex-wrap:wrap;gap:6px}
.paq.acceso .acciones{margin:10px 0 2px}
/* Retiro directo: cliente final de cada paquete, en su tarjeta */
.cf-paquete{display:grid;gap:6px;margin:10px 0 4px}
.cf-paquete label{margin:0;display:grid;gap:6px;font-size:.9rem}
.cf-paquete .cf-estado{color:var(--muted)}
.metodo-retiro{margin:10px 0 2px;justify-content:center}
/* Bodega: tarjeta del paquete leído al estilo de Paquetes y botones de acción con ícono (sin pastillas pequeñas). */
.resultado{gap:2px;padding:18px 18px 16px}
.resultado .res-cab{display:flex;justify-content:space-between;align-items:center;gap:10px}
.resultado .res-cliente{font-size:1.15rem;font-weight:600;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.resultado .res-cab .estado{flex:none}
.resultado .res-ins{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.resultado>strong{margin-top:8px}
.resultado .res-meta{margin:0;color:var(--muted);font-size:.95rem}
.resultado>em{margin-top:8px}
.resultado .res-acc{display:flex;gap:8px;margin-top:14px}
.resultado .acc-tile{flex:1 1 0;min-width:0;flex-direction:column;gap:4px;padding:.7em .3em .6em;font-size:.82rem;border-radius:14px;background:var(--glass2);color:var(--ink);border:1px solid var(--line);box-shadow:none}
.resultado .acc-tile svg{color:var(--blue)}
.resultado .acc-tile.activo{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}
.resultado .acc-deshacer svg{color:var(--red)}
.resultado .acc-tile:disabled{opacity:.45}
.resultado .res-zona:empty{display:none}
.resultado .res-zona .peso-scan{margin-top:12px}
.resultado .peso-scan .boton{padding:.6em 1.2em}
.metodo-retiro.modos.seg{max-width:340px;margin:10px auto 8px}
.metodo-retiro.modos.seg .boton{padding:.55em .8em;font-size:.92rem}
.foto-barra .foto-sec{flex:1 1 100%;min-height:52px;margin:0;cursor:pointer}
.foto-barra .foto-sec[hidden]{display:none}
.nota-retiro .boton{padding:.45em 1.1em;margin-left:6px;font-size:.9rem}
.foto-barra .foto-sec,.nota-retiro .boton{background:var(--glass2);color:var(--ink);border:1px solid var(--line);box-shadow:none}
.foto-barra #foto-trk-opc{border-color:var(--blue);color:var(--blue)}

.tarifas label.ancho{grid-column:1/-1}

/* Contactos: lista compacta; al tocar uno se abre su bloque de edición debajo */
.ct-lista{background:var(--glass);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-top:6px}
.ct-item+.ct-item{border-top:1px solid var(--line)}
.ct-fila{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto 18px;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;color:var(--ink)}
.ct-fila:hover{background:var(--glass2)}
.ct-fila:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.ct-nombre{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-nombre small{color:var(--muted);font-weight:500}
.ct-wa{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.92rem}
.ct-marcas{display:flex;gap:4px}
.ct-marca{font-style:normal;font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:999px;border:1px solid var(--line)}
.ct-cuenta{color:var(--verde)}.ct-tarifa{color:var(--blue)}
.ct-flecha{color:var(--muted);transition:transform .2s}
.ct-item.abierto .ct-flecha{transform:rotate(180deg)}
.ct-item.abierto .ct-fila{background:var(--glass2)}
.ct-detalle{padding:6px 16px 16px;background:var(--glass2)}
.ct-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 4px}
.ct-form label{margin:0}
.ct-form .boton{grid-column:1/-1}
.ct-borrar{display:flex;justify-content:flex-end;margin-top:8px}
@media (max-width:560px){.ct-form{grid-template-columns:1fr}.ct-fila{grid-template-columns:minmax(0,1fr) auto 18px}.ct-marcas{display:none}}

/* Bodega: una tarea por pantalla. Menú de tres filas; dentro de una tarea, encabezado con «‹ Bodega» para volver */
.menu-pregunta{margin:-4px 0 10px}
.menu-opciones{display:grid;gap:12px}
.menu-op{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;border:1px solid var(--line);background:var(--glass);color:var(--ink);text-decoration:none;line-height:1.15;transition:transform .12s,background .12s}
.menu-op:active{transform:scale(.985);background:var(--glass2)}
@media (hover:hover){.menu-op:hover{background:var(--glass2);border-color:var(--blue)}}
.menu-op>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.menu-op b{font-size:1.1rem}.menu-op small{color:var(--muted);font-size:.9rem;margin-top:3px}
.menu-fl{margin-left:auto;flex:none;color:var(--muted)}
.menu-ic{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center}
.menu-ic.entra{background:rgba(75,224,160,.16);color:var(--verde)}.menu-ic.sale{background:rgba(255,193,90,.18);color:var(--ambar)}
.tarea-cab{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:var(--glass)}
.tarea-cab b{font-size:1.1rem;line-height:1.15}
.tarea-cab .menu-ic{width:38px;height:38px;border-radius:11px}
.tarea-volver{color:var(--blue);font-weight:700;text-decoration:none;white-space:nowrap;padding:6px 4px}
.escaner .paso-tit{margin:16px 0 6px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.escaner .paso:not(:has(> .modos:not([hidden]))){display:none}
.escaner .paso .modos{margin-top:0}
.escaner .paso .metodo-retiro.modos.seg{margin:0 0 4px}
.escaner .texto-modo{margin:14px 0 10px;padding:10px 12px;border-left:3px solid var(--blue);border-radius:0 10px 10px 0;background:var(--glass)}
/* En el menú no se ve nada de leer etiquetas */
.escaner.menu-bodega .paso,.escaner.menu-bodega #texto-modo,.escaner.menu-bodega #camara,.escaner.menu-bodega #foto-barra,.escaner.menu-bodega #manual,.escaner.menu-bodega #resultado,.escaner.menu-bodega h2,.escaner.menu-bodega #historial,.escaner.menu-bodega #aviso-camara{display:none!important}

/* Parámetros: las tarifas primero; el resto en tarjetas cerradas que se abren al tocar */
.par-otros{display:flex;align-items:baseline;gap:8px;margin:30px 0 12px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.15rem;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.par-otros small{font-family:Barlow,sans-serif;font-weight:500;font-size:.85rem;text-transform:none;letter-spacing:0}
main.contenido article.paq.par-sec{padding:0;margin-bottom:12px;overflow:hidden}
.par-sec>details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:62px;padding:16px 20px}
.par-sec>details>summary::-webkit-details-marker{display:none}
.par-sec>details>summary strong{flex:1;min-width:0;font-size:1.05rem}
.par-sec>details>summary .estado{flex:none;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.par-sec>details>summary::after{content:"";flex:0 0 9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:-4px 4px 0 0;transition:transform .2s}
.par-sec>details[open]>summary::after{transform:rotate(-135deg);margin-top:4px}
.par-sec>details[open]>summary{border-bottom:1px solid var(--line)}
.par-sec>details>summary:hover{background:var(--glass2)}
.par-sec .par-cuerpo{padding:4px 20px 22px}
.par-cuerpo>.meta{margin-top:14px}
.par-cuerpo>.acciones{margin:18px 0 6px}
.par-cuerpo .parametros{margin-top:18px}
.par-cuerpo .parametros+.parametros{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.par-cuerpo .parametros~.meta{margin-top:20px}
.par-cuerpo>.nota{margin:20px 0 0}
main.contenido article.paq.par-principal{border-color:rgba(90,162,255,.5);box-shadow:0 0 0 1px rgba(90,162,255,.18),0 12px 34px rgba(0,0,0,.25)}
html[data-tema=claro] main.contenido article.paq.par-principal{border-color:#7fa9ec;box-shadow:0 0 0 1px rgba(28,95,209,.12),0 14px 34px rgba(15,35,71,.1)}
html[data-tema=claro] .par-sec>details>summary:hover{background:#eef4fd}

/* Espera al enviar un formulario (pie.php): capa que cubre la pantalla con un cuadro y un anillo girando. Aparece a los 150 ms, así un envío rápido no parpadea. */
.espera-capa{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(3,10,24,.55);-webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);opacity:0;transition:opacity .22s ease;cursor:progress}
.espera-capa.visible{opacity:1}
.espera-caja{width:min(300px,100%);text-align:center;padding:34px 26px 30px;border-radius:24px;background:linear-gradient(160deg,rgba(14,32,66,.96),rgba(8,20,44,.96));border:1px solid rgba(90,162,255,.32);box-shadow:0 30px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);transform:translateY(10px) scale(.97);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.espera-capa.visible .espera-caja{transform:none}
.espera-anillo{position:relative;width:64px;height:64px;margin:0 auto 20px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 55%,#5aa2ff 85%,#fff 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));animation:ahs-giro 1s linear infinite}
.espera-anillo::before{content:"";position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle,rgba(90,162,255,.28),transparent 70%);-webkit-mask:none;mask:none}
.espera-caja b{display:block;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.45rem;letter-spacing:.02em;color:#fff}
.espera-caja span{display:block;margin-top:6px;color:var(--muted);font-size:.95rem;line-height:1.45}
@keyframes ahs-giro{to{transform:rotate(360deg)}}
html[data-tema=claro] .espera-capa{background:rgba(236,242,252,.6)}
html[data-tema=claro] .espera-caja{background:linear-gradient(160deg,#fff,#f3f7fe);border-color:rgba(28,95,209,.22);box-shadow:0 30px 80px rgba(15,35,71,.22),inset 0 1px 0 #fff}
html[data-tema=claro] .espera-caja b{color:#0f2347}
html[data-tema=claro] .espera-anillo{background:conic-gradient(from 0deg,transparent 0 55%,#1c5fd1 85%,#5aa2ff 100%)}
@media (prefers-reduced-motion:reduce){.espera-anillo{animation-duration:2.4s}}

/* Importar manifiesto: cuadro para pegar las filas copiadas del Excel */
.manif-texto{margin-top:14px}
.manif-texto>summary{cursor:pointer;list-style:none;color:var(--blue);font-weight:600}
.manif-texto>summary::-webkit-details-marker{display:none}
.manif-texto>summary::before{content:"+ ";font-weight:700}
.manif-texto[open]>summary::before{content:"– "}
.manif-texto textarea{width:100%;box-sizing:border-box;margin-top:10px;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;overflow-x:auto}
.manif-texto .acciones{margin:10px 0 0}
/* Línea de resumen bajo los filtros (29/10/2026): qué se ve · cuántos · kilos. Siempre visible. */
.fzona{margin:0 0 16px}
.fzona .fbarra{margin-bottom:10px}
.nota-filtro.resumen{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;margin:0;opacity:1;font-size:.9rem;color:var(--muted);line-height:1.45}
.nota-filtro.resumen .res-vista{color:var(--ink);font-weight:600}
.nota-filtro.resumen .res-cant{white-space:nowrap}
.nota-filtro.resumen .res-volver{color:#5aa2ff;font-weight:600;text-decoration:none;white-space:nowrap}
html[data-tema=claro] .nota-filtro.resumen .res-volver{color:#1c5fd1}
.fvuelos.cargando{opacity:.55;pointer-events:none;transition:opacity .2s}
.fvuelos .opc{cursor:pointer;-webkit-tap-highlight-color:transparent}
/* Filtro Cliente: buscador arriba y lista que se acorta */

/* Portal de AIR CARGO en el paquete: estado, foto de Miami y avisos si no coincide con el correo */
.paq .portal-ml{display:flex;gap:12px;align-items:center;margin:10px 0 0}
.paq .portal-ml .meta{margin:0}
.portal-ml .foto-miami img{display:block;width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid var(--borde,rgba(255,255,255,.18))}
.portal-ml .no-coincide{margin:4px 0 0;font-size:.85em;padding:4px 10px;border-radius:8px;background:rgba(245,166,35,.14);border:1px solid rgba(245,166,35,.45)}
html[data-tema=claro] .portal-ml .no-coincide{background:#fff4e0;border-color:#f0c27a}
.avance-ml{margin:14px 0 18px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--glass)}
.avance-ml p{margin:0 0 10px}
.avance-ml .nota{margin:10px 0 0}
.avance-barra{height:10px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}
.avance-barra span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--azul-fuerte),var(--verde))}
html[data-tema=claro] .avance-barra{background:#dfe6f1}
.avance-cifras{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
@media (max-width:600px){.avance-cifras{grid-template-columns:1fr 1fr}}
.avance-cifras p.cif-ok b{color:var(--verde)}
.avance-cifras p.cif-falta b{color:var(--red)}
.avance-cifras p{margin:0;display:flex;flex-direction:column;gap:2px}
.avance-cifras span{font-size:.8rem;color:var(--muted)}
.avance-cifras b{font-family:'Barlow Condensed',Barlow,sans-serif;font-size:2rem;line-height:1}
@media (hover:none),(pointer:coarse){.visor-zoom{display:none}}
.avance-faltan{list-style:none;margin:12px 0 4px;padding:0;display:grid;gap:6px;font-size:.88rem;color:var(--muted)}
.avance-faltan li{display:grid;grid-template-columns:2.4em 1fr;align-items:baseline}
.avance-faltan b{color:var(--ink);font-variant-numeric:tabular-nums}
/* El SH (lo que Allan escanea) va grande; el tracking del cliente un poco más chico debajo. */
.trk.trk-2{font-size:1.15rem;margin-top:0;opacity:.85}
.trk.trk-2 .copiar-trk{width:32px;height:32px}
/* Escáner: código parecido al que no existe (un dígito de diferencia). */
.parecidos{display:grid;gap:8px;margin:10px 0 4px}
.boton.parecido{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:.7em 1em;border-radius:14px}
.boton.parecido b{font-size:1.15rem}
.boton.parecido small{opacity:.85;font-weight:500}
.lista-fb{margin:8px 0 12px;padding-left:18px;max-height:220px;overflow:auto;font-size:.9rem;color:var(--muted)}
.lista-fb b{color:var(--ink)}
