/* =========================================================
   Velo Global Express - app theme (loaded after style.css)
   Brand: black / deep teal + signal red, matching the landing page.
   ========================================================= */
:root{
  --primary:#ee0000; --primary-dark:#c40000; --primary-light:#fdeaea;
  --gradient:linear-gradient(135deg,#f01313 0%,#c40000 100%);
  --vx-bg:#071d24; --vx-bg2:#0a2a33; --vx-card:#0c2c35; --vx-line:#18424d; --vx-text:#f4f9fb; --vx-muted:#9fb8c0; --vx-red:#ee1c25;
}
.btn-primary{box-shadow:0 8px 20px rgba(238,0,0,.26)}
.brand .brand-logo{border-radius:10px}
.logo-img{border-radius:8px}

/* ---------- bottom navigation (all signed-in pages) ---------- */
.bottom-nav{background:#08242c!important;border:1px solid var(--vx-line)!important;border-radius:24px!important;margin:0 12px 12px!important;
  left:0!important;right:0!important;max-width:520px;width:auto;box-shadow:0 10px 30px rgba(0,0,0,.35)!important;padding:8px 6px 14px!important;bottom:0!important}
@media (min-width:560px){.bottom-nav{margin:0 auto 12px!important}}
.bottom-nav a{color:var(--vx-muted)!important;font-size:12.5px;position:relative;gap:3px}
.bottom-nav a svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block;margin:0 auto 2px}
.bottom-nav a.active{color:var(--vx-red)!important}
.bottom-nav a.active::after{content:"";position:absolute;left:50%;bottom:-8px;width:44px;height:3px;border-radius:3px;background:var(--vx-red);transform:translateX(-50%)}
.bottom-nav a.active svg.fill{fill:currentColor}
.nav-dot{position:absolute;top:-2px;right:calc(50% - 22px);background:var(--vx-red);color:#fff;border-radius:10px;font-size:10px;padding:1px 5px;font-weight:700}

/* topbar of inner pages */
.topbar .menu-btn{background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--text);padding:6px}

