/* Delivery Driver Pro – public styles */
.ddp-driver, .ddp-vendor, .ddp-tracking, .ddp-directory, .ddp-card {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: #111827;
    line-height: 1.5;
}
.ddp-card { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:20px; box-shadow:0 1px 2px rgba(0,0,0,.04); margin-bottom:18px; }
.ddp-muted { color:#6b7280; }
.ddp-section-title { margin:1.5em 0 .8em; font-size:1.1em; }

.ddp-btn { display:inline-block; padding:.55em 1.1em; border-radius:8px; border:1px solid transparent; cursor:pointer; font-weight:600; text-decoration:none; transition:all .15s; font-size:14px; }
.ddp-btn-primary { background:var(--ddp-primary,#2563eb); color:#fff; border-color:var(--ddp-primary,#2563eb); }
.ddp-btn-primary:hover { filter:brightness(.92); color:#fff; }
.ddp-btn-secondary { background:#f3f4f6; color:#111827; border-color:#e5e7eb; }
.ddp-btn-success { background:var(--ddp-accent,#16a34a); color:#fff; border-color:var(--ddp-accent,#16a34a); }
.ddp-btn-warn { background:var(--ddp-warning,#f59e0b); color:#fff; border-color:var(--ddp-warning,#f59e0b); }
.ddp-btn-danger { background:var(--ddp-danger,#dc2626); color:#fff; border-color:var(--ddp-danger,#dc2626); }
.ddp-btn:disabled { opacity:.6; cursor:not-allowed; }

.ddp-driver-header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; padding:18px; background:#fff; border:1px solid #e5e7eb; border-radius:12px; margin-bottom:16px; }
.ddp-driver-name { margin:0 0 4px; font-size:1.4em; }
.ddp-rating { font-size:.7em; color:var(--ddp-warning,#f59e0b); margin-left:10px; }
.ddp-availability label { display:block; font-size:.8em; margin-bottom:4px; }
.ddp-availability select { padding:.4em .8em; border-radius:8px; border:1px solid #d1d5db; }

.ddp-stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:18px; }
.ddp-stat { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:14px; }
.ddp-stat span { display:block; color:#6b7280; font-size:.8em; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.ddp-stat strong { font-size:1.5em; color:#111827; }
.ddp-stat.highlight { background:linear-gradient(135deg,var(--ddp-primary,#2563eb),#7c3aed); color:#fff; border-color:transparent; }
.ddp-stat.highlight span, .ddp-stat.highlight strong { color:#fff; }

.ddp-tabs { display:flex; gap:4px; border-bottom:2px solid #e5e7eb; margin-bottom:14px; }
.ddp-tab { background:none; border:none; padding:10px 18px; cursor:pointer; font-weight:600; color:#6b7280; border-bottom:2px solid transparent; margin-bottom:-2px; }
.ddp-tab.active { color:var(--ddp-primary,#2563eb); border-color:var(--ddp-primary,#2563eb); }

.ddp-deliveries { display:grid; gap:12px; }
.ddp-delivery { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:14px; }
.ddp-delivery .row1 { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.ddp-delivery .code { font-family:monospace; background:#f3f4f6; padding:2px 8px; border-radius:6px; font-size:.85em; }
.ddp-delivery .addr { margin:6px 0; color:#374151; }
.ddp-delivery .addr small { color:#6b7280; display:block; }
.ddp-delivery .actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }

.ddp-status { display:inline-block; padding:3px 10px; border-radius:12px; font-size:.75em; font-weight:700; text-transform:uppercase; letter-spacing:.04em; background:#e5e7eb; color:#374151; }
.ddp-status.status-pending    { background:#fef3c7; color:#92400e; }
.ddp-status.status-assigned   { background:#dbeafe; color:#1e40af; }
.ddp-status.status-accepted   { background:#dbeafe; color:#1e40af; }
.ddp-status.status-picked_up  { background:#e0e7ff; color:#3730a3; }
.ddp-status.status-in_transit { background:#ede9fe; color:#5b21b6; }
.ddp-status.status-delivered  { background:#d1fae5; color:#065f46; }
.ddp-status.status-cancelled  { background:#fee2e2; color:#991b1b; }
.ddp-status.status-failed     { background:#fee2e2; color:#991b1b; }

.ddp-pill { padding:2px 8px; border-radius:10px; font-size:.7em; font-weight:600; background:#e5e7eb; color:#374151; }
.ddp-pill.availability-online  { background:#d1fae5; color:#065f46; }
.ddp-pill.availability-busy    { background:#fef3c7; color:#92400e; }
.ddp-pill.availability-offline { background:#e5e7eb; color:#6b7280; }

.ddp-form-row { margin-bottom:14px; }
.ddp-form-row.two { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ddp-form-row label { display:block; font-weight:600; font-size:.9em; color:#374151; }
.ddp-form-row input, .ddp-form-row select, .ddp-form-row textarea {
    width:100%; padding:.6em .8em; margin-top:4px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; font-family:inherit;
}
.ddp-form-row input:focus, .ddp-form-row select:focus, .ddp-form-row textarea:focus { outline:none; border-color:var(--ddp-primary,#2563eb); box-shadow:0 0 0 3px rgba(37,99,235,.1); }

.ddp-message { margin-top:12px; padding:10px 14px; border-radius:8px; display:none; }
.ddp-message.success { background:#d1fae5; color:#065f46; display:block; }
.ddp-message.error   { background:#fee2e2; color:#991b1b; display:block; }

.ddp-table { width:100%; border-collapse:collapse; background:#fff; border-radius:10px; overflow:hidden; box-shadow:0 1px 2px rgba(0,0,0,.04); margin-bottom:18px; }
.ddp-table th, .ddp-table td { padding:10px 14px; text-align:left; border-bottom:1px solid #f3f4f6; vertical-align:top; }
.ddp-table th { background:#f9fafb; font-size:.8em; text-transform:uppercase; letter-spacing:.04em; color:#6b7280; }
.ddp-table tbody tr:last-child td { border-bottom:0; }

.ddp-driver-cards { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.ddp-driver-cards.grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.ddp-driver-card { display:flex; gap:12px; align-items:center; background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:12px; }
.ddp-avatar { width:46px; height:46px; border-radius:50%; background:var(--ddp-primary,#2563eb); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.2em; flex-shrink:0; }
.ddp-driver-meta { display:flex; gap:8px; align-items:center; margin-top:4px; flex-wrap:wrap; font-size:.85em; }

.ddp-stages { list-style:none; padding:0; margin:18px 0; display:flex; justify-content:space-between; position:relative; }
.ddp-stages::before { content:""; position:absolute; top:14px; left:5%; right:5%; height:2px; background:#e5e7eb; z-index:0; }
.ddp-stages li { position:relative; z-index:1; text-align:center; flex:1; }
.ddp-stages li .dot { display:block; width:30px; height:30px; border-radius:50%; background:#fff; border:2px solid #e5e7eb; margin:0 auto 6px; }
.ddp-stages li.done .dot { background:var(--ddp-accent,#16a34a); border-color:var(--ddp-accent,#16a34a); }
.ddp-stages li.current .dot { background:var(--ddp-primary,#2563eb); border-color:var(--ddp-primary,#2563eb); box-shadow:0 0 0 6px rgba(37,99,235,.15); }
.ddp-stages li .label { font-size:.75em; color:#6b7280; }
.ddp-stages li.done .label, .ddp-stages li.current .label { color:#111827; font-weight:600; }

.ddp-tracking-form { margin-bottom:18px; }
.ddp-tracking-form .ddp-form-row { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:end; }
.ddp-tracking-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.ddp-tracking-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin:18px 0; }
.ddp-tracking-grid h4 { margin:0 0 4px; font-size:.9em; color:#6b7280; text-transform:uppercase; letter-spacing:.04em; }

.ddp-timeline { list-style:none; padding-left:0; margin:0 0 18px; }
.ddp-timeline li { padding:8px 0; border-bottom:1px solid #f3f4f6; font-size:.92em; }
.ddp-timeline li:last-child { border-bottom:0; }

.ddp-rate { background:#f9fafb; padding:14px; border-radius:10px; margin-top:14px; }
.ddp-stars { display:flex; gap:4px; margin:8px 0; }
.ddp-star { background:none; border:none; font-size:2em; color:#d1d5db; cursor:pointer; padding:0; line-height:1; }
.ddp-star.active, .ddp-star:hover { color:var(--ddp-warning,#f59e0b); }
.ddp-rate textarea { width:100%; padding:.6em; border:1px solid #d1d5db; border-radius:8px; margin:8px 0; font-family:inherit; }

.ddp-callout { padding:14px; border-radius:10px; margin-bottom:14px; border-left:4px solid; background:#f9fafb; }
.ddp-callout-info { border-color:var(--ddp-primary,#2563eb); }
.ddp-callout-warn { border-color:var(--ddp-warning,#f59e0b); background:#fffbeb; }

/* Mapbox map containers */
.ddp-map { width:100%; height:320px; border-radius:10px; overflow:hidden; margin:14px 0; border:1px solid #e5e7eb; background:#f3f4f6; }
.ddp-map.mini { height:180px; margin:10px 0; }
.ddp-map .mapboxgl-popup-content { font-family:inherit; font-size:13px; padding:6px 10px; }

@media (max-width: 640px) {
    .ddp-form-row.two, .ddp-tracking-form .ddp-form-row { grid-template-columns:1fr; }
    .ddp-stages li .label { font-size:.7em; }
    .ddp-driver-header { flex-direction:column; }
}
