.mention-input-wrap{position:relative;display:flex;gap:8px;align-items:flex-end;width:100%;min-width:0}.mention-input-container{position:relative;flex:1;min-width:0;display:flex;align-items:flex-start;min-height:44px;padding:11px 14px;border-radius:var(--radius-panel);background:var(--bg-input)}.mention-input-wrap:focus-within .mention-input-container{box-shadow:var(--focus-ring)}.mention-input-container .mention-input:focus,.mention-input-container .chat-input:focus,.mention-input-container .vehicle-view-input:focus{box-shadow:none;outline:none}.mention-input{flex:1;min-width:0;width:100%;padding:0;border:none;background:transparent;color:var(--text-primary);font-size:14px;font-family:inherit;line-height:1.4;position:relative;z-index:1;text-align:left;resize:none;overflow:hidden;white-space:pre-wrap;word-break:break-word}.mention-input-container .mention-input,.mention-input-container .chat-input,.mention-input-container .vehicle-view-input{padding-left:0;padding-right:0;text-align:left;color:var(--text-primary)}.mention-input::placeholder{color:var(--text-secondary)}.mention-input:focus{outline:none}.mention-dropdown{position:absolute;left:16px;right:44px;bottom:100%;margin-bottom:4px;max-height:200px;overflow-y:auto;background:var(--bg-panel-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);z-index:var(--layer-dropdown);display:flex;flex-direction:column}.mention-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--text-primary);font-size:14px;font-family:inherit;text-align:left;cursor:pointer;transition:background var(--motion-fast)}.mention-dropdown-item:hover,.mention-dropdown-item.selected{background:var(--hover-overlay)}.mention-dropdown-avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0}.mention-dropdown-avatar.green{background:var(--avatar-green)}.mention-dropdown-avatar.purple{background:var(--avatar-purple)}.mention-dropdown-avatar.blue{background:var(--avatar-blue)}.send-btn--sent{color:var(--accent-green);animation:send-btn-bounce .45s var(--easing-standard)}.send-icon-check{animation:send-icon-pop .35s var(--easing-standard)}@keyframes send-btn-bounce{0%{transform:scale(1)}30%{transform:scale(.8)}65%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes send-icon-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}.chat-panel{display:flex;flex-direction:column;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-panel);overflow:hidden;min-width:0}.chat-panel-header{display:flex;align-items:center;gap:6px;padding:8px 12px 8px 8px;border-bottom:1px solid var(--glass-border);flex-shrink:0}.chat-panel--no-header{border-radius:0;border:none;box-shadow:none}.chat-panel-collapse-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-btn);flex-shrink:0;transition:background var(--motion-default),color var(--motion-default)}.chat-panel-collapse-btn:hover{background:var(--hover-overlay);color:var(--text-primary)}.chat-panel-collapse-icon{font-size:18px}.chat-panel-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary);opacity:.7}.chat-input-wrap--mention{display:flex;align-items:flex-end;min-width:0}.chat-input-wrap--mention .mention-input-wrap{flex:1;min-width:0}.chat-header{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--glass-border);background:var(--glass-bg);flex-shrink:0}.chat-tabs{display:flex;gap:2px;background:var(--hover-overlay);border-radius:var(--radius-pill);padding:3px;flex-shrink:0}.chat-tab{height:26px;padding:0 12px;border-radius:var(--radius-pill);border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--motion-default),color var(--motion-default);white-space:nowrap}.chat-tab--active{background:var(--btn-bg);color:var(--text-primary);font-weight:600;box-shadow:0 1px 3px #00000040}.chat-jobs-list{flex:1;min-height:0;overflow-y:auto}.chat-jobs-empty{padding:24px 16px;font-size:13px;color:var(--text-secondary);opacity:.55;text-align:center;margin:0}.chat-title{flex:1;font-size:15px;font-weight:600;color:var(--text-primary);text-align:center}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--hover-overlay);border:none;border-radius:var(--radius-panel);color:var(--text-primary);cursor:pointer;transition:background var(--motion-default),color var(--motion-default)}.icon-btn:hover{background:var(--hover-overlay-strong);color:var(--text-primary)}.chat-fleet-status{display:flex;align-items:center;gap:8px;flex-shrink:0}.fleet-stat{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.fleet-stat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.fleet-stat--intervention{color:var(--accent-red);font-weight:700}.fleet-stat--intervention .fleet-stat-dot{background:var(--accent-red)}.fleet-stat--active .fleet-stat-dot{background:var(--accent-green)}.fleet-stat--idle .fleet-stat-dot{background:var(--text-secondary);opacity:.5}@media (max-width: 768px){.chat-panel .icon-btn{min-width:44px;min-height:44px;width:44px;height:44px}}.icon-btn.collapse{margin-left:auto}.icon-btn .material-symbols-outlined{font-size:22px}.chat-filter-bar{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--glass-border);background:var(--glass-bg);flex-shrink:0}.chat-filter-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary);opacity:.5;align-self:center;margin-right:2px;white-space:nowrap}.chat-filter-chip{height:26px;padding:0 10px;border-radius:var(--radius-pill);border:1px solid var(--glass-border);background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--motion-default),color var(--motion-default),border-color var(--motion-default);white-space:nowrap}.chat-filter-chip:hover{background:var(--hover-overlay);color:var(--text-primary)}.chat-filter-chip--active{background:var(--hover-overlay-strong);color:var(--text-primary);border-color:transparent}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:24px}.message-row{display:flex;gap:10px;max-width:100%}.message-row-command{justify-content:flex-end}.message-row-command .command-bubble{display:block;width:max-content;max-width:75%;min-width:0;margin-left:auto;text-align:left;white-space:normal}.message-row-vehicle{justify-content:flex-start;align-items:flex-start}.command-bubble{padding:10px 14px;border-radius:var(--radius-panel);background:var(--user-message-bg);border:1px solid var(--user-message-border);color:#fff;font-size:14px;line-height:1.45;white-space:normal;word-break:break-word;overflow-wrap:break-word;box-shadow:var(--shadow-bubble)}.mention-pill{display:inline-block;padding:2px 10px;border-radius:var(--radius-pill);font-weight:600;margin-right:4px;font-size:14px;width:fit-content}.mention-pill.green{background:var(--pill-green-bg);color:var(--pill-green-text)}.mention-pill.purple{background:var(--pill-purple-bg);color:var(--pill-purple-text)}.mention-pill.blue{background:var(--pill-blue-bg);color:var(--pill-blue-text)}.command-body{font-weight:500}.chat-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.chat-avatar.green{background:var(--avatar-green)}.chat-avatar.purple{background:var(--avatar-purple)}.chat-avatar-img{width:118%;height:118%;object-fit:contain;object-position:center}.vehicle-message-content{display:flex;flex-direction:column;gap:4px;min-width:0}.vehicle-message-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vehicle-sender-name{font-size:12px;font-weight:500;line-height:1.2}.message-row-vehicle.needs-intervention .vehicle-bubble.needs-intervention{border-left:3px solid var(--accent-red)}.vehicle-sender-name.green{color:var(--accent-green)}.vehicle-sender-name.purple{color:var(--accent-purple)}.vehicle-bubble{padding:10px 14px;border-radius:var(--radius-panel);background:var(--bg-input);border:1px solid var(--border-input);color:var(--text-primary);font-size:14px;line-height:1.45;max-width:100%;word-break:break-word;align-self:flex-start}.chat-input-wrap{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--glass-border);background:transparent;flex-shrink:0}.chat-input{flex:1;height:44px;padding:0 14px;border:none;border-radius:var(--radius-panel);background:transparent;color:var(--text-primary);font-size:14px;font-family:inherit}.chat-input::placeholder{color:var(--text-secondary)}.chat-input:focus{outline:none;box-shadow:var(--focus-ring)}.send-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-overlay-dark);border:none;border-radius:var(--radius-panel);color:var(--text-primary);cursor:pointer;transition:background var(--motion-default),transform var(--motion-instant)}.send-btn:hover{background:var(--bg-overlay-darker)}.send-btn:active{transform:scale(.96)}.fleet-task-panel{width:100%;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-panel);box-shadow:0 4px 24px #00000059;overflow:hidden}.ftp-header{display:flex;align-items:center;gap:6px;padding:12px 16px 12px 10px;border-bottom:1px solid var(--glass-border)}.fleet-task-panel--collapsed .ftp-header{border-bottom:none}.ftp-collapse-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-btn);flex-shrink:0;transition:background var(--motion-default),color var(--motion-default)}.ftp-collapse-btn:hover{background:var(--hover-overlay);color:var(--text-primary)}.ftp-collapse-icon{font-size:18px}.ftp-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary);opacity:.7}.ftp-count{font-size:11px;font-weight:600;color:var(--text-secondary);opacity:.45;font-family:var(--font-family-mono)}.ftp-new-job-btn{display:inline-flex;align-items:center;gap:5px;margin-left:auto;height:30px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-btn);transition:background var(--motion-default),color var(--motion-default),border-color var(--motion-default)}.ftp-new-job-btn:hover{background:var(--btn-bg-hover)}.ftp-new-job-btn .material-symbols-outlined{font-size:17px}.ftp-list{max-height:380px;overflow-y:auto}.ftp-job{padding:12px 16px 14px;border-bottom:1px solid var(--glass-border);transition:background var(--motion-default);cursor:default}.ftp-job:hover{background:var(--hover-overlay)}.ftp-job:last-child{border-bottom:none}.ftp-job--pending{opacity:.6}.ftp-job-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.ftp-job-top-row .ftp-job-vehicles{margin-left:auto}.ftp-job-status-label{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-pill)}.ftp-job-status-label--active{background:#3d8a622e;color:#5aad7e}.ftp-job-status-label--blocked{background:#ea433526;color:#f07060}.ftp-job-status-label--paused{background:#ffffff12;color:var(--text-secondary)}.ftp-job-status-label--pending{background:#ffffff0d;color:var(--text-secondary);opacity:.6}.ftp-job-name{font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.3;margin:0 0 10px;text-shadow:var(--glass-text-shadow)}.ftp-job-progress-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ftp-job-bar{flex:1;height:4px;border-radius:2px;background:#ffffff12;overflow:hidden}.ftp-job-bar-fill{height:100%;border-radius:2px}.ftp-job-bar-fill--active{background:#3d8a62}.ftp-job-bar-fill--blocked{background:var(--accent-red);opacity:.7}.ftp-job-bar-fill--paused{background:#fff3}.ftp-job-time{font-size:10px;font-weight:500;font-family:var(--font-family-mono);color:var(--text-secondary);opacity:.55;flex-shrink:0;white-space:nowrap}.ftp-job-vehicles{display:flex;align-items:center}.ftp-job-vehicles .ftp-vehicle-avatar{margin-left:-6px;border:2px solid var(--bg-panel);box-shadow:none}.ftp-job-vehicles .ftp-vehicle-avatar:first-child{margin-left:0}.ftp-vehicle-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-secondary);background:var(--btn-bg);border:none;border-radius:var(--radius-pill);padding:4px 10px 4px 4px;white-space:nowrap}.ftp-vehicle-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.ftp-vehicle-avatar img{width:118%;height:118%;object-fit:contain;display:block}.ftp-vehicle-avatar.purple{background:var(--avatar-purple)}.ftp-vehicle-avatar.green{background:var(--avatar-green)}.ftp-vehicle-avatar.blue{background:var(--avatar-blue)}.vsc-card{width:100%;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-panel);box-shadow:0 4px 24px #00000059;padding:14px 16px}.vsc-top{display:flex;align-items:center;gap:14px}.vsc-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.vsc-avatar.green{background:var(--avatar-green)}.vsc-avatar.purple{background:var(--avatar-purple)}.vsc-avatar.blue{background:var(--avatar-blue)}.vsc-avatar-img{width:118%;height:118%;object-fit:contain;object-position:center}.vsc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.vsc-name{font-size:16px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.vsc-meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.vsc-fuel{display:flex;align-items:center;gap:3px;font-size:12px;font-weight:600}.vsc-fuel-icon{font-size:13px;opacity:.8}.vsc-fuel--ok{color:#5aad7e}.vsc-fuel--mid{color:var(--accent-amber, #d4a012)}.vsc-fuel--low{color:var(--accent-red)}.vsc-meta-sep{color:var(--text-secondary);opacity:.4;font-size:12px;line-height:1}.vsc-attachment-btn{display:inline-flex;align-items:center;gap:3px;background:none;border:none;padding:0;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:color var(--motion-default)}.vsc-attachment-btn:hover,.vsc-attachment-btn--open{color:var(--text-primary)}.vsc-attachment-chevron{font-size:14px;opacity:.6}.map-panel{min-width:0;display:flex;flex-direction:column;background:var(--bg-map);position:relative;border-radius:var(--radius-panel);overflow:hidden}.vsc-anchor{position:absolute;top:56px;left:20px;width:380px;z-index:var(--layer-panel)}@media (max-width: 768px){.vsc-anchor{display:none}}.map-controls{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;z-index:var(--layer-overlay)}.map-zoom-controls{display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-btn);border-radius:var(--radius-btn);overflow:hidden}@media (max-width: 768px){.map-controls{bottom:188px;right:12px}.map-panel--zoom-above-bar{z-index:3}.map-panel--zoom-above-bar .map-controls{bottom:140px}.map-zoom-btn{min-width:44px;min-height:44px}}@media (max-width: 480px){.map-controls{bottom:176px;right:8px}.map-panel--zoom-above-bar .map-controls{bottom:130px}.map-zoom-btn{min-width:44px;min-height:44px}}.map-zoom-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--btn-bg);border:1px solid var(--btn-border);color:var(--text-primary);font-size:20px;font-weight:300;line-height:1;cursor:pointer;transition:background var(--motion-default),color var(--motion-default)}.map-zoom-btn:hover:not(:disabled){background:var(--btn-bg-hover)}.map-zoom-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-offset)}.map-zoom-btn:disabled{opacity:.4;cursor:not-allowed}.map-scene{flex:1;position:relative;min-height:320px;overflow:hidden;cursor:grab;touch-action:none}.map-scene.map-scene--dragging{cursor:grabbing}.map-scene-content{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:transform var(--motion-panel) var(--easing-map);will-change:transform}.map-scene-content.map-scene-content--no-transition{transition:none}.map-ground{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/map-background.png) center center / cover no-repeat}.map-compass{width:48px;height:48px;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}.map-minimap{width:160px;height:110px;border-radius:var(--radius-panel);overflow:hidden;border:1px solid var(--glass-border);background:url(/map-background.png) center center / cover no-repeat;box-shadow:0 4px 16px #0006;pointer-events:none;flex-shrink:0}.map-minimap svg{display:block;width:100%;height:100%}.map-pillars{display:none}.map-path-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:.5;pointer-events:none}.pallet-icon{position:absolute;width:24px;height:24px;margin-left:-12px;margin-top:-12px;background:linear-gradient(135deg,#e67e22,#d35400);border:2px solid rgba(255,255,255,.5);transform:rotate(45deg);border-radius:4px;box-shadow:0 2px 8px #0006}.vehicle-marker{position:absolute;margin-left:-27px;margin-top:-27px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:none;background:none;cursor:pointer;font:inherit;z-index:var(--layer-panel)}.vehicle-marker-label{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;border-radius:var(--radius-bubble);background:var(--bg-panel-elevated);box-shadow:var(--shadow-btn);white-space:nowrap;min-width:0;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s;pointer-events:none}.vehicle-marker:hover .vehicle-marker-label{opacity:1;transform:translateY(0);pointer-events:auto}.vehicle-marker-label-name{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.2}.vehicle-marker-label-status{font-size:11px;font-weight:400;color:var(--text-secondary);line-height:1.2;display:flex;align-items:center;gap:4px}.vehicle-marker-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.vehicle-marker-status-dot--active{background:#3d8a62}.vehicle-marker-status-dot--idle{background:var(--text-secondary);opacity:.5}.vehicle-marker-status-dot--paused{background:var(--text-secondary);opacity:.35}.vehicle-marker-progress-bar{width:100%;height:3px;border-radius:2px;background:#ffffff1a;overflow:hidden;margin-top:4px}.vehicle-marker-progress-fill{height:100%;border-radius:2px}.vehicle-marker-progress-fill--active{background:#3d8a62}.vehicle-marker-progress-fill--paused{background:#ffffff40}.vehicle-marker-progress-fill--intervention{background:var(--accent-red);opacity:.65}.vehicle-marker-status-indicator--intervention{display:flex;align-items:center;justify-content:center;width:12px;height:12px;border-radius:50%;background:var(--accent-red);flex-shrink:0}.vehicle-marker-status-indicator--intervention svg{width:8px;height:8px;color:#fff}.vehicle-marker-icon{position:relative;width:54px;height:54px;flex-shrink:0}.vehicle-marker-bg{position:absolute;left:50%;top:50%;width:62px;height:62px;margin-left:-31px;margin-top:-31px;border-radius:50%;opacity:.5;z-index:var(--layer-base);animation:vehicle-pulse 3s ease-in-out infinite}.vehicle-marker.active .vehicle-marker-bg{animation-duration:2s;opacity:.6}.vehicle-marker.idle .vehicle-marker-bg{animation-duration:4s}@keyframes vehicle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.vehicle-marker.green .vehicle-marker-bg{background:var(--avatar-green)}.vehicle-marker.purple .vehicle-marker-bg{background:var(--avatar-purple)}.vehicle-marker.blue .vehicle-marker-bg{background:var(--avatar-blue)}.vehicle-beam{position:absolute;width:4px;height:36px;margin-top:-54px;background:linear-gradient(180deg,var(--accent-blue),transparent);opacity:.8;border-radius:2px;transform-origin:bottom;transform:rotate(-25deg);animation:beam-shimmer 2s ease-in-out infinite}@keyframes beam-shimmer{0%,to{opacity:.6}50%{opacity:1}}.vehicle-body{position:relative;width:50px;height:50px;border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:var(--layer-panel);transition:transform var(--motion-default) ease}.vehicle-marker:hover .vehicle-body{transform:scale(1.08)}.vehicle-marker.active .vehicle-body{animation:vehicle-bob 2.5s ease-in-out infinite}@keyframes vehicle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.vehicle-body .bobcat-vehicle-img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.vehicle-warning{position:absolute;top:-10px;right:-10px;width:33px;height:33px;background:var(--accent-red);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:var(--layer-overlay);box-shadow:0 2px 6px #ea433580;animation:warning-pulse 1.8s ease-in-out infinite}@keyframes warning-pulse{0%,to{transform:scale(1);box-shadow:0 2px 6px #ea433580}50%{transform:scale(1.1);box-shadow:0 2px 12px #ea4335b3}}.vehicle-warning svg{width:21px;height:21px;color:#fff}.map-overlay-toggle{height:36px;display:flex;align-items:center;gap:5px;padding:0 12px;background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--radius-pill);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-btn);white-space:nowrap;transition:background var(--motion-default),color var(--motion-default),border-color var(--motion-default)}.map-overlay-toggle:hover{background:var(--btn-bg-hover)}.map-overlay-toggle--on{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;box-shadow:0 0 0 2px #4285f459}.map-overlay-toggle--on:hover{background:var(--accent-blue);opacity:.9}.map-overlay-toggle .material-symbols-outlined{font-size:17px}@media (max-width: 768px){.map-overlay-toggle{height:44px;padding:0 14px}}.map-zones-toggle{height:36px;display:flex;align-items:center;gap:5px;padding:0 12px;background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--radius-pill);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-btn);white-space:nowrap;transition:background var(--motion-default),color var(--motion-default),border-color var(--motion-default),opacity var(--motion-default)}.map-zones-toggle:hover{background:var(--btn-bg-hover)}.map-zones-toggle .material-symbols-outlined{font-size:17px}@media (max-width: 768px){.map-zones-toggle{height:44px;padding:0 14px}}.map-scene--draw-mode{cursor:crosshair!important}.map-scene--draw-mode .vehicle-marker{pointer-events:none}.map-scene--pick-mode{cursor:crosshair!important}.map-pick-pin{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:6;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 10px #00000073}.map-pick-pin .material-symbols-outlined{font-size:17px;color:#fff}.map-pick-pin--resource{background:#f59e0b}.map-pick-pin--destination{background:#3b82f6}.map-pick-pin--pending{animation:pin-pulse 1.4s infinite ease-in-out}@keyframes pin-pulse{0%,to{box-shadow:0 2px 10px #00000073,0 0 #fff6}50%{box-shadow:0 2px 10px #00000073,0 0 0 7px #fff0}}.map-pick-pin--waypoint{background:#f59e0b;width:28px;height:28px;font-size:11px;font-weight:700;color:#fff}.map-waypoint-num{font-size:11px;font-weight:700;color:#fff;line-height:1}.waypoint-route-line{fill:none;stroke:#fbbf24d9;stroke-width:.55;stroke-dasharray:2 1.2;pointer-events:none}.terrain-line--shoulder{fill:none;stroke:#ffffff59;stroke-width:.35;stroke-dasharray:1 1.5;pointer-events:none}.terrain-line--cut{fill:none;stroke:#ffffffa6;stroke-width:.4;pointer-events:none}.terrain-line--invert{fill:none;stroke:#fffffff2;stroke-width:.6;pointer-events:none}.terrain-line--station{fill:none;stroke:#ffffff40;stroke-width:.25;stroke-dasharray:.5 .8;pointer-events:none}.heatmap-above{fill:#3b82f638;pointer-events:none}.heatmap-on{fill:#22c55e47;pointer-events:none}.heatmap-below{fill:#ef444452;pointer-events:none}.map-draw-btn{height:36px;display:flex;align-items:center;gap:6px;padding:0 12px;background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--radius-pill);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-btn);white-space:nowrap;transition:background var(--motion-default),color var(--motion-default),border-color var(--motion-default)}.map-draw-btn:hover{background:var(--btn-bg-hover)}.map-draw-btn--active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;box-shadow:0 0 0 2px #4285f459}.map-draw-btn--active:hover{background:var(--accent-blue);opacity:.9}@media (max-width: 768px){.map-draw-btn{height:44px;padding:0 14px}}.map-panel--with-banner .map-draw-hint{top:56px}.map-draw-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:var(--radius-pill);background:var(--bg-panel-elevated);border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel);color:var(--text-primary);font-size:13px;white-space:nowrap;pointer-events:none;z-index:var(--layer-overlay);display:flex;align-items:center;gap:10px}.map-draw-hint-done{pointer-events:all;padding:3px 10px;border-radius:var(--radius-pill);background:var(--accent-blue);border:none;color:#fff;font-size:12px;font-family:inherit;font-weight:600;cursor:pointer}.map-zones-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.vehicle-path-indicator{fill:none;stroke:#fff;stroke-width:.5;stroke-linecap:round;pointer-events:none}.map-zone-polygon{pointer-events:all;cursor:pointer;transition:opacity var(--motion-fast)}.map-scene--draw-mode .map-zone-polygon{pointer-events:none}.map-zone-polygon--keepout{fill:#ea43352e;stroke:#ea4335b3;stroke-width:.4;stroke-dasharray:none}.map-zone-polygon--editing{cursor:grab;stroke-dasharray:1.5 1}.map-zone-polygon--editing:active{cursor:grabbing}.map-zone-polygon--keepout.map-zone-polygon--selected{fill:#ea433547;stroke:#ea4335;stroke-width:.5}.map-zone-polygon--info{fill:#4285f424;stroke:#4285f499;stroke-width:.4}.map-zone-polygon--info.map-zone-polygon--selected{fill:#4285f43d;stroke:#4285f4;stroke-width:.5}.map-zone-polygon--obstacle{fill:#fbbc0426;stroke:#fbbc04bf;stroke-width:.5}.map-zone-polygon--obstacle.map-zone-polygon--selected{fill:#fbbc0447;stroke:#fbbc04}.map-zone-polygon--resource{fill:#14b8a61f;stroke:#14b8a6a6;stroke-width:.5}.map-zone-polygon--resource.map-zone-polygon--selected{fill:#14b8a640;stroke:#14b8a6}.map-zone-polygon--unreviewed{animation:obstacle-stroke-pulse 2s ease-in-out infinite}@keyframes obstacle-stroke-pulse{0%,to{stroke-opacity:.75}50%{stroke-opacity:.35}}.map-zone-draft{fill:#ffffff14;stroke:#fff9;stroke-width:.35;stroke-dasharray:1.5 1;pointer-events:none}.map-zone-draft--moveable{pointer-events:fill;cursor:grab}.map-zone-draft--moveable:active{cursor:grabbing}.map-zone-draft-dot{fill:#ffffffe6;pointer-events:none}.map-zone-snap{fill:#4ade80;r:1.2}.map-zone-node{fill:#fff;stroke:#fff6;stroke-width:.3;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));transition:stroke var(--motion-fast);cursor:grab;pointer-events:all}.map-zone-node:hover{stroke:var(--accent-blue);stroke-width:.6}.map-zone-node:active{cursor:grabbing}.map-zone-label{position:absolute;transform:translate(-50%,-50%);padding:3px 8px;border-radius:var(--radius-badge);font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;z-index:var(--layer-panel);letter-spacing:.02em}.map-zone-label--keepout{background:#ea4335d9;color:#fff}.map-zone-label--info{background:#4285f4d9;color:#fff}.map-zone-label--obstacle{background:#fbbc04e6;color:#3d2900;display:flex;flex-direction:column;align-items:center;gap:1px}.map-zone-label--resource{background:#14b8a6e6;color:#fff}.map-zone-label-role{font-size:10px;font-weight:500;opacity:.75;line-height:1.2}.map-zone-popup{position:absolute;width:220px;border-radius:var(--radius-panel);background:var(--bg-panel-elevated);border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel);z-index:var(--layer-overlay);overflow:hidden;animation:zone-popup-in .15s var(--easing-standard)}@keyframes zone-popup-in{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.map-zone-popup-header{display:flex;align-items:center;gap:8px;padding:10px 10px 8px;border-bottom:1px solid var(--border-subtle)}.map-zone-popup-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.map-zone-popup-dot--keepout{background:var(--accent-red)}.map-zone-popup-dot--info{background:var(--accent-blue)}.map-zone-popup-dot--obstacle{background:#fbbc04}.map-zone-popup-dot--resource{background:#14b8a6}.map-zone-popup-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.map-zone-popup-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-zone-popup-type{font-size:11px;color:var(--text-secondary)}.map-zone-popup-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-btn);color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background var(--motion-fast),color var(--motion-fast)}.map-zone-popup-close:hover{background:var(--hover-overlay);color:var(--text-primary)}.map-zone-popup-close .material-symbols-outlined{font-size:16px}.map-zone-popup-actions{display:flex;flex-direction:column}.map-zone-popup-action{display:flex;align-items:center;gap:8px;padding:9px 12px;background:transparent;border:none;color:var(--text-primary);font-size:13px;cursor:pointer;text-align:left;transition:background var(--motion-fast)}.map-zone-popup-action:hover{background:var(--hover-overlay)}.map-zone-popup-action--danger{color:var(--accent-red)}.map-zone-popup-action--done{color:var(--accent-green)}.map-zone-popup-edit-hint{font-size:11px;color:var(--text-secondary);padding:6px 12px 2px;opacity:.8}.map-zone-popup-action .material-symbols-outlined{font-size:17px;flex-shrink:0}.map-zone-popup-obstacle-labels{display:flex;flex-direction:column;padding:6px 8px;gap:2px;border-bottom:1px solid var(--border-subtle)}.map-zone-obstacle-label-btn{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--radius-btn);border:none;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:background var(--motion-fast),color var(--motion-fast)}.map-zone-obstacle-label-btn:hover{background:var(--hover-overlay);color:var(--text-primary)}.map-zone-obstacle-label-btn .material-symbols-outlined{font-size:15px;flex-shrink:0}.map-zone-obstacle-label-check{margin-left:auto;font-size:15px;color:var(--text-primary)}.map-zone-obstacle-label-btn--active{background:var(--hover-overlay);color:var(--text-primary)}.map-zone-obstacle-label-btn--active:hover{background:var(--btn-bg-hover);color:var(--text-primary)}.map-zone-popup-obstacle-review{display:flex;flex-direction:column;gap:10px;padding:10px 12px 12px}.map-zone-popup-obstacle-desc{font-size:12px;color:var(--text-secondary);margin:0}.map-zone-popup-confirm-obstacle{background:#fbbc04e6!important;color:#3d2900!important;border-color:transparent!important}.map-zone-popup-confirm-obstacle:hover{opacity:.88}.map-zone-popup-confirm{display:flex;flex-direction:column;gap:10px;padding:12px}.map-zone-popup-confirm-label{font-size:13px;color:var(--text-primary);font-weight:500}.map-zone-popup-confirm-actions{display:flex;gap:6px}.map-zone-popup-confirm-cancel,.map-zone-popup-confirm-delete{flex:1;height:30px;border-radius:var(--radius-btn);border:1px solid var(--border-subtle);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--motion-fast)}.map-zone-popup-confirm-cancel{background:var(--btn-bg);color:var(--text-primary)}.map-zone-popup-confirm-cancel:hover{background:var(--btn-bg-hover)}.map-zone-popup-confirm-delete{background:var(--accent-red);color:#fff;border-color:transparent}.map-zone-popup-confirm-delete:hover{opacity:.88}.zone-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;z-index:var(--layer-dropdown);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.zone-name-bar{position:absolute;width:300px;max-width:calc(100% - 32px);padding:14px 16px;border-radius:var(--radius-panel);background:var(--bg-panel-elevated);border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;gap:10px;z-index:var(--layer-overlay);animation:zone-popup-in .15s var(--easing-standard)}.zone-modal{width:300px;padding:20px;border-radius:var(--radius-panel);background:var(--bg-panel-elevated);border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;gap:14px}.zone-modal-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0}.zone-modal-input{width:100%;height:40px;padding:0 12px;border:1px solid var(--border-input);border-radius:var(--radius-panel);background:var(--bg-input);color:var(--text-primary);font-size:14px;font-family:inherit;box-sizing:border-box}.zone-modal-input:focus{outline:none;box-shadow:var(--focus-ring)}.zone-modal-types{display:flex;flex-wrap:wrap;gap:8px}.zone-type-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:transparent;color:var(--text-secondary);font-size:13px;font-family:inherit;white-space:nowrap;cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}.zone-type-btn.active{color:var(--text-primary);border-color:var(--accent-blue);background:#4285f41a}.zone-type-btn--keepout.active{border-color:var(--accent-red);background:#ea43351a}.zone-type-btn--obstacle.active{border-color:#fbbc04e6;background:#fbbc041a}.zone-type-btn--resource.active{border-color:#14b8a6e6;background:#14b8a61a}.zone-type-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.zone-type-dot--info{background:var(--accent-blue)}.zone-type-dot--keepout{background:var(--accent-red)}.zone-type-dot--obstacle{background:#fbbc04e6}.zone-type-dot--resource{background:#14b8a6e6}.zone-modal-obstacle-labels{display:flex;flex-direction:column;gap:4px}.zone-modal-actions{display:flex;gap:8px;justify-content:flex-end}.zone-modal-cancel{padding:8px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:transparent;color:var(--text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:background var(--motion-fast)}.zone-modal-cancel:hover{background:var(--hover-overlay);color:var(--text-primary)}.zone-modal-save{padding:8px 16px;border:none;border-radius:var(--radius-panel);background:var(--accent-blue);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity var(--motion-fast)}.zone-modal-save:hover:not(:disabled){opacity:.85}.zone-modal-save:disabled{opacity:.4;cursor:not-allowed}.vehicles-panel{display:flex;flex-direction:column;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-panel);overflow:hidden;min-width:0}.vehicle-view-back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--hover-overlay);border:none;border-radius:var(--radius-panel);color:var(--text-primary);cursor:pointer;transition:background var(--motion-default),color var(--motion-default);flex-shrink:0}.vehicle-view-back:hover{background:var(--hover-overlay-strong);color:var(--text-primary)}.vehicles-header{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-bottom:1px solid var(--glass-border);background:var(--glass-bg);flex-shrink:0;position:relative;z-index:1}.vehicles-search-row{display:flex;align-items:center;gap:8px;background:#ffffff0f;border:1px solid var(--glass-border);border-radius:var(--radius-btn);padding:0 10px;height:36px;margin-right:42px}.vehicles-search-icon{font-size:18px;color:var(--text-secondary);opacity:.5;flex-shrink:0}.vehicles-search-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:13px;font-family:inherit;min-width:0}.vehicles-search-input::placeholder{color:var(--text-secondary);opacity:.45}.vehicles-search-input::-webkit-search-cancel-button{display:none}.vehicles-search-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);opacity:.5;cursor:pointer;padding:0;flex-shrink:0}.vehicles-search-clear .material-symbols-outlined{font-size:16px}.vehicles-filter-row{display:flex;gap:6px;flex-wrap:wrap;padding-right:36px}.vehicles-filter-pill{height:28px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--glass-border);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--motion-default),color var(--motion-default),border-color var(--motion-default);white-space:nowrap}.vehicles-filter-pill:hover{background:var(--hover-overlay);color:var(--text-primary)}.vehicles-filter-pill--selected{background:var(--hover-overlay-strong);color:var(--text-primary);border-color:transparent}.vehicles-header-close{position:absolute;top:10px;right:10px}.vehicles-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:18px;min-height:0}.vehicles-group ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0}.vehicles-group-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);padding:0 4px;margin:0 0 6px}.vehicle-card{position:relative;display:flex;align-items:center;gap:12px;padding:16px 14px;border-radius:var(--radius-panel);background:var(--glass-bg);border:1px solid var(--glass-border);border-left:3px solid transparent;transition:background var(--motion-default);cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.vehicle-card:hover{background:var(--bg-panel-elevated)}.vehicle-card--selected{background:var(--bg-panel-elevated);border-color:var(--glass-border-strong, var(--glass-border))}.vehicle-card.intervention{background:#ea43350a;border-color:#ea433533}.vehicle-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.vehicle-avatar.green{background:var(--avatar-green)}.vehicle-avatar.purple{background:var(--avatar-purple)}.vehicle-avatar.blue{background:var(--avatar-blue)}.bobcat-avatar-img{width:118%;height:118%;object-fit:contain;object-position:center;border-radius:50%}.vehicle-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.vehicle-name{font-size:14px;font-weight:600;color:var(--text-primary)}.vehicle-status-label{font-size:12px;font-weight:500;color:var(--text-secondary);line-height:1.3;display:flex;align-items:center;gap:5px}.vehicle-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.vehicle-status-dot--active{background:#3d8a62}.vehicle-status-dot--idle{background:var(--text-secondary);opacity:.5}.vehicle-status-dot--paused{background:var(--text-secondary);opacity:.35}.vehicle-status-dot--intervention{background:var(--accent-red)}.vehicle-status-indicator--intervention{display:flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--accent-red);flex-shrink:0}.vehicle-status-indicator--intervention svg{width:9px;height:9px;color:#fff}.intervention-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-badge);background:var(--accent-red);color:#fff;font-size:12px;font-weight:600;width:fit-content;align-self:flex-start}.intervention-icon{width:14px;height:14px;flex-shrink:0}.stop-btn{flex-shrink:0;padding:6px 14px;border-radius:var(--radius-panel);border:none;background:var(--accent-red);color:#fff;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--motion-default),transform var(--motion-instant)}.stop-btn:hover{background:var(--color-danger-hover)}.stop-btn:active{transform:scale(.97)}.resume-btn{flex-shrink:0;padding:6px 14px;border-radius:var(--radius-panel);border:none;background:var(--surface-action);color:var(--text-on-action);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--motion-default),color var(--motion-default),transform var(--motion-instant)}.resume-btn:hover{background:var(--surface-hover-light)}.resume-btn:active{transform:scale(.97)}.vehicle-attachment-chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 14px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--hover-overlay);color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast)}.vehicle-attachment-chip:hover{background:var(--btn-bg-hover);color:var(--text-primary)}.vehicle-attachment-chip--open{color:var(--text-primary);background:var(--btn-bg-hover)}.vehicle-attachment-chip-preview{width:32px;height:22px;border-radius:4px;overflow:hidden;background:#0d0d0d;flex-shrink:0;line-height:0}.vehicle-attachment-chip-preview svg{width:100%;height:100%;display:block}.attach-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.attach-popover{position:fixed;z-index:201;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;box-shadow:0 8px 32px #0000008c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.attach-popover--list{width:220px;padding:5px}.attach-list-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:none;border-radius:8px;background:transparent;color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:background var(--motion-fast)}.attach-list-item:hover{background:var(--hover-overlay)}.attach-list-item--selected{background:var(--hover-overlay-strong)}.attach-list-icon{width:16px;height:16px;flex-shrink:0;color:var(--text-secondary)}.attach-list-name{flex:1}.attach-list-check{font-size:16px;color:var(--accent-blue);flex-shrink:0}.attach-chip-icon{width:13px;height:13px;flex-shrink:0;opacity:.6}.vehicle-task-progress{display:flex;flex-direction:row;align-items:center;gap:7px;width:100%;margin-top:3px}.vehicle-task-progress--header{margin-top:5px}.vehicle-task-progress-bar{flex:1;height:4px;border-radius:2px;background:#ffffff14;overflow:hidden}.vehicle-task-progress-fill{height:100%;border-radius:2px;transition:width .4s ease}.vehicle-task-progress-fill--active{background:#3d8a62}.vehicle-task-progress-fill--paused{background:#fff3}.vehicle-task-progress-fill--intervention{background:var(--accent-red);opacity:.65}.vehicle-task-progress-label{font-size:10px;font-weight:500;font-family:var(--font-family-mono);color:var(--text-secondary);opacity:.6;line-height:1;white-space:nowrap;flex-shrink:0}.vehicle-banner{position:absolute;top:0;left:0;right:0;z-index:var(--layer-overlay);padding:12px 20px;display:flex;align-items:center;justify-content:center;color:var(--text-on-light);font-size:14px;font-weight:600;box-shadow:var(--shadow-banner);border-radius:var(--radius-panel) var(--radius-panel) 0 0;overflow:hidden}.vehicle-banner-close{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--overlay-on-light);border:none;border-radius:var(--radius-panel);color:var(--text-on-light);cursor:pointer;transition:background var(--motion-default),color var(--motion-default);flex-shrink:0}.vehicle-banner-close:hover{background:var(--overlay-on-light-hover);color:var(--text-on-light-hover)}@media (max-width: 768px){.vehicle-banner{border-radius:0}.vehicle-banner-close{min-width:44px;min-height:44px;width:44px;height:44px;right:14px}}.vehicle-banner--green{background:var(--avatar-green)}.vehicle-banner--purple{background:var(--avatar-purple)}.vehicle-banner--blue{background:var(--avatar-blue)}.vehicle-banner-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.camera-panel{position:absolute;left:50%;transform:translate(-50%);top:56px;width:420px;z-index:var(--layer-overlay);border-radius:var(--radius-panel);overflow:hidden;box-shadow:var(--shadow-panel);border:1px solid var(--border-subtle);background:var(--bg-panel-elevated)}.camera-panel-inner{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border-subtle)}.camera-view{background:var(--bg-panel-elevated);aspect-ratio:4 / 3;min-height:160px}.camera-view-placeholder{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-input);overflow:hidden}.camera-view-img{width:100%;height:100%;object-fit:cover;display:block}.camera-view-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-secondary);font-size:13px;font-weight:500}.camera-view-label{position:absolute;top:8px;left:8px;padding:4px 8px;border-radius:var(--radius-badge);background:#0009;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;z-index:var(--layer-panel)}@media (max-width: 768px){.camera-panel{width:min(420px,calc(100% - 24px));top:56px}}@media (max-width: 480px){.camera-panel{width:calc(100% - 16px);top:52px}.camera-view{min-height:120px}}.new-job-flow{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50}.njf-banner{position:absolute;top:0;left:0;right:0;height:44px;z-index:52;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border)}.njf-banner-title{font-size:13px;font-weight:600;color:var(--text-secondary)}.njf-banner-close{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--hover-overlay);border:none;border-radius:var(--radius-btn);color:var(--text-primary);cursor:pointer;transition:background var(--motion-default)}.njf-banner-close:hover{background:var(--hover-overlay-strong)}.njf-chat{position:absolute;left:20px;top:52px;bottom:20px;width:360px;z-index:51;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel-soft);display:flex;flex-direction:column;overflow:hidden}.njf-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.njf-msg{display:flex;align-items:flex-start}.njf-msg--system{flex-direction:column;align-items:flex-start;gap:8px}.njf-msg--user{justify-content:flex-end}.njf-bubble-body{white-space:pre-line}.njf-typing{display:flex;align-items:center;gap:5px;padding:12px 16px}.njf-typing span{display:block;width:7px;height:7px;border-radius:50%;background:var(--text-secondary);animation:njf-bounce 1.2s infinite ease-in-out}.njf-typing span:nth-child(2){animation-delay:.2s}.njf-typing span:nth-child(3){animation-delay:.4s}@keyframes njf-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.njf-chips{display:flex;flex-direction:column;gap:8px;align-items:flex-end;align-self:stretch}.njf-chip{padding:6px 14px;border-radius:var(--radius-pill);background:transparent;border:1px solid var(--glass-border);color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--motion-default),border-color var(--motion-default)}.njf-chip:hover{background:var(--btn-bg-hover);border-color:var(--text-secondary)}.njf-confirm-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008c;display:flex;align-items:center;justify-content:center}.njf-confirm-modal{background:var(--bg-panel-elevated, var(--glass-bg));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-panel);box-shadow:0 8px 40px #00000080;padding:28px 28px 24px;width:320px;display:flex;flex-direction:column;gap:10px}.njf-confirm-title{font-size:16px;font-weight:700;color:var(--text-primary);margin:0}.njf-confirm-body{font-size:13px;color:var(--text-secondary);line-height:1.5;margin:0}.njf-confirm-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}.njf-confirm-keep{height:36px;padding:0 16px;border-radius:var(--radius-pill);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--motion-default)}.njf-confirm-keep:hover{background:var(--btn-bg-hover)}.njf-confirm-discard{height:36px;padding:0 16px;border-radius:var(--radius-pill);border:none;background:var(--accent-red);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--motion-default)}.njf-confirm-discard:hover{background:var(--color-danger-hover, #c0392b)}.njf-machine-chips{display:flex;flex-direction:column;gap:6px;align-self:stretch}.njf-machine-chip{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-panel);background:transparent;border:1px solid var(--glass-border);color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--motion-default),border-color var(--motion-default);text-align:left}.njf-machine-chip:hover{background:var(--btn-bg-hover)}.njf-machine-chip--selected{background:var(--accent-blue-dim, rgba(59, 130, 246, .15));border-color:var(--accent-blue)}.njf-machine-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.njf-machine-avatar img{width:118%;height:118%;object-fit:contain}.njf-machine-avatar.green{background:var(--avatar-green)}.njf-machine-avatar.purple{background:var(--avatar-purple)}.njf-machine-avatar.blue{background:var(--avatar-blue)}.njf-machine-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.njf-machine-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.njf-machine-status{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-secondary)}.njf-machine-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.njf-machine-status--idle .njf-machine-status-dot{background:#4ade80}.njf-machine-status--active .njf-machine-status-dot{background:var(--accent-blue)}.njf-machine-status--intervention .njf-machine-status-dot{background:var(--accent-red)}.njf-machine-status--paused .njf-machine-status-dot{background:var(--text-secondary)}.njf-machine-status--idle{color:#4ade80}.njf-machine-status--intervention{color:var(--accent-red)}.njf-confirm-job-btn{align-self:stretch;padding:10px 16px;border-radius:var(--radius-pill);background:var(--accent-blue);border:none;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--motion-default);margin-top:4px}.njf-confirm-job-btn:hover{background:var(--accent-blue-hover, #2563eb)}.app-container{flex:1;min-height:100vh;padding:24px;background:radial-gradient(ellipse 120% 80% at 50% 0%,rgba(45,49,54,.5) 0%,transparent 50%),linear-gradient(180deg,#1a1c1e,#141618)}.app-frame{max-width:1400px;margin:0 auto;height:calc(100vh - 48px);min-height:560px;position:relative;background:var(--bg-panel);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);overflow:hidden;border:1px solid var(--border-subtle)}.app-frame .map-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.jobs-panel{position:absolute;left:20px;top:20px;width:360px;z-index:var(--layer-overlay)}@media (max-width: 1024px){.jobs-panel{width:300px}}@media (max-width: 768px){.jobs-panel{left:12px;right:12px;width:calc(100% - 24px)}}.app-frame .chat-panel{position:absolute;left:20px;top:20px;bottom:20px;width:380px;z-index:1;border-radius:var(--radius-panel);box-shadow:0 4px 24px #00000059;border:1px solid var(--glass-border);transition:width .35s cubic-bezier(.4,0,.2,1),top .25s ease}.app-frame.app-frame--vehicle-open .chat-panel{top:142px}.map-top-right-controls{position:absolute;top:20px;right:20px;z-index:var(--layer-overlay);display:flex;gap:8px;align-items:center}.map-top-right-controls--vehicle-view{top:64px}.vehicles-toggle-btn{display:flex;align-items:center;gap:8px;padding:0 12px;height:36px;background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--radius-pill);color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;box-shadow:var(--shadow-btn);transition:background var(--motion-default)}.vehicles-toggle-btn:hover,.vehicles-toggle-btn--active{background:var(--btn-bg-hover)}.vehicles-toggle-stats{display:flex;align-items:center;gap:10px}.vtog-stat{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.vtog-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.vtog-stat--alert{color:var(--accent-red)}.vtog-stat--alert .vtog-dot{background:var(--accent-red)}.vtog-stat--active{color:#3d8a62}.vtog-stat--active .vtog-dot{background:#3d8a62}.vtog-stat--idle .vtog-dot{background:var(--text-secondary);opacity:.5}.estop-btn{display:flex;align-items:center;gap:6px;padding:0 12px;height:36px;background:var(--accent-red);border:none;border-radius:var(--radius-pill);color:#fff;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 4px 24px #00000059;transition:background var(--motion-default),transform var(--motion-instant)}.estop-btn:hover{background:var(--color-danger-hover)}.estop-btn:active{transform:scale(.97)}.estop-btn .material-symbols-outlined{font-size:18px}.vehicles-toggle-wrap{position:relative}.vehicles-toggle-wrap .vehicles-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:calc(100vh - 120px);z-index:var(--layer-overlay);border-radius:var(--radius-panel);box-shadow:0 4px 24px #00000059;border:1px solid var(--glass-border);overflow:hidden}@media (max-width: 1024px){.app-frame .chat-panel{width:280px}}@media (max-width: 768px){.app-container{padding:12px}.app-frame{min-height:400px;height:calc(100vh - 24px)}.app-frame .chat-panel{left:12px;right:12px;top:12px;bottom:12px;width:calc(100% - 24px);z-index:2}.app-frame.app-frame--vehicle-open .chat-panel{top:56px}.vehicles-toggle-wrap .vehicles-panel{width:calc(100vw - 24px);right:auto;left:0;max-height:70vh}}@media (max-width: 480px){.app-container{padding:8px}.app-frame{min-height:300px;height:calc(100vh - 16px)}.app-frame .chat-panel{left:8px;right:8px;top:8px;bottom:8px;width:calc(100% - 16px)}.app-frame.app-frame--vehicle-open .chat-panel{top:52px}}*{box-sizing:border-box;margin:0;padding:0}:root{--black-deep: #000000;--black-overlay: #0d0e10;--black-app-end: #141618;--black-app: #1a1c1e;--black-card: #181818;--black-map: #1e2124;--black-panel: #25282c;--black-elevated: #2d3136;--black-25: #303030;--black-input: #3a3e44;--white-5: rgba(255, 255, 255, .05);--white-20: rgba(255, 255, 255, .2);--white-50: rgba(255, 255, 255, .5);--white-75: rgba(255, 255, 255, .75);--white-100: #ffffff;--lime-100: #3dd430;--blue-100: #3b82f6;--forest-100: #4a8a62;--red-100: #c0392b;--amber-100: #c47d0e;--vehicle-mark: #8ea0d8;--vehicle-mark-light: #6878b4;--vehicle-mark-pill-bg: rgba(142, 160, 216, .16);--vehicle-mark-pill-text: #a8b8e2;--vehicle-steve: #d09a58;--vehicle-steve-light: #a87038;--vehicle-steve-pill-bg: rgba(208, 154, 88, .16);--vehicle-steve-pill-text: #dcb472;--vehicle-unit3: #6eb4ca;--vehicle-unit3-light: #4890a8;--vehicle-unit3-pill-bg: rgba(110, 180, 202, .16);--vehicle-unit3-pill-text: #86c4d6;--danger: #c0392b;--danger-hover: #a93226;--danger-light: #f5a5a0;--scale-100: 4px;--scale-200: 8px;--scale-300: 12px;--scale-400: 16px;--scale-500: 20px;--scale-600: 24px;--scale-700: 28px;--scale-800: 32px;--scale-900: 40px;--font-family-base: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--text-heading: var(--white-100);--text-primary: #e8eaed;--text-secondary: #b0b6bc;--text-caption: var(--white-75);--text-on-action: #000000;--text-success: var(--forest-100);--text-warning: var(--amber-100);--text-error: var(--red-100);--surface-page: var(--black-deep);--surface-app: var(--black-app);--surface-card: var(--black-card);--surface-panel: var(--black-panel);--surface-on-card: var(--black-elevated);--surface-input: var(--black-input);--surface-action: var(--white-100);--surface-user-msg: #3d6b8f;--border-input: rgba(255, 255, 255, .06);--border-subtle: rgba(255, 255, 255, .08);--border-glass: rgba(255, 255, 255, .1);--border-default: var(--white-50);--border-selected: var(--white-100);--border-danger: var(--red-100);--border-success: var(--forest-100);--radius-tag: var(--scale-100);--radius-badge: 4px;--radius-btn: 8px;--radius-default:8px;--radius-bubble: 10px;--radius-panel: 10px;--radius-pill: 999px;--elevation-bubble: 0 1px 3px rgba(0, 0, 0, .3);--elevation-banner: 0 1px 4px rgba(0, 0, 0, .35);--elevation-button: 0 1px 4px rgba(0, 0, 0, .4);--elevation-soft: 0 2px 10px rgba(0, 0, 0, .45);--elevation-panel: 0 2px 12px rgba(0, 0, 0, .55);--elevation-focus: 0 0 0 2px rgba(255, 255, 255, .35);--motion-instant: .1s;--motion-fast: .15s;--motion-default: .2s;--motion-moderate: .25s;--motion-slow: .35s;--motion-panel: .6s;--easing-standard: cubic-bezier(.4, 0, .2, 1);--easing-enter: cubic-bezier(0, 0, .2, 1);--easing-exit: cubic-bezier(.4, 0, 1, 1);--easing-map: cubic-bezier(.25, .1, .25, 1);--layer-base: 0;--layer-panel: 1;--layer-overlay: 2;--layer-bar: 4;--layer-fab: 10;--layer-dropdown: 20;--color-brand-green: var(--vehicle-steve);--color-brand-green-light: var(--vehicle-steve-light);--color-brand-green-pill-bg: var(--vehicle-steve-pill-bg);--color-brand-green-pill-text: var(--vehicle-steve-pill-text);--color-brand-purple: var(--vehicle-mark);--color-brand-purple-light: var(--vehicle-mark-light);--color-brand-purple-pill-bg: var(--vehicle-mark-pill-bg);--color-brand-purple-pill-text:var(--vehicle-mark-pill-text);--color-brand-blue: var(--vehicle-unit3);--color-brand-blue-light: var(--vehicle-unit3-light);--color-brand-blue-pill-bg: var(--vehicle-unit3-pill-bg);--color-brand-blue-pill-text: var(--vehicle-unit3-pill-text);--color-danger: var(--danger);--color-danger-hover: var(--danger-hover);--color-danger-light: var(--danger-light);--text-on-primary: var(--text-on-action);--surface-hover-light: var(--text-primary);--accent-green: var(--vehicle-steve);--accent-purple: var(--vehicle-mark);--accent-blue: var(--vehicle-unit3);--accent-red: var(--danger);--accent-pink: #e8b4bc;--avatar-green: var(--vehicle-steve-light);--avatar-purple: var(--vehicle-mark-light);--avatar-blue: var(--vehicle-unit3-light);--pill-green-bg: var(--vehicle-steve-pill-bg);--pill-green-text: var(--vehicle-steve-pill-text);--pill-purple-bg: var(--vehicle-mark-pill-bg);--pill-purple-text: var(--vehicle-mark-pill-text);--pill-blue-bg: var(--vehicle-unit3-pill-bg);--pill-blue-text: var(--vehicle-unit3-pill-text);--font-size-xs: 11px;--font-size-sm: 12px;--font-size-body: 14px;--font-size-body-lg: 15px;--font-size-title-sm: 13px;--font-size-title: 15px;--font-size-heading: 20px;--font-size-heading-lg: 22px;--font-size-icon-sm: 20px;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-heavy: 800;--line-height-tight: 1;--line-height-snug: 1.2;--line-height-normal: 1.3;--line-height-relaxed: 1.4;--line-height-body: 1.45;--bg-app: var(--surface-app);--bg-app-gradient-end:var(--black-app-end);--bg-panel: var(--surface-panel);--bg-panel-elevated: var(--surface-on-card);--bg-input: var(--surface-input);--bg-map: var(--black-map);--bg-overlay-dark: var(--black-overlay);--bg-overlay-darker: var(--black-app);--text-on-dark: var(--text-primary);--text-on-light: rgba(0, 0, 0, .85);--text-on-light-hover:rgba(0, 0, 0, .9);--intervention-text: #b71c1c;--user-message-bg: var(--surface-user-msg);--user-message-border:rgba(91, 155, 213, .5);--shadow-panel: var(--elevation-panel);--shadow-panel-soft: var(--elevation-soft);--shadow-btn: var(--elevation-button);--shadow-bubble: var(--elevation-bubble);--shadow-banner: var(--elevation-banner);--shadow-focus-offset: var(--elevation-focus);--focus-ring: 0 0 0 2px var(--accent-blue);--focus-ring-offset: var(--shadow-focus-offset);--btn-bg: var(--surface-input);--btn-bg-hover: #4d5158;--btn-border: var(--border-subtle);--hover-overlay: rgba(255, 255, 255, .06);--hover-overlay-strong: rgba(255, 255, 255, .12);--overlay-on-light: rgba(0, 0, 0, .2);--overlay-on-light-hover: rgba(0, 0, 0, .35);--glass-bg: rgba(28, 31, 35, .82);--glass-header-bg: rgba(0, 0, 0, .38);--glass-border: var(--border-glass)}.ds-btn-reset{border:none;padding:0;font:inherit;color:inherit;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ds-btn-base{background:var(--btn-bg);border:1px solid var(--btn-border);color:var(--text-primary);border-radius:var(--radius-btn);transition:background var(--motion-default),color var(--motion-default)}.ds-btn-base:hover:not(:disabled){background:var(--btn-bg-hover)}.ds-btn-base:focus-visible{outline:none;box-shadow:var(--focus-ring-offset)}.ds-btn-base:disabled{opacity:.4;cursor:not-allowed}.ds-btn-icon{border-radius:var(--radius-panel);background:var(--btn-bg);border:1px solid var(--btn-border);color:var(--text-primary);transition:background var(--motion-default),color var(--motion-default)}.ds-btn-icon:hover{background:var(--btn-bg-hover)}.ds-btn-icon:focus-visible{outline:none;box-shadow:var(--focus-ring-offset)}.ds-btn-overlay-on-light{background:var(--overlay-on-light);color:var(--text-on-light)}.ds-btn-overlay-on-light:hover{background:var(--overlay-on-light-hover);color:var(--text-on-light-hover)}.ds-hover-overlay{transition:background var(--motion-fast)}.ds-hover-overlay:hover,.ds-hover-overlay.selected{background:var(--hover-overlay)}.ds-text-caption{font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);line-height:var(--line-height-snug)}.ds-text-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug)}.ds-text-body{font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-body)}.ds-text-body-semibold{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body)}.ds-text-title-sm{font-size:var(--font-size-title-sm);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug)}.ds-text-title{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}.ds-text-heading{font-size:var(--font-size-heading);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}.ds-text-heading-lg{font-size:var(--font-size-heading-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}body{font-family:var(--font-family-base);font-size:var(--font-size-body);line-height:var(--line-height-body);background:var(--bg-app);color:var(--text-primary);min-height:100vh;overflow:hidden}#root{min-height:100vh;display:flex;flex-direction:column}[data-theme=light]{--black-deep: #f0f2f5;--black-overlay: #edf1f6;--black-app-end: #f0f2f5;--black-app: #f5f7fa;--black-card: #ffffff;--black-map: #e0e8f0;--black-panel: #edf1f6;--black-elevated: #e2e8f0;--black-25: #cdd4dc;--black-input: #d4dbe5;--white-5: rgba(0, 0, 0, .04);--white-20: rgba(0, 0, 0, .14);--white-50: rgba(0, 0, 0, .45);--white-75: rgba(0, 0, 0, .7);--white-100: #0d1117;--lime-100: #2e8b22;--blue-100: #2563eb;--forest-100: #217a1c;--red-100: #dc2626;--amber-100: #c27c00;--vehicle-mark: #2a3d8a;--vehicle-mark-light: #dde3f8;--vehicle-mark-pill-bg: #ccd4f4;--vehicle-mark-pill-text: #1e2c6e;--vehicle-steve: #7a4010;--vehicle-steve-light: #fce8d4;--vehicle-steve-pill-bg: #f5d8b4;--vehicle-steve-pill-text: #5c2e0a;--vehicle-unit3: #1a5068;--vehicle-unit3-light: #d0e8f0;--vehicle-unit3-pill-bg: #b8d8e8;--vehicle-unit3-pill-text: #123c50;--danger: #dc2626;--danger-hover: #b91c1c;--danger-light: #fecaca;--text-heading: #0d1117;--text-primary: #1c2530;--text-secondary: #445064;--text-caption: rgba(0, 0, 0, .6);--text-on-action: #ffffff;--text-success: var(--forest-100);--text-warning: var(--amber-100);--text-error: var(--red-100);--surface-page: var(--black-deep);--surface-app: var(--black-app);--surface-card: var(--black-card);--surface-panel: var(--black-panel);--surface-on-card: var(--black-elevated);--surface-input: var(--black-input);--surface-action: #1c2530;--surface-user-msg: #1d4ed8;--border-input: rgba(0, 0, 0, .08);--border-subtle: rgba(0, 0, 0, .1);--border-glass: rgba(0, 0, 0, .12);--border-default: rgba(0, 0, 0, .45);--border-selected: #0d1117;--border-danger: var(--red-100);--border-success: var(--forest-100);--elevation-bubble: 0 1px 3px rgba(0, 0, 0, .1);--elevation-banner: 0 2px 8px rgba(0, 0, 0, .1);--elevation-button: 0 1px 4px rgba(0, 0, 0, .12);--elevation-soft: 0 4px 16px rgba(0, 0, 0, .1);--elevation-panel: 0 4px 24px rgba(0, 0, 0, .14);--elevation-focus: 0 0 0 2px rgba(37, 99, 235, .45);--avatar-green: var(--vehicle-steve-pill-bg);--avatar-purple: var(--vehicle-mark-pill-bg);--avatar-blue: var(--vehicle-unit3-pill-bg);--btn-bg: #e8edf3;--btn-bg-hover: #d8dfe8;--btn-border: rgba(0, 0, 0, .12);--hover-overlay: rgba(0, 0, 0, .04);--hover-overlay-strong: rgba(0, 0, 0, .08);--overlay-on-light: rgba(0, 0, 0, .1);--overlay-on-light-hover: rgba(0, 0, 0, .2);--focus-ring: 0 0 0 2px #2563eb;--focus-ring-offset: 0 0 0 2px rgba(37, 99, 235, .45);--glass-bg: rgba(255, 255, 255, .72);--glass-header-bg: rgba(255, 255, 255, .55);--glass-border: rgba(0, 0, 0, .1);--bg-app: var(--surface-app);--bg-app-gradient-end:#f0f2f5;--bg-panel: var(--surface-panel);--bg-panel-elevated: var(--surface-on-card);--bg-input: var(--surface-input);--bg-map: var(--black-map);--bg-overlay-dark: rgba(0, 0, 0, .08);--bg-overlay-darker: rgba(0, 0, 0, .14);--text-on-dark: var(--text-primary);--user-message-bg: var(--surface-user-msg);--user-message-border:rgba(29, 78, 216, .4);--surface-hover-light:#374151;--intervention-text: #b91c1c}.theme-toggle{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:var(--layer-panel);display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-pill);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--elevation-button);transition:background var(--motion-default),color var(--motion-default);white-space:nowrap}.theme-toggle:hover{color:var(--text-primary);background:var(--glass-bg)}.theme-toggle .material-symbols-outlined{font-size:16px}
