
:root{
  --xanh:#0b5ed7;
  --xanhdam:#083b8a;
  --xanhnhat:#eaf3ff;
  --do:#e53935;
  --done:#14a44d;
  --vang:#f7b731;
  --text:#1a2740;
  --muted:#6f7e96;
  --nen:#f4f7fb;
  --card:#ffffff;
  --border:#dbe6f5;
  --shadow:0 10px 26px rgba(10,49,105,.10);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  background:linear-gradient(180deg,#e7f0ff,#f8fbff 38%,#edf3fb);
  color:var(--text);
}
.phone{
  width:390px; min-height:844px; margin:16px auto; background:var(--nen);
  border:10px solid #111; border-radius:30px; overflow:hidden; position:relative;
  box-shadow:0 18px 50px rgba(8,59,138,.22);
}
.notch{
  position:sticky;top:0;margin:0 auto -22px;width:120px;height:22px;background:#111;
  border-radius:0 0 16px 16px;z-index:50;
}
.pad{padding:50px 16px 96px}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.title{font-size:22px;font-weight:800;color:var(--xanhdam)}
.sub{font-size:12px;color:var(--muted);line-height:1.45}
.logo{
  width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,var(--xanh),#3f8cff 58%,var(--do));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;box-shadow:var(--shadow)
}
.card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:14px;box-shadow:var(--shadow);margin-bottom:12px}
.hero{background:linear-gradient(135deg,var(--xanhdam),var(--xanh) 62%,#388fff 82%,var(--do));color:#fff;padding:18px;border-radius:22px;box-shadow:var(--shadow);margin-bottom:12px}
.hero h2{margin:0 0 7px;font-size:22px}.hero p{margin:0;font-size:13px;line-height:1.5;color:#edf5ff}
.row{display:flex;gap:10px}.row>*{flex:1}
.input{width:100%;padding:13px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);font-size:14px;margin:7px 0}
.btn{width:100%;border:0;border-radius:15px;padding:13px 14px;font-size:14px;font-weight:800;cursor:pointer}
.btn.primary{background:linear-gradient(90deg,var(--xanhdam),var(--xanh));color:#fff}
.btn.secondary{background:#fff;border:1px solid var(--border);color:var(--xanhdam)}
.btn.red{background:linear-gradient(90deg,#ba2626,var(--do));color:#fff}
.btn.green{background:linear-gradient(90deg,#0e8d43,var(--done));color:#fff}
.chip,.status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}
.blue{background:#eaf3ff;color:#0b5ed7}.green{background:#e8f8ee;color:#10893f}.yellow{background:#fff4dc;color:#9d6500}.red{background:#fee9ea;color:#bc302d}
.small{font-size:12px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.menu{background:#fff;border:1px solid var(--border);border-radius:18px;padding:14px;box-shadow:var(--shadow);cursor:pointer}
.menu h4{margin:0 0 8px;font-size:15px}.menu p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.listitem{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #edf2f9}
.icon{width:42px;height:42px;border-radius:14px;background:var(--xanhnhat);color:var(--xanhdam);display:flex;align-items:center;justify-content:center;font-weight:800}
.bottom-nav{
  position:absolute;bottom:0;left:0;right:0;height:78px;background:#fff;border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-around;z-index:30
}
.nav-item{width:20%;text-align:center;font-size:11px;color:var(--muted);cursor:pointer;text-decoration:none}
.nav-item b{display:block;font-size:20px;margin-bottom:4px}.nav-item.active{color:var(--xanhdam);font-weight:800}
.map{
  height:285px;border-radius:20px;position:relative;overflow:hidden;background:linear-gradient(180deg,#cfe3ff,#eff6ff 38%,#dfeaf6);
  border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:12px
}
.road{position:absolute;background:#c0cedd;border-radius:40px;opacity:.92}
.r1{width:150%;height:18px;left:-24%;top:105px;transform:rotate(-11deg)}
.r2{width:150%;height:16px;left:-18%;top:180px;transform:rotate(10deg)}
.r3{width:18px;height:120%;left:195px;top:-10%;transform:rotate(7deg)}
.port{position:absolute;right:48px;top:75px;width:78px;height:78px;border-radius:22px;background:linear-gradient(135deg,var(--xanhdam),var(--xanh));color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;font-weight:800;box-shadow:0 10px 22px rgba(8,59,138,.3)}
.vehicle{position:absolute;width:22px;height:22px;border-radius:50%;background:var(--do);border:3px solid #fff;box-shadow:0 5px 10px rgba(229,57,53,.3);transition:all .8s ease}
.vehicle.me{width:30px;height:30px;background:var(--done)}
.route{position:absolute;left:92px;top:164px;width:155px;height:55px;border-top:4px dashed var(--xanh);border-radius:90px 90px 0 0;transform:rotate(-14deg)}
.floatchip{position:absolute;left:12px;right:12px;bottom:12px;background:rgba(255,255,255,.97);border:1px solid var(--border);border-radius:18px;padding:12px;box-shadow:var(--shadow)}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.slot{background:#fff;border:1px solid var(--border);border-radius:15px;padding:12px;text-align:center;cursor:pointer;box-shadow:var(--shadow)}
.slot.ok{background:#f3fbf6;border-color:#a7dfb9}.slot.warn{background:#fffaf0;border-color:#f1d17a}.slot.full{background:#fff0f0;border-color:#f0aaa8}.slot.selected{outline:3px solid #206ee7}
.slot .time{font-size:13px;font-weight:800}.slot .cap{font-size:11px;color:var(--muted);margin-top:5px}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kpi{background:#fff;border:1px solid var(--border);border-radius:18px;padding:12px;box-shadow:var(--shadow)}
.kpi .v{font-size:23px;font-weight:800;margin-top:6px}
.banner{background:linear-gradient(90deg,#ffe8e7,#fff4f3);border:1px solid #f2c5c3;border-radius:18px;padding:13px;margin-bottom:12px}
.qr{
  width:190px;height:190px;margin:12px auto;background:
  repeating-linear-gradient(0deg,#111 0 7px,#fff 7px 14px),
  repeating-linear-gradient(90deg,transparent 0 7px,#111 7px 14px);
  border:12px solid #fff;box-shadow:var(--shadow);border-radius:12px
}
.progress{height:10px;background:#edf3f9;border-radius:999px;overflow:hidden;margin-top:8px}.progress>div{height:100%;background:linear-gradient(90deg,var(--xanh),#4c98ff)}
.sep{border:0;border-top:1px solid #edf2f7;margin:14px 0}
a{color:inherit}
