.create-users-modal{max-width:600px;width:90%}.users-list{margin-bottom:20px}.users-list h4{margin-bottom:12px;color:#333}.user-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-surface-secondary);border-radius:8px;margin-bottom:8px}.user-icon{font-size:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%}.user-details{flex:1;display:flex;flex-direction:column;gap:4px}.user-details strong{font-size:14px;color:#333}.user-details small{font-size:12px;color:#666}.user-type{display:inline-block;padding:2px 8px;background:var(--color-info-light);color:var(--color-info-contrast);border-radius:4px;font-size:11px;text-transform:uppercase;font-weight:500}.user-credentials{display:flex;align-items:center}.user-credentials code{background:#fff;padding:4px 8px;border-radius:4px;font-size:12px;border:1px solid #ddd}.results-section{margin-top:20px;padding:16px;background:#f9f9f9;border-radius:8px}.results-section h4{margin-bottom:12px;color:#333}.result-item{display:flex;align-items:center;gap:8px;padding:8px;margin-bottom:6px;border-radius:6px}.result-item.success{background:var(--color-success-light)}.result-item.error{background:#ffebee}.result-icon{font-size:16px}.result-email{font-weight:500;font-size:13px;min-width:180px}.result-message{font-size:12px;color:#666;flex:1}.error-message{margin:16px 0;padding:12px;background:#ffebee;border-left:4px solid #f44336;border-radius:4px;color:#c62828}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f7fa;padding:var(--space-24);position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(13,92,76,.04) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(22,135,122,.04) 0%,transparent 50%)}.login-card{background:#fff;padding:60px 50px;border-radius:16px;box-shadow:0 4px 6px #00000005,0 10px 20px #0000000a,0 20px 40px #0000000f;width:100%;max-width:520px;border:1px solid rgba(13,92,76,.08);position:relative;z-index:1;animation:slide-up var(--duration-slow) var(--ease-out);transform:scale(1.05)}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.rmp-logo{text-align:center;margin-bottom:50px;animation:fade-in var(--duration-normal) var(--ease-out) .1s backwards}@keyframes fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.logo-image{width:240px;height:auto;margin:0 auto;display:block;animation:bounce-in var(--duration-slow) var(--ease-spring) .2s backwards;filter:drop-shadow(0 8px 16px rgba(13,92,76,.15))}@keyframes bounce-in{0%{opacity:0;transform:scale(0) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}.rmp-logo h1{font-family:var(--font-family-display);font-size:28px;font-weight:700;background:linear-gradient(135deg,#0d5c4c,#16877a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 8px;letter-spacing:var(--letter-spacing-tight)}.rmp-logo p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;font-weight:var(--font-weight-medium);letter-spacing:.5px}.error-message{background:#ff3b3014;border:1px solid rgba(255,59,48,.2);color:var(--color-error);padding:14px 18px;border-radius:var(--radius-md);margin-bottom:24px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);animation:shake var(--duration-normal) var(--ease-out),fade-in var(--duration-fast) var(--ease-out);line-height:var(--line-height-normal);display:flex;align-items:flex-start;gap:10px}.error-message:before{content:"⚠️";flex-shrink:0;font-size:16px}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.form-group{margin-bottom:24px;animation:fade-in var(--duration-normal) var(--ease-out) backwards}.form-group:nth-child(1){animation-delay:.15s}.form-group:nth-child(2){animation-delay:.2s}.form-label-modern{display:block;font-size:14px;font-weight:600;color:#2d3748;margin-bottom:8px;letter-spacing:.2px}.form-control-modern{display:block;width:100%;padding:14px 16px;font-size:15px;line-height:1.5;color:var(--color-text);background:#f8f9fb;border:2px solid var(--color-border);border-radius:10px;transition:all .3s ease;font-family:var(--font-family-base);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:400}.form-control-modern:hover{border-color:#cbd5e0;background:#f1f3f6}.form-control-modern:focus{outline:none;border-color:#16877a;background:#fff;box-shadow:0 0 0 3px #0d5c4c14}.form-control-modern::placeholder{color:#a0aec0;font-weight:400}.btn--primary{width:100%;padding:15px 24px;background:#1fb09e;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;margin-top:8px;animation:fade-in var(--duration-normal) var(--ease-out) .3s backwards;letter-spacing:.3px;box-shadow:0 2px 8px #1fb09e40}.btn--primary:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent);opacity:0;transition:opacity .3s ease}.btn--primary:hover{background:#22c4ad;transform:translateY(-1px);box-shadow:0 4px 12px #1fb09e59}.btn--primary:hover:before{opacity:1}.btn--primary:active{transform:translateY(0);box-shadow:0 2px 8px #1fb09e4d}.btn--primary:disabled{background:#a0aec0;cursor:not-allowed;transform:none;box-shadow:none}.credentials-info{margin-top:32px;padding:20px;background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);animation:fade-in var(--duration-normal) var(--ease-out) .35s backwards}.credentials-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.credentials-header strong{color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.btn--outline{padding:10px 16px;border:2px solid var(--color-border);background:#fff;color:#4a5568;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;letter-spacing:.2px}.btn--outline:hover{background:#f8f9fb;border-color:#0d5c4c;color:#0d5c4c;transform:translateY(-1px);box-shadow:0 2px 8px #0d5c4c1a}.btn--outline:active{transform:translateY(0)}.credential-item{background:#fff;padding:14px 16px;border-radius:var(--radius-base);border:1px solid var(--color-border);margin-bottom:12px;transition:all var(--duration-fast) var(--ease-out)}.credential-item:hover{border-color:#16877a;box-shadow:0 2px 8px #0d5c4c14}.credential-item strong{color:var(--color-text);font-weight:var(--font-weight-semibold);margin-right:6px}.all-credentials{border-top:1px solid var(--color-divider);padding-top:16px;margin-top:4px}.all-credentials details{cursor:pointer}.all-credentials summary{color:var(--color-text-secondary);font-size:11px;font-weight:var(--font-weight-medium);padding:4px 0;transition:color var(--duration-fast) var(--ease-out);list-style:none;display:flex;align-items:center;gap:6px}.all-credentials summary::-webkit-details-marker{display:none}.all-credentials summary:before{content:"›";font-size:16px;font-weight:700;transition:transform var(--duration-fast) var(--ease-out)}.all-credentials details[open] summary:before{transform:rotate(90deg)}.all-credentials summary:hover{color:var(--color-text)}.all-credentials details>div{margin-top:12px;padding:14px;background:#fff;border-radius:var(--radius-base);border:1px solid var(--color-border);font-size:11px;line-height:1.8;animation:fade-in var(--duration-fast) var(--ease-out)}.all-credentials details>div strong{color:var(--color-text);font-weight:var(--font-weight-semibold);min-width:90px;display:inline-block}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .form-control-modern{padding-right:55px}.password-toggle-modern{position:absolute;right:12px;background:none;border:none;cursor:pointer;padding:8px;transition:all .2s ease;opacity:.5;color:#718096;display:flex;align-items:center;justify-content:center;border-radius:6px}.password-toggle-modern:hover{opacity:1;color:#0d5c4c;background:#0d5c4c0f}.password-toggle-modern:disabled{cursor:not-allowed;opacity:.25}.login-footer{margin-top:24px;text-align:center}.btn--sm{padding:8px 12px;font-size:12px}@media (max-width: 480px){.login-card{padding:40px 30px;transform:scale(1);max-width:100%}.logo-image{width:180px}.form-control-modern{padding:16px 20px;font-size:15px}}.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0,0,0,0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (forced-colors:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (forced-colors:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}@media (hover:hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:#0000000d}}.maplibregl-ctrl button:not(:disabled):active{background-color:#0000000d}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-globe .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%23333' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-globe-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:#0000000d}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:#000000bf;text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:#0000000d}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:#0006;color:#fff;display:flex;font-size:1.4em;top:0;right:0;bottom:0;left:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(pointer:coarse){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}.gps-playback-modal-overlay{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100vw!important;height:100dvh!important;background:#000000f2!important;z-index:2147483647!important;isolation:isolate}.gps-playback-modal{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100vw!important;height:100dvh!important;display:flex!important;flex-direction:column!important;background:#0f0f0f!important;z-index:2147483647!important}.gps-playback-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:linear-gradient(180deg,#141414f2,#0f0f0fe6);border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;position:relative;z-index:2147483645}.header-left{display:flex;align-items:center;gap:12px}.vehicle-badge{width:40px;height:40px;background:var(--color-primary);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-sm)}.header-info h2{margin:0;font-size:17px;font-weight:600;color:#fff;letter-spacing:-.01em}.header-subtitle{font-size:12px;color:#ffffff80;margin-top:1px;display:block}.header-right{display:flex;align-items:center;gap:8px}.header-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fffc;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.header-btn:hover:not(:disabled){background:#ffffff1f;border-color:#fff3;color:#fff;transform:translateY(-1px)}.header-btn:disabled{opacity:.3;cursor:not-allowed}.header-btn.close-btn:hover{background:#ef444433;border-color:#ef444466;color:var(--color-error)}.date-btn span{font-family:var(--font-family-mono, monospace)}.date-selector-wrapper{position:relative;z-index:2147483646;isolation:isolate}.gps-date-picker{position:absolute;top:calc(100% + 8px);right:0;background:#121216fa;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(107,142,35,.5);border-radius:12px;padding:14px;width:240px;box-shadow:0 20px 50px #000000b3,0 0 0 1px #ffffff0d;z-index:2147483647!important;animation:slideDownFromTop .2s ease-out;isolation:isolate;pointer-events:auto}@keyframes slideDownFromTop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.gps-date-quick-btns{display:flex;gap:8px;margin-bottom:12px}.gps-quick-btn{flex:1;padding:10px 8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#ffffffe6;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.gps-quick-btn:hover{background:#ffffff1a;border-color:#6b8e2380;transform:translateY(-1px)}.gps-quick-btn.active{background:#6b8e234d;border-color:var(--color-primary);color:#8bc34a;box-shadow:0 0 12px #6b8e2340}.gps-date-divider{display:flex;align-items:center;margin:12px 0;gap:10px}.gps-date-divider:before,.gps-date-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.gps-date-divider span{font-size:10px;color:#fff6;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.gps-date-input{width:100%;padding:12px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:14px;font-family:inherit;cursor:pointer;transition:all .15s ease;box-sizing:border-box}.gps-date-input:hover{background:#ffffff14;border-color:#fff3}.gps-date-input:focus{outline:none;border-color:var(--color-primary);background:#ffffff14;box-shadow:0 0 0 2px #6b8e2326}.gps-date-input::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer;opacity:.6;padding:2px;border-radius:4px;transition:all .2s}.gps-date-input::-webkit-calendar-picker-indicator:hover{opacity:1;background:#6b8e2333}.gps-playback-content{flex:1;position:relative;overflow:hidden;background:#0a0a0a;z-index:1}.playback-map-fullscreen{width:100%;height:100%;background:#0a0a0a;position:relative;z-index:1}.playback-loading-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#000000e6}.loading-spinner-large{width:56px;height:56px;border:1px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.playback-loading-state p{color:#ffffffb3;font-size:15px;font-weight:500}.playback-error-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#000000e6}.error-icon{font-size:48px}.playback-error-state p{color:var(--color-error);font-size:15px;font-weight:500}.retry-btn{padding:12px 24px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:10px;color:var(--color-error);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.retry-btn:hover{background:#ef444440;transform:translateY(-2px)}.playback-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#000000e6;color:#ffffff80}.playback-empty-state svg{opacity:.3}.playback-empty-state h3{margin:0;font-size:24px;font-weight:700;color:#fffc}.playback-empty-state p{margin:0;font-size:15px;color:#ffffff80}.select-date-btn{display:flex;align-items:center;gap:10px;padding:14px 24px;background:var(--color-primary);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px;box-shadow:var(--shadow-sm)}.select-date-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.playback-vehicle-marker{background:transparent!important;border:none!important}.playback-marker-container{position:relative;width:48px;height:48px;transition:transform .5s cubic-bezier(.4,0,.2,1);will-change:transform}.playback-marker-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;background:radial-gradient(circle,#4caf5066,#4caf5000 70%);border-radius:50%;animation:markerPulse 2.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes markerPulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:1}50%{opacity:.6}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.playback-marker-icon{position:relative;z-index:2;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));animation:iconFloat 3s ease-in-out infinite}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.playback-marker-icon svg{width:48px;height:48px;display:block}.playback-vehicle-marker:hover .playback-marker-icon{filter:drop-shadow(0 6px 16px rgba(76,175,80,.5));transform:scale(1.05);transition:all .2s ease}.vehicle-popup-content{padding:4px;font-size:13px;line-height:1.6}.vehicle-popup-content strong{font-size:15px;color:var(--color-primary)}.gps-playback-controls{background:linear-gradient(180deg,#121212f2,#0a0a0a);border-top:1px solid rgba(255,255,255,.08);padding:0;flex-shrink:0;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative}.gps-playback-controls.expanded{padding:12px 20px 14px}.gps-playback-controls.collapsed{padding:8px 20px}.controls-toggle{position:absolute;top:-18px;left:50%;transform:translate(-50%);width:36px;height:20px;background:#282828f2;border:1px solid rgba(255,255,255,.1);border-radius:10px 10px 0 0;color:#fff9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.controls-toggle:hover{background:#3c3c3cf2;color:#fff}.current-point-info{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;padding:10px 12px;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.info-chip{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#ffffff0f;border-radius:8px;color:#ffffffd9;font-size:13px;font-weight:500;font-family:var(--font-family-mono, monospace)}.info-chip svg{color:#ffffff80;flex-shrink:0}.info-chip.speed-chip{background:rgba(var(--speed-color),.15);border:1px solid rgba(255,255,255,.1)}.info-chip.coords-chip{font-size:11px;letter-spacing:.02em}.timeline-section{display:flex;align-items:center;gap:12px;margin-bottom:10px}.timeline-text{font-size:12px;font-weight:600;color:#ffffff80;font-family:var(--font-family-mono, monospace);min-width:70px;text-align:center}.timeline-slider-wrapper{flex:1;position:relative}.timeline-slider-input{width:100%;height:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:4px;outline:none;cursor:pointer;position:relative}.timeline-slider-input:before{content:"";position:absolute;top:0;left:0;height:100%;width:var(--progress, 0%);background:var(--color-primary);border-radius:4px;pointer-events:none}.timeline-slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--color-primary);border:3px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s ease;position:relative;z-index:2}.timeline-slider-input::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:var(--shadow-md)}.timeline-slider-input::-moz-range-thumb{width:20px;height:20px;background:var(--color-primary);border:3px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm)}.timeline-slider-input::-moz-range-progress{background:var(--color-primary);border-radius:4px;height:8px}.main-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}.controls-left,.controls-right{display:flex;align-items:center;gap:16px;min-width:180px}.controls-right{justify-content:flex-end}.controls-center{display:flex;align-items:center;justify-content:center;gap:8px}.control-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:#ffffffe6;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.control-button:hover{background:#ffffff26;border-color:#ffffff40;transform:scale(1.08)}.control-button:active{transform:scale(.95)}.control-button.play-button{width:52px;height:52px;background:var(--color-primary);border:none;box-shadow:var(--shadow-sm)}.control-button.play-button:hover{background:linear-gradient(135deg,#4a6330,#7da328);box-shadow:var(--shadow-md);transform:scale(1.1)}.control-button.speed-button{width:auto;height:36px;padding:0 14px;border-radius:18px;font-size:13px;font-weight:700;font-family:var(--font-family-mono, monospace)}.quick-stat{display:flex;align-items:baseline;gap:4px}.quick-stat .stat-value{font-size:20px;font-weight:700;color:#fff;font-family:var(--font-family-mono, monospace)}.quick-stat .stat-unit{font-size:11px;font-weight:500;color:#fff6;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 1024px){.gps-playback-header{padding:14px 20px}.header-info h2{font-size:18px}.controls-left,.controls-right{min-width:140px}.quick-stat .stat-value{font-size:18px}}@media (max-width: 768px){.gps-playback-header{padding:12px 16px;flex-wrap:wrap;gap:12px}.header-left{flex:1}.vehicle-badge{width:40px;height:40px;border-radius:10px}.header-info h2{font-size:16px}.header-subtitle{font-size:12px}.header-btn{padding:8px 12px}.header-btn.date-btn span{display:none}.gps-playback-controls.expanded{padding:14px 16px 18px}.current-point-info{padding:12px;gap:8px}.info-chip{padding:6px 10px;font-size:12px}.info-chip.coords-chip{display:none}.timeline-section{gap:12px;margin-bottom:14px}.timeline-text{font-size:11px;min-width:55px}.main-controls{flex-wrap:wrap;gap:16px}.controls-left,.controls-right{display:none}.controls-center{width:100%;justify-content:center}.control-button{width:44px;height:44px}.control-button.play-button{width:56px;height:56px}}@media (max-width: 480px){.gps-playback-header{padding:10px 12px}.header-right{gap:6px}.header-btn{padding:8px 10px}.gps-playback-controls.expanded{padding:12px 12px 16px}.current-point-info{padding:10px}.info-chip{padding:5px 8px;font-size:11px;gap:6px}.control-button{width:40px;height:40px}.control-button.play-button{width:52px;height:52px}.control-button.speed-button{padding:0 14px;font-size:13px}}.playback-map-fullscreen .leaflet-control-zoom{border:1px solid rgba(255,255,255,.15)!important;border-radius:10px!important;overflow:hidden!important;box-shadow:0 4px 12px #0000004d!important}.playback-map-fullscreen .leaflet-control-zoom a{background:#141414e6!important;color:#fffc!important;border-bottom:1px solid rgba(255,255,255,.1)!important;width:36px!important;height:36px!important;line-height:36px!important}.playback-map-fullscreen .leaflet-control-zoom a:hover{background:#282828f2!important;color:#fff!important}.playback-map-fullscreen .leaflet-control-zoom a:last-child{border-bottom:none!important}.playback-map-fullscreen .leaflet-control-attribution{background:#000000b3!important;color:#ffffff80!important;font-size:10px!important;padding:4px 8px!important;border-radius:4px 0 0!important}.playback-map-fullscreen .leaflet-popup-content-wrapper{background:#141414f2!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:10px!important;box-shadow:0 8px 24px #0006!important}.playback-map-fullscreen .leaflet-popup-content{color:#fff!important;margin:12px 14px!important}.playback-map-fullscreen .leaflet-popup-tip{background:#141414f2!important;border:1px solid rgba(255,255,255,.15)!important}.playback-marker{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0006;border:2px solid white;font-size:12px;font-weight:700;color:#fff;cursor:pointer}.playback-marker-start{background:var(--color-success)}.playback-marker-end{background:var(--color-error)}.playback-vehicle-marker{width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease}.playback-vehicle-marker.moving{color:var(--color-success);filter:drop-shadow(0 0 8px rgba(16,185,129,.6))}.playback-vehicle-marker.stopped{color:var(--color-text-secondary)}.playback-vehicle-marker:hover{transform:scale(1.1)}.maplibregl-popup-content{background:#141414f2!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:8px!important;padding:12px!important;color:#fff!important;box-shadow:0 4px 20px #00000080!important}.maplibregl-popup-close-button{color:#fff9!important;font-size:18px!important}.maplibregl-popup-close-button:hover{color:#fff!important;background:#ffffff1a!important}.maplibregl-popup-tip{border-top-color:#141414f2!important}.vehicle-popup-content{font-size:13px;line-height:1.6}.vehicle-popup-content strong{font-size:14px;color:#fff}.maplibre-component-wrapper{position:relative;width:100%;height:100%;min-height:400px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);transform:translateZ(0);will-change:transform;contain:layout style paint;user-select:none;-webkit-user-select:none}.map-loading-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-12);background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.map-loading-placeholder .spin{animation:spin 1s linear infinite}.maplibregl-map{font-family:var(--font-family-base)}.maplibregl-canvas{transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.maplibregl-marker{will-change:transform;contain:layout}.maplibregl-marker>div{transition:none}.maplibre-component-wrapper:not(.is-moving) .maplibregl-marker>div{transition:transform .15s ease-out}.maplibregl-ctrl-attrib{font-size:10px;background:#ffffffb3!important;padding:2px 6px;border-radius:var(--radius-sm)}.maplibregl-ctrl-group{background:var(--color-surface)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important}.maplibregl-ctrl-group button{width:32px!important;height:32px!important}.maplibregl-ctrl-group button+button{border-top:1px solid var(--color-border)!important}.maplibre-vehicle-marker{position:relative;cursor:pointer;transform:translateZ(0) scale(1);will-change:transform;backface-visibility:hidden;transition:transform .1s ease-out}.maplibre-vehicle-marker:hover{transform:translateZ(0) scale(1.1)}.maplibre-vehicle-marker.selected{transform:translateZ(0) scale(1.15);z-index:100}.maplibre-vehicle-marker .vehicle-svg{width:28px;height:40px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));transform:translateZ(0)}.maplibre-vehicle-marker .status-indicator{position:absolute;top:-4px;right:-4px;width:10px;height:10px;border-radius:50%;border:2px solid white;box-shadow:0 1px 2px #0003;transform:translateZ(0)}.maplibre-vehicle-marker .status-indicator.status-moving{background:var(--color-success);animation:pulse-moving-optimized 1.5s ease-in-out infinite}.maplibre-vehicle-marker .status-indicator.status-stopped{background:var(--color-warning)}.maplibre-vehicle-marker .status-indicator.status-parked{background:var(--color-text-secondary)}@keyframes pulse-moving{0%,to{transform:scale(1);box-shadow:0 0 #10b98180}50%{transform:scale(1.1);box-shadow:0 0 0 6px #10b98100}}@keyframes pulse-moving-optimized{0%,to{transform:translateZ(0) scale(1);opacity:1}50%{transform:translateZ(0) scale(1.2);opacity:.8}}.maplibre-vehicle-marker .plate-label{position:absolute;bottom:-18px;left:50%;transform:translate(-50%);background:#000c;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);white-space:nowrap;opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.maplibre-vehicle-marker:hover .plate-label,.maplibre-vehicle-marker.selected .plate-label{opacity:1}.maplibre-stop-marker{cursor:pointer;transition:transform var(--duration-fast) var(--ease-out)}.maplibre-stop-marker:hover{transform:scale(1.1)}.maplibre-stop-marker .stop-pin{width:32px;height:32px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000004d;position:relative}.maplibre-stop-marker.completed .stop-pin{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%)}.maplibre-stop-marker.pending .stop-pin{background:linear-gradient(135deg,var(--color-text-muted) 0%,var(--color-text-secondary) 100%)}.maplibre-stop-marker .stop-number{transform:rotate(45deg);font-size:12px;font-weight:700;color:#fff}.maplibre-stop-marker .stop-shadow{position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:16px;height:4px;background:#0003;border-radius:50%}.maplibre-location-marker{width:32px;height:32px;background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 8px #10b98166;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out)}.maplibre-location-marker:hover{transform:scale(1.15)}.maplibregl-popup-content{background:var(--color-surface)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;padding:0!important;min-width:220px}.maplibregl-popup-close-button{font-size:18px;color:var(--color-text-secondary);padding:8px;right:4px;top:4px}.maplibregl-popup-close-button:hover{color:var(--color-text);background:transparent}.maplibregl-popup-tip{border-top-color:var(--color-surface)!important}.maplibre-vehicle-popup .popup-content,.maplibre-location-popup .popup-content,.maplibre-location-popup .location-popup-inline{padding:var(--space-12)}.location-popup-inline__title{display:flex;align-items:center;gap:6px;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-8) 0}.location-popup-inline__title svg{color:var(--color-success);flex-shrink:0}.location-popup-inline__desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 6px;line-height:1.4}.location-popup-inline__coords{font-size:var(--font-size-xs);color:var(--color-text-tertiary, #a19f9d);margin-bottom:var(--space-12);font-family:monospace}.location-popup-inline__btn{width:100%;padding:var(--space-8) var(--space-12);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s ease;display:flex;align-items:center;justify-content:center;gap:6px}.popup-content .popup-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);margin-bottom:var(--space-8);padding-bottom:var(--space-8);border-bottom:1px solid var(--color-border)}.popup-content .popup-header h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;display:flex;align-items:center;gap:var(--space-4)}.popup-content .status-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px 8px;border-radius:var(--radius-sm)}.popup-content .status-badge.status-moving{background:var(--color-success-light);color:var(--color-success)}.popup-content .status-badge.status-stopped{background:var(--color-warning-light);color:var(--color-warning)}.popup-content .status-badge.status-parked{background:var(--color-text-tertiary);color:var(--color-text-secondary)}.popup-content .popup-stats{display:flex;gap:var(--space-16);margin-bottom:var(--space-8)}.popup-content .popup-stats .stat{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.popup-content .popup-driver{font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:var(--space-12)}.popup-content .btn-view-details{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8);background:var(--color-primary);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;border-radius:var(--radius-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.popup-content .btn-view-details:hover{background:var(--color-primary-hover)}.map-controls-panel{position:absolute;top:var(--space-12);right:var(--space-12);display:flex;flex-direction:column;gap:var(--space-8);z-index:10}.map-controls-panel.minimized{top:var(--space-8);right:var(--space-8)}.map-controls-panel .control-loading{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-12);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.map-controls-panel .control-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.map-controls-panel .control-btn:hover{background:var(--color-surface-secondary);color:var(--color-text);border-color:var(--color-border-strong)}.map-controls-panel .control-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.map-controls-panel .control-btn.syncing{opacity:.7;cursor:not-allowed}.map-controls-panel .control-btn .spin{animation:spin 1s linear infinite}.geofence-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.geofence-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-20);width:100%;max-width:400px;margin:var(--space-16)}.geofence-modal h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-16) 0}.geofence-modal .form-group{margin-bottom:var(--space-16)}.geofence-modal .form-group label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.geofence-modal .form-group input,.geofence-modal .form-group textarea{width:100%;padding:var(--space-8) var(--space-12);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:border-color var(--duration-fast) var(--ease-out)}.geofence-modal .form-group input:focus,.geofence-modal .form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.geofence-modal .form-group textarea{min-height:80px;resize:vertical}.geofence-modal .modal-actions{display:flex;justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-20)}.geofence-modal .btn-cancel,.geofence-modal .btn-save{padding:var(--space-8) var(--space-16);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.geofence-modal .btn-cancel{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.geofence-modal .btn-cancel:hover{background:var(--color-surface-secondary);color:var(--color-text)}.geofence-modal .btn-save{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.geofence-modal .btn-save:hover{background:var(--color-primary-hover)}.geofence-modal .geofence-type-selector{display:flex;gap:var(--space-8)}.geofence-modal .type-option{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8) var(--space-12);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.geofence-modal .type-option input[type=radio]{display:none}.geofence-modal .type-option span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.geofence-modal .type-option:hover,.geofence-modal .type-option.active{border-color:var(--color-primary);background:var(--color-primary-subtle)}.geofence-modal .type-option.active span{color:var(--color-primary)}.geofence-center-marker{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ef444433;border:2px solid var(--color-error);border-radius:50%;color:var(--color-error);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.geofence-center-marker:hover{background:#ef44444d;transform:scale(1.1)}.maplibre-geofence-popup .popup-content{padding:var(--space-12)}.geofence-popup-content .popup-header{margin-bottom:var(--space-8);padding-bottom:var(--space-8);border-bottom:1px solid var(--color-border)}.geofence-popup-content .popup-header h4{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.geofence-popup-content .geofence-info p{font-size:var(--font-size-sm);color:var(--color-text);margin:var(--space-4) 0}.geofence-popup-content .geofence-info strong{color:var(--color-text-secondary)}.geofence-popup-content .geofence-description{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic;margin-top:var(--space-8)!important}.btn-delete-geofence{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-12);padding:var(--space-8);background:var(--color-error-light);color:var(--color-error);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:1px solid var(--color-error);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.btn-delete-geofence:hover{background:var(--color-error);color:#fff}.map-legend{position:absolute;bottom:var(--space-12);left:var(--space-12);display:flex;flex-direction:column;gap:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-8) var(--space-12);box-shadow:var(--shadow-sm);z-index:10}.map-legend .legend-item{display:flex;align-items:center;gap:var(--space-8)}.map-legend .legend-dot{width:10px;height:10px;border-radius:50%}.map-legend .legend-dot.legend-moving{background:var(--color-success)}.map-legend .legend-dot.legend-stopped{background:var(--color-warning)}.map-legend .legend-dot.legend-parked{background:var(--color-text-secondary)}.map-legend .legend-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.geofence-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-16);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);z-index:100;pointer-events:none;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.truck-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;justify-content:flex-end;z-index:2147483000}.truck-modal-v2{width:100%;max-width:520px;height:100%;background:var(--color-surface);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:slideInRight .25s ease-out}.truck-modal-content-v2{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.truck-modal-header-v2{flex-shrink:0}@media (max-width: 1024px){.truck-modal-overlay{justify-content:stretch}.truck-modal-v2{max-width:100%;width:100%;height:100dvh;max-height:100dvh;animation:slideInUp .25s ease-out}.truck-modal-header-v2{padding-top:calc(env(safe-area-inset-top,0) + var(--space-16));position:sticky;top:0;z-index:2}.truck-modal-header-v2 .modal-close-btn-v2{width:44px!important;height:44px!important;min-width:44px;min-height:44px}.truck-modal-content-v2{padding-bottom:env(safe-area-inset-bottom,0)}}@media (max-width: 480px){.truck-modal-v2 .stats-grid-3{grid-template-columns:repeat(2,1fr);gap:var(--space-8)}.truck-modal-v2 .vehicle-placa{font-size:var(--font-size-lg)}.truck-modal-v2 .btn-history-v2,.truck-modal-v2 .btn-copy-coords{min-height:44px}}@keyframes slideInUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.truck-modal-header-v2{padding:var(--space-16);background:var(--color-text);color:#fff;border-bottom:1px solid var(--color-border-strong)}.truck-modal-header-v2 .header-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-12)}.truck-modal-header-v2 .vehicle-badge-large{width:40px;height:40px;background:#fff3;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.truck-modal-header-v2 .modal-close-btn-v2{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border:none;border-radius:var(--radius-base);color:#fff;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.truck-modal-header-v2 .modal-close-btn-v2:hover{background:#ffffff40}.truck-modal-header-v2 .header-info .vehicle-placa{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-4) 0}.truck-modal-header-v2 .header-info .vehicle-model{font-size:var(--font-size-sm);opacity:.85;margin:0 0 var(--space-12) 0}.truck-modal-header-v2 .header-badges{display:flex;gap:var(--space-8)}.truck-modal-header-v2 .badge-service,.truck-modal-header-v2 .badge-movement{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);background:#fff3;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.truck-modal-header-v2 .badge-movement .badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.truck-modal-header-v2 .badge-movement--moving{background:#10b9814d}.truck-modal-header-v2 .badge-movement--stopped{background:#f59e0b4d}.truck-modal-header-v2 .badge-movement--parked{background:#6b72804d}.truck-modal-header-v2 .badge-movement--offline{background:#9ca3af66;color:#d1d5db}.truck-modal-content-v2{flex:1;overflow-y:auto;padding:var(--space-16)}.truck-modal-content-v2 .info-section{margin-bottom:var(--space-16)}.truck-modal-content-v2 .info-section:has(.route-stops-list){margin-bottom:var(--space-20)}.truck-modal-content-v2 .section-title{display:flex;align-items:center;gap:var(--space-8);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-8);text-transform:uppercase;letter-spacing:.04em}.truck-modal-content-v2 .section-title svg{width:14px!important;height:14px!important}.truck-modal-content-v2 .info-section:has(.route-stops-list) .section-title{font-size:var(--font-size-md);text-transform:none;letter-spacing:normal;color:var(--color-text);margin-bottom:var(--space-12)}.truck-modal-content-v2 .info-section:has(.route-stops-list) .section-title svg{width:18px!important;height:18px!important}.truck-modal-content-v2 .status-pill{margin-left:auto;display:flex;align-items:center;gap:var(--space-4);padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.truck-modal-content-v2 .status-pill--online{background:var(--color-success-light);color:var(--color-success)}.truck-modal-content-v2 .status-pill--online .pill-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success);animation:blink 1.5s ease-in-out infinite}.truck-modal-content-v2 .status-pill--offline{background:var(--color-text-tertiary);color:var(--color-text-secondary)}.truck-modal-content-v2 .stats-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-8)}.truck-modal-content-v2 .stat-box{text-align:center;padding:var(--space-8) var(--space-4);background:var(--color-surface-secondary);border-radius:var(--radius-base)}.truck-modal-content-v2 .stat-icon-small{color:var(--color-primary);margin-bottom:2px}.truck-modal-content-v2 .stat-icon-small svg{width:14px!important;height:14px!important}.truck-modal-content-v2 .stat-data{display:flex;align-items:baseline;justify-content:center;gap:2px}.truck-modal-content-v2 .stat-number{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.truck-modal-content-v2 .stat-number-text{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text)}.truck-modal-content-v2 .stat-unit{font-size:10px;color:var(--color-text-secondary)}.truck-modal-content-v2 .stat-label-small{font-size:10px;color:var(--color-text-tertiary);margin-top:2px;text-transform:uppercase;letter-spacing:.03em}.truck-modal-content-v2 .coordinates-row{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8);background:var(--color-surface-secondary);border-radius:var(--radius-base);margin-bottom:var(--space-8)}.truck-modal-content-v2 .coord-icon{color:var(--color-primary)}.truck-modal-content-v2 .coord-values{flex:1}.truck-modal-content-v2 .coord-label{display:block;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.truck-modal-content-v2 .coord-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-family:monospace}.truck-modal-content-v2 .btn-copy-coords{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.truck-modal-content-v2 .btn-copy-coords:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.truck-modal-content-v2 .btn-history-v2{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-8);padding:var(--space-12);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.truck-modal-content-v2 .btn-history-v2:hover{background:var(--color-primary-hover)}.truck-modal-content-v2 .no-gps-message{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);padding:var(--space-16);background:var(--color-surface-secondary);border-radius:var(--radius-md);color:var(--color-text-tertiary);text-align:center}.truck-modal-content-v2 .no-gps-message p{margin:0;font-size:var(--font-size-sm)}.truck-modal-content-v2 .no-assignment-message{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);padding:var(--space-16);background:var(--color-surface-secondary);border-radius:var(--radius-md);color:var(--color-text-tertiary);text-align:center}.truck-modal-content-v2 .no-assignment-message p{margin:0;font-size:var(--font-size-sm)}.truck-modal-content-v2 .info-rows{display:flex;flex-direction:column;gap:2px}.truck-modal-content-v2 .info-row-v2{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-8);background:var(--color-surface-secondary);border-radius:var(--radius-sm);min-height:28px}.truck-modal-content-v2 .info-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.truck-modal-content-v2 .info-value{font-size:var(--font-size-xs);color:var(--color-text);font-weight:var(--font-weight-medium)}.truck-modal-content-v2 .info-section:has(.route-stops-list) .info-row-v2{padding:var(--space-8) var(--space-12);min-height:36px}.truck-modal-content-v2 .info-section:has(.route-stops-list) .info-label,.truck-modal-content-v2 .info-section:has(.route-stops-list) .info-value{font-size:var(--font-size-sm)}.truck-modal-content-v2 .route-stops-list{margin-top:var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column}.truck-modal-content-v2 .stops-list-header{padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase}.truck-modal-content-v2 .stops-list-items{display:block!important;max-height:70vh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;gap:0!important}@media (max-width: 1024px){.truck-modal-content-v2 .stops-list-items{max-height:72dvh!important}}.truck-modal-content-v2 .stop-list-item{display:grid!important;grid-template-columns:18px 1fr 14px!important;align-items:center!important;gap:6px!important;padding:2px 6px!important;border:none!important;border-bottom:1px solid var(--color-border)!important;border-radius:0!important;background:var(--color-surface)!important;box-shadow:none!important;min-height:24px!important;transition:background var(--duration-fast) var(--ease-out)}.truck-modal-content-v2 .stop-list-item:hover{background:var(--color-hover-overlay)!important;border-color:var(--color-border)!important;box-shadow:none!important}.truck-modal-content-v2 .stop-list-item.pending{background:var(--color-surface)!important;border-left:none!important}.truck-modal-content-v2 .stop-list-item.completed{background:var(--color-success-light)!important;border-left:3px solid var(--color-success)!important}.truck-modal-content-v2 .stop-list-item.current{background:var(--color-info-light)!important;border-left:3px solid var(--color-primary)!important}.truck-modal-content-v2 .stop-list-item.skipped{background:var(--color-error-light)!important;border-left:3px solid var(--color-error)!important}.truck-modal-content-v2 .stop-list-item:last-child{border-bottom:none}.truck-modal-content-v2 .stop-list-item.completed{background:var(--color-success-light)}.truck-modal-content-v2 .stop-number-badge{width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);font-size:9px;font-weight:var(--font-weight-semibold);border-radius:50%}.truck-modal-content-v2 .stop-list-item.current .stop-number-badge{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 0 0 1.5px var(--color-info-light)}.truck-modal-content-v2 .stop-list-item.completed .stop-number-badge{background:var(--color-success)}.truck-modal-content-v2 .stop-info{flex:1;min-width:0}.truck-modal-content-v2 .stop-name{font-size:12px;font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.truck-modal-content-v2 .stop-address{font-size:10px;color:var(--color-text-secondary);margin-top:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.truck-modal-content-v2 .stop-time{display:inline-flex;align-items:center;gap:2px;font-size:10px;color:var(--color-success);margin-top:0;font-weight:var(--font-weight-medium)}.truck-modal-content-v2 .stop-time svg{width:9px!important;height:9px!important}.truck-modal-content-v2 .stop-status-icon svg{width:12px!important;height:12px!important}.truck-modal-content-v2 .stop-skip-reason{font-size:10px!important;margin-top:0!important}.truck-modal-content-v2 .stop-skip-reason svg{width:10px!important;height:10px!important}.truck-modal-content-v2 .stop-status-icon{color:var(--color-text-tertiary)}.truck-modal-content-v2 .stop-list-item.completed .stop-status-icon{color:var(--color-success)}.truck-modal-content-v2 .stop-list-item.skipped{background:var(--color-error-light);border-left:3px solid var(--color-error)}.truck-modal-content-v2 .stop-list-item.skipped .stop-number-badge{background:var(--color-error)}.truck-modal-content-v2 .stop-list-item.skipped .stop-status-icon{color:var(--color-error)}.truck-modal-content-v2 .stop-skip-reason{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-error);margin-top:2px;line-height:1.3}.maplibre-stop-marker.skipped .stop-pin{background:var(--color-error);border-color:var(--color-error)}.truck-modal-content-v2 .stops-more{padding:var(--space-8) var(--space-12);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;background:var(--color-surface-secondary)}@media (prefers-color-scheme: dark){.maplibregl-popup-content{background:var(--color-surface)!important;border-color:var(--color-border)!important}.maplibregl-popup-tip{border-top-color:var(--color-surface)!important}.maplibregl-ctrl-attrib{background:#000000b3!important;color:#ffffffb3}}@media (max-width: 768px){.map-controls-panel{top:var(--space-8);right:var(--space-8)}.map-controls-panel .control-btn{width:32px;height:32px}.maplibregl-popup{max-width:calc(100vw - 24px)!important}.maplibregl-popup-content{min-width:0!important;max-width:calc(100vw - 24px)!important;max-height:60dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.popup-content{padding:var(--space-8)}.popup-content .popup-header h4{font-size:14px}.popup-content .popup-stats{grid-template-columns:repeat(2,1fr);gap:6px}.popup-content .popup-stats .stat{font-size:12px}.popup-content .btn-view-details{width:100%;min-height:44px;justify-content:center}}@media (max-width: 480px){.maplibregl-popup{max-width:calc(100vw - 16px)!important;left:8px!important;right:8px!important}.maplibregl-popup-content{max-width:100%!important;max-height:55dvh;border-radius:12px!important}.maplibregl-popup-close-button{width:32px;height:32px;font-size:22px}.popup-content .popup-header{flex-direction:column;align-items:flex-start;gap:6px}}.personnel-v2{display:flex;flex-direction:column;gap:20px}.personnel-header-v2{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"info actions stats";align-items:center;gap:20px;padding:24px 28px;background:var(--color-surface);border:1px solid rgba(0,0,0,.06);border-radius:12px;box-shadow:0 2px 8px #0000000a}.personnel-header-info{grid-area:info;display:flex;align-items:center;gap:20px;min-width:280px}.personnel-header-actions{grid-area:actions;display:flex;gap:12px}.personnel-header-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:10px;color:#fff;box-shadow:var(--shadow-sm)}.personnel-header-text h2{margin:0 0 4px;font-family:var(--font-family-display);font-size:24px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.personnel-header-text p{margin:0;font-size:14px;color:var(--color-text-secondary);font-weight:500}.personnel-header-stats{grid-area:stats;display:flex;gap:12px;flex-wrap:wrap}.personnel-stat-pill{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;background:var(--color-surface-secondary);border:1px solid rgba(0,0,0,.06);border-radius:10px;min-width:85px;box-shadow:0 2px 4px #0000000a}.personnel-stat-pill.success{background:var(--color-success-light);border-color:var(--color-border)}.personnel-stat-pill.info{background:var(--color-info-light);border-color:#0066cc26}.personnel-stat-pill .stat-number{font-size:22px;font-weight:600;color:var(--color-text);line-height:1}.personnel-stat-pill.success .stat-number{color:var(--color-primary)}.personnel-stat-pill.info .stat-number{color:var(--color-info)}.personnel-stat-pill .stat-label{font-size:11px;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.btn-add-v2{display:flex;align-items:center;gap:8px;padding:11px 22px;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--font-family-base);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm);white-space:nowrap}.btn-add-v2:hover{transform:translateY(-1px);background:var(--color-primary);box-shadow:var(--shadow-md)}.personnel-loading-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;background:var(--color-surface);border:1px solid rgba(0,0,0,.06);border-radius:12px}.personnel-loading-v2 p{margin-top:20px;color:var(--color-text-secondary);font-size:15px;font-weight:500}.personnel-content-v2{display:flex;flex-direction:column;gap:32px}.personnel-section-v2{display:flex;flex-direction:column;gap:20px}.section-header{display:flex;align-items:center;gap:12px;padding:0 4px}.section-indicator{width:4px;height:24px;border-radius:2px;background:var(--color-primary)}.section-indicator.active{background:var(--color-primary)}.section-indicator.inactive{background:var(--color-text-muted)}.section-header h3{margin:0;font-size:18px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.section-count{padding:4px 10px;background:var(--color-hover-overlay);color:var(--color-primary);border-radius:8px;font-size:13px;font-weight:600}.personnel-grid-v2{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.employee-card-v2{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid rgba(0,0,0,.06);border-radius:12px;overflow:hidden;transition:all .2s ease;box-shadow:0 2px 8px #0000000a}.employee-card-v2:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:#0000001a}.employee-card-v2.inactive{opacity:.7}.employee-card-v2.inactive:hover{opacity:1}.employee-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-surface-secondary);border-bottom:1px solid rgba(0,0,0,.04)}.employee-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:8px;color:#fff;font-size:16px;font-weight:600;box-shadow:var(--shadow-sm)}.employee-avatar.inactive{background:var(--color-text-muted);box-shadow:0 2px 6px #9ca3af33}.employee-card-actions{display:flex;gap:8px}.btn-icon-action{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:6px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.btn-icon-action:hover{background:var(--color-surface-secondary);color:var(--color-text);border-color:#0000001f}.employee-card-body{padding:20px;flex:1}.employee-name{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.employee-role{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;color:var(--color-text-secondary);font-weight:500}.employee-role svg{color:var(--color-primary)}.employee-details-v2{display:flex;flex-direction:column;gap:10px}.employee-detail-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--color-text-muted);transition:color .2s ease}.employee-detail-item:hover{color:var(--color-text)}.employee-detail-item svg{flex-shrink:0;color:var(--color-primary);opacity:.7}.employee-card-footer{padding:12px 18px;background:var(--color-surface-secondary);border-top:1px solid rgba(0,0,0,.04)}.status-badge-v2{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;font-size:11px;font-weight:600}.status-badge-v2.active{background:var(--color-success-light);color:var(--color-primary);border:1px solid var(--color-border)}.status-badge-v2.inactive{background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid rgba(0,0,0,.08)}.personnel-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;background:var(--color-surface);border:1px dashed rgba(0,0,0,.12);border-radius:12px;text-align:center}.personnel-empty-state .empty-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-success-light);border-radius:10px;color:var(--color-primary);margin-bottom:20px}.personnel-empty-state h3{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--color-text)}.personnel-empty-state p{margin:0 0 24px;font-size:14px;color:var(--color-text-secondary);max-width:300px}.modal-overlay-v2{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content-v2{background:#fff;border-radius:12px;max-width:520px;width:100%;box-shadow:0 10px 30px #0003;overflow:hidden}.modal-header-v2{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(0,0,0,.06);background:var(--color-surface-secondary)}.btn-close-v2{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.btn-close-v2:hover{background:var(--color-border);color:var(--color-text)}.form-group-v2 label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--color-text)}.form-group-v2 input,.form-group-v2 select,.select-v2{width:100%;padding:11px 14px;border:1px solid rgba(0,0,0,.1);border-radius:8px;font-size:14px;font-family:inherit;transition:all .15s ease;background:var(--color-surface-secondary);color:var(--color-text)}.form-group-v2 input:focus,.form-group-v2 select:focus,.select-v2:focus{outline:none;border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 2px var(--color-focus-ring)}.form-row-v2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.btn-secondary-v2,.btn-primary-v2{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-secondary-v2{background:#fff;border:1px solid rgba(0,0,0,.12);color:var(--color-text)}.btn-primary-v2:hover{background:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}@media (max-width: 1024px){.personnel-header-v2{padding:24px}.personnel-header-text h2{font-size:24px}}@media (max-width: 1024px){.personnel-header-v2{grid-template-columns:1fr;grid-template-areas:"info" "actions" "stats"}.personnel-header-actions{width:100%}.personnel-header-stats{width:100%;justify-content:flex-start}.btn-add-v2{width:100%;justify-content:center}}@media (max-width: 768px){.personnel-stat-pill{flex:1;min-width:75px}.personnel-header-info{min-width:auto}.personnel-header-stats{justify-content:center}.btn-add-v2{width:100%;justify-content:center}.personnel-grid-v2,.form-row-v2{grid-template-columns:1fr}.modal-content-v2{max-width:100%;margin:10px;border-radius:12px}.modal-form-v2{padding:20px}.modal-actions-v2{flex-direction:column}.btn-secondary-v2,.btn-primary-v2,.btn-create-profile{width:100%;justify-content:center}}@media (max-width: 480px){.personnel-header-v2{padding:12px;gap:8px}.personnel-header-text h2{font-size:20px}.personnel-stat-pill{font-size:12px;padding:6px 10px}.personnel-card{padding:12px}.personnel-card-actions{flex-wrap:wrap;gap:6px}.personnel-card-actions button{min-width:44px;min-height:44px}}.btn-create-profile{display:flex;align-items:center;gap:8px;padding:11px 22px;background:var(--color-info);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--font-family-base);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0066cc4d;white-space:nowrap}.btn-create-profile:hover{transform:translateY(-1px);background:var(--color-info-dark);box-shadow:0 4px 12px #0066cc59}.btn-create-profile:active{transform:translateY(0)}.modal-header-title{display:flex;align-items:center;gap:12px}.modal-header-title svg{color:var(--color-info)}.profile-status{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;margin-bottom:16px}.profile-status.success{background:var(--color-success-light);border:1px solid var(--color-border);color:var(--color-success-contrast)}.profile-status.success svg{color:var(--color-primary)}.profile-status.error{background:var(--color-error-light);border:1px solid rgba(239,68,68,.25);color:var(--color-error-contrast)}.profile-status.error svg{color:var(--color-error)}.form-hint{display:block;margin-top:6px;font-size:12px;color:var(--color-text-secondary);font-style:italic}.modal-detail-content{background:#fff;border-radius:24px;width:90%;max-width:900px;max-height:90vh;overflow:hidden;box-shadow:0 24px 64px #0003;display:flex;flex-direction:column;animation:modalSlideIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-detail-header{background:var(--color-primary);color:#fff;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid rgba(255,255,255,.1)}.modal-detail-header-content{display:flex;gap:20px;align-items:center;flex:1}.modal-detail-icon{width:70px;height:70px;border-radius:16px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #0003;border:2px solid rgba(255,255,255,.2);flex-shrink:0}.modal-detail-title h3{font-size:28px;font-weight:700;margin:0 0 6px;color:#fff;letter-spacing:-.5px}.modal-detail-codigo{font-size:13px;font-weight:600;color:#ffffffbf;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.modal-detail-tipo{display:inline-block;padding:6px 14px;background:#fff3;border-radius:20px;font-size:13px;font-weight:600;text-transform:capitalize;border:1px solid rgba(255,255,255,.3)}.modal-close-detail{background:#ffffff26;border:2px solid rgba(255,255,255,.3);width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .2s ease;flex-shrink:0}.modal-close-detail:hover{background:#ffffff40;transform:rotate(90deg)}.modal-detail-body{padding:32px;overflow-y:auto;flex:1;background:var(--color-surface-secondary)}.modal-detail-body::-webkit-scrollbar{width:10px}.modal-detail-body::-webkit-scrollbar-track{background:var(--color-surface-secondary)}.modal-detail-body::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:5px}.modal-detail-body::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.detail-summary-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;padding:24px;background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014;border:1px solid var(--color-border)}.summary-stat{display:flex;flex-direction:column;gap:8px}.summary-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:28px;font-weight:700;color:var(--color-text);line-height:1}.summary-unit{font-size:14px;color:var(--color-text-secondary);font-weight:500;margin-left:6px}.detail-info-box{margin-bottom:24px;padding:16px;background:var(--color-surface-secondary);border-radius:12px;border-left:3px solid var(--color-primary)}.detail-info-box h4{font-size:14px;font-weight:700;color:var(--color-primary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.detail-info-box p{margin:0;color:var(--color-text-secondary);line-height:1.6}.detail-locations-section{margin-top:24px}.detail-locations-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--color-border)}.detail-locations-header h4{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;color:var(--color-text);margin:0}.btn-add-location{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-add-location:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-add-location:disabled{opacity:.6;cursor:not-allowed}.add-location-form{margin-bottom:20px;padding:20px;background:linear-gradient(135deg,var(--color-success-light) 0%,#f1f8f4 100%);border-radius:12px;border:1px solid var(--color-border)}.form-row-inline{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.form-group-inline label{display:block;font-size:13px;font-weight:600;color:var(--color-primary);margin-bottom:6px}.form-group-inline select,.form-group-inline input{width:100%;padding:10px 12px;border:2px solid var(--color-border-strong);border-radius:8px;font-size:14px;transition:all .3s ease}.form-group-inline select:focus,.form-group-inline input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.form-actions-inline{display:flex;gap:8px}.btn-save-inline,.btn-cancel-inline{display:flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.btn-save-inline{background:var(--color-success);color:#fff}.btn-save-inline:hover:not(:disabled){background:var(--color-success);transform:translateY(-2px)}.btn-cancel-inline{background:var(--color-text-secondary);color:#fff}.btn-cancel-inline:hover:not(:disabled){background:var(--color-text-secondary)}.locations-table{display:flex;flex-direction:column;gap:12px}.location-row{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border:2px solid var(--color-border);border-radius:12px;transition:all .3s ease}.location-row:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #00000014}.location-info{display:flex;align-items:center;gap:12px;flex:1}.location-icon{width:40px;height:40px;border-radius:10px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center}.location-details{flex:1}.location-name{font-size:16px;font-weight:600;color:var(--color-text);margin-bottom:2px}.location-description{font-size:13px;color:var(--color-text-secondary)}.location-quantity{min-width:150px;text-align:center}.quantity-display{display:flex;align-items:baseline;justify-content:center;gap:4px}.quantity-value{font-size:24px;font-weight:700;color:var(--color-primary)}.quantity-unit{font-size:13px;color:var(--color-text-secondary);font-weight:500}.edit-quantity-inline{display:flex;gap:6px;align-items:center}.edit-quantity-inline input{width:80px;padding:6px 8px;border:1px solid var(--color-primary);border-radius:6px;font-size:14px;text-align:center}.btn-save-qty,.btn-cancel-qty{width:32px;height:32px;border:none;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.btn-save-qty{background:var(--color-success);color:#fff}.btn-save-qty:hover:not(:disabled){background:var(--color-success)}.btn-cancel-qty{background:var(--color-error);color:#fff}.btn-cancel-qty:hover:not(:disabled){background:var(--color-error-dark)}.location-actions{display:flex;gap:8px}.btn-icon-action{width:36px;height:36px;border:none;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.btn-edit-location{background:var(--color-info);color:#fff}.btn-edit-location:hover:not(:disabled){background:var(--color-info-dark);transform:translateY(-2px)}.btn-delete-location{background:var(--color-error);color:#fff}.btn-delete-location:hover:not(:disabled){background:var(--color-error-dark);transform:translateY(-2px)}.btn-icon-action:disabled{opacity:.5;cursor:not-allowed}.empty-locations{text-align:center;padding:48px 24px;color:var(--color-text-secondary)}.empty-locations svg{margin-bottom:16px}.empty-title{font-size:16px;font-weight:600;color:var(--color-text-secondary);margin:0 0 8px}.empty-hint{font-size:14px;font-weight:400;color:var(--color-text-secondary);margin:8px 0 0;line-height:1.6}@media (max-width: 768px){.modal-detail-content{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.modal-detail-header,.modal-detail-body{padding:20px}.detail-summary-card,.form-row-inline{grid-template-columns:1fr}.location-row{flex-direction:column;align-items:stretch}.location-info{flex-direction:column;align-items:flex-start}.location-quantity{text-align:left}.location-actions{justify-content:flex-end}}.almacen-principal-section{margin-bottom:24px;padding:24px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid var(--color-info);border-radius:16px;box-shadow:0 4px 16px #007aff14}.almacen-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:12px}.almacen-title{display:flex;align-items:center;gap:10px;color:var(--color-info-dark)}.almacen-title h4{margin:0;font-size:18px;font-weight:700}.almacen-badge{padding:8px 16px;background:linear-gradient(135deg,var(--color-info) 0%,var(--color-info-dark) 100%);color:#fff;border-radius:20px;font-size:14px;font-weight:700;box-shadow:0 2px 8px #007aff4d}.almacen-help{font-size:14px;color:var(--color-info-dark);margin:12px 0 20px;line-height:1.6;font-weight:500}.btn-asignar-almacen{display:flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,var(--color-info) 0%,var(--color-info-dark) 100%);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 12px #007aff4d}.btn-asignar-almacen:hover{transform:translateY(-2px);box-shadow:0 8px 24px #007aff66}.summary-value-highlight{color:var(--color-info)!important;font-size:36px!important}.stock-sin-asignar{color:var(--color-info)!important}.modal-header-actions{display:flex;align-items:center;gap:12px}.btn-add-stock{display:flex;align-items:center;gap:10px;padding:12px 24px;background:#fff;color:var(--color-primary);border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 12px #00000026}.btn-add-stock:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000040;background:var(--color-surface-secondary)}.nueva-compra-section{margin-bottom:28px;padding:28px;background:linear-gradient(135deg,#d1fae5 0%,var(--color-success-light) 100%);border:2px solid var(--color-success);border-radius:16px;box-shadow:0 4px 16px #34c75914}.nueva-compra-section h3{display:flex;align-items:center;gap:12px;margin:0 0 8px;font-size:20px;font-weight:700;color:var(--color-success-dark)}.section-help{font-size:14px;color:var(--color-success-dark);margin-bottom:20px;line-height:1.6;font-weight:500}.nueva-compra-form{margin-top:20px}.form-row-compra{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:20px}.form-group-compra{display:flex;flex-direction:column;gap:8px}.form-group-compra.full-width{grid-column:1 / -1}.form-group-compra label{font-size:12px;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.5px}.form-group-compra input,.form-group-compra select{padding:12px 16px;border:2px solid var(--color-border-strong);border-radius:10px;font-size:15px;font-weight:500;transition:all .2s ease;background:#fff;color:var(--color-text)}.form-group-compra input:focus,.form-group-compra select:focus{outline:none;border-color:var(--color-success);box-shadow:0 0 0 4px #10b9811a}.costo-total-display{padding:14px 18px;background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);border-radius:10px;font-size:24px;font-weight:700;color:#fff;text-align:center;box-shadow:0 4px 12px #10b9814d;border:2px solid rgba(255,255,255,.3)}.form-actions-compra{display:flex;gap:12px;margin-top:24px;padding-top:24px;border-top:2px solid rgba(6,95,70,.15)}.btn-save-compra,.btn-cancel-compra{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.btn-save-compra{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);color:#fff;box-shadow:0 4px 12px #10b9814d}.btn-save-compra:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #10b98166}.btn-save-compra:disabled{opacity:.6;cursor:not-allowed}.btn-cancel-compra{background:var(--color-surface-secondary);color:var(--color-text-secondary);border:2px solid var(--color-border)}.btn-cancel-compra:hover:not(:disabled){background:var(--color-border);border-color:var(--color-border-strong)}.historial-section{margin-top:24px;padding:20px;background:#fff;border:2px solid var(--color-border);border-radius:12px}.historial-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--color-border)}.historial-header h3{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:700;color:var(--color-text)}.filtros-movimiento{display:flex;gap:8px}.filtros-movimiento button{padding:6px 12px;border:2px solid var(--color-border);background:#fff;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease;color:var(--color-text-secondary)}.filtros-movimiento button:hover{border-color:var(--color-primary);color:var(--color-primary)}.filtros-movimiento button.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.movimientos-table{width:100%;overflow-x:auto}.movimientos-table table{width:100%;border-collapse:collapse}.movimientos-table thead{background:var(--color-surface-secondary)}.movimientos-table th{padding:12px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border)}.movimientos-table td{padding:12px;font-size:14px;border-bottom:1px solid var(--color-surface-secondary)}.movimientos-table tbody tr:hover{background:var(--color-surface-secondary)}.tipo-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize}.tipo-compra{background:var(--color-success)15;color:var(--color-success)}.tipo-asignacion{background:var(--color-info)15;color:var(--color-info)}.tipo-consumo{background:var(--color-error-light);color:var(--color-error-contrast);border:1px solid var(--color-error-light)}.tipo-ajuste{background:var(--color-text-secondary)15;color:var(--color-text-secondary)}.notas-cell{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.movimientos-footer{padding:12px;text-align:center;background:var(--color-surface-secondary);border-top:2px solid var(--color-border);font-size:13px;color:var(--color-text-secondary)}.empty-movimientos{text-align:center;padding:48px 24px;color:var(--color-text-secondary)}.empty-movimientos svg{opacity:.3;margin-bottom:16px}.empty-movimientos p{font-size:16px;margin:0}.tooltip-trigger{position:relative;display:inline-flex;align-items:center;margin-left:6px;cursor:help;opacity:.6;transition:opacity .2s ease}.tooltip-trigger:hover{opacity:1}.tooltip-text{visibility:hidden;opacity:0;position:absolute;bottom:125%;left:50%;transform:translate(-50%);background:var(--color-text-secondary);color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;z-index:1000;transition:all .2s ease;pointer-events:none}.tooltip-text:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-text-secondary)}.tooltip-trigger:hover .tooltip-text{visibility:visible;opacity:1}.stock-progress-bar{width:100%;height:4px;background:var(--color-surface-secondary);border-radius:2px;overflow:hidden;margin-top:8px}.stock-progress-fill{height:100%;transition:all .3s ease;border-radius:2px}.stock-progress-fill.critical{background:linear-gradient(90deg,var(--color-error),var(--color-error))}.stock-progress-fill.warning{background:linear-gradient(90deg,var(--color-warning),var(--color-warning-dark))}.stock-progress-fill.normal{background:linear-gradient(90deg,var(--color-success),var(--color-success-dark))}.stock-progress-fill.near-max{background:linear-gradient(90deg,var(--color-info),var(--color-info))}.validation-error{display:block;margin-top:6px;font-size:12px;color:var(--color-error);font-weight:500}.validation-hint{display:block;margin-top:6px;font-size:12px;color:var(--color-text-secondary);font-weight:500}.input-error{border-color:var(--color-error)!important;background:var(--color-error-light)!important}.input-error:focus{box-shadow:0 0 0 4px #ef44441a!important}.section-divider{height:1px;background:linear-gradient(90deg,transparent,var(--color-border) 20%,var(--color-border) 80%,transparent);margin:32px 0}@media (max-width: 768px){.form-row-compra{grid-template-columns:1fr}.filtros-movimiento{flex-wrap:wrap}.movimientos-table{overflow-x:scroll}.tooltip-text{white-space:normal;max-width:200px}}:root{--inventory-primary: var(--color-primary);--inventory-success: var(--color-success);--inventory-warning: var(--color-warning);--inventory-error: var(--color-error);--inventory-info: var(--color-info)}.inventory-v2{display:flex;flex-direction:column;gap:24px;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}.inventory-header-v2{display:flex;align-items:center;justify-content:space-between;gap:var(--space-20);padding:var(--space-20) var(--space-24);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap}.inventory-header-info{display:flex;align-items:center;gap:20px;flex:1;min-width:280px}.inventory-header-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:var(--radius-md);color:#fff;flex-shrink:0}.inventory-header-text h2{margin:0 0 2px;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em}.inventory-header-text p{margin:0;font-size:14px;color:var(--color-text-secondary);font-weight:500}.inventory-header-stats{display:flex;gap:12px;flex-wrap:wrap}.inventory-stat-pill{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-12) var(--space-16);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);min-width:72px}.inventory-stat-pill.success{border-left:3px solid var(--color-success)}.inventory-stat-pill.warning{border-left:3px solid var(--color-warning)}.inventory-stat-pill.danger{border-left:3px solid var(--color-error)}.inventory-stat-pill .stat-number{font-size:20px;font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1}.inventory-stat-pill.success .stat-number{color:var(--color-success)}.inventory-stat-pill.warning .stat-number{color:var(--color-warning-dark)}.inventory-stat-pill.danger .stat-number{color:var(--color-error)}.inventory-stat-pill .stat-label{font-size:10px;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.inventory-v2 .btn-add-v2{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);font-family:var(--font-family-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);white-space:nowrap}.inventory-v2 .btn-add-v2:hover{background:var(--color-primary-hover);background:var(--color-primary)}@media (max-width: 1024px){.inventory-header-v2{padding:var(--space-20)}.inventory-header-text h2{font-size:var(--font-size-lg)}}@media (max-width: 768px){.inventory-v2{gap:var(--space-16)}.inventory-header-v2{flex-direction:column;align-items:stretch;gap:var(--space-16);padding:var(--space-16)}.inventory-header-info{min-width:auto;gap:var(--space-12)}.inventory-header-icon{width:40px;height:40px}.inventory-header-stats{justify-content:stretch;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-8)}.inventory-stat-pill{min-width:0;padding:var(--space-8) var(--space-4)}.inventory-stat-pill .stat-number{font-size:var(--font-size-md)}.inventory-v2 .btn-add-v2{width:100%;justify-content:center;min-height:44px}}@media (max-width: 480px){.inventory-header-v2{padding:var(--space-12)}.inventory-header-text h2{font-size:var(--font-size-md)}.inventory-header-text p{font-size:var(--font-size-xs)}.inventory-header-stats{grid-template-columns:repeat(2,1fr)}.inventory-stat-pill .stat-label{font-size:9px}}.inventory-container{padding:0;background:transparent;min-height:100vh;min-height:100dvh}.inventory-header-main{margin-bottom:32px;animation:fadeIn .6s cubic-bezier(.4,0,.2,1)}.inventory-title h2{font-family:var(--font-family-display);font-size:34px;font-weight:700;color:var(--color-text);margin:0 0 8px;letter-spacing:-.5px}.inventory-title p{color:var(--color-text-secondary);margin:0;font-size:16px}.inventory-header-modern{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-24);margin-bottom:var(--space-20);box-shadow:var(--shadow-sm)}@keyframes slideInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.inventory-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px;flex-wrap:wrap}.inventory-title-section{display:flex;align-items:center;gap:16px}.title-icon-wrapper{width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-primary);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.inventory-title-section h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 2px;letter-spacing:-.01em}.inventory-title-section p{font-size:14px;color:var(--color-text-secondary);margin:0}.inventory-actions-modern{display:flex;gap:12px;flex-wrap:wrap}.btn-modern{padding:var(--space-8) var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border:none;cursor:pointer;display:flex;align-items:center;gap:var(--space-8);transition:all var(--duration-fast) var(--ease-out)}.btn-modern:hover{opacity:.9}.btn-modern.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong)}.btn-modern.btn-secondary:hover{background:var(--color-hover-overlay);border-color:var(--color-primary);color:var(--color-primary)}.btn-modern.btn-primary{background:var(--color-primary);color:#fff}.btn-modern.btn-primary:hover{background:var(--color-primary)}.inventory-controls{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search-box-modern{flex:1;min-width:300px;position:relative;display:flex;align-items:center;background:#fff;border:2px solid var(--color-border);border-radius:14px;padding:0 16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.search-box-modern:focus-within{border-color:var(--inventory-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.search-box-modern svg:first-child{color:var(--color-text-muted);margin-right:12px}.search-box-modern input{flex:1;border:none;outline:none;padding:14px 0;font-size:15px;color:var(--color-text);background:transparent}.search-box-modern input::placeholder{color:var(--color-text-muted)}.search-clear{background:var(--color-border);border:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.search-clear:hover{background:var(--color-border-strong);transform:scale(1.1)}.view-toggles{display:flex;gap:8px;background:#fff;padding:6px;border-radius:12px;border:2px solid var(--color-border)}.view-toggle{padding:10px 14px;background:transparent;border:none;border-radius:8px;cursor:pointer;color:var(--color-text-secondary);transition:all .2s;display:flex;align-items:center;justify-content:center}.view-toggle:hover{background:var(--color-surface-secondary);color:var(--inventory-primary)}.view-toggle.active{background:var(--inventory-primary);color:#fff;box-shadow:var(--shadow-sm)}.category-filters{display:flex;gap:8px;flex-wrap:wrap}.category-chip{padding:10px 18px;background:#fff;border:2px solid var(--color-border);border-radius:12px;font-size:14px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:8px}.category-chip:hover{border-color:var(--inventory-primary);transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.category-chip.active{background:var(--color-primary);border-color:var(--inventory-primary);color:#fff;box-shadow:var(--shadow-sm)}.chip-count{background:#00000026;padding:2px 8px;border-radius:8px;font-size:12px;font-weight:700}.category-chip.active .chip-count{background:#ffffff40}.inventory-alerts-modern{background:linear-gradient(135deg,var(--color-error-light) 0%,var(--color-error-light) 100%);border:2px solid rgba(255,59,48,.2);border-radius:20px;padding:24px;margin-bottom:24px;animation:fadeInUp .6s cubic-bezier(.34,1.56,.64,1) .2s backwards}.alerts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.alerts-title{display:flex;align-items:center;gap:12px;color:var(--inventory-error)}.alerts-title h4{font-size:20px;font-weight:700;margin:0}.alerts-badge{background:var(--inventory-error);color:#fff;padding:6px 14px;border-radius:12px;font-size:13px;font-weight:700}.alerts-grid-modern{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.alert-card-modern{background:#fff;border-radius:16px;padding:20px;display:flex;gap:16px;box-shadow:0 4px 16px #00000014;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1);animation-fill-mode:backwards;transition:all .3s cubic-bezier(.4,0,.2,1);border-left:4px solid}.alert-card-modern.alert-crítico{border-left-color:var(--inventory-error)}.alert-card-modern.alert-advertencia{border-left-color:var(--inventory-warning)}.alert-card-modern:hover{transform:translate(8px) scale(1.02);box-shadow:0 8px 24px #0000001f}.alert-icon-modern{width:40px;height:40px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;flex-shrink:0}.alert-card-modern.alert-crítico .alert-icon-modern{background:var(--color-error-light);color:var(--color-error)}.alert-card-modern.alert-advertencia .alert-icon-modern{background:var(--color-warning-light);color:var(--color-warning-dark)}.alert-content-modern{flex:1}.alert-material-modern{font-size:16px;font-weight:700;color:var(--color-text);margin-bottom:6px}.alert-message-modern{font-size:14px;color:var(--color-text-secondary);margin-bottom:10px}.alert-status-modern{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.alert-card-modern.alert-crítico .alert-status-modern{color:var(--inventory-error)}.alert-card-modern.alert-advertencia .alert-status-modern{color:var(--inventory-warning)}.inventory-stats-modern{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:24px}.stat-card-modern{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16) var(--space-20);display:flex;align-items:center;gap:var(--space-16);transition:box-shadow var(--duration-fast) var(--ease-out)}.stat-card-modern:hover{box-shadow:var(--shadow-sm)}.stat-icon-modern{width:40px;height:40px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-modern.stat-total .stat-icon-modern{background:var(--color-info-light);color:var(--color-info)}.stat-card-modern.stat-low .stat-icon-modern{background:var(--color-warning-light);color:var(--color-warning-dark)}.stat-card-modern.stat-critical .stat-icon-modern{background:var(--color-error-light);color:var(--color-error)}.stat-card-modern.stat-ok .stat-icon-modern{background:var(--color-success-light);color:var(--color-success)}.stat-data-modern{flex:1}.stat-value-modern{font-size:28px;font-weight:var(--font-weight-semibold);line-height:1;margin-bottom:4px;color:var(--color-text)}.stat-label-modern{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:2px}.stat-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.table-wrapper-modern{background:#fff;border:2px solid var(--color-border);border-radius:20px;overflow:hidden;box-shadow:0 4px 20px #0000000f;animation:fadeInUp .6s cubic-bezier(.34,1.56,.64,1) .4s backwards}.inventory-table-modern{width:100%;border-collapse:collapse}.inventory-table-modern thead{background:linear-gradient(135deg,var(--color-surface-secondary) 0%,var(--color-surface-secondary) 100%)}.inventory-table-modern th{padding:18px 20px;text-align:left;font-size:12px;font-weight:700;color:var(--inventory-primary);text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid var(--color-border)}.inventory-table-modern tbody tr{border-bottom:1px solid var(--color-border);transition:all .3s cubic-bezier(.4,0,.2,1);animation:fadeInRow .4s cubic-bezier(.4,0,.2,1);animation-fill-mode:backwards}@keyframes fadeInRow{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.inventory-table-modern tbody tr:hover{background:var(--color-surface-secondary);transform:scale(1.01);box-shadow:0 4px 12px #0000000d}.inventory-table-modern tbody tr:last-child{border-bottom:none}.inventory-table-modern td{padding:18px 20px;font-size:14px;color:var(--color-text)}.material-code{font-family:var(--font-family-mono);font-size:13px;font-weight:600;color:var(--inventory-primary);background:var(--color-hover-overlay);padding:6px 12px;border-radius:8px;display:inline-block}.material-info-modern{display:flex;flex-direction:column;gap:4px}.material-name-modern{font-weight:600;color:var(--color-text);font-size:15px}.material-description-modern{font-size:13px;color:var(--color-text-secondary)}.stock-info-modern{display:flex;flex-direction:column;gap:8px;min-width:120px}.stock-amount-modern{font-family:var(--font-family-mono);font-size:18px;font-weight:700;color:var(--color-text)}.stock-unit-modern{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.stock-progress-bar{width:100%;height:8px;background:var(--color-border);border-radius:8px;overflow:hidden;position:relative}.stock-progress-fill{height:100%;border-radius:8px;transition:width .6s cubic-bezier(.4,0,.2,1),background .3s;position:relative;overflow:hidden}.stock-progress-fill:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}.stock-range-modern{display:flex;align-items:center;gap:6px;font-family:var(--font-family-mono);font-size:14px}.stock-min-modern,.stock-max-modern{font-weight:600;color:var(--color-text)}.stock-separator-modern{opacity:.5;color:var(--color-text-secondary)}.proveedor-cell{color:var(--color-text-secondary);font-size:13px}.stock-badge{font-size:11px;font-weight:700;padding:6px 12px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px;display:inline-block}.stock-badge-crítico{background:var(--color-error-light);color:var(--inventory-error);border:1.5px solid var(--inventory-error);box-shadow:0 2px 8px #ff3b3033}.stock-badge-bajo{background:var(--color-warning-light);color:var(--inventory-warning);border:1.5px solid var(--inventory-warning);box-shadow:0 2px 8px #ff950033}.stock-badge-normal{background:var(--color-success-light);color:var(--inventory-success);border:1.5px solid var(--inventory-success);box-shadow:0 2px 8px #34c75933}.stock-badge-alto{background:var(--color-info-light);color:var(--inventory-info);border:1.5px solid var(--inventory-info);box-shadow:0 2px 8px #007aff33}.action-buttons-modern{display:flex;gap:8px}.action-btn-modern{width:36px;height:36px;border-radius:10px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);background:var(--color-surface-secondary)}.action-btn-modern:hover{transform:translateY(-2px) scale(1.1);box-shadow:0 6px 16px #00000026}.action-btn-modern.action-view{color:var(--inventory-info)}.action-btn-modern.action-view:hover{background:var(--inventory-info);color:#fff}.action-btn-modern.action-edit{color:var(--inventory-primary)}.action-btn-modern.action-edit:hover{background:var(--inventory-primary);color:#fff}.action-btn-modern.action-delete{color:var(--inventory-error)}.action-btn-modern.action-delete:hover{background:var(--inventory-error);color:#fff}.materials-grid-modern{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;animation:fadeInUp .6s cubic-bezier(.34,1.56,.64,1) .4s backwards}.material-card-modern{background:#fff;border:2px solid var(--color-border);border-radius:20px;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1);animation-fill-mode:backwards}.material-card-modern:hover{border-color:var(--inventory-primary);box-shadow:0 20px 40px #0000001f;transform:translateY(-8px) scale(1.02)}.material-card-header{padding:20px;background:linear-gradient(135deg,var(--color-surface-secondary) 0%,var(--color-surface-secondary) 100%);display:flex;justify-content:space-between;align-items:center}.material-card-icon{width:48px;height:48px;border-radius:12px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.material-status-badge{font-size:10px;font-weight:700;padding:6px 12px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.material-status-badge.badge-crítico{background:var(--inventory-error);color:#fff}.material-status-badge.badge-bajo{background:var(--inventory-warning);color:#fff}.material-status-badge.badge-normal{background:var(--inventory-success);color:#fff}.material-status-badge.badge-alto{background:var(--inventory-info);color:#fff}.material-card-body{padding:20px}.material-card-body h4{font-size:18px;font-weight:700;color:var(--color-text);margin:0 0 8px}.material-code-text{font-family:var(--font-family-mono);font-size:12px;font-weight:600;color:var(--inventory-primary);background:var(--color-hover-overlay);padding:4px 10px;border-radius:6px;display:inline-block;margin-bottom:16px}.material-stock-visual{margin-bottom:16px}.stock-value-large{font-size:32px;font-weight:800;color:var(--color-text);margin-bottom:12px}.stock-value-large span{font-size:16px;font-weight:500;color:var(--color-text-secondary)}.stock-progress-large{width:100%;height:12px;background:var(--color-border);border-radius:12px;overflow:hidden;margin-bottom:8px}.stock-progress-fill-large{height:100%;border-radius:12px;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stock-progress-fill-large:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shimmer 2s infinite}.stock-range-text{font-size:13px;color:var(--color-text-secondary);font-weight:500}.material-proveedor{font-size:13px;color:var(--color-text-secondary);padding-top:12px;border-top:1px solid var(--color-border)}.material-proveedor strong{color:var(--color-text)}.material-card-footer{padding:16px 20px;background:var(--color-surface-secondary);display:flex;gap:8px;border-top:1px solid var(--color-border)}.card-btn{flex:1;padding:10px;border-radius:10px;border:none;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .3s cubic-bezier(.4,0,.2,1)}.card-btn-view{background:#007aff1a;color:var(--inventory-info)}.card-btn-view:hover{background:var(--inventory-info);color:#fff;transform:translateY(-2px)}.card-btn-edit{background:var(--color-hover-overlay);color:var(--inventory-primary)}.card-btn-edit:hover{background:var(--inventory-primary);color:#fff;transform:translateY(-2px)}.card-btn-delete{background:#ff3b301a;color:var(--inventory-error);width:40px;flex:0}.card-btn-delete:hover{background:var(--inventory-error);color:#fff;transform:translateY(-2px)}.empty-state-modern{padding:80px 20px;text-align:center;color:var(--color-text-secondary)}.empty-state-modern svg{opacity:.3;margin-bottom:20px}.empty-state-modern h4{font-size:20px;font-weight:700;color:var(--color-text);margin:0 0 8px}.empty-state-modern p{font-size:14px;margin:0}.empty-state-modern.empty-grid{grid-column:1 / -1}.inventory-loading{display:flex;justify-content:center;align-items:center;padding:80px 20px;background:#fff;border-radius:20px;border:2px solid var(--color-border)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s cubic-bezier(.4,0,.2,1)}.modal-content{background:#fff;border-radius:24px;box-shadow:0 25px 50px #0000004d;max-width:600px;width:90%;max-height:90vh;max-height:90dvh;overflow:hidden;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:2px solid var(--color-border);background:linear-gradient(135deg,var(--color-surface-secondary) 0%,var(--color-surface) 100%)}.modal-header h3{font-size:22px;font-weight:700;color:var(--color-text);margin:0;display:flex;align-items:center;gap:12px}.modal-close{background:var(--color-surface-secondary);border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s}.modal-close:hover{background:var(--color-border);transform:scale(1.1) rotate(90deg)}.modal-body{padding:28px;overflow-y:auto;max-height:calc(90vh - 180px);max-height:calc(90dvh - 180px)}.material-form-simple{display:flex;flex-direction:column;gap:20px}.form-info{padding:14px 18px;background:var(--color-hover-overlay);border-radius:12px;border-left:4px solid var(--inventory-primary)}.form-info p{margin:0;font-size:14px;color:var(--color-text);font-weight:500;display:flex;align-items:center;gap:8px}.form-group-main,.form-group{display:flex;flex-direction:column;gap:8px}.form-group-main label,.form-group label{font-size:14px;font-weight:600;color:var(--color-text)}.form-group-main input,.form-group input,.input-main{padding:12px 16px;border:2px solid var(--color-border);border-radius:12px;font-size:15px;background:#fff;color:var(--color-text);transition:all .3s cubic-bezier(.4,0,.2,1)}.form-group-main input:focus,.form-group input:focus,.input-main:focus{outline:none;border-color:var(--inventory-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.form-row-simple{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions-simple{display:flex;gap:12px;justify-content:flex-end;padding-top:12px}.btn-cancel{padding:12px 24px;border:2px solid var(--color-border);border-radius:12px;background:transparent;color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer;transition:all .3s}.btn-cancel:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.btn-primary{padding:12px 24px;border:none;border-radius:12px;background:var(--color-primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .3s;display:flex;align-items:center;gap:8px}.btn-primary:hover{background:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 1024px){.inventory-header-top{flex-direction:column;align-items:flex-start}.inventory-actions-modern{width:100%}.inventory-actions-modern button{flex:1;min-height:44px}.inventory-stats-modern{grid-template-columns:repeat(2,1fr)}.materials-grid-modern{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width: 768px){.inventory-container,.inventory-v2{overflow-x:hidden}.inventory-header-modern{padding:var(--space-16)}.inventory-title-section{gap:var(--space-12)}.title-icon-wrapper{width:40px;height:40px;flex-shrink:0}.inventory-title-section h3{font-size:var(--font-size-md)}.inventory-title-section p{font-size:var(--font-size-xs)}.inventory-actions-modern{flex-direction:column}.inventory-actions-modern button{width:100%}.inventory-controls{flex-direction:column;gap:var(--space-8)}.search-box-modern{min-width:unset;width:100%;padding:0 var(--space-12)}.search-box-modern input{padding:12px 0;font-size:var(--font-size-base)}.search-clear{width:32px;height:32px;min-width:32px}.view-toggles{width:100%;justify-content:center}.view-toggle{flex:1;min-height:44px;padding:10px}.category-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:var(--space-4);-webkit-overflow-scrolling:touch;scrollbar-width:thin}.category-chip{flex-shrink:0;min-height:40px;padding:8px 14px;font-size:var(--font-size-sm)}.alerts-grid-modern{grid-template-columns:1fr;gap:var(--space-12)}.alert-card-modern{padding:var(--space-12);border-radius:12px}.alert-card-modern:hover{transform:none}.inventory-stats-modern{grid-template-columns:repeat(2,1fr);gap:var(--space-12)}.stat-card-modern{padding:var(--space-12);gap:var(--space-8)}.stat-icon-modern{width:36px;height:36px}.stat-icon-modern svg{width:20px;height:20px}.stat-value-modern{font-size:var(--font-size-lg)}.stat-label-modern{font-size:var(--font-size-xs)}.stat-hint{display:none}.table-wrapper-modern{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px}.inventory-table-modern{min-width:720px}.inventory-table-modern th,.inventory-table-modern td{padding:12px var(--space-12);font-size:var(--font-size-sm)}.inventory-table-modern tbody tr:hover{transform:none}.action-btn-modern{width:40px;height:40px}.action-btn-modern:hover{transform:none}.materials-grid-modern{grid-template-columns:1fr;gap:var(--space-12)}.material-card-modern{border-radius:14px}.material-card-modern:hover{transform:none}.material-card-header,.material-card-body,.material-card-footer{padding:var(--space-16)}.material-card-body h4{font-size:var(--font-size-md)}.stock-value-large{font-size:24px}.card-btn{min-height:44px;padding:10px}.card-btn:hover{transform:none}.form-row-simple{grid-template-columns:1fr}.form-actions-simple{flex-direction:column-reverse;gap:var(--space-8)}.form-actions-simple button{width:100%;min-height:44px}.form-group-main input,.form-group input,.input-main,.form-group-main select,.form-group select,.form-group textarea{font-size:16px;min-height:44px}.modal-content{width:94%;border-radius:16px}.modal-header{padding:var(--space-16)}.modal-body{padding:var(--space-16);max-height:calc(100dvh - 140px)}.modal-close{min-width:40px;min-height:40px}}@media (max-width: 480px){.inventory-header-modern{padding:var(--space-12);border-radius:12px}.inventory-header-top{margin-bottom:var(--space-12);gap:var(--space-12)}.inventory-title-section h3{font-size:var(--font-size-base)}.btn-modern{padding:10px var(--space-12);font-size:var(--font-size-sm);min-height:44px}.inventory-stats-modern{grid-template-columns:1fr 1fr;gap:var(--space-8)}.stat-card-modern{flex-direction:column;align-items:flex-start;padding:var(--space-12);text-align:left}.alert-card-modern{flex-direction:column;gap:var(--space-8)}.alerts-header{flex-direction:column;align-items:flex-start;gap:var(--space-8)}.alerts-title h4{font-size:var(--font-size-md)}.material-card-modern{border-radius:12px}.modal-overlay{padding:0;align-items:flex-end}.modal-content{width:100%;max-width:100%;max-height:100dvh;border-radius:16px 16px 0 0;animation:slideUpMobile .3s cubic-bezier(.4,0,.2,1)}.modal-body{max-height:calc(100dvh - 120px)}@keyframes slideUpMobile{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}.form-info-codigo{padding:var(--space-12)}.codigo-preview{font-size:20px}.card-btn{font-size:var(--font-size-sm)}.card-btn-delete{width:44px;min-width:44px}}.form-info-codigo{margin-bottom:20px;padding:16px;background:var(--color-surface-secondary);border-radius:12px;border:1px solid var(--color-border)}.form-info-codigo label{display:block;font-size:13px;font-weight:600;color:var(--inventory-primary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.codigo-preview{font-size:24px;font-weight:700;font-family:Courier New,monospace;color:var(--inventory-primary);letter-spacing:1px}.material-type-badge{display:inline-block;padding:6px 12px;background:var(--color-primary);color:#fff;border-radius:8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.ubicaciones-count{font-size:14px;color:var(--color-text-secondary);font-weight:500}.material-ubicaciones-info{font-size:13px;color:var(--inventory-info);font-weight:600;margin:8px 0;padding:6px 12px;background:#007aff1a;border-radius:8px;display:inline-block}.form-help-text{display:block;font-size:12px;color:var(--color-text-secondary);margin-top:6px;line-height:1.4;font-style:italic}.map-location-picker{display:flex;flex-direction:column;gap:20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card);transition:all var(--duration-normal) var(--ease-out);height:100%}.map-location-picker:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover)}.search-section{display:flex;flex-direction:column;gap:12px;position:relative;z-index:10}.search-input-container{position:relative;display:flex;align-items:center;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:12px 16px;transition:all var(--duration-fast) var(--ease-out)}.search-input-container:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-subtle)}.search-icon{font-size:18px;margin-right:12px;color:var(--color-text-secondary)}.search-input{flex:1;border:none;outline:none;background:transparent;font-size:var(--font-size-base);color:var(--color-text);font-family:var(--font-family-base)}.search-input::placeholder{color:var(--color-text-tertiary)}.clear-search-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--color-secondary);border:none;border-radius:50%;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);color:var(--color-text-secondary);font-size:14px}.clear-search-btn:hover{background:var(--color-hover-overlay);color:var(--color-text);transform:scale(1.1)}.map-container{flex:1 1 auto;min-height:0;height:400px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);position:relative}.map-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--color-surface);z-index:10}.coordinates-display{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.coordinates-text{font-size:13px;color:var(--color-text-secondary);font-family:var(--font-family-mono)}.coordinates-value{font-weight:600;color:var(--color-text)}.copy-coords-btn{padding:6px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.copy-coords-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-1px)}.picker-actions{display:flex;gap:12px;padding-top:16px;border-top:1px solid var(--color-divider)}.picker-actions button{flex:1;padding:12px;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.btn-confirm-location{background:var(--color-primary);border:none;color:#fff}.btn-confirm-location:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #30d1584d}.btn-cancel-picker{background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-text)}.btn-cancel-picker:hover{background:var(--color-secondary);border-color:var(--color-border-strong)}.picker-help{font-size:13px;color:var(--color-text-secondary);text-align:center;padding:10px;background:var(--color-primary-light);border-radius:var(--radius-base);border:1px solid rgba(48,209,88,.2)}.maplibre-location-marker{color:var(--color-primary, var(--color-info));filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:markerBounce .3s ease-out}@keyframes markerBounce{0%{transform:translateY(-20px);opacity:0}60%{transform:translateY(5px)}to{transform:translateY(0);opacity:1}}.map-instructions{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full, 999px);font-size:13px;color:var(--color-text-secondary, #605E5C);box-shadow:0 2px 8px #00000026;pointer-events:none;z-index:10}.search-actions{display:flex;gap:8px}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--color-surface, #FFFFFF);border:1px solid var(--color-border, #EDEBE9);border-radius:var(--radius-md, 6px);box-shadow:var(--shadow-md, 0 4px 16px rgba(0, 0, 0, .12));max-height:300px;overflow-y:auto;z-index:1000;margin-top:4px}.suggestion-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;transition:background var(--duration-fast, .15s) ease}.suggestion-item:hover{background:var(--color-hover-overlay, rgba(0, 0, 0, .04))}.suggestion-icon{color:var(--color-primary, var(--color-info));flex-shrink:0;margin-top:2px}.suggestion-text{flex:1;min-width:0}.suggestion-address{font-weight:600;color:var(--color-text, var(--color-primary));margin-bottom:2px}.suggestion-full-address{font-size:13px;color:var(--color-text-secondary, #605E5C);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-results{padding:16px;text-align:center;color:var(--color-text-secondary, #605E5C);font-size:14px}.coordinate-input-section{background:var(--color-surface-secondary, #FAF9F8);border:1px solid var(--color-border, #EDEBE9);border-radius:var(--radius-md, 6px);padding:16px}.coordinate-inputs{display:flex;gap:12px;align-items:flex-end}.coord-group{flex:1}.coord-group label{display:block;font-size:12px;font-weight:600;color:var(--color-text-secondary, #605E5C);margin-bottom:4px}.coord-input{width:100%;padding:8px 12px;border:1px solid var(--color-border, #EDEBE9);border-radius:var(--radius-base, 4px);font-size:14px;font-family:var(--font-family-mono, monospace)}.coord-input:focus{outline:none;border-color:var(--color-primary, var(--color-info));box-shadow:0 0 0 2px var(--color-focus-ring, rgba(0, 120, 212, .2))}.coordinate-help{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--color-text-secondary, #605E5C)}.selected-location-info{background:var(--color-success-light, #DFF6DD);border:1px solid var(--color-success, var(--color-success));border-radius:var(--radius-md, 6px);padding:12px 16px}.location-preview{display:flex;align-items:center;gap:12px}.location-icon{color:var(--color-success, var(--color-success));flex-shrink:0}.location-details{flex:1;min-width:0}.location-address{font-weight:600;color:var(--color-text, var(--color-primary));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-coordinates{font-size:12px;color:var(--color-text-secondary, #605E5C);font-family:var(--font-family-mono, monospace)}.location-status{color:var(--color-success, var(--color-success));flex-shrink:0}.clear-button{background:none;border:none;color:var(--color-text-secondary, #605E5C);cursor:pointer;padding:4px;font-size:14px;line-height:1;transition:color var(--duration-fast, .15s) ease}.clear-button:hover{color:var(--color-text, var(--color-primary))}.loading-indicator{display:flex;align-items:center;padding-left:8px}.loading-indicator .spinner{width:16px;height:16px;border:2px solid var(--color-border, #EDEBE9);border-top-color:var(--color-primary, var(--color-info));border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 1024px){.map-container{height:320px}}@media (max-width: 768px){.map-location-picker{padding:var(--space-12);gap:var(--space-12)}.map-container{height:45dvh;min-height:260px}.search-input{min-height:44px;font-size:var(--font-size-base)}.search-actions{flex-wrap:wrap;gap:var(--space-8)}.search-actions button{min-height:40px;flex:1 1 auto}.suggestions-dropdown{max-height:45dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.suggestion-item{min-height:48px;padding:var(--space-10) var(--space-12)}.picker-actions{flex-direction:column}.picker-actions button{width:100%;min-height:44px}.coordinates-display{flex-direction:column;align-items:flex-start;gap:var(--space-8)}.coordinate-inputs{flex-direction:column;gap:var(--space-8)}.coord-input{min-height:44px}}@media (max-width: 480px){.map-location-picker{padding:var(--space-8)}.map-container{height:40dvh;min-height:220px}.search-actions button{font-size:var(--font-size-xs)}.search-actions button span{display:none}.coordinate-input-section{padding:var(--space-8)}}.enhanced-stops-manager{display:flex;flex-direction:column;height:100%;width:100%}.stops-grid-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-20);height:100%;min-height:0}@media (min-width: 1025px){.stops-grid-layout{min-height:600px}}.map-column{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.map-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-16) var(--space-20);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border)}.map-header-content{display:flex;align-items:flex-start;gap:var(--space-12);flex:1}.map-header-content svg{flex-shrink:0;color:var(--color-primary);margin-top:2px}.map-header-content h5{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0;line-height:1.3}.map-header-content p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.4}.stops-column{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.stops-list-header{padding:var(--space-16) var(--space-20);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0}.header-left{display:flex;align-items:flex-start;gap:var(--space-12)}.header-left svg{flex-shrink:0;color:var(--color-primary);margin-top:2px}.header-left h5{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0;line-height:1.3}.header-left p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.4}.stops-list{flex:1;overflow-y:auto;padding:var(--space-12);display:flex;flex-direction:column;gap:var(--space-8)}.stop-item{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-12);align-items:center;padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-out)}.stop-item:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong)}.stop-item.editing{background:var(--color-primary-subtle);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.stop-number-badge{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:var(--radius-base);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);flex-shrink:0;box-shadow:var(--shadow-sm)}.stop-content{min-width:0;flex:1}.stop-address{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-full-address{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0 0 var(--space-6) 0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-coordinates{display:flex;align-items:center;gap:var(--space-6);font-size:11px;color:var(--color-text-tertiary);font-family:ui-monospace,SF Mono,monospace}.stop-coordinates svg{flex-shrink:0}.stop-coordinates.missing{color:var(--color-warning)}.stop-coordinates.missing svg{color:var(--color-warning)}.stop-actions{display:flex;gap:var(--space-4);flex-shrink:0}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.btn-icon:hover:not(:disabled){background:var(--color-surface-secondary);border-color:var(--color-border-strong);color:var(--color-text)}.btn-icon:active:not(:disabled){transform:scale(.95)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon--primary{background:var(--color-primary-subtle);border-color:var(--color-primary-light);color:var(--color-primary)}.btn-icon--primary:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-hover)}.btn-icon--danger{background:var(--color-error-light);border-color:var(--color-error-light);color:var(--color-error)}.btn-icon--danger:hover:not(:disabled){background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error-hover)}.no-stops{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-40) var(--space-20);text-align:center;color:var(--color-text-tertiary)}.no-stops svg{margin-bottom:var(--space-12);opacity:.4;color:var(--color-text-tertiary)}.no-stops h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-6) 0}.no-stops p{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0;max-width:240px}.stops-summary{padding:var(--space-16) var(--space-20);background:var(--color-surface-secondary);border-top:1px solid var(--color-border);flex-shrink:0}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12);margin-bottom:var(--space-12)}.stat-item{display:flex;align-items:center;gap:var(--space-10);padding:var(--space-10) var(--space-12);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base)}.stat-item svg{color:var(--color-primary);flex-shrink:0}.stat-item div{min-width:0}.stat-value{display:block;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1.2}.stat-label{display:block;font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.summary-warning{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-12);background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-base);font-size:var(--font-size-xs);color:var(--color-warning-dark)}.summary-warning svg{flex-shrink:0;color:var(--color-warning)}@media (max-width: 1024px){.stops-grid-layout{grid-template-columns:1fr;gap:var(--space-16)}.map-column{min-height:340px}.stops-column{min-height:240px}.summary-stats{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.stops-grid-layout{min-height:auto;gap:var(--space-12)}.map-column{min-height:50dvh}.stops-column{min-height:0}.map-header,.stops-list-header{padding:var(--space-12) var(--space-16)}.stops-list{padding:var(--space-8)}.stop-item{grid-template-columns:auto 1fr;gap:var(--space-10)}.stop-actions{grid-column:1 / -1;justify-content:flex-end;padding-top:var(--space-8);border-top:1px solid var(--color-border);margin-top:var(--space-8);gap:var(--space-8)}.stop-actions button{min-width:44px;min-height:44px}.stat-item{padding:var(--space-8) var(--space-10)}.stat-value{font-size:var(--font-size-sm)}.stat-label{font-size:10px}}@media (max-width: 480px){.stops-grid-layout{gap:var(--space-8)}.map-column{min-height:45dvh}.summary-stats{grid-template-columns:1fr 1fr;gap:var(--space-4)}.map-header,.stops-list-header{padding:var(--space-8) var(--space-12)}.map-header h3,.stops-list-header h3{font-size:var(--font-size-base)}}.route-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s cubic-bezier(.4,0,.2,1);padding:20px;overflow:hidden}@supports (backdrop-filter: blur(20px)){.route-modal-overlay{background:#0000004d}}.route-modal-content{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:1100px;max-height:90vh;display:flex;flex-direction:column;border:1px solid var(--color-border);animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden;position:relative}.route-modal-header-v2{background:var(--color-surface);padding:var(--space-24) var(--space-28);border-bottom:1px solid var(--color-border);flex-shrink:0;min-height:auto;display:flex;flex-direction:column;gap:var(--space-16);position:relative}.route-modal-header-v2:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-primary)}.header-top-row{display:flex;justify-content:space-between;align-items:flex-start}.modal-header-content{flex:1;min-width:0}.modal-header-content h4{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0 0 var(--space-4) 0;letter-spacing:-.02em;display:flex;align-items:center;gap:var(--space-10)}.modal-header-content h4 svg{color:var(--color-primary)}.modal-header-content p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5;font-weight:var(--font-weight-medium)}.modal-close-v2{background:var(--color-surface-secondary);border:1px solid var(--color-border);width:36px;height:36px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all var(--duration-fast) var(--ease-out);flex-shrink:0;margin-left:var(--space-16)}.modal-close-v2:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong);color:var(--color-text)}.header-stats-row{display:flex;gap:var(--space-12);flex-wrap:wrap}.stat-pill-v2{display:flex;align-items:center;gap:var(--space-10);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--space-8) var(--space-12);transition:all var(--duration-fast) var(--ease-out)}.stat-pill-v2:hover{border-color:var(--color-border-strong);background:var(--color-hover-overlay)}.stat-pill-v2 svg{flex-shrink:0;color:var(--color-primary)}.stat-content{display:flex;flex-direction:column;gap:2px}.stat-pill-v2 .stat-value{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);line-height:1;font-family:var(--font-family-display);color:var(--color-text);letter-spacing:-.01em}.stat-pill-v2 .stat-label{font-size:11px;font-weight:var(--font-weight-semibold);line-height:1;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.route-modal-tabs{display:flex;gap:var(--space-4);padding:var(--space-12) var(--space-28) 0 var(--space-28);background:var(--color-surface-secondary);border-bottom:2px solid var(--color-border);flex-shrink:0;min-height:56px;max-height:56px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.route-modal-tabs::-webkit-scrollbar{display:none}.tab-button{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-16);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);position:relative;white-space:nowrap;flex-shrink:0}.tab-button:hover{color:var(--color-text);background:var(--color-hover-overlay);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.tab-button.active{color:var(--color-primary);background:var(--color-surface);border-bottom:2px solid var(--color-primary);border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-weight:var(--font-weight-bold)}.tab-button.active .tab-icon{opacity:1}.tab-icon{display:flex;align-items:center;justify-content:center;font-size:18px;transition:all var(--duration-fast) var(--ease-out)}.tab-label{font-family:var(--font-family-display);letter-spacing:-.01em;font-size:var(--font-size-sm)}.tab-badge{background:var(--color-primary);color:#fff;font-size:11px;font-weight:var(--font-weight-bold);padding:2px var(--space-8);border-radius:var(--radius-full);min-width:20px;text-align:center}.tab-error-badge{background:var(--color-error);color:#fff;font-size:11px;font-weight:var(--font-weight-bold);padding:2px 7px;border-radius:var(--radius-full);min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;text-align:center}.tab-button.has-errors{position:relative}.tab-button.has-errors:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--color-error);opacity:.5}@keyframes pulse-error{0%,to{box-shadow:0 0 #ff3b30b3}50%{box-shadow:0 0 0 6px #ff3b3000}}.validation-error-banner{display:flex;gap:var(--space-12);padding:var(--space-12) var(--space-28);background:var(--color-error-light);border-bottom:1px solid var(--color-border);border-left:3px solid var(--color-error);color:var(--color-error);font-size:var(--font-size-sm);line-height:1.6;animation:slideDown .3s ease-out}.validation-error-banner>svg{flex-shrink:0;margin-top:2px}.error-banner-content{flex:1}.error-banner-content strong{display:block;margin-bottom:var(--space-6);font-weight:var(--font-weight-semibold);color:var(--color-error)}.error-list{margin:0;padding-left:var(--space-20);list-style:disc}.error-list li{margin:var(--space-4) 0}.error-list li strong{display:inline;margin:0;color:var(--color-error)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.route-modal-body{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--color-background);padding:24px 28px;min-height:0;position:relative}.tab-content{animation:slideIn .3s ease-out;height:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-info{display:flex;flex-direction:row;gap:24px;height:auto;min-height:0}.info-form-section{display:flex;flex-direction:column;gap:20px;flex:1;min-width:0;max-width:500px}.info-map-section{display:flex;flex-direction:column;gap:16px;flex:1;min-width:0;max-width:500px}.form-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);box-shadow:var(--shadow-xs);overflow:visible}.form-section h5{font-family:var(--font-family-display);font-size:16px;font-weight:700;color:var(--color-text);margin:0 0 16px;letter-spacing:-.01em;padding-bottom:12px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:8px;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-input,.route-textarea,.route-select{width:100%;min-width:0;max-width:100%;padding:var(--space-10) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background:var(--color-surface);color:var(--color-text);transition:all var(--duration-fast) var(--ease-out);font-family:var(--font-family);box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-input:hover,.route-textarea:hover,.route-select:hover{border-color:var(--color-border-strong)}.route-input:focus,.route-textarea:focus,.route-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.route-input.error,.route-textarea.error,.route-select.error{border-color:var(--color-error)}.route-textarea{resize:vertical;min-height:70px;max-height:150px;line-height:1.5;white-space:pre-wrap;overflow-y:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.error-text{display:block;color:var(--color-error);font-size:12px;margin-top:4px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.text-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.color-picker-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.color-input{width:50px;height:50px;border:2px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);flex-shrink:0}.color-input:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}.color-presets{display:flex;gap:8px;flex-wrap:wrap}.color-preset{width:36px;height:36px;border:2px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);padding:0;flex-shrink:0}.color-preset:hover{transform:scale(1.1);box-shadow:0 4px 12px #0003}.color-preset.active{border:3px solid var(--color-primary);transform:scale(1.05)}.map-preview-header{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12) var(--space-16);flex-shrink:0}.map-preview-header h5{font-family:var(--font-family-display);font-size:16px;font-weight:700;color:var(--color-text);margin:0;display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-marker{background:transparent;border:none}.marker-pin{width:32px;height:32px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px #0000004d;border:3px solid white}.marker-pin.marker-start{background:var(--color-success)}.marker-pin.marker-middle{background:var(--color-primary)}.marker-pin.marker-end{background:var(--color-error)}.marker-number{transform:rotate(45deg);color:#fff;font-weight:700;font-size:13px;font-family:var(--font-family-display);line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.3)}.map-preview-container{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;position:relative;min-height:300px;max-height:450px;height:100%}.map-placeholder{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary)}.map-placeholder-content{text-align:center;padding:40px 20px;max-width:300px}.placeholder-icon{font-size:60px;margin-bottom:12px;opacity:.4;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.05);opacity:.6}}.map-placeholder-content h6{font-size:18px;font-weight:700;color:var(--color-text);margin:0 0 6px}.map-placeholder-content p{font-size:13px;color:var(--color-text-secondary);margin:0;line-height:1.4}.tab-stops{width:100%;max-width:100%;overflow:hidden}.error-banner{background:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-base);padding:var(--space-12) var(--space-16);margin-top:var(--space-12);color:var(--color-error);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--space-8)}.tab-config{display:flex;flex-direction:column;gap:20px;max-width:700px;margin:0 auto;width:100%}.config-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);box-shadow:var(--shadow-xs)}.config-section h5{font-family:var(--font-family-display);font-size:16px;font-weight:700;color:var(--color-text);margin:0 0 16px;letter-spacing:-.01em;padding-bottom:12px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:8px}.auto-calculate-toggle{margin-bottom:20px}.toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer}.toggle-input{display:none}.toggle-switch{position:relative;width:48px;height:28px;background:var(--color-border);border-radius:var(--radius-full);transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.toggle-switch:before{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0003}.toggle-input:checked+.toggle-switch{background:var(--color-primary)}.toggle-input:checked+.toggle-switch:before{transform:translate(20px)}.toggle-text{font-size:14px;font-weight:600;color:var(--color-text)}.toggle-hint{font-size:12px;color:var(--color-text-secondary);margin:6px 0 0 60px;line-height:1.5;display:flex;align-items:center;gap:6px}.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.metric-card{display:flex;flex-direction:column;gap:8px}.metric-card label{font-size:13px;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:6px}.metric-input{padding:var(--space-12) var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);background:var(--color-surface);color:var(--color-text);font-family:var(--font-family-mono);transition:all var(--duration-fast) var(--ease-out);text-align:center;width:100%;box-sizing:border-box}.metric-input:hover:not(:disabled){border-color:var(--color-border-strong)}.metric-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.metric-input:disabled{background:var(--color-secondary);cursor:not-allowed;opacity:.7}.metric-input.error{border-color:var(--color-error)}.info-card{display:flex;gap:var(--space-12);padding:var(--space-12) var(--space-16);background:var(--color-primary-subtle);border:1px solid var(--color-primary-light);border-radius:var(--radius-base);margin-top:var(--space-16)}.info-icon{font-size:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.info-content strong{display:block;font-size:14px;font-weight:700;color:var(--color-text);margin-bottom:2px}.info-content p{font-size:13px;color:var(--color-text-secondary);margin:0;line-height:1.4}.days-checkboxes{display:flex;gap:8px;flex-wrap:wrap}.form-group .day-checkbox{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-12);overflow:visible;text-overflow:clip;white-space:nowrap;margin-bottom:0;border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:var(--color-surface);-webkit-user-select:none;user-select:none}.day-checkbox:hover{background:var(--color-hover-overlay);border-color:var(--color-primary)}.day-checkbox input[type=checkbox]{margin:0;cursor:pointer}.day-checkbox input[type=checkbox]:checked+span{color:var(--color-primary);font-weight:600}.day-checkbox span{font-size:13px;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;white-space:nowrap}.day-checkbox--all{background:var(--color-surface-secondary);border-style:dashed;font-weight:600}.day-checkbox--all span{color:var(--color-primary);font-weight:600}.label-hint{font-size:11px;font-weight:400;color:var(--color-text-tertiary);margin-left:6px}.days-checkboxes.error-highlight{border:2px dashed var(--color-error);padding:var(--space-12);border-radius:var(--radius-base);background:var(--color-error-light);animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.form-group.has-error label{color:var(--color-error);font-weight:var(--font-weight-semibold)}.route-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 28px;border-top:1px solid var(--color-border);background:var(--color-surface);gap:12px;flex-shrink:0;min-height:70px;max-height:70px}.footer-info{flex:1;min-width:0}.validation-info{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);border-radius:var(--radius-base);border:1px solid;max-width:100%;overflow:hidden}.validation-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.validation-info.error{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.validation-info.warning{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.validation-info.success{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.footer-actions .btn{padding:var(--space-10) var(--space-20);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);letter-spacing:-.01em;border:none;display:flex;align-items:center;gap:var(--space-6);white-space:nowrap}.footer-actions .btn--secondary{background:var(--color-surface-secondary);border:1px solid var(--color-border);color:var(--color-text)}.footer-actions .btn--secondary:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong);transform:translateY(-1px)}.footer-actions .btn--primary{background:var(--color-primary);color:#fff;box-shadow:none}.footer-actions .btn--primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.footer-actions .btn--primary:active:not(:disabled){transform:translateY(0)}.footer-actions .btn--primary:disabled{opacity:.5;cursor:not-allowed;transform:none;background:var(--color-text-tertiary);box-shadow:none}.route-modal-body::-webkit-scrollbar{width:6px}.route-modal-body::-webkit-scrollbar-track{background:var(--color-secondary);border-radius:3px}.route-modal-body::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}.route-modal-body::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.route-textarea::-webkit-scrollbar{width:4px}.route-textarea::-webkit-scrollbar-track{background:var(--color-secondary);border-radius:2px}.route-textarea::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px}@media (max-width: 1024px){.route-modal-content{max-width:900px}.tab-info{flex-direction:column}.info-form-section,.info-map-section{max-width:100%}.info-map-section{order:-1;min-height:350px;max-height:400px}.map-preview-container{min-height:280px;max-height:350px}}@media (max-width: 768px){.route-modal-overlay{padding:0}.route-modal-content{max-width:100%;width:100%;max-height:100dvh;height:100dvh;border-radius:0}.route-modal-header-v2{padding:var(--space-12) var(--space-16);min-height:auto;gap:var(--space-8);padding-top:max(var(--space-12),env(safe-area-inset-top))}.modal-header-content h4{font-size:20px}.modal-header-content p{font-size:13px}.modal-close-v2{width:36px;height:36px;margin-left:12px}.stat-pill-v2{padding:8px 12px;gap:8px}.stat-pill-v2 .stat-value{font-size:16px}.stat-pill-v2 .stat-label{font-size:10px}.route-modal-tabs{padding:var(--space-8) var(--space-16) 0 var(--space-16);gap:var(--space-4);min-height:48px;max-height:48px}.tab-button{padding:var(--space-8) var(--space-12);font-size:var(--font-size-sm);min-height:44px;min-width:44px}.tab-label{display:none}.tab-icon{font-size:20px}.route-modal-body{padding:16px 20px}.tab-info{flex-direction:column;gap:16px}.info-form-section{order:2}.info-map-section{order:1;min-height:240px;max-height:40dvh}.map-preview-container{min-height:200px;max-height:36dvh}.info-map-section:has(.map-placeholder){min-height:auto;max-height:none}.info-map-section:has(.map-placeholder) .map-preview-container{min-height:0;max-height:none;height:auto}.info-map-section:has(.map-placeholder) .map-placeholder{position:static;padding:var(--space-8) var(--space-12)}.map-placeholder-content{padding:var(--space-8) var(--space-12);display:flex;align-items:center;gap:var(--space-12);text-align:left}.placeholder-icon{margin-bottom:0;flex-shrink:0}.placeholder-icon svg{width:32px;height:32px}.map-placeholder-content h6{font-size:var(--font-size-sm);margin:0}.map-placeholder-content p{font-size:var(--font-size-xs);margin:0}.form-section,.config-section{padding:16px}.form-section h5,.config-section h5{font-size:15px;margin-bottom:12px;padding-bottom:10px}.form-row,.metrics-grid{grid-template-columns:1fr;gap:12px}.route-modal-footer{flex-direction:column-reverse;gap:var(--space-8);padding:var(--space-12) var(--space-16) max(var(--space-12),env(safe-area-inset-bottom)) var(--space-16);min-height:auto;max-height:none}.route-modal-footer .footer-actions{width:100%;display:flex;flex-direction:row;gap:var(--space-8)}.route-modal-footer .footer-actions .btn{flex:1;min-height:44px;justify-content:center;padding:var(--space-10) var(--space-12);font-size:var(--font-size-sm)}.route-modal-footer .footer-actions .btn--secondary{flex:0 0 auto;min-width:96px}.footer-info{width:100%;order:-1}.validation-info{width:100%;justify-content:flex-start;font-size:var(--font-size-xs);padding:var(--space-4) var(--space-8);border-radius:var(--radius-base)}.validation-info.error{background:var(--color-error-light)}.validation-info.success{display:none}.color-picker-group{flex-direction:column;align-items:flex-start;gap:10px}.toggle-hint{margin-left:0;margin-top:8px}.days-checkboxes{gap:6px}.day-checkbox{padding:6px 10px}.day-checkbox span{font-size:12px}}@media (max-width: 480px){.route-modal-header-v2{padding:16px 16px 12px;min-height:100px}.modal-header-content h4{font-size:18px}.modal-header-content p{display:none}.stat-pill-v2{padding:6px 10px;font-size:12px}.stat-pill-v2 .stat-value{font-size:14px}.stat-pill-v2 .stat-label{font-size:9px}.route-modal-tabs{padding:var(--space-8) var(--space-12) 0 var(--space-12)}.route-modal-body,.route-modal-header,.route-modal-footer,.form-section,.config-section{padding:var(--space-12)}.route-input,.route-textarea,.route-select{font-size:16px;padding:var(--space-10) var(--space-12);min-height:44px}.route-textarea{min-height:72px}.footer-actions .btn{padding:var(--space-10) var(--space-16);font-size:var(--font-size-sm);min-height:44px}.color-presets{gap:var(--space-4)}.color-preset{width:36px;height:36px}.stat-chip{font-size:var(--font-size-xs);padding:3px var(--space-8)}.stat-pill-v2{padding:var(--space-4) var(--space-8)}.modal-header-content h4{font-size:var(--font-size-lg)}.modal-header-content p{font-size:var(--font-size-xs)}}.route-marker-pin{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000004d;border:2px solid white;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out)}.route-marker-pin:hover{transform:scale(1.1)}.route-marker-pin.marker-start{background:var(--color-success)}.route-marker-pin.marker-middle{background:var(--color-primary, var(--color-info))}.route-marker-pin.marker-end{background:var(--color-error)}.route-marker-pin .marker-number{color:#fff;font-weight:700;font-size:12px;font-family:var(--font-family-display);line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.3)}.routes-v2{display:flex;flex-direction:column;gap:24px;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}.routes-header-v2{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;background:linear-gradient(135deg,#ffffff 0%,var(--color-surface-secondary) 100%);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 4px 20px #0000000f;flex-wrap:wrap}.routes-header-info{display:flex;align-items:center;gap:20px;flex:1;min-width:280px}.routes-header-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:16px;color:#fff;box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1)}.routes-header-v2:hover .routes-header-icon{transform:scale(1.05) rotate(3deg);box-shadow:var(--shadow-lg)}.routes-header-text h2{margin:0 0 4px;font-family:var(--font-family-display);font-size:28px;font-weight:700;background:var(--color-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.routes-header-text p{margin:0;font-size:14px;color:var(--color-text-secondary);font-weight:500}.routes-header-stats{display:flex;gap:12px;flex-wrap:wrap}.routes-stat-pill{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 24px;background:#6b728014;border:2px solid rgba(107,114,128,.12);border-radius:14px;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:90px}.routes-stat-pill:hover{transform:translateY(-2px);box-shadow:0 8px 16px #00000014}.routes-stat-pill.success{background:#34c7591a;border-color:#34c75933}.routes-stat-pill.info{background:#007aff1a;border-color:#007aff33}.routes-stat-pill .stat-number{font-size:24px;font-weight:700;color:var(--color-text);line-height:1;letter-spacing:-.02em}.routes-stat-pill.success .stat-number{color:var(--color-success)}.routes-stat-pill.info .stat-number{color:var(--color-info)}.routes-stat-pill .stat-label{font-size:11px;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.btn-add-v2{display:flex;align-items:center;gap:10px;padding:14px 28px;background:var(--color-primary);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;font-family:var(--font-family-base);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm);white-space:nowrap}.routes-loading-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;background:linear-gradient(135deg,#ffffff 0%,var(--color-surface-secondary) 100%);border:1px solid var(--color-border);border-radius:16px}.loading-spinner{width:48px;height:48px;border:1px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.routes-loading-v2 p{margin-top:20px;color:var(--color-text-secondary);font-size:15px;font-weight:500}.routes-grid-v2{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.route-card-v2{display:flex;flex-direction:column;background:linear-gradient(135deg,#ffffff 0%,var(--color-surface-secondary) 100%);border:1px solid var(--color-border);border-radius:16px;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 12px #0000000a;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) backwards}.route-card-v2:hover{transform:translateY(-6px);box-shadow:0 20px 40px #0000001f;border-color:var(--color-border)}.route-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-divider)}.route-card-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#fff;box-shadow:0 4px 12px #00000026}.route-card-icon.recoleccion{background:linear-gradient(135deg,var(--color-success) 0%,#30d158 100%);box-shadow:0 4px 12px #34c7594d}.route-card-icon.fumigacion{background:linear-gradient(135deg,var(--color-info) 0%,#0a84ff 100%);box-shadow:0 4px 12px #007aff4d}.route-card-actions{display:flex;gap:8px}.btn-icon-action{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid rgba(0,0,0,.08);border-radius:10px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.route-card-body{padding:20px;flex:1}.route-name{margin:0 0 10px;font-size:18px;font-weight:600;color:var(--color-text);letter-spacing:-.01em;line-height:1.3}.route-type-badge-v2{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;margin-bottom:14px}.route-type-badge-v2.recoleccion{background:#34c7591f;color:var(--color-success);border:1px solid rgba(52,199,89,.2)}.route-type-badge-v2.fumigacion{background:#007aff1f;color:var(--color-info);border:1px solid rgba(0,122,255,.2)}.route-description-v2{margin:0 0 16px;font-size:13px;color:var(--color-text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.route-metrics{display:flex;gap:16px;padding:14px 16px;background:var(--color-surface-secondary);border-radius:12px;border:1px solid var(--color-border)}.route-metric{display:flex;align-items:center;gap:8px;flex:1}.route-metric svg{color:var(--color-primary);opacity:.7;flex-shrink:0}.route-metric .metric-value{font-size:16px;font-weight:700;color:var(--color-text)}.route-metric .metric-label{font-size:11px;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.3px}.route-card-footer{padding:14px 20px;background:#00000005;border-top:1px solid rgba(0,0,0,.04)}.route-schedule-v2{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary);font-weight:500}.route-schedule-v2 svg{color:var(--color-primary)}.schedule-separator{color:var(--color-border-strong)}.routes-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;background:linear-gradient(135deg,#ffffff 0%,var(--color-surface-secondary) 100%);border:1px dashed var(--color-border);border-radius:16px;text-align:center}.routes-empty-state .empty-icon{width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:var(--color-hover-overlay);border-radius:24px;color:var(--color-primary);margin-bottom:24px}.routes-empty-state h3{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--color-text)}.routes-empty-state p{margin:0 0 24px;font-size:14px;color:var(--color-text-secondary);max-width:300px}@media (max-width: 1024px){.routes-header-v2{padding:24px}.routes-header-text h2{font-size:24px}}@media (max-width: 768px){.routes-header-v2{flex-direction:column;align-items:stretch;gap:20px;padding:20px}.routes-header-info{min-width:auto}.routes-header-stats{justify-content:center}.btn-add-v2{width:100%;justify-content:center}.routes-grid-v2{grid-template-columns:1fr}.route-metrics{flex-direction:column;gap:10px}}@media (max-width: 480px){.routes-header-v2{padding:12px;gap:12px}.routes-header-text h2{font-size:20px}.route-card-v2{padding:12px}.route-stops-list{max-height:200px}.route-actions button{min-width:44px;min-height:44px}}.risk-v2{padding:0;background:transparent;min-height:100vh}.risk-header-v2{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--space-16) var(--space-20);margin-bottom:var(--space-20);display:flex;justify-content:space-between;align-items:center;gap:var(--space-16);box-shadow:var(--shadow-xs)}.risk-header-left{display:flex;align-items:center;gap:var(--space-12)}.risk-header-icon{width:36px;height:36px;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0}.risk-header-text h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 2px;letter-spacing:-.01em}.risk-header-text p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;font-weight:var(--font-weight-regular)}.risk-header-stats{display:flex;gap:var(--space-12);flex-wrap:wrap;align-items:center}.risk-stat-compact{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--space-10) var(--space-16);display:flex;flex-direction:column;align-items:center;min-width:85px;transition:border-color var(--duration-fast) var(--ease-out)}.risk-stat-compact:hover{border-color:var(--color-border-strong)}.risk-stat-compact.total{background:var(--color-primary-subtle);border-color:var(--color-primary)}.risk-stat-compact .stat-value{font-size:24px;font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1;margin-bottom:4px}.risk-stat-compact .stat-label{font-size:11px;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;line-height:1.2}@media (max-width: 768px){.risk-header-v2{flex-direction:column;align-items:flex-start;padding:var(--space-16)}.risk-header-stats{width:100%}.risk-stat-compact{flex:1;min-width:60px}}.risk-loading{display:flex;justify-content:center;align-items:center;padding:80px 20px;background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.reports-section{margin-top:24px}.reports-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px;flex-wrap:wrap}.reports-section-header h3{font-family:var(--font-family-display);font-size:21px;font-weight:700;color:var(--color-text);margin:0;letter-spacing:var(--letter-spacing-tight)}.reports-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.reports-filter-select{padding:10px 16px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;font-weight:500;background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);min-width:160px}.reports-filter-select:hover{border-color:var(--color-border-strong)}.reports-filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.no-reports{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;background:var(--color-surface);border-radius:var(--radius-lg);border:2px dashed var(--color-border)}.no-reports-icon{font-size:64px;margin-bottom:16px;opacity:.5}.no-reports h4{font-size:21px;font-weight:700;color:var(--color-text);margin:0 0 8px}.no-reports p{font-size:15px;color:var(--color-text-secondary);margin:0}.reports-responsive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-16)}.report-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);overflow:hidden;transition:all var(--duration-fast) var(--ease-out);position:relative;display:flex;flex-direction:column}.report-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;transition:width var(--duration-fast) var(--ease-out)}.report-card.report-alto:before{background:var(--color-error)}.report-card.report-medio:before{background:var(--color-info)}.report-card.report-bajo:before{background:var(--color-success)}.report-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.report-card:hover:before{width:4px}.report-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.report-badges{display:flex;gap:var(--space-6);flex-wrap:wrap}.report-type-badge{font-size:10px;font-weight:var(--font-weight-bold);color:var(--color-text);text-transform:uppercase;letter-spacing:.5px;background:var(--color-surface);border:1px solid var(--color-border);padding:3px var(--space-8);border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:4px}.report-status-badge{font-size:10px;font-weight:var(--font-weight-bold);padding:3px var(--space-8);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px}.report-status-badge.status-reportado{background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border-strong)}.report-status-badge.status-en_revision{background:var(--color-info-light);color:var(--color-info);border:1px solid var(--color-info)}.report-status-badge.status-resuelto{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.report-date-compact{font-size:11px;color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-family:var(--font-family-mono)}.report-card-body{padding:var(--space-16);flex:1}.report-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-8) 0;letter-spacing:-.01em;line-height:1.3}.report-category-compact{display:flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-12) 0;font-weight:var(--font-weight-medium)}.report-description-compact{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin:0 0 var(--space-16) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.report-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-12);margin-bottom:var(--space-12);padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base)}.info-item{display:flex;align-items:flex-start;gap:var(--space-8);color:var(--color-text-secondary)}.info-item.full-width{grid-column:1 / -1}.info-content{display:flex;flex-direction:column;gap:2px;flex:1}.info-label{font-size:10px;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-medium);line-height:1.3}.info-item.parada-highlight{background:var(--color-surface-secondary);border:1px solid var(--color-border-strong);border-left:3px solid var(--color-primary);border-radius:var(--radius-base);padding:var(--space-8);margin:var(--space-4) 0}.info-item.parada-highlight .info-label{color:var(--color-primary)}.info-item.parada-highlight .info-value{color:var(--color-text);font-weight:var(--font-weight-semibold)}.report-priority-row{display:flex;justify-content:flex-start}.priority-badge-compact{font-size:10px;font-weight:var(--font-weight-bold);padding:4px var(--space-10);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px;display:inline-flex;align-items:center;gap:4px}.priority-badge-compact.priority-critica,.priority-badge-compact.priority-alta{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.priority-badge-compact.priority-media{background:var(--color-info-light);color:var(--color-info);border:1px solid var(--color-info)}.priority-badge-compact.priority-baja{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.report-card-footer{display:flex;gap:var(--space-8);padding:var(--space-12) var(--space-16);border-top:1px solid var(--color-border);background:var(--color-surface-secondary)}@media (max-width: 768px){.reports-responsive-grid{grid-template-columns:1fr}.report-card-header{flex-direction:column;align-items:flex-start;gap:var(--space-8)}.report-info-grid{grid-template-columns:1fr}.info-item.full-width{grid-column:1}.report-card-footer{flex-direction:column}.report-card-footer .btn{width:100%}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-16)}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-width:700px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-20);border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.modal-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;display:flex;align-items:center;gap:var(--space-8)}.modal-close{background:var(--color-surface);border:1px solid var(--color-border);width:32px;height:32px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all var(--duration-fast) var(--ease-out)}.modal-close:hover{background:var(--color-hover-overlay);color:var(--color-text);border-color:var(--color-border-strong)}.modal-body{padding:var(--space-20);overflow-y:auto;flex:1}.detail-section{margin-bottom:var(--space-20)}.detail-section:last-child{margin-bottom:0}.detail-section h4{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-12) 0}.detail-section h5{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-8) 0;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:var(--space-6)}.detail-section p{font-size:var(--font-size-base);color:var(--color-text);line-height:var(--line-height-normal);margin:0}.detail-badges{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-12)}.type-badge{font-size:10px;font-weight:var(--font-weight-bold);padding:4px var(--space-10);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px;display:inline-flex;align-items:center;gap:4px}.type-badge.type-interno{background:var(--color-info-light);color:var(--color-info);border:1px solid var(--color-info)}.type-badge.type-externo{background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border-strong)}.status-badge{font-size:10px;font-weight:var(--font-weight-bold);padding:4px var(--space-10);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-16)}.detail-item{display:flex;flex-direction:column;gap:var(--space-4)}.detail-label{font-size:11px;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:4px}.detail-value{font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-medium);line-height:1.4}.detail-item.parada-detail-highlight{background:var(--color-surface-secondary);border:1px solid var(--color-border-strong);border-left:3px solid var(--color-primary);border-radius:var(--radius-base);padding:var(--space-12)}.detail-item.parada-detail-highlight .detail-label{color:var(--color-primary)}.detail-item.parada-detail-highlight .detail-value{color:var(--color-text);font-weight:var(--font-weight-semibold)}.modal-footer{padding:var(--space-16) var(--space-20);border-top:1px solid var(--color-border);display:flex;gap:var(--space-12);justify-content:flex-end;background:var(--color-surface-secondary)}@media (max-width: 768px){.modal-content{max-width:100%;max-height:95vh}.detail-grid{grid-template-columns:1fr}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%;min-height:44px}}@media (max-width: 480px){.risk-header{padding:12px;gap:8px}.risk-header h2{font-size:20px}.risk-stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.risk-card{padding:12px}.risk-card-actions button{min-width:44px;min-height:44px}.risk-filters{flex-direction:column;gap:8px}}.reports-dashboard-v2{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rd-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-20) var(--space-24);background:var(--color-primary);border-radius:var(--radius-lg);margin-bottom:var(--space-24);box-shadow:var(--shadow-md)}.rd-header-left{display:flex;align-items:center;gap:var(--space-16)}.rd-header-icon{width:52px;height:52px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff}.rd-header-text h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:#fff;margin:0 0 var(--space-4) 0;letter-spacing:-.01em}.rd-header-text p{font-size:var(--font-size-sm);color:#ffffffd9;margin:0}.rd-download-btn{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-20);background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.rd-download-btn:hover{background:#ffffff40;transform:translateY(-1px)}.rd-download-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-24);overflow:hidden;animation:slideDown .2s ease-out;box-shadow:var(--shadow-sm)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.rd-panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-16) var(--space-20);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border)}.rd-panel-header h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.rd-panel-close{width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-base);font-size:20px;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-out)}.rd-panel-close:hover{background:var(--color-hover-overlay);color:var(--color-text)}.rd-panel-body{padding:var(--space-20);display:flex;flex-direction:column;gap:var(--space-20)}.rd-date-range{display:flex;gap:var(--space-16)}.rd-date-field{flex:1;display:flex;flex-direction:column;gap:var(--space-8)}.rd-date-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.rd-date-field input{padding:var(--space-10) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-family:inherit;background:var(--color-surface);color:var(--color-text);transition:all var(--duration-fast) var(--ease-out)}.rd-date-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.rd-modules-select{display:flex;flex-direction:column;gap:var(--space-12)}.rd-modules-header{display:flex;justify-content:space-between;align-items:center}.rd-modules-header label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.rd-select-all-btn{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-12);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.rd-select-all-btn:hover{background:var(--color-surface-secondary);border-color:var(--color-primary);color:var(--color-primary)}.rd-modules-select>label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.rd-module-chips{display:flex;flex-wrap:wrap;gap:var(--space-8)}.rd-chip{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.rd-chip:hover{border-color:var(--chip-color, var(--color-primary));color:var(--chip-color, var(--color-primary));background:var(--color-surface-secondary)}.rd-chip.active{background:var(--chip-color, var(--color-primary));border-color:var(--chip-color, var(--color-primary));color:#fff}.rd-index-toggle{margin-top:var(--space-4);padding-top:var(--space-12);border-top:1px solid var(--color-border)}.rd-toggle-label{display:flex;align-items:center;gap:var(--space-8);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text)}.rd-toggle-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.rd-toggle-label span{-webkit-user-select:none;user-select:none}.rd-export-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-8);padding:var(--space-12) var(--space-24);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);align-self:flex-start}.rd-export-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.rd-export-btn:disabled{opacity:.5;cursor:not-allowed}.rd-modules-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-20)}@media (max-width: 1200px){.rd-modules-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.rd-modules-grid{grid-template-columns:1fr}}.rd-module-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-24);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);overflow:hidden}.rd-module-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-4px)}.rd-card-accent{position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-primary)}.rd-card-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-16);margin-bottom:var(--space-20)}.rd-card-logo{width:100px;height:100px;object-fit:contain;transition:transform var(--duration-normal) var(--ease-out)}.rd-module-card:hover .rd-card-logo{transform:scale(1.05)}.rd-card-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;text-align:center}.rd-card-stats{display:flex;justify-content:center;align-items:center;gap:var(--space-32);padding:var(--space-16) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-16)}.rd-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.rd-stat-value{font-size:32px;font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1}.rd-stat-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.rd-stat-divider{width:1px;height:48px;background:var(--color-border)}.rd-card-footer{display:flex;justify-content:space-between;align-items:center}.rd-card-update{display:flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.rd-card-arrow{color:var(--color-text-tertiary);transition:all var(--duration-fast) var(--ease-out)}.rd-module-card:hover .rd-card-arrow{color:var(--module-color, var(--color-primary));transform:translate(4px)}@media (max-width: 768px){.rd-header{flex-direction:column;gap:var(--space-16);align-items:flex-start;padding:var(--space-16)}.rd-header-icon{width:44px;height:44px}.rd-header-text h1{font-size:var(--font-size-lg)}.rd-download-btn{width:100%;justify-content:center}.rd-date-range,.rd-module-chips{flex-direction:column}.rd-chip{justify-content:center}.rd-card-stats{gap:var(--space-20)}.rd-stat-value{font-size:28px}.rd-card-logo{width:80px;height:80px}}.btn-new{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);padding:10px 20px;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-family:var(--font-family-base);line-height:20px;cursor:pointer;transition:all .12s cubic-bezier(.1,.9,.2,1);border:1px solid transparent;text-decoration:none;-webkit-user-select:none;user-select:none;position:relative;outline:none}.btn-new:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-new:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-new--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-new--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-new--primary:active:not(:disabled){background:var(--color-primary-active);border-color:var(--color-primary-active)}.btn-new--secondary{background:var(--color-secondary);color:var(--color-text);border-color:var(--color-border)}.btn-new--secondary:hover:not(:disabled){background:var(--color-secondary-hover);border-color:var(--color-border-strong)}.btn-new--secondary:active:not(:disabled){background:var(--color-secondary-active);color:var(--color-text)}.btn-new--outline{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.btn-new--outline:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary-hover);color:var(--color-primary-hover)}.btn-new--outline:active:not(:disabled){background:var(--color-primary-subtle);border-color:var(--color-primary-active);color:var(--color-primary-active)}.btn-new--ghost{background:transparent;color:var(--color-text-secondary);border:none}.btn-new--ghost:hover:not(:disabled){background:var(--color-hover-overlay);color:var(--color-text)}.btn-new--ghost:active:not(:disabled){background:var(--color-active-overlay);color:var(--color-text)}.btn-new--danger{background:var(--color-error);color:#fff;border-color:var(--color-error)}.btn-new--danger:hover:not(:disabled){background:var(--color-error-dark);border-color:var(--color-error-dark)}.btn-new--danger:active:not(:disabled){background:var(--color-error-contrast);border-color:var(--color-error-contrast)}.btn-new--success{background:var(--color-success);color:#fff;border-color:var(--color-success)}.btn-new--success:hover:not(:disabled){background:var(--color-success-dark);border-color:var(--color-success-dark)}.btn-new--success:active:not(:disabled){background:var(--color-success-contrast);border-color:var(--color-success-contrast)}.btn-new--sm{padding:5px 12px;font-size:var(--font-size-sm);line-height:16px;gap:var(--space-4)}.btn-new--md{padding:10px 20px;font-size:var(--font-size-base);line-height:20px;gap:var(--space-8)}.btn-new--lg{padding:14px 28px;font-size:var(--font-size-md);line-height:22px;gap:var(--space-8)}.btn-new--full{width:100%}.btn-new__icon{display:flex;align-items:center;justify-content:center}.btn-new__text{display:flex;align-items:center}.badge{display:inline-flex;align-items:center;gap:var(--space-4);padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:var(--font-weight-semibold);line-height:16px;white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;border:1px solid transparent}.badge__icon{display:flex;align-items:center;justify-content:center;font-size:12px}.badge--default{background:var(--color-secondary);color:var(--color-text);border-color:var(--color-border)}.badge--success{background:var(--color-success-light);color:var(--color-success-contrast);border-color:var(--color-success-border)}.badge--error{background:var(--color-error-light);color:var(--color-error-contrast);border-color:var(--color-error-border)}.badge--warning{background:var(--color-warning-light);color:var(--color-warning-contrast);border-color:var(--color-warning-border)}.badge--info{background:var(--color-info-light);color:var(--color-info-contrast);border-color:var(--color-info-border)}.badge--primary{background:var(--color-primary-subtle);color:var(--color-primary-dark);border-color:var(--color-info-border)}.badge--active{background:var(--color-success-light);color:var(--color-success-contrast);border-color:var(--color-success-border)}.badge--inactive{background:var(--color-neutral-light);color:var(--color-text-secondary);border-color:var(--color-neutral-border)}.badge--en-ruta{background:var(--color-info-light);color:var(--color-info-contrast);border-color:var(--color-info-border)}.badge--disponible{background:var(--color-success-light);color:var(--color-success-contrast);border-color:var(--color-success-border)}.badge--mantenimiento{background:var(--color-error-light);color:var(--color-error-contrast);border-color:var(--color-error-border)}.badge--recoleccion{background:var(--color-success-light);color:var(--color-success-contrast);border-color:var(--color-success-border)}.badge--fumigacion{background:var(--color-warning-light);color:var(--color-warning-contrast);border-color:var(--color-warning-border)}.badge--sm{padding:2px 8px;font-size:10px;line-height:14px;gap:var(--space-2)}.badge--md{padding:4px 12px;font-size:12px;line-height:16px;gap:var(--space-4)}.badge--lg{padding:6px 14px;font-size:var(--font-size-sm);line-height:18px;gap:var(--space-4)}.progress-bar{display:flex;align-items:center;gap:var(--space-8);width:100%}.progress-bar__track{flex:1;background:var(--color-secondary);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar__fill{height:100%;border-radius:var(--radius-full);transition:width var(--duration-normal) var(--ease-out);display:flex;align-items:center;justify-content:flex-end;padding-right:var(--space-8);position:relative}.progress-bar__fill--primary{background:var(--color-primary)}.progress-bar__fill--success{background:var(--color-success)}.progress-bar__fill--warning{background:var(--color-warning)}.progress-bar__fill--error{background:var(--color-error)}.progress-bar__fill--info{background:var(--color-info)}.progress-bar__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:#fff;position:relative;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.3)}.progress-bar__external-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);min-width:42px;text-align:right}.progress-bar--sm .progress-bar__track{height:4px}.progress-bar--md .progress-bar__track{height:8px}.progress-bar--lg .progress-bar__track{height:16px}.progress-bar--xl .progress-bar__track{height:24px}.card-new{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:all .2s cubic-bezier(.1,.9,.2,1)}.card-new__header{padding:20px;border-bottom:1px solid var(--color-divider)}.card-new__title{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-8) 0;letter-spacing:var(--letter-spacing-tight);display:flex;align-items:center;gap:var(--space-8)}.card-new__subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal)}.card-new__body{padding:20px}.card-new--default{box-shadow:var(--shadow-sm)}.card-new--elevated{box-shadow:var(--shadow-md)}.card-new--acrylic{background:#ffffffb3;backdrop-filter:blur(30px) saturate(125%);-webkit-backdrop-filter:blur(30px) saturate(125%);box-shadow:var(--shadow-md);border-color:#edebe9cc}.card-new--flat{box-shadow:none}.card-new--hoverable:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-new--hoverable.card-new--acrylic:hover{background:#ffffffd9;box-shadow:var(--shadow-lg)}.card-new--padding-none .card-new__body{padding:0}.card-new--padding-sm .card-new__body{padding:var(--space-12)}.card-new--padding-default .card-new__body{padding:var(--space-20)}.card-new--padding-lg .card-new__body{padding:var(--space-24)}.card-new--primary{border-left:4px solid var(--color-primary)}.card-new--success{border-left:4px solid var(--color-success)}.card-new--warning{border-left:4px solid var(--color-warning)}.card-new--error{border-left:4px solid var(--color-error)}.custom-select-wrapper{position:relative;margin-bottom:0}.custom-select-wrapper.open{z-index:10000}.custom-select-wrapper.disabled{opacity:.5;pointer-events:none}.custom-select-label{display:block;margin-bottom:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--letter-spacing-normal)}.custom-select-label .required{color:var(--color-error);margin-left:2px}.custom-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);min-height:48px}.custom-select-trigger:hover{border-color:var(--color-border-strong);background:var(--color-surface);box-shadow:var(--shadow-xs)}.custom-select-trigger.open{background:var(--color-surface);border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-subtle),var(--shadow-sm);transform:translateY(-1px)}.select-value{flex:1;font-size:var(--font-size-base);color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-value.placeholder{color:var(--color-text-tertiary);font-weight:400}.select-arrow{flex-shrink:0;color:var(--color-primary);transition:transform .3s cubic-bezier(.16,1,.3,1)}.select-arrow.rotated{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + 8px);bottom:auto;left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:var(--shadow-md);z-index:9999;overflow:hidden;animation:dropdownSlideIn .25s cubic-bezier(.16,1,.3,1);transform-origin:top center;max-height:320px;display:flex;flex-direction:column}.custom-select-dropdown[style*="position: fixed"]{position:fixed!important;z-index:9999}.modal-body .custom-select-wrapper{position:static!important}.modal-body .custom-select-dropdown{position:fixed!important;z-index:9999!important}.custom-select-dropdown.portaled{position:fixed!important;z-index:10000!important}@keyframes dropdownSlideIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.select-search{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--color-divider);background:var(--color-surface);flex-shrink:0}.search-icon{color:var(--color-text-secondary);flex-shrink:0}.select-search input{flex:1;border:none;background:transparent;outline:none;font-size:14px;color:var(--color-text);font-family:var(--font-family-base)}.select-search input::placeholder{color:var(--color-text-tertiary)}.select-options{overflow-y:auto;max-height:260px;padding:8px}.select-options::-webkit-scrollbar{width:8px}.select-options::-webkit-scrollbar-track{background:transparent;margin:4px 0}.select-options::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.select-options::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted);background-clip:padding-box}.select-option{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);margin-bottom:4px;position:relative}.select-option:last-child{margin-bottom:0}.select-option:hover{background:var(--color-hover-overlay);transform:translate(4px)}.select-option.selected{background:var(--color-primary);color:#fff;font-weight:600}.select-option.selected:hover{background:var(--color-primary-hover)}.option-label{flex:1;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.check-icon{flex-shrink:0;color:#fff;animation:checkPop .3s cubic-bezier(.16,1,.3,1)}.select-option.empty{text-align:center;color:var(--color-text-secondary);font-size:13px;padding:20px;cursor:default}.select-option.empty:hover{background:transparent;transform:none}.custom-select-backdrop{display:none}@media (max-width: 768px){.custom-select-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:10001;animation:fadeInBackdrop .2s ease}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.custom-select-trigger{padding:12px 16px;min-height:44px}.select-value{font-size:14px}.custom-select-dropdown{position:fixed;top:auto;bottom:0;left:0;right:0;max-height:70vh;border-radius:var(--radius-base) var(--radius-base) 0 0;animation:slideUpFromBottom .3s cubic-bezier(.16,1,.3,1);z-index:1000;box-shadow:0 -12px 48px -8px #0003,0 -4px 16px -4px #0000001f}.custom-select-dropdown:not([style*="position: fixed"]){top:auto!important;bottom:0!important}@keyframes slideUpFromBottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.select-search{padding:16px 20px;position:sticky;top:0;z-index:10;background:var(--color-surface)}.select-options{max-height:calc(70vh - 140px);padding:12px}.select-option{padding:16px 14px;border-radius:12px;margin-bottom:6px;min-height:52px}.option-label{font-size:15px}}@media (max-width: 480px){.custom-select-trigger{padding:10px 14px;min-height:42px}.select-value{font-size:13px}.custom-select-dropdown{max-height:75vh}.select-options{max-height:calc(75vh - 140px)}.select-option{padding:14px 12px;min-height:48px}}.location-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.location-popup{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d,0 8px 16px #0003;width:90%;max-width:420px;overflow:hidden;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);position:relative}.location-popup-close{position:absolute;top:12px;right:12px;background:#fffffff2;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .2s ease;box-shadow:0 2px 8px #00000026}.location-popup-close:hover{background:#fff;transform:scale(1.1);box-shadow:0 4px 12px #0003}.location-popup-close svg{color:#333}.location-popup-image{position:relative;width:100%;height:220px;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2)}.location-popup-image img{width:100%;height:100%;object-fit:cover;display:block}.location-popup-badge{position:absolute;bottom:12px;left:12px;background:#10b981f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;box-shadow:0 2px 8px #0003}.location-popup-badge svg{flex-shrink:0}.location-popup-content{padding:20px}.location-popup-title{font-size:20px;font-weight:700;color:var(--color-text);margin:0 0 16px;line-height:1.3}.location-popup-info{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.location-popup-info-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#666}.location-popup-info-item svg{color:var(--color-success);flex-shrink:0}.location-popup-info-item span{flex:1}.location-popup-description{font-size:14px;color:#555;line-height:1.6;margin:0 0 20px}.location-popup-btn{width:100%;background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);color:#fff;border:none;border-radius:10px;padding:14px 20px;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #10b9814d}.location-popup-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.location-popup-btn:active{transform:translateY(0);box-shadow:0 2px 8px #10b9814d}.location-popup-btn svg{flex-shrink:0}@media (max-width: 640px){.location-popup{width:95%;max-width:none;margin:0 10px}.location-popup-image{height:180px}.location-popup-content{padding:16px}.location-popup-title{font-size:18px}}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-component-wrapper{position:relative;height:100%;min-height:400px}.map-component{position:relative;height:100%;min-height:400px;border-radius:6px;background:#1a1a2e;border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden}.leaflet-container{border-radius:4px;overflow:hidden;height:100%!important}.leaflet-container{background:#1a1a2e!important}.leaflet-tile-container{opacity:1!important;visibility:visible!important;pointer-events:none}.leaflet-tile-container:not(:last-child){opacity:1!important;visibility:visible!important;transition:opacity .5s ease-out,transform .25s ease-out!important}.leaflet-zoom-animated{transition:transform .3s cubic-bezier(.25,.1,.25,1)!important}.leaflet-tile{opacity:1!important;visibility:visible!important;border:none!important;outline:none!important;transition:opacity .2s ease-out!important}.leaflet-tile-loaded{opacity:1!important}.leaflet-pan-anim{transition:transform .2s ease-out!important}.leaflet-pane,.leaflet-map-pane,.leaflet-tile-pane,.leaflet-tile-container{transform:translateZ(0);will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}.leaflet-tile-pane{background:inherit}.leaflet-fade-anim .leaflet-tile,.leaflet-fade-anim .leaflet-tile-container{will-change:opacity,transform;transition:opacity .25s ease-out!important}.leaflet-tile,img.leaflet-tile{border:0!important;outline:0!important;box-shadow:none!important}img[src*=carto],img[src*=mapbox]{border:0!important;outline:0!important}.leaflet-tile-container:not(.leaflet-zoom-animated){opacity:1!important;pointer-events:none;transition:transform .3s ease-out!important}.map-tiles-optimized{image-rendering:auto;-webkit-font-smoothing:antialiased}.map-tiles-optimized img{image-rendering:-webkit-optimize-contrast;-ms-interpolation-mode:bicubic;margin:0!important;padding:0!important;border:none!important;transform:translateZ(0);backface-visibility:hidden}.leaflet-zooming .map-tiles-optimized img{will-change:transform}.gps-map{position:relative}.leaflet-popup-content-wrapper{background:var(--color-surface)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-xl)!important;border:1px solid var(--color-border)!important;overflow:hidden!important;padding:0!important}.leaflet-popup-content{margin:0!important;padding:16px!important;color:var(--color-text)!important;font-family:var(--font-family-base)!important;line-height:var(--line-height-normal)!important;font-size:14px!important;min-width:200px!important}.leaflet-popup-tip{background:var(--color-surface)!important;border:1px solid var(--color-border)!important;box-shadow:var(--shadow-sm)!important}.location-popup-inline{padding:4px 0}.location-popup-inline__title{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--color-text);margin:0 0 8px}.location-popup-inline__icon{font-size:18px}.location-popup-inline__desc{font-size:13px;color:var(--color-text-secondary);margin:0 0 6px;line-height:1.4}.location-popup-inline__coords{font-size:12px;color:var(--color-text-tertiary, #a19f9d);margin-bottom:10px;font-family:monospace}.location-popup-inline__btn{width:100%;padding:8px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease;display:flex;align-items:center;justify-content:center;gap:6px}.location-popup-inline__btn:hover{background:var(--color-primary-hover, #106ebe)}.leaflet-control-zoom{border:1px solid var(--color-border)!important;box-shadow:var(--shadow-sm)!important;border-radius:6px!important;overflow:hidden!important;background:var(--color-surface)!important}.leaflet-control-zoom a{background-color:var(--color-surface)!important;border:none!important;border-bottom:1px solid var(--color-divider)!important;color:var(--color-text)!important;width:36px!important;height:36px!important;line-height:36px!important;font-size:18px!important;font-weight:600!important;transition:all var(--duration-fast) var(--ease-out)!important}.leaflet-control-zoom a:last-child{border-bottom:none!important}.leaflet-control-zoom a:hover{background-color:var(--color-hover-overlay)!important;color:var(--color-primary)!important}.leaflet-control-zoom a:active{background-color:var(--color-active-overlay)!important}.leaflet-control-attribution{background:#fffc!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;border-radius:var(--radius-base)!important;padding:4px 8px!important;font-size:11px!important;color:var(--color-text-secondary)!important;border:1px solid var(--color-border)!important}.popup-header{font-family:var(--font-family-display);font-size:17px;font-weight:700;color:var(--color-text);margin:0 0 8px;letter-spacing:var(--letter-spacing-normal)}.popup-info{display:flex;flex-direction:column;gap:6px}.popup-info-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.popup-info-item strong{color:var(--color-text);font-weight:600}.popup-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-top:8px}.popup-badge.en-ruta{background:#22c55e1a;color:var(--color-success-dark);border:1px solid rgba(34,197,94,.2)}.popup-badge.disponible{background:#007aff1a;color:var(--color-info);border:1px solid rgba(0,122,255,.2)}.popup-badge.mantenimiento{background:#ff95001a;color:var(--color-warning);border:1px solid rgba(255,149,0,.2)}.map-controls-panel{position:absolute;top:16px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:8px;animation:slideInRight .4s cubic-bezier(.4,0,.2,1)}.map-controls-panel--minimized{top:12px;right:12px}.map-control-group{display:flex;align-items:center;gap:6px;background:#fffffff2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:10px;padding:6px;box-shadow:0 2px 8px #00000014,0 4px 16px #0000000a,inset 0 1px #fffc;border:1px solid rgba(0,0,0,.06)}.map-control-chip{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:none;border-radius:6px;font-size:12px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;white-space:nowrap}.map-control-chip:hover{background:#0000000a;color:var(--color-text)}.map-control-chip:active{transform:scale(.97)}.map-control-chip--active{background:var(--color-primary-subtle);color:var(--color-primary)}.map-control-chip--active:hover{background:var(--color-primary-subtle)}.map-control-chip--live{background:#10b9811a;color:var(--color-success-dark)}.map-control-chip--live:hover{background:#10b98126}.map-control-chip--icon{padding:8px 10px;font-size:14px}.map-control-chip--syncing{background:#3b82f61a;color:var(--color-info);pointer-events:none}.map-control-chip--syncing:hover{background:#3b82f61a}.spin-animation{animation:spinIcon 1s linear infinite}@keyframes spinIcon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.map-control-chip--secondary{background:#fffffff2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:8px;padding:8px 14px;box-shadow:0 2px 8px #00000014,0 4px 16px #0000000a;border:1px solid rgba(0,0,0,.06);color:var(--color-text-secondary)}.map-control-chip--secondary:hover{background:#6b728014;color:var(--color-text);border-color:#6b728033}.chip-label{font-size:12px;font-weight:600;letter-spacing:-.01em}.chip-indicator{width:6px;height:6px;border-radius:50%;transition:all .2s ease}.chip-indicator.on{background:var(--color-success);box-shadow:0 0 6px #10b98180}.chip-indicator.off{background:var(--color-border-strong)}.live-pulse{width:8px;height:8px;background:var(--color-success);border-radius:50%;position:relative;animation:pulse-live 2s ease-in-out infinite}.live-pulse:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;background:#10b9814d;border-radius:50%;animation:pulse-ring 2s ease-out infinite}@keyframes pulse-live{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes pulse-ring{0%{transform:scale(.8);opacity:1}to{transform:scale(2);opacity:0}}.map-control-loading{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#3b82f6f2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:8px;font-size:12px;font-weight:600;color:#fff;box-shadow:0 2px 12px #3b82f64d}.map-legend{display:flex;flex-direction:column;gap:4px;background:#fffffff2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:6px;padding:6px 10px;box-shadow:0 2px 8px #00000014,0 4px 16px #0000000a;border:1px solid rgba(0,0,0,.06);margin-top:8px;align-self:flex-end}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;border:1.5px solid rgba(255,255,255,.9);box-shadow:0 1px 2px #0003}.legend-moving{background:var(--color-success);animation:legend-pulse 2s ease-in-out infinite}.legend-stopped{background:var(--color-warning)}.legend-parked{background:var(--color-text-secondary)}@keyframes legend-pulse{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 0 2px #10b98100}}.legend-label{font-size:9px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap;line-height:1.2}@media (prefers-color-scheme: dark){.map-legend{background:#1e1e1ef2;border-color:#ffffff1a}.legend-label{color:var(--color-text-muted)}}.loading-spinner-mini{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-loader .8s linear infinite}@keyframes spin-loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.map-controls{position:absolute;top:16px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:10px}.map-control-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:10px 16px;font-size:13px;font-weight:500;color:var(--color-text);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:8px;position:relative;min-width:140px}.live-indicator-dot{width:8px;height:8px;background:var(--color-success);border-radius:50%;position:absolute;right:12px}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-loader .8s linear infinite}@media (prefers-color-scheme: dark){.map-control-group{background:#1e1e1ef2;border-color:#ffffff1a;box-shadow:0 2px 8px #0000004d,0 4px 16px #0003}.map-control-chip{color:var(--color-text-muted)}.map-control-chip:hover{background:#ffffff14;color:var(--color-border)}.map-control-chip--active{background:#6b8e2333;color:#a3c95a}.map-control-chip--live{background:#10b98126;color:var(--color-success)}.map-control-chip--secondary{background:#1e1e1ef2;border-color:#ffffff1a;color:var(--color-text-muted)}.map-control-chip--secondary:hover{background:#ffffff14;color:var(--color-border)}.chip-indicator.off{background:var(--color-text-secondary)}}@media (max-width: 768px){.map-controls-panel{top:12px;right:12px}.map-control-group{padding:4px;gap:4px}.map-control-chip{padding:6px 10px;font-size:11px}.map-control-chip--icon{padding:6px 8px;font-size:12px}.chip-label{font-size:11px}.map-control-chip--secondary{padding:6px 10px}}@media (max-width: 480px){.map-control-group{flex-wrap:wrap;max-width:calc(100vw - 24px)}.chip-label{display:none}.map-control-chip{padding:8px}.map-control-chip--secondary .chip-label{display:block;font-size:10px}}.map-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border-radius:var(--radius-lg);z-index:999}.map-loading .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.leaflet-marker-icon{transition:transform var(--duration-fast) var(--ease-out),left 4s cubic-bezier(.4,0,.2,1),top 4s cubic-bezier(.4,0,.2,1)!important}.leaflet-marker-icon:hover{z-index:1000!important}.custom-vehicle-marker.leaflet-marker-icon{transition:left 5s cubic-bezier(.25,.1,.25,1),top 5s cubic-bezier(.25,.1,.25,1)!important}.custom-vehicle-marker.leaflet-marker-icon:hover{transition:left 0s,top 0s!important;cursor:pointer!important;z-index:10000!important}.custom-vehicle-marker.leaflet-marker-icon:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;cursor:pointer}.leaflet-interactive{stroke-linecap:round!important;stroke-linejoin:round!important}.gps-route{opacity:.8}.route-selected{opacity:1;transition:all .3s ease}.route-completed{opacity:.9}.route-current{opacity:1}.route-pending{opacity:.6}.gps-trail-active{opacity:.8}.gps-route-active{opacity:.9}.stop-popup{min-width:280px}.gps-stop-popup h5{font-family:var(--font-family-display);font-size:16px;font-weight:700;color:var(--color-text);margin:0 0 12px;padding-bottom:10px;border-bottom:2px solid var(--color-primary-subtle)}.stop-info{font-size:13px;line-height:1.8;color:var(--color-text-secondary);margin-bottom:12px}.stop-info strong{font-weight:600;color:var(--color-text);display:inline-block;min-width:120px}.stop-status{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:4px;font-size:12px;font-weight:700;letter-spacing:.3px;margin-top:8px}.stop-status.completed{background:#10b9811a;color:var(--color-success-dark);border:1px solid rgba(16,185,129,.3)}.stop-status.current{background:#fbbc051a;color:var(--color-warning-dark);border:1px solid rgba(251,188,5,.3)}.stop-status.pending{background:#6b72801a;color:var(--color-text-secondary);border:1px solid rgba(107,114,128,.3)}.stop-pin-modern{position:relative;width:36px;height:36px}.pin-head{width:32px;height:32px;border-radius:50%;position:absolute;top:0;left:2px;box-shadow:0 2px 8px #00000026;transition:all .2s ease;border:2px solid #fff}.stop-pin-modern:hover .pin-head{transform:scale(1.1);box-shadow:0 4px 12px #0003}.pin-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;width:100%;height:100%;z-index:2}.pin-tip{display:none}.pin-shadow{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:24px;height:3px;background:radial-gradient(ellipse,rgba(0,0,0,.2) 0%,transparent 70%);border-radius:50%;opacity:.5}.stop-pin-modern:hover .pin-shadow{width:28px;opacity:.6}.gps-coverage{opacity:.3}.gps-car-icon{background:transparent!important;border:none!important;z-index:500}.gps-car-marker{position:relative;width:28px;height:40px;display:flex;align-items:center;justify-content:center}.gps-car-svg{width:28px;height:40px;position:relative;z-index:2}.gps-car-status{position:absolute;top:-1px;right:-1px;width:7px;height:7px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 1px 3px #00000080;z-index:10}.gps-status-moving{background:var(--color-success);animation:gps-pulse 1.5s ease-in-out infinite}.gps-status-stopped{background:var(--color-warning)}.gps-status-parked{background:var(--color-text-secondary)}@keyframes gps-pulse{0%,to{box-shadow:0 0 #10b981b3,0 1px 3px #00000080}50%{box-shadow:0 0 0 3px #10b98100,0 1px 3px #00000080}}.gps-car-marker:hover .gps-car-svg{transform:scale(1.15);filter:drop-shadow(0 3px 6px rgba(0,0,0,.4))}.gps-car-marker:hover{z-index:1000!important}.gps-car-icon.leaflet-marker-icon{width:28px!important;height:40px!important;margin-left:-14px!important;margin-top:-20px!important}.gps-car-icon.leaflet-marker-icon{transition:left 2.5s cubic-bezier(.25,.1,.25,1),top 2.5s cubic-bezier(.25,.1,.25,1)!important}.gps-car-icon.leaflet-marker-icon:hover{transition:left 0s,top 0s!important;cursor:pointer!important;z-index:10000!important}.vehicle-marker-container{position:relative;width:36px;height:36px;transition:transform .3s ease}.vehicle-icon-3d{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:2;border:2px solid rgba(255,255,255,.8);box-shadow:0 2px 8px #0003}.vehicle-icon-3d:hover{transform:translate(-50%,-50%) scale(1.1);box-shadow:0 4px 12px #0000004d}.direction-arrow{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));z-index:3}.speed-badge{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);padding:2px 6px;border-radius:4px;display:flex;align-items:baseline;gap:2px;font-family:var(--font-family-base);box-shadow:0 2px 6px #00000026;border:1px solid rgba(255,255,255,.3);z-index:4;background:#000000bf}.speed-value{font-size:10px;font-weight:700;color:#fff;line-height:1}.speed-unit{font-size:7px;font-weight:600;color:#ffffffb3;line-height:1}.route-info-panel{position:absolute;bottom:24px;left:24px;width:400px;max-height:80vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;box-shadow:var(--shadow-lg);overflow:hidden;z-index:1000}.route-info-panel.minimized{max-height:60px;cursor:pointer}.route-info-panel.minimized:hover{box-shadow:var(--shadow-xl)}.route-info-header{background:var(--color-primary);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border)}.route-info-title{font-family:var(--font-family-display);font-size:15px;font-weight:600;color:#fff;margin:0;display:flex;align-items:center;gap:8px;flex:1}.service-type-badge{display:inline-flex;align-items:center;padding:3px 8px;background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:4px;font-size:10px;font-weight:600;margin-left:8px;color:#fff}.route-minimize-btn,.route-close-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#fff;font-size:14px;font-weight:500;margin-left:6px}.route-minimize-btn:hover,.route-close-btn:hover{background:#ffffff40}.route-close-btn:hover{background:#ef4444cc}.route-info-content{padding:20px;max-height:calc(80vh - 60px);overflow-y:auto}.route-info-content::-webkit-scrollbar{width:6px}.route-info-content::-webkit-scrollbar-track{background:#0000000d;border-radius:6px}.route-info-content::-webkit-scrollbar-thumb{background:var(--color-primary-subtle);border-radius:6px}.route-info-content::-webkit-scrollbar-thumb:hover{background:var(--color-primary-hover)}.gps-status{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}.gps-signal,.vehicle-speed{flex:1;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:6px;padding:10px 14px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--color-text)}.vehicle-speed{color:var(--color-text)}.signal-icon,.speed-icon{font-size:18px}.route-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.route-stat{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:6px;padding:12px;text-align:center}.route-stat-value{font-family:var(--font-family-display);font-size:20px;font-weight:700;color:var(--color-primary);margin-bottom:4px}.route-stat-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px}.route-progress{margin-bottom:16px}.route-progress-bar{width:100%;height:8px;background:var(--color-surface-secondary);border-radius:4px;overflow:hidden;margin-bottom:8px;border:1px solid var(--color-border)}.route-progress-fill{height:100%;background:var(--color-success);border-radius:3px;transition:width .3s ease}.route-progress-text{font-size:12px;font-weight:600;color:var(--color-text);text-align:center}.next-stop-info{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:6px;padding:14px;margin-bottom:14px}.next-stop-info h6{font-size:12px;font-weight:700;color:var(--color-warning-dark);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px}.next-stop{font-size:13px;line-height:1.6;color:var(--color-text)}.next-stop strong{font-size:14px;font-weight:700;color:var(--color-text);display:block;margin-bottom:4px}.next-stop small{font-size:12px;color:var(--color-text-secondary);display:block;margin-top:2px}.route-complete{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-success-dark);padding:8px 12px;background:#10b9811a;border-radius:4px}.route-actions{margin-bottom:16px}.btn--full{width:100%;justify-content:center;padding:10px 18px;font-size:14px;font-weight:600;background:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.btn--full:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-md)}.btn--full:active{transform:scale(.98)}@media (max-width: 768px){.map-container{height:350px}.map-controls{top:12px;right:12px}.map-control-btn{padding:8px 12px;font-size:12px}.vehicle-icon-3d{width:40px;height:40px}.speed-badge{padding:2px 6px}.speed-value{font-size:10px}.speed-unit{font-size:7px}.route-info-panel{left:12px;right:12px;bottom:12px;width:auto;max-width:calc(100vw - 24px)}.route-info-header{padding:12px 16px}.route-info-title{font-size:14px}.service-type-badge{font-size:9px;padding:3px 8px}.route-info-content{padding:16px}.route-stats{grid-template-columns:repeat(2,1fr);gap:8px}.route-stat{padding:12px}.route-stat-value{font-size:20px}.gps-status{flex-direction:column;gap:8px}}.truck-modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:transparent;z-index:1000;pointer-events:none}.truck-modal{position:absolute;right:0;top:0;width:400px;height:100%;background:#ffffffeb;backdrop-filter:blur(40px) saturate(200%);-webkit-backdrop-filter:blur(40px) saturate(200%);border-left:1px solid rgba(255,255,255,.4);box-shadow:-12px 0 48px #0003,-6px 0 24px #0000001f,-2px 0 8px #0000000f,inset 1px 0 #ffffffb3;overflow:hidden;animation:slideInRight .5s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;pointer-events:all}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.truck-modal-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-success) 100%);padding:24px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.2);position:relative;overflow:hidden}.truck-modal-header:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%)}.truck-modal-title-section{display:flex;align-items:center;gap:16px;color:#fff}.truck-modal-title-section svg{flex-shrink:0}.truck-modal-title-section h3{font-family:var(--font-family-display, -apple-system, BlinkMacSystemFont, "SF Pro Display", sans-serif);font-size:24px;font-weight:800;margin:0;letter-spacing:-.02em;line-height:1.2}.truck-modal-subtitle{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.9;display:block;margin-top:4px}.truck-modal-content{padding:32px;overflow-y:auto;flex:1}.truck-modal-content::-webkit-scrollbar{width:8px}.truck-modal-content::-webkit-scrollbar-track{background:#0000000d;border-radius:6px}.truck-modal-content::-webkit-scrollbar-thumb{background:var(--color-primary-subtle);border-radius:6px}.truck-modal-content::-webkit-scrollbar-thumb:hover{background:var(--color-primary-hover)}.truck-status-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.status-card{background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.06);border-radius:4px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .2s cubic-bezier(.4,0,.2,1)}.status-card:hover{background:#ffffffe6;transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.status-icon-wrapper{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;border:2px solid;font-size:24px;flex-shrink:0}.status-info{flex:1}.status-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.status-value{font-family:var(--font-family-display);font-size:20px;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.section-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--color-primary-subtle)}.section-header h4{font-family:var(--font-family-display);font-size:18px;font-weight:700;color:var(--color-text);margin:0;letter-spacing:-.01em}.section-header svg{color:var(--color-primary)}.route-info-section{margin-bottom:32px;animation:fadeInUp .5s ease-out .1s backwards}.route-name{font-size:16px;color:var(--color-primary);margin-bottom:20px;padding:12px 16px;background:var(--color-primary-subtle);border-left:4px solid var(--color-primary);border-radius:4px}.route-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:linear-gradient(135deg,#fffc,#f8fafccc);border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;transition:all .2s cubic-bezier(.4,0,.2,1)}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001a}.stat-icon{font-size:24px;flex-shrink:0}.stat-content{flex:1}.stat-value{font-family:var(--font-family-display);font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-success) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;line-height:1;margin-bottom:4px}.stat-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px}.route-progress-section{background:#fbbc050d;border:1px solid rgba(251,188,5,.2);border-radius:12px;padding:20px;margin-top:24px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600;color:var(--color-text)}.progress-percentage{font-family:var(--font-family-display);font-size:18px;font-weight:800;color:var(--color-success-dark)}.progress-bar-container{width:100%;height:12px;background:#00000014;border-radius:6px;overflow:hidden;margin-bottom:12px;box-shadow:inset 0 2px 4px #0000001a}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-success) 0%,var(--color-success-dark) 100%);border-radius:6px;transition:width 1s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shimmer 2s infinite}.progress-info{font-size:13px;color:var(--color-text-secondary);text-align:center}.next-stop-section{margin-bottom:32px;animation:fadeInUp .5s ease-out .45s backwards}.next-stop-card{background:linear-gradient(135deg,#3b82f614,#2563eb0d);border:2px solid rgba(59,130,246,.2);border-radius:4px;padding:24px;display:flex;gap:20px;align-items:flex-start}.next-stop-number{width:56px;height:56px;background:linear-gradient(135deg,var(--color-info) 0%,var(--color-info) 100%);border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-family-display);font-size:24px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 4px 12px #3b82f64d}.next-stop-details{flex:1}.next-stop-name{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:8px}.next-stop-address{font-size:14px;color:var(--color-text-secondary);margin-bottom:8px;line-height:1.5}.next-stop-eta{font-size:13px;font-weight:600;color:var(--color-info);display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#3b82f61a;border-radius:4px}.route-completed-card{text-align:center;padding:40px;background:#10b9810d;border:2px dashed rgba(16,185,129,.3);border-radius:4px}.route-completed-card svg{color:var(--color-success);margin-bottom:12px}.completed-text{font-size:18px;font-weight:700;color:var(--color-success-dark);margin-bottom:8px}.completed-subtext{font-size:14px;color:var(--color-text-secondary)}.stops-list-section{margin-bottom:32px;animation:fadeInUp .5s ease-out .5s backwards}.stops-timeline{display:flex;flex-direction:column;gap:0}.timeline-stop{display:flex;gap:20px;position:relative;padding-bottom:24px}.timeline-marker{display:flex;flex-direction:column;align-items:center;position:relative}.timeline-dot{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;border:3px solid;z-index:2;flex-shrink:0}.timeline-dot--completed{background:var(--color-success);border-color:var(--color-success-dark);color:#fff;box-shadow:0 4px 12px #10b9814d}.timeline-dot--current{background:var(--color-warning);border-color:var(--color-warning);color:#fff;box-shadow:0 4px 12px #fbbc0566;animation:pulse-current 2s ease-in-out infinite}@keyframes pulse-current{0%,to{transform:scale(1);box-shadow:0 4px 12px #fbbc0566}50%{transform:scale(1.1);box-shadow:0 6px 20px #fbbc0599}}.timeline-dot--pending{background:#fff;border-color:var(--color-border-strong);color:var(--color-text-secondary)}.timeline-line{width:3px;flex:1;margin-top:8px;min-height:40px;position:relative}.timeline-line--completed{background:linear-gradient(180deg,var(--color-success) 0%,var(--color-success-dark) 100%)}.timeline-line--current{background:linear-gradient(180deg,var(--color-warning) 0%,var(--color-border-strong) 100%)}.timeline-line--pending{background:var(--color-border)}.timeline-content{flex:1;padding-top:4px}.timeline-stop--current .timeline-content{background:#fbbc050d;border-left:3px solid var(--color-warning);padding:12px 16px;border-radius:4px;margin-top:-8px}.timeline-stop-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.timeline-stop-title{font-size:15px;font-weight:700;color:var(--color-text)}.current-badge{display:inline-flex;padding:4px 10px;background:var(--color-warning);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:6px}.timeline-stop-address{font-size:13px;color:var(--color-text-secondary);margin-bottom:6px;line-height:1.5}.timeline-stop-meta{font-size:12px;color:var(--color-text-muted);display:flex;gap:8px;flex-wrap:wrap}.timeline-stop-weight{font-size:12px;font-weight:600;color:var(--color-success-dark);margin-top:6px;display:inline-flex;padding:4px 10px;background:#10b9811a;border-radius:6px}.modal-actions{padding-top:24px;border-top:2px solid rgba(0,0,0,.06)}.btn-modal{width:100%;padding:16px 24px;border:none;border-radius:12px;font-family:var(--font-family-display);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:10px}.btn-modal--primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;box-shadow:0 4px 12px var(--color-primary-subtle)}.btn-modal--primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--color-primary-subtle);background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-primary) 100%)}.btn-modal--primary:active{transform:translateY(0);box-shadow:0 2px 8px var(--color-primary-subtle)}.operational-metrics-section{margin-bottom:32px;padding:24px;background:linear-gradient(135deg,#ffffffe6,#f9fafbf2);border-radius:6px;border:1px solid rgba(59,130,246,.1);box-shadow:0 4px 20px #0000000f;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.metric-card{display:flex;align-items:center;gap:16px;padding:18px;background:linear-gradient(135deg,#fffffff2,#ffffffd9);border-radius:4px;border:1px solid rgba(255,255,255,.6);transition:all .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #00000014,0 2px 8px #0000000a,inset 0 1px #fffc;animation:fadeInUp .5s ease-out backwards;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.metric-card:nth-child(1){animation-delay:.05s}.metric-card:nth-child(2){animation-delay:.1s}.metric-card:nth-child(3){animation-delay:.15s}.metric-card:nth-child(4){animation-delay:.2s}.metric-card:nth-child(5){animation-delay:.25s}.metric-card:nth-child(6){animation-delay:.3s}.metric-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 8px 28px #00000024,0 4px 14px #00000014,inset 0 1px #fff;border-color:#3b82f64d}.metric-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;box-shadow:0 6px 16px #0003,0 3px 8px #0000001a,inset 0 1px 2px #ffffff4d;transition:all .3s ease}.metric-card:hover .metric-icon{transform:scale(1.1) rotate(5deg);box-shadow:0 8px 20px #00000040,0 4px 10px #00000026,inset 0 1px 2px #fff6}.metric-content{flex:1;min-width:0}.metric-value{font-size:20px;font-weight:700;color:var(--color-text);line-height:1.2;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .4s cubic-bezier(.4,0,.2,1)}.metric-value:hover{color:var(--color-info)}.metric-label{font-size:12px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;line-height:1.2}.capacity-section{margin-bottom:20px;padding:20px;background:linear-gradient(135deg,#3b82f60d,#10b9810d);border-radius:14px;border:1px solid rgba(59,130,246,.15);animation:fadeInUp .6s ease-out .35s backwards}.capacity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.capacity-header span:first-child{font-size:14px;font-weight:600;color:var(--color-text)}.capacity-percentage{font-size:18px;font-weight:700;color:var(--color-info)}.capacity-bar-container{width:100%;height:14px;background:#0000000f;border-radius:6px;overflow:hidden;margin-bottom:10px;box-shadow:inset 0 2px 4px #0000001a}.capacity-bar-fill{height:100%;border-radius:6px;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.capacity-bar-fill:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.capacity-info{font-size:13px;color:var(--color-text-secondary);text-align:center;font-weight:500}.last-report{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:#3b82f60f;border-radius:6px;border:1px solid rgba(59,130,246,.15);font-size:13px;color:var(--color-text);font-weight:500;animation:fadeInUp .6s ease-out .4s backwards}.report-icon{font-size:16px;animation:pulse-icon 2s ease-in-out infinite}@keyframes pulse-icon{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.no-route-message{text-align:center;padding:60px 40px;color:var(--color-text-secondary)}.no-route-message svg{color:var(--color-border-strong);margin-bottom:20px}.no-route-message p{font-size:16px;font-weight:600;color:var(--color-text-muted);margin:0}@media (max-width: 768px){.truck-modal{width:100%;max-width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.3);border-radius:12px 12px 0 0;height:85%;max-height:70vh;top:auto;bottom:0;animation:slideInUp .4s cubic-bezier(.4,0,.2,1)}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.truck-modal-header{padding:20px 24px}.truck-modal-title-section h3{font-size:20px}.truck-modal-content{padding:24px}.truck-status-section{grid-template-columns:1fr;gap:12px}.route-stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:12px}.stat-value{font-size:20px}.next-stop-card{flex-direction:column;padding:20px}.next-stop-number{width:48px;height:48px;font-size:20px}.section-header h4{font-size:16px}.timeline-dot{width:36px;height:36px;font-size:13px}}.gps-map.with-grid:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(0,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,255,.08) 1px,transparent 1px);background-size:50px 50px;pointer-events:none;z-index:998;animation:gridPulse 4s ease-in-out infinite}@keyframes gridPulse{0%,to{opacity:.3}50%{opacity:.6}}@media (max-width: 1024px){.leaflet-container{height:650px!important}.map-component{border-radius:4px}.map-component-wrapper:before,.map-component-wrapper:after{width:15px;height:15px}}@media (max-width: 768px){.leaflet-container{height:500px!important}.map-component{border-radius:12px;padding:2px}.leaflet-container{border-radius:6px}.map-component-wrapper:before,.map-component-wrapper:after{display:none}.leaflet-container:before{opacity:.3}.leaflet-control-zoom{transform:scale(.9)}}@media (max-width: 480px){.leaflet-container{height:400px!important}.map-component{border-radius:6px}}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#000c,#000000e6);z-index:10000;border-radius:17px}.map-loading-content{text-align:center;color:#00ffffe6}.map-loading-spinner{width:60px;height:60px;border:3px solid rgba(0,255,255,.1);border-top-color:#0ffc;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.map-loading-text{font-size:14px;font-weight:500;letter-spacing:1px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.custom-location-marker{background:transparent!important;border:none!important}.location-marker-container{position:relative;width:30px;height:40px;display:flex;align-items:center;justify-content:center}.location-pulse{position:absolute;top:5px;left:50%;transform:translate(-50%);width:24px;height:24px;background:#10b9814d;border-radius:50%;animation:locationPulse 2s ease-out infinite}@keyframes locationPulse{0%{transform:translate(-50%) scale(.8);opacity:1}to{transform:translate(-50%) scale(2.5);opacity:0}}.location-icon-main{position:relative;z-index:2;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));transition:transform .2s ease}.location-marker-container:hover .location-icon-main{transform:scale(1.1) translateY(-2px)}.location-shadow{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:16px;height:6px;background:radial-gradient(ellipse at center,rgba(0,0,0,.3) 0%,transparent 70%);border-radius:50%}.location-popup-mini{padding:8px 12px;min-width:150px}.location-popup-mini h4{margin:0 0 6px;font-size:14px;font-weight:600;color:var(--color-success)}.location-popup-mini p{margin:0;font-size:12px;color:var(--color-text-secondary)}.gps-info-card{background:linear-gradient(135deg,var(--color-primary-subtle) 0%,var(--color-primary-subtle) 100%);border:1.5px solid var(--color-primary-subtle);border-radius:4px;padding:20px;margin-bottom:24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.gps-info-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--color-primary-subtle);border-color:var(--color-primary-subtle)}.gps-info-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--color-primary-subtle)}.gps-info-header svg{color:var(--color-primary)}.gps-info-header span{font-size:16px;font-weight:600;color:var(--color-text);flex:1}.gps-status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#34c7591a;border:1px solid rgba(52,199,89,.3);border-radius:6px;font-size:12px;font-weight:600;color:var(--color-success)}.gps-status-badge.online .pulse-dot{width:8px;height:8px;background:var(--color-success);border-radius:50%;animation:pulse-gps 2s infinite}@keyframes pulse-gps{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.gps-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.gps-stat{display:flex;align-items:center;gap:10px;padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease}.gps-stat:hover{background:var(--color-secondary);border-color:var(--color-border-strong)}.gps-stat svg{color:var(--color-primary);flex-shrink:0}.gps-stat-info{display:flex;flex-direction:column;gap:2px}.gps-stat-label{font-size:11px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.gps-stat-value{font-size:16px;font-weight:700;color:var(--color-text);font-family:var(--font-family-mono)}.btn-view-history{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md)}.btn-view-history:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-primary) 100%)}.btn-view-history:active{transform:translateY(0);box-shadow:0 2px 8px var(--color-primary-subtle)}.btn-view-history svg{width:18px;height:18px}@media (max-width: 768px){.gps-stats-grid{grid-template-columns:1fr}.gps-info-card{padding:16px}.btn-view-history{padding:12px 16px;font-size:14px}}.playback-controls-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,#000000f2,#000000d9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:2px solid var(--color-primary-subtle);z-index:1000;display:flex;flex-direction:column;max-height:35%;min-height:280px;box-shadow:0 -10px 40px #00000080;overflow-y:auto}.playback-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.playback-vehicle-info{display:flex;align-items:center;gap:12px;color:#fff}.playback-vehicle-info svg{color:var(--color-primary)}.playback-vehicle-info h4{margin:0;font-size:15px;font-weight:600;color:#fff}.playback-vehicle-info span{font-size:12px;color:#fff9;display:block;margin-top:2px}.btn-close-playback{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:8px;color:#fff;cursor:pointer;transition:all .2s ease}.btn-close-playback:hover{background:#ff3b3033;border-color:#ff3b3066}.playback-timeline-container{padding:12px 20px 16px;display:flex;flex-direction:column;gap:12px;flex-shrink:0}.playback-current-info{display:flex;gap:20px;padding:12px;background:#ffffff0d;border-radius:4px;flex-wrap:wrap}.playback-info-item{display:flex;align-items:center;gap:6px;color:#ffffffe6;font-size:13px;font-weight:500}.playback-info-item svg{color:var(--color-primary)}.playback-timeline{display:flex;align-items:center;gap:12px}.timeline-label,.timeline-progress{font-size:12px;color:#ffffffb3;white-space:nowrap;font-family:var(--font-family-mono)}.timeline-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;background:#ffffff1a;border-radius:3px;outline:none;cursor:pointer}.timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px var(--color-primary-hover);transition:all .2s ease}.timeline-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:var(--shadow-lg)}.timeline-slider::-moz-range-thumb{width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none;box-shadow:0 2px 8px var(--color-primary-hover)}.timeline-slider:disabled{opacity:.3;cursor:not-allowed}.playback-controls{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.control-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:12px;color:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.control-btn:hover:not(:disabled){background:#fff3;border-color:#ffffff4d;transform:translateY(-2px)}.control-btn:disabled{opacity:.3;cursor:not-allowed}.control-btn-primary{background:var(--color-primary);border-color:var(--color-primary);padding:14px}.control-btn-primary:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 4px 12px var(--color-primary-subtle)}.control-speed{font-size:13px;font-weight:700;font-family:var(--font-family-mono);min-width:48px}.playback-loading,.playback-error,.playback-no-data{text-align:center;padding:12px;font-size:13px;color:#ffffffb3;font-style:italic}.playback-error{color:var(--color-error)}.map-maximized .playback-controls-overlay{max-height:30%;min-height:300px}.map-maximized .playback-header{padding:14px 24px}.map-maximized .playback-timeline-container{padding:14px 24px 18px;gap:14px}.map-maximized .playback-current-info{gap:24px;padding:14px}.map-maximized .control-btn{padding:14px}.map-maximized .control-btn-primary{padding:16px}@media (max-width: 1024px){.playback-controls-overlay{max-height:38%}}@media (max-width: 768px){.playback-controls-overlay{max-height:45%;min-height:260px}.playback-header{padding:10px 16px}.playback-timeline-container{padding:10px 16px 14px;gap:10px}.playback-controls{gap:6px}.control-btn{padding:10px}.control-btn-primary{padding:12px}.playback-current-info{flex-direction:column;gap:8px;padding:10px}.playback-vehicle-info h4{font-size:14px}.playback-vehicle-info span{font-size:11px}}@media (max-width: 480px){.playback-controls-overlay{max-height:50%;min-height:240px}.playback-controls{gap:4px}.control-btn{padding:8px}.control-speed{min-width:40px;font-size:12px}.stats-grid-3{grid-template-columns:repeat(3,1fr);gap:8px}.stat-icon-small{width:30px;height:30px}}img[src*=tiles],img[src*=mapbox],.leaflet-tile{border:0!important;outline:0!important;display:block!important}.leaflet-container{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.leaflet-tooltip.vehicle-tooltip{background:#fffffffa!important;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(0,0,0,.08)!important;border-radius:12px!important;padding:0!important;box-shadow:0 8px 32px #0000002e,0 4px 16px #0000001a,0 2px 8px #0000000f!important;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif!important;overflow:hidden;min-width:200px;animation:tooltipFadeIn .2s cubic-bezier(.4,0,.2,1)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.leaflet-tooltip.vehicle-tooltip:before{border-top-color:#fffffffa!important;border-width:8px!important;margin-left:-8px!important}.vehicle-tooltip-content{padding:14px 16px}.tooltip-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.06)}.tooltip-placa{font-size:16px;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.tooltip-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.tooltip-status--moving{background:#10b9811f;color:var(--color-success-dark);border:1px solid rgba(16,185,129,.25)}.tooltip-status--stopped{background:#f59e0b1f;color:var(--color-warning-dark);border:1px solid rgba(245,158,11,.25)}.tooltip-status--parked{background:#6b72801f;color:var(--color-text-secondary);border:1px solid rgba(107,114,128,.25)}.tooltip-stats{display:flex;gap:16px;margin-bottom:10px}.tooltip-stat{display:flex;align-items:center;gap:6px}.tooltip-stat-icon{font-size:14px}.tooltip-stat-value{font-size:13px;font-weight:600;color:var(--color-text)}.tooltip-conductor{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary);padding-top:8px;border-top:1px solid rgba(0,0,0,.04)}@media (prefers-color-scheme: dark){.leaflet-tooltip.vehicle-tooltip{background:#1e1e1efa!important;border-color:#ffffff1a!important}.leaflet-tooltip.vehicle-tooltip:before{border-top-color:#1e1e1efa!important}.tooltip-header{border-bottom-color:#ffffff14}.tooltip-placa{color:var(--color-surface-secondary)}.tooltip-stat-value{color:var(--color-border)}.tooltip-conductor{color:var(--color-text-muted);border-top-color:#ffffff0f}.tooltip-status--moving{background:#10b98133;border-color:#10b98159;color:var(--color-success)}.tooltip-status--stopped{background:#f59e0b33;border-color:#f59e0b59;color:var(--color-warning)}.tooltip-status--parked{background:#6b728033;border-color:#6b728059;color:var(--color-text-muted)}}.truck-modal-v2{position:absolute;right:0;top:0;width:380px;height:100%;background:#fff;border-left:1px solid rgba(0,0,0,.08);box-shadow:-8px 0 32px #0000001f;display:flex;flex-direction:column;pointer-events:all;animation:slideInPanel .35s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes slideInPanel{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.truck-modal-header-v2{background:linear-gradient(145deg,var(--color-primary) 0%,#4a6830 50%,var(--color-primary) 100%);padding:20px;flex-shrink:0}.header-top-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.vehicle-badge-large{width:44px;height:44px;background:#ffffff26;border:2px solid rgba(255,255,255,.25);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.modal-close-btn-v2{width:32px;height:32px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#ffffffe6;cursor:pointer;transition:all .2s ease}.modal-close-btn-v2:hover{background:#fff3;color:#fff}.header-info{color:#fff}.vehicle-placa{font-size:28px;font-weight:800;margin:0 0 4px;letter-spacing:-.02em;line-height:1.1}.vehicle-model{font-size:14px;font-weight:500;opacity:.85;margin:0 0 12px}.header-badges{display:flex;gap:8px;flex-wrap:wrap}.badge-service{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#fff3;border:1px solid rgba(255,255,255,.2);border-radius:6px;font-size:12px;font-weight:600;color:#fff}.badge-movement{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.badge-movement--moving{background:#10b98133;border:1px solid rgba(16,185,129,.4);color:var(--color-success)}.badge-movement--stopped{background:#f59e0b33;border:1px solid rgba(245,158,11,.4);color:var(--color-warning)}.badge-movement--parked{background:#9ca3af33;border:1px solid rgba(156,163,175,.4);color:var(--color-border-strong)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-movement--moving .badge-dot{animation:pulseDot 1.5s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.truck-modal-content-v2{flex:1;overflow-y:auto;padding:0}.truck-modal-content-v2::-webkit-scrollbar{width:6px}.truck-modal-content-v2::-webkit-scrollbar-track{background:transparent}.truck-modal-content-v2::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.info-section{padding:20px;border-bottom:1px solid rgba(0,0,0,.06)}.info-section:last-child{border-bottom:none}.section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}.section-title svg{color:var(--color-primary)}.status-pill{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0}.status-pill--online{background:#10b9811a;color:var(--color-success-dark);border:1px solid rgba(16,185,129,.2)}.status-pill--offline{background:#6b72801a;color:var(--color-text-secondary);border:1px solid rgba(107,114,128,.2)}.pill-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success);animation:pulseDot 2s ease-in-out infinite}.stats-grid-4{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.stats-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.stat-box{background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:14px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;transition:all .2s ease}.stat-box:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.stat-icon-small{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:6px;color:var(--color-info);background:var(--color-info-light);border-radius:8px}.stat-data{display:flex;align-items:baseline;gap:2px}.stat-number{font-size:22px;font-weight:800;color:var(--color-text);line-height:1;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif}.stat-number-text{font-size:14px;font-weight:700;color:var(--color-text);line-height:1.2}.stat-unit{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.stat-label-small{font-size:10px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px}.coordinates-row{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-background);border:1px solid var(--color-border);border-radius:10px;margin-bottom:16px}.coord-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--color-info);background:var(--color-info-light);border-radius:6px}.coord-values{flex:1;min-width:0}.coord-label{display:block;font-size:10px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}.coord-text{font-size:12px;font-weight:600;color:var(--color-text);font-family:ui-monospace,SF Mono,monospace}.btn-copy-coords{width:32px;height:32px;background:#fff;border:1px solid var(--color-border);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all .2s ease;flex-shrink:0}.btn-copy-coords:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong);color:var(--color-info)}.btn-copy-coords:active{transform:scale(.95)}.btn-history-v2{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:linear-gradient(145deg,var(--color-primary) 0%,#4a6830 100%);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md)}.btn-history-v2:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-history-v2:active{transform:translateY(0)}.no-gps-message{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;background:var(--color-surface-secondary);border:1px dashed var(--color-border-strong);border-radius:8px;text-align:center}.no-gps-message svg{color:var(--color-text-muted);opacity:.6}.no-gps-message p{margin:0;font-size:13px;color:var(--color-text-secondary);font-weight:500}.info-rows{display:flex;flex-direction:column;gap:0}.info-row-v2{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--color-surface-secondary)}.info-row-v2:last-child{border-bottom:none}.info-label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.info-value{font-size:14px;font-weight:600;color:var(--color-text);text-align:right}.info-value-with-bar{display:flex;align-items:center;gap:10px}.mini-progress-bar{width:60px;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.mini-progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.route-progress-badge{margin-left:auto;padding:3px 8px;background:var(--color-primary-subtle);color:var(--color-primary);border-radius:6px;font-size:12px;font-weight:700}.stops-timeline-v2{display:flex;flex-direction:column;gap:0}.timeline-item-v2{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-surface-secondary)}.timeline-item-v2:last-child{border-bottom:none}.timeline-dot-v2{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.timeline-dot--completed{background:var(--color-success);color:#fff}.timeline-dot--current{background:var(--color-warning);color:#fff;animation:pulseTimeline 2s ease-in-out infinite}@keyframes pulseTimeline{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 6px #f59e0b00}}.timeline-dot--pending{background:var(--color-border);color:var(--color-text-secondary)}.timeline-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.timeline-name{font-size:13px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.current-tag{padding:2px 6px;background:var(--color-warning-light);color:var(--color-warning-dark);border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;flex-shrink:0}.timeline-more{padding:10px 0;font-size:12px;color:var(--color-text-muted);text-align:center;font-weight:500}@media (max-width: 768px){.truck-modal-v2{width:100%;height:auto;max-height:85vh;top:auto;bottom:0;border-left:none;border-top:1px solid rgba(0,0,0,.08);border-radius:16px 16px 0 0;animation:slideUpPanel .35s cubic-bezier(.4,0,.2,1)}@keyframes slideUpPanel{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.truck-modal-header-v2{padding:16px;border-radius:16px 16px 0 0}.vehicle-placa{font-size:24px}.stats-grid-4{grid-template-columns:repeat(2,1fr);gap:8px}.stats-grid-3{grid-template-columns:repeat(3,1fr);gap:10px}.stat-box{padding:12px}.stat-number{font-size:18px}.info-section{padding:16px}}.map-control-chip--geofence-active{background:#ef444426!important;color:var(--color-error)!important;border:1px solid rgba(239,68,68,.3)!important;animation:pulseGeofence 2s ease-in-out infinite}.map-control-chip--geofence-active:hover{background:#ef444433!important}@keyframes pulseGeofence{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.geofence-mode-hint{display:flex;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(135deg,#ef44441a,#ef44440d);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(239,68,68,.25);border-radius:10px;font-size:13px;font-weight:500;color:var(--color-error);animation:fadeInHint .3s ease-out;box-shadow:0 2px 12px #ef444426}.geofence-mode-hint svg{animation:pulseIcon 1.5s ease-in-out infinite}@keyframes pulseIcon{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes fadeInHint{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.geofence-popup{padding:4px 0}.geofence-popup h4{margin:0 0 8px;font-size:15px;font-weight:700;color:var(--color-error);display:flex;align-items:center;gap:6px}.geofence-popup h4:before{content:"🎯";font-size:14px}.geofence-popup p{margin:0 0 8px;font-size:13px;color:var(--color-text-secondary)}.geofence-popup p:last-of-type{margin-bottom:12px}.btn-delete-geofence{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:6px;color:var(--color-error);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-delete-geofence:hover{background:#ef444433;border-color:#ef444466;transform:translateY(-1px)}.btn-delete-geofence:active{transform:translateY(0)}.geofence-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeInOverlay .2s ease-out}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.geofence-modal{background:#fff;border-radius:16px;box-shadow:0 24px 48px #0003,0 12px 24px #0000001a;width:100%;max-width:440px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUpModal .35s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUpModal{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.geofence-modal-header{display:flex;align-items:flex-start;gap:16px;padding:24px;background:linear-gradient(145deg,var(--color-error) 0%,var(--color-error-dark) 100%);color:#fff}.geofence-modal-icon{width:48px;height:48px;background:#ffffff26;border:2px solid rgba(255,255,255,.25);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.geofence-modal-title{flex:1}.geofence-modal-title h3{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.02em}.geofence-modal-title p{margin:0;font-size:13px;opacity:.85;line-height:1.4}.geofence-modal-close{width:32px;height:32px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#ffffffe6;cursor:pointer;transition:all .2s ease;flex-shrink:0}.geofence-modal-close:hover{background:#fff3;color:#fff}.geofence-modal-content{padding:24px;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.geofence-field{display:flex;flex-direction:column;gap:8px}.geofence-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.3px}.geofence-label svg{color:var(--color-error)}.geofence-input{width:100%;padding:14px 16px;background:var(--color-background);border:2px solid var(--color-border);border-radius:10px;font-size:15px;font-weight:500;color:var(--color-text);transition:all .2s ease;outline:none}.geofence-input::placeholder{color:var(--color-text-muted)}.geofence-input:focus{background:#fff;border-color:var(--color-error);box-shadow:0 0 0 4px #dc26261a}.geofence-slider-container{display:flex;align-items:center;gap:16px}.geofence-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:8px;background:linear-gradient(to right,var(--color-error-border) 0%,var(--color-error) 50%,var(--color-error-contrast) 100%);border-radius:4px;outline:none;cursor:pointer}.geofence-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;background:#fff;border:3px solid var(--color-error);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #dc26264d;transition:all .2s ease}.geofence-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 4px 12px #dc262666}.geofence-slider::-moz-range-thumb{width:24px;height:24px;background:#fff;border:3px solid var(--color-error);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #dc26264d}.geofence-slider-value{display:flex;align-items:baseline;gap:4px;min-width:80px;padding:8px 12px;background:#dc26261a;border:1px solid rgba(220,38,38,.2);border-radius:8px}.slider-number{font-size:20px;font-weight:800;color:var(--color-error);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif}.slider-unit{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.geofence-slider-marks{display:flex;justify-content:space-between;padding:0 4px;margin-top:4px}.geofence-slider-marks span{font-size:11px;font-weight:500;color:var(--color-text-muted)}.geofence-type-options{display:flex;gap:8px}.geofence-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 12px;background:var(--color-background);border:2px solid var(--color-border);border-radius:10px;cursor:pointer;transition:all .2s ease}.geofence-type-btn:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.geofence-type-btn.active{background:#dc262614;border-color:var(--color-error)}.type-icon{font-size:20px}.type-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-align:center}.geofence-type-btn.active .type-label{color:var(--color-error)}.geofence-coords-info{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--color-background);border:1px solid var(--color-border);border-radius:8px}.coords-label{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.coords-value{font-size:12px;font-weight:600;color:var(--color-text);font-family:ui-monospace,SF Mono,monospace;margin-left:auto}.geofence-modal-actions{display:flex;gap:12px;padding:20px 24px;background:var(--color-background);border-top:1px solid var(--color-border)}.geofence-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.geofence-btn-cancel{background:#fff;border:2px solid var(--color-border);color:var(--color-text-secondary)}.geofence-btn-cancel:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong);color:var(--color-text)}.geofence-btn-save{background:linear-gradient(145deg,var(--color-error) 0%,var(--color-error-dark) 100%);border:none;color:#fff;box-shadow:0 4px 12px #dc26264d}.geofence-btn-save:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #dc262666}.geofence-btn-save:disabled{background:var(--color-border);color:var(--color-text-muted);box-shadow:none;cursor:not-allowed}.geofence-btn-save:active:not(:disabled){transform:translateY(0)}@media (prefers-color-scheme: dark){.geofence-mode-hint{background:linear-gradient(135deg,#ef444433,#ef44441a);border-color:#ef444459;color:var(--color-error-light)}.geofence-modal,.geofence-modal-content{background:var(--color-text)}.geofence-label{color:var(--color-border)}.geofence-input{background:var(--color-text);border-color:var(--color-text-secondary);color:var(--color-surface-secondary)}.geofence-input::placeholder{color:var(--color-text-secondary)}.geofence-input:focus{background:var(--color-text-secondary);border-color:var(--color-error)}.geofence-type-btn{background:var(--color-text);border-color:var(--color-text-secondary)}.geofence-type-btn:hover{background:var(--color-text-secondary);border-color:var(--color-text-secondary)}.geofence-type-btn.active{background:#ef444426;border-color:var(--color-error)}.type-label{color:var(--color-text-muted)}.geofence-type-btn.active .type-label{color:var(--color-error-light)}.geofence-coords-info{background:var(--color-text);border-color:var(--color-text-secondary)}.coords-label{color:var(--color-text-muted)}.coords-value{color:var(--color-border)}.geofence-modal-actions{background:var(--color-text);border-top-color:var(--color-text)}.geofence-btn-cancel{background:var(--color-text);border-color:var(--color-text-secondary);color:var(--color-text-muted)}.geofence-btn-cancel:hover{background:var(--color-text-secondary);border-color:var(--color-text-secondary);color:var(--color-border)}}@media (max-width: 480px){.geofence-modal-overlay{padding:12px}.geofence-modal{max-height:95vh;border-radius:12px}.geofence-modal-header{padding:18px}.geofence-modal-icon{width:40px;height:40px}.geofence-modal-title h3{font-size:18px}.geofence-modal-content{padding:18px;gap:16px}.geofence-type-options{flex-direction:column}.geofence-type-btn{flex-direction:row;padding:12px 14px;gap:10px}.type-label{text-align:left}.geofence-modal-actions{padding:16px 18px;flex-direction:column-reverse}.geofence-btn{width:100%}}.custom-stop-marker{background:transparent!important;border:none!important}.stop-marker{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 4px 12px #0000004d;transition:all .3s ease}.stop-marker.completed{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);border:3px solid var(--color-success)}.stop-marker.pending{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning-dark) 100%);border:3px solid var(--color-warning)}.stop-marker:hover{transform:scale(1.2);box-shadow:0 6px 16px #0006}.stop-number{font-size:16px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.stop-status-icon{position:absolute;bottom:-8px;right:-8px;background:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 2px 6px #0003}.stop-popup{min-width:200px;padding:8px}.stop-popup h4{margin:0 0 8px;color:var(--color-text);font-size:16px;font-weight:600}.stop-popup p{margin:4px 0;font-size:14px;color:var(--color-text-secondary)}.stop-popup .stop-status{padding:4px 8px;border-radius:4px;font-weight:600;display:inline-block;margin-top:8px}.stop-popup .stop-status.completed{background:#d1fae5;color:var(--color-success-dark)}.stop-popup .stop-status.pending{background:var(--color-warning-light);color:var(--color-warning-dark)}.route-stops-list{margin-top:12px}.stops-list-header{font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.stops-list-items{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.stop-list-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;transition:all .2s ease}.stop-list-item:hover{background:var(--color-hover);border-color:var(--color-primary);box-shadow:0 2px 8px #0000001a}.stop-list-item.completed{border-left:3px solid var(--color-success);background:linear-gradient(to right,rgba(16,185,129,.05),transparent)}.stop-list-item.pending{border-left:3px solid var(--color-warning);background:linear-gradient(to right,rgba(245,158,11,.05),transparent)}.stop-number-badge{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;border-radius:50%;font-size:13px;font-weight:600}.stop-list-item.completed .stop-number-badge{background:var(--color-success)}.stop-list-item.pending .stop-number-badge{background:var(--color-warning)}.stop-info{flex:1;display:flex;flex-direction:column;gap:4px}.stop-name{font-size:14px;font-weight:500;color:var(--color-text);line-height:1.4}.stop-category{font-size:12px;color:var(--color-text-secondary);padding:2px 8px;background:#3b82f61a;border-radius:4px;display:inline-block;width:fit-content}.stop-time{font-size:11px;color:var(--color-text-muted)}.stop-status-icon{flex-shrink:0;font-size:18px;margin-top:2px}.stop-list-item.completed .stop-status-icon{color:var(--color-success)}.stop-list-item.pending .stop-status-icon{color:var(--color-warning);opacity:.6}.stop-list-item.skipped{border-left:3px solid var(--color-error);background:linear-gradient(to right,rgba(209,52,56,.05),transparent)}.stop-list-item.skipped .stop-number-badge{background:var(--color-error)}.stop-list-item.skipped .stop-status-icon{color:var(--color-error)}.stop-skip-reason{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-error);margin-top:2px;line-height:1.3}.stops-list-items::-webkit-scrollbar{width:6px}.stops-list-items::-webkit-scrollbar-track{background:var(--color-surface);border-radius:3px}.stops-list-items::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.stops-list-items::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.report-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-20);animation:reportFadeIn .2s ease-out}@keyframes reportFadeIn{0%{opacity:0}to{opacity:1}}@keyframes reportSlideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.report-modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:reportSlideUp .3s ease-out}.report-modal__header{background:var(--color-primary);padding:var(--space-20) var(--space-24);display:flex;align-items:center;justify-content:space-between;position:relative;flex-shrink:0}.report-modal__header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(45deg,rgba(255,255,255,.1) 0%,transparent 100%);pointer-events:none}.report-modal__header-left{display:flex;align-items:center;gap:var(--space-16);position:relative;z-index:1}.report-modal__icon{width:56px;height:56px;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.report-modal__icon img{width:36px;height:36px;object-fit:contain}.report-modal__header-text{display:flex;flex-direction:column;gap:var(--space-4)}.report-modal__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:#fff;letter-spacing:-.3px}.report-modal__subtitle{margin:0;font-size:var(--font-size-sm);color:#ffffffd9}.report-modal__close{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:var(--radius-md);width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all var(--duration-fast) var(--ease-out);position:relative;z-index:1}.report-modal__close:hover{background:#ffffff4d;transform:scale(1.05)}.report-modal__content{flex:1;overflow-y:auto;padding:var(--space-20) var(--space-24);display:flex;flex-direction:column;gap:var(--space-20);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.report-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.report-section__header{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-16);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border)}.report-section__header svg{color:var(--color-primary);flex-shrink:0}.report-section__header h3{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);flex:1}.report-section__header .section-badge{background:var(--color-primary);color:#fff;padding:var(--space-4) var(--space-12);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.report-section__body{padding:var(--space-16)}.report-map-container{height:220px;border-radius:var(--radius-base);overflow:hidden;background:var(--color-surface-secondary)}.report-map-container .leaflet-container{height:100%;width:100%}.report-map-empty{height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-surface-secondary);color:var(--color-text-tertiary);gap:var(--space-8);border-radius:var(--radius-base)}.report-map-empty svg{opacity:.4}.report-map-empty p{margin:0;font-size:var(--font-size-sm);text-align:center}.report-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-12)}.report-summary-card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12);display:flex;gap:var(--space-12);align-items:flex-start;transition:all var(--duration-fast) var(--ease-out)}.report-summary-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.report-summary-card__icon{width:40px;height:40px;background:var(--color-primary);border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.report-summary-card__content{flex:1;display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.report-summary-card__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.report-summary-card__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1.4;word-wrap:break-word}.report-summary-card__extra{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:var(--space-4)}.report-badges{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-16)}.report-badge{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-12);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.report-badge--preventivo{background:#107c101a;color:var(--color-success);border:1px solid var(--color-success)}.report-badge--correctivo{background:#0078d41a;color:var(--color-info);border:1px solid var(--color-info)}.report-badge--inspeccion{background:#64748b1a;color:var(--color-text-tertiary);border:1px solid var(--color-text-tertiary)}.report-badge--success{background:#107c101a;color:var(--color-success);border:1px solid var(--color-success)}.report-badge--warning{background:#ffb9001a;color:var(--color-warning-dark);border:1px solid var(--color-warning)}.report-badge--interna{background:#0078d41a;color:var(--color-info);border:1px solid var(--color-info)}.report-badge--externa{background:#107c101a;color:var(--color-success);border:1px solid var(--color-success)}.report-list{display:flex;flex-direction:column;gap:var(--space-8);list-style:none;margin:0;padding:0}.report-list-item{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);transition:all var(--duration-fast) var(--ease-out)}.report-list-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-xs)}.report-list-item svg{color:var(--color-primary);flex-shrink:0}.report-list-item__number{width:28px;height:28px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);flex-shrink:0}.report-list-item__content{flex:1;min-width:0}.report-list-item__badge{padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;background:var(--color-success-light);color:var(--color-success)}.report-observations{background:#ffb90014;border:1px solid rgba(255,185,0,.3);border-radius:var(--radius-md);padding:var(--space-16)}.report-observations__header{display:flex;align-items:center;gap:var(--space-8);margin-bottom:var(--space-12)}.report-observations__header svg{color:var(--color-warning-dark)}.report-observations__header h4{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-warning-dark)}.report-observations__text{margin:0;font-size:var(--font-size-sm);line-height:1.6;color:#78350f}.report-photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12)}@media (max-width: 640px){.report-photos-grid{grid-template-columns:1fr}}.report-photos-column{display:flex;flex-direction:column;min-width:0}.report-photos-column__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding:var(--space-8) var(--space-12);border-radius:var(--radius-base);margin-bottom:var(--space-8)}.report-photos-column__header--antes{background:#ef44441a;color:var(--color-error)}.report-photos-column__header--durante{background:#f59e0b1a;color:var(--color-warning-dark)}.report-photos-column__header--despues{background:#22c55e1a;color:var(--color-success-dark)}.report-photos-column__title{display:flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.report-photos-column__count{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);opacity:.8}.report-photos-column__content{display:flex;flex-direction:column;gap:var(--space-8);flex:1}.report-photo-item{border-radius:var(--radius-base);overflow:hidden;border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:var(--color-surface)}.report-photo-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.report-photo-item img{width:100%;height:120px;object-fit:cover;display:block}.report-photos-empty{display:flex;align-items:center;justify-content:center;height:100px;background:var(--color-surface-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-base);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.report-modal__footer{padding:var(--space-12) var(--space-20);background:var(--color-surface-secondary);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-12);flex-shrink:0}.report-modal__btn{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-20);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:none}.report-modal__btn--secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.report-modal__btn--secondary:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong)}.report-modal__btn--primary{background:var(--color-primary);color:#fff}.report-modal__btn--primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.report-photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10001;padding:var(--space-40);animation:reportFadeIn .2s ease-out}.report-photo-viewer__close{position:absolute;top:var(--space-20);right:var(--space-20);background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all var(--duration-fast) var(--ease-out)}.report-photo-viewer__close:hover{background:#fff3;transform:scale(1.1)}.report-photo-viewer__content{max-width:90%;max-height:90%}.report-photo-viewer__content img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 20px 60px #00000080}@media (max-width: 768px){.report-modal-overlay{padding:0;align-items:flex-end}.report-modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.report-modal__header{padding:var(--space-16)}.report-modal__icon{width:44px;height:44px}.report-modal__title{font-size:var(--font-size-lg)}.report-modal__content{padding:var(--space-16)}.report-map-container{height:180px}.report-summary-grid{grid-template-columns:1fr 1fr}.report-modal__footer{padding:var(--space-12) var(--space-16);flex-direction:column}.report-modal__btn{width:100%;justify-content:center}.report-photo-viewer{padding:var(--space-20)}.report-photo-viewer__close{top:var(--space-12);right:var(--space-12);width:40px;height:40px}}@media (max-width: 480px){.report-summary-grid{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-16);overflow-y:auto}.route-report-modal{background:#fff;border-radius:var(--radius-lg);max-width:1100px;width:95vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);border:1px solid var(--color-border);margin:auto}@media (max-width: 768px){.modal-overlay{padding:0}.route-report-modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.route-report-header{padding:12px 16px}.route-report-header h2{font-size:18px}}@media (max-width: 480px){.route-report-header{flex-direction:column;align-items:stretch;gap:8px}.route-report-footer{flex-direction:column-reverse;gap:8px;padding:12px}.route-report-footer button{width:100%;min-height:44px;justify-content:center}}.route-report-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-16) var(--space-24);border-bottom:1px solid var(--color-border);background:var(--color-primary);color:#fff;flex-shrink:0}.route-report-title{display:flex;align-items:center;gap:var(--space-12)}.route-report-title h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.route-report-subtitle{margin:2px 0 0;font-size:var(--font-size-sm);opacity:.9}.modal-close-btn{background:#fff3;border:none;border-radius:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s ease}.modal-close-btn:hover{background:#ffffff4d}.route-report-body{overflow-y:auto;padding:var(--space-16) var(--space-20);flex:1;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.route-report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-8);margin-bottom:var(--space-16)}.stat-card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12) var(--space-16);display:flex;align-items:center;gap:var(--space-8);min-height:56px}.stat-card svg{color:var(--color-primary);flex-shrink:0;margin-top:2px}.stat-card>div{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-weight-semibold);line-height:1}.stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1.2;word-wrap:break-word;overflow-wrap:break-word}.progress-section{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:12px;padding:20px;margin-bottom:32px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-header h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text)}.progress-percentage{font-size:24px;font-weight:700;color:var(--color-primary)}.progress-bar-container{height:12px;background:var(--color-border);border-radius:6px;overflow:hidden;margin-bottom:12px}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:6px;transition:width .3s ease}.progress-stats{display:flex;gap:16px;font-size:14px}.stat-success{color:var(--color-primary);font-weight:500}.stat-warning{color:var(--color-text-secondary);font-weight:500}.route-map-section{margin-bottom:var(--space-16)}.route-map-section h3{display:flex;align-items:center;gap:var(--space-8);margin:0 0 var(--space-8) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.route-map-container{height:260px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border)}.paradas-section{margin-bottom:var(--space-16)}.paradas-section h3{display:flex;align-items:center;gap:var(--space-8);margin:0 0 var(--space-8) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.paradas-list{display:flex;flex-direction:column;gap:var(--space-8);max-height:200px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.parada-item{display:flex;gap:var(--space-8);padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.parada-item.completada,.parada-item.no-completada{border-color:var(--color-border);background:var(--color-surface-secondary)}.parada-number{width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.parada-item.no-completada .parada-number{background:var(--color-text-secondary)}.parada-content{flex:1;min-width:0}.parada-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.parada-direccion{font-size:15px;font-weight:600;color:var(--color-text)}.badge{padding:var(--space-4) var(--space-12);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;border:1px solid currentColor}.badge-success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning);border-color:var(--color-warning)}.parada-details{display:flex;gap:16px;flex-wrap:wrap}.parada-detail{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary)}.parada-detail svg{color:var(--color-text-muted)}.parada-motivo{margin-top:8px;padding:8px 12px;background:var(--color-border);border-radius:6px;font-size:13px}.motivo-label{font-weight:600;color:var(--color-primary);margin-right:6px}.motivo-text{color:var(--color-text)}.risk-reports-section{margin-top:var(--space-16);padding-top:var(--space-12);border-top:1px solid var(--color-border)}.risk-reports-section h3{display:flex;align-items:center;gap:var(--space-8);margin:0 0 var(--space-8) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.risk-reports-list{display:flex;flex-direction:column;gap:var(--space-8);margin-bottom:var(--space-8);max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.risk-report-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);transition:all var(--duration-fast) var(--ease-out)}.risk-report-card.critico,.risk-report-card.critica,.risk-report-card.alto,.risk-report-card.alta,.risk-report-card.medio,.risk-report-card.media,.risk-report-card.bajo,.risk-report-card.baja{border-color:var(--color-border);background:var(--color-surface-secondary)}.risk-report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.risk-type{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase}.risk-priority{padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600}.risk-priority.priority-critico,.risk-priority.priority-critica,.risk-priority.priority-alto,.risk-priority.priority-alta{background:var(--color-primary);color:#fff}.risk-priority.priority-medio,.risk-priority.priority-media,.risk-priority.priority-bajo,.risk-priority.priority-baja{background:var(--color-text-secondary);color:#fff}.risk-report-body h4{margin:0 0 8px;font-size:15px;font-weight:600;color:var(--color-text)}.risk-category{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px;color:var(--color-text-secondary)}.risk-description{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--color-text)}.risk-meta{display:flex;gap:16px;flex-wrap:wrap}.risk-meta-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.terminacion-warning{display:flex;gap:12px;padding:16px;background:var(--color-surface-secondary);border:2px solid var(--color-border);border-radius:8px;margin-top:16px}.terminacion-warning svg{color:var(--color-primary);flex-shrink:0}.terminacion-warning strong{color:var(--color-primary);display:block;margin-bottom:4px}.terminacion-warning p{margin:0;font-size:14px;color:var(--color-text)}.observaciones-section{margin-top:var(--space-16);padding-top:var(--space-12);border-top:1px solid var(--color-border)}.observaciones-section h3{display:flex;align-items:center;gap:var(--space-8);margin:0 0 var(--space-8) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.observaciones-text{padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.5;color:var(--color-text-secondary);white-space:pre-wrap;max-height:120px;overflow-y:auto}.route-report-footer{padding:var(--space-12) var(--space-20);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-12);flex-shrink:0}.btn{padding:var(--space-8) var(--space-20);border-radius:var(--radius-base);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);cursor:pointer;border:none;transition:all var(--duration-fast) var(--ease-out)}.btn--secondary{background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn--secondary:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong)}.parada-risk-report{margin-top:12px;padding:12px;background:linear-gradient(135deg,var(--color-error-light) 0%,var(--color-error-light) 100%);border:2px solid var(--color-error-border);border-radius:8px;animation:fadeInDown .3s ease}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.parada-risk-header{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--color-error-contrast);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.parada-risk-header svg{color:var(--color-error)}.parada-risk-body{display:flex;flex-direction:column;gap:6px}.parada-risk-title{font-size:14px;font-weight:600;color:var(--color-error-contrast)}.parada-risk-description{font-size:13px;color:var(--color-error-contrast);line-height:1.4}.parada-risk-meta{display:flex;gap:8px;margin-top:6px}.parada-risk-priority{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600}.parada-risk-priority.priority-critico,.parada-risk-priority.priority-critica,.parada-risk-priority.priority-alto,.parada-risk-priority.priority-alta{background:var(--color-primary);color:#fff}.parada-risk-priority.priority-medio,.parada-risk-priority.priority-media,.parada-risk-priority.priority-bajo,.parada-risk-priority.priority-baja{background:var(--color-text-secondary);color:#fff}.parada-risk-category{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:500;background:var(--color-primary);color:#fff;text-transform:capitalize}.productos-list{display:flex;flex-direction:column;gap:8px}.producto-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:8px;font-size:14px;color:var(--color-text)}.producto-item svg{color:var(--color-primary);flex-shrink:0}.fotos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-8)}.foto-item{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/3;border:1px solid var(--color-border);background:var(--color-surface-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.foto-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.foto-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-normal) var(--ease-out)}.foto-item:hover img{transform:scale(1.03)}.foto-label{position:absolute;bottom:var(--space-8);left:var(--space-8);padding:var(--space-4) var(--space-12);background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);text-transform:capitalize}.maintenance-badges{display:flex;gap:var(--space-8);margin-bottom:var(--space-16)}.maintenance-badge{padding:var(--space-4) var(--space-12);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.maintenance-badge.tipo-preventivo{background:#107c101a;color:var(--color-success);border:1px solid var(--color-success)}.maintenance-badge.tipo-correctivo{background:#0078d41a;color:var(--color-info);border:1px solid var(--color-info)}.maintenance-badge.tipo-inspección{background:#64748b1a;color:var(--color-text-tertiary);border:1px solid var(--color-text-tertiary)}.maintenance-badge.priority-urgente{background:#d134381a;color:var(--color-error);border:1px solid var(--color-error)}.maintenance-badge.priority-alta{background:#ff8c001a;color:var(--color-warning);border:1px solid var(--color-warning)}.maintenance-badge.priority-media{background:#ffb9001a;color:var(--color-warning);border:1px solid var(--color-warning)}.maintenance-badge.priority-baja{background:#64748b1a;color:var(--color-text-tertiary);border:1px solid var(--color-text-tertiary)}.maintenance-description{padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-16)}.maintenance-description p{margin:0;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-secondary)}.maintenance-badges-mini{display:flex;gap:var(--space-4);flex-wrap:wrap}.maintenance-badge-mini{padding:2px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:capitalize}.maintenance-badge-mini.tipo-preventivo{background:#107c101a;color:var(--color-success)}.maintenance-badge-mini.tipo-correctivo{background:#0078d41a;color:var(--color-info)}.maintenance-badge-mini.tipo-inspección{background:#64748b1a;color:var(--color-text-tertiary)}.maintenance-badge-mini.priority-urgente{background:#d134381a;color:var(--color-error)}.maintenance-badge-mini.priority-alta{background:#ff8c001a;color:var(--color-warning)}.maintenance-badge-mini.priority-media{background:#ffb9001a;color:var(--color-warning-dark)}.maintenance-badge-mini.priority-baja{background:#64748b1a;color:var(--color-text-tertiary)}.fotos-horizontal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12)}@media (max-width: 768px){.fotos-horizontal-grid{grid-template-columns:1fr}}.fotos-column{display:flex;flex-direction:column;min-width:0}.fotos-column-header{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-12);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-8)}.fotos-column-header.fotos-antes{background:#ffb90026;color:var(--color-warning-dark)}.fotos-column-header.fotos-durante{background:#0078d426;color:var(--color-info)}.fotos-column-header.fotos-despues{background:#107c1026;color:var(--color-success)}.fotos-column-content{display:flex;flex-direction:column;gap:var(--space-8);flex:1}.foto-item-horizontal{border-radius:var(--radius-base);overflow:hidden;border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:var(--color-surface)}.foto-item-horizontal:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.foto-item-horizontal img{width:100%;height:120px;object-fit:cover;display:block}.fotos-empty{display:flex;align-items:center;justify-content:center;height:80px;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-base);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.location-modal-overlay-new{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:0;animation:fadeIn .3s ease}.location-modal-new{background:linear-gradient(135deg,#fff,#f8fdf8);width:95%;max-width:900px;max-height:90vh;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:slideUp .4s cubic-bezier(.4,0,.2,1);border:1px solid var(--color-border)}.location-map-container{width:100%;height:300px;position:relative;flex-shrink:0;background:var(--color-border)}.location-map-container iframe{width:100%;height:100%;border:none}.map-overlay{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;background:linear-gradient(to bottom,rgba(var(--color-primary-rgb),.95),rgba(var(--color-primary-rgb),.7),transparent);pointer-events:none}.map-overlay>*{pointer-events:auto}.map-overlay-actions{display:flex;align-items:center;gap:12px}.map-location-name{display:flex;flex-direction:column;gap:4px}.map-location-name h2{margin:0;font-size:24px;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.4);letter-spacing:-.02em;display:flex;align-items:center;gap:12px}.modal-icon-badge{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fffffff2;border-radius:12px;box-shadow:0 4px 12px #00000026;color:var(--color-primary);flex-shrink:0;border:2px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:6px}.modal-logo-img{width:100%;height:100%;object-fit:contain}.map-location-name span{font-size:14px;font-weight:600;color:#fffffff2;text-shadow:0 1px 4px rgba(0,0,0,.3);background:#ffffff26;padding:4px 12px;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.open-maps-btn{background:#fffffff2;border:none;padding:10px 18px;border-radius:20px;font-size:13px;font-weight:600;color:var(--color-primary);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 12px #0003;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.open-maps-btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.close-button-map{background:#fffffff2;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);transition:all .2s ease;box-shadow:0 2px 12px #0003}.close-button-map:hover{background:#fff;transform:scale(1.1)}.reports-section{flex:1;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(180deg,#fafbfa,#f5f8f5)}.reports-controls-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(180deg,#fff,#fafbfa);border-bottom:1px solid var(--color-divider);gap:16px;flex-shrink:0}.controls-left{display:flex;align-items:center;gap:12px}.filter-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border:1.5px solid var(--color-border);border-radius:8px;font-size:14px;font-weight:500;color:var(--color-text);cursor:pointer;transition:all .2s ease}.filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface-secondary)}.filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.download-all-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-primary);border:none;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.download-all-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.download-all-btn:disabled{opacity:.5;cursor:not-allowed}.date-filters-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-divider);flex-wrap:wrap;flex-shrink:0}.date-presets-buttons{display:flex;gap:6px}.date-presets-buttons button{padding:6px 14px;background:#fff;border:1px solid var(--color-border-strong);border-radius:6px;font-size:13px;font-weight:500;color:var(--color-text);cursor:pointer;transition:all .2s ease}.date-presets-buttons button:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-hover-overlay)}.date-range-inputs-inline{display:flex;align-items:center;gap:8px}.date-range-inputs-inline input{padding:6px 12px;border:1px solid var(--color-border-strong);border-radius:6px;font-size:13px;font-weight:500;color:var(--color-text);background:#fff;font-family:monospace}.date-range-inputs-inline input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.date-range-inputs-inline span{color:var(--color-text-muted);font-weight:600}.reports-list-container{flex:1;overflow-y:auto;padding:20px 24px}.empty-reports{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--color-text-muted)}.empty-reports svg{margin-bottom:16px;opacity:.5}.empty-reports p{margin:0;font-size:16px;font-weight:500}.report-card{background:#fff;border:1.5px solid var(--color-border);border-radius:12px;padding:20px;margin-bottom:16px;transition:all .2s ease}.report-card:hover{border-color:var(--color-primary);box-shadow:0 4px 16px #00000014}.report-card.selected{border-color:var(--color-primary);background:var(--color-surface-secondary);box-shadow:var(--shadow-sm)}.report-card-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.report-checkbox-custom{width:20px;height:20px;margin-top:2px;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.report-info-main{flex:1;min-width:0}.report-info-main h4{margin:0 0 8px;font-size:17px;font-weight:600;color:var(--color-text);line-height:1.4}.report-meta-inline{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.report-date-inline{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-text-secondary);font-weight:500}.report-date-inline svg{flex-shrink:0}.report-actions{display:flex;gap:8px;flex-shrink:0}.view-report-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-primary);border:none;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.view-report-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.download-single-btn{background:transparent;border:1.5px solid var(--color-border);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all .2s ease;flex-shrink:0}.download-single-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:translateY(-1px)}.report-photos-mini{padding-top:16px;border-top:1px solid var(--color-surface-secondary)}.photos-mini-header{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;font-weight:600;color:var(--color-text-secondary)}.photos-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.photo-mini-thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--color-surface-secondary);border:1px solid var(--color-border)}.photo-mini-thumb img{width:100%;height:100%;object-fit:cover}.photo-mini-label{position:absolute;bottom:0;left:0;right:0;padding:4px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);color:#fff;font-size:10px;font-weight:600;text-align:center;text-transform:capitalize}.photo-mini-thumb.more{display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:16px;font-weight:700}.report-notes-inline{margin-top:16px;padding:12px;background:#fffbeb;border-left:3px solid var(--color-warning);border-radius:6px;font-size:14px;color:var(--color-warning-dark);line-height:1.6}.report-notes-inline strong{font-weight:600;color:#78350f}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.location-modal-new{width:100%;height:100dvh;max-height:100dvh;border-radius:0;max-width:none}.location-map-container{height:250px}.map-location-name h2{font-size:20px}.reports-controls-bar{flex-direction:column;align-items:stretch}.download-all-btn{width:100%;justify-content:center}.date-filters-bar{flex-direction:column;align-items:stretch}.date-presets-buttons{display:grid;grid-template-columns:repeat(4,1fr)}.photos-mini-grid{grid-template-columns:repeat(3,1fr)}}.fumigation-reports-page{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;display:flex;flex-direction:column;background:var(--color-surface-secondary);overflow:hidden;z-index:9998}.fumigation-page-header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;background:#fff;border-bottom:1px solid var(--color-border);flex-shrink:0}.fumigation-page-title{display:flex;align-items:center;gap:16px}.fumigation-page-title svg{color:var(--color-primary)}.fumigation-page-title h1{margin:0;font-size:28px;font-weight:700;color:var(--color-text)}.fumigation-page-close{padding:8px;background:transparent;border:none;border-radius:8px;cursor:pointer;color:var(--color-text-secondary);transition:all .2s ease}.fumigation-page-close:hover{background:var(--color-surface-secondary);color:var(--color-text)}.fumigation-map-container{position:relative;height:400px;flex-shrink:0;background:var(--color-border)}.fumigation-map-overlay{position:absolute;top:0;left:0;right:0;padding:24px 32px;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,transparent 100%);display:flex;align-items:flex-start;justify-content:space-between;z-index:10}.fumigation-map-location h2{margin:0 0 4px;font-size:24px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.fumigation-map-location span{font-size:14px;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.3)}.fumigation-open-maps{padding:10px 20px;background:#fff;color:var(--color-primary);border:none;border-radius:8px;font-weight:600;font-size:14px;text-decoration:none;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000001a}.fumigation-open-maps:hover{background:var(--color-surface-secondary);box-shadow:0 4px 12px #00000026}.fumigation-reports-section{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff;margin:0}.fumigation-controls-bar{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid var(--color-border);flex-shrink:0}.fumigation-controls-left{display:flex;gap:12px}.fumigation-filter-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;border:2px solid var(--color-border);border-radius:8px;font-weight:500;font-size:14px;color:var(--color-text);cursor:pointer;transition:all .2s ease}.fumigation-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.fumigation-filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.fumigation-download-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-primary);border:none;border-radius:8px;font-weight:600;font-size:14px;color:#fff;cursor:pointer;transition:all .2s ease}.fumigation-download-btn:hover:not(:disabled){background:#2d3d1f}.fumigation-download-btn:disabled{opacity:.5;cursor:not-allowed}.fumigation-date-filters{padding:16px 32px;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);display:flex;gap:16px;align-items:center;flex-shrink:0}.fumigation-date-presets{display:flex;gap:8px}.fumigation-date-presets button{padding:8px 16px;background:#fff;border:1px solid var(--color-border);border-radius:6px;font-size:13px;font-weight:500;color:var(--color-text);cursor:pointer;transition:all .2s ease}.fumigation-date-presets button:hover{border-color:var(--color-primary);color:var(--color-primary)}.fumigation-date-range{display:flex;align-items:center;gap:12px;margin-left:auto}.fumigation-date-range input{padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;font-family:inherit}.fumigation-date-range span{color:var(--color-text-secondary)}.fumigation-reports-list{flex:1;overflow-y:auto;padding:24px 32px}.fumigation-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary)}.fumigation-empty svg{margin-bottom:16px;opacity:.3}.fumigation-empty p{font-size:16px;font-weight:500}.fumigation-report-card{background:#fff;border:2px solid var(--color-border);border-radius:12px;padding:20px;margin-bottom:16px;transition:all .2s ease}.fumigation-report-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.fumigation-report-card.selected{border-color:var(--color-primary);background:var(--color-surface-secondary)}.fumigation-report-header{display:flex;align-items:center;gap:16px}.fumigation-checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary)}.fumigation-report-info{flex:1}.fumigation-report-info h4{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--color-text)}.fumigation-report-meta{display:flex;align-items:center;gap:16px}.fumigation-date{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-text-secondary)}.fumigation-date svg{flex-shrink:0}.fumigation-report-actions{display:flex;gap:8px}.fumigation-view-btn,.fumigation-download-single{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.fumigation-view-btn{background:#fff;border:1px solid var(--color-primary);color:var(--color-primary)}.fumigation-view-btn:hover{background:var(--color-primary);color:#fff}.fumigation-download-single{background:var(--color-surface-secondary);border:2px solid var(--color-border);color:var(--color-text);padding:8px 12px}.fumigation-download-single:hover{background:var(--color-border)}.fumigation-report-notes{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border);font-size:14px;color:var(--color-text);line-height:1.6}.fumigation-report-notes strong{color:var(--color-text);margin-right:6px}@media (max-width: 768px){.fumigation-page-header{padding:16px 20px}.fumigation-page-title h1{font-size:22px}.fumigation-map-container{height:300px}.fumigation-controls-bar{flex-direction:column;gap:12px;align-items:stretch}.fumigation-date-filters{flex-direction:column;align-items:stretch}.fumigation-reports-list{padding:16px 20px}.fumigation-report-actions{flex-direction:column}}.reports-container{padding:0;background:transparent;min-height:100vh}.reports-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;gap:24px;flex-wrap:wrap;animation:fadeIn var(--duration-normal) var(--ease-out)}.reports-title h2{font-family:var(--font-family-display);font-size:34px;font-weight:700;color:var(--color-text);margin:0 0 8px;letter-spacing:var(--letter-spacing-tight)}.reports-title p{color:var(--color-text-secondary);margin:0;font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.reports-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.date-range{display:flex;align-items:center;gap:8px;background:var(--color-surface);padding:10px 16px;border-radius:var(--radius-md);border:1.5px solid var(--color-border)}.date-range label{font-size:13px;font-weight:600;color:var(--color-text)}.date-range input{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:13px;background:var(--color-surface);color:var(--color-text);font-family:var(--font-family-mono)}.date-range input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.quick-range{display:flex;gap:6px}.selection-controls{display:flex;gap:8px;align-items:center}.selection-info{font-size:13px;color:var(--color-text-secondary);font-weight:500;padding:8px 12px;background:var(--color-primary-light);border-radius:var(--radius-base)}.export-actions{display:flex;gap:8px}.reports-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;transition:all var(--duration-normal) var(--ease-out);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-success));transform:scaleX(0);transform-origin:left;transition:transform var(--duration-normal) var(--ease-out)}.stat-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-elevated);transform:translateY(-4px)}.stat-card:hover:before{transform:scaleX(1)}.stat-icon{font-size:40px;margin-bottom:12px;display:block}.stat-value{font-family:var(--font-family-display);font-size:36px;font-weight:700;color:var(--color-text);margin:0 0 4px;line-height:1;letter-spacing:var(--letter-spacing-tight)}.stat-label{font-size:13px;color:var(--color-text-secondary);font-weight:500}.stat-change{font-size:12px;font-weight:600;margin-top:8px;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-sm)}.stat-change.positive{background:#22c55e1a;color:var(--color-success-dark)}.stat-change.negative{background:#ef44441a;color:var(--color-error)}.reports-body{animation:fadeIn var(--duration-normal) var(--ease-out) .1s backwards}.routes-list{display:flex;flex-direction:column;gap:12px}.route-accordion{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--duration-normal) var(--ease-out)}.route-accordion:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.route-accordion--selected{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 0 0 3px var(--color-primary-subtle)}.route-accordion-header{display:flex;align-items:center;gap:12px;padding:16px;background:var(--color-surface);transition:all var(--duration-fast) var(--ease-out)}.route-accordion--selected .route-accordion-header{background:var(--color-primary-light)}.route-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.route-header{flex:1;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px;border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-out)}.route-header:hover{background:var(--color-hover-overlay)}.route-header:active{background:var(--color-active-overlay)}.route-compact-info{display:flex;align-items:center;gap:20px;flex:1;flex-wrap:wrap}.route-left,.route-center,.route-right{display:flex;flex-direction:column;gap:4px}.route-left{min-width:140px}.route-center{flex:1}.route-right{align-items:flex-end}.route-date{font-size:13px;color:var(--color-text-secondary);font-family:var(--font-family-mono);font-weight:500}.route-name{font-size:15px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.route-conductor{font-size:14px;font-weight:500;color:var(--color-text)}.route-stops{font-size:13px;color:var(--color-text-secondary)}.service-badge-compact{font-size:24px;padding:4px 8px;background:var(--color-secondary);border-radius:var(--radius-base);transition:transform var(--duration-fast) var(--ease-out)}.route-header:hover .service-badge-compact{transform:scale(1.1)}.route-expand{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-secondary);border-radius:50%;flex-shrink:0;transition:all var(--duration-fast) var(--ease-out)}.route-accordion:hover .route-expand{background:var(--color-hover-overlay)}.expand-icon{font-size:12px;color:var(--color-text-secondary);transition:transform var(--duration-normal) var(--ease-out);display:inline-block;line-height:1}.expand-icon.expanded{transform:rotate(180deg);color:var(--color-primary)}.route-details{max-height:0;overflow:hidden;opacity:0;transition:max-height var(--duration-slow) var(--ease-out),opacity var(--duration-normal) var(--ease-out) .1s,padding var(--duration-normal) var(--ease-out);padding:0 16px;background:var(--color-surface)}.route-details.expanded{max-height:3000px;opacity:1;padding:20px 16px;border-top:1px solid var(--color-divider)}.route-expanded-info{margin-bottom:20px}.route-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.meta-label{font-size:12px;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.meta-value{font-size:15px;color:var(--color-text);font-weight:500}.route-observations{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--color-secondary);border-radius:var(--radius-base);border-left:3px solid var(--color-info)}.stops-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-divider)}.stops-section h5{font-size:15px;font-weight:600;color:var(--color-text);margin:0 0 12px;letter-spacing:-.01em}.stops-list{display:flex;flex-direction:column;gap:10px}.stop-item{display:flex;align-items:flex-start;gap:12px;padding:14px;background:var(--color-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:all var(--duration-fast) var(--ease-out)}.stop-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-xs);transform:translate(4px)}.stop-number{width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;box-shadow:0 2px 8px #30d1584d}.stop-address{font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:8px;line-height:var(--line-height-snug)}.stop-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;align-items:center}.cargo-type{padding:3px 8px;border-radius:var(--radius-sm);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.3px}.cargo--alta{background:#ef44441a;color:var(--color-error);border:1px solid rgba(239,68,68,.2)}.cargo--media{background:#f59e0b1a;color:var(--color-warning-dark);border:1px solid rgba(245,158,11,.2)}.cargo--baja{background:#22c55e1a;color:var(--color-success-dark);border:1px solid rgba(34,197,94,.2)}.stop-time{color:var(--color-text-secondary);font-family:var(--font-family-mono)}.stop-status{color:var(--color-success);font-weight:600}.reports-loading{display:flex;justify-content:center;align-items:center;padding:80px 20px;background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner{display:none}.loading-spinner p{color:var(--color-text-secondary);font-size:15px;font-weight:500}.reports-error{display:flex;justify-content:center;align-items:center;padding:60px 20px}.error-message{text-align:center;max-width:400px}.error-icon{font-size:64px;margin-bottom:16px}.error-message h3{font-size:21px;font-weight:700;color:var(--color-text);margin:0 0 8px}.error-message p{font-size:15px;color:var(--color-text-secondary);margin:0 0 20px}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;background:var(--color-surface);border-radius:var(--radius-lg);border:2px dashed var(--color-border)}.no-data-icon{font-size:64px;margin-bottom:16px;opacity:.5}.no-data h3{font-size:21px;font-weight:700;color:var(--color-text);margin:0 0 8px}.no-data p{font-size:15px;color:var(--color-text-secondary);margin:0}@media (max-width: 1024px){.route-compact-info{gap:12px}.route-meta-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width: 768px){.reports-header{flex-direction:column;align-items:flex-start}.reports-controls{width:100%;flex-direction:column;align-items:stretch}.date-range{flex-wrap:wrap}.quick-range{width:100%;justify-content:center}.selection-controls,.export-actions{width:100%;flex-wrap:wrap}.selection-controls button,.export-actions button{flex:1}.route-compact-info{flex-direction:column;gap:8px}.route-left,.route-center,.route-right{width:100%}.route-right{align-items:flex-start}.route-meta-grid{grid-template-columns:1fr}.stop-meta{flex-direction:column;align-items:flex-start;gap:6px}.reports-stats{grid-template-columns:1fr}}.reports-container-new{animation:fadeIn .3s ease-out}.reports-header-new{margin-bottom:8px}.reports-title-section{margin-bottom:0}.reports-title-section h2{font-size:32px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.reports-title-section p{font-size:15px;color:var(--color-text-secondary);margin:0}.reports-categories{display:flex;gap:16px;justify-content:center;align-items:center;padding:16px;background:linear-gradient(135deg,#f8fdf8,#fff);border-radius:12px;box-shadow:var(--shadow-xs);margin-bottom:32px}.category-tab{display:flex;align-items:center;gap:10px;padding:14px 24px;background:rgba(var(--color-primary-rgb),.85);border:1px solid var(--color-border);border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;color:#ffffffe6;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:var(--shadow-sm)}.category-tab:hover{background:rgba(var(--color-primary-rgb),.95);border-color:var(--color-border-strong);transform:translateY(-2px);box-shadow:var(--shadow-sm);color:#fff}.category-tab--active{color:#fff;background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-md)}.category-tab--active:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.reports-content-new{margin-top:32px}.reports-category{animation:fadeIn .4s ease-out}.category-header{margin-bottom:24px}.category-header h3{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.category-header p{font-size:14px;color:var(--color-text-secondary);margin:0}.routes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.route-card{cursor:pointer;transition:all .3s ease}.route-card-content{padding:20px}.route-card-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.route-card-header svg{color:var(--color-primary)}.route-card-header h4{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.route-card-stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--color-divider)}.route-stat{font-size:14px;color:var(--color-text-secondary)}.route-status{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize}.route-status--activo{background:#34c75926;color:var(--color-success)}.route-status--inactivo{background:#8e8e9326;color:var(--color-text-muted)}.route-card-action{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:500;color:var(--color-info)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.empty-state svg{color:var(--color-text-tertiary);margin-bottom:16px}.empty-state p{font-size:15px;color:var(--color-text-secondary);margin:0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.loading-spinner{display:none}@keyframes spin{to{transform:rotate(0)}}.loading-state p{font-size:14px;color:var(--color-text-secondary);margin:0}.reports-limpieza{max-width:1200px}.limpieza-reports{display:flex;flex-direction:column;gap:20px}.assignment-report-card{transition:all .3s ease}.assignment-report-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001a}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-divider)}.assignment-info h4{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.assignment-date{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-text-secondary)}.assignment-photos{margin-top:20px}.assignment-photos h5{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.assignment-photos .photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.photo-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--color-background-secondary);cursor:pointer;transition:transform .3s ease}.photo-label{position:absolute;bottom:0;left:0;right:0;padding:8px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);color:#fff;font-size:12px;font-weight:500;text-align:center;text-transform:capitalize}.assignment-notes{margin-top:16px;padding:12px 16px;background:#8e8e9314;border-left:4px solid var(--color-primary);border-radius:8px;font-size:14px;color:var(--color-text-secondary)}.assignment-notes strong{color:var(--color-text-primary)}.locations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:24px}.reports-recoleccion .locations-grid,.reports-fumigacion .locations-grid{grid-template-columns:repeat(3,1fr)!important;max-width:1400px;margin-left:auto;margin-right:auto}.limpieza-grid-3col{display:grid!important;grid-template-columns:repeat(3,1fr)!important;max-width:1400px!important;margin-left:auto!important;margin-right:auto!important;gap:24px!important}.reports-mantenimiento .locations-grid{grid-template-columns:1fr;max-width:900px;margin-left:auto;margin-right:auto}.reports-mantenimiento .location-map-card{min-height:400px}.location-card{cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:2px solid var(--color-border)!important;background:#fff!important;padding:24px!important;position:relative;overflow:hidden}.location-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.location-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)!important}.location-card:hover:before{transform:scaleX(1)}.location-card-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:2px solid var(--color-surface-secondary)}.location-card-header svg{color:var(--color-primary);flex-shrink:0;width:32px;height:32px}.location-card-header h4{font-size:19px;font-weight:600;color:var(--color-text);margin:0;line-height:1.4;flex:1}.location-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.location-stat{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;padding:20px 16px;background:var(--color-surface-secondary);border-radius:12px;border:1px solid var(--color-border);transition:all .2s ease}.location-card:hover .location-stat{background:var(--color-hover-overlay);border-color:var(--color-border)}.location-stat .stat-value{font-size:32px;font-weight:700;color:var(--color-primary);line-height:1;letter-spacing:-.02em}.location-stat .stat-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.8px;text-align:center}.location-card-action{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;color:var(--color-primary);padding-top:20px;border-top:1px solid var(--color-surface-secondary);transition:all .2s ease}.location-card:hover .location-card-action{color:var(--color-primary-hover);transform:translate(4px)}.location-card-action svg{transition:transform .2s ease}.location-card:hover .location-card-action svg{transform:translate(4px)}.location-map-card{position:relative;height:280px;border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #00000014}.location-map-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.location-image-wrapper{width:100%;height:100%;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-surface-secondary) 0%,var(--color-border) 100%)}.location-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .2s ease;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);-webkit-transform:translateZ(0)}.location-image:not([src]){opacity:0}.location-map-card:hover .location-image{transform:scale(1.05) translateZ(0)}.location-map-iframe{width:100%;height:100%;border:0;pointer-events:none}.location-map-static{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.location-map-card:hover .location-map-static{transform:scale(1.05)}.map-placeholder{width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 50%,var(--color-info-light) 100%);overflow:hidden}.map-placeholder-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);background-size:200% 200%;animation:shimmerPlaceholder 3s ease-in-out infinite}@keyframes shimmerPlaceholder{0%{background-position:-200% 0}to{background-position:200% 0}}.map-placeholder-icon{color:#0ea5e9;z-index:1;filter:drop-shadow(0 4px 12px rgba(14,165,233,.3));animation:floatIcon 3s ease-in-out infinite}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.map-placeholder-text{font-size:13px;font-weight:600;color:#0284c7;z-index:1;text-transform:uppercase;letter-spacing:.5px}.location-map-card:hover .map-placeholder{background:linear-gradient(135deg,#e0f2fe,#bae6fd,#7dd3fc)}.location-map-card:hover .map-placeholder-icon{color:#0284c7;transform:scale(1.1);animation:none}.location-image-fallback{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(135deg,var(--color-surface-secondary) 0%,var(--color-border) 100%)}.location-image-fallback svg{color:var(--color-text-muted)}.map-card-overlay{position:absolute;top:0;left:0;right:0;padding:20px;background:linear-gradient(180deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.4) 60%,transparent 100%);display:flex;flex-direction:column;gap:8px;z-index:10}.map-card-overlay h4{font-size:20px;font-weight:700;color:#fff;margin:0;text-shadow:0 2px 8px rgba(0,0,0,.3);letter-spacing:-.02em}.map-card-overlay .report-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#fffffff2;color:var(--color-primary);border-radius:8px;font-size:13px;font-weight:600;width:fit-content;box-shadow:0 2px 8px #00000026;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media (max-width: 768px){.reports-categories{flex-wrap:wrap}.category-tab{flex:1;min-width:120px;justify-content:center}.routes-grid,.locations-grid{grid-template-columns:1fr}.assignment-photos .photos-grid{grid-template-columns:repeat(3,1fr)}.location-card-stats{gap:12px}.location-map-card{height:240px}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes glow{0%{box-shadow:var(--shadow-xs)}50%{box-shadow:var(--shadow-md)}to{box-shadow:var(--shadow-xs)}}.category-info-banner{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--color-surface-secondary);border-radius:12px;border:1px solid var(--color-border);margin-top:16px;font-size:14px;color:var(--color-text-secondary)}.category-info-banner strong{color:var(--color-text-primary);font-weight:600}.location-card--fumigation{display:flex;flex-direction:column;gap:16px}.location-card--fumigation:hover{border-color:var(--color-primary)!important;transform:translateY(-4px);box-shadow:var(--shadow-md)!important}.compliance-indicator{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--color-background-secondary);border-radius:8px;margin-top:8px}.compliance-label{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;color:var(--color-text-primary)}.compliance-percent{font-size:14px;font-weight:700}.compliance-percent.compliance-ok{color:#30d158}.compliance-percent.compliance-warning{color:#ff9f0a}.compliance-bar{width:100%;height:8px;background:#00000014;border-radius:4px;overflow:hidden}.compliance-fill{height:100%;border-radius:4px;transition:width .3s ease}.compliance-indicator small{font-size:11px;color:var(--color-text-secondary);text-align:center}.category-stats{display:flex;gap:12px}.stat-badge{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;background:var(--color-background-secondary);border-radius:10px;border:1px solid var(--color-border)}.stat-badge--success{background:#30d15814;border-color:#30d15833}.stat-badge--warning{background:#ff9f0a14;border-color:#ff9f0a33}.stat-badge .stat-value{font-size:20px;font-weight:700;color:var(--color-text-primary)}.stat-badge .stat-label{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.view-reports-btn{font-size:13px;font-weight:500;color:var(--color-primary);display:flex;align-items:center;gap:4px}.location-card--fumigation:hover .view-reports-btn{gap:8px}@media (max-width: 1024px){.reports-fumigacion .locations-grid{grid-template-columns:repeat(2,1fr)!important}.category-stats{flex-wrap:wrap}}.module-download-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:linear-gradient(135deg,var(--color-surface-secondary) 0%,#ffffff 100%);border-radius:12px;border:1px solid var(--color-border);margin-bottom:24px;animation:fadeIn .3s ease-out}.download-date-inputs{display:flex;gap:12px;align-items:flex-end}.date-input-small{display:flex;flex-direction:column;gap:6px}.date-input-small label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-text)}.date-input-small input[type=date]{padding:8px 12px;border:1px solid var(--color-border-strong);border-radius:8px;font-size:13px;font-family:inherit;background:#fff;transition:all .2s ease;min-width:150px}.date-input-small input[type=date]:hover{border-color:var(--color-primary)}.date-input-small input[type=date]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.btn-download-module{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-sm);white-space:nowrap}.btn-download-module:hover:not(:disabled){background:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-download-module:disabled{background:rgba(var(--color-primary-rgb),.4);cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.reports-fumigacion .locations-grid{grid-template-columns:1fr!important}.category-info-banner{flex-direction:column;align-items:flex-start}.module-download-controls{flex-direction:column;align-items:stretch}.download-date-inputs{flex-direction:column;width:100%}.date-input-small{width:100%}.date-input-small input[type=date]{width:100%;min-width:unset}.btn-download-module{width:100%;justify-content:center}}.route-reports-section{margin-bottom:32px}.route-reports-header{margin:0 0 20px;font-size:20px;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:8px}.route-reports-grid{display:grid;gap:16px}.route-report-card{background:#fff;padding:20px 24px;border-radius:12px;border:2px solid var(--color-border);cursor:pointer;transition:all .2s ease}.route-report-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.route-report-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.route-report-card-title{font-size:18px;font-weight:600;color:var(--color-text);margin:0}.route-report-badge{padding:6px 14px;background:#d1fae5;color:var(--color-success-dark);border-radius:12px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:4px}.route-report-meta{display:flex;gap:24px;flex-wrap:wrap;font-size:14px;color:var(--color-text-secondary);margin-bottom:10px}.route-report-meta-item{display:flex;align-items:center;gap:6px}.route-report-hint{font-size:13px;color:var(--color-text-muted);font-style:italic;margin:0}.photo-upload-field{display:flex;flex-direction:column;gap:12px}.photo-upload__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.photo-upload__label{font-size:14px;font-weight:600;color:var(--color-text-primary)}.photo-upload__count{font-size:13px;font-weight:600;color:var(--color-text-secondary);padding:4px 12px;background:#8e8e931f;border-radius:12px;transition:all .3s ease}.photo-upload__count.complete{background:#6b965626;color:var(--color-primary)}.photo-upload__dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border:2px dashed var(--color-border);border-radius:12px;background:#8e8e930a;cursor:pointer;transition:all .3s cubic-bezier(.25,.46,.45,.94);min-height:120px}.photo-upload__dropzone:hover{border-color:#6b9656;background:#6b96560d;transform:translateY(-2px)}.photo-upload__dropzone.drag-active{border-color:var(--color-primary);background:var(--color-primary-subtle);transform:scale(1.02);box-shadow:0 0 0 4px #6b96561a}.photo-upload__dropzone.has-photos{min-height:80px;padding:16px}.photo-upload__input{display:none}.photo-upload__icon{margin-bottom:12px;color:var(--color-text-secondary);transition:all .3s ease}.photo-upload__dropzone:hover .photo-upload__icon{color:var(--color-primary);transform:scale(1.1)}.photo-upload__icon .icon-success{color:#6b9656}.photo-upload__text{text-align:center}.photo-upload__primary{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.photo-upload__secondary{font-size:12px;color:var(--color-text-secondary);margin:0}.photo-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;margin-top:12px}.photo-preview{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--color-background-secondary);transition:all .3s ease;animation:photoFadeIn .3s ease-out}@keyframes photoFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.photo-preview:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-preview__remove{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:2}.photo-preview:hover .photo-preview__remove{opacity:1}.photo-preview__remove:hover{background:var(--color-error);transform:scale(1.1)}.photo-preview__overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);padding:8px;display:flex;align-items:center;justify-content:center}.photo-preview__number{font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}@media (max-width: 768px){.photo-preview-grid{grid-template-columns:repeat(3,1fr)}.photo-upload__dropzone{min-height:100px;padding:20px}}.service-download-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);margin-bottom:var(--space-16)}.download-section-header{display:flex;align-items:center;gap:var(--space-8);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-12)}.download-section-header svg{color:var(--color-primary)}.download-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-12)}.download-date-inputs{display:flex;gap:var(--space-12);flex-wrap:wrap}.download-date-field{display:flex;flex-direction:column;gap:var(--space-4)}.download-date-field label{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.download-date-field input[type=date]{padding:var(--space-8) var(--space-12);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:border-color var(--duration-fast) var(--ease-out);min-width:140px}.download-date-field input[type=date]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.download-date-field input[type=date]:disabled{background:var(--color-surface-secondary);color:var(--color-text-tertiary);cursor:not-allowed}.btn-download-service{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#fff;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn-download-service:hover:not(:disabled){background:var(--color-primary-hover)}.btn-download-service:active:not(:disabled){transform:scale(.98)}.btn-download-service:disabled{background:var(--color-border);border-color:var(--color-border);cursor:not-allowed;opacity:.7}.download-error-text{width:100%;font-size:var(--font-size-xs);color:var(--color-error);margin:var(--space-4) 0 0}.service-download-section--compact{padding:var(--space-8) var(--space-12);margin-bottom:var(--space-8)}.download-inline-controls{display:flex;align-items:center;gap:var(--space-12);flex-wrap:wrap}.download-date-group{display:flex;align-items:center;gap:var(--space-4)}.download-date-separator{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.download-date-input-compact{padding:var(--space-4) var(--space-8);font-size:var(--font-size-xs);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:120px}.download-date-input-compact:focus{outline:none;border-color:var(--color-primary)}.btn-download-compact{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-12);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:#fff;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.btn-download-compact:hover:not(:disabled){background:var(--color-primary-hover)}.btn-download-compact:disabled{background:var(--color-border);border-color:var(--color-border);cursor:not-allowed}.service-download-section--card{padding:0;overflow:hidden}.download-card-header{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-16);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border)}.download-card-header svg{color:var(--color-primary)}.download-card-header h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.download-card-body{padding:var(--space-16)}.download-date-inputs-vertical{display:flex;flex-direction:column;gap:var(--space-12);margin-bottom:var(--space-16)}.btn-download-card{display:flex;align-items:center;justify-content:center;gap:var(--space-8);width:100%;padding:var(--space-12) var(--space-16);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:#fff;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn-download-card:hover:not(:disabled){background:var(--color-primary-hover)}.btn-download-card:active:not(:disabled){transform:scale(.98)}.btn-download-card:disabled{background:var(--color-border);border-color:var(--color-border);cursor:not-allowed;opacity:.7}@media (max-width: 640px){.download-controls{flex-direction:column;align-items:stretch}.download-date-inputs{flex-direction:column}.download-date-field input[type=date]{width:100%}.btn-download-service{width:100%;justify-content:center}.download-inline-controls{flex-direction:column;align-items:stretch}.download-date-group{justify-content:space-between}.download-date-input-compact{flex:1}.btn-download-compact{width:100%;justify-content:center}}.fumigation-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .2s ease-out}.fumigation-modal-content{background:var(--color-background);border-radius:16px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.fumigation-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 24px 20px;border-bottom:1px solid var(--color-border)}.modal-header-content h4{font-size:20px;font-weight:700;color:var(--color-text-primary);margin:0 0 4px;display:flex;align-items:center;gap:10px}.modal-header-content p{font-size:13px;color:var(--color-text-secondary);margin:0}.modal-close{background:var(--color-background-secondary);border:none;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all .2s;flex-shrink:0}.modal-close:hover{background:var(--color-error);color:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.form-grid .form-group:nth-child(3){grid-column:1}.form-grid .form-row-inline{grid-column:2;display:flex;gap:12px}.form-row-inline .form-group{flex:1;margin-bottom:0}.photos-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h5{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0}.photos-count{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:var(--color-background-secondary);border-radius:12px;font-size:12px;font-weight:600;color:var(--color-text-secondary)}.fumigation-modal-tabs{display:none}.tab-button{position:relative;display:flex;align-items:center;gap:8px;padding:14px 20px;background:transparent;border:none;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;border-bottom:2px solid transparent}.tab-button:hover:not(:disabled){color:var(--color-text-primary);background:#00000008}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-button:disabled{opacity:.4;cursor:not-allowed}.tab-icon{display:flex;align-items:center}.tab-badge{background:var(--color-primary);color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.fumigation-modal-body{flex:1;overflow-y:auto;padding:20px 24px}.tab-content{animation:fadeIn .2s ease-out}.tab-info,.tab-evidence,.tab-summary{padding-top:4px}.form-section{margin-bottom:24px}.form-section h5{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 14px;display:flex;align-items:center;gap:8px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--color-text-primary);margin-bottom:7px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.fumigation-input{width:100%;padding:11px 14px;border:1.5px solid var(--color-border);border-radius:10px;font-size:14px;font-family:var(--font-family);color:var(--color-text-primary);background:var(--color-background);transition:all .2s}.fumigation-input:hover:not(:disabled){border-color:var(--color-primary)}.fumigation-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.fumigation-input.error{border-color:var(--color-error)}.fumigation-input--disabled{background:var(--color-background-secondary);color:var(--color-text-secondary);cursor:not-allowed}.fumigation-input:disabled{background:var(--color-background-secondary);cursor:not-allowed;opacity:.6}textarea.fumigation-input{resize:vertical;min-height:72px;max-height:150px;font-family:var(--font-family);line-height:1.5}.help-text{display:block;font-size:12px;color:var(--color-text-secondary);margin-top:4px}.error-text{display:block;font-size:12px;color:var(--color-error);margin-top:4px;font-weight:500}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-card{display:flex;gap:12px;padding:14px;background:var(--color-background-secondary);border-radius:10px;margin-top:16px}.info-card--frecuencia{background:var(--color-surface-secondary);border:1px solid var(--color-border)}.info-card svg{flex-shrink:0;color:var(--color-primary);margin-top:2px}.info-card div{font-size:13px;color:var(--color-text-secondary);line-height:1.6}.info-card strong{color:var(--color-text-primary);font-weight:600}.error-banner,.warning-banner{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;font-size:13px;margin-top:12px}.error-banner{background:#ff3b3014;color:var(--color-error);border:1px solid rgba(255,59,48,.2)}.warning-banner{background:#ff9f0a14;color:#ff9f0a;border:1px solid rgba(255,159,10,.2)}.evidence-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.evidence-header-content{display:flex;gap:12px}.evidence-header-content svg{color:var(--color-primary);flex-shrink:0}.evidence-header h5{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.evidence-header p{font-size:13px;color:var(--color-text-secondary);margin:0}.photos-badge{background:var(--color-primary);color:#fff;font-size:12px;font-weight:600;padding:6px 12px;border-radius:12px}.photos-grid-container{display:flex;flex-direction:column;gap:16px}.summary-section{margin-bottom:24px}.summary-section h5{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px;display:flex;align-items:center;gap:8px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:12px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.summary-value{font-size:14px;font-weight:500;color:var(--color-text-primary)}.summary-value--type{text-transform:capitalize}.photo-count{display:inline-flex;align-items:center;gap:6px}.summary-observaciones{margin-top:16px;padding:14px;background:var(--color-background-secondary);border-radius:8px}.summary-observaciones strong{display:block;font-size:13px;margin-bottom:6px;color:var(--color-text-primary)}.summary-observaciones p{font-size:13px;color:var(--color-text-secondary);margin:0;line-height:1.5}.validation-banner{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:10px;margin-top:16px}.validation-banner.error{background:#ff3b3014;border:1px solid rgba(255,59,48,.2)}.validation-banner.warning{background:#ff9f0a14;border:1px solid rgba(255,159,10,.2)}.validation-banner svg{flex-shrink:0;margin-top:2px}.validation-banner.error{color:var(--color-error)}.validation-banner.warning{color:#ff9f0a}.validation-banner strong{display:block;font-size:13px;font-weight:600;margin-bottom:4px}.validation-banner p{font-size:13px;margin:0}.fumigation-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-top:1px solid var(--color-border);background:var(--color-background);border-radius:0 0 16px 16px}.footer-info{flex:1}.validation-info{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.validation-info.error{color:var(--color-error)}.validation-info.warning{color:#ff9f0a}.validation-info.success{color:var(--color-success)}.footer-actions{display:flex;gap:12px}.btn{padding:11px 22px;border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px;line-height:1.4}.btn--secondary{background:var(--color-background-secondary);color:var(--color-text-primary);border:1.5px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-background-tertiary);border-color:#0003}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:#2a3b1d;transform:translateY(-1px);box-shadow:var(--shadow-md)}@media (max-width: 768px){.fumigation-modal-content{max-width:100%;width:100%;height:100dvh;max-height:100dvh;border-radius:0}.summary-grid,.form-row{grid-template-columns:1fr}}@media (max-width: 480px){.fumigation-modal-header,.fumigation-modal-body,.fumigation-modal-footer{padding:12px 16px}.fumigation-modal-footer{flex-direction:column-reverse;gap:8px}.fumigation-modal-footer button{width:100%;min-height:44px}}.photos-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10001;padding:20px;animation:fadeIn .2s ease-out}.photos-modal-content{background:var(--color-background);border-radius:16px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.photos-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;border-bottom:1px solid var(--color-border)}.photos-modal-header h4{font-size:20px;font-weight:700;color:var(--color-text-primary);margin:0 0 4px;display:flex;align-items:center;gap:10px}.photos-modal-header p{font-size:13px;color:var(--color-text-secondary);margin:0}.photos-modal-body{flex:1;overflow-y:auto;padding:24px}.photos-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center}.photos-empty p{margin:16px 0 0;font-size:15px;color:var(--color-text-secondary)}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.photo-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .2s}.photo-item:hover{transform:scale(1.05)}.photo-item img{width:100%;height:100%;object-fit:cover}.photo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;color:#fff;font-size:13px;font-weight:500}.photo-item:hover .photo-overlay{opacity:1}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:10002;padding:40px;animation:fadeIn .2s ease-out}.photo-viewer-content{position:relative;max-width:90vw;max-height:90vh}.photo-viewer-content img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:8px}.photo-viewer-close{position:absolute;top:-40px;right:0;background:#ffffff1a;border:none;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .2s}.photo-viewer-close:hover{background:#fff3}@media (max-width: 768px){.photos-modal-content{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.photos-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.photo-viewer{padding:20px}.photo-viewer-close{top:20px;right:20px}}.fumigation-assignments{display:flex;flex-direction:column;gap:24px}.fumigation-assignments__header{display:flex;justify-content:flex-end;align-items:center}.fumigation-assignments__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center}.fumigation-assignments__empty p{margin:16px 0 4px;font-size:17px;font-weight:600;color:var(--color-text-primary)}.fumigation-assignments__empty-hint{font-size:14px!important;color:var(--color-text-secondary)!important;font-weight:400!important;margin:0!important}.fumigation-assignments__content{display:flex;flex-direction:column;gap:24px}.fumigation-assignments__lugar-header{display:flex;justify-content:space-between;align-items:center;padding:12px 0;margin-bottom:16px;border-bottom:1px solid var(--color-border)}.fumigation-assignments__lugar-tipo{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.fumigation-assignments__lugar-count{font-size:12px;font-weight:600;color:var(--color-primary);padding:4px 12px;background:var(--color-primary-subtle);border-radius:12px}.fumigation-assignments__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.fumigation-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:12px;padding:16px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:12px}.fumigation-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014;border-color:var(--color-primary)}.fumigation-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.fumigation-card__tipo{font-size:13px;font-weight:600;color:var(--color-text-primary);flex:1}.fumigation-card__body{display:flex;flex-direction:column;gap:8px}.fumigation-card__row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.fumigation-card__row svg{flex-shrink:0;opacity:.6}.fumigation-card__productos{font-size:12px;color:var(--color-text-secondary);padding:8px;background:var(--color-background-secondary);border-radius:8px;margin-top:4px}.fumigation-card__productos strong{color:var(--color-text-primary);display:block;margin-bottom:4px}.fumigation-card__observaciones{font-size:12px;color:var(--color-text-secondary);padding:8px;background:var(--color-background-secondary);border-radius:8px;font-style:italic}.fumigation-card__footer{display:flex;align-items:center;justify-content:center;gap:6px;padding-top:12px;border-top:1px solid var(--color-border);font-size:12px;font-weight:500;color:var(--color-primary)}.assignment-card__status{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;text-transform:capitalize;white-space:nowrap}.assignment-card__status--programada{background:#007aff1a;color:var(--color-info)}.assignment-card__status--realizada{background:#ff9f0a1a;color:#ff9f0a}.assignment-card__status--reportada{background:#30d1581a;color:#30d158}@media (max-width: 768px){.fumigation-assignments__grid{grid-template-columns:1fr}}.fumigation-container{padding:24px;max-width:1400px;margin:0 auto}.fumigation-container--embedded{padding:0}.fumigation-header{margin-bottom:32px}.fumigation-header__content{margin-bottom:24px}.fumigation-header__title-group{display:flex;align-items:center;gap:16px}.fumigation-header__icon{width:48px;height:48px;padding:12px;background:var(--color-primary);border-radius:16px;color:#fff;flex-shrink:0}.fumigation-header__title{font-family:var(--font-family-display);font-size:32px;font-weight:700;color:var(--color-text-primary);margin:0;letter-spacing:-.02em}.fumigation-header__subtitle{font-size:15px;color:var(--color-text-secondary);margin:4px 0 0;font-weight:400}.fumigation-info{display:flex;gap:24px;padding:16px 20px;background:var(--color-background-secondary);border-radius:12px;margin-bottom:16px}.fumigation-info__item{display:flex;flex-direction:column;gap:4px}.fumigation-info__label{font-size:13px;font-weight:600;color:var(--color-text-primary)}.fumigation-info__value{font-size:12px;color:var(--color-text-secondary)}.fumigation-notice{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface-secondary);border-radius:10px;font-size:13px;color:var(--color-text-secondary);border:1px solid var(--color-border)}.fumigation-notice strong{color:var(--color-primary);font-weight:600}.fumigation-content{animation:fadeInUp .4s cubic-bezier(.4,0,.2,1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.fumigation-container{padding:16px}.fumigation-header__title{font-size:24px}.fumigation-info{flex-direction:column;gap:12px}}@media (max-width: 480px){.fumigation-container{padding:8px}.fumigation-header{flex-direction:column;align-items:stretch;gap:8px;padding:8px}.fumigation-header__title{font-size:18px}.fumigation-subtabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.fumigation-subtab{flex-shrink:0;white-space:nowrap;min-height:44px}}.schedule-v2{display:flex;flex-direction:column;gap:var(--space-16);animation:fadeInUp .3s var(--ease-out)}.schedule-header-v2{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding:var(--space-16) var(--space-20);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.schedule-header-info{display:flex;align-items:center;gap:var(--space-12);flex:1;min-width:0}.schedule-header-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:var(--radius-base);color:#fff;flex-shrink:0}.schedule-header-text{flex-shrink:0}.schedule-header-text h2{margin:0;font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--letter-spacing-tight)}.schedule-header-text p{display:none}.schedule-header-badges{display:flex;align-items:center;gap:var(--space-8);margin-left:var(--space-16)}.header-badge{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-12);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);white-space:nowrap}.header-badge.success{background:var(--color-success-light);color:var(--color-success)}.header-badge.info{background:var(--color-info-light);color:var(--color-info)}.header-badge.warning{background:var(--color-warning-light);color:var(--color-warning)}.schedule-header-stats{display:none}.schedule-stat-pill{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-12);background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.schedule-stat-pill .stat-number{font-weight:var(--font-weight-semibold);color:var(--color-text)}.schedule-stat-pill .stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.schedule-header-actions{display:flex;gap:var(--space-8);flex-shrink:0}.btn-add-v2{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-16);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-family-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);white-space:nowrap}.btn-add-v2:hover{background:var(--color-primary-hover)}.btn-add-v2.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-add-v2.secondary:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong);color:var(--color-text)}.schedule-container,.schedule-unified{padding:20px;max-width:1600px;margin:0 auto}.schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.schedule-title h2{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:24px;color:var(--color-text)}.schedule-title p{margin:0;color:var(--color-text-secondary);font-size:14px}.schedule-actions{display:flex;gap:12px}@media (max-width: 1024px){.schedule-header-badges{display:none}}@media (max-width: 768px){.schedule-header-v2{flex-direction:column;align-items:stretch;gap:var(--space-12);padding:var(--space-12)}.schedule-header-info{min-width:auto}.schedule-header-badges{display:none}.schedule-header-actions{flex-direction:row;justify-content:stretch}.btn-add-v2{flex:1;justify-content:center}.schedule-tabs-unified{width:100%}.tab-unified{flex:1;justify-content:center}.assignments-table-container{overflow-x:auto}.assignments-table{min-width:600px}}.schedule-tabs-unified{display:inline-flex;gap:0;background:var(--color-primary);padding:4px;border-radius:var(--radius-md);border:none}.tab-unified{display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-8) var(--space-16);background:transparent;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#ffffffb3;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.tab-unified:hover{background:#ffffff1a;color:#fff}.tab-unified.active{background:var(--color-primary);color:#fff}.tab-badge{padding:2px 6px;background:#fff3;color:inherit;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.tab-unified.active .tab-badge{background:#ffffff40;color:#fff}.schedule-content-unified{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:var(--space-20);min-height:300px}.assignments-list{width:100%}.assignments-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.assignments-table thead{position:sticky;top:0;z-index:1}.assignments-table th{padding:var(--space-12) var(--space-16);text-align:left;background:var(--color-surface-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.assignments-table td{padding:var(--space-12) var(--space-16);vertical-align:middle;border-bottom:1px solid var(--color-border);color:var(--color-text)}.assignments-table tbody tr{transition:background var(--duration-fast) var(--ease-out)}.assignments-table tbody tr:hover{background:var(--color-hover-overlay)}.assignments-table tbody tr:last-child td{border-bottom:none}.assignments-table .cell-name{font-weight:var(--font-weight-medium);color:var(--color-text)}.assignments-table .cell-meta{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.assignments-table .cell-badge{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);background:var(--color-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.assignments-table .cell-badge.success{background:var(--color-success-light);color:var(--color-success)}.assignments-table .cell-badge.info{background:var(--color-info-light);color:var(--color-info)}.assignments-table .cell-actions{display:flex;gap:var(--space-4);justify-content:flex-end}.assignments-table-container{max-height:500px;overflow-y:auto;border-radius:var(--radius-base);border:1px solid var(--color-border)}.assignments-table-container::-webkit-scrollbar{width:8px}.assignments-table-container::-webkit-scrollbar-track{background:var(--color-secondary)}.assignments-table-container::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-12);max-height:500px;overflow-y:auto;padding-right:4px}.assignments-grid::-webkit-scrollbar{width:8px}.assignments-grid::-webkit-scrollbar-track{background:var(--color-surface-secondary);border-radius:10px}.assignments-grid::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:10px}.assignments-grid::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.assignment-card-unified{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);transition:all var(--duration-fast) var(--ease-out)}.assignment-card-unified:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.assignment-card-unified.compact{padding:var(--space-12)}.assignment-card-unified.compact .assignment-header-unified{margin-bottom:var(--space-8)}.assignment-card-unified.compact .assignment-type-icon{width:32px;height:32px;border-radius:var(--radius-sm)}.assignment-card-unified.compact .assignment-title-unified h4{font-size:var(--font-size-sm);margin-bottom:2px}.assignment-card-unified.compact .assignment-details-unified{padding-top:var(--space-8);margin-top:var(--space-8);gap:var(--space-6)}.assignment-card-unified.compact .detail-item{font-size:var(--font-size-xs)}.assignment-header-unified{display:flex;align-items:flex-start;gap:var(--space-10);margin-bottom:var(--space-10)}.assignment-type-icon{width:36px;height:36px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;flex-shrink:0}.assignment-type-icon.route{background:var(--color-primary);color:#fff}.assignment-type-icon.cleaning{background:var(--color-info);color:#fff}.assignment-title-unified{flex:1;min-width:0}.assignment-title-unified h4{margin:0 0 4px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-date{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.assignment-metadata{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap;margin-top:2px}.week-badge,.days-badge{display:inline-flex;align-items:center;padding:2px var(--space-8);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.week-badge{background:var(--color-success-light);color:var(--color-success)}.days-badge{background:var(--color-info-light);color:var(--color-info);font-family:var(--font-family-mono)}.assignment-actions-unified{display:flex;gap:var(--space-4)}.assignment-details-unified{display:flex;flex-direction:column;gap:var(--space-6);padding-top:var(--space-10);margin-top:var(--space-10);border-top:1px solid var(--color-border)}.detail-item{display:flex;align-items:center;gap:var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.detail-item svg{flex-shrink:0;color:var(--color-text-tertiary)}.assignment-notes{margin-top:var(--space-10);padding-top:var(--space-10);border-top:1px solid var(--color-border)}.assignment-notes p{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.5}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-40) var(--space-20);text-align:center}.empty-state svg{color:var(--color-text-tertiary);margin-bottom:var(--space-12)}.empty-state h3{margin:0 0 var(--space-4) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.empty-state p{margin:0 0 var(--space-16) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.photos-section{margin-top:24px;padding-top:24px;border-top:2px solid var(--color-surface-secondary)}.photos-section h4{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--color-text)}.photos-help{margin:0 0 16px;font-size:13px;color:var(--color-text-secondary)}@media (max-width: 768px){.schedule-actions{width:100%;flex-direction:column}.schedule-actions button{width:100%}.schedule-tabs-unified{flex-direction:column}.assignments-grid{grid-template-columns:1fr}}.schedule-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;gap:16px;flex-wrap:wrap}.view-mode-selector{display:flex;gap:4px;padding:4px;background:var(--color-surface-secondary);border-radius:10px}.view-mode-btn{padding:8px 20px;background:transparent;border:none;border-radius:8px;font-size:14px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.view-mode-btn:hover{color:var(--color-text);background:var(--color-hover-overlay)}.view-mode-btn.active{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-xs)}.date-navigation{display:flex;gap:12px}.period-label{font-weight:700;color:var(--color-text);font-size:16px;letter-spacing:-.01em;text-transform:capitalize}.schedule-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-40) var(--space-20);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.schedule-loading .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.schedule-loading p{margin-top:var(--space-12);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-4) var(--space-8);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);text-transform:capitalize}.status-badge.status-programada,.status-badge.status-pendiente{background:var(--color-warning-light);color:var(--color-warning)}.status-badge.status-completada{background:var(--color-success-light);color:var(--color-success)}.status-badge.status-en_progreso{background:var(--color-info-light);color:var(--color-info)}.schedule-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:24px}.schedule-grid.week-view{grid-template-columns:repeat(7,1fr)}.schedule-day-view{display:flex;justify-content:center;margin-bottom:24px}.schedule-day-view .schedule-day.single-day{width:100%;max-width:800px;min-height:600px}.schedule-day{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;min-height:400px;display:flex;flex-direction:column}.schedule-day.today{border:2px solid var(--color-success);box-shadow:0 4px 6px #22c55e33}.day-header{padding:12px;border-bottom:2px solid var(--color-surface-secondary);text-align:center;background:linear-gradient(to bottom,var(--color-surface-secondary),white)}.schedule-day.today .day-header{background:linear-gradient(to bottom,var(--color-success-light),var(--color-success-light))}.day-name{font-weight:600;color:var(--color-text);font-size:14px;text-transform:uppercase}.schedule-day.today .day-name{color:var(--color-success)}.day-date{font-size:24px;font-weight:700;color:var(--color-text);margin-top:4px}.day-assignments{flex:1;padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.no-assignments{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:13px}.assignment-card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:6px;padding:12px;font-size:13px;transition:all .2s;position:relative}.assignment-card:hover{background:#fff;box-shadow:0 2px 4px #0000001a;transform:translateY(-2px)}.assignment-route{font-weight:600;color:var(--color-text);margin-bottom:8px;display:flex;align-items:center;gap:6px}.assignment-time,.assignment-conductor,.assignment-vehicle{color:var(--color-text-secondary);margin-bottom:4px;display:flex;align-items:center;gap:6px}.assignment-actions{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border)}.conflict-alert{background:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:6px;padding:12px;margin-bottom:16px;display:flex;gap:12px;color:var(--color-error-contrast)}.conflict-alert svg{flex-shrink:0;color:var(--color-error)}.conflict-alert strong{display:block;margin-bottom:8px}.conflict-alert ul{margin:0;padding-left:20px}.conflict-alert li{margin-bottom:4px}.modal-large{max-width:600px}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:600;color:var(--color-text);margin-bottom:6px;font-size:14px}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:6px;font-size:14px;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-success);box-shadow:0 0 0 3px #22c55e1a}.form-group textarea{resize:vertical;font-family:inherit}@media (max-width: 1200px){.schedule-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width: 768px){.schedule-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.schedule-controls{flex-direction:column;gap:12px}}@media (max-width: 480px){.schedule-grid{grid-template-columns:1fr}}.schedule-month-view{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.month-header{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid var(--color-surface-secondary)}.month-weekday{text-align:center;font-weight:700;font-size:13px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:8px 0}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.month-day{aspect-ratio:1;background:var(--color-surface-secondary);border:2px solid var(--color-border);border-radius:8px;padding:8px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;min-height:80px}.month-day:hover{background:#fff;border-color:var(--color-primary);transform:scale(1.05);box-shadow:var(--shadow-sm);z-index:1}.month-day.other-month{background:var(--color-surface-secondary);opacity:.4}.month-day.other-month:hover{opacity:.7}.month-day.today{background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.month-day.today .month-day-number{color:#fff;font-weight:800}.month-day.today:hover{transform:scale(1.08);box-shadow:var(--shadow-md)}.month-day-number{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:4px}.month-day-indicator{margin-top:auto;width:100%;display:flex;justify-content:center;align-items:center}.assignments-count{background:var(--color-primary);color:#fff;font-size:11px;font-weight:700;padding:4px 8px;border-radius:10px;min-width:24px;text-align:center;box-shadow:var(--shadow-xs)}.month-day.today .assignments-count{background:#fff;color:var(--color-primary)}@media (max-width: 1024px){.month-day{min-height:70px;padding:6px}.month-day-number{font-size:16px}}@media (max-width: 768px){.schedule-controls{flex-direction:column;align-items:stretch}.view-mode-selector{justify-content:center}.period-label{text-align:center;order:-1}.date-navigation{justify-content:center}.month-day{min-height:60px;padding:4px}.month-day-number{font-size:14px}.assignments-count{font-size:10px;padding:2px 6px}.month-weekday{font-size:11px;padding:6px 0}}.photos-section-enhanced{background:linear-gradient(135deg,var(--color-background) 0%,var(--color-surface-secondary) 100%);border:2px solid var(--color-border);border-radius:16px;padding:24px;margin-top:24px;animation:slideDown .4s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px) scale(.98);max-height:0}to{opacity:1;transform:translateY(0) scale(1);max-height:2000px}}.photos-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:20px;border-bottom:2px solid var(--color-border)}.photos-header-icon{width:48px;height:48px;background:var(--color-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:var(--shadow-sm)}.photos-header-content{flex:1;min-width:0}.photos-header-content h4{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--color-primary);letter-spacing:-.02em}.photos-header-content p{margin:0;font-size:13px;color:var(--color-text-tertiary);line-height:1.5}.photos-progress-indicator{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d}.progress-number{font-size:28px;font-weight:800;color:var(--color-primary);line-height:1}.progress-total{font-size:16px;font-weight:600;color:var(--color-text-muted)}.progress-label{font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.photos-progress-bar{width:100%;height:8px;background:var(--color-border);border-radius:999px;overflow:hidden;margin-bottom:24px;position:relative;box-shadow:inset 0 2px 4px #0000000f}.progress-fill{height:100%;background:var(--color-primary);border-radius:999px;transition:width .5s cubic-bezier(.16,1,.3,1);position:relative;box-shadow:var(--shadow-sm)}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.photos-grid-enhanced{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}.photo-card-enhanced{background:#fff;border:2px solid var(--color-border);border-radius:12px;overflow:hidden;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 3px #0000000d}.photo-card-enhanced:hover{border-color:var(--color-border-strong);box-shadow:0 8px 16px #0000001a;transform:translateY(-2px)}.photo-card-header{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,var(--color-background) 0%,var(--color-surface-secondary) 100%);border-bottom:2px solid var(--color-border)}.photo-step-badge{width:36px;height:36px;background:var(--color-border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--color-text-tertiary);flex-shrink:0;transition:all .3s ease}.photo-step-badge.completed{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);color:#fff;box-shadow:0 4px 12px #10b9814d;animation:completePulse .5s ease}@keyframes completePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.photo-card-header h5{margin:0;font-size:15px;font-weight:600;color:var(--color-primary);flex:1}.photo-card-body{padding:16px}.photo-card-footer{padding:12px 16px;background:var(--color-background);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.photo-count{font-size:12px;font-weight:600;color:var(--color-success);display:flex;align-items:center;gap:6px}.photo-count:before{content:"✓";display:inline-flex;width:18px;height:18px;background:var(--color-success);color:#fff;border-radius:50%;align-items:center;justify-content:center;font-size:12px;font-weight:700}.error-message-enhanced{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:8px;color:var(--color-error);font-size:13px;font-weight:500;margin-top:16px;animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.error-message-enhanced svg{flex-shrink:0}@media (max-width: 768px){.photos-section-enhanced{padding:16px}.photos-header{flex-direction:column;gap:12px}.photos-progress-indicator{align-self:stretch;flex-direction:row;justify-content:space-between}.photos-grid-enhanced{grid-template-columns:1fr}.photo-card-header,.photo-card-body{padding:12px}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.photo-card-enhanced:nth-child(1){animation:slideInUp .4s ease .1s both}.photo-card-enhanced:nth-child(2){animation:slideInUp .4s ease .2s both}.photo-card-enhanced:nth-child(3){animation:slideInUp .4s ease .3s both}.helpers-manager{margin-top:20px}.helpers-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--color-text)}.helpers-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.helper-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;transition:all .2s ease}.helper-item:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.helper-name{flex:1;font-size:14px;color:var(--color-text);font-weight:500}.helper-input{flex:1;border:1px solid var(--color-primary);background:#fff;padding:6px 10px;border-radius:6px;font-size:14px;color:var(--color-text);outline:none}.helper-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.add-helper-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:var(--color-surface-secondary);border:2px dashed var(--color-border-strong);border-radius:8px;color:var(--color-text-tertiary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.add-helper-btn:hover{background:var(--color-border);border-color:var(--color-text-muted);color:var(--color-text-secondary)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-8);background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.btn-icon:hover{background:var(--color-hover-overlay);color:var(--color-text);border-color:var(--color-border-strong)}.btn-icon--sm{padding:var(--space-6)}.btn-icon--danger{color:var(--color-error)}.btn-icon--danger:hover{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.btn-icon--success{background:var(--color-success);color:#fff;border-color:var(--color-success)}.btn-icon--success:hover{background:var(--color-success);opacity:.9}.weekday-selector{margin-top:20px;padding:16px;background:var(--color-background);border:1px solid var(--color-border);border-radius:12px}.weekday-selector-label{display:block;margin-bottom:4px;font-size:14px;font-weight:600;color:var(--color-text)}.weekday-selector-help{margin:0 0 12px;font-size:13px;color:var(--color-text-secondary)}.weekdays-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-bottom:12px}.weekday-item{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:#fff;border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease;position:relative;-webkit-user-select:none;user-select:none}.weekday-item:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.weekday-item.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.weekday-checkbox{width:18px;height:18px;cursor:pointer}.weekday-label{font-size:14px;font-weight:600;cursor:pointer}.weekday-item.selected .weekday-label{color:#fff}.weekday-check{position:absolute;top:4px;right:4px;color:#fff}.selected-days-summary{padding:12px;background:#fff;border:1px solid var(--color-border);border-radius:8px;display:flex;align-items:flex-start;gap:8px}.summary-label{font-size:13px;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.summary-value{font-size:13px;color:var(--color-text);font-weight:500;flex:1}@media (max-width: 768px){.weekdays-grid{grid-template-columns:repeat(2,1fr)}.helpers-list{gap:6px}.helper-item{padding:8px 10px}}.weekday-picker-container{margin-top:20px;position:relative}.weekday-picker-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.weekday-picker-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#8e8e931f;border:1px solid rgba(142,142,147,.2);border-radius:12px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);font-size:16px;color:var(--color-text)}.weekday-picker-trigger:hover{background:#8e8e932e;border-color:#8e8e934d}.weekday-picker-trigger.open{background:#ffffffe6;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.trigger-content{display:flex;align-items:center;gap:10px;flex:1}.trigger-text{font-size:15px;font-weight:500;color:var(--color-text)}.chevron{transition:transform .3s cubic-bezier(.16,1,.3,1);color:var(--color-text-muted)}.chevron.rotated{transform:rotate(180deg)}.weekday-picker-dropdown{position:absolute;top:calc(100% + 10px);left:0;right:0;background:#fffffffa;backdrop-filter:blur(60px);-webkit-backdrop-filter:blur(60px);border:1px solid rgba(142,142,147,.12);border-radius:18px;box-shadow:0 24px 48px -12px #0000001f,0 12px 24px -8px #00000014,0 0 0 1px #ffffff1a;z-index:1100;overflow:hidden;animation:dropdownSlideIn .3s cubic-bezier(.16,1,.3,1);transform-origin:top center}.weekday-picker-dropdown.portaled{position:fixed!important;z-index:10000!important}@keyframes dropdownSlideIn{0%{opacity:0;transform:scale(.96) translateY(-12px)}to{opacity:1;transform:scale(1) translateY(0)}}.weekday-picker-header{padding:20px 24px 18px;border-bottom:1px solid rgba(142,142,147,.08);background:linear-gradient(180deg,#fffc,#fff6)}.weekday-picker-header h4{margin:0 0 6px;font-size:16px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.weekday-picker-header p{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.weekday-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;padding:20px 24px}.weekday-picker-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 10px;background:#8e8e930f;border:2px solid transparent;border-radius:14px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative;-webkit-user-select:none;user-select:none}.weekday-picker-day:hover{background:#8e8e931f;border-color:#8e8e9326;transform:translateY(-3px);box-shadow:0 6px 16px -4px #0000001a}.weekday-picker-day.selected{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-color:transparent;box-shadow:var(--shadow-md),0 0 0 1px #ffffff1a inset;transform:translateY(-3px)}.day-letter{font-size:16px;font-weight:700;color:var(--color-text);line-height:1}.weekday-picker-day.selected .day-letter{color:#fff}.day-full{font-size:11px;font-weight:500;color:var(--color-text-muted);line-height:1}.weekday-picker-day.selected .day-full{color:#fffc}.day-check{position:absolute;top:6px;right:6px;width:18px;height:18px;background:#ffffff4d;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;animation:checkPop .3s cubic-bezier(.16,1,.3,1)}@keyframes checkPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.weekday-picker-day.blocked{background:#8e8e9314;border-color:#ff3b3033;cursor:not-allowed;opacity:.6}.weekday-picker-day.blocked:hover{transform:none;background:#8e8e9314;box-shadow:none}.weekday-picker-day.blocked .day-letter{color:var(--color-error)}.weekday-picker-day.blocked .day-full{color:var(--color-error);opacity:.7}.day-blocked-label{position:absolute;bottom:4px;left:50%;transform:translate(-50%);font-size:9px;font-weight:600;color:var(--color-error);background:#ff3b301a;padding:2px 6px;border-radius:6px;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.weekday-picker-footer{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:linear-gradient(180deg,#fff6,#fffc);border-top:1px solid rgba(142,142,147,.08)}.selected-count{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.weekday-picker-done{padding:10px 24px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border:none;border-radius:12px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm),0 0 0 1px #ffffff1a inset}.weekday-picker-done:hover{transform:translateY(-2px);box-shadow:var(--shadow-md),0 0 0 1px #ffffff26 inset}.weekday-picker-done:active{transform:translateY(0)}@media (max-width: 768px){.weekday-picker-grid{grid-template-columns:repeat(4,1fr)}.weekday-picker-day{padding:10px 6px}.day-letter{font-size:14px}.day-full{font-size:10px}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:900;display:flex;align-items:center;justify-content:center;padding:20px;animation:appleFadeIn .3s cubic-bezier(.16,1,.3,1)}@keyframes appleFadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay .modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;box-shadow:0 25px 50px -12px #00000040;width:100%!important;max-width:680px!important;max-height:90vh!important;height:auto!important;overflow:hidden!important;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1);position:relative;display:flex!important;flex-direction:column!important}.modal-overlay .modal-content>form{display:flex!important;flex-direction:column!important;flex:1!important;min-height:0!important;overflow:hidden!important}.modal-overlay .modal-content.modal-large{max-width:800px!important}.modal-overlay .modal-header{display:flex!important;justify-content:space-between;align-items:center;padding:24px 28px!important;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0!important;min-height:80px!important;max-height:80px!important}.modal-overlay .modal-header h3{font-family:var(--font-family-display);font-size:20px;font-weight:700;color:var(--color-text);margin:0;letter-spacing:var(--letter-spacing-tight);display:flex;align-items:center;gap:8px}.header-content{display:flex;align-items:center;gap:20px;flex:1;min-width:0;overflow:hidden}.header-icon{display:none}.header-text{flex:1;min-width:0;overflow:hidden}.modal-title{font-family:var(--font-family-display);font-size:20px;font-weight:700;color:var(--color-text);margin:0;letter-spacing:var(--letter-spacing-tight);display:flex;align-items:center;gap:8px}.modal-subtitle{display:none}.modal-close{background:var(--color-secondary);border:none;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:var(--color-text-secondary);transition:all .2s cubic-bezier(.4,0,.2,1);flex-shrink:0;margin-left:16px}.modal-close:hover{background:var(--color-hover-overlay);color:var(--color-text);transform:scale(1.1)}.modal-overlay .modal-body{padding:20px 28px 24px!important;flex:1!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;position:relative;min-height:0!important;max-height:calc(90vh - 150px)!important}@media (min-width: 768px){.modal-body{padding:24px 48px}}.modal-body::-webkit-scrollbar{width:10px}.modal-body::-webkit-scrollbar-track{background:transparent;margin:8px 0}.modal-body::-webkit-scrollbar-thumb{background:#8e8e9340;border-radius:10px;border:2px solid transparent;background-clip:padding-box}.modal-body::-webkit-scrollbar-thumb:hover{background:#8e8e9366;background-clip:padding-box}.modal-overlay .modal-footer{display:flex!important;justify-content:flex-end;align-items:center;padding:16px 28px!important;border-top:1px solid var(--color-border);background:var(--color-surface);gap:12px;flex-shrink:0!important;min-height:70px!important;max-height:70px!important}.footer-actions{display:flex;gap:10px;flex-shrink:0}.form-grid-2col{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px;overflow:visible}.form-group-card{background:#fff9;border:1px solid rgba(142,142,147,.1);border-radius:16px;padding:16px;transition:all .3s cubic-bezier(.16,1,.3,1);overflow:visible;position:relative}.form-group-card:hover{background:#fffc;border-color:var(--color-border);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.form-full-width{grid-column:1 / -1}.card-label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--color-primary);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(142,142,147,.08)}.card-label svg{width:18px;height:18px;flex-shrink:0}.form-group label{display:block;margin-bottom:10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--letter-spacing-normal)}.form-group input,.form-group select,.form-group textarea{width:100%;min-width:0;max-width:100%;background:#fffc;border:2px solid rgba(142,142,147,.15);border-radius:12px;padding:14px 18px;font-size:var(--font-size-base);color:var(--color-text);font-family:var(--font-family-base);transition:all .25s cubic-bezier(.16,1,.3,1);outline:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-sizing:border-box}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#8e8e9340;background:#ffffffe6;box-shadow:0 2px 8px -2px #00000014}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fffffff2;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-subtle),var(--shadow-sm);transform:translateY(-1px)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-tertiary)}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='16' height='10' viewBox='0 0 16 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L8 8L15 1' stroke='%233D5229' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;background-size:16px 10px;padding-right:50px;cursor:pointer}.form-group select:hover{background-image:url("data:image/svg+xml,%3Csvg width='16' height='10' viewBox='0 0 16 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L8 8L15 1' stroke='%23556B2F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.form-group select:focus{background-image:url("data:image/svg+xml,%3Csvg width='16' height='10' viewBox='0 0 16 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L8 8L15 1' stroke='%233D5229' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.form-group textarea{resize:vertical;min-height:70px;max-height:150px;font-family:inherit;line-height:1.6;overflow-y:auto}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px}.btn{padding:10px 24px;font-size:14px;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);letter-spacing:-.01em;border:none;display:flex;align-items:center;gap:6px;white-space:nowrap;position:relative;overflow:hidden}.btn--primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #30d15840}.btn--primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn--primary:hover:not(:disabled):before{left:100%}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 4px 16px #30d15859;transform:translateY(-1px)}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--primary:disabled{opacity:.5;cursor:not-allowed;transform:none;background:var(--color-text-muted);box-shadow:none}.btn--outline{background:var(--color-secondary);border:1.5px solid var(--color-border);color:var(--color-text)}.btn--outline:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong);transform:translateY(-1px)}.btn--sm{padding:10px 20px;font-size:var(--font-size-sm)}.error-text{display:block;margin-top:8px;font-size:var(--font-size-xs);color:var(--color-error);font-weight:var(--font-weight-medium);animation:appleShake .4s cubic-bezier(.16,1,.3,1)}@keyframes appleShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--color-error);background:#ff3b300f}.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus{box-shadow:0 0 0 4px #ff3b301f}@media (max-width: 768px){.modal-overlay{padding:0;align-items:flex-end}.modal-content{border-radius:24px 24px 0 0;max-height:92vh;animation:appleSlideUpMobile .4s cubic-bezier(.16,1,.3,1)}@keyframes appleSlideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:20px 24px;min-height:100px;max-height:100px}.header-icon{width:56px;height:56px;border-radius:16px}.modal-title{font-size:var(--font-size-xl)}.modal-subtitle{font-size:14px}.modal-close{width:36px;height:36px;font-size:18px}.modal-body{padding:20px}.form-grid-2col{grid-template-columns:1fr;gap:16px}.form-group-card{padding:16px}.card-label{font-size:13px;margin-bottom:12px;padding-bottom:10px}.modal-footer{padding:16px 20px;min-height:auto;max-height:none}.footer-actions{flex-direction:column-reverse}.form-row{grid-template-columns:1fr;gap:16px}.btn{width:100%}}@media (max-width: 480px){.modal-content{max-height:95vh;border-radius:20px 20px 0 0}.modal-header{padding:16px 20px;min-height:90px;max-height:90px}.header-icon{width:48px;height:48px;border-radius:14px}.modal-title{font-size:18px}.modal-subtitle{font-size:13px}.modal-body{padding:16px}.form-group-card{padding:14px}.card-label{font-size:12px}.form-group input,.form-group select,.form-group textarea{padding:12px 14px;font-size:14px}}.modal-overlay .modal-content{contain:layout style paint}.modal-overlay .modal-body>*{max-width:100%;box-sizing:border-box}.modal-overlay .form-grid-2col,.modal-overlay .form-group-card,.modal-overlay .form-full-width{max-width:100%;overflow:visible;box-sizing:border-box}.photo-stage-indicators{display:flex;gap:16px;justify-content:center;margin-top:20px;padding:16px;background:linear-gradient(135deg,var(--color-success-light) 0%,var(--color-success-light) 100%);border-radius:12px;border:2px solid var(--color-success)}.stage-indicator{display:flex;align-items:center;gap:8px}.stage-badge{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.stage-indicator span{font-size:14px;font-weight:600;color:var(--color-primary)}.success-modal-content{background:#fff;border-radius:24px;padding:48px 40px;max-width:480px;width:90%;text-align:center;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .4s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.success-icon-wrapper{width:100px;height:100px;background:var(--color-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:#fff;animation:successPulse 2s infinite}.success-modal-content h2{margin:0 0 16px;font-size:28px;font-weight:700;color:var(--color-primary);letter-spacing:-.02em}.success-modal-content p{margin:0 0 32px;font-size:16px;color:var(--color-primary-hover);line-height:1.6}.success-modal-content .btn{min-width:160px;padding:14px 28px;font-size:16px;font-weight:600}.modal-overlay,.modal-overlay *,.modal-overlay *:before,.modal-overlay *:after{box-sizing:border-box}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .3s ease-out}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:600px;max-height:90vh;height:auto;display:flex;flex-direction:column;animation:slideUp .3s ease-out;overflow:hidden}.modal-content.modal-large{max-width:950px;max-height:95vh}.modal-header{padding:24px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;background:var(--color-surface-secondary);border-radius:16px 16px 0 0;flex-shrink:0}.header-content{display:flex;align-items:center;gap:16px;flex:1}.header-icon{width:48px;height:48px;border-radius:12px;background:var(--color-primary);display:flex;align-items:center;justify-content:center;color:#fff}.header-text{flex:1}.modal-title{margin:0;font-size:20px;font-weight:600;color:var(--color-text)}.modal-subtitle{margin:4px 0 0;font-size:14px;color:var(--color-text-secondary)}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:8px}.modal-close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.modal-close:hover{background:#0000000d;color:var(--color-text)}.modal-body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:24px;min-height:0;max-height:calc(95vh - 200px)}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.modal-footer{padding:20px 24px;border-top:1px solid var(--color-border);background:var(--color-surface-secondary);border-radius:0 0 16px 16px;flex-shrink:0}.footer-actions{display:flex;justify-content:flex-end;gap:12px}.btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px;border:none;outline:none}.btn--primary{background:var(--color-success);color:#fff;box-shadow:0 1px 3px #0000001a}.btn--primary:hover:not(:disabled){background:var(--color-success-dark);box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--outline{background:#fff;color:var(--color-text);border:1.5px solid var(--color-border-strong)}.btn--outline:hover{background:var(--color-surface-secondary);border-color:var(--color-text-muted)}.form-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-group-card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:12px;padding:20px;min-width:0;overflow:hidden}.form-group-card.form-full-width{grid-column:1 / -1}.card-label{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--color-text);margin-bottom:16px;font-size:14px}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--color-text);font-size:14px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1.5px solid var(--color-border-strong);border-radius:8px;font-size:14px;font-family:inherit;color:var(--color-text);background:#fff;transition:all .2s ease;outline:none}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--color-text-muted)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px;cursor:pointer}.form-group select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-surface-secondary)}.form-group textarea{resize:vertical;min-height:100px;font-family:inherit;line-height:1.5}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--color-error)}.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.error-text{display:block;margin-top:6px;font-size:13px;color:var(--color-error);font-weight:500}.photos-section-enhanced{margin-top:24px;padding:20px;background:var(--color-success-light);border-radius:12px;border:2px solid var(--color-primary)}.photos-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.photos-header-icon{width:40px;height:40px;border-radius:10px;background:var(--color-primary);display:flex;align-items:center;justify-content:center;color:#fff}.photos-header-content{flex:1}.photos-header-content h4{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--color-primary)}.photos-header-content p{margin:0;font-size:13px;color:var(--color-primary-hover)}.photos-progress-indicator{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.progress-count{display:flex;align-items:baseline;gap:2px}.progress-number{font-size:24px;font-weight:700;color:var(--color-primary)}.progress-total{font-size:16px;color:var(--color-text-secondary)}.progress-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin-top:2px}.photos-progress-bar{height:8px;background:#ffffff80;border-radius:4px;overflow:hidden;margin-bottom:16px}.progress-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.photo-stage-indicators{display:flex;justify-content:center;gap:20px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(107,150,86,.3)}.stage-indicator{display:flex;flex-direction:column;align-items:center;gap:6px}.stage-badge{width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;box-shadow:var(--shadow-sm)}.stage-indicator span{font-size:12px;font-weight:500;color:var(--color-primary)}.error-message-enhanced{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--color-error-light);border:1px solid var(--color-error);border-radius:8px;color:var(--color-error);font-size:13px;margin-top:12px}.success-modal-content{background:#fff;border-radius:16px;padding:40px;max-width:400px;text-align:center;box-shadow:0 20px 60px #0000004d}.success-icon-wrapper{width:80px;height:80px;margin:0 auto 24px;border-radius:50%;background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);display:flex;align-items:center;justify-content:center;color:#fff}.success-modal-content h2{margin:0 0 12px;font-size:24px;color:var(--color-text)}.success-modal-content p{margin:0 0 24px;color:var(--color-text-secondary);font-size:14px}@media (max-width: 1024px){.form-grid-2col{grid-template-columns:1fr}.modal-content.modal-large{max-width:95%}}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.modal-content{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.modal-content.modal-large{max-width:100%;max-height:100dvh;height:100dvh}.modal-overlay{padding:0}.modal-body{max-height:calc(100dvh - 180px)}}@media (max-width: 480px){.modal-header,.modal-body,.modal-footer{padding:12px 16px}.modal-footer{flex-direction:column-reverse;gap:8px}.modal-footer button{width:100%;min-height:44px;justify-content:center}}.form-group-card *{box-sizing:border-box}.form-group input[type=date],.form-group input[type=time],.form-group input[type=datetime-local]{max-width:100%}.modal-body{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.form-group textarea{max-width:100%;width:100%;box-sizing:border-box}.form-group select{max-width:100%;text-overflow:ellipsis}.modal-content span,.modal-content p,.modal-content li,.modal-content label{word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.modal-body input,.modal-body select,.modal-body textarea,.modal-body button{max-width:100%}.modal-body>div,.form-grid-2col>div,.form-group-card>div{max-width:100%}.route-stats-panel{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-20);box-shadow:var(--shadow-sm)}.route-stats-panel.empty{padding:var(--space-32);text-align:center;color:var(--color-text-secondary)}.stats-header{margin-bottom:var(--space-16);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-border)}.stats-header h4{margin:0;font-family:var(--font-family-display);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--letter-spacing-tight)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-12);margin-bottom:var(--space-16)}.stat-card{display:flex;align-items:center;gap:var(--space-10);padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.stat-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);background:var(--color-surface)}.stat-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-md);flex-shrink:0}.stat-content{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:var(--letter-spacing-tight)}.stat-value.highlight{color:var(--color-primary)}.current-point-info{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--space-14)}.current-point-info h5{margin:0 0 var(--space-12);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);text-transform:uppercase;letter-spacing:.05em}.current-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-10)}.current-stat{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6) 0}.current-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.current-value{font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.current-value.coords{font-size:10px;font-family:var(--font-family-mono);letter-spacing:-.01em}.time-range{display:flex;justify-content:space-between;gap:var(--space-16);padding-top:var(--space-14);border-top:1px solid var(--color-border)}.time-info{display:flex;flex-direction:column;gap:var(--space-4)}.time-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.time-value{font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.current-stats{grid-template-columns:1fr}.time-range{flex-direction:column}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.route-stats-panel{padding:var(--space-md)}}@media (prefers-color-scheme: dark){.stat-card{background:var(--color-background-elevated)}.current-point-info{background:var(--color-surface-secondary)}}.route-playback-container{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-background);z-index:9999;display:flex;flex-direction:column;overflow:hidden}.playback-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-20) var(--space-24);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.header-info h3{margin:0;font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:var(--letter-spacing-tight)}.device-name{margin:var(--space-4) 0 0;font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.header-actions{display:flex;gap:var(--space-12);align-items:center}.date-selector{position:relative}.date-button{display:inline-flex;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-14);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast) var(--ease-out)}.date-button:hover{border-color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-sm)}.date-picker-dropdown{position:absolute;top:calc(100% + var(--space-8));right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12);box-shadow:var(--shadow-lg);z-index:100}.date-picker-dropdown input[type=date]{padding:var(--space-8) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-text);background:var(--color-surface)}.export-button{display:inline-flex;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-14);background:var(--color-text);color:var(--color-surface);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--duration-fast) var(--ease-out)}.export-button:hover:not(:disabled){background:var(--color-text-secondary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.export-button:disabled{opacity:.4;cursor:not-allowed}.close-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.close-button:hover{background:var(--color-error);color:var(--color-surface);border-color:var(--color-error)}.playback-content{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.playback-map-container{flex:1;position:relative}.playback-map{width:100%;height:100%}.animated-vehicle-marker{position:relative}.vehicle-marker-container{position:relative;width:40px;height:40px;transition:transform .5s ease-in-out}.vehicle-marker-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:var(--color-primary-subtle);animation:pulse 2s infinite}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:1}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.vehicle-marker-icon{position:relative;width:40px;height:40px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.playback-controls{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-24) var(--space-32);box-shadow:var(--shadow-lg)}.current-point-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-12);padding:var(--space-16);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-20)}.point-stat{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-10) var(--space-12);background:var(--color-surface);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.point-stat:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.point-stat svg{color:var(--color-text-secondary);flex-shrink:0}.point-stat .stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;margin-right:auto}.point-stat .stat-value{font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.point-stat .stat-value.coords{font-size:11px;font-family:var(--font-family-mono);letter-spacing:-.01em}.timeline-container{margin-bottom:var(--space-20)}.timeline-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-10);font-size:var(--font-size-sm)}.timeline-label{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.timeline-progress{color:var(--color-text);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.timeline-slider{width:100%;height:12px;border-radius:6px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;position:relative}.timeline-slider::-webkit-slider-runnable-track{width:100%;height:12px;border-radius:6px;background:transparent}.timeline-slider::-moz-range-track{width:100%;height:12px;border-radius:6px;background:transparent}.timeline-slider::-moz-range-progress{height:12px;border-radius:6px;background:var(--color-primary)}.timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:var(--color-primary);cursor:pointer;box-shadow:0 2px 8px #0003;transition:all .2s ease;margin-top:-7px;border:3px solid var(--color-surface)}.timeline-slider::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:3px solid var(--color-surface);box-shadow:0 2px 8px #0003;transition:all .2s ease}.timeline-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:var(--shadow-md)}.timeline-slider::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:var(--shadow-md)}.timeline-slider::-webkit-slider-thumb:active{transform:scale(1.05)}.timeline-slider::-moz-range-thumb:active{transform:scale(1.05)}.control-buttons-wrapper{display:flex;justify-content:space-between;align-items:center;gap:var(--space-20);flex-wrap:wrap}.playback-controls-group{display:flex;justify-content:center;align-items:center;gap:var(--space-12);flex:1}.action-buttons-group{display:flex;align-items:center;gap:var(--space-10);padding-left:var(--space-20);border-left:1px solid var(--color-border)}.date-selector-inline{position:relative}.date-picker-dropdown-inline{position:absolute;bottom:calc(100% + var(--space-10));right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12);box-shadow:var(--shadow-lg);z-index:1000}.date-picker-dropdown-inline input[type=date]{padding:var(--space-8) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-text);background:var(--color-surface);cursor:pointer}.control-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.control-btn:hover{background:var(--color-surface);border-color:var(--color-text);transform:scale(1.05);box-shadow:var(--shadow-sm)}.control-btn:active{transform:scale(.95)}.play-btn{width:60px;height:60px;background:var(--color-text);color:var(--color-surface);border:none}.play-btn:hover{background:var(--color-text-secondary);transform:scale(1.08);box-shadow:var(--shadow-md)}.speed-btn{gap:var(--space-4);width:auto;padding:0 var(--space-16);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs)}.action-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.action-btn:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-text);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.action-btn:active:not(:disabled){transform:translateY(0)}.action-btn:disabled{opacity:.4;cursor:not-allowed}.playback-stats{max-height:220px;overflow-y:auto;background:var(--color-background);border-top:1px solid var(--color-border)}.playback-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-16)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-text);border-radius:50%;animation:spin .8s linear infinite}.playback-loading p{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.playback-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-16);padding:var(--space-40)}.playback-error p{color:var(--color-error);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.playback-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-16);padding:var(--space-40)}.playback-empty p{color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.retry-button{padding:var(--space-10) var(--space-20);background:var(--color-text);color:var(--color-surface);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:all var(--duration-fast) var(--ease-out)}.retry-button:hover{background:var(--color-text-secondary);transform:translateY(-1px);box-shadow:var(--shadow-md)}@media (max-width: 768px){.playback-header{flex-direction:column;align-items:flex-start;gap:var(--space-12);padding:var(--space-16)}.header-actions{width:100%;justify-content:space-between}.playback-controls{padding:var(--space-20)}.current-point-bar{grid-template-columns:repeat(2,1fr);padding:var(--space-12);gap:var(--space-10)}.point-stat{padding:var(--space-8) var(--space-10)}.point-stat .stat-label{font-size:10px}.point-stat .stat-value{font-size:12px}.control-buttons-wrapper{flex-direction:column;gap:var(--space-16)}.playback-controls-group{width:100%;gap:var(--space-10)}.action-buttons-group{width:100%;justify-content:center;padding-left:0;border-left:none;border-top:1px solid var(--color-border);padding-top:var(--space-16)}.control-btn{width:42px;height:42px}.play-btn{width:54px;height:54px}.action-btn{width:40px;height:40px}.playback-stats{max-height:180px}.timeline-info{font-size:var(--font-size-xs)}}@media (max-width: 480px){.current-point-bar{grid-template-columns:1fr}.playback-controls-group{gap:var(--space-8)}.control-btn{width:38px;height:38px}.play-btn{width:50px;height:50px}}.fleet-management-v2{display:flex;flex-direction:column;gap:24px;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}.fleet-header-v2{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:0 4px 20px #0000000f;flex-wrap:wrap}.fleet-header-info{display:flex;align-items:center;gap:20px;flex:1;min-width:280px}.fleet-header-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:var(--radius-base);color:#fff;box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1)}.fleet-header-v2:hover .fleet-header-icon{transform:scale(1.05) rotate(3deg);box-shadow:var(--shadow-lg)}.fleet-header-text h2{margin:0 0 4px;font-family:var(--font-family-display);font-size:28px;font-weight:700;background:var(--color-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.fleet-header-text p{margin:0;font-size:14px;color:var(--color-text-secondary);font-weight:500}.fleet-header-stats{display:flex;gap:12px;flex-wrap:wrap}.fleet-stat-pill{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 24px;background:#6b728014;border:2px solid rgba(107,114,128,.12);border-radius:var(--radius-base);transition:all .3s cubic-bezier(.4,0,.2,1);min-width:90px}.fleet-stat-pill:hover{transform:translateY(-2px);box-shadow:0 8px 16px #00000014}.fleet-stat-pill.success{background:#34c7591a;border-color:#34c75933}.fleet-stat-pill.info{background:#007aff1a;border-color:#007aff33}.fleet-stat-pill .stat-number{font-size:24px;font-weight:700;color:var(--color-text);line-height:1;letter-spacing:-.02em}.fleet-stat-pill.success .stat-number{color:var(--color-success)}.fleet-stat-pill.info .stat-number{color:var(--color-info)}.fleet-stat-pill .stat-label{font-size:11px;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.btn-add-v2{display:flex;align-items:center;gap:10px;padding:14px 28px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:15px;font-weight:600;font-family:var(--font-family-base);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm);white-space:nowrap}.btn-add-v2:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--color-primary)}.btn-add-v2:active{transform:translateY(0)}.fleet-grid-v2{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.fleet-empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-base);text-align:center}.fleet-empty-state .empty-icon{width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:var(--color-hover-overlay);border-radius:var(--radius-base);color:var(--color-primary);margin-bottom:24px}.fleet-empty-state h3{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--color-text)}.fleet-empty-state p{margin:0 0 24px;font-size:14px;color:var(--color-text-secondary);max-width:300px}.vehicle-card-v2{display:flex;flex-direction:column;background:linear-gradient(135deg,#ffffff 0%,var(--color-surface-secondary) 100%);border:1px solid var(--color-border);border-radius:var(--radius-base);overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 12px #0000000a}.vehicle-card-v2:hover{transform:translateY(-6px);box-shadow:0 20px 40px #0000001f;border-color:var(--color-border)}.vehicle-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-divider)}.vehicle-card-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:var(--radius-base);color:#fff;box-shadow:var(--shadow-sm)}.vehicle-card-actions{display:flex;gap:8px}.btn-icon-action{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid rgba(0,0,0,.08);border-radius:var(--radius-base);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.btn-icon-action:hover{background:var(--color-surface-secondary);color:var(--color-text);border-color:#00000026;transform:scale(1.05)}.btn-icon-action.danger:hover{background:#ff3b301a;color:var(--color-error);border-color:#ff3b304d}.vehicle-card-body{padding:20px;flex:1}.vehicle-name{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.vehicle-placa{margin:0 0 16px;font-size:14px;font-weight:600;color:var(--color-text-secondary);font-family:var(--font-family-mono, monospace);letter-spacing:.5px}.vehicle-gps-status{display:flex;flex-direction:column;gap:8px}.gps-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;width:fit-content}.gps-badge.online{background:#34c7591f;color:var(--color-success);border:1px solid rgba(52,199,89,.2)}.gps-badge.offline{background:#ff95001f;color:var(--color-warning);border:1px solid rgba(255,149,0,.2)}.gps-badge.no-gps{background:#8e8e931f;color:var(--color-text-muted);border:1px solid rgba(142,142,147,.2)}.gps-location,.gps-update{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted)}.vehicle-card-footer{padding:16px 20px;background:#00000005;border-top:1px solid rgba(0,0,0,.04)}.btn-view-history,.btn-configure-gps{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:var(--radius-base);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-view-history{background:var(--color-primary);color:#fff;border:none;box-shadow:var(--shadow-sm)}.btn-view-history:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-configure-gps{background:#fff;color:var(--color-primary);border:1px solid var(--color-border)}.btn-configure-gps:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong)}.modal-overlay-v2{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.modal-content-v2{background:#fff;border-radius:var(--radius-lg);max-width:480px;width:100%;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideIn .3s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header-v2{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid rgba(0,0,0,.06);background:var(--color-surface-secondary)}.modal-header-v2 h2{margin:0;font-size:20px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.btn-close-v2{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0000000d;border:none;border-radius:var(--radius-base);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.btn-close-v2:hover{background:#0000001a;color:var(--color-text)}.modal-form-v2{padding:28px}.form-group-v2{margin-bottom:20px}.form-group-v2 label{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--color-text)}.form-group-v2 input{width:100%;padding:14px 16px;border:2px solid rgba(0,0,0,.08);border-radius:var(--radius-base);font-size:15px;font-family:inherit;transition:all .2s ease;background:var(--color-surface-secondary)}.form-group-v2 input:focus{outline:none;border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 2px var(--color-focus-ring)}.form-group-v2 input::placeholder{color:var(--color-text-muted)}.form-group-v2 input.input-warning{border-color:var(--color-warning);background:#ff95000d}.form-group-v2 input.input-warning:focus{box-shadow:0 0 0 4px #ff95001a}.imei-status{font-size:11px;font-weight:600;padding:3px 8px;border-radius:var(--radius-sm)}.imei-status.valid{background:#34c7591f;color:var(--color-success)}.imei-status.partial{background:#ff95001f;color:var(--color-warning)}.form-divider-v2{display:flex;align-items:center;gap:10px;margin:28px 0 20px;padding-top:20px;border-top:1px solid rgba(0,0,0,.06);font-size:13px;font-weight:600;color:var(--color-primary)}.form-hint-v2{display:block;margin-top:8px;font-size:12px;color:var(--color-text-muted);line-height:1.4}.form-error-v2{padding:14px 16px;background:#ff3b3014;border:1px solid rgba(255,59,48,.2);border-radius:var(--radius-base);color:var(--color-error);font-size:14px;font-weight:500;margin-bottom:20px}.modal-actions-v2{display:flex;gap:12px;justify-content:flex-end;margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,0,0,.06)}.btn-secondary-v2,.btn-primary-v2{padding:12px 24px;border-radius:var(--radius-base);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary-v2{background:#fff;border:2px solid rgba(0,0,0,.1);color:var(--color-text)}.btn-secondary-v2:hover{background:var(--color-surface-secondary);border-color:#00000026}.btn-primary-v2{background:var(--color-primary);border:none;color:#fff;box-shadow:var(--shadow-sm)}.btn-primary-v2:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary-v2:disabled,.btn-secondary-v2:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 1024px){.fleet-header-v2{padding:24px}.fleet-header-text h2{font-size:24px}}@media (max-width: 768px){.fleet-header-v2{flex-direction:column;align-items:stretch;gap:20px;padding:20px}.fleet-header-info{min-width:auto}.fleet-header-stats{justify-content:center}.btn-add-v2{width:100%;justify-content:center}.fleet-grid-v2{grid-template-columns:1fr}.modal-content-v2{max-width:100%;margin:10px;border-radius:var(--radius-base)}.modal-form-v2{padding:20px}.modal-actions-v2{flex-direction:column}.btn-secondary-v2,.btn-primary-v2{width:100%;justify-content:center}}@media (max-width: 480px){.fleet-header-v2{padding:12px;gap:12px}.fleet-header-text h2{font-size:20px}.fleet-stat-pill{font-size:12px;padding:6px 10px}.fleet-card-v2{padding:12px}.fleet-grid-v2{gap:8px}.vehicle-actions button{min-width:44px;min-height:44px}}.calendar-v2{width:100%;height:100%;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;animation:fadeInUp .5s ease-out}.calendar-header-v2{background:var(--color-primary);border-radius:16px;padding:28px 32px;margin:24px 24px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;border:1px solid var(--color-border);box-shadow:var(--shadow-sm),var(--shadow-xs),inset 0 1px 0 var(--color-white-alpha-15)}.calendar-header-info{display:flex;align-items:center;gap:20px}.calendar-header-icon{width:56px;height:56px;background:linear-gradient(135deg,var(--color-white-alpha-25) 0%,var(--color-white-alpha-15) 100%);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-md),inset 0 1px 0 var(--color-white-alpha-25);border:1px solid var(--color-white-alpha-15)}.calendar-header-text h2{font-family:var(--font-family-display);font-size:26px;font-weight:700;color:#fff;margin:0 0 6px;letter-spacing:-.02em;text-shadow:0 1px 2px var(--color-active-overlay)}.calendar-header-text p{color:#ffffffd9;margin:0;font-size:14px;font-weight:500}.calendar-header-stats{display:flex;gap:12px;flex-wrap:wrap}.calendar-stat-pill{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;align-items:center;min-width:85px;transition:all .2s ease}.calendar-stat-pill:hover{background:#ffffff29;border-color:#ffffff47;transform:translateY(-1px)}.calendar-stat-pill .stat-number{font-size:22px;font-weight:700;color:#fff;line-height:1;margin-bottom:4px}.calendar-stat-pill .stat-label{font-size:11px;color:#fffffff2;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.calendar-stat-pill.success,.calendar-stat-pill.info,.calendar-stat-pill.warning{background:#ffffff1a;border-color:#ffffff2e}.calendar-stat-pill.success .stat-number,.calendar-stat-pill.info .stat-number,.calendar-stat-pill.warning .stat-number{color:#fff}@media (max-width: 768px){.calendar-header-v2{padding:20px;margin:16px;flex-direction:column;align-items:flex-start}.calendar-header-stats{width:100%;justify-content:flex-start;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.calendar-stat-pill{flex:0 1 auto;min-width:0;padding:8px 4px;overflow:hidden}.calendar-stat-pill .stat-number{font-size:18px}.calendar-stat-pill .stat-label{font-size:9px;letter-spacing:0;line-height:1.1;text-align:center;word-break:break-word;overflow-wrap:anywhere;white-space:normal;max-width:100%}.calendar-header-text h2{font-size:22px}.calendar-header-icon{width:48px;height:48px}}.calendar-container{width:100%;height:100%;background:var(--color-surface);border-radius:12px;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;overflow:hidden}.calendar-header{padding:24px;border-bottom:1px solid var(--color-border)}.calendar-title h2{display:flex;align-items:center;gap:12px;margin:0 0 8px;font-size:24px;font-weight:600;color:var(--color-text)}.calendar-title p{margin:0;font-size:14px;color:var(--color-text-secondary)}.calendar-controls{padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.view-mode-selector{display:flex;gap:8px;background:var(--color-surface);padding:4px;border-radius:8px;box-shadow:var(--shadow-xs)}.view-mode-btn{padding:8px 16px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;color:var(--color-text-secondary);transition:all .2s ease}.view-mode-btn:hover{background:var(--color-surface-secondary);color:var(--color-text)}.view-mode-btn.active{background:var(--color-info);color:#fff;box-shadow:var(--shadow-sm)}.period-label{flex:1;text-align:center;font-size:16px;font-weight:600;color:var(--color-text)}.date-navigation{display:flex;gap:8px}.calendar-filters{padding:16px 24px;display:flex;align-items:center;gap:16px;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border)}.filters-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--color-text-secondary)}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:2px solid var(--color-border);background:var(--color-surface);border-radius:20px;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-secondary);transition:all .2s ease;display:flex;align-items:center;gap:6px}.filter-btn:hover{border-color:var(--color-info);color:var(--color-info)}.filter-btn.active{border-color:var(--color-info);background:var(--color-info);color:#fff}.calendar-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px}.calendar-loading p{font-size:14px;color:var(--color-text-secondary)}.calendar-day-view{flex:1;padding:24px;overflow-y:auto}.calendar-single-day{max-width:800px;margin:0 auto}.single-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--color-border)}.single-day-header h3{margin:0;font-size:20px;font-weight:600;color:var(--color-text)}.activity-count{font-size:14px;color:var(--color-text-secondary);font-weight:500}.single-day-activities{display:flex;flex-direction:column;gap:16px}.no-activities-message{text-align:center;padding:48px;color:var(--color-text-secondary)}.activity-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px;transition:all .2s ease;box-shadow:var(--shadow-xs)}.activity-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.activity-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.activity-time-badge{background:var(--color-surface-secondary);padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600;color:var(--color-text)}.activity-card-content h4{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--color-text)}.activity-meta{display:flex;gap:8px;margin-bottom:8px}.activity-type-badge{padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;text-transform:uppercase;background:var(--color-border);color:var(--color-text-secondary)}.activity-card.type-recoleccion{border-left:4px solid var(--color-primary);background:linear-gradient(to right,var(--color-success-light) 0%,var(--color-surface) 8px)}.activity-card.type-fumigacion{border-left:4px solid var(--color-warning);background:linear-gradient(to right,var(--color-warning-light) 0%,var(--color-surface) 8px)}.activity-card.type-limpieza{border-left:4px solid var(--color-info);background:linear-gradient(to right,var(--color-info-light) 0%,var(--color-surface) 8px)}.activity-card.type-mantenimiento{border-left:4px solid var(--color-error);background:linear-gradient(to right,var(--color-error-light) 0%,var(--color-surface) 8px)}.activity-type-badge.type-recoleccion{background:var(--color-success-light);color:var(--color-success-contrast)}.activity-type-badge.type-fumigacion{background:var(--color-warning-light);color:var(--color-warning-contrast)}.activity-type-badge.type-limpieza{background:var(--color-info-light);color:var(--color-info-contrast)}.activity-type-badge.type-mantenimiento{background:var(--color-error-light);color:var(--color-error-contrast)}.status-badge{padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;text-transform:capitalize}.status-programada{background:var(--color-info-light);color:var(--color-info-contrast)}.status-en-progreso{background:var(--color-warning-light);color:var(--color-warning-contrast)}.status-completado{background:var(--color-success-light);color:var(--color-success-contrast)}.status-pendiente{background:var(--color-error-light);color:var(--color-error-contrast)}.status-cancelada{background:var(--color-surface-secondary);color:var(--color-text-secondary)}.activity-description{margin:8px 0 0;font-size:14px;color:var(--color-text-secondary);line-height:1.5}.calendar-week-view{flex:1;padding:24px;overflow-y:auto}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;max-width:1400px;margin:0 auto}.calendar-week-day{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:12px;min-height:200px;cursor:pointer;transition:all .2s ease}.calendar-week-day:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.calendar-week-day.today{border:2px solid var(--color-info);background:var(--color-info-light)}.calendar-week-day.overloaded{border-color:var(--color-warning)}.week-day-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--color-border)}.day-name{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase}.day-number{font-size:16px;font-weight:700;color:var(--color-text)}.week-day-activities{display:flex;flex-direction:column;gap:8px}.no-activities{text-align:center;padding:16px;font-size:13px;color:var(--color-text-muted)}.activity-item{display:flex;align-items:flex-start;gap:8px;padding:8px;background:var(--color-surface-secondary);border-radius:8px;transition:background .2s ease}.activity-item:hover{background:var(--color-border)}.activity-details{flex:1;min-width:0}.activity-time{font-size:11px;font-weight:600;color:var(--color-text-secondary);margin-bottom:2px}.activity-title{font-size:12px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-overflow-card{padding:8px;background:var(--color-info);color:#fff;border-radius:8px;text-align:center;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.activity-overflow-card:hover{background:var(--color-info-dark);transform:scale(1.02)}.activity-overflow-card small{display:block;font-size:10px;font-weight:400;margin-top:2px;opacity:.9}.calendar-month-view{flex:1;padding:24px;overflow-y:auto}.month-header{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:12px;max-width:1400px;margin-left:auto;margin-right:auto}.month-weekday{text-align:center;font-size:12px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;padding:8px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;max-width:1400px;margin:0 auto}.calendar-month-day{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:8px;min-height:100px;cursor:pointer;transition:all .2s ease;position:relative}.calendar-month-day:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.calendar-month-day.today{border:2px solid var(--color-info);background:var(--color-info-light)}.calendar-month-day.other-month{opacity:.3;pointer-events:none}.calendar-month-day.overloaded{border-color:var(--color-warning);background:var(--color-warning-light)}.month-day-number{font-size:14px;font-weight:700;color:var(--color-text);margin-bottom:8px}.month-day-activities{display:flex;flex-wrap:wrap;gap:4px}.activity-overflow{padding:4px 8px;background:var(--color-info);color:#fff;border-radius:8px;font-size:11px;font-weight:700}.activity-count-badge{position:absolute;top:8px;right:8px;background:var(--color-info);color:#fff;width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.activity-icon{display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:16px;flex-shrink:0}.activity-icon-sm{width:24px;height:24px;font-size:14px}.activity-icon-md{width:32px;height:32px;font-size:18px}.activity-icon-lg{width:40px;height:40px;font-size:22px}.activity-icon-recoleccion{background:var(--color-success-light)}.activity-icon-fumigacion{background:var(--color-warning-light)}.activity-icon-limpieza{background:var(--color-info-light)}.activity-icon-default{background:var(--color-surface-secondary)}.day-details-modal .modal-content{max-width:800px}.modal-header-content h3{margin:0 0 4px;font-size:20px;font-weight:600;color:var(--color-text)}.modal-subtitle{margin:0;font-size:14px;color:var(--color-text-secondary)}.modal-filters{padding:16px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.filter-buttons-inline{display:flex;gap:8px;flex-wrap:wrap}.filter-btn-sm{padding:6px 12px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;cursor:pointer;font-size:12px;font-weight:500;color:var(--color-text-secondary);transition:all .2s ease;display:flex;align-items:center;gap:4px}.filter-btn-sm:hover{border-color:var(--color-info);color:var(--color-info)}.filter-btn-sm.active{border-color:var(--color-info);background:var(--color-info);color:#fff}.day-details-body{padding:24px;max-height:500px;overflow-y:auto}.no-activities-modal{text-align:center;padding:48px;color:var(--color-text-secondary)}.activities-list{display:flex;flex-direction:column;gap:16px}.activity-detail-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px;transition:all .2s ease}.activity-detail-card:hover{box-shadow:var(--shadow-sm)}.activity-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.activity-icon-time{display:flex;align-items:center;gap:12px}.activity-time-text{font-size:14px;font-weight:600;color:var(--color-text-secondary)}.activity-badges{display:flex;gap:8px}.activity-type-badge-modal{padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;background:var(--color-border);color:var(--color-text-secondary)}.activity-detail-body h4{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--color-text)}.activity-detail-description{margin:8px 0;font-size:14px;color:var(--color-text-secondary);line-height:1.5}.activity-detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.meta-item{display:flex;flex-direction:column;gap:4px}.meta-item.full-width{grid-column:1 / -1}.meta-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase}.meta-value{font-size:14px;font-weight:500;color:var(--color-text)}@media (max-width: 1024px){.week-grid,.month-grid,.month-header{grid-template-columns:repeat(4,1fr)}}@media (max-width: 768px){.calendar-controls{flex-direction:column;align-items:stretch}.period-label{text-align:left}.week-grid{grid-template-columns:1fr}.month-grid,.month-header{grid-template-columns:repeat(7,1fr);gap:4px}.calendar-month-day{min-height:60px;padding:4px}.month-day-number{font-size:12px}.activity-icon-sm{width:18px;height:18px;font-size:12px}}@media (max-width: 480px){.calendar-container{padding:8px}.calendar-header{flex-direction:column;align-items:stretch;gap:8px;padding:8px}.calendar-header h2{font-size:18px}.calendar-header-v2{padding:14px;margin:8px;gap:12px}.calendar-header-text h2{font-size:18px}.calendar-header-text p{font-size:12px}.calendar-stat-pill{padding:6px 2px}.calendar-stat-pill .stat-number{font-size:16px}.calendar-stat-pill .stat-label{font-size:8px}.calendar-month-day{min-height:44px;padding:2px}.month-day-number{font-size:10px}.activity-icon-sm{width:14px;height:14px;font-size:9px}.view-toggle{flex-wrap:wrap;gap:4px}.view-toggle button{flex:1 1 auto;min-height:44px}}.maintenance-task-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-20);animation:mtm-fadeIn .2s ease-out}@keyframes mtm-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes mtm-slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.maintenance-task-modal__container{background:var(--color-surface);border-radius:var(--radius-lg);max-width:900px;width:100%;max-height:85vh;overflow:auto;box-shadow:var(--shadow-xl);animation:mtm-slideUp .3s ease-out}.maintenance-task-modal__container::-webkit-scrollbar{width:8px}.maintenance-task-modal__container::-webkit-scrollbar-track{background:var(--color-surface-secondary);border-radius:var(--radius-lg)}.maintenance-task-modal__container::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:var(--radius-lg)}.maintenance-task-modal__container::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.maintenance-task-modal__header{position:sticky;top:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-20) var(--space-24);display:flex;align-items:center;justify-content:space-between;border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:1}.maintenance-task-modal__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text)}.maintenance-task-modal__close-btn{background:none;border:none;cursor:pointer;padding:var(--space-8);color:var(--color-text-muted);border-radius:var(--radius-base);transition:all var(--duration-fast, .15s) ease}.maintenance-task-modal__close-btn:hover{background:var(--color-hover-overlay);color:var(--color-text-secondary)}.maintenance-task-modal__form{padding:var(--space-24)}.maintenance-task-modal__field-group{margin-bottom:var(--space-20)}.maintenance-task-modal__field-group--compact{margin-bottom:var(--space-12)}.maintenance-task-modal__field-group--large{margin-bottom:var(--space-24)}.maintenance-task-modal__label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-8);color:var(--color-text)}.maintenance-task-modal__label--small{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-6);color:var(--color-text-secondary)}.maintenance-task-modal__input{width:100%;padding:var(--space-8) var(--space-12);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);background:var(--color-surface);transition:border-color var(--duration-fast, .15s) ease;font-family:var(--font-family-base)}.maintenance-task-modal__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.maintenance-task-modal__input:disabled{background:var(--color-surface-secondary);color:var(--color-text-secondary);cursor:not-allowed}.maintenance-task-modal__input--operational{font-weight:var(--font-weight-semibold)}.maintenance-task-modal__input--total{border-color:var(--color-primary);font-weight:var(--font-weight-bold);background:var(--color-primary-light);color:var(--color-primary);text-align:center}.maintenance-task-modal__select{width:100%;padding:var(--space-8) var(--space-12);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);background:var(--color-surface);cursor:pointer;transition:border-color var(--duration-fast, .15s) ease;font-family:var(--font-family-base)}.maintenance-task-modal__select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.maintenance-task-modal__select:disabled{background:var(--color-surface-secondary);color:var(--color-text-secondary);cursor:not-allowed}.maintenance-task-modal__select--small{font-size:var(--font-size-sm)}.maintenance-task-modal__select--package{border-color:var(--color-success-light)}.maintenance-task-modal__select--package-active{color:var(--color-primary)}.maintenance-task-modal__select--package-inactive{color:var(--color-text-tertiary)}.maintenance-task-modal__textarea{width:100%;padding:var(--space-12);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);font-size:var(--font-size-base);font-family:var(--font-family-base);color:var(--color-text);background:var(--color-surface);resize:vertical;transition:border-color var(--duration-fast, .15s) ease}.maintenance-task-modal__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.maintenance-task-modal__textarea:disabled{background:var(--color-surface-secondary);color:var(--color-text-secondary);cursor:not-allowed}.maintenance-task-modal__textarea--small{font-size:var(--font-size-sm);padding:var(--space-10)}.maintenance-task-modal__hint{margin:var(--space-6) 0 0 0;font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:1.4}.maintenance-task-modal__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-16);margin-bottom:var(--space-24)}.maintenance-task-modal__grid--operational{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-12);margin-bottom:var(--space-12)}.maintenance-task-modal__operational-section{background:var(--color-surface-secondary);padding:var(--space-20);border-radius:var(--radius-md);margin-bottom:var(--space-24);border:1px solid var(--color-border)}.maintenance-task-modal__section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);margin-bottom:var(--space-16);color:var(--color-text)}.maintenance-task-modal__save-preset-container{margin-top:var(--space-12);text-align:right}.maintenance-task-modal__save-preset-btn{padding:var(--space-8) var(--space-16);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-sm);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-8);font-weight:var(--font-weight-semibold);transition:all var(--duration-fast, .15s) ease}.maintenance-task-modal__save-preset-btn--active{background:var(--color-primary)}.maintenance-task-modal__save-preset-btn--active:hover{background:var(--color-primary-hover)}.maintenance-task-modal__save-preset-btn--disabled{background:var(--color-text-muted);cursor:not-allowed}.maintenance-task-modal__photo-section{border-top:1px solid var(--color-border);padding-top:var(--space-24);margin-bottom:var(--space-20)}.maintenance-task-modal__photo-header{display:flex;align-items:center;gap:var(--space-10);margin-bottom:var(--space-8)}.maintenance-task-modal__photo-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0;color:var(--color-text)}.maintenance-task-modal__photo-counter{font-size:var(--font-size-xs);padding:var(--space-4) var(--space-10);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold)}.maintenance-task-modal__photo-counter--complete{background:var(--color-success-light);color:var(--color-success-dark)}.maintenance-task-modal__photo-counter--incomplete{background:var(--color-warning-light);color:var(--color-warning-dark)}.maintenance-task-modal__photo-description{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-16)}.maintenance-task-modal__photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12)}.maintenance-task-modal__photo-slot{position:relative;aspect-ratio:1;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8);overflow:hidden;transition:all var(--duration-fast, .15s) ease}.maintenance-task-modal__photo-slot--filled{border:2px solid var(--color-success);background:var(--color-success-light);cursor:default}.maintenance-task-modal__photo-slot--empty{border:2px dashed var(--color-text-muted);background:var(--color-surface);cursor:pointer}.maintenance-task-modal__photo-slot--empty:hover{border-color:var(--color-primary);background:var(--color-surface-secondary)}.maintenance-task-modal__photo-image{width:100%;height:100%;object-fit:cover}.maintenance-task-modal__photo-remove-btn{position:absolute;top:var(--space-8);right:var(--space-8);background:#ef4444e6;color:#fff;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:all var(--duration-fast, .15s) ease}.maintenance-task-modal__photo-remove-btn:hover{background:var(--color-error);box-shadow:var(--shadow-md)}.maintenance-task-modal__photo-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000b3);padding:var(--space-20) var(--space-10) var(--space-10);text-align:center}.maintenance-task-modal__photo-overlay-label{color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.maintenance-task-modal__photo-number{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}.maintenance-task-modal__photo-number--before{background:var(--color-error-light)}.maintenance-task-modal__photo-number--during{background:var(--color-warning-light)}.maintenance-task-modal__photo-number--after{background:var(--color-success-light)}.maintenance-task-modal__photo-number-text{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.maintenance-task-modal__photo-number-text--before{color:var(--color-error-dark)}.maintenance-task-modal__photo-number-text--during{color:var(--color-warning-dark)}.maintenance-task-modal__photo-number-text--after{color:var(--color-success-dark)}.maintenance-task-modal__photo-slot-label{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.maintenance-task-modal__photo-slot-label--before{color:var(--color-error-dark)}.maintenance-task-modal__photo-slot-label--during{color:var(--color-warning-dark)}.maintenance-task-modal__photo-slot-label--after{color:var(--color-success-dark)}.maintenance-task-modal__photo-slot-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.maintenance-task-modal__file-input{display:none}.maintenance-task-modal__upload-status{padding:var(--space-12);background:var(--color-info-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-info-dark);display:flex;align-items:center;gap:var(--space-8);margin-top:var(--space-12)}.maintenance-task-modal__photo-complete{margin-top:var(--space-16);padding:var(--space-12) var(--space-16);background:var(--color-success-light);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--space-10)}.maintenance-task-modal__photo-complete-text{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-success-dark)}.maintenance-task-modal__view-photos{border-top:1px solid var(--color-border);padding-top:var(--space-24);margin-bottom:var(--space-20);background:var(--color-surface);padding:var(--space-24);border-radius:var(--radius-md);border:1px solid var(--color-success-light)}.maintenance-task-modal__view-photos-header{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--space-20);color:var(--color-text);display:flex;align-items:center;gap:var(--space-10)}.maintenance-task-modal__view-stage{margin-bottom:var(--space-20)}.maintenance-task-modal__view-stage:last-child{margin-bottom:0}.maintenance-task-modal__view-stage-label{display:flex;align-items:center;gap:var(--space-8);margin-bottom:var(--space-12);padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-md);width:fit-content}.maintenance-task-modal__view-stage-name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-primary)}.maintenance-task-modal__view-stage-count{font-size:var(--font-size-xs);background:var(--color-primary);color:#fff;padding:var(--space-2) var(--space-8);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold)}.maintenance-task-modal__view-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-12)}.maintenance-task-modal__view-image-card{position:relative;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-success-light);box-shadow:var(--shadow-xs)}.maintenance-task-modal__view-image{width:100%;height:140px;object-fit:cover;cursor:pointer;transition:transform var(--duration-fast, .15s) ease}.maintenance-task-modal__view-image:hover{transform:scale(1.02)}.maintenance-task-modal__footer{position:sticky;bottom:0;background:var(--color-surface);padding:var(--space-20) 0 0 0;display:flex;gap:var(--space-12);justify-content:flex-end;border-top:1px solid var(--color-border);box-shadow:0 -4px 10px #00000008}.maintenance-task-modal__btn-cancel{padding:var(--space-8) var(--space-24);background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast, .15s) ease;font-family:var(--font-family-base)}.maintenance-task-modal__btn-cancel:hover{background:var(--color-hover-overlay);border-color:var(--color-text-muted)}.maintenance-task-modal__btn-submit{padding:var(--space-8) var(--space-24);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast, .15s) ease;font-family:var(--font-family-base)}.maintenance-task-modal__btn-submit:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.maintenance-task-modal__btn-submit:disabled{background:var(--color-text-muted);cursor:not-allowed;box-shadow:none}.maintenance-task-modal__preset-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.maintenance-task-modal__preset-dialog{background:var(--color-surface);padding:var(--space-24);border-radius:var(--radius-md);width:400px;max-width:90vw;box-shadow:var(--shadow-lg)}.maintenance-task-modal__preset-title{margin:0;margin-bottom:var(--space-16);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.maintenance-task-modal__preset-field{margin-bottom:var(--space-16)}.maintenance-task-modal__preset-label{display:block;margin-bottom:var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.maintenance-task-modal__preset-input{width:100%;padding:var(--space-8);border-radius:var(--radius-base);border:1px solid var(--color-border);font-size:var(--font-size-base);color:var(--color-text);font-family:var(--font-family-base)}.maintenance-task-modal__preset-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.maintenance-task-modal__preset-textarea{width:100%;padding:var(--space-8);border-radius:var(--radius-base);border:1px solid var(--color-border);font-size:var(--font-size-base);color:var(--color-text);resize:vertical;font-family:var(--font-family-base)}.maintenance-task-modal__preset-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.maintenance-task-modal__preset-actions{display:flex;gap:var(--space-8);justify-content:flex-end}.maintenance-task-modal__preset-btn-cancel{padding:var(--space-8) var(--space-16);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);font-family:var(--font-family-base);transition:all var(--duration-fast, .15s) ease}.maintenance-task-modal__preset-btn-cancel:hover{background:var(--color-hover-overlay)}.maintenance-task-modal__preset-btn-save{padding:var(--space-8) var(--space-16);color:#fff;border:none;border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);font-family:var(--font-family-base);transition:all var(--duration-fast, .15s) ease}.maintenance-task-modal__preset-btn-save--active{background:var(--color-primary);cursor:pointer}.maintenance-task-modal__preset-btn-save--active:hover{background:var(--color-primary-hover)}.maintenance-task-modal__preset-btn-save--disabled{background:var(--color-text-muted);cursor:not-allowed}.maintenance-task-modal__icon--primary{color:var(--color-primary)}.maintenance-task-modal__icon--success{color:var(--color-success-dark)}@media (max-width: 768px){.maintenance-task-modal__overlay{padding:0}.maintenance-task-modal__container{max-width:100%;width:100%;height:100dvh;max-height:100dvh;border-radius:0}.maintenance-task-modal__form-row,.maintenance-task-modal__grid{grid-template-columns:1fr!important}.maintenance-task-modal__header,.maintenance-task-modal__body,.maintenance-task-modal__footer{padding:16px}}@media (max-width: 480px){.maintenance-task-modal__footer{flex-direction:column-reverse;gap:8px}.maintenance-task-modal__footer button{width:100%;min-height:44px;justify-content:center}.maintenance-task-modal__title{font-size:18px}}.maintenance-container{padding:var(--space-24);max-width:1400px;margin:0 auto}.maintenance-header-section{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-16);margin-bottom:var(--space-20);padding:var(--space-16) var(--space-20);background:var(--color-primary);border-radius:var(--radius-lg)}.maintenance-header-info h2{margin:0 0 var(--space-4) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:#fff}.maintenance-header-info p{margin:0;font-size:var(--font-size-sm);color:#ffffffd9}.maintenance-header-section .service-download-section{background:#ffffff1a;border-color:#fff3;padding:var(--space-8) var(--space-12)}.maintenance-header-section .download-date-input-compact{background:#fffffff2}.maintenance-header-section .btn-download-compact{background:#fff;color:var(--color-primary);border-color:#fff}.maintenance-header-section .btn-download-compact:hover:not(:disabled){background:#ffffffe6}@media (max-width: 768px){.maintenance-header-section{flex-direction:column;align-items:stretch}.maintenance-header-info{text-align:center}}.maintenance-header{margin-bottom:var(--space-24)}.maintenance-header__content{margin-bottom:var(--space-20)}.maintenance-header__title-group{display:flex;align-items:center;gap:var(--space-16)}.maintenance-header__icon{width:48px;height:48px;padding:var(--space-12);background:var(--color-primary);border-radius:var(--radius-md);color:#fff;flex-shrink:0}.maintenance-header__title{font-family:var(--font-family-base);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;letter-spacing:-.01em}.maintenance-header__subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:var(--space-4) 0 0 0;font-weight:var(--font-weight-regular)}.maintenance-subtabs{display:flex;gap:var(--space-8);padding:var(--space-4);background:var(--color-background);border-radius:var(--radius-md);width:fit-content}.maintenance-subtab{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:transparent;border:none;border-radius:var(--radius-base);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);position:relative}.maintenance-subtab:hover{background:var(--color-hover-overlay);color:var(--color-primary)}.maintenance-subtab--active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-xs)}.maintenance-subtab--active:hover{background:var(--color-surface)}.maintenance-content{animation:fadeInUp var(--duration-normal) var(--ease-out)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.maintenance-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-16);margin-bottom:var(--space-24)}.maintenance-stat-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-16);box-shadow:var(--shadow-sm);transition:all var(--duration-fast) var(--ease-out);border:1px solid var(--color-border)}.maintenance-stat-card:hover{box-shadow:var(--shadow-md)}.maintenance-stat-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-12)}.maintenance-stat-card__icon{width:40px;height:40px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;font-size:20px}.maintenance-stat-card__icon--blue{background:var(--color-info-light);color:var(--color-info)}.maintenance-stat-card__icon--yellow{background:var(--color-warning-light);color:var(--color-warning)}.maintenance-stat-card__icon--green{background:var(--color-success-light);color:var(--color-success)}.maintenance-stat-card__icon--red{background:var(--color-error-light);color:var(--color-error)}.maintenance-stat-card__value{font-size:32px;font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1;margin-bottom:var(--space-4)}.maintenance-stat-card__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.maintenance-stat-card__subtitle{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-4)}.maintenance-section{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-20);box-shadow:var(--shadow-sm);margin-bottom:var(--space-24);border:1px solid var(--color-border)}.maintenance-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-16);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-border)}.maintenance-section__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.maintenance-section__action{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);font-family:var(--font-family-base)}.maintenance-section__action:hover{background:var(--color-primary-hover)}.maintenance-task-list{display:flex;flex-direction:column;gap:var(--space-8)}.maintenance-task-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-12) var(--space-16);background:var(--color-background);border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-out);cursor:pointer;border:1px solid var(--color-border)}.maintenance-task-item:hover{background:var(--color-hover-overlay)}.maintenance-task-item__content{flex:1;display:flex;align-items:center;gap:var(--space-12)}.maintenance-task-item__badge{padding:var(--space-4) var(--space-12);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.maintenance-task-item__badge--preventivo{background:var(--color-primary-light);color:var(--color-primary)}.maintenance-task-item__badge--correctivo{background:var(--color-warning-light);color:var(--color-warning-dark)}.maintenance-task-item__badge--inspección{background:var(--color-info-light);color:var(--color-info)}.maintenance-task-item__info{flex:1}.maintenance-task-item__date{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-4)}.maintenance-task-item__description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.maintenance-task-item__status{padding:var(--space-4) var(--space-12);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.maintenance-task-item__status--pendiente{background:var(--color-warning-light);color:var(--color-warning-dark);border:1px solid var(--color-warning)}.maintenance-task-item__status--en_progreso{background:var(--color-info-light);color:var(--color-info);border:1px solid var(--color-info)}.maintenance-task-item__status--completada{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.maintenance-task-item__status--cancelada{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.maintenance-empty{text-align:center;padding:var(--space-40) var(--space-24)}.maintenance-empty__icon{width:80px;height:80px;margin:0 auto var(--space-16);border-radius:var(--radius-lg);background:var(--color-background);display:flex;align-items:center;justify-content:center;font-size:32px}.maintenance-empty__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-8)}.maintenance-empty__description{font-size:var(--font-size-base);color:var(--color-text-secondary)}.maint-dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-16);margin-bottom:var(--space-24)}.maint-dash-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);box-shadow:var(--shadow-sm)}.maint-dash-stat-header{display:flex;align-items:center;gap:var(--space-12);margin-bottom:var(--space-12)}.maint-dash-stat-icon{width:40px;height:40px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;color:#fff}.maint-dash-stat-icon--primary{background:var(--color-primary)}.maint-dash-stat-icon--warning{background:var(--color-warning)}.maint-dash-stat-icon--success{background:var(--color-success)}.maint-dash-stat-icon--info{background:var(--color-info)}.maint-dash-stat-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.maint-dash-stat-value{font-size:32px;font-weight:var(--font-weight-semibold);color:var(--color-text)}.maint-dash-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-24)}.maint-dash-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.maint-dash-panel__header{padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-12)}.maint-dash-panel__icon{width:36px;height:36px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;color:#fff}.maint-dash-panel__icon--primary{background:var(--color-primary)}.maint-dash-panel__icon--success{background:var(--color-success)}.maint-dash-panel__title{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.maint-dash-panel__subtitle{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.maint-dash-panel__content{padding:var(--space-12)}.maint-dash-empty{padding:var(--space-32);text-align:center}.maint-dash-empty__icon{color:var(--color-text-tertiary);margin-bottom:var(--space-12)}.maint-dash-empty__text{margin:0;font-size:var(--font-size-base);color:var(--color-text-secondary)}.maint-dash-task-list{display:flex;flex-direction:column;gap:var(--space-8)}.maint-dash-task-item{padding:var(--space-12) var(--space-16);background:var(--color-background);border-radius:var(--radius-base);border-left:3px solid var(--color-primary);transition:background var(--duration-fast) var(--ease-out)}.maint-dash-task-item:hover{background:var(--color-hover-overlay)}.maint-dash-task-item--success{border-left-color:var(--color-success)}.maint-dash-task-item--warning{border-left-color:var(--color-warning)}.maint-dash-task-item--error{border-left-color:var(--color-error)}.maint-dash-task-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-12)}.maint-dash-task-row--with-mb{margin-bottom:var(--space-8)}.maint-dash-task-info{flex:1;min-width:0}.maint-dash-task-meta{display:flex;align-items:center;gap:var(--space-8);margin-bottom:var(--space-4)}.maint-dash-type-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:2px 8px;border-radius:var(--radius-sm);background:var(--color-primary-light);color:var(--color-primary);text-transform:uppercase}.maint-dash-type-badge--success{background:var(--color-success-light);color:var(--color-success)}.maint-dash-task-date{font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex;align-items:center;gap:4px}.maint-dash-task-title{margin:0;font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maint-dash-urgency{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:4px 10px;border-radius:var(--radius-base);white-space:nowrap;display:flex;align-items:center;gap:4px}.maint-dash-urgency--error{color:var(--color-error);background:var(--color-error-light)}.maint-dash-urgency--warning{color:var(--color-warning);background:var(--color-warning-light)}.maint-dash-urgency--primary{color:var(--color-primary);background:var(--color-primary-light)}.maint-dash-completed-meta{display:flex;gap:var(--space-16);font-size:var(--font-size-sm);padding:var(--space-8) var(--space-12);background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.maint-dash-completed-meta__item{display:flex;align-items:center;gap:4px}.maint-alerts-summary{background:var(--color-primary);border-radius:var(--radius-lg);padding:20px 0;margin-bottom:var(--space-32);box-shadow:var(--shadow-sm);display:grid;grid-template-columns:repeat(3,1fr)}.maint-alerts-summary__cell{padding:0 var(--space-32);display:flex;align-items:center;gap:var(--space-16)}.maint-alerts-summary__cell--bordered{border-right:1px solid var(--color-white-alpha-15)}.maint-alerts-summary__icon{width:48px;height:48px;background:var(--color-white-alpha-15);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.maint-alerts-summary__label{font-size:10px;font-weight:var(--font-weight-semibold);color:#ffffffb3;text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px}.maint-alerts-summary__value{font-size:24px;font-weight:700;color:#fff;line-height:1;margin-bottom:2px}.maint-alerts-summary__desc{font-size:11px;color:#ffffffa6}.maint-alerts-list{display:flex;flex-direction:column;gap:var(--space-12)}.maint-alerts-empty{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:60px 20px;text-align:center}.maint-alerts-empty__icon-wrap{width:80px;height:80px;margin:0 auto var(--space-16);border-radius:var(--radius-xl);background:var(--color-background);display:flex;align-items:center;justify-content:center}.maint-alerts-empty__title{margin:0 0 var(--space-8) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.maint-alerts-empty__desc{margin:0;font-size:var(--font-size-base);color:var(--color-text-secondary)}.maint-alert-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--space-20) var(--space-24);transition:all .2s ease;box-shadow:var(--shadow-xs)}.maint-alert-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.maint-alert-card__layout{display:flex;align-items:start;gap:14px}.maint-alert-card__icon{width:40px;height:40px;background:var(--color-primary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-sm);color:#fff}.maint-alert-card__body{flex:1;min-width:0}.maint-alert-card__header{display:flex;align-items:start;justify-content:space-between;gap:var(--space-12)}.maint-alert-card__title{margin:0 0 var(--space-8) 0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1.4}.maint-alert-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-top:var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.maint-alert-card__observations{margin-top:10px;font-size:var(--font-size-sm);color:var(--color-text);padding:10px;background:var(--color-background);border-radius:var(--radius-md)}.maint-alert-dismiss{flex-shrink:0;width:32px;height:32px;padding:0;background:var(--color-background);border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:all .2s;display:flex;align-items:center;justify-content:center}.maint-alert-dismiss:hover{background:var(--color-error);color:#fff}.maint-alerts-info{margin-top:var(--space-24);padding:var(--space-16);background:var(--color-info-light);border:1px solid var(--color-info);border-radius:var(--radius-md)}.maint-alerts-info__text{margin:0;font-size:var(--font-size-base);color:var(--color-info)}.maint-cal-header{background:var(--color-primary);border-radius:var(--radius-xl);padding:var(--space-32);color:#fff;margin-bottom:var(--space-24);box-shadow:var(--shadow-md)}.maint-cal-header__layout{display:flex;align-items:center;justify-content:space-between}.maint-cal-header__title{font-size:32px;font-weight:700;margin:0 0 var(--space-8) 0}.maint-cal-header__subtitle{margin:0;opacity:.9;font-size:var(--font-size-base)}.maint-cal-nav{display:flex;align-items:center;gap:var(--space-8)}.maint-cal-nav-btn{padding:10px;background:var(--color-white-alpha-25);border:none;border-radius:var(--radius-md);cursor:pointer;color:#fff;display:flex;align-items:center;transition:all .3s ease}.maint-cal-nav-btn:hover{background:#ffffff4d}.maint-cal-today-btn{padding:10px 20px;background:#fffffff2;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;color:var(--color-primary);transition:all .3s ease}.maint-cal-today-btn:hover{background:#fff}.maint-cal-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-12);margin-bottom:var(--space-24)}.maint-cal-legend__item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12);display:flex;align-items:center;gap:var(--space-8)}.maint-cal-legend__item--success{background:var(--color-success-light);border-color:var(--color-success)}.maint-cal-legend__item--warning{background:var(--color-warning-light);border-color:var(--color-warning)}.maint-cal-legend__item--error{background:var(--color-error-light);border-color:var(--color-error)}.maint-cal-legend__dot{width:12px;height:12px;border-radius:50%}.maint-cal-legend__dot--success{background:var(--color-success)}.maint-cal-legend__dot--warning{background:var(--color-warning)}.maint-cal-legend__dot--error{background:var(--color-error)}.maint-cal-legend__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.maint-cal-legend__label--success{color:var(--color-success)}.maint-cal-legend__label--warning{color:var(--color-warning)}.maint-cal-legend__label--error{color:var(--color-error)}.maint-cal-grid{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.maint-cal-grid__headers{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-background)}.maint-cal-grid__day-name{text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:var(--space-12);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.maint-cal-grid__days{display:grid;grid-template-columns:repeat(7,1fr)}.maint-cal-day{aspect-ratio:1;border:1px solid var(--color-border);padding:var(--space-8);background:var(--color-surface);position:relative;display:flex;flex-direction:column}.maint-cal-day--today{background:var(--color-info-light);border-color:var(--color-info)}.maint-cal-day--overdue{background:var(--color-error-light);border-color:var(--color-error)}.maint-cal-day--upcoming{background:var(--color-warning-light);border-color:var(--color-warning)}.maint-cal-day__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.maint-cal-day__number{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.maint-cal-day__number--today{color:var(--color-info)}.maint-cal-day__tasks{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.maint-cal-task{cursor:pointer;font-size:10px;padding:4px 6px;border-radius:var(--radius-base);display:flex;align-items:center;gap:4px}.maint-cal-task--preventivo{background:var(--color-success-light);color:var(--color-success)}.maint-cal-task--correctivo{background:var(--color-warning-light);color:var(--color-warning)}.maint-cal-task--contingencia{background:var(--color-error-light);color:var(--color-error)}.maint-cal-task--completed{opacity:.5}.maint-cal-task__time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maint-cal-more{font-size:10px;color:var(--color-text-secondary);padding:2px 6px}.maint-cal-alerts-box{margin-top:var(--space-24);padding:var(--space-16);background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md)}.maint-cal-alerts-box__header{display:flex;align-items:center;gap:var(--space-8);margin-bottom:var(--space-12)}.maint-cal-alerts-box__title{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.maint-cal-alerts-box__list{display:flex;flex-direction:column;gap:var(--space-8)}.maint-cal-alerts-box__item{font-size:var(--font-size-base);color:var(--color-text-secondary)}.maint-tasks-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.maint-tasks-header{padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.maint-tasks-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.maint-tasks-add-btn{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.maint-tasks-add-btn:hover{background:var(--color-primary-hover)}.maint-tasks-filters{padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-border);display:flex;gap:var(--space-8);flex-wrap:wrap}.maint-tasks-filter-btn{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-background);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.maint-tasks-filter-btn--active{background:var(--color-primary);color:#fff;border:none}.maint-tasks-filter-count{padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.maint-tasks-filter-btn--active .maint-tasks-filter-count{background:var(--color-white-alpha-25)}.maint-tasks-filter-btn:not(.maint-tasks-filter-btn--active) .maint-tasks-filter-count{background:var(--color-surface)}.maint-tasks-content{padding:var(--space-12)}.maint-tasks-empty{padding:var(--space-40);text-align:center}.maint-tasks-table{width:100%;border-collapse:collapse}.maint-tasks-th{padding:var(--space-12) var(--space-16);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border);background:var(--color-background)}.maint-tasks-th--right{text-align:right}.maint-tasks-row{transition:background var(--duration-fast) var(--ease-out)}.maint-tasks-row:hover{background:var(--color-hover-overlay)}.maint-tasks-td{padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--color-border)}.maint-tasks-td--title{max-width:300px}.maint-tasks-task-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maint-tasks-task-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.maint-tasks-td--date{font-size:var(--font-size-sm);color:var(--color-text)}.maint-tasks-estado-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:4px 10px;border-radius:var(--radius-sm)}.maint-tasks-cost-value{font-weight:var(--font-weight-semibold);color:var(--color-text)}.maint-tasks-cost-mechanic{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.maint-tasks-actions{display:flex;gap:var(--space-4);justify-content:flex-end}.maint-tasks-action-btn{padding:var(--space-8);background:transparent;border:none;cursor:pointer;border-radius:var(--radius-base);transition:background var(--duration-fast) var(--ease-out)}.maint-tasks-action-btn--view{color:var(--color-info)}.maint-tasks-action-btn--view:hover{background:var(--color-info-light)}.maint-tasks-action-btn--edit{color:var(--color-primary)}.maint-tasks-action-btn--edit:hover{background:var(--color-primary-light)}.maint-tasks-action-btn--delete{color:var(--color-error)}.maint-tasks-action-btn--delete:hover{background:var(--color-error-light)}@media (max-width: 768px){.maintenance-container{padding:var(--space-16)}.maintenance-header__title{font-size:var(--font-size-lg)}.maintenance-header__subtitle{font-size:var(--font-size-sm)}.maintenance-subtabs{width:100%;overflow-x:auto}.maintenance-stats{grid-template-columns:1fr}.maintenance-task-item{flex-direction:column;align-items:flex-start;gap:var(--space-12)}.maintenance-task-item__content{width:100%}.maint-dash-grid{grid-template-columns:repeat(2,1fr)}.maint-dash-columns{grid-template-columns:1fr}.maint-dash-stat-value{font-size:24px}.maint-alerts-summary{grid-template-columns:1fr;gap:var(--space-16);padding:var(--space-20);border-radius:var(--radius-md)}.maint-alerts-summary__cell{padding:0}.maint-alerts-summary__cell--bordered{border-right:none;border-bottom:1px solid var(--color-white-alpha-15);padding-bottom:var(--space-16)}.maint-cal-header{padding:var(--space-20);border-radius:var(--radius-md)}.maint-cal-header__layout{flex-direction:column;gap:var(--space-16);text-align:center}.maint-cal-header__title{font-size:24px}.maint-cal-legend{grid-template-columns:repeat(2,1fr)}.maint-cal-day{aspect-ratio:auto;min-height:60px}.maint-tasks-filters{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.maint-tasks-filters::-webkit-scrollbar{display:none}.maint-tasks-filter-btn{white-space:nowrap;flex-shrink:0}}@media (max-width: 480px){.maint-dash-grid,.maint-cal-legend{grid-template-columns:1fr}.maint-cal-grid__day-name{font-size:10px;padding:var(--space-8)}.maint-alerts-summary__icon{width:40px;height:40px}}.costos-v2{padding:var(--space-24);background:var(--color-surface-secondary);min-height:100vh;min-height:100dvh;animation:fadeInUp .5s ease-out}.costos-header-v2{background:var(--color-primary);border-radius:16px;padding:28px 32px;margin-bottom:28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;border:1px solid var(--color-border);box-shadow:var(--shadow-sm),var(--shadow-xs),inset 0 1px #ffffff1a}.costos-header-info{display:flex;align-items:center;gap:20px}.costos-header-icon{width:56px;height:56px;background:linear-gradient(135deg,#ffffff40,#ffffff1a);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #00000026,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.1)}.costos-header-text h2{font-family:var(--font-family-display);font-size:26px;font-weight:700;color:#fff;margin:0 0 6px;letter-spacing:-.02em;text-shadow:0 1px 2px rgba(0,0,0,.1)}.costos-header-text p{color:#ffffffd9;margin:0;font-size:14px;font-weight:500}.costos-header-stats{display:flex;gap:12px;flex-wrap:wrap}.costos-stat-pill{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:10px 18px;display:flex;flex-direction:column;align-items:center;min-width:85px;transition:all .2s ease}.costos-stat-pill:hover{background:#ffffff38;transform:translateY(-2px)}.costos-stat-pill .stat-number{font-size:20px;font-weight:700;color:#fff;line-height:1;margin-bottom:4px}.costos-stat-pill .stat-label{font-size:11px;color:#ffffffd9;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.costos-stat-pill.success{background:#34c75940;border-color:#34c75966}.costos-stat-pill.success .stat-number{color:var(--color-success)}.costos-stat-pill.info{background:#5856d640;border-color:#5856d666}.costos-stat-pill.info .stat-number{color:var(--color-info)}.costos-stat-pill.warning{background:#ca501040;border-color:#ca501066}.costos-stat-pill.warning .stat-number{color:#ca5010}.costos-tab-selector{display:flex;gap:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:4px;margin-bottom:24px;width:fit-content}.costos-tab-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;min-height:40px;border:none;background:transparent;border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.costos-tab-btn:hover:not(.active){background:var(--color-surface-secondary);color:var(--color-text)}.costos-tab-btn.active{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-xs)}.costos-tab-content{animation:fadeInUp .3s ease-out}.costos-distribution-section{margin-bottom:28px}.costos-distribution-section h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 16px}.costos-distribution-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-xs)}.distribution-bar-container{display:flex;flex-direction:column;gap:16px}.distribution-bar{display:flex;height:32px;border-radius:var(--radius-base);overflow:hidden;background:var(--color-surface-secondary)}.distribution-segment{transition:width .5s ease;min-width:2px}.distribution-segment.inventario{background:#5856d6}.distribution-segment.mantenimiento{background:#ca5010}.distribution-legend{display:flex;gap:32px;flex-wrap:wrap}.distribution-legend-item{display:flex;align-items:center;gap:8px}.distribution-dot{width:12px;height:12px;border-radius:var(--radius-sm);flex-shrink:0}.distribution-dot.inventario{background:#5856d6}.distribution-dot.mantenimiento{background:#ca5010}.distribution-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.distribution-value{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.tendencia-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.tendencia-header h3{margin:0}.period-selector-inline{background:var(--color-surface);border:1px solid var(--color-border)}.period-selector-inline button{color:var(--color-text-secondary)}.period-selector-inline button.active{background:var(--color-primary);color:#fff}.period-selector-v2{display:flex;gap:8px;background:#ffffff26;padding:4px;border-radius:10px;border:1px solid rgba(255,255,255,.2)}.period-selector-v2 button{padding:8px 16px;border:none;background:transparent;border-radius:8px;font-size:13px;font-weight:600;color:#ffffffb3;cursor:pointer;transition:all .2s ease}.period-selector-v2 button.active{background:#fff;color:var(--color-primary);box-shadow:0 2px 8px #00000026}.period-selector-v2 button:hover:not(.active){background:#ffffff1a;color:#fff}@media (max-width: 1024px){.costos-v2{padding:var(--space-20)}.costos-header-v2{padding:var(--space-20) var(--space-24)}.costos-header-text h2{font-size:var(--font-size-lg)}}@media (max-width: 768px){.costos-v2{padding:var(--space-16);overflow-x:hidden}.costos-header-v2{padding:var(--space-16);flex-direction:column;align-items:stretch;gap:var(--space-16);margin-bottom:var(--space-16);border-radius:12px}.costos-header-info{gap:var(--space-12)}.costos-header-icon{width:44px;height:44px}.costos-header-text h2{font-size:var(--font-size-md)}.costos-header-text p{font-size:var(--font-size-xs)}.costos-header-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);width:100%}.costos-stat-pill{min-width:0;padding:var(--space-8);border-radius:10px}.costos-stat-pill:hover{transform:none}.costos-stat-pill .stat-number{font-size:var(--font-size-sm);font-weight:700;text-align:center;word-break:break-word}.costos-stat-pill .stat-label{font-size:10px}.period-selector-v2{width:100%}.period-selector-v2 button{flex:1;text-align:center;min-height:40px;padding:10px 12px}}@media (max-width: 480px){.costos-v2,.costos-header-v2{padding:var(--space-12)}.costos-header-text h2{font-size:var(--font-size-base)}.costos-header-stats{grid-template-columns:1fr}.costos-stat-pill{flex-direction:row;justify-content:space-between;padding:var(--space-8) var(--space-12)}.costos-stat-pill .stat-number{font-size:var(--font-size-sm);text-align:right;margin-bottom:0}}.costos-container{padding:var(--space-24);background:var(--color-surface-secondary);min-height:100vh;min-height:100dvh}.costos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.costos-header h2{font-size:28px;font-weight:600;color:var(--color-text);margin:0 0 8px}.costos-subtitle{font-size:15px;color:var(--color-text-secondary);margin:0}.period-selector{display:flex;gap:8px;background:#fff;padding:4px;border-radius:10px;box-shadow:0 2px 8px #0000000f}.period-selector button{padding:8px 16px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.period-selector button.active{background:var(--color-info);color:#fff}.period-selector button:hover:not(.active){background:var(--color-surface-secondary);color:var(--color-text)}.costos-chart-container{background:#fff;border-radius:16px;padding:28px;margin-bottom:28px;box-shadow:0 2px 12px #0000000f;min-height:450px;display:flex;align-items:center}.cost-chart{width:100%;height:100%;min-height:400px}.breakdown-section{margin-bottom:28px}.breakdown-section h3{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 16px}.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.breakdown-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000f;transition:all .3s ease}.breakdown-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.breakdown-header{display:flex;gap:12px;margin-bottom:16px;align-items:center}.breakdown-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.breakdown-info{display:flex;flex-direction:column;gap:4px}.breakdown-category{font-size:14px;font-weight:500;color:var(--color-text-secondary)}.breakdown-percentage{font-size:18px;font-weight:600;color:var(--color-text)}.breakdown-amount{font-size:28px;font-weight:700;color:var(--color-text);margin-bottom:12px}.breakdown-change{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}.breakdown-change.positive{color:var(--color-success)}.breakdown-change.negative{color:var(--color-error)}.evolution-section h3{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 16px}.evolution-table-container{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000f;overflow-x:auto}.evolution-table{width:100%;border-collapse:collapse}.evolution-table thead{background:var(--color-surface-secondary)}.evolution-table th{padding:12px 16px;text-align:left;font-size:13px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.evolution-table td{padding:14px 16px;font-size:14px;color:var(--color-text);border-bottom:1px solid var(--color-surface-secondary)}.evolution-table tbody tr:last-child td{border-bottom:none}.evolution-table tbody tr:hover{background:var(--color-surface-secondary)}.index-badge{display:inline-block;padding:4px 10px;background:var(--color-info)15;color:var(--color-info);border-radius:6px;font-weight:600;font-size:13px}.kpi-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-bottom:28px}.kpi-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px #0000000f;transition:all .3s ease;display:flex;align-items:center;gap:16px}.kpi-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.kpi-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-content{flex:1}.kpi-label{font-size:13px;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.kpi-value{font-size:32px;font-weight:700;color:var(--color-text);line-height:1;margin-bottom:8px}.kpi-change{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.kpi-change.positive{color:var(--color-success)}.kpi-change.negative{color:var(--color-error)}.breakdown-meta{font-size:13px;color:var(--color-text-secondary);font-weight:500}.tendencia-section{margin-bottom:28px}.tendencia-section h3{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 16px}.empty-chart{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--color-text-secondary);padding:60px 20px}.empty-chart svg{opacity:.4}.empty-chart p{font-size:15px;font-weight:500;margin:0}.top-items-section{margin-bottom:28px}.top-items-section h3{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 16px}.top-items-table-container{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000f;overflow-x:auto}.top-items-table{width:100%;border-collapse:collapse;min-width:900px}.top-items-table thead{background:var(--color-surface-secondary);border-radius:8px}.top-items-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.top-items-table th:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.top-items-table th:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.top-items-table td{padding:16px;font-size:14px;color:var(--color-text);border-bottom:1px solid var(--color-surface-secondary);vertical-align:middle}.top-items-table tbody tr:last-child td{border-bottom:none}.top-items-table tbody tr:hover{background:var(--color-surface-secondary)}.top-items-table code{background:var(--color-surface-secondary);padding:4px 8px;border-radius:6px;font-family:SF Mono,Monaco,Courier New,monospace;font-size:13px;color:var(--color-info);font-weight:600}.tipo-badge{display:inline-block;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize}.empty-top-items{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--color-text-secondary);padding:60px 20px;background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f}.empty-top-items svg{opacity:.4}.empty-top-items p{font-size:15px;font-weight:500;margin:0}@media (max-width: 1024px){.kpi-summary-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-12)}.breakdown-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}@media (max-width: 768px){.costos-header{flex-direction:column;align-items:flex-start;gap:var(--space-12)}.costos-header h2{font-size:var(--font-size-lg)}.costos-tab-selector{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}.costos-tab-selector::-webkit-scrollbar{display:none}.costos-tab-btn{flex-shrink:0;min-height:44px;padding:10px var(--space-12);white-space:nowrap}.kpi-summary-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-12);margin-bottom:var(--space-16)}.kpi-card{padding:var(--space-12);gap:var(--space-8);border-radius:12px}.kpi-card:hover{transform:none}.kpi-icon{width:40px;height:40px}.kpi-icon svg{width:22px;height:22px}.kpi-label{font-size:11px;margin-bottom:var(--space-4)}.kpi-value{font-size:var(--font-size-lg);margin-bottom:var(--space-4)}.kpi-change{font-size:12px}.costos-distribution-card{padding:var(--space-16);border-radius:12px}.distribution-legend{flex-direction:column;gap:var(--space-8)}.distribution-legend-item{flex-wrap:wrap}.breakdown-grid{grid-template-columns:1fr;gap:var(--space-12)}.breakdown-card{padding:var(--space-12);border-radius:12px}.breakdown-card:hover{transform:none}.breakdown-amount{font-size:22px;margin-bottom:var(--space-8)}.breakdown-icon{width:40px;height:40px}.costos-chart-container{padding:var(--space-16);min-height:300px;border-radius:12px}.cost-chart{min-height:260px}.tendencia-header{flex-direction:column;align-items:stretch;gap:var(--space-12)}.period-selector{width:100%}.period-selector button{flex:1;min-height:40px}.evolution-table-container,.top-items-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:var(--space-12);border-radius:12px}.evolution-table th,.evolution-table td,.top-items-table th,.top-items-table td{padding:10px var(--space-12);font-size:var(--font-size-sm)}.top-items-table tbody tr:hover,.evolution-table tbody tr:hover{background:var(--color-surface-secondary)}.breakdown-section h3,.tendencia-section h3,.top-items-section h3,.costos-distribution-section h3,.evolution-section h3{font-size:var(--font-size-md)}}@media (max-width: 480px){.costos-header h2{font-size:var(--font-size-md)}.kpi-summary-grid{grid-template-columns:1fr}.kpi-card{flex-direction:row;align-items:center;padding:var(--space-12)}.kpi-content{min-width:0}.kpi-value{font-size:var(--font-size-md);word-break:break-word}.kpi-label{font-size:10px}.costos-chart-container{min-height:240px;padding:var(--space-12)}.cost-chart{min-height:200px}.period-selector-v2 button{padding:8px 10px;font-size:12px}.distribution-bar{height:24px}.distribution-legend-item{font-size:12px;gap:var(--space-4)}.distribution-value{font-size:12px}.breakdown-amount{font-size:var(--font-size-md)}.breakdown-percentage{font-size:var(--font-size-sm)}.breakdown-category{font-size:12px}.costos-header{padding:var(--space-12)}.costos-header h2{font-size:var(--font-size-base)}.tipo-badge{padding:4px 8px;font-size:11px}.empty-chart,.empty-top-items{padding:var(--space-24) var(--space-12)}.filters-bar{flex-direction:column;gap:var(--space-8)}.filters-bar>*{width:100%}}.geofence-alerts-container{position:fixed;top:80px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;max-width:380px;pointer-events:none}.geofence-alert-card{display:flex;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026,0 4px 16px #0000001a,0 2px 8px #0000000f;overflow:hidden;animation:slideInAlert .4s cubic-bezier(.34,1.56,.64,1) forwards;opacity:0;transform:translate(100%);pointer-events:all;position:relative}@keyframes slideInAlert{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.alert-color-bar{width:5px;flex-shrink:0}.bar-enter{background:linear-gradient(180deg,var(--color-success) 0%,var(--color-success-dark) 100%)}.bar-exit{background:linear-gradient(180deg,var(--color-warning) 0%,var(--color-warning-dark) 100%)}.alert-content{flex:1;padding:16px;display:flex;flex-direction:column;gap:12px}.alert-header{display:flex;align-items:flex-start;gap:12px}.alert-icon-wrapper{flex-shrink:0}.alert-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff}.alert-icon--enter{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-dark) 100%);box-shadow:0 4px 12px #10b9814d}.alert-icon--exit{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning-dark) 100%);box-shadow:0 4px 12px #f59e0b4d}.alert-title-section{flex:1;min-width:0}.alert-title{font-size:14px;font-weight:700;color:var(--color-text);margin:0 0 2px;line-height:1.2}.alert-enter .alert-title{color:var(--color-success-dark)}.alert-exit .alert-title{color:var(--color-warning-dark)}.alert-zone-name{font-size:16px;font-weight:600;color:var(--color-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-close-btn{width:28px;height:28px;background:#0000000d;border:none;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease;flex-shrink:0}.alert-close-btn:hover{background:#0000001a;color:var(--color-text-secondary)}.alert-vehicle-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vehicle-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--color-primary-subtle);border-radius:6px;color:var(--color-primary)}.vehicle-placa{font-size:14px;font-weight:700;letter-spacing:.5px}.vehicle-details{font-size:12px;color:var(--color-text-secondary)}.alert-meta{display:flex;gap:16px;flex-wrap:wrap}.meta-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-secondary)}.meta-item svg{color:var(--color-text-muted)}.alert-view-map-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;align-self:flex-start}.alert-view-map-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.alert-view-map-btn:active{transform:translateY(0)}.alert-progress-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:#0000001a;overflow:hidden}.alert-progress-fill{height:100%;width:100%;background:var(--color-primary);animation:progressShrink 10s linear forwards}.alert-enter .alert-progress-fill{background:var(--color-success)}.alert-exit .alert-progress-fill{background:var(--color-warning)}@keyframes progressShrink{0%{width:100%}to{width:0%}}.geofence-alert-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-out}.geofence-alert-popup{background:#fff;border-radius:20px;padding:40px;max-width:500px;width:90%;box-shadow:0 20px 60px #0000004d;position:relative;overflow:hidden;animation:slideUp .4s cubic-bezier(.34,1.56,.64,1)}.geofence-alert-popup.entering{border-top:5px solid var(--color-success)}.geofence-alert-popup.exiting{border-top:5px solid var(--color-warning)}@media (max-width: 480px){.geofence-alerts-container{top:auto;bottom:20px;right:10px;left:10px;max-width:none}.geofence-alert-card{animation-name:slideInAlertMobile}@keyframes slideInAlertMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}}@media (prefers-color-scheme: dark){.geofence-alert-card{background:var(--color-text);border:1px solid rgba(255,255,255,.1)}.alert-title{color:var(--color-surface-secondary)}.alert-enter .alert-title{color:var(--color-success)}.alert-exit .alert-title{color:var(--color-warning)}.alert-zone-name{color:var(--color-border)}.alert-close-btn{background:#ffffff1a;color:var(--color-text-muted)}.alert-close-btn:hover{background:#ffffff26;color:var(--color-border-strong)}.vehicle-badge{background:var(--color-primary-subtle);color:#a3c95a}.vehicle-details,.meta-item{color:var(--color-text-muted)}.alert-progress-bar{background:#ffffff1a}.geofence-alert-popup{background:var(--color-text);color:#fff}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.project-switcher{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-12);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:var(--shadow-xs)}.project-switcher-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.project-switcher-select{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);min-width:200px;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out)}.project-switcher-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.project-switcher-select:hover{border-color:var(--color-border-strong)}@media (max-width: 768px){.project-switcher{width:100%}.project-switcher-select{flex:1;min-width:0}}.organization-switcher{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-12);background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-base);box-shadow:var(--shadow-xs)}.organization-switcher-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em}.organization-switcher-select{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);min-width:220px;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out)}.organization-switcher-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.organization-switcher-select:hover{border-color:var(--color-border-strong)}@media (max-width: 768px){.organization-switcher{width:100%}.organization-switcher-select{flex:1;min-width:0}}.proyectos-component{padding:var(--space-16);max-width:1440px;margin:0 auto}.proyectos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-20);gap:var(--space-16)}.proyectos-header-text{display:flex;align-items:center;gap:var(--space-12);color:var(--color-primary)}.proyectos-header-text h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text)}.proyectos-header-text p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);border:1px solid transparent}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-hover-overlay)}.proyectos-feedback{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-12);border-radius:var(--radius-base);font-size:var(--font-size-base);margin-bottom:var(--space-12)}.proyectos-feedback--ok{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.proyectos-feedback--error{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.proyectos-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--space-16)}@media (max-width: 1024px){.proyectos-grid{grid-template-columns:1fr}}.proyectos-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.proyectos-empty{padding:var(--space-32);text-align:center;color:var(--color-text-secondary)}.proyectos-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.proyectos-table th{background:var(--color-surface-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:var(--space-8) var(--space-12);text-align:left;border-bottom:1px solid var(--color-border)}.proyectos-th-actions{text-align:right;width:180px}.proyectos-table td{padding:var(--space-12);border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle}.proyectos-table tbody tr{cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.proyectos-table tbody tr:hover{background:var(--color-hover-overlay)}.proyectos-row-active{background:var(--color-info-light)!important}.proyectos-name{font-weight:var(--font-weight-semibold)}.proyectos-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.proyectos-period{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.proyectos-badge{display:inline-flex;padding:4px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);border:1px solid currentColor}.proyectos-badge--ok{background:var(--color-success-light);color:var(--color-success)}.proyectos-badge--off{background:var(--color-surface-secondary);color:var(--color-text-secondary)}.proyectos-actions{text-align:right;white-space:nowrap}.proyectos-actions button{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--space-4) var(--space-8);margin-left:4px;cursor:pointer;color:var(--color-text-secondary);display:inline-flex;transition:all var(--duration-fast) var(--ease-out)}.proyectos-actions button:hover{background:var(--color-hover-overlay);color:var(--color-text);border-color:var(--color-border-strong)}.proyectos-btn-danger:hover{color:var(--color-error)!important;border-color:var(--color-error)!important;background:var(--color-error-light)!important}.proyectos-side{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);height:fit-content;box-shadow:var(--shadow-xs)}.proyectos-side-header{display:flex;align-items:center;gap:var(--space-8);color:var(--color-text);margin-bottom:var(--space-12);padding-bottom:var(--space-8);border-bottom:1px solid var(--color-divider)}.proyectos-side-header h3{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.proyectos-side-empty{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.proyectos-enterprise-list{list-style:none;padding:0;margin:0 0 var(--space-12) 0;display:flex;flex-direction:column;gap:var(--space-8)}.proyectos-enterprise-list li{display:flex;justify-content:space-between;align-items:center;padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-base)}.proyectos-enterprise-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.proyectos-enterprise-email{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.proyectos-enterprise-list button{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);padding:4px 6px;cursor:pointer;color:var(--color-text-secondary);display:inline-flex}.proyectos-add-enterprise{width:100%;justify-content:center}.proyectos-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--space-16)}.proyectos-modal{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);box-shadow:var(--shadow-md);max-width:520px;width:100%;max-height:90dvh;overflow-y:auto}.proyectos-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-divider)}.proyectos-modal-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.proyectos-modal-header button{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-4);border-radius:var(--radius-base);display:flex}.proyectos-modal-header button:hover{background:var(--color-hover-overlay);color:var(--color-text)}.proyectos-form{padding:var(--space-20);display:flex;flex-direction:column;gap:var(--space-12)}.proyectos-form label{display:flex;flex-direction:column;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.proyectos-form label span{display:inline-flex;align-items:center;gap:4px}.proyectos-form input,.proyectos-form textarea{padding:var(--space-8) var(--space-12);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);font-family:inherit;transition:border-color var(--duration-fast) var(--ease-out)}.proyectos-form input:focus,.proyectos-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.proyectos-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12)}@media (max-width: 480px){.proyectos-form-row{grid-template-columns:1fr}}.proyectos-form-actions{display:flex;justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-8);padding-top:var(--space-12);border-top:1px solid var(--color-divider)}.orgs-component{padding:var(--space-16);max-width:1440px;margin:0 auto}.orgs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-20);gap:var(--space-16)}.orgs-header-text{display:flex;align-items:center;gap:var(--space-12);color:var(--color-primary)}.orgs-header-text h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text)}.orgs-header-text p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.orgs-feedback{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-12);border-radius:var(--radius-base);font-size:var(--font-size-base);margin-bottom:var(--space-12)}.orgs-feedback--ok{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.orgs-feedback--error{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.orgs-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.orgs-empty{padding:var(--space-32);text-align:center;color:var(--color-text-secondary)}.orgs-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.orgs-table th{background:var(--color-surface-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:var(--space-8) var(--space-12);text-align:left;border-bottom:1px solid var(--color-border)}.orgs-th-actions{text-align:right;width:140px}.orgs-table td{padding:var(--space-12);border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle}.orgs-name{font-weight:var(--font-weight-semibold)}.orgs-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.orgs-slug{font-family:var(--font-family-mono, monospace);font-size:var(--font-size-sm);background:var(--color-surface-secondary);padding:2px 6px;border-radius:var(--radius-sm);color:var(--color-text-secondary)}.orgs-contact{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.orgs-contact>div{display:inline-flex;align-items:center;gap:4px}.orgs-contact>div+div{margin-top:2px}.orgs-badge{display:inline-flex;padding:4px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);border:1px solid currentColor}.orgs-badge--ok{background:var(--color-success-light);color:var(--color-success)}.orgs-badge--off{background:var(--color-surface-secondary);color:var(--color-text-secondary)}.orgs-actions{text-align:right;white-space:nowrap}.orgs-actions button{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--space-4) var(--space-8);margin-left:4px;cursor:pointer;color:var(--color-text-secondary);display:inline-flex;transition:all var(--duration-fast) var(--ease-out)}.orgs-actions button:hover{background:var(--color-hover-overlay);color:var(--color-text);border-color:var(--color-border-strong)}.orgs-btn-danger:hover{color:var(--color-error)!important;border-color:var(--color-error)!important;background:var(--color-error-light)!important}.orgs-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--space-16)}.orgs-modal{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);box-shadow:var(--shadow-md);max-width:540px;width:100%;max-height:90dvh;overflow-y:auto}.orgs-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-divider)}.orgs-modal-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.orgs-modal-header button{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-4);border-radius:var(--radius-base);display:flex}.orgs-modal-header button:hover{background:var(--color-hover-overlay);color:var(--color-text)}.orgs-form{padding:var(--space-20);display:flex;flex-direction:column;gap:var(--space-12)}.orgs-form label{display:flex;flex-direction:column;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.orgs-form label span{display:inline-flex;align-items:center;gap:4px}.orgs-form label small{font-weight:var(--font-weight-regular);color:var(--color-text-tertiary)}.orgs-form input,.orgs-form textarea{padding:var(--space-8) var(--space-12);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);font-family:inherit;transition:border-color var(--duration-fast) var(--ease-out)}.orgs-form input:focus,.orgs-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.orgs-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12)}@media (max-width: 480px){.orgs-form-row{grid-template-columns:1fr}}.orgs-form-actions{display:flex;justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-8);padding-top:var(--space-12);border-top:1px solid var(--color-divider)}.dashboard-kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);display:flex;align-items:center;gap:var(--space-12);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-xs)}.dashboard-kpi:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.dashboard-kpi__icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text-secondary);flex-shrink:0;transition:all var(--duration-fast) var(--ease-out)}.dashboard-kpi:hover .dashboard-kpi__icon{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.dashboard-kpi__content{flex:1;min-width:0}.dashboard-kpi__value{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text);margin:0 0 var(--space-4) 0;line-height:1;letter-spacing:-.02em}.dashboard-kpi__label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;line-height:1.2}.dashboard-kpi__trend{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin-top:var(--space-4)}.dashboard-kpi__trend--up{color:var(--color-success)}.dashboard-kpi__trend--down{color:var(--color-error)}.dashboard-kpi__trend--neutral{color:var(--color-text-secondary)}@media (max-width: 768px){.dashboard-kpi{padding:12px}.dashboard-kpi__value{font-size:24px}.dashboard-kpi__label{font-size:11px}}@media (max-width: 480px){.dashboard-kpi{padding:8px}.dashboard-kpi__value{font-size:18px}.dashboard-kpi__icon{width:28px;height:28px}}.alert-card-new{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-16);transition:all var(--duration-fast) var(--ease-out);cursor:pointer;position:relative;overflow:hidden}.alert-card-new:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.alert-card-new--alta:before{background:var(--color-error)}.alert-card-new--media:before{background:var(--color-warning)}.alert-card-new--baja:before{background:var(--color-info)}.alert-card-new:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translate(4px)}.alert-card-new__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-12)}.alert-card-new__icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.alert-card-new--alta .alert-card-new__icon{background:#ff3b301a;color:var(--color-error)}.alert-card-new--media .alert-card-new__icon{background:#ff95001a;color:var(--color-warning)}.alert-card-new--baja .alert-card-new__icon{background:#007aff1a;color:var(--color-info)}.alert-card-new__priority{font-size:10px;font-weight:var(--font-weight-bold);padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}.alert-card-new--alta .alert-card-new__priority{background:#ff3b301a;color:var(--color-error)}.alert-card-new--media .alert-card-new__priority{background:#ff95001a;color:var(--color-warning)}.alert-card-new--baja .alert-card-new__priority{background:#007aff1a;color:var(--color-info)}.alert-card-new__body{display:flex;flex-direction:column;gap:var(--space-8)}.alert-card-new__vehicle{font-weight:var(--font-weight-semibold);color:var(--color-text);font-size:var(--font-size-sm)}.alert-card-new__message{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}@media (max-width: 480px){.alert-card-new{padding:10px;gap:8px}.alert-card-new__icon{width:32px;height:32px}.alert-card-new__title{font-size:13px}.alert-card-new__message{font-size:12px}}.personnel-table-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.personnel-table-wrapper{overflow-x:auto}.personnel-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.personnel-table thead th{background:var(--color-surface-secondary);color:var(--color-text-secondary);padding:var(--space-8) var(--space-12);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.personnel-table tbody td{padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--color-divider);vertical-align:middle}.personnel-table tbody tr{transition:background var(--duration-fast) var(--ease-out)}.personnel-table tbody tr:hover{background:var(--color-surface-secondary)}.employee-cell{display:flex;align-items:center;gap:var(--space-12)}.employee-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0}.employee-info{min-width:0;flex:1}.employee-name{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:2px;font-size:var(--font-size-sm)}.employee-contact{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.role-badge{display:inline-flex;align-items:center;padding:3px var(--space-8);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:capitalize;border:1px solid transparent}.role-badge--conductor{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.role-badge--ayudante{background:var(--color-info-light);color:var(--color-info);border-color:var(--color-info)}.role-badge--supervisor{background:var(--color-warning-light);color:#c19c00;border-color:var(--color-warning)}.role-badge--default{background:var(--color-surface-secondary);color:var(--color-text-secondary);border-color:var(--color-border)}.status-badge-table{display:inline-flex;align-items:center;gap:var(--space-4);padding:3px var(--space-8);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:capitalize;border:1px solid transparent}.status-badge-table--success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.status-badge-table--warning{background:var(--color-warning-light);color:#c19c00;border-color:var(--color-warning)}.status-badge-table--info{background:var(--color-surface-secondary);color:var(--color-text-secondary);border-color:var(--color-border)}.status-badge-table--default{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.assignment-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.table-actions{display:flex;gap:var(--space-8);justify-content:flex-end}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);flex-shrink:0;background:transparent}.action-btn--edit{color:var(--color-info)}.action-btn--edit:hover{background:var(--color-info);color:#fff;border-color:var(--color-info)}.action-btn--delete{color:var(--color-error)}.action-btn--delete:hover{background:var(--color-error);color:#fff;border-color:var(--color-error)}.table-pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--space-12) var(--space-16);background:var(--color-surface-secondary);border-top:1px solid var(--color-divider)}.pagination-btn{padding:var(--space-8) var(--space-16);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.pagination-btn:hover:not(:disabled){background:var(--color-primary-hover)}.pagination-btn:disabled{background:var(--color-border);border-color:var(--color-border);color:var(--color-text-tertiary);cursor:not-allowed}.pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}@media (max-width: 768px){.personnel-table{font-size:var(--font-size-xs)}.personnel-table thead th,.personnel-table tbody td{padding:var(--space-8)}.employee-cell{flex-direction:column;align-items:flex-start;gap:var(--space-8)}.employee-contact{flex-direction:row;gap:var(--space-8);flex-wrap:wrap}.table-actions{flex-direction:column;gap:var(--space-4)}.table-pagination{flex-direction:column;gap:var(--space-12);text-align:center}}.vehicle-card-new{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);position:relative;overflow:hidden}.vehicle-card-new:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-normal) var(--ease-out)}.vehicle-card-new:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.vehicle-card-new:hover:before{transform:scaleX(1)}.vehicle-card-new__header{display:flex;align-items:center;gap:var(--space-12);margin-bottom:var(--space-16)}.vehicle-card-new__icon{width:40px;height:40px;background:var(--color-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.vehicle-card-new__title{flex:1}.vehicle-card-new__title h4{margin:0 0 var(--space-4) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1.3}.vehicle-status-new{display:inline-flex;align-items:center;gap:var(--space-4);padding:3px var(--space-8);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:capitalize;border:1px solid transparent}.vehicle-status-new--success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.vehicle-status-new--info{background:var(--color-surface-secondary);color:var(--color-text-secondary);border-color:var(--color-border)}.vehicle-status-new--warning{background:var(--color-warning-light);color:#c19c00;border-color:var(--color-warning)}.vehicle-status-new--error{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.vehicle-card-new__content{display:flex;flex-direction:column;gap:var(--space-8);margin-bottom:var(--space-16)}.vehicle-info-row{display:flex;align-items:center;gap:var(--space-8)}.vehicle-info-item{display:flex;align-items:center;gap:var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex:1}.vehicle-info-item svg{color:var(--color-primary);flex-shrink:0}.vehicle-maintenance{display:flex;justify-content:space-between;align-items:center;padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-base);border:1px solid var(--color-border)}.maintenance-item{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.maintenance-item svg{color:var(--color-primary)}.vehicle-card-new__actions{display:flex;gap:var(--space-8);justify-content:flex-end}.vehicle-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-base);background:transparent;color:var(--color-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.vehicle-action-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.vehicle-action-btn:active{opacity:.8}@media (max-width: 768px){.vehicle-card{padding:12px}.vehicle-card__header{flex-direction:column;align-items:stretch;gap:8px}.vehicle-card__stats{grid-template-columns:repeat(2,1fr)}.vehicle-action-btn{min-height:44px}}@media (max-width: 480px){.vehicle-card{padding:10px}.vehicle-card__title{font-size:15px}.vehicle-card__actions{flex-wrap:wrap;gap:6px}.vehicle-action-btn{flex:1 1 auto;min-width:44px}}.route-timeline-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);position:relative;overflow:hidden;box-shadow:var(--shadow-xs)}.route-timeline-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-normal) var(--ease-out)}.route-timeline-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.route-timeline-card:hover:before{transform:scaleX(1)}.route-timeline-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-16);gap:var(--space-12)}.route-timeline-title h4{margin:0 0 var(--space-8) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1.3}.route-status-badge{display:inline-flex;align-items:center;gap:var(--space-4);padding:3px var(--space-8);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:capitalize;border:1px solid transparent}.route-status-badge--success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.route-status-badge--warning{background:var(--color-warning-light);color:#c19c00;border-color:var(--color-warning)}.route-status-badge--info{background:var(--color-surface-secondary);color:var(--color-text-secondary);border-color:var(--color-border)}.route-status-badge--error{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.route-status-badge--default{background:var(--color-surface-secondary);color:var(--color-text-secondary);border-color:var(--color-border)}.route-timeline-meta{display:flex;gap:var(--space-12);margin-bottom:var(--space-12);flex-wrap:wrap}.route-meta-item{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.route-meta-item svg{color:var(--color-primary);flex-shrink:0}.route-timeline-driver{display:flex;gap:var(--space-12);margin-bottom:var(--space-16);padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-base);border:1px solid var(--color-border);flex-wrap:wrap}.route-driver-item{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.route-driver-item svg{color:var(--color-primary);flex-shrink:0}.route-timeline-stops{margin-bottom:var(--space-16)}.route-timeline-stops h5{margin:0 0 var(--space-12) 0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.stops-timeline{position:relative;padding-left:var(--space-20)}.stop-item{display:flex;align-items:flex-start;gap:var(--space-12);margin-bottom:var(--space-12);position:relative}.stop-item:last-child{margin-bottom:0}.stop-connector{position:relative;flex-shrink:0}.stop-line{position:absolute;left:11px;top:24px;bottom:-12px;width:2px;background:var(--color-border);border-radius:1px}.stop-item:last-child .stop-line{display:none}.stop-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);border:2px solid var(--color-border);background:var(--color-surface);position:relative;z-index:1;transition:all var(--duration-fast) var(--ease-out)}.stop-item--completed .stop-dot{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.stop-item--current .stop-dot{background:var(--color-info);border-color:var(--color-info);color:#fff;animation:stopPulse 2s ease-in-out infinite}.stop-item--pending .stop-dot{background:var(--color-surface-secondary);border-color:var(--color-border);color:var(--color-text-tertiary)}.stop-item--skipped .stop-dot{background:var(--color-error);border-color:var(--color-error);color:#fff}.stop-item--skipped .stop-line{background:var(--color-error)}.stop-skipped-info{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-error);margin-top:4px;font-weight:500}.stop-content{flex:1;min-width:0}.stop-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-12);margin-bottom:var(--space-4)}.stop-info{flex:1;min-width:0}.stop-name{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-4);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-time{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.btn-complete-stop{padding:var(--space-4) var(--space-12);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);flex-shrink:0}.btn-complete-stop:hover{background:var(--color-primary-hover)}.btn-complete-stop:active{opacity:.9}.stop-completed-info{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-base);border:1px solid var(--color-border)}.completed-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);display:flex;align-items:center;gap:var(--space-4)}.completed-time{font-size:11px;color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.stop-current-indicator{display:inline-flex;align-items:center;gap:var(--space-4);font-size:11px;color:var(--color-info);font-weight:var(--font-weight-semibold);margin-top:var(--space-4);animation:stopBlink 1.5s ease-in-out infinite}.stops-more{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);text-align:center;padding:var(--space-8) 0;margin-top:var(--space-8);border-top:1px solid var(--color-border)}.route-timeline-progress{margin-bottom:var(--space-16)}.progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.progress-bar-container{width:100%;height:6px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-sm);transition:width .6s var(--ease-out);position:relative}.route-timeline-actions{display:flex;gap:var(--space-8);justify-content:flex-end;flex-wrap:wrap}.route-action-btn{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-base);background:transparent;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);text-decoration:none}.route-action-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.route-action-btn:active{opacity:.9}.route-action-btn svg{flex-shrink:0}@keyframes stopPulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes stopBlink{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){.route-timeline-card{padding:var(--space-12)}.route-timeline-header{flex-direction:column;align-items:flex-start;gap:var(--space-8)}.route-timeline-meta,.route-timeline-driver{flex-direction:column;gap:var(--space-8)}.route-timeline-actions{justify-content:center}.route-action-btn{flex:1;justify-content:center;min-width:80px}.stops-timeline{padding-left:var(--space-16)}.stop-item{gap:var(--space-8)}.stop-name{font-size:var(--font-size-xs)}.stop-header{flex-direction:column;align-items:stretch;gap:var(--space-8)}.btn-complete-stop{width:100%;padding:var(--space-8) var(--space-16);font-size:var(--font-size-xs)}.stop-completed-info{padding:var(--space-4) var(--space-8)}}.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-12);margin-bottom:var(--space-12)}.hero-stat-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);display:flex;flex-direction:column;gap:var(--space-8);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-sm);overflow:hidden}.hero-stat-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--card-accent);opacity:.8;transition:opacity var(--duration-fast) var(--ease-out)}.hero-stat-card:hover:before{opacity:1}.hero-stat-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12)}.stat-icon-wrapper{flex-shrink:0}.stat-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--icon-bg);color:var(--icon-color);font-size:18px;transition:all var(--duration-fast) var(--ease-out)}.hero-stat-card:hover .stat-icon{background:var(--icon-color);color:#fff}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;line-height:1.4;flex:1;text-align:right}.stat-content{display:flex;flex-direction:column;gap:var(--space-4)}.stat-value{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text);line-height:1;letter-spacing:-.02em}.hero-stat-card:hover .stat-value{color:var(--icon-color)}.stat-trend{display:inline-flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);width:fit-content;letter-spacing:.02em}.stat-trend.up{color:var(--color-success);background:var(--color-success-light);border:1px solid var(--color-success)}.stat-trend.down{color:var(--color-error);background:var(--color-error-light);border:1px solid var(--color-error)}.stat-trend.neutral{color:var(--color-text-secondary);background:var(--color-surface-secondary);border:1px solid var(--color-border)}.stat-sparkline{height:24px;margin-top:var(--space-4);opacity:.6;padding-top:var(--space-8);border-top:1px solid var(--color-border)}.hero-stat-card:hover .stat-sparkline{opacity:1}.stat-sparkline svg{width:100%;height:100%}.hero-stat-card:nth-child(1){--card-accent: var(--color-primary);--icon-bg: rgba(0, 120, 212, .1);--icon-color: var(--color-primary)}.hero-stat-card:nth-child(2){--card-accent: var(--color-success);--icon-bg: rgba(16, 124, 16, .1);--icon-color: var(--color-success)}.hero-stat-card:nth-child(3){--card-accent: var(--color-info);--icon-bg: rgba(0, 120, 212, .1);--icon-color: var(--color-info)}.hero-stat-card:nth-child(4){--card-accent: var(--color-warning);--icon-bg: rgba(255, 185, 0, .12);--icon-color: #C19C00}@media (max-width: 1200px){.hero-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.hero-stats{grid-template-columns:repeat(2,1fr);gap:var(--space-8)}.hero-stat-card{padding:var(--space-12)}.stat-value{font-size:var(--font-size-xl)}.stat-label{font-size:9px}}.stat-value--changed{animation:valueFlash 2s ease-out}@keyframes valueFlash{0%{color:var(--color-primary);transform:scale(1.18)}30%{color:var(--color-success);transform:scale(1.05)}to{color:inherit;transform:scale(1)}}.realtime-activity{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);margin-bottom:0;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;position:relative;min-width:0}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-16);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-border)}.activity-header h3{font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;display:flex;align-items:center;gap:var(--space-8)}.live-indicator{display:inline-flex;align-items:center;gap:var(--space-6);padding:4px 10px;background:var(--color-success-light);color:var(--color-success);border-radius:var(--radius-base);border:1px solid var(--color-success);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase}.live-dot{width:7px;height:7px;background:var(--color-success);border-radius:50%;animation:livePulse 2s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.4}}.activity-feed{display:flex;flex-direction:column;gap:0}.activity-item{display:flex;gap:var(--space-12);padding:var(--space-10) 0;transition:background var(--duration-fast) var(--ease-out);position:relative;flex-shrink:0;min-width:0}.activity-main{min-width:0}.activity-description{overflow-wrap:break-word;word-break:break-word}.activity-item:hover{background:var(--color-surface-secondary);border-radius:var(--radius-base);padding-left:var(--space-8);margin-left:calc(-1 * var(--space-8))}.activity-timeline{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.activity-icon{width:36px;height:36px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);transition:all .2s ease}.activity-item:hover .activity-icon{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.activity-line{width:1px;flex:1;background:var(--color-border);margin-top:var(--space-6);min-height:var(--space-12)}.activity-item:last-child .activity-line{display:none}.activity-content{flex:1;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-12);padding-top:2px}.activity-main{flex:1;display:flex;flex-direction:column;gap:var(--space-6)}.activity-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8)}.activity-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase;background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap}.activity-description{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);margin:0;line-height:1.5}.activity-meta{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.activity-vehicle,.activity-driver,.activity-route{display:flex;align-items:center;gap:var(--space-4);font-weight:var(--font-weight-medium)}.activity-vehicle{color:var(--color-text);font-weight:var(--font-weight-semibold);background:var(--color-surface-secondary);padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:var(--font-size-xs)}.activity-route{color:var(--color-text-secondary);background:var(--color-surface-secondary);padding:2px var(--space-6);border-radius:var(--radius-sm)}.activity-driver{font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.activity-separator{color:var(--color-border-strong);font-weight:400}.activity-time{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0;margin-top:2px}.time-relative{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap}.time-exact{font-size:10px;font-weight:var(--font-weight-regular);color:var(--color-text-tertiary);white-space:nowrap}.no-activity{text-align:center;padding:var(--space-48) var(--space-32);color:var(--color-text-secondary)}.no-activity svg{color:var(--color-text-tertiary);margin-bottom:var(--space-16)}.no-activity p{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-8) 0}.no-activity span{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media (max-width: 768px){.realtime-activity{padding:var(--space-16)}.activity-header h3{font-size:var(--font-size-base)}.live-indicator{font-size:10px;padding:3px 8px}.activity-item{padding:var(--space-8) 0;gap:var(--space-10)}.activity-icon{width:28px;height:28px}.activity-badge{font-size:9px;padding:2px 6px}.activity-description{font-size:var(--font-size-xs)}.activity-content{flex-direction:column;gap:var(--space-6)}.activity-header-row{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.activity-time{align-items:flex-start;margin-top:0}.activity-meta{font-size:11px;gap:var(--space-4)}.activity-vehicle,.activity-route{padding:2px var(--space-4)}}.activity-item--new{animation:activitySlideIn .5s cubic-bezier(.34,1.56,.64,1)}.activity-item--new .activity-icon{animation:iconPulse 2.5s ease-in-out}.activity-item--new .activity-content{animation:contentHighlight 3s ease-out}@keyframes activitySlideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes iconPulse{0%{box-shadow:0 0 #10b98166}20%{box-shadow:0 0 0 8px #10b98133}50%{box-shadow:0 0 0 4px #10b9811a}to{box-shadow:none}}@keyframes contentHighlight{0%{background:#10b9811f;border-radius:var(--radius-base)}to{background:transparent}}.risk-alerts{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);margin-bottom:0;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;position:relative;min-width:0}.alerts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-16);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-border)}.alerts-header h3{font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;display:flex;align-items:center;gap:var(--space-8)}.alerts-count{display:inline-flex;align-items:center;gap:var(--space-6);padding:4px 12px;border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.alerts-count.danger{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.alerts-count.warning{background:var(--color-warning-light);color:var(--color-warning-dark, #92400e);border:1px solid var(--color-warning)}.alerts-count.safe{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.count-badge{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--font-weight-bold);color:var(--color-surface)}.count-badge.danger{background:var(--color-error)}.count-badge.warning{background:var(--color-warning)}.count-badge.safe{background:var(--color-success)}.alerts-grid{display:flex!important;flex-direction:column!important;gap:var(--space-8)}.panel-view-all{margin-top:var(--space-12);padding:var(--space-10) var(--space-12);background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);font-family:var(--font-family-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-6);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.panel-view-all:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.panel-view-all:active{transform:scale(.99)}.panel-view-all svg{transition:transform var(--duration-fast) var(--ease-out)}.panel-view-all:hover svg{transform:translate(2px)}.alert-risk-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:border-color .2s ease,box-shadow .2s ease;position:relative;display:flex;flex-direction:column;flex-shrink:0;min-width:0}.alert-risk-body h4,.alert-description{overflow-wrap:break-word;word-break:break-word}.alert-risk-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.alert-risk-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--color-divider)}.priority-badge{display:inline-flex;align-items:center;gap:var(--space-4);padding:2px 8px;font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-sm)}.priority-badge.priority-high{background:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.priority-badge.priority-medium{background:var(--color-info-light);color:var(--color-info);border:1px solid var(--color-info)}.priority-badge.priority-low{background:var(--color-surface-secondary);color:var(--color-text-tertiary);border:1px solid var(--color-border)}.alert-time{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.alert-risk-body{padding:var(--space-12) var(--space-16);flex:1}.alert-risk-body h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 4px;line-height:1.4}.alert-description{font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:1.5;margin:0 0 var(--space-8) 0}.alert-details{display:flex;flex-direction:column;gap:4px;padding-top:var(--space-8);border-top:1px solid var(--color-divider)}.detail-item{display:flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-xs);color:var(--color-text);font-weight:var(--font-weight-medium)}.detail-item svg{color:var(--color-text-tertiary);flex-shrink:0}.detail-item.type{display:flex;gap:var(--space-6)}.type-label{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.type-value{color:var(--color-text);font-weight:var(--font-weight-semibold);text-transform:capitalize}.alert-risk-footer{padding:var(--space-8) var(--space-16);border-top:1px solid var(--color-divider)}.view-details-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.view-details-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.view-details-btn:active{transform:scale(.98)}.no-alerts{text-align:center;padding:var(--space-48) var(--space-32)}.no-alerts-icon{width:48px;height:48px;margin:0 auto var(--space-16);background:var(--color-success-light);border:1px solid var(--color-success);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-success)}.no-alerts p{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0}.no-alerts span{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media (max-width: 768px){.risk-alerts{padding:var(--space-16)}.alerts-header{flex-direction:column;align-items:flex-start;gap:var(--space-8)}.alerts-header h3{font-size:var(--font-size-base)}.alerts-grid{gap:var(--space-8)}.alert-risk-header,.alert-risk-body{padding:var(--space-10) var(--space-12)}.alert-risk-footer{padding:var(--space-8) var(--space-12)}}.alert-risk-card--new{animation:alertPulse .6s ease-out;border-left:3px solid var(--color-error)}.alert-risk-card--new .priority-badge{animation:badgeFlash 1.5s ease-in-out}@keyframes alertPulse{0%{opacity:0;transform:scale(.97)}40%{box-shadow:0 0 0 4px #d134382e}to{opacity:1;transform:scale(1);box-shadow:none}}@keyframes badgeFlash{0%,to{opacity:1}25%{opacity:.5}50%{opacity:1}75%{opacity:.5}}.upcoming-routes{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12);box-shadow:var(--shadow-xs)}.upcoming-routes-header{display:flex;align-items:center;gap:var(--space-8);padding-bottom:var(--space-8);border-bottom:1px solid var(--color-divider);margin-bottom:var(--space-8);color:var(--color-text)}.upcoming-routes-header h3{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);flex:1}.upcoming-routes-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--color-primary);color:#fff;border-radius:var(--radius-full)}.upcoming-routes-empty{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-12) 0;text-align:center}.upcoming-routes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-8);max-height:380px;overflow-y:auto}.upcoming-route-item{display:grid;grid-template-columns:90px 1fr;gap:var(--space-12);padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-base);border-left:3px solid var(--color-primary)}.upcoming-route-when{display:flex;flex-direction:column;gap:2px}.upcoming-route-day{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em}.upcoming-route-time{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.upcoming-route-meta{min-width:0}.upcoming-route-name{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-route-sub{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.upcoming-route-recurring{font-size:var(--font-size-xs);color:var(--color-info);margin-top:2px}@media (max-width: 768px){.upcoming-route-item{grid-template-columns:70px 1fr;gap:var(--space-8)}}.dashboard-container{display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:1}.app-bar{position:sticky;top:0;z-index:100;background:#ffffffeb;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--color-border);box-shadow:0 1px 4px #0000000f;transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}@media (max-width: 1024px){.dashboard-container.monitoring--map-fullscreen .app-bar{position:fixed;top:0;left:0;right:0;padding-top:env(safe-area-inset-top,0)}.dashboard-container.monitoring--map-fullscreen .app-bar.app-bar--hidden{opacity:0;transform:translateY(-100%);pointer-events:none}.dashboard-container.monitoring--map-fullscreen .main-content{padding-top:0!important}}.app-bar__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-12) var(--space-24);border-bottom:1px solid var(--color-divider)}.app-bar__brand{display:flex;align-items:center;gap:var(--space-16)}.app-bar__logo{height:48px;width:auto;transition:opacity var(--duration-fast) var(--ease-out)}.app-bar__logo:hover{opacity:.85}.app-bar__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;letter-spacing:-.02em}.app-bar__actions{display:flex;align-items:center;gap:var(--space-12)}.app-bar__status{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-12);background:var(--color-success-light);color:var(--color-success);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-base);border:1px solid var(--color-success)}.app-bar__status svg{flex-shrink:0}.app-bar__logout{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-12);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.app-bar__logout:hover{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.top-nav{display:flex;align-items:stretch;gap:0;padding:0 var(--space-24);background:transparent;overflow-x:auto;position:relative;border-top:1px solid var(--color-divider)}.top-nav:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--color-border)}.top-nav__tab{position:relative;padding:var(--space-12) var(--space-20);background:transparent;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);white-space:nowrap;display:flex;align-items:center;gap:var(--space-8);border-radius:0;margin-bottom:-1px;font-family:var(--font-family-base)}.top-nav__tab svg{width:18px;height:18px;opacity:.75;transition:opacity var(--duration-fast) var(--ease-out)}.top-nav__tab:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--color-primary);transform:scaleX(0);transition:transform var(--duration-fast) var(--ease-out)}.top-nav__tab:hover{color:var(--color-text)}.top-nav__tab:hover svg{opacity:1}.top-nav__tab.active{color:var(--color-primary);font-weight:var(--font-weight-semibold);background:transparent}.top-nav__tab.active svg{color:var(--color-primary);opacity:1}.top-nav__tab.active:after{transform:scaleX(1)}.top-nav::-webkit-scrollbar{display:none}.top-nav{scrollbar-width:none}@media (max-width: 768px){.app-bar__header{flex-wrap:wrap;gap:var(--space-8);padding:var(--space-12) var(--space-16)}.app-bar__logo{height:40px}.app-bar__title{font-size:var(--font-size-lg)}.app-bar__actions{gap:var(--space-8)}.app-bar__status{font-size:var(--font-size-xs);padding:var(--space-4) var(--space-8)}.top-nav{padding:0 var(--space-12);gap:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}.top-nav__tab{padding:var(--space-12) var(--space-12);font-size:var(--font-size-xs);gap:var(--space-4)}.top-nav__tab svg{width:16px;height:16px}.top-nav__tab span:not(:empty){display:none}.top-nav__tab.active span:not(:empty){display:inline}}@media (max-width: 480px){.app-bar__header{padding:var(--space-8) var(--space-12)}.app-bar__brand{gap:var(--space-8)}.app-bar__logo{height:32px}.app-bar__title{font-size:var(--font-size-base)}.app-bar__logout span{display:none}.top-nav__tab{padding:var(--space-8) var(--space-12);font-size:var(--font-size-xs)}}.sidebar{display:none}.sidebar-header{padding:var(--space-32) var(--space-24) var(--space-24);border-bottom:1px solid var(--color-border)}.sidebar-logo{display:flex;justify-content:center;align-items:center;margin-bottom:var(--space-16);padding:var(--space-8) 0}.sidebar-logo .logo-image{width:100%;max-width:100px;height:auto;object-fit:contain}.sidebar-header p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0;font-weight:var(--font-weight-medium);padding:var(--space-8) var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-base);border-left:2px solid var(--color-primary)}.sidebar-nav{flex:1;padding:var(--space-16) var(--space-12)}.sidebar-nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-4)}.sidebar-nav button{width:100%;text-align:left;background:transparent;border:none;padding:var(--space-12) var(--space-16);border-radius:var(--radius-base);color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);position:relative;display:flex;align-items:center;gap:var(--space-12);letter-spacing:-.01em}.sidebar-nav button:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--color-primary);border-radius:0 2px 2px 0;transition:height var(--duration-fast) var(--ease-out)}.sidebar-nav button:hover{background:var(--color-surface-secondary);color:var(--color-text)}.sidebar-nav button.active{background:var(--color-surface-secondary);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.sidebar-nav button.active:before{height:20px}.main-content{flex:1;overflow-y:auto;background:var(--color-background);padding:var(--space-16) var(--space-24)}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-16);margin-bottom:var(--space-20)}.dashboard-grid__widget{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.dashboard-grid__widget:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong);transform:translateY(-2px)}.widget__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-16);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-divider)}.widget__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;display:flex;align-items:center;gap:var(--space-8)}.widget__action{color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}.widget__action:hover{color:var(--color-primary-hover)}.dashboard-grid__widget--span-2{grid-column:span 2}.dashboard-grid__widget--span-3{grid-column:span 3}@media (max-width: 1200px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid__widget--span-2,.dashboard-grid__widget--span-3{grid-column:span 2}}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.dashboard-grid__widget--span-2,.dashboard-grid__widget--span-3{grid-column:span 1}}.stat-widget{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16)}.stat-widget__content{flex:1}.stat-widget__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4) 0;font-weight:var(--font-weight-medium)}.stat-widget__value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;line-height:1.2}.stat-widget__change{font-size:var(--font-size-sm);margin-top:var(--space-4);display:flex;align-items:center;gap:var(--space-4)}.stat-widget__change--positive{color:var(--color-success)}.stat-widget__change--negative{color:var(--color-error)}.stat-widget__icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-surface-secondary);display:flex;align-items:center;justify-content:center;color:var(--color-primary);font-size:24px}.stat-widget__icon--success{background:var(--color-success-light);color:var(--color-success)}.stat-widget__icon--warning{background:var(--color-warning-light);color:var(--color-warning)}.stat-widget__icon--error{background:var(--color-error-light);color:var(--color-error)}.progress-widget{display:flex;flex-direction:column;gap:var(--space-12)}.progress-widget__item{display:flex;flex-direction:column;gap:var(--space-4)}.progress-widget__header{display:flex;justify-content:space-between;align-items:center}.progress-widget__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.progress-widget__value{font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-semibold)}.progress-widget__bar{height:6px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.progress-widget__fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .3s var(--ease-out)}.progress-widget__fill--success{background:var(--color-success)}.progress-widget__fill--warning{background:var(--color-warning)}.progress-widget__fill--error{background:var(--color-error)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-16) 0;margin-bottom:var(--space-20)}.dashboard-header h1{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;letter-spacing:-.03em;display:flex;align-items:center;gap:var(--space-12)}.header-actions{display:flex;align-items:center;gap:var(--space-12)}.realtime-status{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-xs)}.realtime-status:before{content:"";width:6px;height:6px;background:var(--color-success);border-radius:50%}.logout-btn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);padding:var(--space-8) var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.logout-btn:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.demo-badge{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-12);background:var(--color-warning);color:#fff;border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.05em}.demo-toggle-btn{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-16);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.demo-toggle-btn:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.demo-toggle-btn.active{background:var(--color-warning);border-color:var(--color-warning);color:#fff}.demo-toggle-btn.active:hover{background:var(--color-warning)}.dashboard-content{display:flex;flex-direction:column;gap:var(--space-12)}.section-description{color:var(--color-text-secondary);font-size:var(--font-size-base);margin-bottom:var(--space-20);line-height:var(--line-height-relaxed)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-12);margin-bottom:var(--space-24)}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);display:flex;align-items:center;gap:var(--space-12);transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-sm)}.kpi-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text-secondary);font-size:16px;line-height:1;transition:all var(--duration-fast) var(--ease-out);flex-shrink:0}.kpi-card:hover .kpi-icon{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.kpi-content{flex:1;min-width:0}.kpi-value{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);margin:0 0 2px;line-height:1}.kpi-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin:0;line-height:1.2;text-transform:uppercase;letter-spacing:.05em}.alerts-section h3{font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-16) 0;display:flex;align-items:center;gap:var(--space-8);letter-spacing:-.02em}.alerts-grid{display:flex;flex-direction:column;gap:var(--space-8)}.alert-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16) var(--space-20);transition:all var(--duration-fast) var(--ease-out);cursor:pointer;position:relative;overflow:hidden;display:flex;align-items:center;gap:var(--space-16);box-shadow:var(--shadow-xs)}.alert-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.alert-card.alert-alta:before{background:var(--color-error)}.alert-card.alert-media:before{background:var(--color-warning)}.alert-card.alert-baja:before{background:var(--color-info)}.alert-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.alert-header{display:flex;align-items:center;gap:var(--space-8);flex-shrink:0}.alert-type{font-size:24px;flex-shrink:0}.alert-priority{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:0;text-transform:uppercase;letter-spacing:.05em;background:none;border:none}.alert-card.alert-alta .alert-priority{color:var(--color-error)}.alert-card.alert-media .alert-priority{color:#c19c00}.alert-card.alert-baja .alert-priority{color:var(--color-text-tertiary)}.alert-content{display:flex;flex-direction:column;gap:var(--space-4);flex:1}.alert-truck{font-weight:var(--font-weight-semibold);color:var(--color-text);font-size:var(--font-size-sm);letter-spacing:-.01em;margin-bottom:2px}.alert-message{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.5;font-weight:var(--font-weight-medium)}.service-filters{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);margin-bottom:var(--space-20);box-shadow:var(--shadow-sm)}.filter-group{display:flex;align-items:center;gap:var(--space-16)}.filter-group label{color:var(--color-text);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);min-width:140px}.filter-buttons{display:flex;gap:var(--space-8);background:transparent;padding:0}.filter-btn{background:var(--color-surface-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:var(--space-8) var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex;align-items:center;gap:var(--space-8)}.filter-btn:hover{background:var(--color-surface-secondary);color:var(--color-primary);border-color:var(--color-border-strong)}.filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong);transform:translateY(-2px)}.card__body{padding:var(--space-20)}.card__body h3{font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-20) 0;letter-spacing:-.02em;display:flex;align-items:center;gap:var(--space-8)}.operations-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-24);box-shadow:var(--shadow-sm);min-height:400px}.operations-content-modern{display:flex;flex-direction:column;gap:var(--space-20)}.ops-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-24);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);gap:var(--space-20);flex-wrap:wrap}.ops-header-content{display:flex;align-items:center;gap:var(--space-16);flex:1;min-width:300px}.ops-header-icon{width:48px;height:48px;padding:var(--space-12);background:var(--color-primary);border-radius:var(--radius-md);color:#fff;flex-shrink:0}.ops-header-text h2{font-family:var(--font-family-display);font-size:24px;font-weight:700;color:var(--color-text);margin:0 0 var(--space-4) 0;letter-spacing:-.02em;line-height:1.2}.ops-header-text p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;font-weight:var(--font-weight-medium);line-height:1.5}.ops-header-actions{display:flex;align-items:center;gap:var(--space-16);flex-wrap:wrap}.ops-header-buttons{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.ops-header-stats{display:flex;gap:var(--space-8);flex-wrap:wrap}.btn-add-personnel{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-20);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-family-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;box-shadow:var(--shadow-xs)}.btn-add-personnel:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-create-profile{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-20);background:var(--color-info);color:#fff;border:1px solid var(--color-info);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-family-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);white-space:nowrap}.btn-create-profile:hover{background:var(--color-info-dark, #005a9e)}.btn-add-modern{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-20);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-family-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);white-space:nowrap}.btn-add-modern:hover{background:var(--color-primary-hover)}.stat-pill{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-16);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:default}.stat-pill:hover{border-color:var(--color-border-strong)}.stat-pill.success{background:var(--color-success-light);border-color:var(--color-success)}.stat-pill.info{background:var(--color-info-light);border-color:var(--color-info)}.stat-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);line-height:1;letter-spacing:-.02em}.stat-pill.success .stat-value{color:var(--color-success)}.stat-pill.info .stat-value{color:var(--color-info)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.ops-filters-modern{display:flex;gap:var(--space-8);padding:0;background:transparent;flex-wrap:wrap}.ops-filter-chip{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);flex:1;justify-content:center;min-width:140px}.ops-filter-chip:hover{border-color:var(--color-border-strong);color:var(--color-text)}.ops-filter-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.ops-filter-chip svg{flex-shrink:0}.chip-badge{padding:2px var(--space-8);background:var(--color-surface-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin-left:auto}.ops-filter-chip.active .chip-badge{background:#ffffff40}.ops-content-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-24);box-shadow:var(--shadow-sm);min-height:400px}.vehicle-grid-modern,.routes-grid-modern{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-16)}.empty-state-modern{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-48) var(--space-32);text-align:center}.empty-icon-modern{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);margin-bottom:var(--space-20)}.empty-state-modern h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-8) 0}.empty-state-modern p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;max-width:400px;line-height:1.6}@media (max-width: 1024px){.ops-header{padding:var(--space-16)}.ops-header-text h2{font-size:var(--font-size-lg)}.ops-content-wrapper{padding:var(--space-16)}.vehicle-grid-modern,.routes-grid-modern{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-12)}}@media (max-width: 768px){.ops-header{flex-direction:column;padding:var(--space-16)}.ops-header-content{min-width:auto;width:100%}.ops-header-text h2{font-size:var(--font-size-lg)}.btn-add-personnel{width:100%;justify-content:center;order:2}.ops-header-stats{width:100%;order:3}.stat-pill{flex:1;min-width:100px}.ops-filters-modern{flex-direction:column}.ops-filter-chip{width:100%}.ops-content-wrapper{padding:var(--space-16)}.vehicle-grid-modern,.routes-grid-modern{grid-template-columns:1fr}}.section-header{margin-bottom:var(--space-20);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-border)}.section-header:not(:first-child){margin-top:var(--space-32)}.section-title{display:flex;flex-direction:column;gap:var(--space-8)}.section-title h3{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;letter-spacing:-.02em}.section-title p{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin:0;line-height:1.5}.operations-section{display:flex;flex-direction:column;gap:var(--space-24)}.operations-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-12);padding:0;background:transparent}.ops-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8);padding:var(--space-20);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-sm)}.ops-tab svg{transition:color var(--duration-fast) var(--ease-out);font-size:24px;color:var(--color-text-tertiary)}.ops-tab span{letter-spacing:-.01em}.ops-tab:hover{border-color:var(--color-border-strong);color:var(--color-text);transform:translateY(-2px);box-shadow:var(--shadow-md)}.ops-tab:hover svg{color:var(--color-primary)}.ops-tab-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:var(--font-weight-semibold)}.ops-tab-active svg{color:#fff}.ops-tab-active:hover{background:var(--color-primary-hover)}.ops-tab-active:hover svg{color:#fff}@media (max-width: 768px){.operations-tabs{grid-template-columns:repeat(2,1fr);gap:var(--space-8)}.ops-tab{padding:var(--space-12);font-size:var(--font-size-xs)}}@media (max-width: 480px){.operations-tabs{grid-template-columns:1fr}}.vehicle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-16);margin-bottom:var(--space-24)}.routes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-16);margin-bottom:var(--space-24)}.empty-state{text-align:center;padding:var(--space-48) var(--space-32);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.empty-icon{color:var(--color-text-tertiary);margin-bottom:var(--space-16);display:flex;justify-content:center}.empty-state h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-8) 0}.empty-state p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}@media (max-width: 1024px){.sidebar{width:220px}.dashboard-content,.dashboard-header{padding:var(--space-20)}}@media (max-width: 768px){.dashboard-container{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;border-right:none;border-bottom:1px solid var(--color-border)}.sidebar-nav{padding:var(--space-12)}.sidebar-nav ul{flex-direction:row;overflow-x:auto;gap:var(--space-8)}.sidebar-nav button{white-space:nowrap;padding:var(--space-8) var(--space-16)}.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--space-16);padding:var(--space-16)}.dashboard-header h1{font-size:var(--font-size-xl)}.header-actions{width:100%;justify-content:space-between}.dashboard-content{padding:var(--space-16)}.kpi-grid{grid-template-columns:1fr}.alerts-grid{gap:var(--space-8)}.alert-card{padding:var(--space-12) var(--space-16)}.filter-group{flex-direction:column;align-items:flex-start;gap:var(--space-12)}.filter-group label{min-width:auto}.filter-buttons{width:100%}.filter-btn{flex:1;text-align:center}.vehicle-grid,.routes-grid{grid-template-columns:1fr;gap:var(--space-12)}.empty-state{padding:var(--space-32) var(--space-16)}}.map-section{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16);margin-bottom:var(--space-16);box-shadow:var(--shadow-sm);overflow:hidden}.map-section:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-primary)}.map-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-12);flex-wrap:wrap;gap:var(--space-12);padding:0;position:relative;z-index:2}.map-header h3{font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;letter-spacing:-.02em;display:flex;align-items:center;gap:var(--space-12)}.service-filters-modern{display:inline-flex;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-12);background:transparent;border:1px solid transparent;border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.filter-chip:hover{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-xs)}.filter-chip.active{background:var(--color-primary);color:#fff;font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm)}.map-container-modern{position:relative;border-radius:var(--radius-md);overflow:hidden;height:calc(100vh - 320px);min-height:500px;max-height:900px;background:#1a1a1a;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);z-index:1}.map-container-modern>div{height:100%;width:100%;position:relative;z-index:1}.maximize-btn{padding:var(--space-8) var(--space-12);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex;align-items:center;gap:var(--space-8)}.maximize-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.dashboard-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-20)}@media (max-width: 1024px){.dashboard-grid-2col{grid-template-columns:1fr;gap:var(--space-16)}}.dashboard-grid-2col>*{position:relative;background:none;border:none;border-radius:0;padding:0;box-shadow:none;overflow:visible;margin-bottom:0;height:auto;transition:none}@media (max-width: 768px){.map-section{padding:var(--space-16)}.map-header{flex-direction:column;align-items:flex-start}.map-header h3{font-size:var(--font-size-lg)}.service-filters-modern{width:100%}.filter-chip{flex:1;justify-content:center;padding:var(--space-8) var(--space-12);font-size:var(--font-size-xs)}.map-container-modern{height:60dvh;min-height:400px}}.map-maximized-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s var(--ease-out);padding:20px}.map-maximized-container{width:100%;max-width:calc(100vw - 40px);height:calc(100vh - 40px);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden}.map-maximized-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-20) var(--space-24);border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.map-maximized-title{display:flex;align-items:center;gap:var(--space-12)}.map-maximized-title h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.02em}.map-maximized-title svg{color:var(--color-primary)}.map-maximized-actions{display:flex;align-items:center;gap:var(--space-16)}.map-maximized-content{flex:1;position:relative;overflow:hidden}.map-maximized-content>div{height:100%}.minimize-btn{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error);padding:var(--space-8) var(--space-12);border-radius:var(--radius-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex;align-items:center;justify-content:center}.minimize-btn:hover{background:var(--color-error);color:#fff}.map-floating-notifications{position:absolute;top:20px;right:20px;display:flex;flex-direction:column;gap:var(--space-16);max-width:420px;pointer-events:none;z-index:2000}.map-floating-activity,.map-floating-alerts{pointer-events:auto;background:#fffffff2;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);overflow:hidden;max-height:450px;transition:all var(--duration-fast) var(--ease-out)}.map-floating-activity:hover,.map-floating-alerts:hover{box-shadow:var(--shadow-xl)}.map-maximized-map-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:1}.map-maximized-map-wrapper .map-component-wrapper,.map-maximized-map-wrapper .map-component{width:100%!important;height:100%!important}.map-maximized-map-wrapper .leaflet-container{width:100%!important;height:100%!important;background:#1a1a1a}@media (max-width: 768px){.map-maximized-overlay{padding:10px}.map-maximized-container{max-width:calc(100vw - 20px);height:calc(100vh - 20px)}.map-maximized-header{padding:var(--space-16) var(--space-20);flex-direction:column;align-items:flex-start;gap:var(--space-12)}.map-maximized-title h2{font-size:var(--font-size-lg)}.map-maximized-actions{width:100%;justify-content:space-between}.map-floating-notifications{position:fixed;top:auto;bottom:20px;left:20px;right:20px;max-width:none;flex-direction:row;gap:var(--space-8)}.map-floating-activity,.map-floating-alerts{flex:1;max-height:200px}}.modal-overlay-v2{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .2s ease-out}.modal-content-v2{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-personnel{max-width:700px}.modal-header-v2{display:flex;justify-content:space-between;align-items:center;padding:var(--space-20) var(--space-24);border-bottom:1px solid var(--color-border)}.modal-header-v2 h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.btn-close-v2{width:36px;height:36px;border-radius:var(--radius-base);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-out)}.btn-close-v2:hover{background:var(--color-surface-secondary);color:var(--color-text)}.modal-form-v2{padding:var(--space-24)}.form-group-v2{margin-bottom:var(--space-20)}.form-group-v2 label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-8)}.form-group-v2 input,.form-group-v2 select.select-v2{width:100%;padding:var(--space-8) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);font-family:inherit;transition:border-color var(--duration-fast) var(--ease-out);background:var(--color-surface);color:var(--color-text)}.form-group-v2 input:focus,.form-group-v2 select.select-v2:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.form-row-v2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);margin-bottom:var(--space-20)}.form-divider-v2{display:flex;align-items:center;gap:var(--space-8);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin:var(--space-24) 0 var(--space-20) 0;padding-bottom:var(--space-12);border-bottom:2px solid var(--color-border)}.modal-actions-v2{display:flex;gap:var(--space-12);justify-content:flex-end;margin-top:var(--space-24);padding-top:var(--space-20);border-top:1px solid var(--color-border)}.btn-secondary-v2{padding:var(--space-8) var(--space-20);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.btn-secondary-v2:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.btn-primary-v2{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-20);border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-xs)}.btn-primary-v2:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-sm)}@media (max-width: 768px){.modal-content-v2{margin:10px;max-height:calc(100vh - 20px)}.form-row-v2{grid-template-columns:1fr}.modal-actions-v2{flex-direction:column}.btn-secondary-v2,.btn-primary-v2,.btn-create-profile{width:100%;justify-content:center}.ops-header-buttons{width:100%;flex-direction:column}}.modal-profile{max-width:560px}.modal-header-title{display:flex;align-items:center;gap:var(--space-12)}.modal-header-title svg{color:var(--color-primary)}.profile-status{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-20)}.profile-status.success{background:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success)}.profile-status.error{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error)}.profile-status.warning{background:var(--color-warning-light);border:1px solid var(--color-warning);color:#c19c00;flex-direction:column;align-items:flex-start;gap:var(--space-12)}.status-content{display:flex;flex-direction:column;gap:var(--space-8);width:100%}.btn-logout-inline{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-16);background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);align-self:flex-start}.btn-logout-inline:hover{background:#b91c1c}.form-hint{display:block;margin-top:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.dashboard-container:has(.monitoring-layout),.dashboard-container.monitoring-active{height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;overflow:hidden}.main-content:has(.monitoring-layout),.dashboard-container.monitoring-active>.main-content{overflow:hidden!important;padding:0!important;flex:1;min-height:0;display:flex;flex-direction:column}.main-content:has(.monitoring-layout)>.monitoring-layout,.dashboard-container.monitoring-active .monitoring-layout{flex:1;min-height:0}.monitoring-map-fabs{position:absolute;top:12px;right:12px;z-index:10;display:flex;flex-direction:column;gap:8px}.monitoring-fab{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--duration-fast) var(--ease-out);padding:0}.monitoring-fab:hover{background:var(--color-primary-hover);transform:scale(1.05)}.monitoring-fab:active{transform:scale(.92)}@media (min-width: 1025px){.monitoring-layout{display:flex;flex-direction:row;height:100%;overflow:hidden}.monitoring-side-panel{width:400px;min-width:400px;overflow-y:auto;border-right:1px solid var(--color-border);background:var(--color-surface);display:flex;flex-direction:column}.monitoring-side-panel .hero-stats{border:none;border-radius:0;box-shadow:none;border-bottom:1px solid var(--color-border);margin:0;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-8);padding:var(--space-12)}.monitoring-side-panel .hero-stat-card{padding:var(--space-8) var(--space-12)}.monitoring-side-panel .hero-stat-card .stat-value{font-size:var(--font-size-xl)}.monitoring-side-panel .hero-stat-card .stat-label{font-size:var(--font-size-xs)}.monitoring-side-panel .realtime-activity,.monitoring-side-panel .risk-alerts{flex:1;min-height:200px;border-radius:0;border:none;border-bottom:1px solid var(--color-border);box-shadow:none;margin:0;overflow-y:auto}.monitoring-side-panel .risk-alerts{border-bottom:none}.monitoring-side-panel .activity-content{flex-direction:column;gap:var(--space-6)}.monitoring-side-panel .activity-time{align-items:flex-start;margin-top:0}.monitoring-side-panel .activity-header-row{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.monitoring-side-panel .activity-meta{flex-wrap:wrap}.monitoring-map-area{flex:1;height:100%;position:relative;overflow:hidden}.monitoring-map-area .map-section{height:100%;border:none;padding:0;border-radius:0;box-shadow:none;margin:0}.monitoring-map-area .map-section:before{display:none}.monitoring-map-area .map-container-modern{height:100%!important;min-height:100%;max-height:none;border-radius:0;border:none}.monitoring-map-area .map-controls-panel,.monitoring-kpi-overlay,.monitoring-bottom-sheet{display:none}}@media (max-width: 1024px){.monitoring-layout{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;position:relative}.monitoring-side-panel{display:none}.monitoring-map-area{flex:1;min-height:0;position:relative;overflow:hidden;height:100%}.monitoring-map-area .map-section{height:100%;min-height:0;border:none;padding:0;border-radius:0;box-shadow:none;margin:0;display:flex;flex-direction:column}.monitoring-map-area .map-section:before{display:none}.monitoring-map-area .map-container-modern{flex:1;height:100%!important;min-height:0;max-height:none;border-radius:0;border:none}.monitoring-map-area .map-controls-panel{display:none}.monitoring-kpi-overlay{position:absolute;top:calc(env(safe-area-inset-top,0) + var(--space-8));left:var(--space-8);right:calc(var(--space-8) + 48px);z-index:10;display:flex;gap:var(--space-4);pointer-events:none}.monitoring-kpi-chip{pointer-events:auto;flex:1;min-width:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffeb;border-radius:var(--radius-md);padding:3px var(--space-8);text-align:center;box-shadow:var(--shadow-sm);border:1px solid rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.kpi-chip__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1}.kpi-chip__label{font-size:10px;color:var(--color-text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1}.monitoring-bottom-sheet{position:absolute;bottom:0;left:0;right:0;z-index:25;background:var(--color-surface);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -4px 20px #00000026;display:flex;flex-direction:column;transition:height .3s cubic-bezier(.1,.9,.2,1);overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0)}.monitoring-bottom-sheet.collapsed{height:64px}.monitoring-bottom-sheet.expanded{height:min(60dvh,calc(100dvh - 140px))}.monitoring-sheet__handle{cursor:pointer;padding:var(--space-8) var(--space-16);display:flex;flex-direction:column;align-items:center;gap:var(--space-8);flex-shrink:0;min-height:44px}.handle-bar{width:36px;height:4px;background:var(--color-border-strong, #ccc);border-radius:var(--radius-full)}.monitoring-sheet__tabs{display:flex;gap:var(--space-4);width:100%}.sheet-tab{flex:1;padding:var(--space-8) var(--space-12);min-height:44px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.sheet-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.sheet-tab__badge{background:var(--color-error);color:#fff;font-size:10px;font-weight:var(--font-weight-semibold);padding:1px 6px;border-radius:var(--radius-full);line-height:1.4}.sheet-tab.active .sheet-tab__badge{background:#ffffff4d}.monitoring-sheet__content{flex:1;overflow-y:auto;padding:0 var(--space-12) var(--space-12)}.monitoring-sheet__content .realtime-activity,.monitoring-sheet__content .risk-alerts{border:none;border-radius:0;box-shadow:none;min-height:0;max-height:none;margin:0}}.dashboard-container.monitoring-active{height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;overflow:hidden}.monitoring-active .main-content{overflow:hidden!important;padding:0!important;flex:1;min-height:0;display:flex;flex-direction:column}.monitoring-active .main-content>.monitoring-layout{flex:1;min-height:0}@media (max-width: 1024px){.monitoring-active{display:flex!important;flex-direction:column!important;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}.monitoring-active .app-bar{flex:0 0 auto!important}.monitoring-active .main-content{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow:hidden!important;padding:0!important;display:flex!important;flex-direction:column!important}.monitoring-active .main-content>.monitoring-layout{flex:1 1 auto!important;min-height:0!important;height:auto!important;display:flex!important;flex-direction:column!important;position:relative!important;overflow:hidden!important}.monitoring-active .monitoring-map-area{flex:1 1 auto!important;min-height:0!important;height:auto!important;position:relative!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.monitoring-active .monitoring-map-area .map-section{flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;width:100%!important;padding:0!important;margin:0!important;border:none!important;border-radius:0!important;box-shadow:none!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.monitoring-active .monitoring-map-area .map-container-modern{flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;width:100%!important;border:none!important;border-radius:0!important}.monitoring-active .monitoring-map-area .map-container-modern>div,.monitoring-active .monitoring-map-area .maplibre-component-wrapper,.monitoring-active .monitoring-map-area .maplibregl-map,.monitoring-active .monitoring-map-area .maplibregl-canvas-container,.monitoring-active .monitoring-map-area .maplibregl-canvas,.monitoring-active .monitoring-map-area .leaflet-container{height:100%!important;width:100%!important;min-height:0!important;max-height:none!important;border-radius:0!important}}@media (max-width: 480px){.app-bar__header{padding:var(--space-8) var(--space-12);gap:var(--space-8)}.app-bar__brand{gap:var(--space-8)}.app-bar__logo{height:28px}.app-bar__actions{gap:var(--space-4)}.app-bar__status{padding:var(--space-4) var(--space-8);font-size:10px;gap:var(--space-4)}.app-bar__status svg{width:12px;height:12px}.app-bar__logout{padding:var(--space-8);min-width:36px;min-height:36px;justify-content:center}.app-bar__logout span{display:none}.main-content{padding:var(--space-12)}.dashboard-grid,.dashboard-grid-2col,.vehicle-grid,.routes-grid,.vehicle-grid-modern,.routes-grid-modern{grid-template-columns:1fr!important;gap:var(--space-12)}.operations-tabs{grid-template-columns:repeat(2,1fr)!important;gap:var(--space-8)}.ops-tab{padding:var(--space-12) var(--space-8);gap:var(--space-4);min-height:72px}.ops-tab svg{width:20px;height:20px}.ops-tab span{font-size:11px;text-align:center}.modal-overlay-v2{padding:8px}.modal-content-v2{max-height:calc(100dvh - 16px);border-radius:var(--radius-base)}.modal-header-v2,.modal-form-v2{padding:var(--space-16)}.modal-header-v2 h2{font-size:var(--font-size-md)}.form-row-v2{grid-template-columns:1fr;gap:var(--space-12);margin-bottom:var(--space-12)}.modal-actions-v2{flex-direction:column-reverse;gap:var(--space-8);margin-top:var(--space-16);padding-top:var(--space-16)}.btn-secondary-v2,.btn-primary-v2{width:100%;justify-content:center;min-height:44px}.map-maximized-overlay{padding:0}.map-maximized-container{max-width:100vw;height:100dvh;border-radius:0}.monitoring-fab{width:32px;height:32px}.monitoring-bottom-sheet.expanded{height:65dvh}.monitoring-bottom-sheet.collapsed{height:52px}}@media (max-width: 768px){.main-content table,.main-content .personnel-table,.main-content .data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.ops-header{flex-direction:column;align-items:stretch;gap:var(--space-12);padding:var(--space-12)}.ops-header-stats{flex-wrap:wrap}.stat-pill{flex:1 1 calc(50% - var(--space-8));min-width:0}.section-title h3{font-size:var(--font-size-lg)}.main-content{padding:var(--space-12) var(--space-16)}.dashboard-container{overflow-x:hidden}.monitoring-kpi-overlay{right:calc(var(--space-8) + 44px);gap:2px}.monitoring-kpi-chip{padding:2px var(--space-4);gap:2px}.kpi-chip__value{font-size:var(--font-size-xs)}.kpi-chip__label{font-size:9px}.sheet-tab{font-size:var(--font-size-xs)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s cubic-bezier(.4,0,.2,1)}.modal-content{background:#fff;border-radius:24px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;box-shadow:0 25px 50px -12px #00000040;border:1px solid var(--color-border);animation:slideUp .4s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:28px 32px;background:linear-gradient(135deg,var(--color-success-light) 0%,var(--color-success-light) 100%);border-bottom:1px solid var(--color-divider)}.modal-header h3{font-size:22px;font-weight:700;color:var(--color-text);margin:0;letter-spacing:-.02em;display:flex;align-items:center;gap:12px}.modal-header h3 svg{color:var(--color-primary)}.modal-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:var(--color-text-secondary)}.modal-close:hover{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error);transform:rotate(90deg) scale(1.1)}.modal-body{padding:32px;overflow-y:auto;max-height:calc(90vh - 220px)}.stop-info{display:flex;align-items:flex-start;gap:16px;padding:20px;background:linear-gradient(135deg,var(--color-surface-secondary) 0%,var(--color-surface-secondary) 100%);border-radius:16px;border:2px solid var(--color-border);margin-bottom:28px;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stop-icon{width:48px;height:48px;background:var(--color-primary);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:var(--shadow-sm)}.stop-name{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:6px}.stop-description{font-size:14px;color:var(--color-text-secondary);line-height:1.6}.weight-options{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1)}.weight-options h4{font-size:16px;font-weight:600;color:var(--color-text);margin:0 0 20px;text-align:center}.weight-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.weight-option{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 20px;background:#fff;border:2px solid var(--color-border);border-radius:18px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.weight-option:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--color-primary);opacity:0;transition:opacity .3s ease;z-index:0}.weight-option:hover{border-color:var(--color-primary);transform:translateY(-4px);box-shadow:var(--shadow-md)}.weight-option.selected{border-color:var(--color-primary);background:linear-gradient(135deg,var(--color-success-light) 0%,var(--color-success-light) 100%);box-shadow:var(--shadow-md);transform:scale(1.02)}.weight-option.selected:before{opacity:.05}.weight-option[data-category=baja]{border-color:#d1e7c9;background:linear-gradient(135deg,#f0f9ed,#e8f5e3)}.weight-option[data-category=baja]:hover,.weight-option[data-category=baja].selected{border-color:#6b9656;box-shadow:0 8px 20px #6b965640}.weight-option[data-category=intermedia]{border-color:#e5d4a8;background:linear-gradient(135deg,#faf6eb,#f5efd9)}.weight-option[data-category=intermedia]:hover,.weight-option[data-category=intermedia].selected{border-color:#9b8456;box-shadow:0 8px 20px #9b845640}.weight-option[data-category=alta]{border-color:#c8dac0;background:linear-gradient(135deg,var(--color-success-light) 0%,#e3f2dd 100%)}.weight-option[data-category=alta]:hover,.weight-option[data-category=alta].selected{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.weight-option[data-category="muy alta"]{border-color:#e8c9c5;background:linear-gradient(135deg,#faf5f4,#f5e8e6)}.weight-option[data-category="muy alta"]:hover,.weight-option[data-category="muy alta"].selected{border-color:#a85a52;box-shadow:0 8px 20px #a85a5240}.weight-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);position:relative;z-index:1;transition:all .3s ease}.weight-option[data-category=baja] .weight-icon{color:#6b9656}.weight-option[data-category=intermedia] .weight-icon{color:#9b8456}.weight-option[data-category=alta] .weight-icon{color:var(--color-primary)}.weight-option[data-category="muy alta"] .weight-icon{color:#a85a52}.weight-option:hover .weight-icon,.weight-option.selected .weight-icon{transform:scale(1.15)}.weight-content{text-align:center;position:relative;z-index:1}.weight-type{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:4px}.weight-description{font-size:13px;color:var(--color-text-secondary);line-height:1.4}.error-message{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:12px;color:var(--color-error);font-size:14px;font-weight:500;margin-bottom:20px;animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.weight-summary{background:linear-gradient(135deg,var(--color-success-light) 0%,var(--color-success-light) 100%);border:1px solid var(--color-primary);border-radius:16px;padding:20px;margin-top:24px;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}.summary-header{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:var(--color-primary);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-divider)}.summary-content{display:flex;flex-direction:column;gap:12px}.summary-item{display:flex;justify-content:space-between;align-items:center;font-size:14px}.summary-label{color:var(--color-text-secondary);font-weight:500}.summary-value{color:var(--color-text);font-weight:700}.summary-item.total{padding-top:12px;border-top:1px solid var(--color-divider)}.summary-item.total .summary-value{color:var(--color-primary);font-size:16px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:24px 32px;background:var(--color-surface-secondary);border-top:1px solid var(--color-border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--outline{background:#fff;color:var(--color-text-secondary);border:2px solid var(--color-border)}.btn--outline:hover:not(:disabled){background:var(--color-surface-secondary);border-color:var(--color-border-strong);transform:translateY(-2px)}.btn--primary{background:var(--color-primary);color:#fff;border:none;box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn--primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.loading-text{display:flex;align-items:center;gap:10px}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media (max-width: 768px){.weight-grid,.modal-actions{grid-template-columns:1fr}.modal-header{padding:20px 24px}.modal-body{padding:24px}.modal-actions{padding:20px 24px}}.weight-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:1000;display:flex;align-items:flex-end;animation:sheetFadeIn .2s ease}@keyframes sheetFadeIn{0%{opacity:0}to{opacity:1}}.weight-sheet{width:100%;background:var(--color-surface);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #0000002e;padding:0 16px max(16px,env(safe-area-inset-bottom)) 16px;animation:sheetSlideUp .35s cubic-bezier(.32,.72,0,1);max-height:55vh;overflow-y:auto}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.weight-sheet__handle{width:36px;height:4px;background:var(--color-border-strong);border-radius:2px;margin:10px auto 8px}.weight-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:0 0 8px}.weight-sheet__stop-badge{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--color-surface-secondary);border-radius:var(--radius-full);font-size:13px;font-weight:600;color:var(--color-text);max-width:calc(100% - 50px);overflow:hidden}.weight-sheet__stop-badge svg{color:var(--color-primary);flex-shrink:0}.weight-sheet__stop-badge span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weight-sheet__close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0}.weight-sheet__title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:4px 4px 10px}.weight-sheet__categories{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-bottom:12px}.weight-sheet__cat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px 10px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:14px;cursor:pointer;transition:all .2s ease;font-family:inherit}.weight-sheet__cat:active:not(:disabled){transform:scale(.93)}.weight-sheet__cat:disabled{opacity:.5}.weight-sheet__cat[data-category=baja]{background:linear-gradient(180deg,#f0f9ed,#e8f5e3);border-color:#c8dfc0}.weight-sheet__cat[data-category=baja] .weight-sheet__cat-icon{color:#6b9656}.weight-sheet__cat[data-category=intermedia]{background:linear-gradient(180deg,#faf6eb,#f5efd9);border-color:#e0d5b0}.weight-sheet__cat[data-category=intermedia] .weight-sheet__cat-icon{color:#9b8456}.weight-sheet__cat[data-category=alta]{background:linear-gradient(180deg,#eef5fc,#dceafa);border-color:#b8d4f0}.weight-sheet__cat[data-category=alta] .weight-sheet__cat-icon{color:var(--color-primary)}.weight-sheet__cat[data-category="muy alta"]{background:linear-gradient(180deg,#faf5f4,#f5e8e6);border-color:#e0c5c0}.weight-sheet__cat[data-category="muy alta"] .weight-sheet__cat-icon{color:#a85a52}.weight-sheet__cat--selected{border-width:2.5px!important;box-shadow:0 2px 12px #0000001f}.weight-sheet__cat--selected[data-category=baja]{border-color:#6b9656!important}.weight-sheet__cat--selected[data-category=intermedia]{border-color:#9b8456!important}.weight-sheet__cat--selected[data-category=alta]{border-color:var(--color-primary)!important}.weight-sheet__cat--selected[data-category="muy alta"]{border-color:#a85a52!important}.weight-sheet__cat-icon{display:flex;align-items:center;justify-content:center}.weight-sheet__cat-label{font-size:13px;font-weight:700;color:var(--color-text);line-height:1}.weight-sheet__cat-desc{font-size:10px;color:var(--color-text-secondary);line-height:1}.weight-sheet__loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--color-success-light);border-radius:10px;font-size:13px;font-weight:600;color:var(--color-success);margin-bottom:8px;animation:pulse 1.2s ease-in-out infinite}.weight-sheet__skip{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;background:transparent;border:1px solid var(--color-border);border-radius:10px;font-size:12px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;transition:all .2s ease}.weight-sheet__skip:active{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.weight-sheet__skip svg{color:var(--color-warning)}@media (max-width: 360px){.weight-sheet__categories{grid-template-columns:repeat(2,1fr)}}.weight-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:24px;margin-top:16px;background:var(--color-surface-secondary);border-radius:12px;border:1px solid var(--color-border);font-size:15px;font-weight:500;color:var(--color-primary);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.skip-stop-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 24px;background:linear-gradient(135deg,#fffbeb 0%,var(--color-warning-light) 100%);border:2px solid var(--color-warning);border-radius:12px;font-size:15px;font-weight:600;color:var(--color-warning-dark);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:inherit}.skip-stop-btn:hover{background:linear-gradient(135deg,var(--color-warning-light) 0%,#fde68a 100%);border-color:var(--color-warning-dark);box-shadow:0 8px 20px #f59e0b4d;transform:translateY(-2px)}.skip-stop-btn:active{transform:translateY(0);box-shadow:0 2px 8px #f59e0b33}.completion-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.completion-modal-content{background:#fff;border-radius:20px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px #00000040;animation:slideUp .4s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.completion-modal-header{text-align:center;padding:32px 24px 24px;background:linear-gradient(135deg,var(--color-success-light) 0%,var(--color-success-light) 100%);border-bottom:1px solid var(--color-divider)}.completion-header-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--color-primary);border-radius:50%;margin-bottom:16px;color:#fff;box-shadow:var(--shadow-md);animation:successPulse 2s infinite}@keyframes successPulse{0%,to{transform:scale(1);box-shadow:var(--shadow-md)}50%{transform:scale(1.05);box-shadow:var(--shadow-lg)}}.completion-modal-header h2{margin:0 0 8px;font-size:28px;font-weight:700;color:var(--color-text);letter-spacing:-.5px}.completion-modal-header p{margin:0;font-size:15px;color:var(--color-text-secondary);font-weight:500}.completion-modal-body{flex:1;overflow-y:auto;padding:24px}.completion-section{background:var(--color-surface-secondary);border-radius:12px;padding:20px;margin-bottom:16px;border:1px solid var(--color-border)}.completion-section:last-child{margin-bottom:0}.completion-section--warning{background:#ff95000d;border-color:#ff950033}.completion-section-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--color-primary)}.completion-section-header h3{margin:0;font-size:17px;font-weight:700;color:var(--color-text)}.completion-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.completion-info-item{display:flex;flex-direction:column;gap:4px}.completion-info-label{font-size:13px;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.completion-info-value{font-size:16px;color:var(--color-text);font-weight:600}.completion-stops-list{display:flex;flex-direction:column;gap:12px}.completion-stop-item{display:flex;align-items:flex-start;gap:12px;background:#fff;padding:12px;border-radius:10px;border:1px solid var(--color-border);transition:all .2s ease}.completion-stop-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.completion-stop-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-primary);color:#fff;border-radius:50%;font-size:14px;font-weight:700;flex-shrink:0}.completion-stop-content{flex:1;min-width:0}.completion-stop-address{font-size:15px;font-weight:600;color:var(--color-text);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.completion-stop-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.completion-stop-time{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-secondary);font-weight:500}.completion-stop-category{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:700;text-transform:capitalize;border:1px solid}.completion-risks-list{display:flex;flex-direction:column;gap:12px}.completion-risk-item{display:flex;align-items:flex-start;gap:12px;background:#fff;padding:12px;border-radius:10px;border:1px solid rgba(255,149,0,.3)}.completion-risk-icon{font-size:24px;flex-shrink:0}.completion-risk-content{flex:1;min-width:0}.completion-risk-title{font-size:15px;font-weight:600;color:var(--color-text);margin-bottom:6px}.completion-risk-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.completion-risk-priority{display:inline-flex;padding:3px 8px;border-radius:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.completion-risk-priority--baja{background:var(--color-hover-overlay);color:var(--color-primary)}.completion-risk-priority--media{background:#ff950026;color:var(--color-warning-dark)}.completion-risk-priority--alta{background:#ff3b3026;color:var(--color-error)}.completion-risk-priority--critica{background:#8b000026;color:#8b0000}.completion-risk-type{font-size:13px;color:var(--color-text-secondary);font-weight:500}.completion-risk-description{font-size:14px;color:var(--color-text-secondary);line-height:1.5}.completion-observations{width:100%;padding:12px;border:2px solid var(--color-border);border-radius:10px;font-size:15px;color:var(--color-text);font-family:inherit;resize:vertical;transition:all .2s ease}.completion-observations:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.completion-observations::placeholder{color:var(--color-text-muted)}.completion-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;background:var(--color-surface-secondary);border-top:1px solid var(--color-border)}.completion-actions-group{display:flex;gap:12px}.completion-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;white-space:nowrap}.completion-btn:disabled{opacity:.5;cursor:not-allowed}.completion-btn--download{background:transparent;border:2px solid var(--color-border);color:var(--color-primary)}.completion-btn--download:hover:not(:disabled){background:var(--color-surface-secondary);border-color:var(--color-primary);transform:translateY(-1px)}.completion-btn--cancel{background:transparent;border:2px solid var(--color-border);color:var(--color-text-secondary)}.completion-btn--cancel:hover:not(:disabled){background:var(--color-surface-secondary);border-color:var(--color-text-muted)}.completion-btn--confirm{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.completion-btn--confirm:hover:not(:disabled){background:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.completion-btn--confirm:active:not(:disabled){transform:translateY(0)}.completion-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.completion-section--incomplete{background:#ff3b300d;border-color:#ff3b3033;border-width:2px}.completion-alert-box{display:flex;align-items:center;gap:12px;background:#fff;padding:12px 16px;border-radius:10px;border:1px solid rgba(255,59,48,.3);margin-bottom:16px}.completion-alert-box p{margin:0;font-size:14px;color:var(--color-error);font-weight:500;line-height:1.5}.completion-alert-box svg{color:var(--color-error);flex-shrink:0}.completion-stop-item--incomplete{border-color:#ff3b304d;background:#ff3b3005}.completion-stop-item--incomplete:hover{border-color:var(--color-error);box-shadow:0 4px 12px #ff3b3026}.completion-stop-number--incomplete{background:linear-gradient(135deg,var(--color-error) 0%,var(--color-error) 100%);box-shadow:0 2px 8px #ff3b304d}.completion-stop-reason{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-error);font-weight:600;background:#ff3b301a;padding:4px 10px;border-radius:8px}.completion-stop-reason svg{flex-shrink:0}@media (max-width: 1024px){.completion-modal-content{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}.completion-modal-overlay{padding:0}.completion-modal-header{padding:24px 16px 20px}.completion-modal-body{padding:16px}.completion-info-grid{grid-template-columns:1fr;gap:12px}.completion-modal-footer{flex-direction:column;padding:16px}.completion-btn--download{width:100%}.completion-actions-group{width:100%;flex-direction:column}.completion-btn{width:100%}.completion-section{padding:16px}.completion-modal-header h2{font-size:24px}.completion-header-icon{width:64px;height:64px}}.sheet-backdrop--completion{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:2000;display:flex;align-items:flex-end;animation:completionBgIn .2s ease}@keyframes completionBgIn{0%{opacity:0}to{opacity:1}}.completion-sheet{width:100%;background:var(--color-surface);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #0000002e;padding:0 16px max(16px,env(safe-area-inset-bottom)) 16px;animation:completionSheetUp .35s cubic-bezier(.32,.72,0,1);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}@keyframes completionSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.completion-sheet__header{display:flex;align-items:center;gap:12px;padding:4px 0 12px}.completion-sheet__icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0}.completion-sheet__title{font-size:18px;font-weight:700;color:var(--color-text)}.completion-sheet__subtitle{font-size:13px;color:var(--color-text-secondary);font-weight:500}.completion-sheet__header .sheet__close{margin-left:auto}.completion-sheet__stats{display:flex;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--color-border);margin-bottom:8px}.completion-sheet__stat{display:flex;align-items:center;gap:5px;padding:5px 10px;background:var(--color-surface-secondary);border-radius:var(--radius-full);font-size:12px;font-weight:600;color:var(--color-text)}.completion-sheet__stat svg{color:var(--color-primary)}.completion-sheet__stat--warn{background:var(--color-warning-light);color:var(--color-warning-dark)}.completion-sheet__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:4px 0 8px;min-height:0}.completion-sheet__section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:10px 0 6px;display:flex;align-items:center;gap:5px}.completion-sheet__section-label--warn{color:var(--color-warning-dark)}.completion-sheet__section-label--warn svg{color:var(--color-warning)}.completion-sheet__stop{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border)}.completion-sheet__stop:last-of-type{border-bottom:none}.completion-sheet__stop-num{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0;margin-top:2px}.completion-sheet__stop-num--incomplete{background:var(--color-error)}.completion-sheet__stop--incomplete{opacity:.85}.completion-sheet__stop-info{flex:1;min-width:0}.completion-sheet__stop-addr{font-size:14px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.completion-sheet__stop-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary);margin-top:2px}.completion-sheet__cat{display:inline-flex;align-items:center;gap:3px;font-weight:600;text-transform:capitalize}.completion-sheet__risk{padding:10px 12px;background:var(--color-surface-secondary);border-radius:10px;margin-bottom:6px}.completion-sheet__risk strong{font-size:14px;color:var(--color-text);display:block}.completion-sheet__risk-type{font-size:12px;color:var(--color-text-secondary);text-transform:capitalize}.completion-sheet__bottom-row{display:flex;gap:8px}.completion-sheet__bottom-row .sheet__btn--ghost{flex:1}.bottom-sheet{position:relative;background:var(--color-surface);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -2px 12px #0000001a;display:flex;flex-direction:column;overflow:hidden;margin:0 12px 12px;border:1px solid var(--color-border)}.bottom-sheet--collapsed{height:70px}.bottom-sheet--collapsed .bottom-sheet-content{display:none}.bottom-sheet--expanded{height:auto;max-height:50vh}.bottom-sheet--mobile{touch-action:pan-y}.bottom-sheet--desktop.bottom-sheet--collapsed{height:70px}.bottom-sheet--desktop.bottom-sheet--expanded{height:400px}.bottom-sheet-header{padding:12px 20px;border-bottom:1px solid var(--color-divider);cursor:pointer;flex-shrink:0}.bottom-sheet-handle-bar{width:40px;height:4px;background:var(--color-border-strong);border-radius:2px;margin:0 auto 12px}.bottom-sheet-summary{display:flex;justify-content:space-between;align-items:center}.bottom-sheet-title{display:flex;align-items:center;gap:10px}.summary-icon{font-size:20px;color:var(--color-text-secondary)}.summary-text{font-size:15px;font-weight:600;color:var(--color-text)}.bottom-sheet-toggle-btn{background:transparent;border:none;color:var(--color-primary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-out)}.bottom-sheet-toggle-btn:hover{color:var(--color-primary-hover);transform:scale(1.1)}.bottom-sheet-content{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:16px}.bottom-sheet--expanded .bottom-sheet-content{overflow-y:auto}.bottom-sheet-stops{display:flex;flex-direction:column;gap:12px}.stop-item-compact{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-surface-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:all var(--duration-fast) var(--ease-out)}.stop-item-compact:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.stop-item--completed{background:var(--color-success-light);border-color:var(--color-success)}.stop-item--current{background:var(--color-info-light);border-color:var(--color-info);box-shadow:0 0 0 2px var(--color-focus-ring)}.stop-item--pending{opacity:.7}.stop-item--skipped{background:var(--color-error-light);border-color:var(--color-error)}.stop-item--skipped .stop-icon-container{background:var(--color-error);color:#fff}.stop-category--skipped{color:var(--color-error)!important;font-weight:500}.stop-icon-container{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--duration-fast) var(--ease-out)}.stop-item--completed .stop-icon-container{background:var(--color-success);color:#fff}.stop-item--current .stop-icon-container{background:var(--color-info);color:#fff;animation:pulse 2s infinite}.stop-item--pending .stop-icon-container{background:var(--color-surface);border:2px solid var(--color-border);color:var(--color-text-tertiary)}.stop-details{flex:1;min-width:0}.stop-name{font-size:14px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop-category{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--color-text-secondary);margin-top:4px}.btn-complete-compact{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;touch-action:manipulation;position:relative;z-index:5;gap:6px;transition:all var(--duration-fast) var(--ease-out);flex-shrink:0}.btn-complete-compact:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.bottom-sheet-progress{margin-top:auto;padding-top:16px;border-top:1px solid var(--color-divider)}.progress-label{display:flex;justify-content:space-between;font-size:12px;color:var(--color-text-secondary);margin-bottom:8px;font-weight:600}.progress-bar-container{height:6px;background:var(--color-secondary);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width var(--duration-normal) var(--ease-out)}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #007aff66}50%{transform:scale(1.05);box-shadow:0 0 0 4px #007aff1a}}.bottom-sheet-content::-webkit-scrollbar{width:4px}.bottom-sheet-content::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px}@media (min-width: 1025px){.bottom-sheet{margin:0 24px 24px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.bottom-sheet--collapsed{height:70px}.bottom-sheet--expanded{max-height:400px}.bottom-sheet-header,.bottom-sheet-toggle-btn{cursor:pointer}}@media (max-width: 1024px){.bottom-sheet{margin:0 8px 8px}.bottom-sheet--expanded{max-height:45vh}.stop-item-compact{padding:10px;gap:10px}.btn-complete-compact span{display:none}.btn-complete-compact{padding:10px;min-width:40px}.bottom-sheet-header{padding:10px 16px}.bottom-sheet-handle-bar{margin-bottom:8px}.summary-text{font-size:14px}}@media (max-width: 480px){.bottom-sheet--expanded{max-height:40vh}.bottom-sheet-content{padding:10px 12px;gap:10px}.stop-item-compact{padding:8px;gap:8px}.stop-name{font-size:13px}}@media (max-width: 1024px){.conductor-dashboard--map-fullscreen .bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:20;margin:0;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;max-height:60vh;border:none;padding-bottom:max(0px,env(safe-area-inset-bottom))}.conductor-dashboard--map-fullscreen .bottom-sheet--collapsed{height:70px}.conductor-dashboard--map-fullscreen .bottom-sheet--expanded{height:auto;max-height:60vh}}.bottom-sheet-actions{display:flex;gap:var(--space-8);padding:var(--space-12) 0 var(--space-4);border-top:1px solid var(--color-border);margin-top:var(--space-12)}.bottom-sheet-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-8);padding:12px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:transform .15s ease,opacity .15s ease}.bottom-sheet-action-btn:active{transform:scale(.97)}.bottom-sheet-action-btn--success{background:var(--color-success);color:#fff}.bottom-sheet-action-btn--danger{background:transparent;color:var(--color-error);border:1.5px solid var(--color-error)}.no-assignment{text-align:center;padding:60px 40px;animation:fadeInUp .6s ease-out}.no-assignment-icon{display:inline-flex;align-items:center;justify-content:center;width:120px;height:120px;margin-bottom:24px;background:var(--color-success-light);border-radius:50%;color:var(--color-primary);box-shadow:var(--shadow-sm);animation:bounceIn .8s ease-out}.no-assignment h3{font-size:28px;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 12px;letter-spacing:-.5px}.no-assignment>p{font-size:16px;color:var(--color-text-secondary);margin:0 0 32px;line-height:1.6}.no-assignment h4{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--color-primary);margin:0 0 20px;text-align:left;display:flex;align-items:center;gap:8px}.no-assignment ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:0;padding:0}.no-assignment li{background:var(--color-surface)!important;border:2px solid var(--color-border)!important;border-radius:var(--radius-md)!important;padding:20px!important;text-align:left!important;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xs)}.no-assignment li:hover{border-color:var(--color-primary)!important;transform:translateY(-4px);box-shadow:var(--shadow-md)}.no-assignment li strong{display:block;font-size:17px;color:var(--color-text);margin-bottom:12px;font-weight:var(--font-weight-semibold)}.no-assignment li br+span{display:inline-block;margin-top:8px;font-size:14px;color:var(--color-text-secondary);line-height:1.8}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}.no-assignment .card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden;animation:fadeInUp .5s ease-out}.no-assignment .card__body{padding:0}.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--color-warning);color:#fff;padding:12px 20px;text-align:center;font-weight:600;font-size:14px;z-index:1000;animation:slideDown .3s var(--ease-out);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.install-banner{position:fixed;bottom:20px;left:20px;right:20px;background:var(--color-surface);border:1px solid var(--color-border);padding:16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-2xl);z-index:1000;animation:slideUp .4s var(--ease-out);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.install-content{display:flex;justify-content:space-between;align-items:center;gap:16px}.install-text{flex:1;color:var(--color-text);font-size:14px;font-weight:500}.install-btn{background:var(--color-primary);border:none;color:#fff;padding:10px 20px;border-radius:var(--radius-md);font-weight:600;font-size:14px;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.install-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.close-banner-btn{background:transparent;border:none;color:var(--color-text-secondary);font-size:20px;cursor:pointer;padding:4px;transition:all var(--duration-fast) var(--ease-out)}.close-banner-btn:hover{color:var(--color-text);transform:scale(1.1)}.conductor-dashboard{min-height:100vh;background:var(--color-background);padding:0}.conductor-header{background:var(--color-surface);border-bottom:1px solid var(--color-divider);padding:20px 24px;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--color-surface-acrylic)}.conductor-header-content{display:flex;justify-content:space-between;align-items:center}.conductor-title h1{font-family:var(--font-family-display);font-size:28px;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 4px;letter-spacing:var(--letter-spacing-tight)}.conductor-subtitle{font-size:14px;color:var(--color-text-secondary);margin:0}.conductor-actions{display:flex;gap:12px}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-success);color:#fff;border-radius:var(--radius-md);font-size:13px;font-weight:600;box-shadow:var(--shadow-sm)}.status-badge:before{content:"";width:6px;height:6px;background:var(--color-surface);border-radius:50%;animation:blink 1.5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.conductor-content{padding:24px;display:flex;flex-direction:column;gap:24px}.route-card-active{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.route-card-active:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-primary)}.route-card-header{margin-bottom:20px}.route-card-header h2{font-family:var(--font-family-display);font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 8px;letter-spacing:var(--letter-spacing-tight)}.route-progress{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--color-text-secondary)}.progress-bar{flex:1;height:6px;background:var(--color-secondary);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width var(--duration-normal) var(--ease-out)}.stops-list{display:flex;flex-direction:column;gap:12px}.stop-item{display:flex;align-items:center;gap:12px;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.stop-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.stop-item.completed{background:var(--color-primary-light);border-color:var(--color-primary)}.stop-number{width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:var(--font-weight-semibold);flex-shrink:0}.stop-item.completed .stop-number{background:var(--color-success)}.stop-details{flex:1}.stop-address{font-size:15px;font-weight:600;color:var(--color-text);margin:0 0 4px}.stop-time{font-size:12px;color:var(--color-text-secondary);font-family:var(--font-family-mono)}.stop-action-btn{padding:8px 16px;background:var(--color-primary);border:none;border-radius:var(--radius-base);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.stop-action-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.stop-action-btn.completed{background:var(--color-success);opacity:.7;cursor:default}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.quick-action-btn{padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.quick-action-btn:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.quick-action-icon{font-size:32px}.quick-action-label{font-size:13px;font-weight:600;color:var(--color-text)}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 1024px){.conductor-header{padding:16px}.conductor-header-content{flex-direction:column;align-items:flex-start;gap:12px}.conductor-title h1{font-size:24px}.conductor-content{padding:16px}.quick-actions{grid-template-columns:repeat(2,1fr)}.install-banner{left:12px;right:12px;bottom:12px}}.conductor-dashboard.dashboard-container{display:flex!important;flex-direction:column!important;align-items:stretch!important;min-height:100vh!important;background:var(--color-background)!important}.conductor-dashboard .sidebar{display:none!important}.sidebar-header{padding:32px 24px 24px;border-bottom:1px solid var(--color-divider)}.sidebar-header h2{font-family:var(--font-family-display, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:28px;font-weight:800;color:var(--color-text);margin:0 0 10px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.sidebar-header p{color:var(--color-text-secondary, var(--color-text-secondary));font-size:14px;margin:0;font-weight:500;padding:8px 12px;background:var(--color-hover-overlay);border-radius:8px;border-left:2px solid var(--color-primary)}.sidebar-nav{flex:1;padding:16px 12px}.sidebar-nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.sidebar-nav li{margin:0}.sidebar-nav button{width:100%;text-align:left;background:transparent;border:none;padding:12px 16px;border-radius:8px;color:var(--color-text, var(--color-text));font-size:14px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;display:flex;align-items:center;gap:12px}.sidebar-nav button:hover{background:var(--color-hover-overlay);color:var(--color-primary)}.sidebar-nav button.active{background:var(--color-surface-secondary);color:var(--color-primary);font-weight:600}.sidebar-nav button.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:20px;background:var(--color-primary);border-radius:2px}.conductor-dashboard .main-content{flex:1!important;padding:0!important;overflow-x:hidden!important;overflow-y:auto!important;position:relative!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important}.conductor-dashboard .main-content>*{margin-top:0!important;flex-shrink:0!important}.conductor-dashboard .main-content>*:first-child{margin-top:0!important;padding-top:0!important}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin:0!important;padding:20px 24px!important;flex-shrink:0!important;background:var(--color-surface);border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none}.header-left{display:flex;flex-direction:column;gap:4px}.dashboard-header h1{font-family:var(--font-family-display, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:28px;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;letter-spacing:-.02em}.header-subtitle{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-text-secondary);font-weight:500}.header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.time-badge{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-primary);border-radius:var(--radius-base);font-size:15px;font-weight:var(--font-weight-semibold);color:#fff;box-shadow:var(--shadow-sm);font-variant-numeric:tabular-nums}.logout-btn{background:transparent;border:none;color:var(--color-text-secondary);padding:10px;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:6px}.logout-btn:hover{background:var(--color-error-light);color:var(--color-error);transform:translateY(-1px)}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0!important;padding:0 24px 16px!important}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 8px;text-align:center;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;align-items:center;gap:6px}.kpi-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.kpi-icon{width:32px;height:32px;margin:0;background:var(--color-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.kpi-content{display:flex;flex-direction:column;gap:2px;width:100%}.kpi-value{font-size:18px;font-weight:700;color:var(--color-text);margin:0;line-height:1.2}.kpi-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px}.route-timeline-section,.conductor-map-section{margin:0!important;padding:0 24px 24px!important}.map-container-large{position:relative;min-height:600px;height:600px;width:100%;border-radius:var(--radius-base);overflow:hidden;box-shadow:var(--shadow-sm)}.nav-app-container{position:absolute;bottom:16px;right:16px;z-index:10}.nav-app-fab{width:44px;height:44px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.nav-app-fab:hover{background:var(--color-primary-hover);transform:scale(1.05)}.nav-app-fab:active{transform:scale(.95)}.recenter-fab{position:absolute;bottom:70px;right:16px;z-index:10;width:44px;height:44px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.recenter-fab:active{transform:scale(.92);background:var(--color-primary-hover)}.nav-app-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9}.nav-app-menu{position:absolute;bottom:52px;right:0;width:260px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;z-index:11;animation:navMenuSlideUp .15s var(--ease-out)}@keyframes navMenuSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.nav-app-menu-header{padding:var(--space-8) var(--space-12);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.nav-app-option{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-12);border:none;background:transparent;cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out)}.nav-app-option:hover{background:var(--color-hover-overlay)}.nav-app-option:not(:last-of-type){border-bottom:1px solid var(--color-border)}.nav-app-option img{flex-shrink:0;border-radius:var(--radius-sm)}.nav-app-option-text{display:flex;flex-direction:column;gap:2px;min-width:0}.nav-app-option-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.nav-app-option-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-app-menu-footer{padding:var(--space-8) var(--space-12);font-size:var(--font-size-xs);color:var(--color-text-tertiary);border-top:1px solid var(--color-border);text-align:center}@media (max-width: 480px){.nav-app-container{bottom:12px;right:12px}.nav-app-fab{width:40px;height:40px}.recenter-fab{bottom:62px;right:12px;width:40px;height:40px}.nav-app-menu{width:240px;right:-4px}}.start-route-container{margin:0!important;padding:0 24px!important;display:flex!important;flex-direction:row!important;justify-content:center!important;align-items:flex-start!important;min-height:0!important;flex-grow:0!important;flex-shrink:0!important;animation:fadeIn .6s ease-out}.start-route-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:28px;max-width:700px;width:100%;box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1);margin-top:0!important}.start-route-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.start-route-card--compact{padding:var(--space-16);max-width:100%}.start-route-card--compact .route-details-row{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-bottom:var(--space-12)}.start-route-card--compact .detail-chip{display:flex;align-items:center;gap:6px;padding:var(--space-4) var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap}.start-route-card--compact .detail-chip svg{color:var(--color-primary);flex-shrink:0}.start-route-card--compact .btn-start-route{margin-bottom:0}.route-completed-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-20);box-shadow:var(--shadow-sm)}.route-completed-card__header{display:flex;align-items:center;gap:var(--space-12);padding-bottom:var(--space-16);border-bottom:1px solid var(--color-divider);margin-bottom:var(--space-16)}.route-completed-card__header svg{color:var(--color-success);flex-shrink:0}.route-completed-card__header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.route-completed-card__header p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:2px 0 0}.route-completed-card__upcoming h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-12);display:flex;align-items:center;gap:var(--space-8)}.upcoming-route-item{display:flex;align-items:center;gap:var(--space-16);padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);margin-bottom:var(--space-8)}.upcoming-route-item:last-child{margin-bottom:0}.upcoming-route-item__day{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);min-width:90px}.upcoming-route-item__details{display:flex;flex-wrap:wrap;gap:var(--space-12);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.upcoming-route-item__details span{display:flex;align-items:center;gap:4px}.route-completed-card__empty{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-12);background:var(--color-surface-secondary);border-radius:var(--radius-base);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.route-completed-card__empty svg{color:var(--color-text-tertiary);flex-shrink:0}.completed-bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--color-surface);border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;display:flex;flex-direction:column;overflow:hidden;transition:height .3s cubic-bezier(.4,0,.2,1);padding-bottom:max(0px,env(safe-area-inset-bottom))}.completed-bottom-sheet--collapsed{height:70px}.completed-bottom-sheet--collapsed .completed-bottom-sheet__content{display:none}.completed-bottom-sheet--expanded{height:auto;max-height:60vh}.completed-bottom-sheet__header{padding:12px 20px;cursor:pointer;flex-shrink:0;border-bottom:1px solid var(--color-divider)}.completed-bottom-sheet__header .bottom-sheet-handle-bar{width:40px;height:4px;background:var(--color-border-strong);border-radius:2px;margin:0 auto 10px}.completed-bottom-sheet__summary{display:flex;justify-content:space-between;align-items:center}.completed-bottom-sheet__status{display:flex;align-items:center;gap:var(--space-8);font-size:15px;font-weight:var(--font-weight-semibold);color:var(--color-success)}.completed-bottom-sheet__content{flex:1;overflow-y:auto;padding:var(--space-16) var(--space-20);display:flex;flex-direction:column;gap:var(--space-16)}.completed-bottom-sheet__done-banner{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-16);background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-md)}.completed-bottom-sheet__done-banner svg{color:var(--color-success);flex-shrink:0}.completed-bottom-sheet__done-banner div{display:flex;flex-direction:column;gap:2px}.completed-bottom-sheet__done-banner strong{font-size:var(--font-size-base);color:var(--color-text)}.completed-bottom-sheet__done-banner span{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.completed-bottom-sheet__section-title{display:flex;align-items:center;gap:var(--space-8);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-8)}.completed-upcoming-item{display:flex;align-items:flex-start;gap:var(--space-12);padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);margin-bottom:var(--space-8)}.completed-upcoming-item:last-child{margin-bottom:0}.completed-upcoming-item__day{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);min-width:75px;padding-top:1px}.completed-upcoming-item__info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.completed-upcoming-item__route{display:flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.completed-upcoming-item__meta{display:flex;gap:var(--space-12);font-size:12px;color:var(--color-text-secondary)}.completed-upcoming-item__meta span{display:flex;align-items:center;gap:3px}.completed-bottom-sheet__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);padding:var(--space-24);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.completed-bottom-sheet__empty svg{color:var(--color-text-tertiary)}.start-route-header{text-align:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--color-divider)}.start-route-icon-circle{width:72px;height:72px;background:var(--color-primary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:var(--shadow-sm);animation:scaleIn .5s cubic-bezier(.4,0,.2,1);color:#fff}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.start-route-card h2{font-size:28px;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;letter-spacing:-.02em}.route-details-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:20px}.detail-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--color-surface-secondary);border-radius:var(--radius-base);border:1px solid var(--color-border);transition:all .2s ease}.detail-item:hover{background:var(--color-surface-secondary);border-color:var(--color-border-strong)}.detail-icon{width:48px;height:48px;background:var(--color-primary);border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.detail-content{display:flex;flex-direction:column;gap:4px;flex:1}.detail-label{font-size:13px;color:var(--color-text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.detail-content strong{font-size:18px;color:var(--color-text);font-weight:600}.btn-start-route{background:var(--color-primary);border:none;color:#fff;padding:18px 40px;border-radius:var(--radius-md);font-size:18px;font-weight:600;cursor:pointer;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md);width:100%;max-width:300px}.btn-start-route:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--color-primary-hover)}.btn-start-route:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.start-route-hint{text-align:center;font-size:13px;color:var(--color-text-muted);margin-top:16px;display:flex;align-items:center;justify-content:center;gap:6px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reports-section{margin:0!important;padding:24px!important}.reports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.report-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.report-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-4px)}.report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.report-type{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase}.report-priority{padding:4px 8px;border-radius:var(--radius-base);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase}.priority-baja{background:var(--color-success-light);color:var(--color-success-dark)}.priority-media{background:var(--color-warning-light);color:var(--color-warning-dark)}.priority-alta,.priority-critica{background:var(--color-error-light);color:var(--color-error)}.report-body h4{margin:0 0 8px;font-size:16px;font-weight:var(--font-weight-semibold);color:var(--color-text)}.report-category{font-size:12px;color:var(--color-text-secondary);margin-bottom:8px;font-weight:500}.report-description{font-size:14px;color:var(--color-text-secondary);margin-bottom:16px;line-height:1.5}.report-meta{display:flex;flex-direction:column;gap:6px}.meta-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.meta-item svg{color:var(--color-primary);flex-shrink:0}.status-pendiente{color:var(--color-warning-dark)}.status-revisado,.status-resuelto{color:var(--color-success-dark)}.section-header{margin-bottom:24px}.section-title h3{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 8px;display:flex;align-items:center;gap:10px}.section-title p{color:var(--color-text-secondary);font-size:14px;margin:0}.empty-state{text-align:center;padding:64px 32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.empty-icon{color:var(--color-text-muted);margin-bottom:16px;display:flex;justify-content:center}.empty-state h4{font-size:20px;font-weight:600;color:var(--color-text);margin:0 0 8px}.empty-state p{color:var(--color-text-secondary);font-size:14px;margin:0}.loading-state{text-align:center;padding:64px 32px}.loading-state .spinner{width:40px;height:40px;border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@media (max-width: 1024px){.conductor-dashboard .sidebar{width:240px}.conductor-dashboard .map-container-large{min-height:400px;height:400px}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:10px;padding:0 20px 16px!important}.kpi-card{padding:10px 6px}.kpi-icon{width:28px;height:28px}.kpi-value{font-size:16px}.kpi-label{font-size:10px}.start-route-card{padding:32px 24px}.start-route-card h2{font-size:24px}.btn-start-route{padding:16px 32px;font-size:16px;max-width:100%}.detail-content strong{font-size:16px}.start-route-icon-circle{width:70px;height:70px}}@media (max-width: 1024px){.conductor-dashboard.dashboard-container{flex-direction:column!important;align-items:stretch!important;min-height:auto!important;height:auto!important}.conductor-dashboard .sidebar{width:100%;height:auto!important;min-height:0!important;max-height:none!important;position:relative;border-right:none;border-bottom:1px solid var(--color-divider);flex-shrink:0}.sidebar-nav ul{flex-direction:row;overflow-x:auto;gap:8px}.sidebar-nav button{white-space:nowrap;padding:10px 16px}.dashboard-header{flex-direction:column;align-items:flex-start;gap:16px;padding:20px;display:flex!important;flex-shrink:0!important;width:100%!important;box-sizing:border-box!important}.dashboard-header h1{font-size:28px}.header-actions{width:100%;justify-content:space-between}.conductor-dashboard .main-content{padding:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;flex:1 1 auto!important;min-height:fit-content!important;height:auto!important;overflow:visible!important}.kpi-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px;padding:0 12px 12px!important}.kpi-card{min-width:0;width:100%;padding:8px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.kpi-card:hover{transform:translateY(-1px)}.kpi-icon{width:20px;height:20px;margin:0;flex-shrink:0}.kpi-content{display:flex;flex-direction:column;gap:2px;width:100%;min-width:0}.kpi-value{font-size:14px;font-weight:700;margin:0;line-height:1.2;word-wrap:break-word;overflow-wrap:break-word}.kpi-label{font-size:9px;text-transform:uppercase;letter-spacing:0;font-weight:600;white-space:normal;line-height:1.2;text-align:center;word-wrap:break-word;overflow-wrap:break-word}.reports-grid{grid-template-columns:1fr}.route-timeline-section{padding:0 16px 32px!important;flex:1}.conductor-map-section{display:block!important;width:100%!important;padding:0 16px 24px!important;box-sizing:border-box!important}.map-container-large{min-height:500px;height:500px}.kpi-grid{padding:0 16px 8px!important}.logout-btn{padding:12px;min-width:44px;min-height:44px}.start-route-container{min-height:auto!important;padding:16px!important;display:flex!important;flex-direction:row!important;justify-content:center!important;width:100%!important;box-sizing:border-box!important}.start-route-card{padding:24px 20px}.start-route-icon-circle{width:64px;height:64px}.start-route-card h2{font-size:22px}.detail-item{padding:14px}.detail-icon{width:44px;height:44px}.detail-content strong{font-size:15px}.btn-start-route{padding:14px 24px;font-size:16px;width:100%;max-width:100%}.start-route-hint{font-size:12px}}@media (min-width: 481px) and (max-width: 1024px){.kpi-grid{grid-template-columns:repeat(3,1fr);gap:10px}.kpi-card{padding:10px 6px}.kpi-icon{width:22px;height:22px}.kpi-value{font-size:15px}.kpi-label{font-size:9px}.map-container-large{min-height:300px;height:300px}.reports-grid{grid-template-columns:repeat(2,1fr);gap:12px}}@media (max-width: 480px){.conductor-dashboard.dashboard-container{flex-direction:column!important;min-height:auto!important;height:auto!important}.conductor-dashboard .sidebar{height:auto!important;min-height:0!important}.conductor-dashboard .main-content{flex:1 1 auto!important;min-height:fit-content!important;height:auto!important;overflow:visible!important}.sidebar-header{padding:12px}.sidebar-header h2{font-size:20px}.sidebar-header p{font-size:12px;padding:4px 8px}.dashboard-header{padding:16px 12px;gap:12px}.dashboard-header h1{font-size:22px}.header-actions{flex-direction:column;width:100%;gap:8px}.kpi-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:6px;padding:0 12px 12px!important}.kpi-card{min-width:0;width:100%;padding:8px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px}.kpi-icon{width:18px;height:18px}.kpi-value{font-size:13px;font-weight:700;line-height:1.2;word-wrap:break-word;overflow-wrap:break-word}.kpi-label{font-size:8px;line-height:1.2;white-space:normal;text-align:center;word-wrap:break-word;overflow-wrap:break-word;font-weight:600;text-transform:uppercase}.time-badge{padding:8px 12px;font-size:13px;width:100%;justify-content:center}.btn--warning,.btn--danger,.btn--success,.start-route-btn{width:100%;font-size:14px;padding:10px 12px;min-height:44px}.logout-btn{padding:12px;min-width:48px;min-height:48px}.route-timeline-section{padding:0 12px 28px!important;flex:1}.conductor-map-section{padding:0 12px 20px!important}.map-container-large{min-height:450px;height:450px}.start-route-card{padding:16px 12px;margin:0 12px!important;max-width:calc(100vw - 24px)}.detail-item{padding:12px;gap:12px}.detail-icon{width:40px;height:40px}.detail-content strong{font-size:14px}.reports-grid{gap:12px}.report-card{padding:14px}.report-card h4{font-size:15px}.risk-modal.modal-content,.completion-modal.modal-content,.terminate-modal.modal-content{max-width:100%;border-radius:24px 24px 0 0;margin:0;max-height:95vh}.modal-header{position:sticky;top:0;z-index:10;background:var(--color-surface)}.timeline-item{padding-left:16px}.timeline-icon{width:32px;height:32px}.success-modal-content{padding:20px}.success-modal-content h2{font-size:20px}}.terminate-warning-box{background:var(--color-warning-light);border:2px solid var(--color-warning);border-radius:var(--radius-md);padding:16px;margin-bottom:24px;display:flex;gap:12px;align-items:flex-start}.terminate-warning-icon{color:var(--color-warning);flex-shrink:0}.terminate-warning-title{margin:0 0 8px;color:var(--color-warning-dark)}.terminate-warning-text{margin:0;font-size:14px;color:var(--color-warning-dark);line-height:1.5}.terminate-risk-box{background:var(--color-error-light);border:2px solid var(--color-error);border-radius:var(--radius-md);padding:16px;margin-bottom:20px}.terminate-risk-title{margin:0 0 12px;color:var(--color-error-dark);display:flex;align-items:center;gap:8px}.terminate-risk-detail strong{color:var(--color-error-dark)}.terminate-risk-detail p{margin:8px 0 0;font-size:14px;color:var(--color-error-dark)}.terminate-risk-checkbox{background:var(--color-surface);padding:12px;border-radius:var(--radius-base);margin-top:12px}.terminate-risk-checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer}.terminate-risk-checkbox span{font-size:14px;color:var(--color-text)}.terminate-progress-box{background:var(--color-surface-secondary);border-radius:var(--radius-md);padding:16px;margin-top:20px}.terminate-progress-box h4{margin:0 0 12px;font-size:14px;color:var(--color-text)}.terminate-progress-row{display:flex;justify-content:space-between;margin-bottom:8px}.terminate-progress-row:last-child{margin-bottom:0}@media (max-width: 1024px){.conductor-dashboard .sidebar{display:none!important}.conductor-dashboard .dashboard-header{padding:12px!important;gap:8px!important}.conductor-dashboard .dashboard-header h1{font-size:18px!important;margin:0!important}.conductor-dashboard .header-subtitle{font-size:11px!important}.conductor-dashboard .header-actions{display:flex!important;flex-wrap:wrap!important;gap:6px!important;width:100%!important}.header-actions .btn{padding:8px 12px!important;font-size:11px!important;min-height:36px!important;flex:1!important;justify-content:center!important}.header-actions .btn svg{width:14px!important;height:14px!important}.time-badge{padding:6px 10px!important;font-size:12px!important;flex:1!important;justify-content:center!important}.conductor-map-section{padding:8px!important}.map-container-large{min-height:250px!important;height:250px!important;max-height:280px!important;border-radius:var(--radius-md)!important}.kpi-grid{padding:8px!important;gap:6px!important}.kpi-card{padding:6px 4px!important}.kpi-icon{width:16px!important;height:16px!important}.kpi-value{font-size:11px!important}.kpi-label{font-size:7px!important}}@media (max-width: 480px){.dashboard-header{padding:10px!important}.dashboard-header h1{font-size:16px!important}.header-actions .btn{padding:6px 8px!important;font-size:10px!important}.time-badge{font-size:11px!important}.map-container-large{height:220px!important;min-height:200px!important;max-height:250px!important}.kpi-grid{padding:6px!important;gap:4px!important}.kpi-card{padding:4px!important}.kpi-value{font-size:10px!important}.kpi-label{font-size:6px!important}}@media (min-width: 1025px){.conductor-dashboard .sidebar{display:flex!important}.conductor-dashboard .main-content{display:flex!important;flex-direction:row!important;flex:1!important;height:0!important;min-height:0!important;overflow:hidden!important}.conductor-dashboard.dashboard-container{height:100vh!important;max-height:100vh!important;overflow:hidden!important}.conductor-dashboard .app-bar{flex-shrink:0!important}.conductor-desktop-panel{width:380px;min-width:380px;height:100%;overflow-y:auto;border-right:1px solid var(--color-border);background:var(--color-surface);display:flex;flex-direction:column;flex-shrink:0}.conductor-desktop-panel::-webkit-scrollbar{width:6px}.conductor-desktop-panel::-webkit-scrollbar-track{background:transparent}.conductor-desktop-panel::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}.desktop-panel__route-info{padding:var(--space-20);border-bottom:1px solid var(--color-divider);flex-shrink:0}.desktop-panel__route-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-12) 0;display:flex;align-items:center;gap:var(--space-8)}.desktop-panel__route-chips{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-bottom:var(--space-16)}.desktop-panel__chip{display:inline-flex;align-items:center;gap:5px;padding:var(--space-4) var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.desktop-panel__chip svg{color:var(--color-primary);flex-shrink:0}.desktop-panel__route-info .btn-start-route{width:100%;max-width:100%;margin:0}.desktop-panel__route-info .route-completed-card{border:none;padding:0;box-shadow:none}.conductor-desktop-panel .desktop-panel__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--color-divider);flex-shrink:0}.desktop-panel__kpis .kpi-card{padding:var(--space-8) var(--space-4);margin:0}.desktop-panel__stops{flex:1;overflow-y:auto;padding:var(--space-16);display:flex;flex-direction:column;gap:var(--space-8)}.desktop-panel__stops::-webkit-scrollbar{width:5px}.desktop-panel__stops::-webkit-scrollbar-track{background:transparent}.desktop-panel__stops::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.desktop-panel__stops-header{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-8)}.desktop-stop-item{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-out)}.desktop-stop-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-xs)}.desktop-stop-item--completed{background:var(--color-success-light);border-color:var(--color-success)}.desktop-stop-item--current{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.desktop-stop-item--skipped{background:var(--color-warning-light);border-color:var(--color-warning);opacity:.8}.desktop-stop-item__icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#fff}.desktop-stop-item__icon--completed{background:var(--color-success)}.desktop-stop-item__icon--current{background:var(--color-primary)}.desktop-stop-item__icon--pending{background:var(--color-border-strong)}.desktop-stop-item__icon--skipped{background:var(--color-warning)}.desktop-stop-item__info{flex:1;min-width:0}.desktop-stop-item__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-stop-item__meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.desktop-stop-item__action{padding:var(--space-4) var(--space-12);background:var(--color-primary);border:none;border-radius:var(--radius-base);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);flex-shrink:0}.desktop-stop-item__action:hover{background:var(--color-primary-hover)}.desktop-panel__progress{padding:var(--space-12) var(--space-16);border-top:1px solid var(--color-divider);flex-shrink:0}.desktop-panel__progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.desktop-panel__progress-value{font-weight:var(--font-weight-semibold);color:var(--color-text)}.desktop-panel__progress-bar{height:6px;background:var(--color-secondary);border-radius:var(--radius-full);overflow:hidden}.desktop-panel__progress-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width var(--duration-normal) var(--ease-out)}.conductor-map-section{flex:1!important;padding:0!important;height:100%!important;min-width:0}.map-container-large{height:100%!important;min-height:100%!important;border-radius:0!important}.conductor-dashboard .start-route-container{display:none!important}.conductor-dashboard .kpi-grid:not(.desktop-panel__kpis){display:none!important}.conductor-dashboard .route-timeline-section{display:none!important}}.success-modal-content{background:var(--color-surface);border-radius:24px;padding:48px 40px;max-width:480px;width:90%;text-align:center;box-shadow:var(--shadow-xl);animation:slideUp .4s cubic-bezier(.4,0,.2,1)}.success-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:100px;height:100px;background:var(--color-primary);border-radius:50%;margin-bottom:24px;color:#fff;box-shadow:var(--shadow-sm);animation:successPulse 2s infinite}.success-icon-wrapper.error{background:var(--color-error);box-shadow:var(--shadow-md);animation:none}.success-modal-content h2{font-size:28px;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 12px;letter-spacing:-.02em}.success-modal-content p{font-size:16px;color:var(--color-text-secondary);margin:0 0 32px;line-height:1.6}.success-modal-content .btn--primary{padding:14px 32px;font-size:16px;font-weight:600;border-radius:var(--radius-base);background:var(--color-primary);border:none;color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .3s ease;min-width:140px}.success-modal-content .btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn--warning{padding:14px 32px;font-size:16px;font-weight:600;border-radius:var(--radius-base);background:var(--color-warning);border:1px solid var(--color-warning);color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--duration-fast) var(--ease-out);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn--warning:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--color-warning-dark);border-color:var(--color-warning-dark)}.btn--secondary{padding:14px 32px;font-size:16px;font-weight:600;border-radius:var(--radius-base);background:var(--color-surface-secondary);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn--secondary:hover{background:var(--color-hover-overlay);border-color:var(--color-border-strong);transform:translateY(-1px)}.btn--danger{padding:14px 32px;font-size:16px;font-weight:600;border-radius:var(--radius-base);background:var(--color-error);border:1px solid var(--color-error);color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--duration-fast) var(--ease-out);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn--danger:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--color-error-dark);border-color:var(--color-error-dark)}.btn--success{padding:14px 32px;font-size:16px;font-weight:600;border-radius:var(--radius-base);background:var(--color-success);border:1px solid var(--color-success);color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--duration-fast) var(--ease-out);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn--success:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--color-success-dark);border-color:var(--color-success-dark)}@keyframes successPulse{0%,to{transform:scale(1);box-shadow:var(--shadow-sm)}50%{transform:scale(1.05);box-shadow:var(--shadow-lg)}}.risk-modal.modal-content{background:var(--color-surface);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:680px;max-height:90vh;overflow:hidden;animation:appleSlideUp .45s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column}.risk-modal .modal-header{position:relative;padding:24px 32px;border-bottom:none;background:var(--color-primary);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.risk-modal .modal-header h3{font-size:24px;font-weight:var(--font-weight-semibold);color:#fff;margin:0;display:flex;align-items:center;gap:12px;letter-spacing:-.02em}.risk-modal .modal-header svg{color:#fff;flex-shrink:0}.risk-modal .modal-close{width:36px;height:36px;border-radius:50%;background:var(--color-white-alpha-15);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#fff;flex-shrink:0}.risk-modal .modal-close:hover{background:var(--color-white-alpha-25);color:#fff;transform:scale(1.08)}.risk-modal .modal-body{padding:28px 32px;flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;position:relative;min-height:0;max-height:calc(90vh - 178px)}.risk-modal .modal-body::-webkit-scrollbar{width:8px}.risk-modal .modal-body::-webkit-scrollbar-track{background:transparent;margin:8px 0}.risk-modal .modal-body::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.25);border-radius:10px;border:2px solid transparent;background-clip:padding-box}.risk-modal .modal-body::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.4);background-clip:padding-box}.risk-modal .modal-footer{padding:20px 32px;border-top:1px solid var(--color-divider);background:var(--color-surface-secondary);flex-shrink:0;display:flex;gap:12px;justify-content:flex-end;align-items:center}.risk-modal .form-group{margin-bottom:24px}.risk-modal .form-group:last-child{margin-bottom:0}.risk-modal .form-group label{display:block;font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:8px;letter-spacing:-.01em}.risk-modal .form-group input[type=text],.risk-modal .form-group select,.risk-modal .form-group textarea{width:100%;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:15px;color:var(--color-text);background:var(--color-surface);transition:all .2s ease;font-family:var(--font-family-base);box-sizing:border-box}.risk-modal .form-group input[type=text]::placeholder,.risk-modal .form-group textarea::placeholder{color:var(--color-text-muted)}.risk-modal .form-group input[type=text]:focus,.risk-modal .form-group select:focus,.risk-modal .form-group textarea:focus{outline:none;border-color:var(--color-success);background:var(--color-surface);box-shadow:0 0 0 4px var(--color-primary-subtle)}.risk-modal .form-group textarea{resize:vertical;min-height:120px;font-family:inherit}.risk-modal .radio-group{display:grid;grid-template-columns:1fr 1fr;gap:12px}.risk-modal .radio-label{position:relative;display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;transition:all .2s ease;background:var(--color-surface)}.risk-modal .radio-label:hover{border-color:var(--color-primary);background:var(--color-hover-overlay)}.risk-modal .radio-label input[type=radio]{position:absolute;opacity:0;pointer-events:none}.risk-modal .radio-label input[type=radio]:checked+span{color:var(--color-primary);font-weight:600}.risk-modal .radio-label input[type=radio]:checked~small{color:var(--color-primary-hover)}.risk-modal .radio-label:has(input[type=radio]:checked){border-color:var(--color-primary);background:var(--color-hover-overlay);box-shadow:0 0 0 2px var(--color-focus-ring)}.risk-modal .radio-label span{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:500;color:var(--color-text);transition:all .2s ease}.risk-modal .radio-label span svg{flex-shrink:0;color:var(--color-success)}.risk-modal .radio-label small{font-size:13px;color:var(--color-text-secondary);line-height:1.4;transition:all .2s ease}.risk-modal .location-info{padding:16px;background:var(--color-success-light);border-radius:var(--radius-base);border:2px solid var(--color-success);margin-top:8px}.risk-modal .location-info p{margin:0;font-size:14px;color:var(--color-text);display:flex;align-items:center;gap:6px}.risk-modal .location-info p:first-child{margin-bottom:4px;font-weight:600;color:var(--color-primary)}.risk-modal .location-info p strong{font-weight:600}.risk-modal .location-info svg{color:var(--color-primary);flex-shrink:0}@keyframes appleSlideUp{0%{opacity:0;transform:scale(.94) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width: 1024px){.risk-modal.modal-content{max-width:100%;border-radius:24px 24px 0 0;max-height:92vh}.risk-modal .modal-header{padding:20px 24px}.risk-modal .modal-body{padding:24px}.risk-modal .modal-footer{padding:16px 24px;flex-direction:column-reverse}.risk-modal .modal-footer .btn{width:100%}.risk-modal .radio-group{grid-template-columns:1fr}}@media (max-width: 1024px){.conductor-dashboard--map-fullscreen .app-bar{display:none!important}.conductor-dashboard--map-fullscreen{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;overflow:hidden!important;height:100vh!important;width:100vw!important}.conductor-dashboard--map-fullscreen .main-content{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;padding:0!important;margin:0!important;overflow:hidden!important;height:100vh!important;width:100vw!important;z-index:1}.conductor-dashboard--map-fullscreen .conductor-map-section{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;padding:0!important;margin:0!important;height:100vh!important;width:100vw!important}.conductor-dashboard--map-fullscreen .map-container-large{width:100vw!important;height:100vh!important;min-height:100vh!important;max-height:none!important;border-radius:0!important;overflow:visible!important}.conductor-dashboard--map-fullscreen .maplibre-component-wrapper{min-height:100vh!important;height:100vh!important;width:100vw!important;border-radius:0!important}.conductor-dashboard--map-fullscreen .maplibre-component-wrapper>div,.conductor-dashboard--map-fullscreen .maplibregl-map,.conductor-dashboard--map-fullscreen .maplibregl-canvas-container,.conductor-dashboard--map-fullscreen .maplibregl-canvas{height:100vh!important;min-height:100vh!important;width:100vw!important}.map-overlay-header{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top)) 16px 12px 16px;background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,.06);transition:opacity .3s ease,transform .3s ease}.map-overlay-header--hidden{opacity:0;transform:translateY(-100%);pointer-events:none}.map-overlay-header__brand{display:flex;align-items:center}.map-overlay-header__logo{height:28px;width:auto}.map-overlay-header__actions{display:flex;align-items:center;gap:8px}.map-overlay-header__timer{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-primary);color:#fff;border-radius:var(--radius-full);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.map-overlay-header__tab{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;box-shadow:var(--shadow-xs)}.map-overlay-header__tab.active{background:var(--color-primary);color:#fff}.map-overlay-header__logout{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;box-shadow:var(--shadow-xs)}.map-overlay-kpis{position:absolute;top:64px;left:12px;right:12px;z-index:10;display:flex;gap:8px;flex-wrap:wrap;padding-top:max(0px,calc(env(safe-area-inset-top) - 12px))}.map-overlay-kpi-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-full);font-size:13px;font-weight:600;color:var(--color-text);box-shadow:0 2px 8px #0000001f}.map-overlay-kpi-chip svg{color:var(--color-primary);flex-shrink:0}.map-overlay-actions{position:absolute;bottom:100px;left:12px;z-index:10;display:flex;flex-direction:column;gap:10px}.map-overlay-action-fab{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;box-shadow:0 2px 8px #0003;color:#fff;transition:transform .15s ease}.map-overlay-action-fab:active{transform:scale(.92)}.map-overlay-action-fab--warning{background:var(--color-warning);color:#000}.map-overlay-action-fab--danger{background:var(--color-error)}.map-overlay-action-fab--success{background:var(--color-success)}.map-overlay-start{position:absolute;bottom:0;left:0;right:0;z-index:10;padding:16px 16px max(16px,env(safe-area-inset-bottom)) 16px;background:transparent;display:flex;flex-direction:column;align-items:center;gap:10px}.conductor-dashboard--map-fullscreen .maplibregl-ctrl-attrib{display:none!important}.map-overlay-start__info{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.map-overlay-start__chip{display:flex;align-items:center;gap:6px;padding:5px 12px;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-full);font-size:13px;font-weight:500;color:var(--color-text);box-shadow:0 1px 4px #0000001a}.map-overlay-start__chip svg{color:var(--color-primary);flex-shrink:0}.map-overlay-start__btn{display:flex;align-items:center;justify-content:center;gap:10px;width:auto;align-self:center;padding:16px 48px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-full);font-size:17px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px #0003;transition:transform .15s ease,opacity .15s ease}.map-overlay-start__btn:active{transform:scale(.97)}.map-overlay-start__btn:disabled{opacity:.5;cursor:not-allowed}.conductor-dashboard--map-fullscreen .nav-app-container{bottom:80px!important;right:12px!important}.conductor-dashboard--map-fullscreen .nav-app-fab{width:48px!important;height:48px!important}.conductor-dashboard--map-fullscreen .nav-app-menu{z-index:11}.conductor-dashboard--map-fullscreen .recenter-fab{bottom:140px!important;right:12px!important}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:2000;display:flex;align-items:flex-end;animation:sheetBgFadeIn .2s ease}@keyframes sheetBgFadeIn{0%{opacity:0}to{opacity:1}}.sheet{width:100%;background:var(--color-surface);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #0000002e;padding:0 16px max(16px,env(safe-area-inset-bottom)) 16px;animation:sheetUp .35s cubic-bezier(.32,.72,0,1);max-height:85vh;overflow-y:auto;overscroll-behavior:contain}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet__handle{width:36px;height:4px;background:var(--color-border-strong);border-radius:2px;margin:10px auto 8px}.sheet__header{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px}.sheet__badge{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-full);font-size:14px;font-weight:600}.sheet__badge--warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.sheet__badge--warning svg{color:var(--color-warning)}.sheet__badge--danger{background:#d134381a;color:var(--color-error)}.sheet__badge--danger svg{color:var(--color-error)}.sheet__close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-secondary);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0}.sheet__body{padding:4px 0 12px}.sheet__section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:8px 0 6px}.sheet__radio-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.sheet__radio-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border:1.5px solid var(--color-border);border-radius:12px;background:var(--color-surface);font-size:14px;font-weight:500;color:var(--color-text);cursor:pointer;transition:all .2s ease;font-family:inherit}.sheet__radio-btn--active{border-color:var(--color-primary);background:var(--color-hover-overlay);color:var(--color-primary);font-weight:600;box-shadow:0 0 0 2px var(--color-focus-ring)}.sheet__radio-btn:active{transform:scale(.96)}.sheet__select{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:10px;font-size:14px;color:var(--color-text);background:var(--color-surface);font-family:inherit;margin-bottom:4px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.sheet__select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.sheet__input{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:10px;font-size:14px;color:var(--color-text);background:var(--color-surface);font-family:inherit;margin-bottom:4px;box-sizing:border-box}.sheet__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.sheet__textarea{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:10px;font-size:14px;color:var(--color-text);background:var(--color-surface);font-family:inherit;resize:vertical;min-height:60px;margin-bottom:4px;box-sizing:border-box}.sheet__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.sheet__textarea::placeholder,.sheet__input::placeholder{color:var(--color-text-muted)}.sheet__location{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--color-surface-secondary);border-radius:var(--radius-full);font-size:12px;color:var(--color-text-secondary);margin-top:8px}.sheet__location svg{color:var(--color-primary);flex-shrink:0}.sheet__alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;font-size:13px;font-weight:500;line-height:1.4;margin-bottom:12px}.sheet__alert--warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.sheet__alert--warning svg{color:var(--color-warning);flex-shrink:0}.sheet__progress-chips{display:flex;gap:8px;margin-bottom:12px}.sheet__chip{display:flex;align-items:center;gap:5px;padding:6px 12px;background:var(--color-surface-secondary);border-radius:var(--radius-full);font-size:13px;font-weight:600;color:var(--color-text)}.sheet__chip svg{color:var(--color-primary)}.sheet__risk-card{background:#d134380f;border:1px solid rgba(209,52,56,.2);border-radius:12px;padding:12px 14px;margin-bottom:8px}.sheet__risk-card strong{font-size:14px;color:var(--color-text);display:block;margin-bottom:8px}.sheet__checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text);cursor:pointer}.sheet__checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary)}.sheet__actions{padding:8px 0 0;display:flex;flex-direction:column;gap:8px}.sheet__btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:all .2s ease}.sheet__btn:active{transform:scale(.97)}.sheet__btn--primary{background:var(--color-primary);color:#fff}.sheet__btn--warning{background:var(--color-warning);color:#fff}.sheet__btn--danger{background:var(--color-error);color:#fff}.sheet__btn--ghost{background:transparent;color:var(--color-text-secondary);font-weight:500;padding:10px}.sheet__btn:disabled{opacity:.5}.sheet--success{text-align:center;max-height:50vh}.sheet__status-icon-wrap{display:flex;justify-content:center;padding:8px 0 12px}.sheet__status-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;border-radius:50%}.sheet__status-icon--error{background:var(--color-error)}.sheet__status-title{font-size:22px;font-weight:700;color:var(--color-text);margin-bottom:6px}.sheet__status-msg{font-size:14px;color:var(--color-text-secondary);line-height:1.5;padding:0 8px 12px}.seed-users-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.seed-users-card{background:#fff;border-radius:12px;padding:40px;max-width:600px;width:100%;box-shadow:0 10px 40px #0000001a}.seed-users-card h2{color:#2d3748;margin-bottom:10px;font-size:28px;text-align:center}.seed-description{color:#4a5568;margin-bottom:24px;text-align:center;font-size:14px}.users-list{background:#f7fafc;border-radius:8px;padding:20px;margin-bottom:24px}.users-list h3{color:#2d3748;font-size:16px;margin-bottom:12px;margin-top:0}.users-list ul{list-style:none;padding:0;margin:0}.users-list li{padding:10px;background:#fff;border-radius:6px;margin-bottom:8px;font-size:14px;color:#4a5568;border-left:3px solid #667eea}.users-list li:last-child{margin-bottom:0}.users-list strong{color:#667eea;margin-right:8px}.btn-seed{width:100%;padding:14px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:20px}.btn-seed:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-seed:disabled{opacity:.6;cursor:not-allowed}.seed-message{padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:14px;text-align:center;font-weight:500}.seed-message.loading{background:#edf2f7;color:#2d3748}.seed-message.success{background:#c6f6d5;color:#22543d}.seed-message.error{background:#fed7d7;color:#742a2a}.results{background:#f7fafc;border-radius:8px;padding:20px}.results h3{color:#2d3748;font-size:16px;margin-top:0;margin-bottom:16px}.results ul{list-style:none;padding:0;margin:0 0 20px}.results li{padding:12px;background:#fff;border-radius:6px;margin-bottom:8px;font-size:14px;color:#4a5568}.results li.success{border-left:3px solid #48bb78}.results li.error{border-left:3px solid #f56565}.results strong{margin:0 8px;text-transform:uppercase}.next-steps{background:#fff;border-radius:6px;padding:16px;border:2px solid #667eea}.next-steps h4{color:#667eea;margin-top:0;margin-bottom:12px;font-size:16px}.next-steps ol{margin:0;padding-left:20px;color:#4a5568;font-size:14px}.next-steps li{margin-bottom:6px}.next-steps li:last-child{margin-bottom:0}.google-places-error-boundary{display:flex;align-items:center;justify-content:center;min-height:400px;padding:var(--space-24);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.error-content{max-width:500px;text-align:center}.error-icon{margin-bottom:var(--space-16);color:var(--color-error);display:flex;align-items:center;justify-content:center}.error-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-12) 0}.error-message{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 var(--space-16) 0}.error-reasons{text-align:left;margin:0 0 var(--space-20) 0;padding:var(--space-16);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);list-style:none}.error-reasons li{position:relative;padding-left:var(--space-20);margin-bottom:var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.error-reasons li:last-child{margin-bottom:0}.error-reasons li:before{content:"•";position:absolute;left:var(--space-8);color:var(--color-error);font-weight:var(--font-weight-bold)}.reload-button{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-20);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--radius-base);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.reload-button:hover{background:var(--color-primary-hover)}.reload-button:active{transform:scale(.98)}.reload-button svg{flex-shrink:0}.error-details{margin-top:var(--space-20);padding:var(--space-12);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-base);text-align:left;cursor:pointer}.error-details summary{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.error-details summary:hover{color:var(--color-text)}.error-stack{margin-top:var(--space-12);padding:var(--space-12);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;color:var(--color-text);white-space:pre-wrap;word-wrap:break-word;overflow-x:auto;max-height:300px;overflow-y:auto}.error-stack strong{color:var(--color-error)}:root{--color-background: #f8fafc;--color-surface: #ffffff;--color-surface-secondary: #f1f5f9;--color-surface-elevated: #ffffff;--color-surface-acrylic: rgba(255, 255, 255, .8);--color-white-alpha-15: rgba(255, 255, 255, .15);--color-white-alpha-25: rgba(255, 255, 255, .25);--color-text: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #64748b;--color-text-muted: #94a3b8;--color-primary: #1e293b;--color-primary-hover: #334155;--color-primary-active: #0f172a;--color-primary-dark: #0f172a;--color-primary-light: #334155;--color-primary-subtle: rgba(30, 41, 59, .1);--color-secondary: #475569;--color-secondary-hover: #334155;--color-secondary-active: #1e293b;--color-secondary-light: #64748b;--color-border: rgba(30, 41, 59, .08);--color-border-strong: rgba(30, 41, 59, .15);--color-divider: rgba(30, 41, 59, .06);--color-error: #ef4444;--color-error-light: #fee2e2;--color-error-dark: #dc2626;--color-success: #10b981;--color-success-dark: #047857;--color-warning: #f59e0b;--color-warning-dark: #d97706;--color-info: #3b82f6;--color-info-light: #dbeafe;--color-info-dark: #2563eb;--color-focus-ring: rgba(30, 41, 59, .4);--color-hover-overlay: rgba(0, 0, 0, .03);--color-active-overlay: rgba(0, 0, 0, .06);--focus-ring: 0 0 0 3px var(--color-focus-ring);--focus-outline: 2px solid var(--color-primary);--status-bg-opacity: .15;--status-border-opacity: .25;--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231B4523' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-contrast: #0B6A0B;--color-error-contrast: #A4262C;--color-warning-contrast: #8A5700;--color-info-contrast: #004578;--color-success-border: rgba(16, 124, 16, .3);--color-error-border: rgba(209, 52, 56, .3);--color-warning-border: rgba(255, 185, 0, .3);--color-info-border: rgba(0, 120, 212, .3);--color-neutral-border: rgba(138, 136, 134, .3);--color-neutral-light: #E1DFDD;--color-primary-rgb: 30, 41, 59;--color-success-rgb: 16, 185, 129;--color-error-rgb: 239, 68, 68;--color-warning-rgb: 245, 158, 11;--color-info-rgb: 59, 130, 246;--gradient-primary: linear-gradient(135deg, #1e293b 0%, #334155 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-warning: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--gradient-error: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);--gradient-info: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--gradient-text-dark: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--gradient-text-accent: linear-gradient(135deg, #1e293b 0%, #1e40af 100%);--color-text-primary: var(--color-text);--color-surface-alt: #f1f5f9;--color-surface-hover: rgba(30, 41, 59, .04);--color-primary-light: rgba(30, 41, 59, .1);--color-success-light: #d1fae5;--color-warning-light: #fef3c7;--color-danger: var(--color-error);--color-danger-light: #fee2e2;--font-family-base: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "SF Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-md: 17px;--font-size-lg: 19px;--font-size-xl: 21px;--font-size-2xl: 28px;--font-size-3xl: 34px;--font-size-4xl: 48px;--font-size-5xl: 64px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.1;--line-height-snug: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--letter-spacing-tight: -.022em;--letter-spacing-normal: -.01em;--letter-spacing-wide: .01em;--icon-color-primary: var(--color-primary);--icon-color-secondary: var(--color-text-secondary);--icon-color-error: var(--color-error);--icon-color-success: var(--color-success);--icon-color-warning: var(--color-warning);--space-0: 0;--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-14: 14px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-28: 28px;--space-32: 32px;--space-40: 40px;--space-48: 48px;--space-56: 56px;--space-64: 64px;--radius-sm: 2px;--radius-base: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .04), 0 4px 8px rgba(30, 41, 59, .04);--shadow-md: 0 4px 8px rgba(0, 0, 0, .06), 0 8px 16px rgba(30, 41, 59, .08);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .08), 0 16px 32px rgba(30, 41, 59, .12);--shadow-xl: 0 12px 24px rgba(0, 0, 0, .1), 0 24px 48px rgba(30, 41, 59, .15);--shadow-2xl: 0 20px 40px rgba(0, 0, 0, .12), 0 32px 64px rgba(30, 41, 59, .18);--shadow-primary-glow: 0 4px 16px rgba(30, 41, 59, .3), 0 2px 4px rgba(0, 0, 0, .1);--shadow-success-glow: 0 4px 16px rgba(16, 185, 129, .3), 0 2px 4px rgba(0, 0, 0, .1);--shadow-warning-glow: 0 4px 16px rgba(245, 158, 11, .3), 0 2px 4px rgba(0, 0, 0, .1);--shadow-error-glow: 0 4px 16px rgba(239, 68, 68, .3), 0 2px 4px rgba(0, 0, 0, .1);--shadow-info-glow: 0 4px 16px rgba(59, 130, 246, .3), 0 2px 4px rgba(0, 0, 0, .1);--shadow-elevated: 0 2px 8px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .04);--shadow-card: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-card-hover: 0 4px 12px 0 rgba(0, 0, 0, .15), 0 2px 6px 0 rgba(0, 0, 0, .1);--shadow-focus: 0 0 0 3px var(--color-primary-subtle);--shadow-inset: inset 0 1px 2px 0 rgba(0, 0, 0, .05);--duration-instant: .1s;--duration-fast: .2s;--duration-normal: .3s;--duration-slow: .4s;--duration-slower: .6s;--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.175, .885, .32, 1.275);--ease-smooth: cubic-bezier(.16, 1, .3, 1);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--enterprise-table-row-height: 40px;--enterprise-table-row-height-dense: 36px;--enterprise-table-row-height-comfortable: 48px;--enterprise-card-padding: var(--space-12);--enterprise-section-gap: var(--space-16);--enterprise-grid-gap: var(--space-12);--enterprise-badge-padding: 4px 8px;--enterprise-button-padding: var(--space-8) var(--space-16);--enterprise-input-height: 36px;--enterprise-icon-size-sm: 16px;--enterprise-icon-size-md: 20px;--enterprise-icon-size-lg: 24px}html{font-size:16px;line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color-scheme:light;font-feature-settings:"kern" 1,"liga" 1,"calt" 1;scroll-behavior:smooth}body{font-family:var(--font-family-base);background:var(--color-background);color:var(--color-text);margin:0;padding:0;overflow-x:hidden}*,*:before,*:after{box-sizing:border-box}::selection{background-color:var(--color-primary);color:#fff}::-moz-selection{background-color:var(--color-primary);color:#fff}*:focus{outline:none}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--shadow-focus)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}h1,h2,h3,h4,h5,h6,p{margin:0;font-weight:var(--font-weight-normal)}h1{font-family:var(--font-family-display);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight)}h2{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-snug)}h3{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal);line-height:var(--line-height-snug)}h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal)}h5{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}h6{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}p{line-height:var(--line-height-normal)}a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}a:hover{color:var(--color-primary-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);letter-spacing:-.01em;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:none;text-decoration:none;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent);opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.btn:hover:before{opacity:1}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--color-focus-ring)}.btn--primary{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn--primary:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-primary-glow);transform:translateY(-1px)}.btn--primary:active{background-color:var(--color-primary-active);transform:translateY(0);box-shadow:var(--shadow-sm)}.btn--secondary{background-color:var(--color-surface-secondary);color:var(--color-text);border:1px solid var(--color-border-strong)}.btn--secondary:hover{background-color:var(--color-surface-secondary);border-color:var(--color-primary);color:var(--color-primary)}.btn--secondary:active{background-color:var(--color-surface-secondary)}.btn--outline{background:transparent;border:2px solid var(--color-success);color:var(--color-success)}.btn--outline:hover{background-color:var(--color-success);color:#fff}.btn--success{background-color:var(--color-success);color:#fff;box-shadow:var(--shadow-sm)}.btn--success:hover{background-color:var(--color-success-dark);box-shadow:var(--shadow-success-glow);transform:translateY(-1px)}.btn--success:active{background-color:var(--color-success-dark);transform:translateY(0)}.btn--small{padding:var(--space-4) var(--space-8);font-size:var(--font-size-xs)}.btn--sm{padding:var(--space-6) var(--space-12);font-size:var(--font-size-sm)}.btn--lg{padding:var(--space-12) var(--space-24);font-size:var(--font-size-lg)}.btn--full-width{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.form-control{display:block;width:100%;padding:12px 16px;font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out);font-family:var(--font-family-base);-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-control:hover{border-color:var(--color-border-strong)}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-subtle);background-color:var(--color-surface)}.form-control::placeholder{color:var(--color-text-tertiary)}textarea.form-control{resize:vertical;min-height:100px;line-height:var(--line-height-relaxed)}select.form-control{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2386868b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}select.form-control:focus{background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%233D5229' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.form-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:8px;letter-spacing:-.01em}.form-group{margin-bottom:20px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;transition:all var(--duration-normal) var(--ease-out)}.card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-strong);transform:translateY(-2px)}.card__body{padding:24px}.card__header{padding:20px 24px;border-bottom:1px solid var(--color-divider);background:var(--color-surface)}.card__footer{padding:16px 24px;border-top:1px solid var(--color-divider);background:var(--color-secondary)}.status{display:inline-flex;align-items:center;padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}.status--success{background:rgba(var(--color-success-rgb),var(--status-bg-opacity));border:1px solid rgba(var(--color-success-rgb),var(--status-border-opacity));color:var(--color-success)}.status--error{background:rgba(var(--color-error-rgb),var(--status-bg-opacity));border:1px solid rgba(var(--color-error-rgb),var(--status-border-opacity));color:var(--color-error)}.status--warning{background:rgba(var(--color-warning-rgb),var(--status-bg-opacity));border:1px solid rgba(var(--color-warning-rgb),var(--status-border-opacity));color:var(--color-warning)}.status--info{background:rgba(var(--color-info-rgb),var(--status-bg-opacity));border:1px solid rgba(var(--color-info-rgb),var(--status-border-opacity));color:var(--color-info)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;transition:all var(--duration-normal) var(--ease-out);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-success));transform:scaleX(0);transform-origin:left;transition:transform var(--duration-normal) var(--ease-out)}.kpi-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-elevated);transform:translateY(-4px)}.kpi-card:hover:before{transform:scaleX(1)}.kpi-icon{font-size:32px;line-height:1;filter:grayscale(20%);transition:filter var(--duration-fast) var(--ease-out)}.kpi-card:hover .kpi-icon{filter:grayscale(0%)}.kpi-content{flex:1;width:100%}.kpi-value{font-family:var(--font-family-display);font-size:36px;font-weight:var(--font-weight-bold);color:var(--color-text);margin:0;line-height:1;letter-spacing:var(--letter-spacing-tight)}.kpi-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin:4px 0 0;letter-spacing:-.01em}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);border-radius:var(--radius-base);overflow:hidden;box-shadow:var(--shadow-sm)}.table th,.table td{padding:var(--space-12);text-align:left;border-bottom:1px solid var(--color-border)}.table th{font-weight:var(--font-weight-semibold);background:var(--color-primary);color:#fff;text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.5px}.table tbody tr:hover{background:rgba(var(--color-primary-rgb),.05)}.table tbody tr:last-child td{border-bottom:none}.loading-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-background),rgba(var(--color-primary-rgb),.05))}.loading-spinner{text-align:center;animation:fadeIn var(--duration-normal) var(--ease-standard)}.loading-spinner .rmp-logo img{animation:pulse 1.5s infinite;filter:drop-shadow(0 4px 12px rgba(13,92,76,.2))}.loading-spinner .rmp-logo h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0;animation:pulse 1.5s infinite;text-shadow:0 2px 4px rgba(var(--color-primary-rgb),.2)}.loading-spinner .rmp-logo p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:var(--space-8) 0 0 0;font-weight:500}.error-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-background);padding:var(--space-24);text-align:center}.error-container h1{color:var(--color-error);margin-bottom:var(--space-16)}.error-container p{color:var(--color-text-secondary);margin-bottom:var(--space-24)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:var(--space-4)}.gap-8{gap:var(--space-8)}.gap-16{gap:var(--space-16)}.m-0{margin:0}.mt-8{margin-top:var(--space-8)}.mb-8{margin-bottom:var(--space-8)}.mx-8{margin-left:var(--space-8);margin-right:var(--space-8)}.my-8{margin-top:var(--space-8);margin-bottom:var(--space-8)}.p-0{padding:0}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.py-16{padding-top:var(--space-16);padding-bottom:var(--space-16)}.px-16{padding-left:var(--space-16);padding-right:var(--space-16)}.block{display:block}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:var(--focus-outline);outline-offset:2px}.tab{padding:var(--space-12) var(--space-24);border:none;background:transparent;border-bottom:3px solid transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-base)}.tab:hover{color:var(--color-text);background:rgba(var(--color-primary-rgb),.05)}.tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1)}.btn--small{padding:var(--space-6) var(--space-12);font-size:var(--font-size-sm)}.section-with-tabs{display:flex;flex-direction:column;height:100%}.sub-tabs{display:flex;border-bottom:2px solid var(--color-border);margin-bottom:var(--space-20);gap:1px;background:var(--color-surface)}.sub-tab{padding:var(--space-12) var(--space-20);border:none;background:transparent;border-bottom:3px solid transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);border-radius:var(--radius-base) var(--radius-base) 0 0}.sub-tab:hover{color:var(--color-text);background:rgba(var(--color-primary-rgb),.05)}.sub-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1);font-weight:var(--font-weight-semibold)}.operations-flow{padding:var(--space-20)}.flow-description{margin-bottom:var(--space-24);text-align:center}.flow-description h3{color:var(--color-primary);margin-bottom:var(--space-8)}.flow-description p{color:var(--color-text-secondary);font-size:var(--font-size-base)}.assignment-section{margin-bottom:var(--space-24);padding:var(--space-16);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.assignment-info{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-16)}.route-assignment-section{margin-bottom:var(--space-24)}.route-creation{background:var(--color-surface);padding:var(--space-20);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:var(--space-20)}.route-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-16);align-items:end}.route-assignment{background:var(--color-surface);padding:var(--space-20);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.assignment-table{margin-top:var(--space-16)}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:var(--space-16)}.spinner,.loading-spinner:empty,.loading-state .loading-spinner:empty{display:none!important}.modal-actions{padding:var(--space-16) var(--space-20);border-top:1px solid var(--color-border);display:flex;gap:var(--space-12);justify-content:flex-end}.modal-body label{display:block;margin-bottom:var(--space-6);font-weight:var(--font-weight-medium);color:var(--color-text)}.modal-body input,.modal-body select{width:100%;padding:var(--space-10) var(--space-12);margin-bottom:var(--space-16);border:2px solid var(--color-border);border-radius:var(--radius-base);background-color:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);transition:border-color var(--duration-fast) var(--ease-standard)}.modal-body input:focus,.modal-body select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}@media (max-width: 480px){.modal-overlay [class*=modal-content],.modal-backdrop [class*=modal-content],[class*=modal-overlay]>div:first-child{max-width:100%!important;width:100%!important;max-height:100vh!important;height:100vh!important;border-radius:0!important;margin:0!important}}@media (max-width: 768px){.table-responsive,[class*=table-container]{overflow-x:auto;-webkit-overflow-scrolling:touch}[class*=map-container],.leaflet-container,.maplibregl-map{min-height:200px;max-height:400px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.page-transition-enter{animation:fadeIn var(--duration-normal) var(--ease-out)}.interactive{transition:all var(--duration-fast) var(--ease-out)}.interactive:hover{transform:translateY(-2px)}.interactive:active{transform:translateY(0)}.section-header{margin-bottom:var(--space-32);padding-bottom:var(--space-20);border-bottom:2px solid var(--color-border)}.section-title h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--space-6)}.section-title p{color:var(--color-text-secondary);font-size:var(--font-size-base);margin:0}.personnel-dashboard{display:flex;flex-direction:column;gap:var(--space-32)}.shift-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-20)}.shift-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-24);transition:all var(--duration-fast) var(--ease-standard);position:relative;overflow:hidden}.shift-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.shift-card.morning:before{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.shift-card.afternoon:before{background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.shift-card.night:before{background:linear-gradient(90deg,#6366f1,#4338ca)}.shift-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.shift-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-16)}.shift-header h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.shift-time{font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-secondary);padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);font-family:var(--font-family-mono)}.shift-stats{display:flex;gap:var(--space-24)}.stat{display:flex;flex-direction:column;align-items:center}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-4)}.personnel-table-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.table-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-20) var(--space-24);border-bottom:1px solid var(--color-border);background:rgba(var(--color-primary-rgb),.02)}.table-header h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.btn-minimal{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);border:2px solid transparent;border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);text-decoration:none;background:transparent}.btn-minimal.primary{color:var(--color-primary);border-color:var(--color-primary)}.btn-minimal.primary:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);font-size:14px}.btn-icon:hover{background:rgba(var(--color-primary-rgb),.1);transform:scale(1.1)}.action-buttons{display:flex;gap:var(--space-4)}.personnel-table{overflow-x:auto}.minimal-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.minimal-table th{padding:var(--space-16) var(--space-24);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text);border-bottom:2px solid var(--color-border);background:transparent;font-size:var(--font-size-sm);text-transform:none;letter-spacing:normal}.minimal-table td{padding:var(--space-16) var(--space-24);border-bottom:1px solid var(--color-border);vertical-align:middle}.minimal-table tbody tr{transition:background-color var(--duration-fast) var(--ease-standard)}.minimal-table tbody tr:hover{background:rgba(var(--color-primary-rgb),.02)}.employee-info{display:flex;align-items:center;gap:var(--space-12)}.employee-avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.employee-name{font-weight:var(--font-weight-medium);color:var(--color-text);line-height:1.2}.employee-id{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-family:var(--font-family-mono)}.position-badge{display:inline-flex;padding:var(--space-4) var(--space-10);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px}.position-badge.driver{background:#22c55e1a;color:#059669;border:1px solid rgba(34,197,94,.2)}.position-badge.helper{background:#3b82f61a;color:#2563eb;border:1px solid rgba(59,130,246,.2)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-4) var(--space-10);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.status-badge.active{background:#22c55e1a;color:#059669;border:1px solid rgba(34,197,94,.2)}.status-badge.inactive{background:#6b72801a;color:#6b7280;border:1px solid rgba(107,114,128,.2)}.rating-input{display:flex;flex-direction:column;gap:var(--space-4);align-items:center}.rating-number{width:60px;padding:var(--space-6) var(--space-8);border:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:center;background:var(--color-surface);color:var(--color-text);transition:all var(--duration-fast) var(--ease-standard)}.rating-number:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.rating-stars{font-size:12px;color:#fbbf24}.stars{letter-spacing:1px}.minimal-select{padding:var(--space-8) var(--space-12);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:var(--select-caret-light);background-repeat:no-repeat;background-position:right var(--space-8) center;background-size:16px;padding-right:var(--space-32)}.minimal-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.minimal-select:hover{border-color:var(--color-primary)}.drag-drop-container{padding:var(--space-20) 0}.shifts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-20)}.shift-zone{background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg);min-height:400px;transition:all var(--duration-fast) var(--ease-standard);position:relative;overflow:hidden}.shift-zone:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.shift-zone.unassigned{border-color:#94a3b8}.shift-zone.unassigned:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#94a3b8,#64748b)}.shift-zone.morning:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#fbbf24,#f59e0b)}.shift-zone.afternoon:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.shift-zone.night:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#6366f1,#4338ca)}.zone-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-20) var(--space-20) var(--space-16);border-bottom:1px solid var(--color-border);background:rgba(var(--color-primary-rgb),.02)}.zone-title h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0}.zone-count,.shift-time{font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-secondary);padding:var(--space-2) var(--space-8);border-radius:var(--radius-sm);font-family:var(--font-family-mono)}.zone-stats{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-4)}.employee-count{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary)}.average-rating{font-size:var(--font-size-sm);color:#fbbf24;font-weight:var(--font-weight-medium)}.employees-list{padding:var(--space-16);display:flex;flex-direction:column;gap:var(--space-12);flex:1}.employee-card{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:grab;transition:all var(--duration-fast) var(--ease-standard);-webkit-user-select:none;user-select:none}.employee-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.employee-card:active{cursor:grabbing;transform:scale(1.02);box-shadow:var(--shadow-lg)}.employee-card .employee-avatar{width:36px;height:36px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0}.employee-details{flex:1;min-width:0}.employee-card .employee-name{font-weight:var(--font-weight-medium);color:var(--color-text);line-height:1.2;margin-bottom:var(--space-4)}.employee-meta{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.employee-card .position-badge{padding:var(--space-2) var(--space-6);font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.position-badge.conductor{background:#22c55e1a;color:#059669;border:1px solid rgba(34,197,94,.2)}.position-badge.ayudante{background:#3b82f61a;color:#2563eb;border:1px solid rgba(59,130,246,.2)}.position-badge.supervisor{background:#a855f71a;color:#7c3aed;border:1px solid rgba(168,85,247,.2)}.rating-display{font-size:var(--font-size-xs);color:#fbbf24;font-weight:var(--font-weight-medium)}.empty-zone{display:flex;align-items:center;justify-content:center;min-height:120px;border:2px dashed var(--color-border);border-radius:var(--radius-base);margin:var(--space-16) 0}.empty-zone p{color:var(--color-text-secondary);font-style:italic;font-size:var(--font-size-sm)}.shift-zone.drag-over{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);border-style:solid}.employee-card.dragging{opacity:.5;transform:rotate(5deg)}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-32);padding-bottom:var(--space-20);border-bottom:2px solid var(--color-border)}.section-header .section-title{flex:1}.section-header .btn-minimal{flex-shrink:0;margin-left:var(--space-20)}.fleet-management{display:flex;flex-direction:column;gap:var(--space-24)}.fleet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-20)}.vehicle-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--duration-fast) var(--ease-standard)}.vehicle-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--color-primary)}.vehicle-header{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-border);background:rgba(var(--color-primary-rgb),.02)}.vehicle-icon{font-size:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb),.1);border-radius:50%}.vehicle-info{flex:1}.vehicle-info h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0}.service-badge{font-size:var(--font-size-xs);padding:var(--space-2) var(--space-8);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px}.service-badge.recoleccion{background:#22c55e1a;color:#059669}.service-badge.fumigacion{background:#f59e0b1a;color:#d97706}.status-indicator{font-size:var(--font-size-xs);padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.status-indicator.disponible{background:#22c55e1a;color:#059669}.status-indicator.en-ruta{background:#3b82f61a;color:#2563eb}.status-indicator.mantenimiento{background:#ef44441a;color:#dc2626}.vehicle-assignments{padding:var(--space-20);display:flex;flex-direction:column;gap:var(--space-16)}.assignment-field{display:flex;flex-direction:column;gap:var(--space-6)}.assignment-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.assignment-select{padding:var(--space-10) var(--space-12);border:2px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm);transition:all var(--duration-fast) var(--ease-standard)}.assignment-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.route-preview{padding:var(--space-12);background:rgba(var(--color-primary-rgb),.02);border-radius:var(--radius-base);border:1px solid var(--color-border)}.route-info{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);margin-bottom:var(--space-12)}.route-detail{display:flex;flex-direction:column;align-items:center;text-align:center}.detail-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.detail-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.route-progress{height:6px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background:var(--gradient-primary);transition:width var(--duration-normal) var(--ease-standard)}.vehicle-actions{display:flex;gap:var(--space-8);padding:var(--space-16) var(--space-20);border-top:1px solid var(--color-border)}.action-btn{flex:1;padding:var(--space-8) var(--space-12);border:2px solid transparent;border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard)}.action-btn.primary{background:var(--color-primary);color:#fff}.action-btn.primary:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.action-btn.secondary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.action-btn.secondary:hover{background:var(--color-primary);color:#fff}.action-btn.tertiary{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.action-btn.tertiary:hover{color:var(--color-text);border-color:var(--color-text-secondary)}.route-status-toggle{background:none;border:none;padding:4px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard)}.route-status-toggle.active{background:#22c55e1a;color:#22c55e}.route-status-toggle.inactive{background:#ef44441a;color:#ef4444}.route-status-toggle:hover{opacity:.8;transform:scale(1.05)}.assigned-route-info{margin-bottom:var(--space-12);padding:var(--space-12);background:rgba(var(--color-primary-rgb),.05);border-radius:var(--radius-md);border:1px solid rgba(var(--color-primary-rgb),.1)}.assigned-route-info h5{margin:0 0 var(--space-8) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.route-stops-mini{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.stop-mini{background:rgba(var(--color-text-rgb),.05);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.fleet-list-container{display:flex;flex-direction:column;gap:var(--space-24)}.fleet-stats{display:flex;gap:var(--space-24);margin-bottom:var(--space-16)}.fleet-list{display:flex;flex-direction:column;gap:var(--space-16)}.fleet-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-20);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--duration-fast) var(--ease-standard)}.fleet-list-item:hover{border-color:var(--color-primary);box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.1)}.vehicle-main-info{display:flex;align-items:center;gap:var(--space-16);flex:1}.vehicle-indicator{position:relative;display:flex;align-items:center;justify-content:center}.vehicle-icon-large{font-size:32px}.status-dot{position:absolute;bottom:-4px;right:-4px;width:12px;height:12px;border-radius:50%;border:2px solid var(--color-surface)}.status-dot.en-ruta{background:#22c55e}.status-dot.disponible{background:#3b82f6}.status-dot.mantenimiento{background:#f59e0b}.vehicle-details-list{display:flex;flex-direction:column;gap:var(--space-12);flex:1}.vehicle-primary h4{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.vehicle-meta-list{display:flex;gap:var(--space-12);flex-wrap:wrap}.service-type-tag,.status-tag,.fuel-level{padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.service-type-tag.recoleccion{background:#22c55e1a;color:#22c55e}.service-type-tag.fumigacion{background:#f59e0b1a;color:#f59e0b}.status-tag.en-ruta{background:#22c55e1a;color:#22c55e}.status-tag.disponible{background:#3b82f61a;color:#3b82f6}.status-tag.mantenimiento{background:#f59e0b1a;color:#f59e0b}.fuel-level{background:rgba(var(--color-text-rgb),.1);color:var(--color-text-secondary)}.assignments-compact{display:flex;flex-direction:column;gap:var(--space-8);margin-top:var(--space-8)}.assignment-row{display:flex;align-items:center;gap:var(--space-12)}.assignment-row label{min-width:80px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.compact-select{flex:1;padding:var(--space-6) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--font-size-sm);color:var(--color-text);max-width:200px}.compact-select:focus{outline:none;border-color:var(--color-primary)}.route-info-compact{padding:var(--space-8);background:rgba(var(--color-primary-rgb),.05);border-radius:var(--radius-sm);margin-top:var(--space-8)}.route-name-compact{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-primary);margin-bottom:var(--space-4)}.route-stops-compact{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.route-time-compact{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.fleet-actions{display:flex;gap:var(--space-8)}.fleet-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);font-size:16px}.fleet-action-btn.save:hover{background:#22c55e1a;color:#22c55e}.fleet-action-btn.location:hover{background:#dc26261a;color:#dc2626;transform:scale(1.1)}.fleet-action-btn.map:hover{background:#3b82f61a;color:#3b82f6}.empty-fleet{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-64);text-align:center;color:var(--color-text-secondary)}.empty-fleet .empty-icon{font-size:48px;margin-bottom:var(--space-16)}.empty-fleet h4{margin:0 0 var(--space-8) 0;color:var(--color-text)}.empty-fleet p{margin:0;font-size:var(--font-size-sm)}.vehicles-assigned{background:rgba(var(--color-primary-rgb),.1);color:var(--color-primary);padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.action-btn-list{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);font-size:14px}.action-btn-list.edit:hover{background:#3b82f61a;color:#3b82f6}.action-btn-list.map:hover{background:#22c55e1a;color:#22c55e}.action-btn-list.duplicate:hover{background:#f59e0b1a;color:#f59e0b}.action-btn-list.delete:hover{background:#ef44441a;color:#ef4444}.routes-management{display:flex;flex-direction:column;gap:var(--space-32)}.routes-overview{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-20)}.overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-16)}.stat-card{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-16);background:rgba(var(--color-primary-rgb),.02);border:1px solid rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-base)}.stat-icon{font-size:24px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb),.1);border-radius:50%}.stat-info{display:flex;flex-direction:column}.stat-number{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.routes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-20)}.route-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--duration-fast) var(--ease-standard)}.route-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.route-header{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-border)}.route-color{width:4px;height:32px;border-radius:var(--radius-sm)}.route-info{flex:1}.route-info h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0}.route-menu{display:flex;align-items:center}.menu-btn{width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all var(--duration-fast) var(--ease-standard)}.menu-btn:hover{background:rgba(var(--color-primary-rgb),.1);color:var(--color-text)}.route-details{padding:var(--space-20)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-16);margin-bottom:var(--space-20)}.detail-item{display:flex;align-items:center;gap:var(--space-10)}.detail-icon{font-size:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb),.1);border-radius:50%;flex-shrink:0}.detail-content{display:flex;flex-direction:column}.preview-map{background:rgba(var(--color-border),.3);border-radius:var(--radius-base);height:120px;display:flex;align-items:center;justify-content:center;border:2px dashed var(--color-border)}.map-placeholder{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.route-actions{display:flex;gap:var(--space-8);padding:var(--space-16) var(--space-20);border-top:1px solid var(--color-border)}.route-templates{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-24)}.templates-header{margin-bottom:var(--space-20);text-align:center}.templates-header h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-8) 0}.templates-header p{color:var(--color-text-secondary);margin:0}.templates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-16)}.template-card{display:flex;align-items:center;gap:var(--space-16);padding:var(--space-16);background:rgba(var(--color-primary-rgb),.02);border:1px solid rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-standard)}.template-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.template-icon{font-size:24px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb),.1);border-radius:50%;flex-shrink:0}.template-info{flex:1}.template-info h5{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0}.template-info p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.template-btn{padding:var(--space-6) var(--space-12);border:2px solid var(--color-primary);border-radius:var(--radius-base);background:transparent;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);flex-shrink:0}.template-btn:hover{background:var(--color-primary);color:#fff}.route-creator{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-24);overflow:hidden}.creator-header{padding:var(--space-20) var(--space-24);border-bottom:1px solid var(--color-border);background:rgba(var(--color-primary-rgb),.02)}.creator-header h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-6) 0}.creator-header p{color:var(--color-text-secondary);margin:0;font-size:var(--font-size-sm)}.creator-form{padding:var(--space-24)}.form-row{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-16);margin-bottom:var(--space-24)}.form-field{display:flex;flex-direction:column;gap:var(--space-6)}.form-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.route-name-input,.route-type-select{padding:var(--space-12) var(--space-16);border:2px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-base);background:var(--color-surface);color:var(--color-text);transition:all var(--duration-fast) var(--ease-standard)}.route-name-input:focus,.route-type-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.stops-section{margin-bottom:var(--space-24)}.stops-header{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-16)}.stops-header label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.stops-info{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.stops-list{display:flex;flex-direction:column;gap:var(--space-8);margin-bottom:var(--space-16)}.stop-item{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12);background:rgba(var(--color-primary-rgb),.02);border:1px solid var(--color-border);border-radius:var(--radius-base)}.stop-number{width:28px;height:28px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex-shrink:0}.stop-input{flex:1;padding:var(--space-8) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-base);font-size:var(--font-size-sm);background:var(--color-surface);transition:all var(--duration-fast) var(--ease-standard)}.stop-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.1)}.remove-stop-btn{width:28px;height:28px;border:none;background:rgba(var(--color-error-rgb),.1);color:var(--color-error);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);transition:all var(--duration-fast) var(--ease-standard);flex-shrink:0}.remove-stop-btn:hover{background:var(--color-error);color:#fff}.add-stop-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-8);padding:var(--space-12) var(--space-16);border:2px dashed var(--color-border);border-radius:var(--radius-base);background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--duration-fast) var(--ease-standard);width:100%}.add-stop-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:rgba(var(--color-primary-rgb),.02)}.creator-actions{display:flex;gap:var(--space-12);justify-content:flex-end}.cancel-btn,.save-route-btn{padding:var(--space-10) var(--space-20);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);border:2px solid transparent}.cancel-btn{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.cancel-btn:hover{color:var(--color-text);border-color:var(--color-text-secondary)}.save-route-btn{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.save-route-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.save-route-btn:disabled{opacity:.5;cursor:not-allowed}.routes-list-container{display:flex;flex-direction:column;gap:var(--space-20)}.routes-stats{display:flex;gap:var(--space-16);padding:var(--space-16);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base)}.stat-item{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1}.stat-item .stat-icon{font-size:20px;margin-bottom:var(--space-4)}.stat-item .stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1}.stat-item .stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.routes-list{display:flex;flex-direction:column;gap:var(--space-12)}.route-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-16) var(--space-20);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:all var(--duration-fast) var(--ease-standard)}.route-list-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.route-main-info{display:flex;align-items:center;gap:var(--space-16);flex:1}.route-indicator{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);flex-shrink:0}.route-color-dot{width:12px;height:12px;border-radius:50%}.route-type-icon{font-size:18px}.route-details-list{flex:1;min-width:0}.route-name-section{margin-bottom:var(--space-8)}.route-name-section h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-4) 0}.route-meta{display:flex;align-items:center;gap:var(--space-12)}.route-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.route-status.active{color:var(--color-success)}.route-status.inactive{color:var(--color-text-secondary)}.route-service-type{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.route-stops-preview{display:flex;flex-direction:column;gap:var(--space-4)}.stops-header-info{display:flex;align-items:center;gap:var(--space-12)}.stops-count,.route-time{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.stops-preview-list{font-size:var(--font-size-sm);color:var(--color-text);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-preview{color:var(--color-text-secondary)}.route-actions-list{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}.action-btn-list{width:32px;height:32px;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-standard);font-size:14px}.action-btn-list.edit{background:#3b82f61a;color:#2563eb}.action-btn-list.edit:hover{background:#2563eb;color:#fff}.action-btn-list.map{background:#22c55e1a;color:#059669}.action-btn-list.map:hover{background:#059669;color:#fff}.action-btn-list.duplicate{background:#a855f71a;color:#7c3aed}.action-btn-list.duplicate:hover{background:#7c3aed;color:#fff}.action-btn-list.delete{background:#ef44441a;color:#dc2626}.action-btn-list.delete:hover{background:#dc2626;color:#fff}.empty-routes{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-32);text-align:center;background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg)}.empty-icon{font-size:48px;margin-bottom:var(--space-16);opacity:.5}.empty-routes h4{font-size:var(--font-size-lg);color:var(--color-text);margin:0 0 var(--space-8) 0}.empty-routes p{color:var(--color-text-secondary);margin:0}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.routes-stats{flex-direction:column}.route-main-info{flex-direction:column;align-items:flex-start;gap:var(--space-12)}.route-actions-list{flex-direction:column;gap:var(--space-2)}}@media (max-width: 1024px){html,body,#root{overflow-x:hidden;max-width:100vw}}@media (max-width: 480px){.modal-overlay,.modal-overlay-v2,.modal-backdrop,.cleaning-modal-overlay,.fumigation-modal-overlay,.route-modal-overlay,.weight-modal-overlay,.schedule-modal-overlay,.gps-playback-modal-overlay,.report-modal-overlay,.photos-modal-overlay,.item-detail-modal-overlay,.maintenance-task-modal-overlay,.route-completion-overlay,.location-modal-overlay,.location-reports-overlay{padding:0!important;align-items:flex-end!important}.modal-content,.modal-content-v2,.modal-container,.cleaning-modal,.fumigation-modal,.route-modal,.weight-modal,.schedule-modal,.gps-playback-modal,.report-modal,.photos-modal,.item-detail-modal,.maintenance-task-modal,.route-completion-modal,.location-map-modal,.location-reports-modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;min-height:100dvh!important;margin:0!important;border-radius:0!important;display:flex!important;flex-direction:column!important}.modal-body,.modal-content>.modal-form,.modal-content-v2>.modal-form-v2{flex:1 1 auto!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;min-height:0!important}.modal-actions,.modal-actions-v2,.modal-footer,.form-actions{flex-direction:column-reverse!important;gap:8px!important;padding:12px!important}.modal-actions>button,.modal-actions-v2>button,.modal-footer>button,.form-actions>button{width:100%!important;min-height:44px!important;justify-content:center!important}.form-row,.form-row-v2,.form-grid{grid-template-columns:1fr!important;gap:12px!important}}@media (max-width: 768px){.data-table-wrapper,.table-wrapper,.personnel-table-wrapper,.fleet-table-wrapper,.inventory-table-wrapper,.reports-table-wrapper{display:block!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;max-width:100%}.admin-content table:not(.no-scroll),.component-container table:not(.no-scroll){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}}@media (max-width: 768px){button:not(.icon-btn-sm):not(.tag-close):not(.close-small),a.btn,.btn,.button,[role=button]{min-height:44px}.icon-btn,.btn-icon,.close-btn,.edit-btn,.delete-btn{min-width:44px;min-height:44px}input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:44px;font-size:16px}}@media (max-width: 1024px){.grid-3,.grid-4,.cards-grid-3,.cards-grid-4{grid-template-columns:repeat(2,1fr)!important}}@media (max-width: 768px){.grid-2,.grid-3,.grid-4,.cards-grid,.cards-grid-2,.cards-grid-3,.cards-grid-4,.stats-grid,.kpi-grid,.filters-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}}@media (max-width: 480px){.grid-2,.grid-3,.grid-4,.cards-grid,.cards-grid-2,.cards-grid-3,.cards-grid-4,.stats-grid,.filters-grid,.vehicle-grid,.routes-grid{grid-template-columns:1fr!important}.kpi-grid{grid-template-columns:repeat(2,1fr)!important}}@media (max-width: 768px){.filters-bar,.ops-filters,.ops-filters-modern,.search-filters,.toolbar-filters{flex-direction:column!important;align-items:stretch!important;gap:8px!important}.filter-group,.search-input-wrapper{width:100%!important}.filter-chip,.filter-btn{width:100%!important;justify-content:center!important}}@media (max-width: 768px){.component-header,.page-header,.section-header,.ops-header{flex-direction:column!important;align-items:stretch!important;gap:12px!important;padding:12px!important}.component-header>h1,.component-header>h2,.page-header>h1,.section-header>h2{font-size:20px!important}.header-actions,.component-header-actions{width:100%!important;flex-wrap:wrap!important}.header-actions>button{flex:1 1 auto}}@media (max-width: 768px){.tabs-container,.sub-tabs,.sub-nav,.inner-tabs{overflow-x:auto!important;-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important;scrollbar-width:none}.tabs-container::-webkit-scrollbar,.sub-tabs::-webkit-scrollbar,.sub-nav::-webkit-scrollbar,.inner-tabs::-webkit-scrollbar{display:none}.tab,.sub-tab{white-space:nowrap!important;flex-shrink:0!important}}@media (max-width: 480px){.admin-content,.component-container,.page-container,.section-container,.card-container{padding:8px!important}.card,.panel,.widget{padding:12px!important;border-radius:6px!important}}@media (max-width: 480px){h1{font-size:22px!important}h2{font-size:19px!important}h3{font-size:17px!important}h4{font-size:15px!important}.section-title h3{font-size:18px!important}.widget-title{font-size:15px!important}}@media (max-width: 768px){img,video,canvas,svg{max-width:100%;height:auto}.maplibregl-canvas,.leaflet-container canvas{max-width:none;width:100%!important}}@supports (padding: env(safe-area-inset-bottom)){.app-bar,.top-nav,.bottom-sheet{padding-bottom:env(safe-area-inset-bottom,0)}}
