/* ══════════════════════════════════════════════════════
   GO Design System — Grupo Ortiz
   Bruckner Automatizacion v0.2.0
   Tokens: context_desing_go/context_design.md
   ══════════════════════════════════════════════════════ */

@font-face{font-family:'Blauer Nue';src:url('/static/fonts/blauer-nue/Blauer-Nue-Regular-iF6626350c83fdf.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Blauer Nue';src:url('/static/fonts/blauer-nue/Blauer-Nue-Semibold-iF6626350c8d55c.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Blauer Nue';src:url('/static/fonts/blauer-nue/Blauer-Nue-Bold-Italic-iF6626350c420cc.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Morganite Pro';src:url('/static/fonts/morganite-pro/MorganitePro-SemiBold.woff2') format('woff2'),url('/static/fonts/morganite-pro/MorganitePro-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Morganite Pro';src:url('/static/fonts/morganite-pro/MorganitePro-Black.woff2') format('woff2'),url('/static/fonts/morganite-pro/MorganitePro-Black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'Conthic';src:url('/static/fonts/conthic/cookconthic.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}

:root{
  --go-orange:#FB670B;--go-orange-hot:#FF7A22;--go-bg:#0A0A0A;--go-bg-warm:#111111;
  --go-surface:#1A1A1A;--go-text:#FFFFFF;--go-text-2:#A0A0A0;--go-text-3:#707070;
  --go-border:rgba(255,255,255,0.09);--go-border-str:rgba(255,255,255,0.14);
  --go-verde:#00A36E;--go-amarillo:#D97706;--go-rojo:#DC2626;--go-missing:#9CA3AF;
  --font-display:'Blauer Nue',system-ui,sans-serif;--font-body:'Blauer Nue',system-ui,sans-serif;
  --font-kpi:'Morganite Pro','Impact',sans-serif;--font-mono:'JetBrains Mono',monospace;
  --sidebar-expanded:248px;--sidebar-collapsed:64px;--topbar-height:56px;
  --radius-base:0px;--radius-badge:4px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-display);font-size:14px;line-height:1.6;background:var(--go-bg);color:var(--go-text);min-height:100vh}
a{color:var(--go-orange);text-decoration:none}a:hover{color:var(--go-orange-hot)}

.topbar{position:fixed;top:0;left:0;right:0;z-index:200;height:var(--topbar-height);background:var(--go-bg-warm);border-bottom:1px solid var(--go-border);display:flex;align-items:center;justify-content:space-between;padding:0 20px}
.topbar-brand{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--go-text)}
.topbar-brand em{color:var(--go-orange);font-style:normal}
.topbar-sub{font-size:12px;color:var(--go-text-3)}
.topbar-right{display:flex;align-items:center;gap:16px;font-family:var(--font-display);font-size:12px;color:var(--go-text-2)}

.sidebar{position:fixed;top:var(--topbar-height);left:0;bottom:0;z-index:100;width:var(--sidebar-expanded);background:#111;border-right:1px solid var(--go-border);display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;transition:width 220ms cubic-bezier(0.4,0,0.2,1)}
.sidebar.collapsed{width:var(--sidebar-collapsed)}
.sidebar-collapse-btn{width:28px;height:28px;border-radius:6px;background:transparent;border:1px solid var(--go-border-str);color:rgba(255,255,255,0.55);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin:10px;align-self:flex-end;transition:transform 220ms ease}
.sidebar.collapsed .sidebar-collapse-btn{transform:rotate(180deg);align-self:center}
.sidebar-nav{list-style:none;flex:1;padding:0 8px}
.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:rgba(255,255,255,0.7);font-family:var(--font-display);font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;transition:color 180ms ease,background 180ms ease}
.sidebar-nav a:hover{background:rgba(251,103,11,0.10);color:var(--go-orange)}
.sidebar-nav a.active{background:var(--go-orange);color:#fff;font-weight:600}
.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;opacity:0.7}
.sidebar-nav a.active .nav-icon{opacity:1}
.nav-label{transition:opacity 150ms ease}
.sidebar.collapsed .nav-label{opacity:0;width:0;overflow:hidden}
.sidebar.collapsed .sidebar-nav a{gap:0;justify-content:center;padding:10px 0}
.sidebar.collapsed .sidebar-nav a.active{background:transparent;color:var(--go-orange);box-shadow:inset 3px 0 0 var(--go-orange)}
.nav-section-label{font-size:10px;letter-spacing:0.12em;color:var(--go-text-3);padding:8px 12px 4px;text-transform:uppercase;font-family:var(--font-body);margin-top:4px}
.sidebar.collapsed .nav-section-label{display:none}

.main-content{margin-left:var(--sidebar-expanded);margin-top:var(--topbar-height);padding:24px;min-height:calc(100vh - var(--topbar-height));transition:margin-left 220ms cubic-bezier(0.4,0,0.2,1)}
.sidebar.collapsed~.main-content{margin-left:var(--sidebar-collapsed)}

.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px}
.kpi-card{background:var(--go-surface);border:1px solid var(--go-border);padding:20px;border-radius:10px}
.kpi-value{font-family:var(--font-kpi);font-size:3rem;font-weight:900;line-height:1;color:var(--go-text)}
.kpi-label{font-family:var(--font-display);font-size:11px;font-weight:600;color:var(--go-text-2);text-transform:uppercase;letter-spacing:0.06em;margin-top:4px}
.kpi-sub{font-family:var(--font-mono);font-size:10px;color:var(--go-text-3);margin-top:2px}

.go-table{width:100%;border-collapse:collapse;font-size:13px}
.go-table thead th{background:var(--go-surface);font-family:var(--font-display);font-size:11px;font-weight:700;color:var(--go-orange);text-transform:uppercase;letter-spacing:0.06em;padding:10px 12px;border-bottom:2px solid var(--go-orange);text-align:left}
.go-table tbody td{padding:8px 12px;border-bottom:1px solid var(--go-border);color:var(--go-text);font-family:var(--font-display);font-size:13px}
.go-table tbody tr:nth-child(even){background:rgba(255,255,255,0.02)}
.go-table tbody tr:hover{background:rgba(251,103,11,0.06)}
.mono{font-family:var(--font-mono);font-size:12px}

.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-badge);font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em}
.badge-green{background:rgba(0,163,110,0.12);color:var(--go-verde)}
.badge-yellow{background:rgba(217,119,6,0.12);color:var(--go-amarillo)}
/* Viajes status badges — solid fill sobre .badge base */
.badge.badge-viaje-ruta{background:#1db954;color:#fff}
.badge.badge-viaje-completado{background:#555;color:#fff}
.badge.badge-viaje-facturacion{background:#f59e0b;color:#fff}
.badge.badge-viaje-ejecucion{background:var(--go-orange);color:#fff}
.badge.badge-viaje-cancelado{background:#ef4444;color:#fff}
.badge.badge-viaje-otro{background:#333;color:#fff}
.badge-red{background:rgba(220,38,38,0.12);color:var(--go-rojo)}

.btn-outline-orange{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border:1px solid var(--go-orange);border-radius:2px;background:transparent;color:var(--go-orange);font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:0.08em;text-decoration:none;cursor:pointer;transition:all 0.2s ease}
.btn-outline-orange:hover{background:var(--go-orange);color:#fff}

.card{background:var(--go-surface);border:1px solid var(--go-border);padding:20px;margin-bottom:16px;border-radius:10px}
.card h2{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--go-orange);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--go-border)}
.card-orange-top{border-top:3px solid var(--go-orange)}

.section-block .section-title{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--go-orange);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--go-border)}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}

.page-header{margin-bottom:24px}
.page-header h1{font-family:var(--font-kpi);font-size:36px;font-weight:900;color:var(--go-text);text-transform:uppercase;letter-spacing:0.02em}
.page-header p{font-family:var(--font-body);font-size:13px;color:var(--go-text-3);margin-top:2px}
.page-header-sep{width:60px;height:3px;background:var(--go-orange);margin-top:8px}

/* ── Chart containers ── */
.chart-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}
.chart-card{padding-bottom:16px}
.chart-card h2{margin-bottom:8px}
.chart-container{position:relative;width:100%;height:280px}
.chart-container canvas{width:100%!important;height:100%!important}
/* skeleton loader */
.kpi-skeleton{width:80%;height:32px;background:rgba(255,255,255,0.04);border-radius:4px;animation:skel-pulse 1.4s ease-in-out infinite}
@keyframes skel-pulse{0%,100%{opacity:0.3}50%{opacity:0.7}}

/* ── RH Dashboard ── */
.rh-score-badge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;border-radius:22px;font-family:var(--font-display);font-size:16px;font-weight:700;color:#fff;padding:0 12px}
.rh-score-high{background:#1db954}.rh-score-mid{background:#f59e0b}.rh-score-low{background:#ef4444}
.rh-unidad-badge{display:inline-block;padding:2px 8px;background:rgba(251,103,11,0.15);color:var(--go-orange);border-radius:10px;font-family:var(--font-mono);font-size:11px;font-weight:600}
.rh-puntualidad-bar{width:100%;height:4px;background:rgba(255,255,255,0.08);border-radius:2px;margin-top:3px}
.rh-puntualidad-bar-fill{height:100%;border-radius:2px;transition:width 0.4s ease}
.rh-puntualidad-bar-green{background:#1db954}.rh-puntualidad-bar-yellow{background:#f59e0b}
.rh-inc-zero{color:var(--go-text-3)}.rh-inc-pos{color:var(--go-rojo);font-weight:600}
.rh-kpi-icon{font-size:28px;margin-bottom:4px}
.rh-section-bottom{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}
.rh-section-bottom .card{margin-bottom:0}
.rh-count-badge{display:inline-block;padding:1px 7px;background:rgba(251,103,11,0.15);color:var(--go-orange);border-radius:8px;font-family:var(--font-mono);font-size:11px;font-weight:600;margin-left:4px}

/* ── Zebra striping + hover ── */
.go-table tbody tr.rh-zebra{background:rgba(255,255,255,0.03)}
.go-table tbody tr:hover{background:rgba(251,103,11,0.10)!important}

/* ── Mapa: truck markers ── */
.go-truck-marker{background:transparent!important;border:none!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,0.6));transition:filter 0.2s}
.go-truck-marker:hover{filter:drop-shadow(0 0 6px var(--go-orange))}
.go-cluster-icon{background:transparent!important;border:none!important}
.go-cluster-icon div{border-radius:50%!important}
.leaflet-marker-icon.go-cluster-icon{background:transparent!important;border:none!important}

/* ── Rain layer visibility ── */
.rain-layer{filter:saturate(1.8) brightness(1.3) contrast(1.2)}

/* ── Map popup (viaje activo) ── */
.go-map-popup{min-width:260px;max-width:300px;font-family:var(--font-body);background:var(--go-surface);color:var(--go-text)}
.go-map-popup-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px 8px;border-bottom:1px solid var(--go-border)}
.go-map-popup-eco{font-family:var(--font-display);font-size:15px;color:var(--go-orange);font-weight:700;letter-spacing:0.05em}
.go-map-popup-status{font-size:10px;font-family:var(--font-display);padding:2px 8px;border-radius:2px;letter-spacing:0.08em}
.go-map-popup-status.moving{background:rgba(0,163,110,0.15);color:var(--go-verde)}
.go-map-popup-status.idle{background:rgba(251,103,11,0.15);color:var(--go-orange)}
.go-map-popup-status.off{color:var(--go-text-3);background:rgba(255,255,255,0.05)}
.go-map-popup-section{padding:8px 14px}
.go-map-popup-row{display:flex;justify-content:space-between;align-items:baseline;gap:0;margin-bottom:6px}
.go-map-popup-label{font-family:var(--font-display);font-size:9px;color:var(--go-text-3);letter-spacing:0.1em;white-space:nowrap;flex-shrink:0}
.go-map-popup-sep{color:var(--go-text-3);margin:0 6px;flex-shrink:0}
.go-map-popup-value{font-size:12px;color:var(--go-text);text-align:right;line-height:1.3}
.go-map-popup-speed{color:var(--go-verde);font-weight:700;font-size:13px}
.go-map-popup-location{font-size:11px;color:var(--go-text-2)}
.go-map-popup-divider{height:1px;background:var(--go-border);margin:0 14px}
.go-map-popup-trip{opacity:0.85}

