:root{
  --navy:#17324D; --teal:#0F8A83; --teal-dark:#0A6B65; --teal-light:#DDF4F1;
  --teal-pale:#EEF9F8; --accent:#52E8C2; --cloud:#F5F8FB; --steel:#D7E1EA;
  --graphite:#1F2A36; --green:#2DC653; --red:#C94B4B; --text:#1F2A36;
  --text-2:#4A5568; --text-3:#8A9BB0; --border:#D7E1EA; --white:#FFFFFF;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--cloud); color:var(--text); min-height:100vh;
  -webkit-tap-highlight-color:transparent;
}
.d-topbar{
  position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between;
  background:var(--navy); color:#fff; padding:14px 16px; padding-top:calc(14px + env(safe-area-inset-top));
}
.d-topbar-brand{font-weight:700; font-size:16px;}
.d-topbar-brand span{color:var(--accent); font-weight:600;}
.d-topbar-logout{
  background:transparent; border:1px solid rgba(255,255,255,.35); color:#fff;
  border-radius:8px; padding:6px 12px; font-size:13px;
}
.d-app{max-width:480px; margin:0 auto; padding:20px 16px 40px;}
.d-screen[hidden]{display:none;}
.d-card{
  background:var(--white); border:1px solid var(--border); border-radius:14px; padding:20px;
}
.d-card-narrow{margin-top:10vh;}
.d-title{font-size:20px; font-weight:700; margin:0 0 6px; color:var(--navy);}
.d-hint{font-size:14px; color:var(--text-2); margin:0 0 16px;}
.d-subtle{font-size:12px; color:var(--text-3); margin:6px 0 0;}
.d-label{display:block; font-size:13px; font-weight:600; color:var(--text-2); margin:14px 0 6px;}
.d-input{
  width:100%; font-size:16px; padding:12px 14px; border:1px solid var(--border); border-radius:10px;
  background:var(--cloud); color:var(--text);
}
.d-input:focus{outline:2px solid var(--teal); outline-offset:1px; background:#fff;}
.d-btn{
  font-size:15px; font-weight:700; border:none; border-radius:10px; padding:13px 18px;
  cursor:pointer; text-align:center;
}
.d-btn-block{width:100%; margin-top:16px;}
.d-btn-primary{background:var(--teal); color:#fff;}
.d-btn-primary:active{background:var(--teal-dark);}
.d-btn-primary:disabled{background:var(--steel); color:var(--text-3); cursor:not-allowed;}
.d-btn-secondary{background:var(--teal-pale); color:var(--teal-dark); border:1px solid var(--teal-light);}
.d-error{color:var(--red); font-size:13px; margin-top:12px;}
.d-back{
  background:none; border:none; color:var(--teal-dark); font-size:14px; font-weight:600;
  padding:0 0 16px; cursor:pointer;
}

.d-camera-wrap{
  position:relative; width:100%; aspect-ratio:1/1; background:#000; border-radius:12px; overflow:hidden; margin-bottom:14px;
}
.d-camera-video{width:100%; height:100%; object-fit:cover;}
.d-camera-frame{
  position:absolute; inset:12%; border:3px solid var(--accent); border-radius:16px; pointer-events:none;
  box-shadow:0 0 0 999px rgba(0,0,0,.25);
}
.d-divider{display:flex; align-items:center; gap:10px; margin:18px 0; color:var(--text-3); font-size:12px;}
.d-divider::before,.d-divider::after{content:""; flex:1; height:1px; background:var(--border);}
.d-inline-form{display:flex; gap:8px;}
.d-inline-form .d-input{flex:1;}

.d-shipment-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;}
.d-shipment-code{font-size:22px; font-weight:800; color:var(--navy);}
.d-chip{
  font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px;
  background:var(--teal-pale); color:var(--teal-dark); text-transform:uppercase; letter-spacing:.03em;
}
.d-chip.is-delivered{background:#E6F8EA; color:var(--green);}
.d-field{margin-bottom:14px;}
.d-field-label{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--text-3); margin-bottom:4px;}
.d-field-value{font-size:15px; color:var(--text);}
.d-item-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--border);}
.d-item-list li{
  display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--border); font-size:14px;
}
.d-item-list li span:last-child{color:var(--text-2); font-weight:600;}

.d-done-panel{
  display:flex; align-items:center; gap:10px; background:#E6F8EA; color:#1a7a37;
  border-radius:12px; padding:16px; font-weight:600; margin-top:10px;
}
.d-done-check{font-size:22px;}

.d-photo-preview-wrap{margin-top:10px; border-radius:12px; overflow:hidden; border:1px solid var(--border);}
.d-photo-preview{display:block; width:100%; max-height:300px; object-fit:cover;}

@media (min-width:600px){
  .d-app{padding-top:40px;}
}