/* ---------- HOME (dashboard) ---------- */
body.vx-home{background:radial-gradient(120% 60% at 50% 0%,#0d3540 0%,#071d24 55%,#05151a 100%) fixed;color:var(--vx-text);padding-bottom:110px}
body.vx-home main{max-width:560px;margin:0 auto;padding:0}
.vx-head{display:flex;align-items:center;gap:12px;padding:18px 18px 14px;border-bottom:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0))}
.vx-logo{width:62px;height:62px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.14);background:#050505;flex:none}
.vx-brand{flex:1;min-width:0}
.vx-brand h1{font-family:var(--font-display);font-size:21px;line-height:1.1;margin:0;color:#fff;letter-spacing:.2px}
.vx-brand h1 em{font-style:normal;color:var(--vx-red)}
.vx-brand p{margin:4px 0 0;font-size:13px;color:var(--vx-muted)}
.vx-brand p b{color:var(--vx-red);margin:0 4px}
.vx-iconbtn{position:relative;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;flex:none;padding:0}
.vx-iconbtn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.vx-iconbtn .dot{position:absolute;top:10px;right:11px;width:10px;height:10px;border-radius:50%;background:var(--vx-red);border:2px solid #0b2a33}
.vx-greet{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.06)}
.vx-greet small{display:block;font-size:19px;font-weight:600;color:#fff}
.vx-greet h2{font-family:var(--font-display);font-size:38px;line-height:1.15;margin:2px 0 8px;color:#fff;word-break:break-word}
.vx-greet p{margin:0;color:var(--vx-muted);font-size:15px;line-height:1.45}
.vx-greet .bar{display:block;width:60px;height:4px;border-radius:4px;background:var(--vx-red);margin-top:14px}
.vx-avatar{flex:none;width:92px;height:92px;border-radius:50%;border:2px solid rgba(255,255,255,.28);background:rgba(255,255,255,.04);color:#fff;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700;text-decoration:none}
.vx-sec{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 12px}
.vx-sec h3{font-family:var(--font-display);font-size:21px;margin:0;color:#fff;display:flex;align-items:center;gap:10px}
.vx-sec h3 svg{width:28px;height:28px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.vx-sec a{color:var(--vx-muted);font-size:15px;text-decoration:none}
.vx-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 20px}
.vx-act{display:flex;align-items:center;gap:12px;background:var(--vx-card);border:1px solid var(--vx-line);border-radius:18px;padding:16px 12px;color:#fff;text-decoration:none;min-width:0}
.vx-act .ic{flex:none;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ff4a4a,#d3000a);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(238,0,0,.3)}
.vx-act .ic svg{width:28px;height:28px;stroke:#fff;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.vx-act .tx{flex:1;min-width:0}
.vx-act strong{display:block;font-size:16.5px;line-height:1.2}
.vx-act small{display:block;font-size:13.5px;color:var(--vx-muted);line-height:1.3;margin-top:3px}
.vx-act .chev{flex:none;color:#cfdde2;font-size:24px;line-height:1}
.vx-list{padding:0 20px;display:flex;flex-direction:column;gap:12px}
.vx-row{display:flex;align-items:center;gap:14px;background:var(--vx-card);border:1px solid var(--vx-line);border-radius:18px;padding:12px;color:#fff;text-decoration:none}
.vx-thumb{flex:none;width:100px;height:100px;border-radius:14px;background:linear-gradient(145deg,#12414d,#0a2730);display:flex;align-items:center;justify-content:center;overflow:hidden}
.vx-thumb img{width:100%;height:100%;object-fit:cover}
.vx-thumb svg{width:56px;height:56px;stroke:#e7b86b;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.vx-info{flex:1;min-width:0}
.vx-info h4{font-family:var(--font-display);font-size:19px;margin:0 0 4px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vx-stars{display:flex;gap:3px;margin-bottom:5px}
.vx-stars svg{width:19px;height:19px;fill:var(--vx-red)}
.vx-stars svg.off{fill:#6c7f86}
.vx-info p{margin:0 0 8px;font-size:15px;color:#cfdde2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vx-pill{display:inline-block;padding:4px 14px;border-radius:999px;font-size:14px;font-weight:600;color:#fff;background:#e0222b}
.vx-pill.transit{background:#0b7d86}
.vx-pill.delivered{background:#17803d}
.vx-pill.hold{background:#b8741a}
.vx-pill.cancel{background:#6b7780}
.vx-row .chev{flex:none;color:#cfdde2;font-size:26px}
.vx-empty{margin:0 20px;padding:26px 18px;text-align:center;background:var(--vx-card);border:1px dashed var(--vx-line);border-radius:18px;color:var(--vx-muted)}
.vx-empty b{display:block;color:#fff;font-size:18px;margin-bottom:4px}
.vx-empty a{display:inline-block;margin-top:14px;padding:10px 22px;border-radius:999px;background:var(--vx-red);color:#fff;font-weight:700;text-decoration:none}
.vx-banner{position:relative;margin:18px 20px 0;border-radius:18px;border:1px solid var(--vx-line);overflow:hidden;display:flex;align-items:center;gap:14px;padding:16px 16px 16px 14px;
  background:linear-gradient(105deg,#0c2c35 0%,#0c2c35 52%,#8d1118 52.5%,#b3141c 100%)}
.vx-banner .pic{flex:none;width:92px;height:84px}
.vx-banner .pic svg{width:100%;height:100%}
.vx-banner .tx{flex:1;min-width:0}
.vx-banner h4{font-family:var(--font-display);font-size:23px;line-height:1.15;margin:0;color:#fff}
.vx-banner h4 em{display:block;font-style:normal;color:#ff2b33}
.vx-banner p{margin:4px 0 0;font-size:14px;color:#cfdde2;line-height:1.3}
.vx-banner .go{flex:none;display:inline-flex;align-items:center;gap:6px;background:#ff1e26;color:#fff;font-weight:700;padding:13px 20px;border-radius:999px;text-decoration:none;font-size:16px;box-shadow:0 6px 16px rgba(0,0,0,.3);position:relative;z-index:1}
@media (max-width:430px){
  .vx-brand h1{font-size:18px}.vx-greet h2{font-size:32px}.vx-avatar{width:76px;height:76px;font-size:34px}
  .vx-act{padding:14px 10px;gap:10px}.vx-act .ic{width:50px;height:50px}.vx-act .ic svg{width:24px;height:24px}.vx-act strong{font-size:15px}.vx-act small{font-size:12.5px}
  .vx-thumb{width:84px;height:84px}.vx-info h4{font-size:17px}
  .vx-banner{flex-wrap:wrap}.vx-banner .pic{width:70px;height:64px}.vx-banner h4{font-size:19px}.vx-banner .go{padding:11px 16px;font-size:15px;margin-left:auto}
}
body.vx-home .flash-stack{max-width:560px;margin:0 auto}

/* ---------- Announcements (admin broadcasts) on Home ---------- */
.vx-news{background:linear-gradient(135deg,rgba(238,28,37,.16),rgba(238,28,37,.05));border:1px solid rgba(238,28,37,.35);border-radius:18px;padding:16px 18px;margin:0 16px 18px;color:#f4f9fb}
.vx-news h3{font-family:var(--font-display);font-size:16px;margin:0 0 4px;color:#fff}
.vx-news-item{padding-top:12px;margin-top:12px;border-top:1px solid rgba(255,255,255,.1)}
.vx-news h3 + .vx-news-item{border-top:0;margin-top:0;padding-top:6px}
.vx-news-item strong{display:block;font-size:15px;color:#fff}
.vx-news-item p{white-space:pre-wrap;font-size:14px;line-height:1.5;margin:4px 0;color:#d6e4e9}
.vx-news-item small{color:#8fa9b2;font-size:12px}
@media (min-width:1024px){.vx-news{margin:0 0 18px}}
