/* /assets/app.css */
:root{--navy:#062856;--blue:#0b4c91;--red:#e31b23;--ink:#12223a;--muted:#66758a;--line:#e5eaf1;--bg:#f4f7fb;--white:#fff}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}header{height:76px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:var(--navy);text-decoration:none;font-size:22px;font-weight:900;letter-spacing:1px}.brand img{width:58px;height:48px;object-fit:cover;object-position:50% 12%;border-radius:8px}.brand b{color:var(--red)}nav{display:flex;align-items:center;gap:24px}nav a,.link{border:0;background:none;color:var(--navy);text-decoration:none;font-weight:700;cursor:pointer;font-size:14px}main{min-height:calc(100vh - 130px);padding:32px 5vw 64px}footer{background:var(--navy);color:#fff;text-align:center;padding:22px}.hero{min-height:680px;border-radius:28px;overflow:hidden;background:var(--navy);display:grid;grid-template-columns:1fr 1.08fr;color:#fff;box-shadow:0 25px 60px #06285625}.hero>div:first-child{padding:90px 7vw;align-self:center}.hero span,.welcome span,.page-title span,.auth-copy span{color:#ff3b42;font-weight:900;letter-spacing:2px;font-size:13px}.hero h1{font-size:clamp(48px,6vw,86px);line-height:.95;margin:18px 0 25px}.hero h1 em{color:#ff3038;font-style:normal}.hero p{font-size:19px;color:#d7e3f3}.hero-image{background:url('/assets/hero.jpg') center/cover no-repeat;min-height:680px}.track{display:flex;margin-top:36px;max-width:570px;background:#fff;border-radius:14px;padding:7px}.track input{flex:1;border:0;padding:15px;font-size:16px;outline:0}.track button,.btn,.search button{border:0;border-radius:10px;background:var(--red);color:#fff;font-weight:800;padding:14px 24px;cursor:pointer;text-decoration:none;display:inline-block}.track-result{margin-top:18px;background:#fff;color:var(--ink);border-radius:14px;padding:18px}.track-result b,.badge{display:inline-block;background:#e9f4ff;color:var(--blue);border-radius:999px;padding:6px 10px;font-size:12px}.auth{min-height:680px;border-radius:28px;background:linear-gradient(120deg,#041e42e8,#0b4c91df),url('/assets/hero.jpg') center/cover;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;padding:6vw;color:#fff}.auth-copy h1{font-size:58px;max-width:620px;margin:16px 0}.auth-copy p{font-size:18px;color:#d4e3f6}.auth-card{background:#fff;color:var(--ink);border-radius:22px;padding:36px;display:grid;gap:18px;box-shadow:0 30px 80px #00142f55}.auth-card img{width:150px;justify-self:center}.auth-card label,.form-grid label{display:grid;gap:8px;font-size:13px;font-weight:800;color:#43516a}.auth-card input,.form-grid input,.search input,select{width:100%;border:1px solid #d8e0ea;border-radius:10px;padding:13px;background:#fff;font:inherit}.welcome{background:linear-gradient(115deg,var(--navy),var(--blue));color:#fff;border-radius:22px;padding:38px}.welcome h1,.page-title h1{font-size:38px;margin:8px 0}.welcome p{margin:0;color:#dbe8f8}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0}.stats div,.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 8px 30px #1b35550b}.stats b{display:block;font-size:36px;color:var(--navy)}.stats span{color:var(--muted)}.card-head,.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px}.page-title{margin-bottom:24px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:#718096;font-size:12px;text-transform:uppercase}td{font-size:14px}td small{display:block;color:var(--muted);margin-top:5px}.upload,.search,.inline{display:flex;align-items:center;gap:10px}.search{margin:0 0 18px}.search input{max-width:480px}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.timeline{list-style:none;padding:0}.timeline li{border-left:3px solid var(--red);padding:0 0 22px 18px}.timeline li b,.timeline li span{display:block}.timeline li span{color:var(--muted);margin-top:4px}.alert{max-width:900px;margin:0 auto 18px;padding:14px 18px;border-radius:12px;background:#e7f8ee;color:#166534}.alert.error{background:#ffebec;color:#9f1620}.empty{text-align:center;margin:80px auto;max-width:500px}@media(max-width:900px){header{height:auto;padding:14px 4vw;align-items:flex-start}nav{gap:10px;flex-wrap:wrap;justify-content:flex-end}.hero,.auth{grid-template-columns:1fr}.hero-image{min-height:360px}.hero>div:first-child{padding:60px 8vw}.auth{padding:45px 6vw}.auth-copy h1{font-size:42px}.stats,.grid-two{grid-template-columns:1fr}.page-title{align-items:flex-start;flex-direction:column}.upload{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}

/* Logo público servido por la aplicación para evitar restricciones del servidor */
.brand img,.auth-card img{content:url('/?jax_logo=1');object-fit:contain;object-position:center}

.brand img,.auth-card img{content:url('/?jax_logo=2')}

.brand span{display:none}.brand img{width:160px;height:56px;border-radius:0}

/* /assets/v2.css */
.doc{display:inline-block;margin:2px;padding:4px 7px;border-radius:7px;background:#eef1f5;color:#8893a3;font-size:10px;font-weight:800}.doc.yes{background:#e7f8ee;color:#166534}.danger{border:0;border-radius:7px;background:#ffebec;color:#a4141c;padding:7px 10px;font-weight:800;cursor:pointer}.card input[type=checkbox]{width:18px;height:18px;accent-color:#e31b23}button{cursor:pointer}.toolbar,.actions,.pager{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px}.toolbar a:not(.btn),.pager a{color:#0b4c91;font-weight:800;text-decoration:none}.btn.secondary{background:#fff;color:#062856;border:1px solid #cdd8e6}.import-box{margin-bottom:18px}.import-box summary{cursor:pointer;color:#062856;font-weight:900;font-size:16px}.filters{display:grid;grid-template-columns:2fr repeat(6,1fr);gap:10px;margin-bottom:18px}.filters input,.filters select{min-width:0;border:1px solid #d8e0ea;border-radius:10px;padding:11px}.filters button{border:0;border-radius:10px;background:#062856;color:#fff;font-weight:800}.filters a{align-self:center;color:#e31b23;font-weight:800}.pager{justify-content:flex-end;margin-top:18px}.pager span{margin-right:auto;color:#66758a}.actions{justify-content:flex-end;margin-top:20px}.stats:has(div:nth-child(5)){grid-template-columns:repeat(5,1fr)}@media(max-width:1100px){.filters{grid-template-columns:repeat(2,1fr)}.stats:has(div:nth-child(5)){grid-template-columns:repeat(2,1fr)}}
.selection-help{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#eaf2ff;border:1px solid #c8daf4;border-left:5px solid #0b4c91;border-radius:12px;padding:14px 18px;margin:0 0 18px;color:#274766}.selection-help b{color:#062856;font-size:18px}.card button:disabled{opacity:.45;cursor:not-allowed}.form-grid textarea{width:100%;border:1px solid #d8e0ea;border-radius:10px;padding:12px;font:inherit;resize:vertical}.status-actions{display:flex;gap:7px}.status-actions button{border:0;border-radius:7px;padding:8px 10px;background:#167647;color:#fff;font-weight:800}.badge.status-pendiente{background:#fff4d6;color:#8a5a00}.badge.status-aprobada{background:#e7f8ee;color:#166534}.badge.status-rechazada{background:#ffebec;color:#a4141c}@media(max-width:700px){.selection-help{align-items:flex-start;flex-direction:column}.status-actions{flex-direction:column}}
.wr-description{min-width:190px}.wr-value{min-width:105px;max-width:125px}.table-wrap input:disabled{background:#eef2f7;color:#6b778a;cursor:not-allowed}.table-wrap .wr-description,.table-wrap .wr-value{padding:10px 11px;border:1px solid #d5deea;border-radius:9px}
.sticky-guide-bar{position:sticky;top:12px;z-index:40;box-shadow:0 10px 28px rgba(6,40,86,.14);backdrop-filter:blur(10px)}.sticky-guide-bar .btn{margin-left:auto;white-space:nowrap}.sticky-guide-bar .btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.sticky-guide-bar{top:6px}.sticky-guide-bar .btn{width:100%;margin-left:0}}

/* JAX_USERS_SECTION_V4 */
body.app main .users-layout{grid-template-columns:minmax(340px,430px) minmax(0,1fr)!important;gap:24px!important}
body.app main .user-create-card{padding:0 22px 22px;gap:15px 14px!important;border-top:0!important;overflow:hidden}
body.app main .user-form-head{display:flex;align-items:center;gap:12px;margin:0 -22px 3px;padding:18px 22px;background:linear-gradient(135deg,#082b5c,#104d8d);color:#fff}
body.app main .user-form-head .user-form-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:#ed1c24;color:#fff;font-size:25px;font-weight:400;line-height:1;box-shadow:0 7px 16px rgba(0,0,0,.16)}
body.app main .user-form-head h2{margin:0;color:#fff;font-size:18px;letter-spacing:0;text-transform:none}
body.app main .user-form-head p{margin:4px 0 0;color:#dce9f8;font-size:11px;font-weight:500;line-height:1.35}
body.app main .user-create-card label{gap:7px!important;color:#42546d!important;font-size:10px!important;letter-spacing:.055em!important}
body.app main .user-create-card input,body.app main .user-create-card select{height:44px!important;min-height:44px!important;max-height:44px!important;padding:0 13px!important;border-color:#d8e1ec!important;border-radius:9px!important;background:#f7f9fc!important;color:#102641!important;font-size:13px!important;line-height:44px!important;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease!important}
body.app main .user-create-card input::placeholder{color:#8b98a9!important;font-weight:500!important}
body.app main .user-create-card input:focus,body.app main .user-create-card select:focus{outline:0!important;border-color:#145496!important;background:#fff!important;box-shadow:0 0 0 3px rgba(20,84,150,.10)!important}
body.app main .user-create-card small{display:block;margin-top:1px!important;color:#748399;font-size:10px!important;font-weight:500!important;letter-spacing:0;line-height:1.4!important;text-transform:none}
body.app main .user-create-card .user-create-submit{height:44px!important;min-height:44px!important;max-height:44px!important;margin-top:2px;border-radius:9px;line-height:44px!important;font-size:11px!important;text-transform:uppercase!important}
body.app main .users-table-card{align-self:start!important}
@media(max-width:1120px){body.app main .users-layout{grid-template-columns:1fr!important}body.app main .user-create-card{width:min(100%,720px)!important}}
@media(max-width:620px){body.app main .user-create-card{padding:0 16px 17px;gap:13px!important}body.app main .user-form-head{margin:0 -16px 2px;padding:16px}body.app main .user-form-head .user-form-icon{flex-basis:36px;width:36px;height:36px}body.app main .user-create-card input,body.app main .user-create-card select{height:43px!important;min-height:43px!important;max-height:43px!important}body.app main .user-create-card .user-create-submit{height:44px!important;min-height:44px!important;max-height:44px!important}}
/* JAX_USERS_COMPACT_V5 */
body.app main .users-layout,
body.app main .grid-two:has(>form.card.form-grid){
  display:grid!important;
  grid-template-columns:minmax(320px,410px) minmax(0,1fr)!important;
  gap:22px!important;
  align-items:start!important;
}
body.app main .users-layout>form,
body.app main .grid-two:has(>form.card.form-grid)>form.card.form-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:13px!important;
  width:100%!important;
  max-width:410px!important;
  min-height:0!important;
  padding:0 20px 20px!important;
  border:1px solid #dbe4ef!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 12px 30px rgba(8,43,92,.08)!important;
  overflow:hidden!important;
}
body.app main .users-layout>form>label,
body.app main .grid-two:has(>form.card.form-grid)>form>label{
  display:grid!important;
  gap:6px!important;
  margin:0!important;
  min-height:0!important;
  color:#4b5c73!important;
  font-size:10px!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
}
body.app main .users-layout>form input,
body.app main .users-layout>form select,
body.app main .grid-two:has(>form.card.form-grid)>form input:not([type=hidden]),
body.app main .grid-two:has(>form.card.form-grid)>form select{
  display:block!important;
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid #d5dfeb!important;
  border-radius:8px!important;
  background:#f7f9fc!important;
  color:#102641!important;
  font:600 13px/42px Arial,sans-serif!important;
  box-sizing:border-box!important;
  box-shadow:none!important;
}
body.app main .users-layout>form .full,
body.app main .grid-two:has(>form.card.form-grid)>form .full{grid-column:1/-1!important}
body.app main .users-layout>form button.btn,
body.app main .grid-two:has(>form.card.form-grid)>form button.btn{
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  margin:2px 0 0!important;
  padding:0 18px!important;
  border-radius:8px!important;
  font-size:11px!important;
  line-height:42px!important;
  letter-spacing:.04em!important;
}
body.app main .user-form-head{min-height:0}
@media(max-width:1050px){
  body.app main .users-layout,
  body.app main .grid-two:has(>form.card.form-grid){grid-template-columns:1fr!important}
  body.app main .users-layout>form,
  body.app main .grid-two:has(>form.card.form-grid)>form.card.form-grid{max-width:680px!important}
}
@media(max-width:620px){
  body.app main .users-layout>form,
  body.app main .grid-two:has(>form.card.form-grid)>form.card.form-grid{grid-template-columns:1fr!important;max-width:none!important;padding:0 15px 16px!important}
  body.app main .users-layout>form>*,
  body.app main .grid-two:has(>form.card.form-grid)>form>*{grid-column:1!important}
}
/* JAX_USERS_TYPE_V6 */
body.app main .users-layout>form>label,body.app main .grid-two:has(>form.card.form-grid)>form>label{font-size:12px!important;line-height:1.35!important;letter-spacing:.025em!important}
body.app main .users-layout>form input,body.app main .users-layout>form select,body.app main .grid-two:has(>form.card.form-grid)>form input:not([type=hidden]),body.app main .grid-two:has(>form.card.form-grid)>form select{font-size:14px!important;font-weight:600!important}
body.app main .user-form-head h2{font-size:20px}
body.app main .user-form-head p{font-size:12px}
body.app main .user-create-card small{font-size:11px!important}
body.app main .users-layout>form button.btn,body.app main .grid-two:has(>form.card.form-grid)>form button.btn{font-size:13px!important;font-weight:800!important}

/* JAX_AUTO_SELECTED_GUIDED_WR_V1 */
body.app main tr.wr-guide-selected{background:#eef6ff!important;box-shadow:inset 3px 0 0 #145496}
body.app main tr.wr-guide-selected:hover{background:#e5f1ff!important}
body.app main tr.wr-guide-selected .wr-check{accent-color:#145496}
/* JAX_CLIENT_GUIDE_HISTORY_V1 */
body.app main .status-guide-created{background:#e7f7ee!important;color:#11663b!important;border:1px solid #bfe8d0!important;font-weight:800!important}
body.app main .guide-number{display:block!important;margin-top:5px!important;color:#526881!important;font-size:11px!important;font-weight:700!important;letter-spacing:.03em!important}
body.app main .client-guide-filters{grid-template-columns:minmax(230px,2fr) minmax(150px,1fr) minmax(150px,1fr) minmax(150px,1fr) auto auto}
@media(max-width:1050px){body.app main .client-guide-filters{grid-template-columns:repeat(2,minmax(0,1fr))}body.app main .client-guide-filters>input:first-child{grid-column:1/-1!important}}
@media(max-width:620px){body.app main .client-guide-filters{grid-template-columns:1fr}body.app main .client-guide-filters>*{grid-column:1!important;width:100%!important}}
/* /assets/design-system.css */
/* Base system tokens for the PHP portal. Kept deliberately additive so legacy
   templates retain their functional class names and controls. */
:root{--jax-navy:#0b356b;--jax-navy-deep:#082b5c;--jax-red:#ee1b2e;--jax-surface:#fff;--jax-page:#f3f7fb;--jax-line:#d9e4f1;--jax-text:#172b4d;--jax-muted:#617690;--jax-radius:14px;--jax-shadow:0 10px 28px rgba(11,53,107,.08)}
html{background:var(--jax-page)}
body{color:var(--jax-text);background:var(--jax-page);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
button,input,select,textarea{font:inherit}
button,.btn{transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(33,112,214,.35);outline-offset:2px}
.card,.filters,.stats>div{border-color:var(--jax-line);box-shadow:var(--jax-shadow)}
.table-wrap{max-width:100%;overscroll-behavior-inline:contain}
table{border-collapse:separate;border-spacing:0}
th{letter-spacing:.01em}
@media (max-width:900px){.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:680px}.app header{overscroll-behavior:contain}}

/* inline */
*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
/* inline */

html body.app.jax-ops{display:flex!important;flex-direction:column!important;min-height:100vh!important;min-height:100dvh!important;height:auto!important;padding-bottom:0!important}
html body.app.jax-ops>header{flex-shrink:0}
html body.app.jax-ops>main#contenido{flex:1 0 auto!important;min-height:0!important;margin-bottom:0!important}
html body.app.jax-ops>footer{position:static!important;inset:auto!important;flex:0 0 auto!important;box-sizing:border-box!important;display:flex!important;align-items:center;justify-content:center;min-height:48px;margin-top:auto!important;margin-bottom:0!important;padding:14px 24px!important;background:#102c4d!important;color:#d9e5f1!important;border-top:1px solid #254362;font-size:12px!important;line-height:1.6!important;text-align:center;overflow-wrap:anywhere;box-shadow:none!important}
@media(min-width:901px){html body.app.jax-ops>footer{margin-left:280px!important;width:calc(100% - 280px)!important}}
@media(max-width:900px){html body.app.jax-ops>footer{margin-left:0!important;width:100%!important;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))!important;font-size:11px!important}}

/* /assets/visual-audit.css */
:root{--jax-navy:#082b59;--jax-blue:#1466b8;--jax-red:#eb1d2d;--jax-ink:#152b4a;--jax-muted:#667992;--jax-bg:#f4f7fb;--jax-line:#dce6f1;--jax-card:#fff;--jax-radius:14px;--jax-shadow:0 8px 24px rgba(10,42,82,.08)}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{background:var(--jax-bg);color:var(--jax-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.45}
/* Fallback de marca: muestra el recurso público verificado tras la migración. */
img[src="/assets/logo.jpg"]{content:url('/assets/jax-courier-wordmark.png');object-fit:contain;object-position:left center}
header{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:24px;padding:12px clamp(18px,3vw,44px);background:rgba(255,255,255,.96);border-bottom:1px solid var(--jax-line);box-shadow:0 2px 12px rgba(8,43,89,.04)}
.brand{display:flex;align-items:center;gap:10px;min-width:max-content}.brand img{width:46px;height:46px;object-fit:contain;border-radius:8px}.brand span{font-size:1.08rem;font-weight:800;letter-spacing:.02em;color:var(--jax-navy)}.brand b{color:var(--jax-red)}
header nav{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap}header nav a,header nav .link{padding:9px 12px;border-radius:9px;color:var(--jax-navy);font-size:.86rem;font-weight:750;text-decoration:none}header nav a:hover,header nav a[aria-current=page]{background:#eaf3ff;color:var(--jax-blue)}
body.app{min-height:100vh}.app header{position:fixed;inset:0 auto 0 0;width:218px;display:flex;align-items:stretch;flex-direction:column;gap:0;padding:18px 14px;background:#fff;border-right:1px solid var(--jax-line);border-bottom:0;box-shadow:4px 0 18px rgba(8,43,89,.05);overflow-y:auto}.app .brand{padding:0 5px 17px;border-bottom:1px solid #edf2f7}.app header nav{display:flex!important;flex-direction:column;align-items:stretch;gap:3px;width:100%;margin:16px 0 0;border:0;padding:0}.app header nav a,.app header nav .link{width:100%;justify-content:flex-start;padding:10px 11px;font-size:.78rem}.app header nav a[aria-current=page],.app header nav a:hover{box-shadow:inset 3px 0 0 var(--jax-blue);background:#edf5ff}.app header nav form{margin-top:auto}.app header nav .link{background:transparent;border:0;color:#52647d}.app main{width:auto;max-width:none;margin-left:218px;padding:28px clamp(22px,3vw,48px)}.app footer{margin-left:218px;padding:18px 28px}.app .welcome{padding:clamp(22px,3vw,34px);background:linear-gradient(105deg,#082b59,#135da7);border:0;color:#fff}.app .welcome p,.app .welcome span{color:#dceafa}.app .welcome span{color:#ff6770}.app .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.app .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.app .card-head h2{margin:0}
main{width:min(100%,1600px);margin:0 auto;padding:clamp(18px,2.5vw,34px)}h1{letter-spacing:-.03em;line-height:1.06}h2{line-height:1.18}p,small{color:var(--jax-muted)}
.card,.filters,.search,.stats>div,.selection-help,.welcome,.auth-card{border:1px solid var(--jax-line);border-radius:var(--jax-radius);background:var(--jax-card);box-shadow:var(--jax-shadow)}
.card{padding:clamp(14px,1.8vw,22px);margin-bottom:18px}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.page-title h1{margin:.18rem 0 .35rem}.page-title>div>span,.welcome span,.auth-copy span{font-size:.72rem;font-weight:850;letter-spacing:.13em;color:var(--jax-red)}
.filters,.search{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:14px;margin-bottom:18px}.filters input,.filters select,.search input,.search select,input,select{min-height:42px;border:1px solid #cfddec;border-radius:9px;background:#fff;color:var(--jax-ink);padding:9px 11px;font:inherit}.filters input,.search input{flex:1 1 220px}
button,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 15px;border:1px solid transparent;border-radius:9px;background:var(--jax-navy);color:#fff;font:800 .78rem/1 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}button:hover,.btn:hover{background:#0d4384;box-shadow:0 6px 14px rgba(8,43,89,.18);transform:translateY(-1px)}.danger{background:var(--jax-red)}.secondary{background:#fff;color:var(--jax-navy);border-color:#cfddec}
.table-wrap{width:100%;max-width:100%;overflow:auto;border:1px solid #e5edf6;border-radius:11px}table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;background:#fff}table th,table td{padding:.6rem .72rem!important;vertical-align:middle;border-bottom:1px solid #e5edf6;text-align:left}table th{background:#f4f8fc;color:#425a7d;font-size:.74rem;font-weight:850;letter-spacing:.02em;white-space:normal}table td{font-size:.86rem}table tbody tr:hover{background:#f8fbff}table tr:last-child td{border-bottom:0}table small{display:block;margin-top:3px;font-size:.72rem;line-height:1.25}.table-wrap table:has(input[type=checkbox]) th:first-child,.table-wrap table:has(input[type=checkbox]) td:first-child{width:44px;max-width:44px;padding-left:.42rem!important;padding-right:.42rem!important;text-align:center}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--jax-red)}.badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#e9f4ff;color:#0861a9;border:1px solid #c8e1fa;font-size:.7rem;font-weight:850;white-space:nowrap}.alert{border-radius:10px;padding:12px 14px;border:1px solid #c8e6d5;background:#effbf4;color:#176b3a}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:20px}.stats>div{padding:16px;border-left:4px solid var(--jax-blue)}.stats b{display:block;font-size:1.65rem;line-height:1.05}.stats span{font-size:.78rem;font-weight:700;color:var(--jax-muted)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,1.25fr);min-height:520px;overflow:hidden;border-radius:24px;background:var(--jax-navy);box-shadow:var(--jax-shadow)}.hero>div:first-child{display:flex;flex-direction:column;justify-content:center;padding:clamp(34px,7vw,104px);color:#fff}.hero h1{font-size:clamp(3rem,6vw,5.8rem);margin:.5rem 0 1rem}.hero h1 em{color:#ff3140;font-style:normal}.hero p{max-width:470px;color:#dbe9f8;font-size:1.03rem}.hero-image{background:linear-gradient(90deg,rgba(8,43,89,.08),rgba(8,43,89,0)),url('/assets/hero.jpg') center/cover no-repeat}
.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);gap:28px;align-items:center;min-height:580px;padding:clamp(24px,5vw,70px);border-radius:24px;background:linear-gradient(90deg,rgba(8,43,89,.94),rgba(12,84,153,.78)),url('/assets/hero.jpg') center/cover}.auth-copy{color:#fff}.auth-copy h1{font-size:clamp(2.5rem,5vw,4.5rem)}.auth-copy p{color:#dceafa}.auth-card{padding:28px}.auth-card img{display:block;width:112px;height:72px;object-fit:contain;margin:0 auto 16px}.auth-card label{display:grid;gap:6px;font-size:.82rem;font-weight:800;margin:11px 0}
@media(max-width:900px){header,.app header{position:sticky;inset:auto;width:100%;flex-direction:row;align-items:center;overflow:visible;gap:10px;padding:10px 16px;border-right:0;border-bottom:1px solid var(--jax-line)}.brand img{width:38px;height:38px}.brand span{font-size:.95rem}.nav-toggle{display:inline-flex;margin-left:auto}.app .nav-toggle{margin-left:auto}.app header nav,header nav{display:none!important;width:100%;order:3;margin:0;padding-top:8px;border-top:1px solid var(--jax-line)}.app header nav.is-open,header nav.is-open{display:flex!important}.app .brand{padding:0;border:0}.page-title{flex-direction:column}.hero,.auth{grid-template-columns:1fr;min-height:auto}.hero-image{min-height:260px}.hero>div:first-child,.auth{padding:32px 24px}.stats,.app .stats{grid-template-columns:1fr}.table-wrap table{min-width:720px}.filters,.search{align-items:stretch}.filters>* ,.search>*{width:100%}.filters button,.search button{width:100%}.app main{margin-left:0;padding:18px 14px}.app footer{margin-left:0;padding:16px}.app header nav a{width:100%}}
@media(min-width:901px){.nav-toggle{display:none}}

/* Restablece el alto de la barra lateral frente a reglas heredadas. */
@media(min-width:901px){.app header{height:100vh!important;min-height:100vh!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important}.app header nav{position:static!important;display:flex!important;flex:0 0 auto;width:100%!important;min-width:0!important;white-space:normal}.app header nav a,.app header nav .link{min-width:0;white-space:normal}}


/* Ajuste de marca y navegación superior — JAX Courier Cargo */
:root{--jax-bg:#edf2f7;--jax-surface:#f8fafc;--jax-field:#f2f6fa;--jax-line:#d7e1ec}
html,body,body.public,body.app{background:var(--jax-bg)!important}
header .brand img,.brand img{width:148px!important;height:76px!important;object-fit:contain!important;object-position:center!important;background:#fff!important;border-radius:12px!important;box-shadow:0 6px 16px rgba(14,42,75,.08)!important;mix-blend-mode:normal!important}
input,select,textarea{background:var(--jax-field)!important;border-color:var(--jax-line)!important}
.auth-card,.panel-card,.card,.panel{background:var(--jax-surface)!important;border-color:var(--jax-line)!important}
@media(min-width:761px){body.app>header,body.app header:first-child{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;min-height:100dvh!important;padding-top:18px!important}body.app>header .brand,body.app header:first-child .brand{order:1!important;margin:0 14px 18px!important;padding:0 0 16px!important;border-top:0!important;border-bottom:1px solid var(--jax-line)!important}body.app>header nav,body.app header:first-child nav{order:2!important;margin-top:0!important;padding-top:0!important;transform:none!important;position:static!important}body.app>header .brand img,body.app header:first-child .brand img{width:160px!important;height:84px!important}}
@media(max-width:760px){header .brand img{width:112px!important;height:58px!important}}

@media(min-width:761px){body.app>header .brand span,body.app header:first-child .brand span{display:none!important}body.app>header .brand,body.app header:first-child .brand{justify-content:center!important}}


/* Acciones discretas y salida al pie */
body.app>header .brand>span,body.app header:first-child .brand>span{display:none!important}
@media(min-width:761px){body.app>header nav,body.app header:first-child nav{display:flex!important;flex-direction:column!important;min-height:calc(100dvh - 138px)!important}body.app>header nav form:last-child,body.app header:first-child nav form:last-child{margin-top:auto!important;padding-top:18px!important;border-top:1px solid var(--jax-line)!important}}
button.danger,.danger:not(.link),.btn-danger,[data-action="delete"]{background:#fbe8eb!important;color:#a12d3c!important;border:1px solid #efc3ca!important;box-shadow:none!important}button.danger:hover,.danger:not(.link):hover,.btn-danger:hover,[data-action="delete"]:hover{background:#f6d6dc!important;color:#85202f!important}.danger.link{color:#a12d3c!important;background:transparent!important;border-color:transparent!important}


/* No identificados: vista compacta de operaciones */
.unidentified-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:12px}.bulk-wr-form{display:grid;grid-template-columns:minmax(230px,.85fr) minmax(300px,1.4fr) auto;align-items:end;gap:12px;margin:0}.bulk-wr-copy{display:grid;gap:4px}.bulk-wr-copy b{color:#0b3569;font-size:.9rem}.bulk-wr-copy small{color:#657995;line-height:1.35}.bulk-wr-form textarea{width:100%;min-height:58px;padding:10px 12px;border:1px solid #d5e2f0;border-radius:10px;background:#f9fbfe;color:#17395f;resize:vertical;font:inherit}.bulk-wr-form textarea:focus{outline:3px solid rgba(33,112,214,.16);border-color:#2170d6}.bulk-wr-form .btn{white-space:nowrap;min-height:44px}.admin-unidentified-card{padding:14px!important}.admin-unidentified-card .unidentified-help{margin:0 0 10px}.admin-unidentified-card .table-wrap{max-height:calc(100dvh - 350px);min-height:210px;overflow:auto}.admin-unidentified-table{width:100%!important;min-width:0!important;table-layout:fixed}.admin-unidentified-table th,.admin-unidentified-table td{padding:9px 10px!important;word-break:break-word}.admin-unidentified-table th{position:sticky;top:0;z-index:2;background:#123f78!important;color:#fff!important;font-size:.68rem!important}.admin-unidentified-table th:nth-child(1){width:12%}.admin-unidentified-table th:nth-child(2){width:20%}.admin-unidentified-table th:nth-child(3){width:7%}.admin-unidentified-table th:nth-child(4){width:7%}.admin-unidentified-table th:nth-child(5){width:12%}.admin-unidentified-table th:nth-child(6){width:42%}.admin-unidentified-table .inline-assign{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto;gap:7px;align-items:center}.admin-unidentified-table .inline-assign select,.admin-unidentified-table .inline-assign input{min-width:0;width:100%;height:36px;padding:7px 9px;font-size:.78rem}.admin-unidentified-table .inline-assign .btn{min-height:36px;padding:0 12px;font-size:.72rem;white-space:nowrap}@media(max-width:1100px){.bulk-wr-form{grid-template-columns:1fr}.bulk-wr-form .btn{width:100%}.admin-unidentified-card .table-wrap{max-height:none}.admin-unidentified-table{min-width:980px!important}}
/* /assets/ux-logistics.css */
/* JAX Courier — operations UI refinement, additive and route-safe. */
:root{--jax-ink:#102b52;--jax-blue:#0b356b;--jax-blue-2:#165fae;--jax-red:#ef233c;--jax-mist:#f4f7fb;--jax-line:#dce6f1;--jax-card:#fff;--jax-muted:#647996;--jax-success:#157347;--jax-warning:#b45309;--jax-radius:14px;--jax-shadow:0 8px 24px rgba(15,47,87,.08)}
body{background:var(--jax-mist);color:var(--jax-ink)}
a{color:#174fa1;text-underline-offset:2px}
header{box-shadow:0 1px 0 rgba(16,43,82,.09)}
header .brand{gap:10px}header .brand img{object-fit:contain}
header nav a{border-radius:8px;font-weight:700;letter-spacing:-.01em}header nav a:hover,header nav a[aria-current="page"]{background:#e9f2ff;color:var(--jax-blue)}
main{min-width:0}.page-title{gap:20px}.page-title h1{letter-spacing:-.035em;color:var(--jax-ink)}.page-title p{color:var(--jax-muted)}
.card,.filters,.stats>div,.alert{background:var(--jax-card);border:1px solid var(--jax-line);border-radius:var(--jax-radius);box-shadow:var(--jax-shadow)}
.stats{gap:14px}.stats>div{position:relative;overflow:hidden}.stats>div:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(#2170d6,#0b356b)}.stats b{color:var(--jax-blue)}
.toolbar,.actions{gap:10px}.btn,button:not(.link){border-radius:9px;font-weight:800;letter-spacing:.01em;box-shadow:none}.btn:hover,button:not(.link):hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(11,53,107,.16)}
input,select,textarea{border:1px solid #cedcec;border-radius:9px;background:#fff;color:var(--jax-ink)}input:focus,select:focus,textarea:focus{border-color:#2874c8;box-shadow:0 0 0 3px rgba(40,116,200,.14);outline:0}
.filters{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(150px,.7fr) minmax(110px,.45fr) auto auto;gap:12px;align-items:end;padding:16px}.filters label{min-width:0}.filters input,.filters select{width:100%;min-height:44px}.filters button{min-height:44px;white-space:nowrap}
.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid #e2eaf3;border-radius:11px;background:#fff}.table-wrap table{width:100%;min-width:880px;table-layout:auto;border-collapse:separate;border-spacing:0}.table-wrap thead th{position:sticky;top:0;z-index:1;padding:13px 14px;background:#f1f6fc;color:#405878;font-size:11px;font-weight:850;letter-spacing:.025em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid #d7e3ef}.table-wrap tbody td{padding:12px 14px;vertical-align:middle;color:#263f60;border-bottom:1px solid #edf2f7;white-space:normal;overflow-wrap:anywhere}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover{background:#f7fbff}.table-wrap td b{display:block;color:#0c376f;font-size:13px}.table-wrap td small{display:block;margin-top:3px;color:#788ca7;font-size:11px;line-height:1.35}.table-wrap td:last-child{white-space:nowrap}.table-wrap td:last-child a,.table-wrap td:last-child button{display:inline-flex;align-items:center;margin:2px 3px 2px 0}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border:1px solid #cfe2fb;border-radius:999px;background:#eaf4ff;color:#1260ad;font-size:11px;font-weight:850;letter-spacing:.02em}.doc{display:inline-flex;align-items:center;margin:2px 3px 2px 0;padding:4px 7px;border-radius:6px;background:#f1f4f8;color:#71829a;font-size:10px;font-weight:800}.doc.yes{background:#e8f6ef;color:var(--jax-success)}
.empty{padding:40px 20px!important;color:var(--jax-muted);text-align:center}.pager{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:14px 2px;color:var(--jax-muted)}
@media (max-width:1100px){.filters{grid-template-columns:minmax(200px,1fr) minmax(150px,.65fr) minmax(120px,.45fr) auto}.filters a{grid-column:1/-1}.table-wrap table{min-width:760px}.table-wrap thead th,.table-wrap tbody td{padding:11px 10px}}
@media (max-width:760px){main{padding-inline:14px!important}.page-title{align-items:flex-start;flex-direction:column}.page-title .btn{width:100%;text-align:center}.filters{grid-template-columns:1fr;padding:14px}.filters button,.filters a{width:100%;text-align:center}.table-wrap table{min-width:680px}.table-wrap thead th,.table-wrap tbody td{padding:10px 9px;font-size:12px}.stats{grid-template-columns:1fr!important}.toolbar{align-items:stretch;flex-direction:column}.toolbar .btn{width:100%;text-align:center}}

/* Operación v2: mayor jerarquía visual para paneles de clientes y administración. */
.app main{background:radial-gradient(circle at 95% 0,#e5f1ff 0,transparent 30rem),var(--jax-mist)}
.app .page-title{position:relative;padding:24px 26px;margin-bottom:22px;overflow:hidden;border:1px solid #174f8e;border-radius:16px;background:linear-gradient(120deg,#082b59,#12569b);box-shadow:0 14px 30px rgba(8,43,89,.16)}
.app .page-title:after{content:"";position:absolute;right:-80px;top:-105px;width:290px;height:290px;border:36px solid rgba(255,255,255,.09);border-radius:50%}
.app .page-title>div,.app .page-title>a,.app .page-title>form{position:relative;z-index:1}.app .page-title h1{margin:3px 0 4px;color:#fff;font-size:clamp(1.75rem,2.4vw,2.4rem)}
.app .page-title p{margin:0;color:#d9e9fb}.app .page-title>div>span{color:#ff9ba3}.app .page-title>.btn,.app .page-title>a.btn{align-self:center;background:#f22034;color:#fff;border-color:#f22034}
.app .welcome{border-radius:16px;box-shadow:0 14px 30px rgba(8,43,89,.14)}
.app .welcome h1{font-size:clamp(1.8rem,2.4vw,2.55rem);letter-spacing:-.04em}.app .stats{gap:16px;margin-bottom:24px}.app .stats>div{min-height:112px;display:flex;flex-direction:column;justify-content:center;padding:18px 20px;border:1px solid #d5e3f2;border-left:5px solid #1b70c9;box-shadow:0 10px 22px rgba(13,52,96,.07)}
.app .stats b{font-size:2rem;letter-spacing:-.045em}.app .stats span{margin-top:6px;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem}
.app .card{border-radius:16px;border-color:#dbe7f2;box-shadow:0 12px 28px rgba(13,52,96,.07)}
.app .card-head{padding-bottom:14px;border-bottom:1px solid #e4edf5}.app .card-head h2{font-size:1.25rem;color:#102b52}.app .filters,.app .search{border-left:5px solid #1b70c9;box-shadow:0 10px 22px rgba(13,52,96,.06)}
.app .table-wrap{border-color:#d6e4f1;border-radius:12px;box-shadow:inset 0 1px 0 #fff}.app .table-wrap thead th{background:#0b356b;color:#fff;border-color:#174a81;letter-spacing:.05em}.app .table-wrap tbody tr:nth-child(even){background:#f8fbff}.app .table-wrap tbody tr:hover{background:#eaf4ff;box-shadow:inset 4px 0 #ef233c}.app .table-wrap tbody td+td{border-left:1px solid rgba(224,234,243,.7)}
.app .table-wrap td:first-child b{font-size:.88rem;color:#0c3f7c}.app .badge{box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.app .actions,.app .toolbar{padding:10px 0}.app .btn,.app button:not(.link){min-height:42px}.app .secondary{background:#fff;color:#0b356b}
.brand img[src="/assets/jax-courier-poster-logo.jpeg"]{width:132px;height:62px;max-width:100%;object-fit:cover;object-position:center 38%;border:1px solid #d8e4ef;border-radius:10px;background:#fff}.brand:has(img[src="/assets/jax-courier-poster-logo.jpeg"]) span{display:none}
@media (max-width:900px){.app .page-title{padding:20px}.app .page-title>.btn,.app .page-title>a.btn{width:100%}.app .stats>div{min-height:88px}.app .table-wrap tbody td+td{border-left:0}}


/* Responsive correction: phone, tablet and desktop. */
@media (max-width:900px){
 header{position:sticky;padding:12px 18px;min-height:82px}
 header .brand{gap:12px;min-width:0}
 header .brand img,.brand img{width:112px!important;height:58px!important}
 header .brand span{display:inline!important;font-size:clamp(1rem,4vw,1.25rem);white-space:nowrap}
 header nav{width:100%;order:3}
 main{padding:18px 14px 32px}
 .hero{grid-template-columns:1fr;min-height:0;border-radius:20px}
 .hero>div:first-child{padding:46px clamp(28px,9vw,64px);min-height:420px}
 .hero h1{font-size:clamp(3rem,13vw,4.6rem);line-height:.98}
 .hero p{margin-top:22px;font-size:clamp(1rem,4.5vw,1.25rem);line-height:1.45}
 .hero-image{min-height:min(66vw,410px);background-position:center}
 .alert{margin-bottom:18px;padding:16px 18px;font-size:clamp(1rem,4.8vw,1.25rem);line-height:1.4}
 .auth{grid-template-columns:1fr;padding:24px 16px;border-radius:20px}
 .auth-card{padding:20px}
 .page-title,.card-head{align-items:stretch}
 .page-title>.btn,.card-head>.btn,.toolbar .btn,.actions .btn{width:100%}
 .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:480px){
 header{padding:10px 14px}
 header .brand img,.brand img{width:92px!important;height:50px!important}
 header .brand span{font-size:1rem}
 .hero>div:first-child{padding:38px 28px;min-height:380px}
 .hero h1{font-size:clamp(2.75rem,15vw,3.65rem)}
 .hero-image{min-height:300px}
 footer{padding:18px 14px;text-align:center}
}

/* Mobile public navigation: keep tracking and authentication actions visible. */
@media (max-width:900px){
 body.public>header{display:flex;flex-wrap:wrap;align-items:center;height:auto;min-height:0;padding:10px 14px 12px}
 body.public>header .brand{flex:1 1 auto}
 body.public>header nav{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));order:3;width:100%;margin:8px 0 0;padding:8px 0 0;gap:8px;border-top:1px solid #dce6f1}
 body.public>header nav a{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:10px 6px;border:1px solid #d6e3f1;border-radius:10px;background:#f3f7fc;color:#0b356b;font-size:.85rem;text-align:center;text-decoration:none}
 body.public>header nav a[href="/ingresar"]{background:#0b356b!important;border-color:#0b356b!important;color:#fff!important}
 body.public>header nav a[href="/registrarse"]{background:#fff!important;border-color:#efb3ba!important;color:#b5162a!important}
}
@media (max-width:380px){body.public>header nav{gap:5px}body.public>header nav a{font-size:.76rem;padding-inline:3px}}

/* inline */
html body header .brand img{content:normal!important;object-fit:contain!important;object-position:center!important;padding:0!important;display:block}.skip-link{position:fixed;left:12px;top:12px;z-index:9999;transform:translateY(-180%);padding:10px 14px;background:#fff;color:#082b5c;border-radius:8px;box-shadow:0 8px 24px rgba(8,43,92,.2)}.skip-link:focus{transform:translateY(0);outline:3px solid #2170d6;outline-offset:2px}
