/* JP Forwarding portal v2.6: app on the phone (Add to Home Screen), shipment documents, bottom bar. Loaded after portal.css. */
.alert{overflow-wrap:anywhere}
.nav-app[hidden]{display:none!important}
.btn--ghost{background:transparent;border-color:transparent;color:var(--navy);box-shadow:none}
.btn--ghost:hover{background:#eef3f7;color:var(--navy)}
.pcard__head h2 .count,.count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--orange);color:#fff;font-size:.78rem;font-weight:800;vertical-align:2px;margin-left:4px}

/* ---------- documents ---------- */
.docs__in{padding:6px 22px 20px}
.docs__in--admin{display:grid;gap:18px;padding-top:18px}
.doclist{list-style:none;margin:0;padding:0}
.doc{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}
.doc:last-child{border-bottom:0}
.docicon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:52px;border-radius:8px;font-size:.7rem;font-weight:800;letter-spacing:.04em;color:#fff;background:#b3261e;position:relative;box-shadow:inset 0 -14px 0 rgba(0,0,0,.08)}
.docicon::after{content:"";position:absolute;top:0;right:0;border-width:0 12px 12px 0;border-style:solid;border-color:var(--tint) var(--tint) rgba(255,255,255,.45) rgba(255,255,255,.45);border-radius:0 8px 0 4px}
.docicon--img{background:#0b6e99}.docicon--xls{background:#1d6f42}.docicon--doc{background:#2b579a}
.doc__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.doc__name{font-weight:700;color:var(--navy);text-decoration:none;overflow-wrap:anywhere;line-height:1.3}
a.doc__name:hover{color:var(--orange-d);text-decoration:underline}
.doc__meta{font-size:.84rem;color:var(--muted);line-height:1.35}
.doc__file{display:block;font-size:.78rem;overflow-wrap:anywhere}
.doc__actions{flex:0 0 auto;display:flex;gap:6px;align-items:center}
.doc__dl{display:inline-flex;align-items:center;gap:6px}
.doclist--gone .doc{opacity:.7}
.docgone{margin-top:6px}
.docgone summary{cursor:pointer;font-size:.88rem;color:var(--muted);font-weight:600;padding:6px 0}
.empty--docs{padding:18px 0 6px;text-align:left}
.docform{display:grid;grid-template-columns:1.4fr 1fr;gap:12px 14px;align-items:end;padding:16px;border:1px dashed #b9c7d2;border-radius:12px;background:#f8fafb}
.docform .hint{font-weight:400;color:var(--muted)}
.docform label{display:flex;flex-direction:column;gap:4px;font-size:.86rem;font-weight:600;color:var(--navy)}
.docform input[name=title]{font:inherit;font-size:16px;font-weight:400;color:var(--ink);padding:10px 12px;border:1.5px solid #cfd8de;border-radius:10px;background:#fff;width:100%;min-width:0}
.docform input[name=title]:focus{border-color:var(--orange);outline:3px solid rgba(223,96,0,.2);outline-offset:0}
.docform__file{position:relative;grid-row:span 2}
.docform__file input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.docform__drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:104px;border-radius:10px;background:#fff;border:1px solid var(--line);color:var(--navy);text-align:center;padding:12px}
.docform__drop .ico{width:26px;height:26px;color:var(--orange)}
.docform__drop strong{font-size:.95rem;overflow-wrap:anywhere}
.docform__drop small{color:var(--muted);font-weight:500}
.docform.has-file .docform__drop{border-color:var(--orange);background:#fff7f0}
.docform__file:focus-within .docform__drop{outline:3px solid var(--orange);outline-offset:2px}
.docform__go{grid-column:2/-1;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.docs__h{font-size:1rem;margin:4px 0 -6px}
.sub--docs{color:var(--orange-d)!important;font-weight:700}
.sub--docs::before{content:"📎 ";font-weight:400}

/* ---------- install sheet ("Add to Home Screen") ---------- */
.appsheet{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,20,32,0);transition:background .25s;padding:0 10px calc(10px + env(safe-area-inset-bottom))}
.appsheet.is-open{background:rgba(0,20,32,.45)}
.appsheet__card{position:relative;width:100%;max-width:460px;background:#fff;border-radius:20px;padding:22px 20px 18px;box-shadow:0 18px 48px rgba(0,0,0,.28);transform:translateY(110%);transition:transform .25s ease-out}
.appsheet.is-open .appsheet__card{transform:none}
.appsheet__x{position:absolute;top:10px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:#eef3f7;color:var(--navy);font-size:22px;line-height:1;cursor:pointer}
.appsheet__head{display:flex;gap:14px;align-items:center;margin-bottom:12px;padding-right:30px}
.appsheet__head img{border-radius:12px;box-shadow:0 2px 8px rgba(0,35,54,.25)}
.appsheet__head strong{display:block;font-size:1.08rem;color:var(--navy)}
.appsheet__head span{display:block;font-size:.84rem;color:var(--muted)}
.appsheet p{margin:0 0 14px;color:var(--ink)}
.appsheet__steps{margin:4px 0 16px;padding-left:22px;display:grid;gap:9px;color:var(--ink)}
.appsheet__key{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--navy);background:#eef3f7;border-radius:7px;padding:2px 8px;white-space:nowrap}
.appsheet__key svg{color:#0a7aff}
.appsheet__btns{display:flex;gap:10px}
.appsheet__btns .btn{flex:1;justify-content:center}

/* ---------- bottom bar (customers, phones) ---------- */
.tabbar{display:none}
@media (max-width:760px){
  .has-tabbar{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .tabbar__a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.7rem;font-weight:700;color:#6b7a86;text-decoration:none;padding:4px 0;border-radius:10px}
  .tabbar__a svg{width:24px;height:24px}
  .tabbar__a.is-on{color:var(--orange-d)}
  .tabbar__a:hover{color:var(--navy)}
  .appsheet{padding-bottom:calc(74px + env(safe-area-inset-bottom))}

  /* phone layout of the customer pages */
  .portal--customer .topbar__links a[href^="tel:"]{display:none}
  .portal--customer .topbar{font-size:.84rem}
  .portal--customer .pagehead--portal{padding:20px 0 18px}
  .portal--customer .pagehead--portal h1{font-size:1.45rem}
  .portal--customer .pagehead--portal .lead{font-size:.92rem;margin:0}
  .portal--customer .footer{padding-bottom:12px}
  .portal--customer .psection{padding:14px 0 28px}
  .pcard__head{padding:14px 16px}
  .docs__in{padding:2px 16px 14px}
  .docs__in--admin{padding-top:14px}
  .docform{grid-template-columns:1fr;padding:12px}
  .docform__file{grid-row:auto}
  .docform__go{grid-column:auto}
  .docform__go .btn{width:100%;justify-content:center}
  .doc{gap:12px;padding:12px 0}
  .docicon{width:38px;height:46px;font-size:.64rem}
  .doc__actions .btn{padding:8px 10px}
  .hide-xs{display:none}
  .doclist--admin .doc{flex-wrap:wrap}
  .doclist--admin .doc__body{flex:1 1 calc(100% - 60px)}
  .doclist--admin .doc__actions{width:100%;justify-content:flex-end;margin-top:-4px}
  .doclist--admin .doc__actions .hide-xs{display:inline}

  /* shipment cards: header, then PO / ETD / ETA, then terminal / free day / picked up, then route */
  .portal--customer .stable--cards tr{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;padding:14px 26px 12px 14px}
  .portal--customer .stable--cards td{min-width:0;overflow-wrap:anywhere}
  .portal--customer .stable--cards td.c-ship{grid-column:1/3;grid-row:1}
  .portal--customer .stable--cards td.c-status{grid-column:3/4;grid-row:1;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
  .portal--customer .stable--cards td.c-status>*{max-width:100%}
  .portal--customer .stable--cards td.c-status .badge{white-space:normal;text-align:center;line-height:1.25}
  .portal--customer .stable--cards td.c-ref{grid-column:1/2;grid-row:2;font-size:.92rem;overflow-wrap:anywhere}
  .portal--customer .stable--cards td.date:not(.c-lfd):not(.c-pick){grid-column:2/3;grid-row:2}
  .portal--customer .stable--cards td.eta{grid-column:3/4;grid-row:2}
  .portal--customer .stable--cards td.eta{font-size:.98rem}
  .portal--customer .stable--cards td.date{font-size:.92rem}
  .portal--customer .stable--cards td.c-port,.portal--customer .stable--cards td.c-lfd,.portal--customer .stable--cards td.c-pick{grid-row:3;font-size:.9rem}
  .portal--customer .stable--cards td.c-port{grid-column:1/2}.portal--customer .stable--cards td.c-lfd{grid-column:2/3}.portal--customer .stable--cards td.c-pick{grid-column:3/4}
  .portal--customer .stable--cards td.c-more{grid-column:1/-1;grid-row:4;padding-top:6px;border-top:1px dashed var(--line)}
  .portal--customer .stable--cards td.c-more .sub{display:inline;margin-left:6px}
  .portal--customer .stable--cards td[data-label]::before{font-size:.62rem;margin-bottom:1px}
  .portal--customer .stable--cards tr::after{content:"";position:absolute;right:12px;bottom:14px;width:8px;height:8px;border-right:2px solid #9aa8b3;border-top:2px solid #9aa8b3;transform:rotate(45deg)}
  .portal--customer .stable--cards tr:active{background:#f6f8fa}

  /* company switcher: one swipeable row */
  .cswitch{position:sticky;top:0;z-index:50}
  .cswitch__in{flex-wrap:nowrap;gap:8px;padding-top:8px;padding-bottom:8px}
  .cswitch__form{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0;margin-right:-20px;padding-right:20px}
  .cswitch__form::-webkit-scrollbar{display:none}
  .cswitch__btn{white-space:nowrap;padding:8px 14px}
  .cswitch__label{display:none}

  /* shipment page */
  .portal--customer .keyfacts strong{font-size:1rem}
  .portal--customer .steps li{font-size:.64rem}
  .portal--customer .backlink{display:inline-block;margin-bottom:6px}
}
/* installed app: the website's marketing footer is not needed */
.is-app .portal--customer .footer__grid,.is-app .portal--customer .footer__cta{display:none}
.is-app .portal .topbar__links a[href^="mailto:"]{display:none}
@media print{.tabbar,.appsheet,.docform{display:none!important}}
