:root{
  --bg:#0b1220;
  --panel:#ffffff;
  --muted:#6b7280;
  --accent:#2563eb;
  --grad1:#2563eb;
  --grad2:#7c3aed;
}
body.app-body{background:linear-gradient(180deg,#eef4ff 0%,#f8fafc 100%);min-height:100vh;color:#0f172a}
.min-vh-75{min-height:75vh}
.app-nav{background:rgba(11,18,32,.9);backdrop-filter: blur(10px)}
.app-nav .navbar-brand,.app-nav .btn,.app-nav .user-chip{color:#fff}
.user-chip{padding:.45rem .8rem;border:1px solid rgba(255,255,255,.2);border-radius:999px}
.glass-card,.app-card,.stat-card{border-radius:24px;background:#fff}
.hero-icon{width:68px;height:68px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,var(--grad1),var(--grad2));color:#fff;font-size:1.7rem;box-shadow:0 18px 30px rgba(37,99,235,.25)}
.small-hero{width:56px;height:56px;font-size:1.3rem}
.btn-gradient{background:linear-gradient(135deg,var(--grad1),var(--grad2));border:none;color:#fff;border-radius:16px;padding:.9rem 1.1rem;font-weight:700}
.btn-gradient:hover{color:#fff;opacity:.96}
.demo-box,.soft-panel,.empty-state,.history-card,.metric-panel,.feature-card,.driver-stat-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:1rem}
.feature-item{display:flex;gap:.8rem;align-items:center;padding:.45rem 0}
.feature-card{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;justify-content:center;height:100%;font-weight:700}
.feature-card i{font-size:1.3rem;color:#2563eb}
.icon-badge{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.25rem}
.map-box{height:52vh;min-height:360px;border-radius:0 0 24px 24px}
.van-layout{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}
.van-zone{border-radius:20px;padding:1rem;color:#fff;min-height:110px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 14px 28px rgba(0,0,0,.08)}
.group-1{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
.group-2{background:linear-gradient(135deg,#16a34a,#15803d)}
.group-3{background:linear-gradient(135deg,#f59e0b,#d97706)}
.group-4{background:linear-gradient(135deg,#ef4444,#dc2626)}
.group-5{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}
.group-6{background:linear-gradient(135deg,#06b6d4,#0891b2)}
.van-title{font-size:1rem;font-weight:800}
.van-count,.van-range{font-size:.92rem;opacity:.95}
.route-list{display:flex;flex-direction:column;gap:1rem}
.route-item{border:1px solid #e5e7eb;border-radius:22px;padding:1rem;display:flex;gap:1rem;align-items:flex-start;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.05)}
.route-item.is-checked{outline:2px solid #22c55e22}
.route-item.is-delivered{background:#f0fdf4}
.route-badge{min-width:60px;height:60px;border-radius:18px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.1rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}
.route-content{flex:1}
.route-title{font-weight:800;font-size:1.02rem;line-height:1.25}
.grid-actions{grid-template-columns:1fr 1fr;gap:.75rem}
.search-box{max-width:320px;border-radius:14px}
.history-card{height:100%}
.driver-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem}
.big-progress{height:16px;border-radius:999px;background:#e5e7eb}
.big-progress .progress-bar{border-radius:999px;background:linear-gradient(135deg,#2563eb,#7c3aed)}
.scanner-box{min-height:320px;border-radius:24px;background:#0f172a;overflow:hidden;border:1px solid #1e293b}
.scanner-result{min-height:320px;display:flex;align-items:center;justify-content:center}
.scanner-stop{border-radius:24px;padding:1rem;color:#fff;box-shadow:0 12px 24px rgba(0,0,0,.12)}
.leaflet-popup-content-wrapper{border-radius:16px}
@media (max-width: 768px){
  .map-box{height:44vh;min-height:320px}
  .route-item{padding:.9rem;gap:.8rem}
  .route-badge{min-width:52px;height:52px;font-size:1rem;border-radius:16px}
  .grid-actions{grid-template-columns:1fr}
  .search-box{max-width:none}
  .van-layout{grid-template-columns:1fr}

  .route-item.is-delivered {
    opacity: 0.6;
}

.is-delivered { opacity: 0.6; }
.is-failed { border-left: 4px solid red; }
}
