@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
* { font-family: 'Inter', system-ui, sans-serif; }
#map { z-index: 1; }
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
.leaflet-control-attribution { font-size: 9px !important; opacity: 0.6; }
.num-marker { display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;border-radius:50%;border:2.5px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,0.3);width:28px;height:28px;margin-left:-14px;margin-top:-14px;line-height:1; }
.depot-marker { display:flex;flex-direction:column;align-items:center;margin-left:-28px;margin-top:-56px; }
.depot-marker-icon { display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#dc2626;border-radius:10px;border:3px solid #fff;box-shadow:0 4px 14px rgba(220,38,38,0.5); }
.depot-marker-icon svg { width:22px;height:22px;color:#fff; }
.depot-marker-pin { width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid #dc2626;margin-top:-1px; }
.depot-marker-label { margin-top:1px;font-size:9px;font-weight:800;color:#dc2626;background:#fff;padding:1px 5px;border-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,0.15);letter-spacing:0.5px; }
.stop-dolum { background:#059669 !important; }
.stop-teslim { background:#2563eb !important; }
.stop-badge { position:absolute;top:-5px;right:-8px;font-size:7px;font-weight:800;padding:1px 3px;border-radius:3px;color:#fff;line-height:1;letter-spacing:0.3px; }
.stop-badge-dolum { background:#059669; }
.stop-badge-teslim { background:#f59e0b; }
.route-card { transition: all 0.2s ease; cursor: pointer; border-radius:10px; }
.route-card:hover { transform: translateX(2px); box-shadow:0 2px 8px rgba(0,0,0,0.04); }
.route-card.active { ring: 2px; }
.preset-btn { transition: all 0.2s ease; border-radius:10px !important; }
.preset-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,0,0,0.06); }
@keyframes fadeUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
.fade-up { animation: fadeUp 0.3s ease-out; }
@keyframes modalIn { from{opacity:0;transform:scale(0.95) translateY(10px)} to{opacity:1;transform:scale(1) translateY(0)} }
.animate-modal-in { animation: modalIn 0.2s ease-out; }
@keyframes spin { to { transform: rotate(360deg); } }
.spinner { animation: spin 0.8s linear infinite; }
.arrow-marker { filter: drop-shadow(0 1px 2px rgba(0,0,0,0.2)); }
.timeline-line { position:absolute;left:11px;top:28px;bottom:0;width:2px;background:#e2e8f0; }
.timeline-step { position:relative;display:flex;align-items:flex-start;gap:10px;padding-bottom:4px; }
.timeline-dot { width:24px;height:24px;min-width:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;z-index:2;position:relative; }
.timeline-depot { width:24px;height:24px;min-width:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;z-index:2;position:relative; }
.cap-bar { height:6px;border-radius:3px;background:#f1f5f9;overflow:hidden;margin-top:3px; }
.cap-bar-fill { height:100%;border-radius:3px;transition:width 0.4s ease; }
.form-row { display:flex;gap:6px;margin-bottom:6px; }
.form-row > div { flex:1; }
.form-input { width:100%;padding:5px 8px;font-size:11px;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;background:#f8fafc;transition:all 0.2s ease;font-family:inherit; }
.form-input:hover { border-color:#cbd5e1; }
.form-input:focus { border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px rgba(59,130,246,0.08); }
.form-label { font-size:10px;font-weight:600;color:#64748b;margin-bottom:2px;display:block;letter-spacing:0.01em; }
.edit-panel { background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;padding:12px;margin:4px 12px 8px;animation:fadeUp 0.2s ease-out; }
/* ── Data Search ── */
#searchDropdown .search-item:not(:last-child) { border-bottom:1px solid #f1f5f9; }
@keyframes searchPulse { 0%{r:24;opacity:0.5} 50%{r:36;opacity:0.15} 100%{r:24;opacity:0.5} }
.search-pulse circle, .search-pulse { animation: searchPulse 1.2s ease-in-out infinite; }
/* ── Step Bar ── */
.step-dot { width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;background:#e2e8f0;color:#94a3b8;transition:all 0.25s ease;border:1.5px solid transparent; }
.step-dot.active { background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:rgba(37,99,235,0.2);box-shadow:0 2px 8px rgba(37,99,235,0.25); }
.step-dot.done { background:#059669;color:#fff;border-color:rgba(5,150,105,0.2);box-shadow:0 2px 6px rgba(5,150,105,0.2); }
.step-label { font-size:10px;font-weight:500;color:#94a3b8;transition:all 0.2s;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0.01em; }
.step-label.active { color:#1e293b;font-weight:600; }
.step-label.done { color:#059669;font-weight:600; }

/* Vehicle Tracking */
.tracking-vehicle-row { display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#fff;border:1px solid #e0e7ff;border-radius:6px;font-size:10px; }
.tracking-vehicle-row .plate { font-weight:700;color:#1e3a8a;letter-spacing:0.3px; }
.tracking-vehicle-row .driver { color:#64748b;font-weight:500; }
.tracking-vehicle-row .speed { color:#6366f1;font-weight:600;font-size:9px; }
.state-dot { width:6px;height:6px;border-radius:50%;flex-shrink:0; }
.state-moving { background:#22c55e; }
.state-idle { background:#f59e0b; }
.state-stopped { background:#94a3b8; }

/* Vehicle Tracking — Map Markers */
.trk-marker { display:flex;flex-direction:column;align-items:center;gap:1px; }
.trk-dot { width:14px;height:14px;border-radius:50%; }
.trk-arrow { margin-bottom:-2px;line-height:0;transition:opacity 0.3s; }
.trk-marker-label { font-size:8px;font-weight:800;color:#1e3a8a;background:rgba(255,255,255,0.92);padding:1px 4px;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,0.12);letter-spacing:0.3px;white-space:nowrap;max-width:72px;overflow:hidden;text-overflow:ellipsis; }

/* Right Panel — resizable */
.right-panel-collapsed { width:0;min-width:0;overflow:hidden;transition:width 0.35s cubic-bezier(0.4,0,0.2,1),min-width 0.35s cubic-bezier(0.4,0,0.2,1); }
.right-panel-expanded { width:320px;min-width:200px;max-width:600px;transition:none; }
.panel-resizer { position:absolute;left:-4px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:20;background:transparent;transition:background 0.15s; }
.panel-resizer:hover, .panel-resizer.active { background:rgba(37,99,235,0.15); }
.panel-resizer::after { content:'';position:absolute;left:3px;top:50%;transform:translateY(-50%);width:2px;height:32px;border-radius:1px;background:#cbd5e1;transition:background 0.15s; }
.panel-resizer:hover::after, .panel-resizer.active::after { background:#2563eb; }
body.panel-resizing { cursor:col-resize !important; user-select:none !important; }
body.panel-resizing * { cursor:col-resize !important; user-select:none !important; }