/* ── Dashboard ─────────────────────────────────────────────────────────── */
.d-greeting{font-size:20px; font-weight:800; color:var(--navy);}
.d-stat-row{display:flex; gap:12px; margin:16px 0 4px;}
.d-stat-tile{
  flex:1; background:var(--teal-pale); border:1px solid var(--teal-light); border-radius:12px;
  padding:14px; text-align:center;
}
.d-stat-num{font-size:26px; font-weight:800; color:var(--teal-dark); line-height:1.1;}
.d-stat-label{font-size:11px; font-weight:600; color:var(--text-2); margin-top:4px; text-transform:uppercase; letter-spacing:.02em;}
.d-recent-list{list-style:none; margin:0; padding:0;}
.d-recent-list li{
  display:flex; justify-content:space-between; align-items:center; padding:10px 0;
  border-bottom:1px solid var(--border); font-size:14px;
}
.d-recent-list li:last-child{border-bottom:none;}
.d-recent-code{font-weight:700; color:var(--navy);}
.d-recent-time{font-size:12px; color:var(--text-3);}

/* ── Bottom nav ────────────────────────────────────────────────────────── */
.d-bottom-nav{
  position:fixed; left:0; right:0; bottom:0; z-index:10; display:flex;
  background:#fff; border-top:1px solid var(--border);
  padding-bottom:env(safe-area-inset-bottom);
}
.d-bottom-nav[hidden]{display:none;}
.d-nav-btn{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:2px;
  background:none; border:none; padding:9px 4px 8px; font-size:11px; font-weight:600;
  color:var(--text-3); cursor:pointer;
}
.d-nav-btn.is-active{color:var(--teal-dark);}
.d-nav-icon{font-size:20px; line-height:1;}

/* Room for the fixed bottom nav so content never sits under it */
.d-app{padding-bottom:88px;}

/* ── Topbar actions ────────────────────────────────────────────────────── */
.d-topbar-actions{display:flex; align-items:center; gap:8px;}
.d-topbar-actions[hidden]{display:none;}
.d-topbar-icon-btn{
  background:transparent; border:1px solid rgba(255,255,255,.35); color:#fff;
  border-radius:8px; padding:6px 10px; font-size:14px; line-height:1; cursor:pointer;
}

/* ── Resident field + call link ───────────────────────────────────────── */
.d-field-with-action{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.d-call-link{
  font-size:13px; font-weight:700; color:var(--teal-dark); text-decoration:none;
  border:1.5px solid var(--teal-light); background:var(--teal-pale); border-radius:8px;
  padding:5px 10px; white-space:nowrap;
}
.d-call-link[hidden]{display:none;}

/* ── "Couldn't deliver" ───────────────────────────────────────────────── */
.d-btn-text{background:none; color:var(--text-2); font-weight:600;}
.d-btn-text:active{color:var(--text);}
.d-issue-banner{
  background:#FFF6E5; color:#8A5A00; border:1px solid #F5DDA6; border-radius:10px;
  padding:12px 14px; font-size:13px; margin-bottom:14px;
}
.d-issue-panel{margin-top:14px; padding-top:14px; border-top:1px solid var(--border);}
.d-reason-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px;}
.d-reason-btn{
  font-size:13px; font-weight:600; padding:10px 8px; border-radius:10px;
  border:1.5px solid var(--border); background:#fff; color:var(--text-2); cursor:pointer;
}
.d-reason-btn.is-selected{border-color:var(--teal); background:var(--teal-pale); color:var(--teal-dark);}
.d-textarea{
  width:100%; font-size:14px; padding:10px 12px; border:1px solid var(--border); border-radius:10px;
  background:var(--cloud); color:var(--text); min-height:64px; resize:vertical; font-family:inherit;
  margin-bottom:4px;
}
.d-success{color:var(--green); font-size:13px; margin-top:12px; font-weight:600;}

/* ── Route list ────────────────────────────────────────────────────────── */
.d-route-list{list-style:none; margin:0; padding:0;}
.d-route-item{
  display:flex; align-items:center; gap:12px; padding:12px 4px; border-bottom:1px solid var(--border);
  cursor:pointer;
}
.d-route-item:active{background:var(--teal-pale);}
.d-route-unit{
  flex-shrink:0; width:44px; height:44px; border-radius:10px; background:var(--teal-pale);
  color:var(--teal-dark); font-weight:800; font-size:13px; display:flex; align-items:center;
  justify-content:center; text-align:center; line-height:1.1;
}
.d-route-info{flex:1; min-width:0;}
.d-route-name{font-size:14px; font-weight:700; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.d-route-addr{font-size:12px; color:var(--text-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.d-route-code{font-size:11px; font-weight:700; color:var(--text-3);}
.d-route-item.is-delivered{opacity:.5;}
.d-route-item.is-delivered .d-route-unit{background:#E6F8EA; color:var(--green);}