/* Override Leaflet popup */
.leaflet-popup-content-wrapper{background:var(--go-surface)!important;border:1px solid var(--go-border)!important;border-radius:4px!important;box-shadow:0 4px 20px rgba(0,0,0,0.6)!important;padding:0!important}
.leaflet-popup-content{margin:0!important;width:auto!important}
.leaflet-popup-tip{background:var(--go-surface)!important}
.leaflet-popup-close-button{color:var(--go-text-3)!important;font-size:16px!important;padding:6px 8px!important}

/* ── Route markers ── */
.go-route-marker{background:transparent!important;border:none!important}
.go-route-origin{width:12px;height:12px;border-radius:50%;background:var(--go-verde);border:2px solid rgba(255,255,255,0.9);box-shadow:0 0 4px rgba(0,163,110,0.5)}
.go-route-dest{width:12px;height:12px;border-radius:50%;background:var(--go-rojo);border:2px solid rgba(255,255,255,0.9);box-shadow:0 0 4px rgba(220,38,38,0.5)}

/* ── Toast notifications ── */
#toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:380px}
.toast-item{background:#1e1e1e;border-radius:4px;box-shadow:0 4px 16px rgba(0,0,0,0.5);overflow:hidden;transform:translateX(120%);opacity:0;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s ease}
.toast-item.toast-show{transform:translateX(0);opacity:1}
.toast-body{display:flex;align-items:flex-start;gap:10px;padding:12px 14px}
.toast-icon{font-size:16px;flex-shrink:0;line-height:1.3}
.toast-content{flex:1;min-width:0}
.toast-msg{font-size:12px;color:#fff;line-height:1.4;word-wrap:break-word}
.toast-time{font-size:10px;color:var(--go-text-3);margin-top:2px}
.toast-close{background:none;border:none;color:var(--go-text-3);font-size:16px;cursor:pointer;padding:0 0 0 8px;line-height:1;flex-shrink:0;transition:color .15s}
.toast-close:hover{color:#fff}

/* ── Notification bell ── */
.notif-bell{position:relative;cursor:pointer;font-size:17px;display:inline-flex;align-items:center;line-height:1;-webkit-user-select:none;user-select:none;flex-shrink:0}
.notif-badge-hidden{display:none}
.notif-badge-show{display:flex;align-items:center;justify-content:center;position:absolute;top:-5px;right:-7px;background:var(--go-rojo);color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;text-align:center;line-height:16px;font-family:var(--font-display);padding:0 4px;box-shadow:0 1px 4px rgba(239,68,68,0.5)}
@keyframes badge-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
.notif-badge-shake{animation:badge-shake 0.5s ease}

/* ── Notification panel ── */
.notif-panel-hidden{display:none!important}
#notif-panel{position:fixed;top:var(--topbar-height);right:0;width:340px;max-height:480px;background:#1a1a1a;border:1px solid #2a2a2a;border-top:none;border-radius:0 0 8px 8px;z-index:300;overflow-y:auto;overflow-x:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.6);scroll-behavior:smooth}
#notif-panel::-webkit-scrollbar{width:4px}
#notif-panel::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:2px}

*{scrollbar-width:thin;scrollbar-color:#333333 var(--go-bg,#0d0d0d)}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:var(--go-bg,#0d0d0d)}
*::-webkit-scrollbar-thumb{background:#333333;border-radius:3px}
*::-webkit-scrollbar-thumb:hover{background:#444444}

input:focus,select:focus,textarea:focus{outline:none!important;border-color:#FF6B00!important;box-shadow:0 0 0 1px #FF6B00!important}

/* Panel header */
.notif-panel-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:#111;border-bottom:1px solid var(--go-orange)}
.notif-panel-title{font-family:var(--font-kpi);font-size:16px;font-weight:900;color:var(--go-orange);text-transform:uppercase;letter-spacing:.04em}
.notif-panel-sub{font-size:11px;color:#666;margin-top:1px}
.notif-panel-actions{display:flex;gap:6px;flex-shrink:0}
.notif-btn-mark{background:none;border:1px solid #444;color:#aaa;cursor:pointer;font-family:var(--font-display);font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:4px;transition:all .15s;white-space:nowrap}
.notif-btn-mark:hover{color:#fff;background:#222;border-color:#666}
.notif-btn-delete{background:none;border:1px solid #ef4444;color:#ef4444;cursor:pointer;font-family:var(--font-display);font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:4px;transition:all .15s;white-space:nowrap}
.notif-btn-delete:hover{background:#ef4444;color:#fff}

/* Loading & empty */
.notif-loading{color:var(--go-text-3);text-align:center;padding:30px 20px;font-size:12px}
.notif-empty{display:flex;flex-direction:column;align-items:center;padding:40px 20px}
.notif-empty-icon{font-size:32px;color:#555;margin-bottom:12px}
.notif-empty-title{font-size:13px;color:#555;font-family:var(--font-display);font-weight:600}
.notif-empty-sub{font-size:11px;color:#333;margin-top:4px}

/* Items */
.notif-item{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid #1e1e1e;cursor:pointer;gap:10px;transition:background .15s;position:relative}
.notif-item:hover{background:rgba(255,255,255,0.04)}
.notif-item-read{opacity:0.5}
.notif-item-icon{font-size:16px;flex-shrink:0;line-height:1}
.notif-item-body{flex:1;min-width:0}
.notif-item-title{font-size:12px;color:#fff;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.notif-item-time{font-size:10px;color:#666;margin-top:3px}
.notif-item-x{background:none;border:none;color:transparent;font-size:14px;cursor:pointer;padding:2px 0 2px 6px;flex-shrink:0;transition:color .15s;line-height:1;position:absolute;top:10px;right:10px}
.notif-item:hover .notif-item-x{color:var(--go-text-3)}
.notif-item-x:hover{color:#fff!important}

/* ── Alert highlight ── */
@keyframes alert-pulse{0%,100%{box-shadow:inset 0 0 0 2px transparent}50%{box-shadow:inset 0 0 0 4px var(--alert-glow, #ef4444)}}
.alert-highlight{animation:alert-pulse 2s ease-in-out 3;transition:all 0.5s ease}
.alert-highlight-critica{--alert-glow:#ef4444;background:rgba(239,68,68,0.12)!important;outline:2px solid #ef4444;outline-offset:-1px}
.alert-highlight-warn{--alert-glow:#f59e0b;background:rgba(245,158,11,0.10)!important;outline:2px solid #f59e0b;outline-offset:-1px}
.alert-highlight-info{--alert-glow:#3b82f6;background:rgba(59,130,246,0.08)!important;outline:2px solid #3b82f6;outline-offset:-1px}
.alert-highlight-fade{animation:none;outline:none;background:transparent!important}

/* ── GPS status dots ── */
.rh-gps-dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;margin-right:4px}
.dot-green{background:#1db954}.dot-yellow{background:#f59e0b}.dot-gray{background:#707070}
.rh-gps-enruta{color:#1db954;font-size:12px;font-weight:600}.rh-gps-detenido{color:#f59e0b;font-size:12px}.rh-gps-apagado{color:var(--go-text-3);font-size:12px}
/* pulse animation for in-route */
@keyframes rh-pulse{0%,100%{box-shadow:0 0 0 0 rgba(29,185,84,0.6)}50%{box-shadow:0 0 0 6px rgba(29,185,84,0)}}
.pulse-green{animation:rh-pulse 1.8s ease-in-out infinite;background:#1db954}


/* ── Map fleet filters ── */
.go-map-filters{display:flex;gap:8px;padding:8px 12px;background:var(--go-surface);border-bottom:1px solid var(--go-border);flex-wrap:wrap}
.go-map-filter-btn{display:flex;align-items:center;gap:6px;padding:5px 12px;background:transparent;border:1px solid var(--go-border);color:var(--go-text-2);font-family:var(--font-display);font-size:11px;letter-spacing:0.08em;cursor:pointer;border-radius:2px;transition:all 0.15s}
.go-map-filter-btn:hover{border-color:var(--go-orange);color:var(--go-text)}
.go-map-filter-btn.active{background:var(--go-orange);border-color:var(--go-orange);color:white}
.go-map-filter-count{background:rgba(255,255,255,0.2);border-radius:10px;padding:1px 6px;font-size:10px}

.go-field-hint{font-size:11px;color:var(--go-text-2);padding:4px 8px;background:rgba(0,163,110,0.08);border-left:2px solid var(--go-verde);margin-top:4px;font-family:var(--font-body)}
.go-map-search{margin-left:auto;position:relative;display:flex;align-items:center}
.go-map-search-input{background:#222;border:1px solid var(--go-border);color:var(--go-text);font-family:var(--font-display);font-size:11px;letter-spacing:0.08em;padding:5px 28px 5px 10px;border-radius:2px;width:140px;outline:none;transition:border-color 0.15s}
.go-map-search-input:focus{border-color:var(--go-orange)}
.go-map-search-input::placeholder{color:var(--go-text-3)}
.go-map-search-clear{position:absolute;right:6px;background:transparent;border:none;color:var(--go-text-3);cursor:pointer;font-size:12px;padding:0;line-height:1}
.go-map-search-clear:hover{color:var(--go-text)}
.go-truck-marker.highlighted{filter:drop-shadow(0 0 8px var(--go-orange)) drop-shadow(0 0 16px var(--go-orange))!important;z-index:9999!important}
.go-unit-panel{position:fixed;top:0;right:0;width:320px;height:100vh;background:var(--go-surface);border-left:1px solid var(--go-border);z-index:2000;display:flex;flex-direction:column;transform:translateX(0);transition:transform 0.3s ease;overflow:hidden}
.go-unit-panel-hidden{transform:translateX(320px)}
.go-unit-panel-header{display:flex;align-items:flex-start;flex-direction:column;gap:2px;padding:14px 16px;border-bottom:2px solid var(--go-orange);background:var(--go-surface);flex-shrink:0}
.go-unit-panel-eco{font-family:var(--font-display);font-size:18px;color:var(--go-orange);font-weight:700;letter-spacing:0.05em}
.go-unit-panel-tipo{font-family:var(--font-display);font-size:10px;color:var(--go-text-3);letter-spacing:0.1em}
.go-unit-panel-close{position:absolute;top:14px;right:16px;background:transparent;border:none;color:var(--go-text-3);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:2px}
.go-unit-panel-close:hover{color:var(--go-text);background:rgba(255,255,255,0.05)}
.go-unit-panel-body{overflow-y:auto;flex:1;padding:0}
.go-unit-panel-section{padding:12px 16px;border-bottom:1px solid var(--go-border)}
.go-unit-panel-section-title{font-family:var(--font-display);font-size:9px;color:var(--go-orange);letter-spacing:0.15em;margin-bottom:10px}
.go-unit-panel-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.go-unit-panel-stat{display:flex;flex-direction:column;align-items:center;background:rgba(255,255,255,0.03);padding:8px 4px;border-radius:2px}
.go-unit-panel-stat-val{font-family:var(--font-display);font-size:18px;color:var(--go-text);font-weight:700;line-height:1}
.go-unit-panel-stat-label{font-family:var(--font-display);font-size:8px;color:var(--go-text-3);letter-spacing:0.1em;margin-top:4px;text-align:center}
.go-unit-panel-ubicacion{font-size:11px;color:var(--go-text-2);margin-top:4px}
.go-unit-panel-text{font-size:13px;color:var(--go-text)}
.go-panel-viaje{padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:11px}
.go-panel-viaje:last-child{border-bottom:none}
.go-panel-viaje-ov{font-family:var(--font-display);color:var(--go-orange);font-size:11px}
.go-panel-viaje-ruta{color:var(--go-text-2);font-size:11px;margin-top:2px}
.go-panel-viaje-meta{color:var(--go-text-3);font-size:10px;margin-top:2px}
.go-panel-incidencia{padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:11px}
.go-panel-incidencia-tipo{color:#f59e0b;font-family:var(--font-display);font-size:10px;letter-spacing:0.08em}
.go-panel-incidencia-fecha{color:var(--go-text-3);font-size:10px}
@media(max-width:768px){.go-unit-panel{width:100%}}
@media(max-width:768px){
  .rh-section-bottom{grid-template-columns:1fr}
  .rh-score-badge{min-width:28px!important;width:28px!important;height:28px!important;border-radius:14px!important;font-size:10px!important;padding:0!important;line-height:28px!important;text-align:center!important}
}

/* ── Form Utilities ── */
.go-field{width:100%;padding:8px;background:var(--go-bg);border:1px solid var(--go-border);color:var(--go-text);font-size:14px;font-family:var(--font-display);border-radius:0}
.go-field:focus{outline:none;border-color:var(--go-orange)}
.go-label{display:block;color:var(--go-text-2);font-size:11px;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px;font-family:var(--font-display);font-weight:600}
.go-field-mono{font-family:var(--font-mono);font-size:12px}
.go-btn-primary{background:var(--go-orange);color:#fff;border:none;padding:10px 24px;font-family:var(--font-display);font-weight:700;cursor:pointer;font-size:13px;letter-spacing:0.05em}
.go-btn-primary:hover{background:var(--go-orange-hot)}
.go-btn-secondary{background:transparent;color:var(--go-text-2);border:1px solid var(--go-border);padding:10px 24px;font-family:var(--font-display);cursor:pointer;font-size:13px}
.go-btn-secondary:hover{color:var(--go-text);border-color:var(--go-border-str)}
.go-btn-export{background:transparent;color:var(--go-orange);border:1px solid var(--go-orange);padding:8px 18px;font-family:var(--font-display);font-weight:600;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;transition:all .15s}
.go-btn-export:hover{background:var(--go-orange);color:#fff}
.go-field-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23A0A0A0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}

/* Mobile hamburger */
.topbar-menu-btn{display:none;background:0;border:0;cursor:pointer;padding:8px}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:1000!important}
.sidebar-overlay.active{display:none}
.sidebar-overlay.active{display:block}
.go-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}


/* ── Map fleet filters ── */
.go-map-filters{display:flex;gap:8px;padding:8px 12px;background:var(--go-surface);border-bottom:1px solid var(--go-border);flex-wrap:wrap}
.go-map-filter-btn{display:flex;align-items:center;gap:6px;padding:5px 12px;background:transparent;border:1px solid var(--go-border);color:var(--go-text-2);font-family:var(--font-display);font-size:11px;letter-spacing:0.08em;cursor:pointer;border-radius:2px;transition:all 0.15s}
.go-map-filter-btn:hover{border-color:var(--go-orange);color:var(--go-text)}
.go-map-filter-btn.active{background:var(--go-orange);border-color:var(--go-orange);color:white}
.go-map-filter-count{background:rgba(255,255,255,0.2);border-radius:10px;padding:1px 6px;font-size:10px}

.go-field-hint{font-size:11px;color:var(--go-text-2);padding:4px 8px;background:rgba(0,163,110,0.08);border-left:2px solid var(--go-verde);margin-top:4px;font-family:var(--font-body)}
.go-map-search{margin-left:auto;position:relative;display:flex;align-items:center}
.go-map-search-input{background:#222;border:1px solid var(--go-border);color:var(--go-text);font-family:var(--font-display);font-size:11px;letter-spacing:0.08em;padding:5px 28px 5px 10px;border-radius:2px;width:140px;outline:none;transition:border-color 0.15s}
.go-map-search-input:focus{border-color:var(--go-orange)}
.go-map-search-input::placeholder{color:var(--go-text-3)}
.go-map-search-clear{position:absolute;right:6px;background:transparent;border:none;color:var(--go-text-3);cursor:pointer;font-size:12px;padding:0;line-height:1}
.go-map-search-clear:hover{color:var(--go-text)}
.go-truck-marker.highlighted{filter:drop-shadow(0 0 8px var(--go-orange)) drop-shadow(0 0 16px var(--go-orange))!important;z-index:9999!important}
.go-unit-panel{position:fixed;top:0;right:0;width:320px;height:100vh;background:var(--go-surface);border-left:1px solid var(--go-border);z-index:2000;display:flex;flex-direction:column;transform:translateX(0);transition:transform 0.3s ease;overflow:hidden}
.go-unit-panel-hidden{transform:translateX(320px)}
.go-unit-panel-header{display:flex;align-items:flex-start;flex-direction:column;gap:2px;padding:14px 16px;border-bottom:2px solid var(--go-orange);background:var(--go-surface);flex-shrink:0}
.go-unit-panel-eco{font-family:var(--font-display);font-size:18px;color:var(--go-orange);font-weight:700;letter-spacing:0.05em}
.go-unit-panel-tipo{font-family:var(--font-display);font-size:10px;color:var(--go-text-3);letter-spacing:0.1em}
.go-unit-panel-close{position:absolute;top:14px;right:16px;background:transparent;border:none;color:var(--go-text-3);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:2px}
.go-unit-panel-close:hover{color:var(--go-text);background:rgba(255,255,255,0.05)}
.go-unit-panel-body{overflow-y:auto;flex:1;padding:0}
.go-unit-panel-section{padding:12px 16px;border-bottom:1px solid var(--go-border)}
.go-unit-panel-section-title{font-family:var(--font-display);font-size:9px;color:var(--go-orange);letter-spacing:0.15em;margin-bottom:10px}
.go-unit-panel-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.go-unit-panel-stat{display:flex;flex-direction:column;align-items:center;background:rgba(255,255,255,0.03);padding:8px 4px;border-radius:2px}
.go-unit-panel-stat-val{font-family:var(--font-display);font-size:18px;color:var(--go-text);font-weight:700;line-height:1}
.go-unit-panel-stat-label{font-family:var(--font-display);font-size:8px;color:var(--go-text-3);letter-spacing:0.1em;margin-top:4px;text-align:center}
.go-unit-panel-ubicacion{font-size:11px;color:var(--go-text-2);margin-top:4px}
.go-unit-panel-text{font-size:13px;color:var(--go-text)}
.go-panel-viaje{padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:11px}
.go-panel-viaje:last-child{border-bottom:none}
.go-panel-viaje-ov{font-family:var(--font-display);color:var(--go-orange);font-size:11px}
.go-panel-viaje-ruta{color:var(--go-text-2);font-size:11px;margin-top:2px}
.go-panel-viaje-meta{color:var(--go-text-3);font-size:10px;margin-top:2px}
.go-panel-incidencia{padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:11px}
.go-panel-incidencia-tipo{color:#f59e0b;font-family:var(--font-display);font-size:10px;letter-spacing:0.08em}
.go-panel-incidencia-fecha{color:var(--go-text-3);font-size:10px}
@media(max-width:768px){.go-unit-panel{width:100%}}
@media(max-width:768px){
  .sidebar{position:fixed!important;top:0!important;left:0!important;height:100vh!important;width:260px!important;transform:translateX(-100%)!important;transition:transform 250ms ease!important;z-index:1001!important;box-shadow:none}
  .sidebar.sidebar-expanded{transform:translateX(0)!important;box-shadow:4px 0 24px rgba(0,0,0,0.6);width:260px!important}
  .sidebar.sidebar-expanded .nav-label{display:block!important;opacity:1!important;width:auto!important}
  .sidebar.sidebar-expanded .nav-section-label{display:block!important}
  .sidebar:not(.sidebar-expanded){width:0!important;overflow:hidden!important}
  .main-content{margin-left:0!important;padding:14px}
  .topbar-menu-btn{display:flex}
  .topbar-right{gap:8px;font-size:11px}
  .topbar-sub{display:none}
  #page-label{display:none!important}
  #user-role{display:none!important}
  button[onclick="cerrarSesion()"]{font-size:10px!important;padding:3px 8px!important}
  .topbar-brand{font-size:13px!important}
  .kpi-row,.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .kpi-card{padding:14px}
  .kpi-value{font-size:36px}
  .kpi-label{font-size:10px}
  .go-table{min-width:500px}
  .go-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-base)}
  .go-table thead th{font-size:9px;padding:8px 10px}
  .go-table tbody td{padding:7px 10px;font-size:12px}
  .chart-row-2col{grid-template-columns:1fr}
  .charts-grid-2{grid-template-columns:1fr!important}
  .chart-container{height:220px}
  .hide-mobile{display:none!important}
  .rh-section-bottom{grid-template-columns:1fr}
  .rh-score-badge{min-width:28px!important;width:28px!important;height:28px!important;border-radius:14px!important;font-size:10px!important;padding:0!important;line-height:28px!important;text-align:center!important}
  #toast-container{max-width:calc(100% - 20px);right:10px;left:10px}
  #notif-panel{width:100%;max-width:100%}
  .card{padding:16px;margin-bottom:12px}
  .page-header{margin-bottom:16px}
  .page-header h1{font-size:24px}
  .page-header p{font-size:12px}
}
@media(max-width:480px){
  .kpi-row,.kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .kpi-card{padding:12px}
  .kpi-value{font-size:30px}
  .kpi-label{font-size:9px;letter-spacing:0.04em}
  .topbar{height:48px;padding:0 12px}
  .topbar-brand{font-size:13px}
  .main-content{padding:10px}
  .card{padding:12px}
  .go-table{min-width:420px}
  .go-table thead th{font-size:8px;padding:6px 8px}
  .go-table tbody td{padding:6px 8px;font-size:11px}
  .page-header h1{font-size:20px}
  .btn-outline-orange{font-size:10px;padding:5px 10px}
  .badge{font-size:9px;padding:2px 6px}

/* Borde verde solo en formularios de captura — se activa con clase .captura-page */
.captura-page .nv-card { border-color: var(--go-orange) !important; border-width: 2px !important; box-shadow: 0 0 0 2px rgba(251,103,11,0.2), 0 4px 24px rgba(0,0,0,0.3) !important; }

.card, .kpi-card, .kpi-grid, .kpi-block,
.nv-card, .nv-section-icon,
.go-table-wrapper, .notif-panel,
.section-block, .go-unit-panel,
.chart-container, [class*="panel"],
.go-panel-viaje, .go-panel-header,
.go-table, .filter-bar, .filter-field,
.page-header, .kpi-row { border-radius: var(--radius-base) !important; }