.d-none{display:none!important}.d-flex{display:flex}.d-block{display:block}.pos-absolute{position:absolute}.pos-relative{position:relative}.pos-fixed{position:fixed}.align-center{align-items:center}.justify-center{justify-content:center}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.fs-9{font-size:9px}.fs-10{font-size:10px}.fs-11{font-size:11px}.fs-12{font-size:12px}.fs-14{font-size:14px}.fs-16{font-size:16px}.color-accent,.color-accent-hover{color:var(--accent)}.color-accent-hover:hover{color:var(--accent-hover)}.color-text-muted{color:var(--text-muted)}.color-white{color:#fff}.color-34d399{color:#34d399}.color-00ff88{color:#0f8}.color-rgba-white-12{color:#ffffff1f}.border-radius-50{border-radius:50%}.border-radius-6{border-radius:6px}.border-radius-8{border-radius:8px}.border-none{border:none}.cursor-pointer{cursor:pointer}.text-center{text-align:center}.overflow-y-auto{overflow-y:auto}.u-flex-gap4-center{display:flex;align-items:center;gap:4px}.u-flex-gap6{display:flex;gap:6px}.letter-spacing-05{letter-spacing:.5px}.mt-2{margin-top:2px}.mt-12{margin-top:12px}.mb-10{margin-bottom:10px}.mb-12{margin-bottom:12px}.opacity-80{opacity:.8}.icon{width:16px;height:16px;display:inline-block;vertical-align:middle;stroke:currentColor}.sidebar-menu .icon{width:18px;height:18px;margin-right:8px}:root{--bg: #0a0e17;--panel: rgba(13, 18, 30, .92);--panel-solid: #0d121e;--card: rgba(17, 24, 39, .85);--accent: #3b82f6;--accent-hover: #60a5fa;--glow-blue: #3b82f6;--glow-cyan: #06b6d4;--text: #f1f5f9;--text-muted: #8492a6;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--radius: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.25);--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5;letter-spacing:-.01em}#app{display:grid;grid-template-columns:280px 1fr;height:100vh;gap:0;padding:0;box-sizing:border-box;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1);position:relative;z-index:1}.sidebar{background:linear-gradient(180deg,#0d121e,#080c16);border-right:1px solid rgba(255,255,255,.06);border-radius:0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;flex-direction:column;box-shadow:none;overflow:hidden}.sidebar-header{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06);text-align:center}.sidebar-header img{height:36px;border-radius:8px;box-shadow:none;margin-bottom:6px}.sidebar-header h1{color:var(--text);font-size:15px;text-shadow:none;font-weight:600;letter-spacing:-.02em}.sidebar-header p{color:var(--text-muted);font-size:10px;margin-top:2px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.sidebar-content{flex:1;padding:12px;overflow-y:auto;display:flex;flex-direction:column}.sidebar-menu{display:flex;flex-direction:column;gap:1px;margin-bottom:8px;flex:1;overflow-y:auto}.sidebar-menu::-webkit-scrollbar{width:3px}.sidebar-menu::-webkit-scrollbar-thumb{background:#648cb440;border-radius:3px}.sidebar-menu::-webkit-scrollbar-thumb:hover{background:#648cb466}.menu-item{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:1px 8px;background:transparent;border:none;border-radius:8px;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:var(--transition);text-align:left;width:calc(100% - 16px);letter-spacing:-.01em}.menu-item:hover{background:#ffffff0f;color:var(--text)}.menu-item.active{background:#3b82f61f;color:var(--accent-hover);border-radius:8px;font-weight:600}.menu-item .icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:.65}.menu-item:hover .icon,.menu-item.active .icon{opacity:1}.menu-item .label{flex:1}.menu-item .badge{font-size:9px;padding:1px 7px;border-radius:8px;background:#10b98126;color:var(--success);font-weight:600;margin-left:auto}.menu-group{margin-bottom:1px;border-radius:6px;overflow:hidden}.menu-group-header{display:flex;align-items:center;gap:8px;padding:6px 12px;margin:0 8px;background:transparent;border:none;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:var(--transition);text-align:left;width:calc(100% - 16px);text-transform:uppercase;letter-spacing:.8px;font-family:Inter,sans-serif}.menu-group-header:hover{color:var(--text)}.menu-group-header .group-icon{font-size:13px;width:18px;text-align:center;opacity:.9}.menu-group-header .group-label{flex:1}.menu-group-header .group-count{font-size:9px;padding:1px 6px;border-radius:8px;background:#ffffff14;color:#678}.menu-group-header .group-chevron{font-size:8px;transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.5}.menu-group-header:hover .group-chevron{opacity:1}.menu-group-header.expanded{color:var(--text)}.menu-group-header.expanded .group-chevron{transform:rotate(90deg);opacity:1}.menu-group-items{max-height:0;overflow:hidden;transition:none;background:transparent}.menu-group-items.transitions-ready{transition:max-height .35s cubic-bezier(.4,0,.2,1)}.menu-group-items.expanded{max-height:600px}.menu-group-items .menu-item{padding:9px 14px 9px 36px;font-size:12.5px;border-radius:0;margin:0;border-left:3px solid transparent}.menu-group-items .menu-item:hover{border-left-color:var(--group-accent, var(--accent-hover));background:#ffffff0d}.menu-group-items .menu-item.active{border-left-color:var(--group-accent, var(--accent-hover));background:linear-gradient(90deg,rgba(255,255,255,.08),transparent)}.menu-group[data-group=supervision]{--group-accent: #60a5fa}.menu-group[data-group=administration]{--group-accent: #22c55e}.menu-group[data-group=modules]{--group-accent: #a855f7}.menu-group[data-group=identification]{--group-accent: #f59e0b}.menu-group[data-group=resources]{--group-accent: #f97316}.menu-group[data-group=analytics]{--group-accent: #8b5cf6}.menu-group[data-group=data]{--group-accent: #06b6d4}.menu-group[data-group=system]{--group-accent: #ef4444}[data-theme=light]{--bg: #f5f7fa;--panel: rgba(255, 255, 255, .95);--panel-solid: #ffffff;--text: #212529;--text-muted: #6c757d;--accent: #0066cc;--accent-hover: #0088ff;--card: rgba(255, 255, 255, .9);--danger: #dc3545;--success: #28a745;--warning: #f59e0b}[data-theme=light] body{background:linear-gradient(135deg,#f5f7fa,#e4e8eb);color:var(--text)}[data-theme=light] .sidebar{background:linear-gradient(180deg,#fffffffa,#f0f5faf2);border-color:#0064c826}[data-theme=light] .menu-item{color:var(--text)}[data-theme=light] .menu-item:hover{background:#0088ff1a}[data-theme=light] .menu-group-header{background:linear-gradient(135deg,#00000008,#00000003);color:var(--group-accent, #556677)}[data-theme=light] .menu-group-header:hover{background:linear-gradient(135deg,#0000000f,#00000005);color:#333}[data-theme=light] .menu-group-items{background:#00000005}[data-theme=light] .menu-group-items .menu-item:hover{background:#0064c80f}[data-theme=light] .menu-group-header .group-count{background:#0000000f;color:#889}[data-theme=light] .content-panel{background:#fff;border-color:#0064c81f}[data-theme=light] .content-panel-header{background:#fff;border-color:#0064c81a}[data-theme=light] .content-panel-close{border-color:#0000001a;color:#999}[data-theme=light] .content-panel-close:hover{background:#ef44441a;color:#dc3545}[data-theme=light] .info-card{background:#ffffffe6;border-color:#0064c826}[data-theme=light] .stat-item{background:#0064c80d;border-color:#0064c826}[data-theme=light] .stat-item .val{color:var(--accent)}[data-theme=light] .user-card{background:#00000005;border-color:#00000014}[data-theme=light] .user-card:hover{background:#0000000a;border-color:#0000001f}[data-theme=light] .user-card-email{color:#667}[data-theme=light] .user-status-dot{border-color:#fff}[data-theme=light] .connected-user-mini{background:#00000008}[data-theme=light] .user-filter-btn{border-color:#0000001f;color:#667}[data-theme=light] .user-filter-btn:hover{border-color:#0003;color:#333}.btn{position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .5s ease}.btn:hover:after{left:100%}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.info-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:16px;margin-bottom:12px;transition:var(--transition)}.info-card:hover{border-color:#ffffff1a;background:#ffffff0d}.info-card h4{color:var(--text);font-size:13px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}.info-card .value{font-size:24px;font-weight:700;color:var(--success)}.info-card .label{color:var(--text-muted);font-size:11px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}.stat-item{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:14px 12px;text-align:center}.stat-item .val{font-size:22px;font-weight:700;color:var(--accent)}.stat-item .lbl{font-size:10px;color:var(--text-muted);margin-top:4px;font-weight:500}.stat-item.online .val{color:var(--success)}.stat-item.offline .val{color:var(--danger)}.stat-item.moving .val{color:var(--warning)}.server-status{font-size:11px;margin-top:10px}.server-row{display:flex;justify-content:space-between;padding:8px 10px;background:#ffffff08;border-radius:8px;margin-bottom:4px}.server-row .status{font-weight:600}.server-row .status.online{color:var(--success)}.server-row .status.offline{color:var(--danger)}.server-row .status.checking{color:var(--warning)}.main-area{display:flex;flex-direction:row;overflow:hidden;height:100%;min-height:0}.content-panel{width:0;min-width:0;background:var(--panel-solid);border-right:1px solid rgba(255,255,255,.06);overflow:hidden;flex-shrink:0;transition:width .3s cubic-bezier(.4,0,.2,1),min-width .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;position:relative}.content-panel.visible{width:420px;min-width:420px}.content-panel-header{padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between;background:var(--panel-solid);flex-shrink:0;min-height:52px}.content-panel-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--text);white-space:nowrap}.content-panel-title .cp-icon{font-size:16px}.content-panel-breadcrumb{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-left:12px;font-weight:500}.content-panel-close{width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0}.content-panel-close:hover{background:#ef444426;border-color:#ef44444d;color:var(--danger)}.content-panel-body{flex:1;overflow-y:auto;padding:16px 20px}.content-panel-body::-webkit-scrollbar{width:4px}.content-panel-body::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}.content-panel-body::-webkit-scrollbar-thumb:hover{background:#ffffff26}.content-panel:after{content:"";position:absolute;top:0;right:-1px;width:3px;height:100%;cursor:col-resize;background:transparent;transition:background .2s;z-index:5}.content-panel:hover:after{background:#3b82f64d}.tab-panel{display:none;animation:contentFadeIn .25s ease}.tab-panel.active{display:block}.iot-tab-btn{padding:8px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-bottom:none;border-radius:6px 6px 0 0;color:var(--text-muted);font-size:12px;cursor:pointer;transition:all .2s ease}.iot-tab-btn:hover{background:#ffffff14;color:var(--text-primary)}.iot-tab-btn.active{background:#2196f333;border-color:#2196f366;color:#2196f3;font-weight:600}.iot-tab-content{padding:15px 0}.iot-sensor-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px;margin-bottom:10px;transition:all .2s ease}.iot-sensor-card:hover{background:#ffffff0d;border-color:#2196f34d}.iot-alert-card{background:#ffffff08;border-left:4px solid;border-radius:6px;padding:12px;margin-bottom:10px}.iot-alert-card.warning{border-left-color:#ffc107}.iot-alert-card.critical{border-left-color:#f44336}.iot-alert-card.emergency{border-left-color:#c62828;background:#f443361a}.panel-desc{font-size:12px;color:var(--text-muted);line-height:1.5;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.04)}.panel-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.panel-actions .btn{flex:1;min-width:0;text-align:center}.panel-section{margin-bottom:16px}.panel-section-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;display:flex;align-items:center;gap:6px}.panel-section-title:after{content:"";flex:1;height:1px;background:#ffffff0f}.data-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}.data-row:last-child{border-bottom:none}.data-row:hover{background:#ffffff05}.data-row .data-key{color:var(--text-muted);display:flex;align-items:center;gap:6px}.data-row .data-val{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.data-row .data-val.success{color:var(--success)}.data-row .data-val.danger{color:var(--danger)}.data-row .data-val.warning{color:var(--warning)}.data-row .data-val.accent{color:var(--accent-hover)}.empty-state-pro{text-align:center;padding:40px 20px;color:var(--text-muted)}.empty-state-pro .es-icon{font-size:48px;margin-bottom:12px;opacity:.4;filter:grayscale(.3)}.empty-state-pro .es-desc{font-size:12px;line-height:1.5;max-width:280px;margin:0 auto 16px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.green{background:var(--success);box-shadow:0 0 6px #10b98180}.status-dot.red{background:var(--danger)}.status-dot.yellow{background:var(--warning)}.status-dot.gray{background:var(--text-muted)}.status-dot.pulse{animation:pulse 2s infinite}.progress-bar-wrap{height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden;margin:8px 0}.progress-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600;letter-spacing:.2px}.tag.green{background:#10b9811f;color:var(--success);border:1px solid rgba(16,185,129,.25)}.tag.red{background:#ef44441f;color:var(--danger);border:1px solid rgba(239,68,68,.25)}.tag.blue{background:#3b82f61f;color:var(--accent-hover);border:1px solid rgba(59,130,246,.25)}.tag.yellow{background:#f59e0b1f;color:var(--warning);border:1px solid rgba(245,158,11,.25)}.tag.purple{background:#a855f71f;color:#a855f7;border:1px solid rgba(168,85,247,.25)}.tab-panel .info-card h4{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:-.01em}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.map-video-wrapper{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.map-container{flex:1;background:var(--bg);border-radius:12px;border:none;overflow:hidden;position:relative;min-height:0}#adminMap{position:absolute;top:0;left:0;width:100%;height:100%}.map-title{position:absolute;top:12px;right:16px;font-size:16px;font-weight:600;color:#ffffffe6;text-shadow:0 1px 4px rgba(0,0,0,.6);z-index:10;letter-spacing:-.02em;background:#0f172ab3;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 14px;border-radius:8px}.video-panel{background:var(--panel-solid);border:none;border-bottom:1px solid rgba(255,255,255,.06);border-radius:0;padding:10px 12px;margin-bottom:0}.video-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.video-panel-header h4{color:var(--text);font-size:13px;font-weight:600}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.video-slot{background:#0a0e1a;border:1px solid rgba(255,255,255,.06);border-radius:10px;overflow:hidden;position:relative;min-height:120px;aspect-ratio:16/9}.video-slot:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;opacity:.12;z-index:1;pointer-events:none}.video-slot.active:before{display:none}.video-slot.active{border-color:var(--success);box-shadow:0 0 12px #10b98126}.video-slot-header{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(0,0,0,.8) 0%,transparent 100%);padding:5px 8px;z-index:10;display:flex;justify-content:space-between;align-items:center}.video-slot-title{color:var(--text);font-size:10px;font-weight:600}.video-slot-status{font-size:8px;padding:2px 6px;border-radius:8px;background:#ff44444d;color:var(--danger)}.video-slot-status.connected{background:#00ff884d;color:var(--success)}.video-slot video{width:100%;height:100%;object-fit:cover;min-height:100px}.video-slot-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,rgba(0,0,0,.8) 0%,transparent 100%);padding:5px;display:flex;justify-content:center;gap:5px;z-index:10}.video-btn{padding:3px 8px;font-size:10px;background:#3b82f666;border:1px solid rgba(59,130,246,.3);border-radius:5px;color:#fff;cursor:pointer;transition:var(--transition)}.video-btn:hover{background:#3b82f699}.video-btn.stop{background:#ef444466;border-color:#ef44444d}.gps-status{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted)}.gps-status .pulse{width:8px;height:8px;border-radius:50%;background:var(--success);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{transition:opacity .2s ease-out!important}.modal-overlay .modal-container{transition:transform .2s ease-out,opacity .2s ease-out!important}.modal-overlay.modal-entering .modal-container{transform:scale(.95) translateY(10px);opacity:0}.modal-overlay.modal-visible .modal-container{transform:scale(1) translateY(0);opacity:1}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton-line{height:12px;background:linear-gradient(90deg,#0096ff1a 25%,#0096ff33,#0096ff1a 75%);background-size:200% 100%;animation:pulse 1.5s ease-in-out infinite;border-radius:4px;margin:6px 0}.btn-feedback{transition:transform .1s,background .2s!important}.btn-feedback:active{transform:scale(.96)!important}.intercom-panel{background:#10b9810d;border:1px solid rgba(16,185,129,.15);border-radius:var(--radius);padding:12px;margin-top:10px}.intercom-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(16,185,129,.1)}.intercom-header h4{color:var(--success);font-size:13px;display:flex;align-items:center;gap:6px}.intercom-status{font-size:10px;padding:3px 8px;border-radius:10px;background:#ffaa004d;color:var(--warning)}.intercom-status.active{background:#00ff884d;color:var(--success);animation:pulse 1s infinite}.intercom-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.intercom-btn{padding:10px 16px;font-size:12px;font-weight:600;border-radius:25px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px;border:2px solid}.intercom-btn.talk{background:var(--success);border-color:var(--success);color:#fff}.intercom-btn.talk:hover{opacity:.9;transform:scale(1.02)}.intercom-btn.talk.active{background:var(--danger);border-color:var(--danger);animation:pulse .5s infinite}.intercom-btn.record{background:var(--danger);border-color:var(--danger);color:#fff}.intercom-btn.record:hover{opacity:.9}.intercom-btn.record.recording{animation:pulse .5s infinite}.intercom-target{display:flex;align-items:center;gap:8px;flex:1}.intercom-target select{flex:1;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);font-size:12px}.intercom-target select:focus{border-color:var(--accent);outline:none}.volume-indicator{display:flex;align-items:center;gap:4px;margin-top:8px}.volume-bar{height:4px;width:8px;background:#10b98133;border-radius:2px;transition:all .1s}.volume-bar.active{background:var(--success)}.archive-panel{background:#f59e0b0d;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius);padding:12px;margin-top:10px}.archive-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(245,158,11,.1)}.archive-header h4{color:var(--warning);font-size:13px;display:flex;align-items:center;gap:6px}.archive-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.archive-stat{background:#ffffff08;border-radius:8px;padding:8px;text-align:center}.archive-stat .value{font-size:16px;font-weight:700;color:var(--warning)}.archive-stat .label{font-size:9px;color:var(--text-muted);margin-top:2px}.archive-controls{display:flex;gap:8px;flex-wrap:wrap}.archive-btn{padding:6px 12px;font-size:11px;border-radius:8px;cursor:pointer;border:1px solid rgba(245,158,11,.25);background:#f59e0b1a;color:var(--warning);transition:var(--transition)}.archive-btn:hover{background:#f59e0b33}.archive-btn.active{background:#10b98126;border-color:#10b9814d;color:var(--success)}.server-btn{position:relative;transition:all .3s ease}.server-btn.active{border:1px solid var(--success)!important}.server-indicator{display:none;position:absolute;top:-3px;right:-3px;width:8px;height:8px;background:var(--success);border-radius:50%;animation:pulse 1s infinite}.server-btn.active .server-indicator{display:block}.equipment-list{display:flex;flex-direction:column;gap:10px}.equipment-item{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:12px;transition:var(--transition);cursor:pointer}.equipment-item:hover{border-color:#3b82f633;background:#ffffff0d}.equipment-item.selected{border-color:var(--accent);background:#3b82f614}.equipment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.equipment-name{color:var(--text);font-size:14px;font-weight:600}.equipment-type{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:6px;padding:2px 8px;font-size:10px;color:var(--accent-hover)}.equipment-info{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:11px;color:var(--text-muted)}.equipment-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:10px;font-size:10px;font-weight:600}.status-badge.online{background:#0f83;color:var(--success);border:1px solid var(--success)}.status-badge.offline{background:#f443;color:var(--danger);border:1px solid var(--danger)}.status-badge.moving{background:#10b98133;color:#10b981;border:1px solid #10b981}.status-badge.idle{background:#f59e0b33;color:#f59e0b;border:1px solid #f59e0b}.btn{padding:8px 16px;background:var(--accent);border:none;border-radius:8px;color:#fff;font-weight:600;font-size:12px;cursor:pointer;transition:var(--transition)}.btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-sm{padding:5px 12px;font-size:11px}.btn-success{background:var(--success)}.btn-success:hover{opacity:.9}.btn-danger{background:var(--danger)}.btn-danger:hover{opacity:.9}.btn-warning{background:var(--warning);color:#000}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--text)}.btn-ghost:hover{background:#ffffff0d;border-color:#ffffff26}.form-group{margin-bottom:15px}.form-group label{display:block;color:var(--text);margin-bottom:6px;font-weight:600;font-size:12px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);font-size:13px;transition:var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);background:#ffffff12}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.search-bar{display:flex;gap:8px;margin-bottom:15px}.search-bar input{flex:1;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);font-size:12px}.search-bar input:focus{outline:none;border-color:var(--accent)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10000;display:none;align-items:center;justify-content:center;padding:20px}.modal.show{display:flex}.modal.show .modal-content{animation:fadeSlideIn .2s ease-out}.modal-content{background:var(--panel-solid);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;max-width:600px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 24px 48px #0006}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.06)}.modal-header h2{color:var(--text);font-size:18px;font-weight:600}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.06)}.notification{position:fixed;top:16px;right:16px;padding:14px 20px;background:var(--panel-solid);border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 8px 24px #0006;z-index:20000;opacity:0;transform:translate(400px);transition:all .3s ease}.notification.show{opacity:1;transform:translate(0)}.notification.success{border-left:3px solid var(--success)}.notification.error{border-left:3px solid var(--danger)}.list-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;margin-bottom:6px;transition:var(--transition)}.list-item:hover{border-color:#ffffff1a;background:#ffffff0d}.list-item-info{flex:1}.list-item-title{color:var(--text);font-size:13px;font-weight:600}.list-item-subtitle{color:var(--text-muted);font-size:11px}.list-item-actions{display:flex;gap:5px}.empty-state{text-align:center;padding:30px;color:var(--text-muted)}.empty-state-icon{font-size:40px;margin-bottom:10px;opacity:.5}.user-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.user-stat{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:12px 8px;text-align:center;transition:var(--transition)}.user-stat:hover{transform:translateY(-2px);border-color:#ffffff1a}.user-stat .val{font-size:20px;font-weight:700}.user-stat .lbl{font-size:9px;color:var(--text-muted);margin-top:2px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.user-stat.online .val{color:var(--success)}.user-stat.admin .val{color:var(--warning)}.user-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:12px;margin-bottom:8px;transition:var(--transition);position:relative}.user-card:hover{border-color:#ffffff1f;background:#ffffff0d}.user-card.online{border-left:3px solid var(--success)}.user-card.offline{border-left:3px solid var(--danger);opacity:.8}.user-card.disabled{border-left:3px solid var(--text-muted);opacity:.5}.user-card-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.user-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0;position:relative}.user-avatar.admin-avatar{background:linear-gradient(135deg,#a855f7,#7c3aed)}.user-avatar.user-avatar-std{background:linear-gradient(135deg,#3b82f6,#2563eb)}.user-avatar.readonly-avatar{background:linear-gradient(135deg,#6b7280,#4b5563)}.user-status-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;border-radius:50%;border:2px solid var(--panel-solid)}.user-status-dot.online{background:var(--success);box-shadow:0 0 6px #10b98199;animation:pulse 2s infinite}.user-status-dot.offline{background:var(--danger)}.user-status-dot.disabled{background:var(--text-muted)}.user-card-info{flex:1;min-width:0}.user-card-name{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}.user-card-email{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-meta{font-size:10px;color:var(--text-muted);display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.user-card-meta span{display:flex;align-items:center;gap:3px}.role-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:6px;font-size:9px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;flex-shrink:0}.role-badge.admin{background:#a855f726;color:#a855f7;border:1px solid rgba(168,85,247,.3)}.role-badge.user{background:#3b82f61f;color:var(--accent-hover);border:1px solid rgba(59,130,246,.25)}.role-badge.readonly{background:#6b728026;color:#9ca3af;border:1px solid rgba(107,114,128,.3)}.user-card-actions{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}.user-card-actions .btn{font-size:10px;padding:4px 10px;border-radius:6px}.btn-disconnect{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:var(--danger)}.btn-disconnect:hover{background:#ef44444d}.btn-reconnect{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:var(--success)}.btn-reconnect:hover{background:#10b9814d}.btn-edit-user{background:#3b82f61f;border:1px solid rgba(59,130,246,.25);color:var(--accent-hover)}.btn-edit-user:hover{background:#3b82f640}.btn-delete-user{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--danger)}.btn-delete-user:hover{background:#ef444440}.connected-user-mini{display:flex;align-items:center;gap:8px;padding:5px 8px;background:#ffffff05;border-radius:6px;margin-bottom:3px;font-size:11px}.connected-user-mini .mini-dot{width:6px;height:6px;border-radius:50%;background:var(--success);flex-shrink:0;animation:pulse 2s infinite}.connected-user-mini .mini-name{flex:1;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connected-user-mini .mini-time{color:var(--text-muted);font-size:9px;flex-shrink:0}.session-indicator{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;font-size:9px;font-weight:500}.session-indicator.active{background:#10b9811a;color:var(--success)}.session-indicator.inactive{background:#ef44441a;color:var(--danger)}.user-filter-bar{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.user-filter-btn{padding:5px 12px;font-size:11px;border-radius:15px;cursor:pointer;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-muted);transition:var(--transition)}.user-filter-btn:hover{border-color:#fff3;color:var(--text)}.user-filter-btn.active{background:#3b82f626;border-color:var(--accent);color:var(--accent-hover)}.user-mode-btn{padding:6px 14px;font-size:11px;border-radius:6px;cursor:pointer;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-muted);transition:var(--transition);font-weight:500}.user-mode-btn:hover{border-color:#fff3;color:var(--text)}.user-mode-btn.active{background:#10b98126;border-color:#10b981;color:#10b981}.profile-card{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:8px;padding:12px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.profile-card .profile-info{display:flex;align-items:center;gap:10px}.profile-card .profile-avatar{width:36px;height:36px;border-radius:50%;background:#3b82f626;color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.profile-card .profile-name{font-weight:600;font-size:13px;color:var(--text)}.profile-card .profile-phone{font-size:11px;color:var(--text-muted)}.profile-card .profile-actions{display:flex;gap:4px}.profile-card .profile-actions button{padding:4px 8px;font-size:10px;border-radius:4px;cursor:pointer;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-muted);transition:var(--transition)}.profile-card .profile-actions button:hover{border-color:#fff3;color:var(--text)}.profile-card .profile-actions .btn-delete:hover{border-color:#ef4444;color:#ef4444}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#fff3}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)}.data-table th{background:#ffffff08;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.data-table tr:hover{background:#ffffff08}.user-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.user-stat{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 10px;text-align:center;transition:all .2s ease}.user-stat:hover{background:#ffffff0f;border-color:#ffffff1f;transform:translateY(-1px)}.user-stat .val{font-size:22px;font-weight:700;line-height:1.2}.user-stat .lbl{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.user-stat.total .val{color:var(--accent)}.user-stat.online .val{color:#34d399}.user-stat.offline .val{color:var(--text-muted)}.user-stat.admin .val{color:#a78bfa}.user-filter-bar{display:flex;gap:4px;margin-bottom:12px;background:#ffffff08;border-radius:8px;padding:4px;overflow-x:auto}.user-filter-btn{padding:6px 12px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.user-filter-btn.active{background:#3b82f626;color:var(--accent);font-weight:600}.user-mode-toggle{display:flex;gap:6px;margin-bottom:12px}.user-mode-btn{flex:1;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff08;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.user-mode-btn:hover{background:#ffffff0f}.user-mode-btn.active{background:#3b82f61f;border-color:#3b82f64d;color:var(--accent);font-weight:600}.search-bar{margin-bottom:12px}.search-bar input{width:100%;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);font-size:12px;font-family:inherit;outline:none;transition:all .2s ease;box-sizing:border-box}.search-bar input::placeholder{color:var(--text-muted)}.search-bar input:focus{border-color:#3b82f666;background:#3b82f60d;box-shadow:0 0 0 3px #3b82f61a}.empty-state-pro{text-align:center;padding:32px 20px;color:var(--text-muted)}.empty-state-pro .es-icon{font-size:36px;margin-bottom:12px;opacity:.4}.empty-state-pro .es-icon svg{width:36px;height:36px}.empty-state-pro .es-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px}.empty-state-pro .es-desc{font-size:12px;line-height:1.5;max-width:280px;margin:0 auto}.panel-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-family:inherit}.btn-success{background:#10b98126;border-color:#10b9814d!important;color:#34d399}.btn-success:hover{background:#10b98140}.btn-ghost{background:#ffffff0a;border-color:#ffffff1a!important;color:var(--text-muted)}.btn-ghost:hover{background:#ffffff14;color:var(--text)}.btn-disconnect{background:#ef44441a;border-color:#ef444440!important;color:#f87171}.btn-disconnect:hover{background:#ef444433}.btn .icon{width:14px;height:14px}.u-admin-input,.u-admin-select,.u-admin-form-input{width:100%;padding:9px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);font-size:12px;font-family:inherit;outline:none;transition:all .2s ease;box-sizing:border-box}.u-admin-input:focus,.u-admin-select:focus,.u-admin-form-input:focus{border-color:#3b82f666;box-shadow:0 0 0 3px #3b82f61a}.u-admin-form-input+label,.u-admin-select+label{display:block;font-size:10px;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.u-admin-accent-pill{display:inline-block;padding:2px 10px;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);border-radius:20px;color:var(--accent);font-size:11px;font-family:JetBrains Mono,monospace}@media(max-width:1400px){.content-panel.visible{width:380px;min-width:380px}}@media(min-width:901px)and (max-width:1200px){#app{grid-template-columns:260px 1fr}.sidebar-header{padding:12px 14px}.content-panel.visible{width:360px;min-width:360px}.user-stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.user-stat .val{font-size:18px}}@media(min-width:901px){#app{display:grid;grid-template-columns:280px 1fr}.hamburger-btn{display:none}}@media(max-width:900px){#app{display:block;height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;z-index:999;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto}.sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 20px #0006}.main-area{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;flex-direction:column}.map-container{height:100%;width:100%;border-radius:0}.content-panel{position:fixed!important;top:0;left:0;width:0;min-width:0;height:100vh;z-index:900;transition:width .3s ease,min-width .3s ease}.content-panel.visible{width:100vw!important;min-width:100vw!important}}@media(max-width:768px){.hamburger-btn{display:flex;align-items:center;justify-content:center}.sidebar-menu a,.sidebar-menu button,.menu-group-header{min-height:44px;padding:12px 16px}.modal-content,.modal-dialog{width:95vw!important;max-width:95vw!important;margin:10px auto!important}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.user-stats-grid{grid-template-columns:repeat(2,1fr)}.user-stat .val{font-size:20px}.panel-actions{flex-direction:column}.panel-actions .btn{flex:none}.user-filter-bar{flex-wrap:nowrap;overflow-x:auto}}@media(max-width:480px){.sidebar{width:100vw}.content-panel-body{padding:12px}.user-stats-grid{grid-template-columns:repeat(2,1fr);gap:6px}.user-stat{padding:10px 8px}.user-stat .val{font-size:18px}}.admin-veh-popup{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-width:220px;padding:0}.admin-veh-popup-title{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:10px 12px;font-weight:600;font-size:14px;border-radius:6px 6px 0 0;display:flex;align-items:center;gap:6px}.admin-veh-popup-row{display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #e5e7eb;font-size:13px}.admin-veh-popup-row:last-child{border-bottom:none}.admin-veh-popup-label{color:#6b7280;font-weight:500}.admin-veh-popup-value{color:#111827;font-weight:600;font-family:Consolas,Monaco,monospace}.rich-veh-popup{font-family:Inter,-apple-system,sans-serif;color:#1f2937;font-size:12px;line-height:1.4;min-width:270px;max-width:320px;padding:0}.rich-veh-popup .rvp-title{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;padding:8px 12px;font-weight:600;font-size:13px;border-radius:6px 6px 0 0;display:flex;align-items:center;gap:6px}.rich-veh-popup .rvp-status{display:inline-block;padding:1px 8px;border-radius:9px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.rich-veh-popup .rvp-body{max-height:260px;overflow-y:auto;padding:0}.rich-veh-popup .rvp-row{display:flex;justify-content:space-between;align-items:center;padding:5px 12px;border-bottom:1px solid #e5e7eb;font-size:12px}.rich-veh-popup .rvp-row:last-child{border-bottom:none}.rich-veh-popup .rvp-label{color:#6b7280;font-weight:500;font-size:11px;min-width:80px}.rich-veh-popup .rvp-value{color:#111827;font-weight:600;font-size:12px;font-family:JetBrains Mono,Consolas,monospace;text-align:right;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rich-veh-popup .rvp-actions{display:flex;gap:4px;padding:6px 12px;border-top:1px solid #e5e7eb;flex-wrap:wrap}.rich-veh-popup .rvp-btn{flex:1;min-width:60px;padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;background:#f9fafb;color:#374151;font-size:10px;font-weight:600;cursor:pointer;text-align:center;transition:all .15s}.rich-veh-popup .rvp-btn:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.rich-veh-popup .rvp-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.rich-veh-popup .rvp-btn-primary:hover{background:#1d4ed8}.rich-veh-popup .rvp-export-row{display:flex;gap:3px;padding:4px 12px 6px;border-top:1px solid #f3f4f6}.rich-veh-popup .rvp-export-btn{padding:2px 8px;border:1px solid #e5e7eb;border-radius:3px;background:#f9fafb;color:#6b7280;font-size:9px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;transition:all .15s}.rich-veh-popup .rvp-export-btn:hover{background:#1e3a5f;color:#fff;border-color:#1e3a5f}.rich-veh-popup .rvp-tabs{display:flex;border-bottom:2px solid #e5e7eb;background:#f9fafb}.rich-veh-popup .rvp-tab{flex:1;padding:5px 8px;font-size:10px;font-weight:700;text-align:center;cursor:pointer;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;text-transform:uppercase;letter-spacing:.3px}.rich-veh-popup .rvp-tab:hover{color:#374151;background:#f3f4f6}.rich-veh-popup .rvp-tab.active{color:#2563eb;border-bottom-color:#2563eb;background:#fff}.rich-veh-popup .rvp-tab-panel{display:none}.rich-veh-popup .rvp-tab-panel.active{display:block}.rich-veh-popup .rvp-bilan{padding:6px 12px}.rich-veh-popup .rvp-bilan-loading{text-align:center;padding:16px 8px;color:#9ca3af;font-size:11px}.rich-veh-popup .rvp-bilan-loading .rvp-spinner{display:inline-block;width:16px;height:16px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:rvp-spin .6s linear infinite;vertical-align:middle;margin-right:6px}@keyframes rvp-spin{to{transform:rotate(360deg)}}.rich-veh-popup .rvp-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:6px}.rich-veh-popup .rvp-stat-card{background:#f3f4f6;border-radius:4px;padding:5px 8px;text-align:center}.rich-veh-popup .rvp-stat-val{font-size:14px;font-weight:700;color:#111827;font-family:JetBrains Mono,Consolas,monospace}.rich-veh-popup .rvp-stat-lbl{font-size:9px;color:#6b7280;text-transform:uppercase;letter-spacing:.3px}.rich-veh-popup .rvp-ratio-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin:4px 0}.rich-veh-popup .rvp-ratio-drive{background:#059669}.rich-veh-popup .rvp-ratio-idle{background:#d97706}.rich-veh-popup .rvp-ratio-stop{background:#dc2626}.rich-veh-popup .rvp-stop-list{margin-top:4px}.rich-veh-popup .rvp-stop-item{display:flex;align-items:center;gap:4px;padding:3px 0;border-bottom:1px solid #f3f4f6;font-size:10px}.rich-veh-popup .rvp-stop-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.rich-veh-popup .rvp-stop-time{color:#6b7280;min-width:55px;font-size:10px}.rich-veh-popup .rvp-stop-dur{color:#111827;font-weight:600;font-size:10px}.rich-veh-popup .rvp-bilan-error{text-align:center;padding:10px 8px;color:#dc2626;font-size:10px}.rich-veh-popup .rvp-no-data{text-align:center;padding:12px 8px;color:#9ca3af;font-size:11px;font-style:italic}.rich-veh-popup .rvp-engine-state{display:flex;align-items:center;gap:4px}.rich-veh-popup .rvp-engine-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.admin-veh-marker{width:36px;height:36px;background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%20width='32'%20height='32'%3e%3c!--%20Professional%20fleet%20vehicle%20marker%20-%20Google%20Maps%20style%20--%3e%3c!--%20Direction%20indicator%20(top%20chevron)%20--%3e%3cpolygon%20points='16,2%2011,8%2021,8'%20fill='%2310b981'%20opacity='0.9'/%3e%3c!--%20Main%20circle%20background%20--%3e%3ccircle%20cx='16'%20cy='18'%20r='11'%20fill='white'%20stroke='%2310b981'%20stroke-width='2'/%3e%3c!--%20Truck%20silhouette%20-%20minimal,%20clean%20--%3e%3cg%20fill='%23374151'%20transform='translate(16,18)'%3e%3c!--%20Cab%20--%3e%3crect%20x='-3'%20y='-7'%20width='6'%20height='4'%20rx='1.5'%20fill='%2310b981'/%3e%3c!--%20Windshield%20--%3e%3crect%20x='-2'%20y='-6.5'%20width='4'%20height='2'%20rx='0.8'%20fill='%23a7f3d0'%20opacity='0.8'/%3e%3c!--%20Body/container%20--%3e%3crect%20x='-4.5'%20y='-3'%20width='9'%20height='7'%20rx='1'%20fill='%2310b981'/%3e%3c!--%20Body%20detail%20lines%20--%3e%3cline%20x1='-4.5'%20y1='0'%20x2='4.5'%20y2='0'%20stroke='%23059669'%20stroke-width='0.5'%20opacity='0.5'/%3e%3cline%20x1='-4.5'%20y1='2'%20x2='4.5'%20y2='2'%20stroke='%23059669'%20stroke-width='0.5'%20opacity='0.5'/%3e%3c!--%20Wheels%20--%3e%3ccircle%20cx='-3'%20cy='5'%20r='1.2'%20fill='%231f2937'/%3e%3ccircle%20cx='3'%20cy='5'%20r='1.2'%20fill='%231f2937'/%3e%3ccircle%20cx='-3'%20cy='5'%20r='0.5'%20fill='%236b7280'/%3e%3ccircle%20cx='3'%20cy='5'%20r='0.5'%20fill='%236b7280'/%3e%3c/g%3e%3c!--%20Bottom%20anchor%20point%20(drop%20shadow)%20--%3e%3cellipse%20cx='16'%20cy='30'%20rx='4'%20ry='1.5'%20fill='rgba(0,0,0,0.15)'/%3e%3c/svg%3e");background-size:32px 32px;background-repeat:no-repeat;background-position:center;transition:filter .3s ease,transform 1s ease;transform-origin:center center}.admin-veh-marker.moving{filter:drop-shadow(0 0 6px rgba(16,185,129,.6))}.admin-veh-marker.idle{filter:drop-shadow(0 0 6px rgba(245,158,11,.6)) hue-rotate(-40deg) saturate(2) brightness(1.1)}.admin-veh-marker.stopped,.admin-veh-marker.offline{filter:drop-shadow(0 0 6px rgba(239,68,68,.6)) hue-rotate(-10deg) saturate(3) brightness(.8)}.skip-to-content{position:absolute;top:-40px;left:0;background:var(--theme-accent, #0096ff);color:#fff;padding:8px 16px;z-index:10000;transition:top .2s;text-decoration:none;font-weight:600;font-size:14px}.skip-to-content:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.hamburger-btn{display:none;position:fixed;top:12px;left:12px;z-index:10001;background:var(--theme-bg-card, #1a1a2e);border:1px solid var(--theme-border, rgba(255,255,255,.1));border-radius:8px;padding:8px;cursor:pointer;color:var(--theme-text-primary, #fff);box-shadow:0 2px 8px #0000004d}.hamburger-btn svg{width:24px;height:24px;stroke:currentColor}.sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999;opacity:0;transition:opacity .3s ease}.sidebar-overlay.active{display:block;opacity:1}.content-panel.visible{width:460px;min-width:460px}@media(max-width:1400px){.content-panel.visible{width:420px;min-width:420px}}.panel-desc{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:20px;padding:10px 14px;background:#3b82f60a;border-left:3px solid rgba(59,130,246,.3);border-radius:0 8px 8px 0;border-bottom:none}.panel-section{margin-bottom:20px;padding-bottom:4px}.panel-section-title{font-size:12px;font-weight:700;color:var(--accent-hover);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid rgba(59,130,246,.15);gap:8px}.panel-section-title:after{display:none}.panel-section-title .icon{width:15px;height:15px;opacity:.7}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}.stat-item{background:linear-gradient(135deg,#ffffff0a,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 14px;text-align:center;position:relative;overflow:hidden;transition:all .25s ease}.stat-item:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);opacity:.4;border-radius:12px 12px 0 0}.stat-item.online:before{background:var(--success);opacity:.6}.stat-item.offline:before{background:var(--danger);opacity:.6}.stat-item.moving:before{background:var(--warning);opacity:.6}.stat-item:hover{transform:translateY(-2px);border-color:#ffffff24;box-shadow:0 4px 16px #0003}.stat-item .val{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.stat-item .lbl{font-size:11px;color:var(--text-muted);margin-top:6px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.user-stats-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.user-stat{background:linear-gradient(135deg,#ffffff0a,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px 10px;position:relative;overflow:hidden}.user-stat:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);opacity:.3;border-radius:12px 12px 0 0}.user-stat.online:before{background:#34d399;opacity:.6}.user-stat.admin:before{background:#a78bfa;opacity:.6}.user-stat .val{font-size:24px;font-weight:800;letter-spacing:-.03em}.user-stat .lbl{font-size:10px;font-weight:600;letter-spacing:.6px}.btn{padding:10px 18px;font-size:13px;font-weight:600;border-radius:8px;letter-spacing:-.01em;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-family:inherit;line-height:1.4}.btn .icon{width:16px;height:16px}.btn-sm{padding:7px 14px;font-size:12px;border-radius:6px}.btn-success{background:#10b98126;border-color:#10b98159!important;color:#34d399}.btn-success:hover{background:#10b98140;box-shadow:0 0 12px #10b98126;transform:translateY(-1px)}.btn-ghost{background:#ffffff0a;border-color:#ffffff1f!important;color:var(--text-muted)}.btn-ghost:hover{background:#ffffff14;border-color:#fff3!important;color:var(--text)}.btn-danger{background:#ef44441f;border-color:#ef44444d!important;color:#f87171}.btn-danger:hover{background:#ef444433;box-shadow:0 0 12px #ef444426}.btn-info{background:#3b82f61f;border-color:#3b82f652!important;color:#60a5fa}.btn-info:hover{background:#3b82f638;box-shadow:0 0 12px #3b82f62e;transform:translateY(-1px)}.btn-warning{background:#f59e0b21;border-color:#f59e0b57!important;color:#fbbf24}.btn-warning:hover{background:#f59e0b3b;box-shadow:0 0 12px #f59e0b2e;transform:translateY(-1px)}.btn-primary{background:#6366f121;border-color:#6366f157!important;color:#a5b4fc}.btn-primary:hover{background:#6366f138;box-shadow:0 0 12px #6366f12e;transform:translateY(-1px)}.iot-tab-btn{padding:10px 20px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px;min-width:110px;justify-content:center}.iot-tab-btn:hover{background:#3b82f614;border-color:#3b82f640;color:var(--text)}.iot-tab-btn.active{background:#3b82f626;border-color:#3b82f666;color:#60a5fa;font-weight:700;box-shadow:0 0 12px #3b82f61a,inset 0 -2px #3b82f666}.user-mode-btn{flex:1;padding:10px 16px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff08;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.user-mode-btn:hover{background:#ffffff0f;color:var(--text)}.user-mode-btn.active{background:#10b9811f;border-color:#10b98159;color:#34d399;font-weight:700;box-shadow:inset 0 -2px #10b98180}.user-filter-btn{padding:8px 16px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.user-filter-btn:hover{background:#ffffff0f;color:var(--text)}.user-filter-btn.active{background:#3b82f61f;border-color:#3b82f64d;color:var(--accent-hover);font-weight:700}.info-card{background:linear-gradient(135deg,#ffffff0a,#ffffff04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:18px;margin-bottom:14px;transition:all .25s ease}.info-card:hover{border-color:#ffffff24;box-shadow:0 2px 12px #00000026}.info-card h4{font-size:14px;font-weight:700;margin-bottom:10px;letter-spacing:-.02em}.info-card .value{font-size:28px;font-weight:800}.info-card .label{font-size:12px;font-weight:500}.info-card--success{background:#10b98114;border-color:#10b98147}.info-card--info{background:#3b82f614;border-color:#3b82f647}.info-card--warning{background:#f59e0b14;border-color:#f59e0b4d}.info-card--danger{background:#ef444414;border-color:#ef444447}.data-row{padding:10px 14px;font-size:13px;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}.data-row:hover{background:#3b82f60a}.data-row .data-key{font-size:12px;font-weight:500}.data-row .data-val{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.list-item{padding:12px 14px;border-radius:10px;margin-bottom:8px;border:1px solid rgba(255,255,255,.06);background:#ffffff05}.list-item:hover{border-color:#3b82f633;background:#3b82f60a}.list-item-title{font-size:14px;font-weight:600}.list-item-subtitle{font-size:12px}.server-row{padding:10px 14px;background:#ffffff08;border-radius:8px;margin-bottom:6px;font-size:13px;border:1px solid rgba(255,255,255,.04);transition:all .2s ease}.server-row:hover{border-color:#ffffff1a;background:#ffffff0d}.server-row .status{font-weight:700;font-size:12px}.iot-sensor-card{background:linear-gradient(135deg,#ffffff0a,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:14px;margin-bottom:10px}.iot-sensor-card:hover{border-color:#3b82f64d;box-shadow:0 2px 8px #3b82f614}.iot-alert-card{background:#ffffff08;border-left:4px solid;border-radius:8px;padding:14px;margin-bottom:10px;font-size:13px}.tag{padding:3px 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.3px}.role-badge{padding:2px 9px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.4px}.empty-state{text-align:center;padding:40px 24px;color:var(--text-muted)}.empty-state-icon{font-size:48px;margin-bottom:14px;opacity:.4}.empty-state-icon .icon,.empty-state-icon svg{width:48px;height:48px}.empty-state p{font-size:14px;font-weight:500;color:var(--text-muted);max-width:300px;margin:0 auto;line-height:1.5}.form-group label{font-size:13px;font-weight:600;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{padding:11px 14px;font-size:13px;border-radius:8px}.u-admin-input,.u-admin-select,.u-admin-form-input{padding:10px 14px;font-size:13px}.search-bar input{padding:11px 16px;font-size:13px;border-radius:10px}.content-panel-header{padding:16px 22px;min-height:56px;border-bottom:2px solid rgba(255,255,255,.06)}.content-panel-title{font-size:15px;font-weight:700;gap:10px;letter-spacing:-.02em}.content-panel-title .cp-icon{font-size:18px;color:var(--accent-hover)}.content-panel-breadcrumb{font-size:11px;font-weight:600;letter-spacing:.6px;color:var(--accent);opacity:.7}.content-panel-body{padding:20px 22px}.data-table{font-size:13px}.data-table th,.data-table td{padding:12px 14px}.data-table th{font-size:11px;font-weight:700;letter-spacing:.6px;background:#3b82f60f;color:var(--accent-hover)}.user-card{border-radius:12px;padding:14px;margin-bottom:10px;border:1px solid rgba(255,255,255,.06)}.user-card:hover{border-color:#3b82f633;box-shadow:0 2px 8px #0000001a}.user-card-name{font-size:14px;font-weight:700}.user-card-email{font-size:12px}.user-card-meta{font-size:11px;gap:14px;margin-bottom:10px}.user-card-actions .btn{font-size:11px;padding:6px 12px;border-radius:6px}.user-avatar{width:40px;height:40px;font-size:15px}.connected-user-mini{padding:7px 10px;font-size:12px;border-radius:8px;margin-bottom:4px;border:1px solid rgba(255,255,255,.03)}.connected-user-mini:hover{background:#ffffff0a;border-color:#ffffff14}.connected-user-mini .mini-name{font-size:12px;font-weight:600}.connected-user-mini .mini-time{font-size:10px}.modal-content{border-radius:16px;padding:28px;border:1px solid rgba(255,255,255,.1)}.modal-header h2{font-size:18px;font-weight:700}.modal-footer{gap:12px}.video-panel{padding:12px 16px}.status-dot{width:8px;height:8px}.status-dot.green{box-shadow:0 0 8px #10b98199}.progress-bar-wrap{height:8px;border-radius:4px}.menu-group-header{font-size:11px;font-weight:700;letter-spacing:1px;padding:8px 12px;margin-bottom:2px}.menu-group-header .group-count{font-size:10px;padding:2px 8px;font-weight:700}.menu-group-items .menu-item{font-size:13px;padding:10px 14px 10px 38px;font-weight:500}.menu-group-items .menu-item.active{font-weight:700}.menu-item .badge{font-size:10px;padding:2px 8px;font-weight:700}.intercom-header h4{font-size:14px;font-weight:700}.intercom-btn{padding:12px 20px;font-size:13px}.btn:after{display:none}.map-title{font-size:15px;padding:8px 16px;border-radius:10px;font-weight:700}.notification{padding:16px 24px;border-radius:12px;font-size:13px}::-webkit-scrollbar{width:6px}.content-panel-body::-webkit-scrollbar{width:5px}@media(max-width:1400px){.content-panel.visible{width:420px;min-width:420px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media(min-width:901px)and (max-width:1200px){.content-panel.visible{width:400px;min-width:400px}}.admin-bm-opt{background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:6px 10px;color:#cbd5e1;cursor:pointer;font-size:11px;text-align:left;transition:background .15s,border-color .15s}.admin-bm-opt:hover{background:#3b82f626;border-color:#3b82f666}.admin-bm-opt.active{background:#3b82f633;border-color:#3b82f6;color:#fff;font-weight:600}.maplibregl-ctrl-scale{background:#0c1220eb!important;border:1px solid rgba(255,255,255,.35)!important;color:#fff!important;font-size:12px!important;font-weight:700!important;padding:4px 10px!important;border-radius:4px!important;box-shadow:0 2px 8px #00000080!important;text-shadow:0 1px 2px rgba(0,0,0,.8)!important}.maplibregl-ctrl-bottom-left{bottom:70px!important;left:10px!important;z-index:500!important}.maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib{margin-bottom:60px!important}.adm-bm-opt:hover{background:#ffffff1a!important}.admin-sv-window{position:fixed;bottom:20px;right:20px;width:380px;height:320px;background:#1a1a2e;border-radius:12px;box-shadow:0 8px 32px #00000080;z-index:9999;overflow:hidden;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;transition:all .3s ease}.admin-sv-window.d-none{display:none!important}.admin-sv-window.expanded{width:640px;height:480px}.admin-sv-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:linear-gradient(180deg,#2d2d44,#1a1a2e);cursor:move;-webkit-user-select:none;user-select:none;border-bottom:1px solid rgba(255,255,255,.1)}.admin-sv-title{color:#fff;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}.admin-sv-header-btns{display:flex;gap:4px}.admin-sv-header-btns button{width:26px;height:26px;border:none;background:#ffffff1a;color:#fff;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.admin-sv-header-btns button:hover{background:#ffffff40}.admin-sv-header-btns button:last-child:hover{background:#ff505080}.admin-sv-video-area{flex:1;position:relative;background:#000;overflow:hidden}#adminImmersiveVideo{width:100%;height:100%;object-fit:cover}.admin-sv-overlay-info{position:absolute;top:8px;left:8px;display:flex;gap:8px;pointer-events:none}.admin-sv-overlay-info span{background:#0009;padding:4px 10px;border-radius:8px;font-size:12px;color:#10b981;font-family:Inter,sans-serif;font-weight:600}.admin-sv-nav-controls{position:absolute;bottom:10px;right:10px;width:80px;height:80px;pointer-events:none}.admin-sv-nav-btn{position:absolute;width:26px;height:26px;border:none;background:#ffffffd9;border-radius:50%;cursor:pointer;pointer-events:auto;transition:all .2s;box-shadow:0 2px 6px #0000004d;padding:3px}.admin-sv-nav-btn:hover{background:#00d4ff;transform:scale(1.1)}.admin-sv-nav-btn svg{width:100%;height:100%}.admin-sv-forward{top:0;left:50%;transform:translate(-50%)}.admin-sv-backward{bottom:0;left:50%;transform:translate(-50%)}.admin-sv-left{left:0;top:50%;transform:translateY(-50%)}.admin-sv-right{right:0;top:50%;transform:translateY(-50%)}.admin-sv-compass{position:absolute;top:8px;right:8px;width:36px;height:36px;background:#000000b3;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.3)}.admin-sv-compass-needle{color:#f44;font-size:14px;font-weight:700}.admin-sv-controls{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:linear-gradient(0deg,#1a1a2e,#2d2d44);border-top:1px solid rgba(255,255,255,.1)}.admin-sv-controls button{width:32px;height:32px;border:none;background:#ffffff1a;color:#fff;border-radius:8px;cursor:pointer;font-size:16px;transition:all .2s}.admin-sv-controls button:hover{background:#ffffff40}.admin-cam-btn.active{background:linear-gradient(135deg,#00d4ff,#09c)!important;box-shadow:0 0 8px #00c8ff80}.admin-sv-separator{color:#ffffff4d;font-size:18px;margin:0 4px}.route-marker{transition:transform .2s ease}.route-marker:hover{transform:scale(1.2);z-index:10!important}.stop-badge{pointer-events:none}.admin-ctx-menu{display:none;position:fixed;z-index:10000;min-width:220px;background:#080c18f5;border:1px solid rgba(0,128,255,.3);border-radius:8px;padding:4px 0;box-shadow:0 8px 32px #0009,0 0 20px #0080ff26;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:Inter,sans-serif;font-size:13px}.admin-ctx-menu.visible{display:block}.admin-ctx-item{display:flex;align-items:center;gap:8px;padding:8px 14px;color:#c8d6e5;cursor:pointer;transition:background .15s}.admin-ctx-item:hover{background:#0080ff26;color:#fff}.admin-ctx-item.danger{color:#ff6b6b}.admin-ctx-item.danger:hover{background:#ff6b6b26}.admin-ctx-item.active{color:#0f8}.admin-ctx-sep{height:1px;background:#ffffff14;margin:4px 0}.admin-ctx-header{padding:6px 14px;color:#6c8ebf;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}body.admin-no-map #adminMap,body.admin-no-map .maplibregl-control-container,body.admin-no-map #adminBottomBar,body.admin-no-map .admin-map-controls,body.admin-no-map .admin-time-controls,body.admin-no-map .admin-map-toolbar,body.admin-no-map [id^=adminTimeControls],body.admin-no-map #openPanelBtn{display:none!important}body.admin-no-map .map-video-wrapper{background:linear-gradient(135deg,#0f172a,#1e293b)!important}body.admin-no-map #contentPanel.visible{position:relative!important;width:min(1280px,calc(100% - 80px))!important;min-width:min(1280px,calc(100% - 80px))!important;max-width:100%!important;margin:24px auto!important;height:calc(100vh - 48px)!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important;box-shadow:0 20px 60px #0006!important;border-radius:14px!important}body.admin-no-map #contentPanel:not(.visible){width:0!important;min-width:0!important;margin:0!important;padding:0!important;overflow:hidden!important}.admin-brand{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.admin-brand img,.admin-brand .brand-logo{width:32px!important;height:32px!important;border-radius:8px;object-fit:cover}.admin-brand-title{font-size:15px;font-weight:700;color:var(--text, #f1f5f9);letter-spacing:.2px}.admin-brand-subtitle{font-size:10px;color:var(--text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.5px}.user-identity-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffff0a;border-radius:8px;margin:8px 12px;font-size:12px}.user-identity-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#10b981,#3b82f6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;flex-shrink:0}.user-identity-info{flex:1;min-width:0}.user-identity-name{font-weight:600;color:var(--text, #f1f5f9);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-identity-role{font-size:10px;color:var(--text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.3px}.user-identity-logout{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444;border-radius:6px;padding:6px 8px;cursor:pointer;font-size:11px;transition:background .15s}.user-identity-logout:hover{background:#ef444433}.user-identity-logout.armed{background:#ef4444!important;color:#fff!important;animation:logout-pulse-admin 1s ease-in-out infinite}@keyframes logout-pulse-admin{0%,to{box-shadow:0 0 #ef444480}50%{box-shadow:0 0 0 4px #ef444400}}.sidebar .menu-item,.sidebar .menu-group-header{font-size:13px!important;line-height:1.4!important}.sidebar .menu-group-header{color:#ffffff8c!important;font-weight:700!important;letter-spacing:.5px!important}.sidebar .menu-item{color:#ffffffc7!important;padding:9px 14px!important}.sidebar .menu-item:hover{background:#ffffff0d!important;color:#fffffff2!important}.sidebar .menu-item.active{background:linear-gradient(90deg,rgba(59,130,246,.2),transparent)!important;color:#60a5fa!important;border-left:3px solid #3b82f6!important;padding-left:11px!important}.sidebar .badge{font-size:10px!important;font-weight:700!important;padding:2px 7px!important;background:#3b82f633!important;color:#93c5fd!important;border-radius:10px!important;min-width:18px;text-align:center}#contentPanelHeader,.content-panel-header{padding:18px 22px 14px!important;border-bottom:1px solid rgba(255,255,255,.06)!important}#cpLabel{font-size:19px!important;font-weight:700!important;color:var(--text, #f1f5f9)!important;letter-spacing:.2px!important}.content-panel-title{flex-wrap:wrap!important;align-items:center!important;row-gap:2px!important}#cpBreadcrumb{order:-1!important;flex-basis:100%!important;display:inline-flex!important;align-items:center!important;gap:4px!important;margin:0 0 4px!important;font-size:10px!important;font-weight:500!important;text-transform:uppercase!important;letter-spacing:.09em!important;color:var(--text-muted, #94a3b8)!important}#cpBreadcrumb .cp-bc-segment{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted, #94a3b8);transition:color .18s ease}#cpBreadcrumb .cp-bc-segment.is-clickable{cursor:pointer}#cpBreadcrumb .cp-bc-segment.is-clickable:hover{color:#93c5fd}#cpBreadcrumb .cp-bc-segment.is-current{color:#93c5fd;font-weight:600}#cpBreadcrumb .cp-bc-sep{width:10px!important;height:10px!important;color:#94a3b88c;stroke-width:2.5;flex-shrink:0}#cpBreadcrumb .cp-bc-home{width:11px!important;height:11px!important;stroke-width:2.2;color:#94a3b8a6}#cpIcon i,#cpIcon svg{width:20px!important;height:20px!important;color:#60a5fa!important}.u-admin-form-input,#contentPanel select,#contentPanel input[type=text],#contentPanel input[type=number],#contentPanel input[type=email],#contentPanel input[type=tel],#contentPanel input[type=password],#contentPanel textarea{background:#ffffff0a!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:7px!important;padding:9px 11px!important;color:var(--text, #f1f5f9)!important;font-size:13px!important;width:100%;box-sizing:border-box;transition:border-color .15s,background .15s}#contentPanel select:focus,#contentPanel input:focus,#contentPanel textarea:focus,.u-admin-form-input:focus{outline:none!important;border-color:#3b82f6!important;background:#ffffff0f!important}#contentPanel label{display:block;font-size:11px;font-weight:600;color:var(--text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}.empty-state{text-align:center;padding:48px 24px!important;color:var(--text-muted, #94a3b8)}.empty-state-icon{width:56px!important;height:56px!important;margin:0 auto 16px!important;background:#3b82f614!important;border-radius:14px!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#60a5fa!important}.empty-state-icon i,.empty-state-icon svg{width:28px!important;height:28px!important}.empty-state p{font-size:14px!important;color:var(--text, #f1f5f9)!important;font-weight:600!important;margin:0 0 4px!important}.empty-state small{font-size:12px!important;color:var(--text-muted, #94a3b8)!important;display:block;margin-bottom:16px}.empty-state .empty-cta{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;background:linear-gradient(135deg,#3b82f6,#10b981);color:#fff;border:none;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;text-decoration:none}.empty-state .empty-cta:hover{transform:translateY(-1px);box-shadow:0 6px 16px #3b82f64d}.modal-header button,#vehicleDetailModal button,.modal-close,[id$=Modal] .modal-header button{width:30px;height:30px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text, #f1f5f9);cursor:pointer;transition:background .15s}.modal-header button:hover,.modal-close:hover{background:#ef444426;border-color:#ef44444d;color:#fca5a5}.info-card,.panel-card{background:#ffffff08!important;border:1px solid rgba(255,255,255,.06)!important;border-radius:10px!important}.skeleton{background:linear-gradient(90deg,#ffffff0a,#ffffff14,#ffffff0a);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:6px}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.sidebar .menu-item:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #3b82f6!important;outline-offset:2px!important}.u-map-toolbar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:4px;padding:6px 8px;background:#0f172a8c;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(148,163,184,.14);border-radius:14px;box-shadow:0 8px 32px #00000073,inset 0 1px #ffffff0d;pointer-events:auto}.u-map-tool-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;gap:0;padding:0;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#e2e8f0eb;cursor:pointer;font-size:15px;font-weight:500;letter-spacing:.2px;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .1s ease}.u-map-tool-btn:hover{background:#ffffff1a;border-color:#fff3;color:#f1f5f9}.u-map-tool-btn:active{transform:scale(.96)}.u-map-tool-btn:focus-visible{outline:2px solid rgba(59,130,246,.6);outline-offset:2px}.u-map-tool-btn.is-active,.u-map-tool-btn.active,.u-map-tool-btn--active{background:#3b82f638;border-color:#3b82f68c;color:#dbeafe;box-shadow:inset 0 0 0 1px #3b82f626}.u-map-tool-btn--primary{width:auto;padding:0 12px;gap:6px;font-size:11px;font-weight:600;letter-spacing:.35px;text-transform:none}.u-map-tool-btn .icon{width:16px;height:16px;stroke-width:2}.u-map-tool-btn--primary .icon{width:14px;height:14px}.u-map-tool-sep{width:1px;height:22px;background:#94a3b833;margin:0 3px;flex-shrink:0}#immersiveControls.u-map-toolbar button{transition:background .18s ease,border-color .18s ease,color .18s ease,transform .1s ease}#immersiveControls.u-map-toolbar button:hover{transform:none;box-shadow:none}#immersiveControls.u-map-toolbar button:active{transform:scale(.96)}.cam-mgr-dropdown{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;max-height:280px;overflow-y:auto;background:var(--bg-card, #0f172a);border:1px solid rgba(148,163,184,.22);border-radius:8px;box-shadow:0 18px 40px -12px #0000008c,0 0 0 1px #0f172a59;padding:4px}.cam-mgr-option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:12px;color:var(--text-primary, #e2e8f0);transition:background .12s ease}.cam-mgr-option:hover,.cam-mgr-option:focus-visible{background:#3b82f624;outline:none}.cam-mgr-option--empty{color:var(--text-muted, #94a3b8);font-style:italic;cursor:default}.cam-mgr-opt-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.3px;background:linear-gradient(135deg,#1e40af,#0ea5e9);color:#fff;border-radius:5px;min-width:58px;justify-content:center}.cam-mgr-opt-label{flex:1;font-weight:500}.cam-mgr-opt-meta{font-size:10px;color:var(--text-muted, #94a3b8);letter-spacing:.3px}.cam-mgr-header{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:10px 0;background:linear-gradient(135deg,#1e40af2e,#0ea5e91a);border:1px solid rgba(59,130,246,.28);border-radius:10px}.cam-mgr-header-badge{display:inline-flex;align-items:center;padding:4px 11px;font-size:13px;font-weight:700;letter-spacing:.3px;background:linear-gradient(135deg,#1e40af,#0ea5e9);color:#fff;border-radius:6px}.cam-mgr-header-name{color:var(--text-primary, #e2e8f0);font-size:14px}.cam-mgr-header-meta{margin-left:auto;font-size:11px;color:var(--text-muted, #94a3b8);letter-spacing:.2px}.cam-mgr-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.cam-mgr-row{display:grid;grid-template-columns:130px 1fr 1fr 70px 70px 32px;gap:8px;align-items:center;padding:10px 12px;background:#0f172a8c;border:1px solid rgba(148,163,184,.14);border-radius:8px}.cam-mgr-row:hover{border-color:#3b82f657;background:#0f172ab3}.cam-mgr-field{width:100%;padding:6px 9px;font-size:11.5px;color:var(--text-primary, #e2e8f0);background:#00000059;border:1px solid rgba(148,163,184,.18);border-radius:6px;transition:border-color .12s ease,box-shadow .12s ease}.cam-mgr-field:focus{outline:none;border-color:#3b82f68c;box-shadow:0 0 0 2px #3b82f62e}.cam-mgr-del{width:32px;height:32px;padding:0;font-size:13px;color:#fca5a5;background:#ef444424;border:1px solid rgba(239,68,68,.32);border-radius:6px;cursor:pointer;transition:background .12s ease,color .12s ease}.cam-mgr-del:hover{background:#ef444442;color:#fee2e2}.cam-mgr-actions{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid rgba(148,163,184,.14)}.cam-mgr-diff{padding:3px 10px;font-size:11px;font-weight:600;letter-spacing:.4px;color:#fbbf24;background:#fbbf2424;border:1px solid rgba(251,191,36,.34);border-radius:6px}.cam-mgr-recap-card{margin-bottom:10px}.cam-mgr-recap-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(148,163,184,.14)}.cam-mgr-recap-truck{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:linear-gradient(135deg,#10b9812e,#3b82f624);color:#10b981;flex-shrink:0}.cam-mgr-recap-info{flex:1;min-width:0}.cam-mgr-recap-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cam-mgr-recap-fleet{display:inline-flex;align-items:center;padding:3px 9px;font-size:12px;font-weight:700;letter-spacing:.3px;color:#fff;background:linear-gradient(135deg,#1e40af,#0ea5e9);border-radius:6px}.cam-mgr-recap-name{font-size:14px;color:var(--accent-hover, #60a5fa)}.cam-mgr-recap-sub{margin-top:3px;font-size:10px;color:var(--text-muted, #94a3b8);letter-spacing:.2px}.cam-mgr-recap-edit{padding:4px 10px;font-size:11px;background:#3b82f624;border:1px solid rgba(59,130,246,.34);color:#dbeafe}.cam-mgr-recap-edit:hover{background:#3b82f63d}.cam-mgr-recap-grid{display:grid;gap:8px}.cam-mgr-recap-cam{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff08;border-radius:8px;border-left:3px solid var(--cam-pos, #64748b)}.cam-mgr-recap-pos{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:color-mix(in srgb,var(--cam-pos, #64748b) 18%,transparent);color:var(--cam-pos, #64748b);flex-shrink:0}.cam-mgr-recap-cam-info{flex:1}.cam-mgr-recap-cam-name{font-weight:600;font-size:12px;color:var(--text-primary, #e2e8f0)}.cam-mgr-recap-cam-detail{font-size:10px;color:var(--text-muted, #94a3b8);margin-top:2px;letter-spacing:.2px}@media(max-width:720px){.cam-mgr-row{grid-template-columns:1fr 1fr 32px;grid-auto-rows:auto}.cam-mgr-row .cam-mgr-position,.cam-mgr-row .cam-mgr-imei,.cam-mgr-row .cam-mgr-name{grid-column:1 / span 2}.cam-mgr-row .cam-mgr-channel{grid-column:1 / 2}.cam-mgr-row .cam-mgr-channels{grid-column:2 / 3}.cam-mgr-row .cam-mgr-del{grid-column:3 / 4;grid-row:1 / span 2;align-self:start}.cam-mgr-header-meta{margin-left:0;flex-basis:100%}}.cam-mgr-legend{margin:4px 0 10px;padding:8px 12px;font-size:11px;color:#bfdbfe;background:#3b82f614;border:1px solid rgba(59,130,246,.22);border-radius:8px;line-height:1.5}.cam-mgr-legend strong{color:#dbeafe}.cam-mgr-legend em{color:#93c5fd;font-style:normal;font-weight:600}.cam-mgr-row--head{padding:4px 12px;background:transparent;border:0;font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted, #94a3b8);border-bottom:1px dashed rgba(148,163,184,.22);border-radius:0}.cam-mgr-row--head:hover{background:transparent;border-color:transparent;border-bottom:1px dashed rgba(148,163,184,.22)}@media(max-width:720px){.cam-mgr-row--head{display:none}}.gcv4-badge{display:inline-block;align-self:flex-start;margin:6px 0;padding:4px 10px;font-size:10.5px;letter-spacing:.35px;border-radius:12px;border:1px solid rgba(148,163,184,.18);background:#0f172a8c;color:var(--text-muted, #94a3b8);font-family:ui-monospace,JetBrains Mono,monospace}.gcv4-badge--thinking{background:#3b82f61a;border-color:#3b82f647;color:#93c5fd;animation:gcv4-pulse 1.4s ease-in-out infinite}.gcv4-badge--tool{background:#a855f71a;border-color:#a855f747;color:#d8b4fe}.gcv4-badge--action{background:#10b9811a;border-color:#10b98147;color:#6ee7b7}.gcv4-badge--warn{background:#fbbf241a;border-color:#fbbf244d;color:#fcd34d}@keyframes gcv4-pulse{0%,to{opacity:.7}50%{opacity:1}}#gcaMessages,#chat-messages{display:flex;flex-direction:column}.btn-pad-accent-blue{padding:4px 10px!important;background:var(--accent-blue)!important}.section-label-sm{font-size:11px;color:#8492a6;margin-bottom:8px;font-weight:600}.flex-col-6{display:flex;flex-direction:column;gap:6px}.card-block-style{display:block;padding:6px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text)}.text-accent-suffix{color:#60a5fa;margin-left:4px}.bg-accent{background:var(--accent)}.map-fab{position:absolute;top:12px;z-index:900;width:40px;height:40px;border-radius:8px;background:#0f172aeb;border:1px solid rgba(59,130,246,.3);color:#60a5fa;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-fab--r56{right:56px}.map-fab--r104{right:104px}.map-fab--r152{right:152px}.map-popup{display:none;position:absolute;top:60px;z-index:901;background:#0f172af5;border:1px solid rgba(59,130,246,.35);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-popup--narrow{min-width:200px;padding:8px}.map-popup--medium{min-width:220px;padding:10px}.map-popup--wide{min-width:280px;max-width:340px;padding:10px}.map-popup--r12{right:12px}.map-popup--r60{right:60px}.map-popup--r108{right:108px}#gcaChatbot{position:fixed;bottom:24px;right:24px;z-index:10000;font-family:Segoe UI,system-ui,-apple-system,sans-serif}#gcaChatBtn{width:60px;height:60px;border-radius:50%;border:3px solid rgba(26,115,232,.6);background:linear-gradient(135deg,#1a73e8,#0d47a1);color:#fff;font-size:24px;cursor:pointer;box-shadow:0 4px 20px #1a73e866;transition:transform .2s ease,box-shadow .2s ease;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}#gcaChatBtn .geo-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover}#gcaChatBtn:hover{transform:scale(1.1);box-shadow:0 6px 25px #1a73e899}#gcaChatBtn.listening{border-color:#ea4335;box-shadow:0 0 0 3px #ea43354d;animation:chatPulse 1.5s ease-in-out infinite}@keyframes chatPulse{0%,to{box-shadow:0 4px 20px #ea433566}50%{box-shadow:0 4px 30px #ea4335cc}}#gcaChatPanel{position:absolute;bottom:74px;right:0;width:400px;max-height:560px;border-radius:16px;background:#0f172af7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.2);box-shadow:0 20px 60px #00000080;overflow:hidden;display:none;flex-direction:column}#gcaChatPanel.open{display:flex}.gca-chat-header{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#1e293bcc;border-bottom:1px solid rgba(59,130,246,.15)}.gca-chat-header-title{flex:1;color:#e2e8f0;font-weight:600;font-size:14px}.gca-chat-close{background:none;border:none;color:#94a3b8;font-size:20px;cursor:pointer;padding:0 4px}.gca-chat-close:hover{color:#ef4444}.gca-chat-messages{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px;max-height:380px;min-height:200px;scrollbar-width:thin;scrollbar-color:rgba(59,130,246,.3) transparent}.gca-chat-msg{padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.6;max-width:95%;word-wrap:break-word}.gca-chat-msg.user{background:#3b82f633;color:#93c5fd;align-self:flex-end;border-bottom-right-radius:4px}.gca-chat-msg.bot{background:#1e293b99;color:#e2e8f0;border-bottom-left-radius:4px;border-left:2px solid rgba(96,165,250,.3)}.gca-chat-input-row{display:flex;gap:6px;padding:10px 12px;background:#0f172ae6;border-top:1px solid rgba(59,130,246,.1)}.gca-chat-input-row input{flex:1;background:#1e293bcc;border:1px solid rgba(59,130,246,.2);border-radius:8px;padding:8px 12px;color:#e2e8f0;font-size:13px;outline:none}.gca-chat-input-row input::placeholder{color:#64748b}.gca-chat-input-row input:focus{border-color:#3b82f680}.gca-chat-input-row button{width:36px;height:36px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}.gca-chat-send{background:#1a73e8;color:#fff}.gca-chat-send:hover{background:#1557b0}.gca-chat-mic{background:#1e293b99;color:#94a3b8;border:1px solid rgba(59,130,246,.15)}.gca-chat-mic.active{background:#ea4335;color:#fff;border-color:#ea4335}@keyframes gcaPulse{0%,to{box-shadow:0 0 #ea433580}50%{box-shadow:0 0 0 8px #ea433500}}
