:root{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Outfit", sans-serif;--color-primary: #10b981;--color-primary-dark: #059669;--color-primary-light: #34d399;--color-primary-glow: rgba(16, 185, 129, .25);--color-accent: #0284c7;--color-accent-light: #38bdf8;--color-warning: #f59e0b;--color-danger: #ef4444;--color-success: #10b981;--bg-main: #0b1319;--bg-card: rgba(17, 28, 38, .85);--bg-card-hover: rgba(23, 38, 52, .95);--bg-input: rgba(11, 19, 25, .9);--border-subtle: rgba(255, 255, 255, .08);--border-active: rgba(16, 185, 129, .4);--text-main: #f8fafc;--text-muted: #94a3b8;--text-dim: #64748b;--shadow-subtle: 0 4px 20px rgba(0, 0, 0, .35);--shadow-glow: 0 0 25px rgba(16, 185, 129, .2);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-full: 9999px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-main);min-height:100vh;overflow-x:hidden;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,.brand-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}.glass-panel{background:var(--bg-card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-subtle)}.glass-panel:hover{border-color:var(--border-active)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;font-size:.95rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;border:none;transition:all .2s cubic-bezier(.4,0,.2,1);text-decoration:none;font-family:var(--font-sans)}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#064e3b;color:#fff;box-shadow:0 4px 14px var(--color-primary-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 14px #ef44444d}.btn-danger:hover{transform:translateY(-2px)}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 4px 14px #f59e0b4d}.btn-secondary{background:#ffffff12;color:var(--text-main);border:1px solid var(--border-subtle)}.btn-secondary:hover{background:#ffffff1f}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge-activo{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.badge-pausado{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-finalizado{background:#94a3b826;color:#94a3b8;border:1px solid rgba(148,163,184,.3)}@keyframes livePulse{0%{transform:scale(.95);box-shadow:0 0 #10b981b3}70%{transform:scale(1);box-shadow:0 0 0 10px #10b98100}to{transform:scale(.95);box-shadow:0 0 #10b98100}}.pulse-dot{width:10px;height:10px;background-color:var(--color-primary);border-radius:50%;display:inline-block;animation:livePulse 2s infinite}.leaflet-dark-theme .leaflet-tile-pane{filter:brightness(.6) invert(1) contrast(2.8) hue-rotate(200deg) saturate(.35) brightness(.85)}.leaflet-light-theme .leaflet-tile-pane{filter:none}.custom-truck-marker{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#064e3b;border:2px solid #34d399;border-radius:50%;box-shadow:0 0 18px #10b981cc;transition:transform .4s ease}.custom-home-marker{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#1e3a8a;border:2px solid #60a5fa;border-radius:50%;box-shadow:0 0 12px #60a5fa99}.custom-pqrs-marker{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:#7f1d1d;border:2px solid #f87171;border-radius:50%;box-shadow:0 0 12px #f8717199}.input-control{width:100%;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text-main);font-size:.95rem;outline:none;transition:border-color .2s;font-family:var(--font-sans)}.input-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #10b98133}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.grid-responsive-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.grid-responsive-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid-responsive-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-sidebar-layout{display:grid;grid-template-columns:240px 1fr;gap:16px}.hide-mobile{display:flex!important}.show-mobile{display:none!important}.map-chip-dock{display:flex;gap:8px;overflow-x:auto;padding:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.map-chip-dock::-webkit-scrollbar{display:none}.eta-live-banner{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 4px 20px #0006;transition:all .3s ease}.mobile-nav-drawer{animation:slideFromLeft .28s cubic-bezier(.16,1,.3,1)}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@media (max-width: 1024px){.grid-responsive-4{grid-template-columns:repeat(2,1fr)}.grid-sidebar-layout{grid-template-columns:1fr}}@media (max-width: 768px){.hide-mobile{display:none!important}.show-mobile{display:flex!important}.grid-responsive-4,.grid-responsive-3,.grid-responsive-2{grid-template-columns:1fr}.btn{padding:8px 12px;font-size:.85rem}body,html{overflow-x:hidden;position:relative;width:100%}.modal-overlay-content{width:95vw!important;max-width:95vw!important;max-height:88vh!important;padding:18px!important}[data-sonner-toaster]{bottom:16px!important;right:12px!important;left:12px!important;width:auto!important}[data-sonner-toast]{width:100%!important;max-width:100%!important}}@media (max-width: 480px){.brand-title{font-size:1.05rem!important}.glass-panel{padding:10px 14px!important}}
