.dock-status__title[data-v-c5f75e8f]{font-size:14px;font-weight:500;color:var(--app-text);margin-bottom:12px}.dock-status__row[data-v-c5f75e8f]{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px}.dock-status__dot[data-v-c5f75e8f]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dock-status__label[data-v-c5f75e8f]{color:var(--app-text-secondary)}.dock-status__value[data-v-c5f75e8f]{margin-left:auto;color:var(--app-text);font-variant-numeric:tabular-nums}.device-count__header[data-v-beb057f4]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.device-count__label[data-v-beb057f4]{font-size:13px;color:var(--app-text-secondary)}.device-count__total[data-v-beb057f4]{font-size:18px;font-weight:700;color:var(--app-text);font-variant-numeric:tabular-nums}.device-count__bar[data-v-beb057f4]{height:4px;background:var(--app-border);border-radius:2px;overflow:hidden;margin-bottom:4px}.device-count__bar-fill[data-v-beb057f4]{height:100%;background:var(--app-primary);border-radius:2px;transition:width .3s}.device-count__legend[data-v-beb057f4]{display:flex;justify-content:space-between;font-size:11px;color:var(--app-text-muted);font-variant-numeric:tabular-nums}.stat-grid[data-v-abbcf83f]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-grid__item[data-v-abbcf83f]{display:flex;flex-direction:column;gap:4px}.stat-grid__value[data-v-abbcf83f]{font-size:22px;font-weight:700;color:var(--app-text);font-variant-numeric:tabular-nums}.stat-grid__label[data-v-abbcf83f]{font-size:12px;color:var(--app-text-muted);display:flex;align-items:center;gap:4px}.data-result__title[data-v-e5dc6596]{font-size:14px;font-weight:500;color:var(--app-text);margin-bottom:12px}.data-result__grid[data-v-e5dc6596]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.data-result__item[data-v-e5dc6596]{display:flex;flex-direction:column;gap:4px}.data-result__value[data-v-e5dc6596]{font-size:22px;font-weight:700;color:var(--app-text);font-variant-numeric:tabular-nums}.data-result__label[data-v-e5dc6596]{font-size:12px;color:var(--app-text-muted);display:flex;align-items:center;gap:4px}.asset-panel__title[data-v-3dc13a3f]{font-size:16px;font-weight:600;color:var(--app-text);margin-bottom:16px}.asset-panel__divider[data-v-3dc13a3f]{height:1px;background:var(--app-border);margin:16px 0}.asset-panel__devices[data-v-3dc13a3f]{display:flex;flex-direction:column;gap:16px}.device-map[data-v-25c7ad91]{width:100%;height:100%;position:relative}.device-map[data-v-25c7ad91] .cesium-widget-credits{display:none}.device-popup[data-v-25c7ad91]{position:absolute;z-index:100;transform:translate(-50%,-100%);background:#0e121ceb;border:1px solid rgba(45,140,240,.5);border-radius:8px;padding:12px 16px;min-width:200px;color:#e0e8f0;font-size:13px;line-height:1.6;box-shadow:0 4px 20px #0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto}.device-popup[data-v-25c7ad91]:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(45,140,240,.5)}.popup-close[data-v-25c7ad91]{position:absolute;top:4px;right:8px;background:none;border:none;color:#8a9ab5;font-size:18px;cursor:pointer;line-height:1;padding:0}.popup-close[data-v-25c7ad91]:hover{color:#fff}.popup-name[data-v-25c7ad91]{font-size:14px;font-weight:600;color:#fff;margin-bottom:8px;padding-right:16px;word-break:break-all}.popup-row[data-v-25c7ad91]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.popup-label[data-v-25c7ad91]{color:#6a7a8e;min-width:30px;flex-shrink:0}.popup-value[data-v-25c7ad91]{color:#c8d8e8;word-break:break-all}.status-online[data-v-25c7ad91]{color:#19be6b}.status-offline[data-v-25c7ad91]{color:#f5222d}.task-chart__title[data-v-fad81c11],.execution-chart__title[data-v-14f8351c]{font-size:13px;font-weight:500;color:var(--app-text);margin-bottom:8px}.flight-data__title[data-v-d1d995e6]{font-size:14px;font-weight:500;color:var(--app-text);margin-bottom:12px}.flight-data__grid[data-v-d1d995e6]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.flight-data__item[data-v-d1d995e6]{display:flex;flex-direction:column;gap:2px}.flight-data__value[data-v-d1d995e6]{font-size:20px;font-weight:700;color:var(--app-text);font-variant-numeric:tabular-nums}.flight-data__label[data-v-d1d995e6]{font-size:11px;color:var(--app-text-muted);display:flex;align-items:center;gap:4px}.task-panel__title[data-v-a7ac20f0]{font-size:16px;font-weight:600;color:var(--app-text);margin-bottom:16px}.task-panel__divider[data-v-a7ac20f0]{height:1px;background:var(--app-border);margin:16px 0}.time-range-selector[data-v-8fd8738c]{display:flex;gap:4px;background:#0d1117cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--app-border);border-radius:6px;padding:4px}.time-range-selector__btn[data-v-8fd8738c]{padding:6px 12px;font-size:12px;color:var(--app-text-secondary);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s}.time-range-selector__btn[data-v-8fd8738c]:hover{color:var(--app-text);background:#ffffff0f}.time-range-selector__btn--active[data-v-8fd8738c]{color:var(--app-text);background:var(--app-primary)}.dashboard-layout[data-v-105da609]{display:flex;height:100vh;width:100%;overflow:hidden;background:var(--app-bg)}.dashboard-layout__left[data-v-105da609],.dashboard-layout__right[data-v-105da609]{flex-shrink:0;overflow-y:auto;background:var(--app-bg-panel);border-right:1px solid var(--app-border);padding:16px}.dashboard-layout__left[data-v-105da609]{width:320px}.dashboard-layout__right[data-v-105da609]{width:360px;border-right:none;border-left:1px solid var(--app-border)}.dashboard-layout__center[data-v-105da609]{flex:1;position:relative;min-width:0}.dashboard-layout__time-selector[data-v-105da609]{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:10}.dashboard-layout__loading[data-v-105da609],.dashboard-layout__error[data-v-105da609]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--app-text-muted);font-size:14px}.dashboard-layout__error[data-v-105da609]{color:var(--app-danger)}.sdk-loading-mask[data-v-f104faf7]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--app-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:99998;gap:16px;color:var(--app-text-secondary)}.sdk-loading-spinner[data-v-f104faf7]{width:40px;height:40px;border:3px solid var(--app-border);border-top-color:var(--app-primary, #1a73e8);border-radius:50%;animation:sdk-spin-f104faf7 .8s linear infinite}@keyframes sdk-spin-f104faf7{to{transform:rotate(360deg)}}.sdk-loading-text[data-v-f104faf7]{margin:0;font-size:14px}.sdk-error-panel[data-v-f104faf7]{padding:40px;color:var(--app-danger, #ff4d4f);word-break:break-all}.status-badge[data-v-c9242392]{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:500}.status-badge--online[data-v-c9242392]{color:#52c41a;background:#52c41a1f}.status-badge--offline[data-v-c9242392]{color:#8c8c8c;background:#8c8c8c1f}.devices-view[data-v-5b4b8fd4]{padding:24px}.devices-view__header[data-v-5b4b8fd4]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.devices-view__header h2[data-v-5b4b8fd4]{font-size:20px;font-weight:600;color:var(--app-text)}.device-table[data-v-5b4b8fd4]{width:100%;border-collapse:collapse;background:var(--app-bg-card);border-radius:8px;overflow:hidden;border:1px solid var(--app-border)}.device-table th[data-v-5b4b8fd4],.device-table td[data-v-5b4b8fd4]{padding:10px 14px;text-align:left;border-bottom:1px solid var(--app-border);font-size:13px}.device-table th[data-v-5b4b8fd4]{color:var(--app-text-muted);font-weight:500}.device-table td[data-v-5b4b8fd4]{color:var(--app-text)}.sn[data-v-5b4b8fd4]{font-family:monospace;font-size:12px}.time[data-v-5b4b8fd4]{font-family:monospace;font-size:12px;white-space:nowrap}.state-message[data-v-5b4b8fd4]{padding:32px;text-align:center;color:var(--app-text-muted)}.state-message--error[data-v-5b4b8fd4]{color:#ff4d4f}.btn-cockpit[data-v-5b4b8fd4]{padding:3px 10px;font-size:12px;border:1px solid var(--app-primary, #1a73e8);background:transparent;color:var(--app-primary, #1a73e8);border-radius:4px;cursor:pointer;transition:background .15s}.btn-cockpit[data-v-5b4b8fd4]:hover{background:#1a73e81a}.no-action[data-v-5b4b8fd4]{color:var(--app-text-muted);font-size:12px}.device-manager-page[data-v-75970337]{position:relative;width:100%;height:100%;display:flex;flex-direction:column}.sdk-container[data-v-75970337]{flex:1;width:100%;min-height:0;background:#fff}.device-selector[data-v-b2d20e01]{height:100%;display:flex;flex-direction:row;overflow:hidden}.selector-panel[data-v-b2d20e01]{width:340px;min-width:300px;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--app-border);background:var(--app-bg)}.map-panel[data-v-b2d20e01]{flex:1;min-width:0;position:relative}.selector-header[data-v-b2d20e01]{padding:var(--space-xl) var(--space-xl) var(--space-lg);flex-shrink:0}.selector-title[data-v-b2d20e01]{font-size:20px;font-weight:600;color:var(--app-text);margin:0 0 4px}.selector-subtitle[data-v-b2d20e01]{font-size:13px;color:var(--app-text-muted);margin:0}.selector-state[data-v-b2d20e01]{padding:40px var(--space-xl);text-align:center;color:var(--app-text-muted);font-size:14px}.selector-state--error[data-v-b2d20e01]{color:var(--app-danger)}.loading-dot[data-v-b2d20e01]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--app-primary);margin-right:8px;animation:pulse-b2d20e01 1s ease-in-out infinite}@keyframes pulse-b2d20e01{0%,to{opacity:.3}50%{opacity:1}}.dock-list[data-v-b2d20e01]{flex:1;overflow-y:auto;padding:0 var(--space-xl) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.dock-card[data-v-b2d20e01]{flex-shrink:0;background:var(--app-bg-card);border:1px solid var(--app-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--transition-base);cursor:pointer}.dock-card[data-v-b2d20e01]:hover{border-color:var(--app-border-strong)}.dock-info[data-v-b2d20e01]{padding:var(--space-md) var(--space-lg)}.dock-header[data-v-b2d20e01]{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.dock-icon[data-v-b2d20e01]{color:var(--app-text-secondary);display:flex;align-items:center;flex-shrink:0}.dock-name[data-v-b2d20e01]{font-size:14px;font-weight:500;color:var(--app-text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-meta[data-v-b2d20e01]{display:flex;align-items:center;gap:var(--space-sm);font-size:12px;margin-top:4px;padding-left:26px}.meta-label[data-v-b2d20e01]{color:var(--app-text-muted);min-width:28px}.meta-value[data-v-b2d20e01]{color:var(--app-text-secondary)}.mono[data-v-b2d20e01]{font-family:var(--font-mono);font-size:11px}.dock-divider[data-v-b2d20e01]{height:1px;background:var(--app-border);margin:0 var(--space-lg)}.drone-section[data-v-b2d20e01]{padding:var(--space-md) var(--space-lg)}.drone-row[data-v-b2d20e01]{display:flex;flex-direction:column;gap:var(--space-sm)}.drone-info[data-v-b2d20e01]{display:flex;align-items:center;gap:var(--space-sm)}.drone-icon[data-v-b2d20e01]{color:var(--app-primary);display:flex;align-items:center;flex-shrink:0}.drone-detail[data-v-b2d20e01]{flex:1;min-width:0}.drone-name[data-v-b2d20e01]{display:block;font-size:13px;color:var(--app-text);font-weight:500}.drone-sn[data-v-b2d20e01]{display:block;font-size:11px;color:var(--app-text-muted);margin-top:1px}.drone-status[data-v-b2d20e01]{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.battery[data-v-b2d20e01]{font-size:12px;color:var(--app-text-secondary);font-family:var(--font-mono)}.drone-actions[data-v-b2d20e01]{display:flex;gap:var(--space-sm)}.btn-action[data-v-b2d20e01]{flex:1;padding:8px 0;font-size:13px;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.btn-action--primary[data-v-b2d20e01]{border:1px solid var(--app-primary);background:var(--app-primary-bg);color:var(--app-primary)}.btn-action--primary[data-v-b2d20e01]:hover{background:var(--app-primary);color:var(--app-text-inverse)}.btn-action--secondary[data-v-b2d20e01]{border:1px solid var(--app-border);background:transparent;color:var(--app-text-secondary)}.btn-action--secondary[data-v-b2d20e01]:hover{border-color:var(--app-border-strong);color:var(--app-text);background:var(--app-bg-card-hover)}.no-drone[data-v-b2d20e01]{padding:var(--space-md) var(--space-lg);font-size:12px;color:var(--app-text-muted);text-align:center}.cockpit-selector-page[data-v-d198c1ac]{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--app-bg)}.cockpit-page[data-v-d198c1ac]{position:relative;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column}.btn-back[data-v-d198c1ac]{position:absolute;top:12px;left:12px;z-index:100;display:flex;align-items:center;gap:4px;padding:6px 12px 6px 8px;font-size:12px;font-weight:500;color:var(--app-text-secondary);background:var(--app-bg-card);border:1px solid var(--app-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-back[data-v-d198c1ac]:hover{color:var(--app-text);background:var(--app-bg-card-hover);border-color:var(--app-border-strong)}.fh2-container[data-v-d198c1ac]{flex:1;display:flex;flex-direction:column;min-height:0}.fh2-container .project-details[data-v-d198c1ac]{position:relative;width:100%;display:flex;flex:1;overflow:hidden}.fh2-container .right-micro-app[data-v-d198c1ac]{position:relative;display:flex;flex:1}.fh2-container .maps-micro-app[data-v-d198c1ac]{display:flex;flex:1;height:100%}.fh2-container .map-app-placeholder[data-v-d198c1ac]{flex:1;position:relative;display:flex;flex-direction:column;height:100%}.fh2-container .map-app-container[data-v-d198c1ac]{height:100%;min-height:0}.fh2-container .project-right[data-v-d198c1ac]{display:flex;flex-direction:column;height:100%}#cockpit-app-container[data-v-d198c1ac]{height:100%}.fh2-container[data-v-d198c1ac] #__qiankun_microapp_wrapper_for_cockpit_app__,.fh2-container[data-v-d198c1ac] #__qiankun_microapp_wrapper_for_cockpit_app__>div{height:100%!important}.fh2-container[data-v-d198c1ac] #project-app-container>div,.fh2-container[data-v-d198c1ac] .map-app-container>div{width:100%;height:100%}.cockpit-footer-bar[data-v-d198c1ac]{flex-shrink:0;min-height:0}.dw-sdk-container[data-v-d198c1ac]{flex:1;position:relative;min-height:0;overflow:hidden}.dw-map-layer[data-v-d198c1ac]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.dw-map-layer[data-v-d198c1ac]>div{width:100%;height:100%}.dw-realtime-layer[data-v-d198c1ac]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.dw-realtime-layer[data-v-d198c1ac] #__qiankun_microapp_wrapper_for_real_time_app__,.dw-realtime-layer[data-v-d198c1ac] #__qiankun_microapp_wrapper_for_real_time_app__>div{height:100%!important;pointer-events:none}.dw-realtime-layer[data-v-d198c1ac] #__qiankun_microapp_wrapper_for_real_time_app__ .real-time-wrapper{pointer-events:auto}.dw-selector-cover[data-v-d198c1ac]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--app-bg)}.dw-overlay-header[data-v-d198c1ac]{position:absolute;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--app-bg-card, #1a1a2e);border-bottom:1px solid var(--app-border)}.dw-overlay-title[data-v-d198c1ac]{font-size:14px;font-weight:600;color:var(--app-text)}.dw-overlay-close[data-v-d198c1ac]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-base)}.dw-overlay-close[data-v-d198c1ac]:hover{color:var(--app-text);background:var(--app-bg-card-hover, rgba(255, 255, 255, .08))}.dw-overlay-state[data-v-d198c1ac]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:55;display:flex;align-items:center;justify-content:center;padding:24px 16px;text-align:center;color:var(--app-text-muted);font-size:13px;background:var(--app-bg, #0d0d1a)}.dw-overlay-state--error[data-v-d198c1ac]{color:var(--app-danger, #f56c6c)}.dw-loading-dot[data-v-d198c1ac]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--app-primary);margin-right:8px;animation:dw-pulse-d198c1ac 1s ease-in-out infinite}@keyframes dw-pulse-d198c1ac{0%,to{opacity:.3}50%{opacity:1}}.concat-overlay[data-v-d24dd69a]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.concat-dialog[data-v-d24dd69a]{width:440px;max-width:90vw;background:var(--app-bg-panel);border:1px solid var(--app-border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0006;display:flex;flex-direction:column}.dialog-header[data-v-d24dd69a]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--app-border)}.dialog-title[data-v-d24dd69a]{font-size:16px;font-weight:600;color:var(--app-text);margin:0}.dialog-close[data-v-d24dd69a]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-base)}.dialog-close[data-v-d24dd69a]:hover{background:var(--app-hover-bg);color:var(--app-danger)}.dialog-body[data-v-d24dd69a]{padding:20px;display:flex;flex-direction:column;gap:16px}.selected-info[data-v-d24dd69a]{display:flex;flex-direction:column;gap:8px}.info-label[data-v-d24dd69a]{font-size:13px;color:var(--app-text-muted)}.selected-list[data-v-d24dd69a]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto}.selected-item[data-v-d24dd69a]{font-size:13px;color:var(--app-text);padding:4px 8px;background:var(--app-bg-surface);border-radius:var(--radius-sm)}.form-field[data-v-d24dd69a]{display:flex;flex-direction:column;gap:6px}.field-label[data-v-d24dd69a]{font-size:13px;color:var(--app-text-muted);font-weight:500}.field-input[data-v-d24dd69a]{padding:8px 12px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:14px;outline:none;transition:border-color var(--transition-base)}.field-input[data-v-d24dd69a]:focus{border-color:var(--app-primary)}.field-input[data-v-d24dd69a]::placeholder{color:var(--app-text-muted);opacity:.6}.field-error[data-v-d24dd69a]{font-size:12px;color:var(--app-danger)}.dialog-footer[data-v-d24dd69a]{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--app-border)}.btn[data-v-d24dd69a]{padding:8px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-base);border:1px solid transparent}.btn--ghost[data-v-d24dd69a]{background:transparent;border-color:var(--app-border);color:var(--app-text-muted)}.btn--ghost[data-v-d24dd69a]:hover{background:var(--app-hover-bg);color:var(--app-text)}.btn--primary[data-v-d24dd69a]{background:var(--app-primary);color:#fff;border-color:var(--app-primary)}.btn--primary[data-v-d24dd69a]:hover{opacity:.9}.btn--primary[data-v-d24dd69a]:disabled{opacity:.5;cursor:not-allowed}.dialog-overlay[data-v-67d7bbfa]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-card[data-v-67d7bbfa]{width:420px;max-width:90vw;max-height:70vh;display:flex;flex-direction:column;background:var(--app-bg-panel);border:1px solid var(--app-border);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0006}.dialog-header[data-v-67d7bbfa]{display:flex;align-items:center;gap:10px;padding:20px 24px 0}.dialog-icon[data-v-67d7bbfa]{color:var(--app-danger);flex-shrink:0}.dialog-title[data-v-67d7bbfa]{font-size:16px;font-weight:600;color:var(--app-text);margin:0}.dialog-body[data-v-67d7bbfa]{padding:16px 24px;overflow-y:auto;min-height:0}.dialog-message[data-v-67d7bbfa]{font-size:13px;color:var(--app-text-secondary);margin:0 0 12px;line-height:1.5}.wayline-list[data-v-67d7bbfa]{list-style:none;padding:0;margin:0;max-height:180px;overflow-y:auto;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface)}.wayline-item[data-v-67d7bbfa]{padding:8px 12px;font-size:13px;color:var(--app-text);border-bottom:1px solid var(--app-border)}.wayline-item[data-v-67d7bbfa]:last-child{border-bottom:none}.dialog-footer[data-v-67d7bbfa]{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 20px}.btn[data-v-67d7bbfa]{padding:8px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-base);border:1px solid transparent}.btn[data-v-67d7bbfa]:disabled{opacity:.5;cursor:not-allowed}.btn--ghost[data-v-67d7bbfa]{background:var(--app-bg-surface);border-color:var(--app-border);color:var(--app-text-secondary)}.btn--ghost[data-v-67d7bbfa]:hover:not(:disabled){background:var(--app-bg-card);border-color:var(--app-border-strong)}.btn--danger[data-v-67d7bbfa]{background:var(--app-danger);color:#fff;box-shadow:0 2px 8px #f871714d}.btn--danger[data-v-67d7bbfa]:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 4px 12px #f8717166}.dialog-overlay[data-v-51f820f6]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-card[data-v-51f820f6]{width:460px;max-width:90vw;background:var(--app-bg-panel);border:1px solid var(--app-border);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0006}.dialog-header[data-v-51f820f6]{display:flex;align-items:center;gap:10px;padding:20px 24px 0}.dialog-icon[data-v-51f820f6]{color:var(--app-primary);flex-shrink:0}.dialog-title[data-v-51f820f6]{font-size:16px;font-weight:600;color:var(--app-text);margin:0}.dialog-body[data-v-51f820f6]{padding:16px 24px}.drop-zone[data-v-51f820f6]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 20px;border:2px dashed var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);transition:all var(--transition-base);cursor:pointer}.drop-zone--active[data-v-51f820f6]{border-color:var(--app-primary);background:var(--app-primary-bg)}.drop-zone--has-file[data-v-51f820f6]{flex-direction:row;padding:16px 20px;gap:12px}.drop-error[data-v-51f820f6]{margin:8px 0 0;font-size:12px;color:var(--app-danger)}.drop-icon[data-v-51f820f6]{color:var(--app-text-muted)}.drop-text[data-v-51f820f6]{font-size:13px;color:var(--app-text-secondary);margin:0}.drop-btn[data-v-51f820f6]{padding:6px 14px;border-radius:var(--radius-md);background:var(--app-primary);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-base)}.drop-btn[data-v-51f820f6]:hover{background:var(--app-primary-hover)}.drop-btn--small[data-v-51f820f6]{padding:4px 10px;font-size:12px;background:var(--app-bg-card);color:var(--app-text-secondary);border:1px solid var(--app-border);margin-left:auto}.drop-btn--small[data-v-51f820f6]:hover{background:var(--app-bg-surface);border-color:var(--app-border-strong);color:var(--app-text)}.file-input[data-v-51f820f6]{display:none}.file-icon[data-v-51f820f6]{color:var(--app-primary);flex-shrink:0}.file-info[data-v-51f820f6]{display:flex;flex-direction:column;gap:2px;min-width:0}.file-name[data-v-51f820f6]{font-size:13px;font-weight:500;color:var(--app-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size[data-v-51f820f6]{font-size:11px;color:var(--app-text-muted)}.form-field[data-v-51f820f6]{margin-top:16px}.form-label[data-v-51f820f6]{display:block;font-size:12px;font-weight:500;color:var(--app-text-secondary);margin-bottom:6px}.form-input[data-v-51f820f6]{width:100%;padding:8px 12px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:13px;outline:none;transition:all var(--transition-base)}.form-input[data-v-51f820f6]:hover{border-color:var(--app-border-strong)}.form-input[data-v-51f820f6]:focus{border-color:var(--app-primary);box-shadow:0 0 0 2px var(--app-primary-bg)}.form-input[data-v-51f820f6]::placeholder{color:var(--app-text-muted)}.dialog-footer[data-v-51f820f6]{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 20px}.btn[data-v-51f820f6]{padding:8px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-base);border:1px solid transparent}.btn[data-v-51f820f6]:disabled{opacity:.5;cursor:not-allowed}.btn--ghost[data-v-51f820f6]{background:var(--app-bg-surface);border-color:var(--app-border);color:var(--app-text-secondary)}.btn--ghost[data-v-51f820f6]:hover:not(:disabled){background:var(--app-bg-card);border-color:var(--app-border-strong)}.btn--primary[data-v-51f820f6]{background:var(--app-primary);color:#fff;box-shadow:0 2px 8px #06b6d440}.btn--primary[data-v-51f820f6]:hover:not(:disabled){background:var(--app-primary-hover);box-shadow:0 4px 12px #06b6d459}.wayline-library[data-v-6724f9b6]{display:flex;flex-direction:column;height:100%;background:var(--app-bg)}.toolbar[data-v-6724f9b6]{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;flex-shrink:0}.toolbar-title[data-v-6724f9b6]{font-size:20px;font-weight:700;color:var(--app-text);margin:0;letter-spacing:-.02em}.toolbar-actions[data-v-6724f9b6]{display:flex;gap:10px}.action-btn[data-v-6724f9b6]{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-base);border:1px solid transparent}.action-btn--primary[data-v-6724f9b6]{background:var(--app-primary);color:#fff;box-shadow:0 2px 8px #06b6d440}.action-btn--primary[data-v-6724f9b6]:hover{background:var(--app-primary-hover);box-shadow:0 4px 12px #06b6d459;transform:translateY(-1px)}.action-btn--ghost[data-v-6724f9b6]{background:var(--app-bg-surface);border-color:var(--app-border);color:var(--app-text-secondary)}.action-btn--ghost[data-v-6724f9b6]:hover:not(:disabled){background:var(--app-bg-card);border-color:var(--app-border-strong);color:var(--app-text)}.action-btn[data-v-6724f9b6]:disabled{opacity:.35;cursor:not-allowed}.action-btn--danger[data-v-6724f9b6]{background:var(--app-bg-surface);border-color:var(--app-border);color:var(--app-danger)}.action-btn--danger[data-v-6724f9b6]:hover:not(:disabled){background:var(--app-danger-bg);border-color:var(--app-danger)}.select-count[data-v-6724f9b6]{font-size:12px;color:var(--app-primary);font-weight:600}.select-count--danger[data-v-6724f9b6]{color:var(--app-danger)}.filters[data-v-6724f9b6]{display:flex;align-items:center;gap:10px;padding:12px 24px 16px;flex-shrink:0}.filter-group[data-v-6724f9b6]{display:flex;gap:8px}.filter-select[data-v-6724f9b6]{padding:7px 28px 7px 12px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:13px;cursor:pointer;outline:none;transition:all var(--transition-base);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.filter-select[data-v-6724f9b6]:hover{border-color:var(--app-border-strong);background-color:var(--app-bg-card)}.filter-select[data-v-6724f9b6]:focus{border-color:var(--app-primary);box-shadow:0 0 0 2px var(--app-primary-bg)}.filter-search[data-v-6724f9b6]{flex:1;position:relative;max-width:280px}.search-icon[data-v-6724f9b6]{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--app-text-muted);pointer-events:none;transition:color var(--transition-base)}.filter-search:focus-within .search-icon[data-v-6724f9b6]{color:var(--app-primary)}.search-input[data-v-6724f9b6]{width:100%;padding:7px 12px 7px 32px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:13px;outline:none;transition:all var(--transition-base)}.search-input[data-v-6724f9b6]:hover{border-color:var(--app-border-strong)}.search-input[data-v-6724f9b6]:focus{border-color:var(--app-primary);box-shadow:0 0 0 2px var(--app-primary-bg)}.search-input[data-v-6724f9b6]::placeholder{color:var(--app-text-muted);opacity:.7}.refresh-btn[data-v-6724f9b6]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-base);margin-left:auto}.refresh-btn[data-v-6724f9b6]:hover{background:var(--app-bg-card);border-color:var(--app-border-strong);color:var(--app-text)}.spinning[data-v-6724f9b6]{animation:spin-6724f9b6 .8s linear infinite}@keyframes spin-6724f9b6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner[data-v-6724f9b6]{display:flex;align-items:center;gap:12px;padding:10px 24px;margin:0 24px 12px;background:var(--app-danger-bg);color:var(--app-danger);font-size:13px;flex-shrink:0;border-radius:var(--radius-md);border:1px solid rgba(248,113,113,.2)}.error-retry[data-v-6724f9b6]{padding:4px 10px;border:1px solid var(--app-danger);border-radius:var(--radius-sm);background:transparent;color:var(--app-danger);font-size:12px;cursor:pointer;transition:all var(--transition-base)}.error-retry[data-v-6724f9b6]:hover{background:var(--app-danger);color:#fff}.table-wrapper[data-v-6724f9b6]{flex:1;overflow-y:auto;min-height:0;padding:0 24px}.wayline-table[data-v-6724f9b6]{width:100%;border-collapse:separate;border-spacing:0 2px;table-layout:auto}.wayline-table thead[data-v-6724f9b6]{position:sticky;top:0;z-index:1}.wayline-table th[data-v-6724f9b6]{padding:10px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--app-text-muted);background:var(--app-bg);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-bottom:1px solid var(--app-border)}.wayline-table td[data-v-6724f9b6]{padding:14px 16px;font-size:13px;color:var(--app-text-secondary);background:var(--app-bg-panel);border-top:1px solid transparent;border-bottom:1px solid transparent;transition:all var(--transition-base);white-space:nowrap}.wayline-table tr td[data-v-6724f9b6]:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md)}.wayline-table tr td[data-v-6724f9b6]:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}.col-check[data-v-6724f9b6]{width:44px;text-align:center}.col-name[data-v-6724f9b6]{width:28%}.col-type[data-v-6724f9b6]{width:80px}.col-waypoints[data-v-6724f9b6]{width:64px;text-align:center}.col-distance[data-v-6724f9b6]{width:72px}.col-drone[data-v-6724f9b6]{width:140px}.col-payload[data-v-6724f9b6]{width:130px}.col-time[data-v-6724f9b6]{width:108px}.col-action[data-v-6724f9b6]{width:48px;text-align:center}.wayline-table input[type=checkbox][data-v-6724f9b6]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:1.5px solid var(--app-border-strong);border-radius:4px;background:transparent;cursor:pointer;position:relative;transition:all var(--transition-base);vertical-align:middle}.wayline-table input[type=checkbox][data-v-6724f9b6]:hover{border-color:var(--app-primary);background:var(--app-primary-bg)}.wayline-table input[type=checkbox][data-v-6724f9b6]:checked{background:var(--app-primary);border-color:var(--app-primary)}.wayline-table input[type=checkbox][data-v-6724f9b6]:checked:after{content:"";position:absolute;left:4.5px;top:1.5px;width:5px;height:9px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.wayline-table input[type=checkbox][data-v-6724f9b6]:indeterminate{background:var(--app-primary);border-color:var(--app-primary)}.wayline-table input[type=checkbox][data-v-6724f9b6]:indeterminate:after{content:"";position:absolute;left:3px;top:6.5px;width:8px;height:1.5px;background:#fff;border-radius:1px}.wayline-row[data-v-6724f9b6]{transition:all var(--transition-base)}.wayline-row td[data-v-6724f9b6]{background:var(--app-bg-panel)}.wayline-row:hover td[data-v-6724f9b6]{background:var(--app-bg-card)}.wayline-row--selected td[data-v-6724f9b6]{background:var(--app-primary-bg);border-top-color:#06b6d426;border-bottom-color:#06b6d426}.wayline-row--selected:hover td[data-v-6724f9b6]{background:var(--app-primary-bg-hover)}.wayline-name[data-v-6724f9b6]{font-weight:500;color:var(--app-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:240px}.drone-tag[data-v-6724f9b6]{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:500;letter-spacing:.01em;background:#06b6d41f;color:var(--app-primary);border:1px solid rgba(6,182,212,.2)}.type-tag[data-v-6724f9b6]{display:inline-block;padding:3px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;white-space:nowrap;background:var(--app-bg-surface);color:var(--app-text-secondary);border:1px solid var(--app-border)}.type-tag--航点航线[data-v-6724f9b6]{background:#60a5fa1f;color:var(--app-info);border-color:#60a5fa40}.type-tag--面状航线[data-v-6724f9b6],.type-tag--带状航线[data-v-6724f9b6]{background:#34d3991f;color:var(--app-success);border-color:#34d39940}.type-tag--斜面航线[data-v-6724f9b6],.type-tag--几何体航线[data-v-6724f9b6],.type-tag--贴近摄影航线[data-v-6724f9b6]{background:#fbbf241f;color:var(--app-warning);border-color:#fbbf2440}.type-tag--AI巡逻航线[data-v-6724f9b6]{background:#06b6d41f;color:var(--app-primary);border-color:#06b6d433}.waypoint-count[data-v-6724f9b6]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--app-text-secondary);font-variant-numeric:tabular-nums}.waypoint-icon[data-v-6724f9b6]{color:var(--app-text-muted)}.edit-btn[data-v-6724f9b6]{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-base);opacity:.5}.wayline-row:hover .edit-btn[data-v-6724f9b6]{opacity:1}.edit-btn[data-v-6724f9b6]:hover{background:var(--app-primary-bg);color:var(--app-primary);transform:scale(1.1)}.empty-cell[data-v-6724f9b6]{text-align:center;padding:64px 12px;color:var(--app-text-muted);font-size:14px;background:transparent!important}.pagination[data-v-6724f9b6]{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;flex-shrink:0}.pagination-info[data-v-6724f9b6]{font-size:12px;color:var(--app-text-muted)}.pagination-controls[data-v-6724f9b6]{display:flex;align-items:center;gap:6px}.page-btn[data-v-6724f9b6]{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-base)}.page-btn[data-v-6724f9b6]:hover:not(:disabled){background:var(--app-bg-card);border-color:var(--app-border-strong);color:var(--app-text)}.page-btn[data-v-6724f9b6]:disabled{opacity:.25;cursor:not-allowed}.page-current[data-v-6724f9b6]{font-size:13px;color:var(--app-text-secondary);min-width:56px;text-align:center;font-weight:500}.wayline-page[data-v-1ebba1f4]{position:relative;width:100%;height:100%;overflow:hidden}.fh2-container[data-v-1ebba1f4]{display:flex;flex-direction:column;width:100%;height:100%}.fh2-container[data-v-1ebba1f4] .map-app-container>div{width:100%;height:100%}.fh2-container[data-v-1ebba1f4] .project-details{position:relative;width:100%;display:flex;flex:1;overflow:hidden}.fh2-container[data-v-1ebba1f4] .project-details .right-micro-app{position:relative;display:flex;flex:1}.fh2-container[data-v-1ebba1f4] .project-details .right-micro-app .maps-micro-app{display:flex;flex:1;height:100%}.fh2-container[data-v-1ebba1f4] .project-details .right-micro-app .map-app-placeholder{flex:1;position:relative;display:flex;flex-direction:column;height:100%}.fh2-container[data-v-1ebba1f4] .project-details .right-micro-app .map-app-container{height:100%;min-height:0}.fh2-container[data-v-1ebba1f4] .project-details .right-micro-app #wayline-app-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.media-pagination[data-v-8873dab7]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--app-border);font-size:13px}.pagination-info[data-v-8873dab7]{color:var(--app-text-secondary)}.pagination-controls[data-v-8873dab7]{display:flex;align-items:center;gap:8px}.page-size-select[data-v-8873dab7]{padding:5px 8px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:12px;outline:none;transition:border-color var(--transition-base)}.page-size-select[data-v-8873dab7]:focus{border-color:var(--app-primary)}.page-btn[data-v-8873dab7]{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--app-border);border-radius:16px;background:transparent;color:var(--app-text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-base)}.page-btn[data-v-8873dab7]:hover:not(:disabled){background:var(--app-hover-bg);color:var(--app-text);border-color:var(--app-border-strong)}.page-btn[data-v-8873dab7]:disabled{opacity:.35;cursor:not-allowed}.type-label[data-v-02a78ca9]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--app-text-secondary)}.flight-record-list[data-v-2759d7bb]{display:flex;flex-direction:column;height:100%;background:var(--app-bg)}.toolbar[data-v-2759d7bb]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--app-border);flex-shrink:0}.toolbar-left[data-v-2759d7bb]{display:flex;align-items:center;gap:12px}.status-filter[data-v-2759d7bb]{padding:6px 10px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:13px;outline:none;transition:border-color var(--transition-base)}.status-filter[data-v-2759d7bb]:focus{border-color:var(--app-primary)}.total-count[data-v-2759d7bb]{font-size:13px;color:var(--app-text-secondary)}.refresh-btn[data-v-2759d7bb]{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:transparent;color:var(--app-text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-base)}.refresh-btn[data-v-2759d7bb]:hover:not(:disabled){background:var(--app-hover-bg);color:var(--app-text);border-color:var(--app-border-strong)}.refresh-btn[data-v-2759d7bb]:disabled{opacity:.5;cursor:not-allowed}.spinning[data-v-2759d7bb]{animation:spin-2759d7bb 1s linear infinite}@keyframes spin-2759d7bb{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-bar[data-v-2759d7bb]{padding:8px 16px;background:#ef53501f;color:#ef5350;font-size:13px;border-bottom:1px solid var(--app-border)}.table-wrapper[data-v-2759d7bb]{flex:1;overflow-y:auto;min-height:0;padding:0 16px}.task-table[data-v-2759d7bb]{width:100%;border-collapse:separate;border-spacing:0}.task-table thead[data-v-2759d7bb]{position:sticky;top:0;z-index:1}.task-table th[data-v-2759d7bb]{padding:8px 14px;text-align:left;font-weight:500;font-size:12px;color:var(--app-text-muted);background:var(--app-bg);border-bottom:1px solid var(--app-border);white-space:nowrap;text-transform:uppercase;letter-spacing:.5px}.task-table td[data-v-2759d7bb]{padding:0 14px;height:44px;font-size:13px;color:var(--app-text);border-bottom:1px solid color-mix(in srgb,var(--app-border) 50%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-name[data-v-2759d7bb]{width:30%;min-width:200px}.col-sn[data-v-2759d7bb]{width:20%;min-width:180px}.col-status[data-v-2759d7bb]{width:10%;min-width:80px}.col-type[data-v-2759d7bb]{width:10%;min-width:70px}.col-time[data-v-2759d7bb]{width:18%;min-width:150px}.col-action[data-v-2759d7bb]{width:12%;min-width:80px;text-align:center}.task-row[data-v-2759d7bb]{cursor:pointer;transition:background var(--transition-base)}.task-row[data-v-2759d7bb]:hover{background:var(--app-hover-bg)}.task-row:hover .task-name[data-v-2759d7bb]{color:var(--app-primary)}.task-name[data-v-2759d7bb]{color:var(--app-text);font-weight:500;transition:color var(--transition-base)}.sn-code[data-v-2759d7bb]{font-family:var(--font-mono, "SF Mono", "Fira Code", monospace);font-size:12px;color:var(--app-text-secondary)}.status-badge[data-v-2759d7bb]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:500;color:var(--badge-color);background:color-mix(in srgb,var(--badge-color) 15%,transparent)}.replay-btn[data-v-2759d7bb]{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid color-mix(in srgb,var(--app-primary) 40%,transparent);border-radius:14px;background:transparent;color:var(--app-primary);font-size:12px;cursor:pointer;transition:all var(--transition-base);opacity:.7}.task-row:hover .replay-btn[data-v-2759d7bb]{opacity:1}.replay-btn[data-v-2759d7bb]:hover{background:var(--app-primary);border-color:var(--app-primary);color:#fff}.empty-state[data-v-2759d7bb],.loading-state[data-v-2759d7bb]{display:flex;align-items:center;justify-content:center;padding:64px 16px;font-size:14px;color:var(--app-text-muted)}.flight-replay-page[data-v-cb1dd827]{position:relative;width:100%;height:100%;overflow:hidden}.fh2-container[data-v-cb1dd827]{display:flex;flex-direction:column;height:100%;width:100%;padding-top:48px}.fh2-container[data-v-cb1dd827] .map-app-container>div{width:100%;height:100%}.fh2-container[data-v-cb1dd827] .project-details{position:relative;width:100%;display:flex;flex:1;overflow:hidden}.fh2-container[data-v-cb1dd827] .project-details .right-micro-app{position:relative;display:flex;flex:1}.fh2-container[data-v-cb1dd827] .project-details .right-micro-app .maps-micro-app{display:flex;flex:1;height:100%}.fh2-container[data-v-cb1dd827] .project-details .right-micro-app .map-app-placeholder{flex:1;position:relative;display:flex;flex-direction:column;height:100%}.fh2-container[data-v-cb1dd827] .project-details .right-micro-app .map-app-container{height:100%;min-height:0}.fh2-container[data-v-cb1dd827] .project-details .right-micro-app #fly-data-app-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.fh2-container[data-v-cb1dd827] .project-details .right-micro-app>.fly-data-root{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background:transparent}.media-sidebar[data-v-57303566]{width:220px;padding:16px;border-right:1px solid var(--app-border);background:var(--app-bg-panel);flex-shrink:0;overflow-y:auto}.sidebar-section[data-v-57303566]{margin-bottom:20px}.section-title[data-v-57303566]{font-size:11px;font-weight:600;color:var(--app-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.type-list[data-v-57303566]{list-style:none;padding:0;margin:0}.type-item[data-v-57303566]{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);cursor:pointer;color:var(--app-text-secondary);font-size:13px;transition:all var(--transition-base);position:relative;margin-bottom:2px}.type-item[data-v-57303566]:hover{background:var(--app-hover-bg);color:var(--app-text)}.type-item--active[data-v-57303566]{background:var(--app-primary-bg);color:var(--app-primary);font-weight:500}.type-item--active[data-v-57303566]:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--app-primary)}.type-icon[data-v-57303566]{flex-shrink:0}.type-label[data-v-57303566]{flex:1}.filter-input[data-v-57303566]{width:100%;padding:8px 10px;margin-bottom:8px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:13px;outline:none;transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box}.filter-input[data-v-57303566]:focus{border-color:var(--app-primary);box-shadow:0 0 0 3px var(--app-primary-bg)}.filter-input[data-v-57303566]::placeholder{color:var(--app-text-muted)}.media-toolbar[data-v-7443ba2a]{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--app-border);min-height:44px;background:var(--app-bg-panel)}.toolbar-left[data-v-7443ba2a]{display:flex;align-items:center;gap:12px}.toolbar-right[data-v-7443ba2a]{display:flex;align-items:center;gap:8px}.selected-badge[data-v-7443ba2a]{font-size:13px;color:var(--app-primary);font-weight:500}.file-count[data-v-7443ba2a]{font-size:13px;color:var(--app-text-secondary)}.toolbar-divider[data-v-7443ba2a]{width:1px;height:16px;background:var(--app-border-strong)}.btn[data-v-7443ba2a]{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-radius:var(--radius-md);font-size:13px;cursor:pointer;transition:all var(--transition-base)}.btn[data-v-7443ba2a]:disabled{opacity:.5;cursor:not-allowed}.btn--primary-ghost[data-v-7443ba2a]{background:var(--app-primary-bg);color:var(--app-primary)}.btn--primary-ghost[data-v-7443ba2a]:hover:not(:disabled){background:var(--app-primary-bg-hover)}.btn--danger[data-v-7443ba2a]{background:#ef44441f;color:var(--app-danger)}.btn--danger[data-v-7443ba2a]:hover:not(:disabled){background:#ef444433}.btn--ghost[data-v-7443ba2a]{background:transparent;color:var(--app-text-secondary);border:1px solid var(--app-border)}.btn--ghost[data-v-7443ba2a]:hover:not(:disabled){background:var(--app-hover-bg);color:var(--app-text);border-color:var(--app-border-strong)}@keyframes spin-7443ba2a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin[data-v-7443ba2a]{animation:spin-7443ba2a 1s linear infinite}.media-table-wrap[data-v-dae035ca]{flex:1;overflow:auto}.media-table[data-v-dae035ca]{width:100%;border-collapse:collapse;font-size:13px}.media-table th[data-v-dae035ca]{text-align:left;padding:10px 12px;color:var(--app-text-muted);font-weight:600;font-size:12px;letter-spacing:.3px;border-bottom:1px solid var(--app-border);position:sticky;top:0;background:var(--app-bg-panel);z-index:1}.media-table td[data-v-dae035ca]{padding:10px 12px;color:var(--app-text);border-bottom:1px solid var(--app-border)}.file-row[data-v-dae035ca]{transition:background var(--transition-fast)}.file-row--stripe[data-v-dae035ca]{background:#ffffff04}.file-row[data-v-dae035ca]:hover{background:var(--app-hover-bg)}.file-row--selected[data-v-dae035ca]{background:var(--app-primary-bg)}.col-check[data-v-dae035ca]{width:36px;text-align:center}.col-name[data-v-dae035ca]{min-width:200px}.col-type[data-v-dae035ca]{width:80px}.col-size[data-v-dae035ca]{width:90px}.col-device[data-v-dae035ca]{width:140px}.col-time[data-v-dae035ca]{width:150px}.col-actions[data-v-dae035ca]{width:80px}.custom-check[data-v-dae035ca]{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.custom-check input[data-v-dae035ca]{position:absolute;opacity:0;width:0;height:0}.check-mark[data-v-dae035ca]{width:16px;height:16px;border:1.5px solid var(--app-border-strong);border-radius:var(--radius-sm);transition:all var(--transition-fast);position:relative}.custom-check input:checked+.check-mark[data-v-dae035ca]{background:var(--app-primary);border-color:var(--app-primary)}.custom-check input:checked+.check-mark[data-v-dae035ca]:after{content:"";position:absolute;left:4.5px;top:1.5px;width:5px;height:9px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.custom-check:hover .check-mark[data-v-dae035ca]{border-color:var(--app-primary)}.col-name[data-v-dae035ca]{display:flex;align-items:center}.file-icon[data-v-dae035ca]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--app-bg-surface);color:var(--app-text-muted);margin-right:8px;flex-shrink:0}.file-name-text[data-v-dae035ca]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-name-text--clickable[data-v-dae035ca]{cursor:pointer;transition:color var(--transition-fast)}.file-name-text--clickable[data-v-dae035ca]:hover{color:var(--app-primary)}.type-badge[data-v-dae035ca]{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.type-badge--photo[data-v-dae035ca]{background:#22c55e1a;color:#4ade80}.type-badge--video[data-v-dae035ca]{background:#3b82f61a;color:#60a5fa}.type-badge--other[data-v-dae035ca]{background:#94a3b81f;color:#94a3b8}.empty-cell[data-v-dae035ca]{text-align:center;padding:40px 12px;color:var(--app-text-muted)}.action-btn[data-v-dae035ca]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);color:var(--app-text-secondary);transition:all var(--transition-fast)}.action-btn[data-v-dae035ca]:hover{background:var(--app-hover-bg);color:var(--app-text)}.action-btn--delete[data-v-dae035ca]:hover{background:#ef44441f;color:var(--app-danger)}.preview-overlay[data-v-9ee3c4f9]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000eb;display:flex;flex-direction:column}.preview-close[data-v-9ee3c4f9]{position:absolute;top:16px;right:16px;z-index:10;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);color:#ffffffb3;cursor:pointer;transition:all var(--transition-fast)}.preview-close[data-v-9ee3c4f9]:hover{background:#ffffff26;color:#fff}.preview-layout[data-v-9ee3c4f9]{display:flex;flex:1;min-height:0}.preview-image-area[data-v-9ee3c4f9]{flex:1;position:relative;display:flex;align-items:center;justify-content:center;min-width:0}.preview-title-bar[data-v-9ee3c4f9]{position:absolute;top:0;left:0;right:0;padding:16px 24px;z-index:5;display:flex;flex-direction:column;gap:4px;background:linear-gradient(to bottom,rgba(0,0,0,.5),transparent)}.preview-file-name[data-v-9ee3c4f9]{font-size:15px;font-weight:500;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-file-meta[data-v-9ee3c4f9]{font-size:12px;color:#ffffff80}.nav-btn[data-v-9ee3c4f9]{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:none;border-radius:var(--radius-full);color:#fff9;cursor:pointer;transition:all var(--transition-fast)}.nav-btn[data-v-9ee3c4f9]:hover{background:#fff3;color:#fff}.nav-btn--prev[data-v-9ee3c4f9]{left:24px}.nav-btn--next[data-v-9ee3c4f9]{right:24px}.preview-image-container[data-v-9ee3c4f9]{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:60px 80px}.preview-image[data-v-9ee3c4f9]{max-width:100%;max-height:100%;object-fit:contain;transition:transform .15s ease;-webkit-user-select:none;user-select:none}.preview-loading[data-v-9ee3c4f9],.preview-error[data-v-9ee3c4f9]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;color:#ffffff80;font-size:14px}.loading-spinner[data-v-9ee3c4f9]{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--app-primary, #06b6d4);border-radius:50%;animation:spin-9ee3c4f9 .8s linear infinite}@keyframes spin-9ee3c4f9{to{transform:rotate(360deg)}}.preview-toolbar[data-v-9ee3c4f9]{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:4px;padding:6px 12px;background:#000000b3;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toolbar-btn[data-v-9ee3c4f9]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);color:#fff9;cursor:pointer;transition:all var(--transition-fast)}.toolbar-btn[data-v-9ee3c4f9]:hover{background:#ffffff1f;color:#fff}.toolbar-zoom-text[data-v-9ee3c4f9]{font-size:12px;color:#ffffff80;min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.toolbar-divider[data-v-9ee3c4f9]{width:1px;height:20px;background:#ffffff1f;margin:0 4px}.preview-detail-panel[data-v-9ee3c4f9]{width:320px;flex-shrink:0;background:var(--app-bg-panel, #111827);border-left:1px solid var(--app-border, rgba(255, 255, 255, .08));padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.detail-title[data-v-9ee3c4f9]{font-size:16px;font-weight:600;color:var(--app-text, #e6edf3);margin:0;padding-right:40px}.detail-list[data-v-9ee3c4f9]{display:flex;flex-direction:column;gap:16px}.detail-item[data-v-9ee3c4f9]{display:flex;flex-direction:column;gap:4px}.detail-label[data-v-9ee3c4f9]{font-size:12px;color:var(--app-text-muted, #6b7280)}.detail-value[data-v-9ee3c4f9]{font-size:13px;color:var(--app-text, #e6edf3);word-break:break-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-thumbnail-section[data-v-9ee3c4f9]{border-top:1px solid var(--app-border, rgba(255, 255, 255, .08));padding-top:16px}.detail-subtitle[data-v-9ee3c4f9]{font-size:13px;font-weight:500;color:var(--app-text-secondary, #8b949e);margin:0 0 12px;display:flex;align-items:center;justify-content:space-between}.detail-count[data-v-9ee3c4f9]{font-size:12px;color:var(--app-text-muted, #6b7280);font-weight:400}.thumbnail-list[data-v-9ee3c4f9]{display:flex;flex-wrap:wrap;gap:6px}.thumbnail-item[data-v-9ee3c4f9]{width:48px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--app-bg-surface, #1a2332);border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);opacity:.5}.thumbnail-item[data-v-9ee3c4f9]:hover{opacity:.8;border-color:#fff3}.thumbnail-item--active[data-v-9ee3c4f9]{opacity:1;border-color:var(--app-primary, #06b6d4)}.thumbnail-placeholder[data-v-9ee3c4f9]{font-size:11px;color:var(--app-text-muted, #6b7280)}.preview-overlay--fullscreen .preview-detail-panel[data-v-9ee3c4f9]{display:none}.preview-overlay--fullscreen .preview-image-container[data-v-9ee3c4f9]{padding:40px}.preview-overlay--fullscreen .nav-btn--next[data-v-9ee3c4f9]{right:24px}.preview-overlay[data-v-9b9f0301]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000eb;display:flex;flex-direction:column}.preview-close[data-v-9b9f0301]{position:absolute;top:16px;right:16px;z-index:10;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);color:#ffffffb3;cursor:pointer;transition:all var(--transition-fast)}.preview-close[data-v-9b9f0301]:hover{background:#ffffff26;color:#fff}.preview-layout[data-v-9b9f0301]{display:flex;flex:1;min-height:0}.preview-video-area[data-v-9b9f0301]{flex:1;position:relative;display:flex;align-items:center;justify-content:center;min-width:0}.preview-title-bar[data-v-9b9f0301]{position:absolute;top:0;left:0;right:0;padding:16px 24px;z-index:5;display:flex;flex-direction:column;gap:4px;background:linear-gradient(to bottom,rgba(0,0,0,.5),transparent);pointer-events:none}.preview-file-name[data-v-9b9f0301]{font-size:15px;font-weight:500;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-file-meta[data-v-9b9f0301]{font-size:12px;color:#ffffff80}.nav-btn[data-v-9b9f0301]{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:none;border-radius:var(--radius-full);color:#fff9;cursor:pointer;transition:all var(--transition-fast)}.nav-btn[data-v-9b9f0301]:hover{background:#fff3;color:#fff}.nav-btn--prev[data-v-9b9f0301]{left:24px}.nav-btn--next[data-v-9b9f0301]{right:24px}.preview-video-container[data-v-9b9f0301]{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:60px 80px}.preview-video[data-v-9b9f0301]{max-width:100%;max-height:100%;background:#000;outline:none}.preview-loading[data-v-9b9f0301],.preview-error[data-v-9b9f0301]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;color:#ffffff80;font-size:14px}.loading-spinner[data-v-9b9f0301]{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--app-primary, #06b6d4);border-radius:50%;animation:spin-9b9f0301 .8s linear infinite}@keyframes spin-9b9f0301{to{transform:rotate(360deg)}}.preview-detail-panel[data-v-9b9f0301]{width:320px;flex-shrink:0;background:var(--app-bg-panel, #111827);border-left:1px solid var(--app-border, rgba(255, 255, 255, .08));padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.detail-title[data-v-9b9f0301]{font-size:16px;font-weight:600;color:var(--app-text, #e6edf3);margin:0;padding-right:40px}.detail-list[data-v-9b9f0301]{display:flex;flex-direction:column;gap:16px}.detail-item[data-v-9b9f0301]{display:flex;flex-direction:column;gap:4px}.detail-label[data-v-9b9f0301]{font-size:12px;color:var(--app-text-muted, #6b7280)}.detail-value[data-v-9b9f0301]{font-size:13px;color:var(--app-text, #e6edf3);word-break:break-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-download-btn[data-v-9b9f0301]{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:#ffffff0f;border:1px solid var(--app-border, rgba(255, 255, 255, .08));border-radius:var(--radius-md);color:var(--app-text, #e6edf3);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.detail-download-btn[data-v-9b9f0301]:hover{background:#ffffff1f}.detail-nav-section[data-v-9b9f0301]{border-top:1px solid var(--app-border, rgba(255, 255, 255, .08));padding-top:16px}.detail-subtitle[data-v-9b9f0301]{font-size:13px;font-weight:500;color:var(--app-text-secondary, #8b949e);margin:0 0 12px;display:flex;align-items:center;justify-content:space-between}.detail-count[data-v-9b9f0301]{font-size:12px;color:var(--app-text-muted, #6b7280);font-weight:400}.nav-list[data-v-9b9f0301]{display:flex;flex-wrap:wrap;gap:6px}.nav-item[data-v-9b9f0301]{width:48px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--app-bg-surface, #1a2332);border:2px solid transparent;border-radius:var(--radius-sm);color:var(--app-text-muted, #6b7280);font-size:11px;cursor:pointer;transition:all var(--transition-fast);opacity:.5}.nav-item[data-v-9b9f0301]:hover{opacity:.8;border-color:#fff3}.nav-item--active[data-v-9b9f0301]{opacity:1;border-color:var(--app-primary, #06b6d4)}.media-manager[data-v-38cd6480]{display:flex;flex-direction:column;height:100%;min-height:0}.media-body[data-v-38cd6480]{display:flex;flex:1;min-height:0}.media-content[data-v-38cd6480]{flex:1;display:flex;flex-direction:column;min-width:0}.error-banner[data-v-38cd6480]{padding:10px 16px;background:#e539351f;color:#ef5350;font-size:13px;border-bottom:1px solid rgba(229,57,53,.2)}.flight-area-list-item[data-v-72e09d46]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s}.flight-area-list-item[data-v-72e09d46]:hover{background:var(--app-bg-card-hover, #242d3d)}.flight-area-list-item--selected[data-v-72e09d46]{background:var(--app-bg-card-hover, #242d3d);border:1px solid var(--app-accent, #58a6ff)}.item-indicator[data-v-72e09d46]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.item-content[data-v-72e09d46]{flex:1;min-width:0}.item-name[data-v-72e09d46]{font-size:14px;color:var(--app-text, #e6edf3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-meta[data-v-72e09d46]{font-size:12px;color:var(--app-text-secondary, #8b949e);margin-top:2px}.item-delete[data-v-72e09d46]{width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--app-text-secondary, #8b949e);cursor:pointer;font-size:16px;display:none;align-items:center;justify-content:center}.flight-area-list-item:hover .item-delete[data-v-72e09d46]{display:flex}.item-delete[data-v-72e09d46]:hover{background:#f8514933;color:#f85149}.flight-area-list[data-v-113805ec]{display:flex;flex-direction:column;gap:8px}.list-loading[data-v-113805ec],.list-empty[data-v-113805ec]{text-align:center;padding:40px 0;color:var(--app-text-secondary, #8b949e)}.empty-text[data-v-113805ec]{font-size:14px}.custom-flight-area-tab[data-v-519ab550]{display:flex;flex-direction:column;gap:12px}.filter-row[data-v-519ab550]{display:flex;gap:8px}.filter-select[data-v-519ab550]{flex:1;padding:6px 8px;border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15));border-radius:6px;background:var(--app-bg-card, #161b22);color:var(--app-text, #e6edf3);font-size:13px}.search-row[data-v-519ab550]{display:flex}.search-input[data-v-519ab550]{width:100%;padding:8px 12px;border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15));border-radius:6px;background:var(--app-bg-card, #161b22);color:var(--app-text, #e6edf3);font-size:13px}.search-input[data-v-519ab550]::placeholder{color:var(--app-text-secondary, #8b949e)}.terrain-obstacle-tab[data-v-336d4136]{display:flex;flex-direction:column;gap:16px}.terrain-card[data-v-336d4136]{padding:16px;border-radius:8px;background:var(--app-bg-card, #161b22);border:1px solid var(--fh-border-color, rgba(255, 255, 255, .08))}.card-header[data-v-336d4136]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.card-title[data-v-336d4136]{flex:1;font-size:15px;font-weight:500;color:var(--app-text, #e6edf3)}.card-meta[data-v-336d4136],.card-version[data-v-336d4136]{font-size:12px;color:var(--app-text-secondary, #8b949e);margin-bottom:8px}.card-desc[data-v-336d4136]{font-size:13px;color:var(--app-text-secondary, #8b949e);margin-top:12px}.update-action[data-v-336d4136]{margin-top:12px}.update-btn[data-v-336d4136]{width:100%;padding:10px;border:none;border-radius:6px;background:var(--app-accent, #58a6ff);color:#fff;font-size:14px;cursor:pointer}.update-btn[data-v-336d4136]:disabled{opacity:.5;cursor:not-allowed}.progress-section[data-v-336d4136]{margin-top:12px}.progress-track[data-v-336d4136]{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.progress-bar[data-v-336d4136]{height:100%;background:var(--app-accent, #58a6ff);border-radius:3px;transition:width .3s ease}.progress-bar--error[data-v-336d4136]{background:#e74c3c}.progress-info[data-v-336d4136]{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:12px}.progress-text[data-v-336d4136]{color:var(--app-text-secondary, #8b949e)}.cancel-link[data-v-336d4136]{background:none;border:none;color:var(--app-accent, #58a6ff);cursor:pointer;font-size:12px;padding:0}.cancel-link[data-v-336d4136]:hover{text-decoration:underline}.terminal-section[data-v-336d4136]{margin-top:12px;display:flex;align-items:center;gap:12px}.terminal-message[data-v-336d4136]{flex:1;font-size:13px;color:#2ecc71}.terminal-message--error[data-v-336d4136]{color:#e74c3c}.reset-btn[data-v-336d4136]{padding:6px 16px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:transparent;color:var(--app-text, #e6edf3);font-size:12px;cursor:pointer}.reset-btn[data-v-336d4136]:hover{background:#ffffff0d}.toggle-switch[data-v-336d4136]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-336d4136]{opacity:0;width:0;height:0}.toggle-slider[data-v-336d4136]{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#444;border-radius:22px;transition:.2s}.toggle-slider[data-v-336d4136]:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider[data-v-336d4136]{background:var(--app-accent, #58a6ff)}.toggle-switch input:checked+.toggle-slider[data-v-336d4136]:before{transform:translate(18px)}.loading[data-v-336d4136]{text-align:center;padding:20px;color:var(--app-text-secondary, #8b949e)}.tcas-threshold-panel[data-v-579db0d3]{background:var(--app-bg-card, #161b22);border:1px solid var(--fh-border-color, rgba(255, 255, 255, .08));border-radius:8px;padding:12px}.panel-header[data-v-579db0d3]{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px}.edit-btn[data-v-579db0d3],.save-btn[data-v-579db0d3],.cancel-btn[data-v-579db0d3]{padding:4px 10px;border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15));border-radius:4px;background:transparent;color:var(--app-text, #e6edf3);cursor:pointer;font-size:12px}.save-btn[data-v-579db0d3]{background:var(--app-accent, #58a6ff);border-color:transparent;color:#fff}.threshold-table[data-v-579db0d3]{width:100%;border-collapse:collapse;font-size:13px;color:var(--app-text, #e6edf3)}.threshold-table th[data-v-579db0d3]{text-align:center;padding:4px;font-size:12px;color:var(--app-text-secondary, #8b949e)}.threshold-table td[data-v-579db0d3]{padding:4px 6px;text-align:center}.type-name[data-v-579db0d3]{font-weight:500;text-align:left!important;padding-top:10px}.level-danger[data-v-579db0d3]{color:#f85149;font-size:12px}.level-warning[data-v-579db0d3]{color:#d29922;font-size:12px}.threshold-input[data-v-579db0d3]{width:60px;padding:3px 6px;border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15));border-radius:4px;background:var(--app-bg-card, #161b22);color:var(--app-text, #e6edf3);text-align:center;font-size:13px}.threshold-input[data-v-579db0d3]:disabled{border-color:transparent;background:transparent}.airspace-alert-tab[data-v-7a9b936a]{display:flex;flex-direction:column;gap:12px}.section-title[data-v-7a9b936a]{font-size:14px;font-weight:500;color:var(--app-text, #e6edf3);margin:4px 0}.alert-card[data-v-7a9b936a]{padding:12px 16px;border-radius:8px;background:var(--app-bg-card, #161b22);border:1px solid var(--fh-border-color, rgba(255, 255, 255, .08))}.alert-row[data-v-7a9b936a]{display:flex;align-items:center;justify-content:space-between}.alert-name[data-v-7a9b936a]{font-size:14px;color:var(--app-text, #e6edf3)}.alert-desc[data-v-7a9b936a]{font-size:12px;color:var(--app-text-secondary, #8b949e);margin-top:2px}.toggle-switch[data-v-7a9b936a]{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input[data-v-7a9b936a]{opacity:0;width:0;height:0}.toggle-slider[data-v-7a9b936a]{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#444;border-radius:22px;transition:.2s}.toggle-slider[data-v-7a9b936a]:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider[data-v-7a9b936a]{background:var(--app-accent, #58a6ff)}.toggle-switch input:checked+.toggle-slider[data-v-7a9b936a]:before{transform:translate(18px)}.loading[data-v-7a9b936a]{text-align:center;padding:20px;color:var(--app-text-secondary, #8b949e)}.flight-area-panel[data-v-93c977a3]{width:360px;height:100%;display:flex;flex-direction:column;background:var(--fh-bg-sidebar, #1a1a2e);border-right:1px solid var(--fh-border-color, rgba(255, 255, 255, .08))}.panel-tabs[data-v-93c977a3]{display:flex;justify-content:space-around;padding:12px 16px;border-bottom:1px solid var(--fh-border-color, rgba(255, 255, 255, .08))}.tab-btn[data-v-93c977a3]{width:40px;height:40px;border:none;border-radius:8px;background:transparent;color:var(--app-text-secondary, #8b949e);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.tab-btn[data-v-93c977a3]:hover{background:var(--app-bg-card-hover, #242d3d)}.tab-btn--active[data-v-93c977a3]{color:var(--app-accent, #58a6ff);border-bottom:2px solid var(--app-accent, #58a6ff)}.panel-content[data-v-93c977a3]{flex:1;overflow-y:auto;padding:16px}.flight-area-map[data-v-d8f00601]{width:100%;height:100%;min-height:0}.draw-tools[data-v-2924d126]{position:absolute;top:12px;right:12px;z-index:10}.tool-btn[data-v-2924d126]{width:36px;height:36px;border:none;border-radius:8px;background:var(--app-bg-card, #161b22);color:var(--app-text, #e6edf3);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000004d}.tool-btn[data-v-2924d126]:hover{background:var(--app-bg-card-hover, #242d3d)}.draw-menu[data-v-2924d126]{position:absolute;top:42px;right:0;width:180px;background:var(--app-bg-card, #161b22);border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15));border-radius:8px;box-shadow:0 4px 12px #0006;padding:8px}.menu-title[data-v-2924d126]{font-size:12px;color:var(--app-text-secondary, #8b949e);padding:4px 8px;margin-bottom:4px}.menu-item[data-v-2924d126]{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:none;border-radius:4px;background:transparent;color:var(--app-text, #e6edf3);cursor:pointer;font-size:13px;text-align:left}.menu-item[data-v-2924d126]:hover{background:var(--app-bg-card-hover, #242d3d)}.dot[data-v-2924d126]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dialog-mask[data-v-34406695]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog[data-v-34406695]{width:360px;background:var(--app-bg-card, #161b22);border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15));border-radius:10px;padding:20px}.dialog-title[data-v-34406695]{font-size:16px;color:var(--app-text, #e6edf3);margin-bottom:16px}.dialog-body[data-v-34406695]{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field-label[data-v-34406695]{font-size:13px;color:var(--app-text-secondary, #8b949e)}.field-input[data-v-34406695]{padding:8px 12px;border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15));border-radius:6px;background:var(--app-bg-input, #0d1117);color:var(--app-text, #e6edf3);font-size:14px;outline:none}.field-input[data-v-34406695]:focus{border-color:var(--fh-accent, #58a6ff)}.field-error[data-v-34406695]{font-size:12px;color:#f85149}.dialog-footer[data-v-34406695]{display:flex;justify-content:flex-end;gap:8px}.btn[data-v-34406695]{padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:none}.btn-cancel[data-v-34406695]{background:transparent;color:var(--app-text-secondary, #8b949e);border:1px solid var(--fh-border-color, rgba(255, 255, 255, .15))}.btn-confirm[data-v-34406695]{background:var(--fh-accent, #58a6ff);color:#fff}.btn-confirm[data-v-34406695]:disabled{opacity:.5;cursor:not-allowed}.flight-area-view[data-v-60804d1b]{display:flex;width:100%;height:100%}.map-container[data-v-60804d1b]{flex:1;position:relative;min-width:0}.settings-panel[data-v-ae0ef464]{padding:12px}.settings-section__title[data-v-ae0ef464]{font-size:11px;font-weight:600;color:var(--app-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.settings-group[data-v-ae0ef464]{margin-bottom:12px}.settings-group__title[data-v-ae0ef464]{font-size:12px;color:var(--app-text-muted);margin-bottom:6px}.settings-group__grid[data-v-ae0ef464]{display:flex;gap:4px;flex-wrap:wrap}.grid-btn[data-v-ae0ef464]{width:36px;height:36px;border:1px solid var(--app-border);border-radius:var(--radius-sm);background:var(--app-bg-surface);color:var(--app-text-secondary);font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.grid-btn[data-v-ae0ef464]:hover{border-color:var(--app-border-strong);color:var(--app-text)}.grid-btn--active[data-v-ae0ef464]{border-color:var(--app-primary);background:var(--app-primary-bg);color:var(--app-primary)}.settings-divider[data-v-ae0ef464]{height:1px;background:var(--app-border);margin:12px 0}.settings-row[data-v-ae0ef464]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.settings-row__label[data-v-ae0ef464]{font-size:13px;color:var(--app-text)}.toggle[data-v-ae0ef464]{position:relative;display:inline-block;cursor:pointer}.toggle input[data-v-ae0ef464]{position:absolute;opacity:0;width:0;height:0}.toggle__track[data-v-ae0ef464]{display:block;width:36px;height:20px;border-radius:10px;background:var(--app-bg-elevated);transition:background var(--transition-base)}.toggle__track[data-v-ae0ef464]:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform var(--transition-base)}.toggle input:checked+.toggle__track[data-v-ae0ef464]{background:var(--app-primary)}.toggle input:checked+.toggle__track[data-v-ae0ef464]:after{transform:translate(16px)}.radio-group[data-v-ae0ef464]{display:flex;gap:4px}.radio-btn[data-v-ae0ef464]{padding:4px 10px;border:1px solid var(--app-border);border-radius:var(--radius-sm);background:transparent;color:var(--app-text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-base)}.radio-btn[data-v-ae0ef464]:hover{border-color:var(--app-border-strong);color:var(--app-text)}.radio-btn--active[data-v-ae0ef464]{border-color:var(--app-primary);background:var(--app-primary-bg);color:var(--app-primary)}.settings-info[data-v-ae0ef464]{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:12px;color:var(--app-text-muted)}.settings-info__group[data-v-ae0ef464]{padding:2px 6px;background:var(--app-bg-surface);border-radius:var(--radius-sm)}.grid-slot[data-v-ac2be464]{position:relative;background:var(--app-bg);border:1px solid var(--app-border);border-radius:var(--radius-sm);overflow:hidden;min-height:0}.grid-slot--empty[data-v-ac2be464]{border-style:dashed}.grid-slot__player[data-v-ac2be464]{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.grid-slot__overlay[data-v-ac2be464]{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:6px;padding:4px 8px;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,transparent 100%);opacity:0;transition:opacity var(--transition-base);z-index:2}.grid-slot:hover .grid-slot__overlay[data-v-ac2be464]{opacity:1}.grid-slot__sn[data-v-ac2be464]{font-size:11px;color:#ffffffe6;font-family:var(--font-mono)}.grid-slot__state[data-v-ac2be464]{font-size:10px;padding:1px 4px;border-radius:2px;background:#ffffff26;color:#ffffffb3}.grid-slot__state--playing[data-v-ac2be464]{background:var(--app-success-bg);color:var(--app-success)}.grid-slot__state--error[data-v-ac2be464]{background:var(--app-danger-bg);color:var(--app-danger)}.grid-slot__close[data-v-ac2be464]{margin-left:auto;width:20px;height:20px;border:none;border-radius:2px;background:#ffffff1a;color:#fffc;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-base)}.grid-slot__close[data-v-ac2be464]:hover{background:var(--app-danger-bg);color:var(--app-danger)}.grid-slot__error[data-v-ac2be464]{position:absolute;bottom:4px;left:4px;right:4px;font-size:10px;color:var(--app-danger);background:#000000b3;padding:2px 6px;border-radius:2px;z-index:2}.grid-slot__empty[data-v-ac2be464]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.grid-slot__empty-dot[data-v-ac2be464]{width:6px;height:6px;border-radius:50%;background:var(--app-border-strong)}.grid-slot__empty-text[data-v-ac2be464]{font-size:11px;color:var(--app-text-muted)}.live-grid[data-v-d5168cb4]{width:100%;height:100%;background:var(--app-bg);border-radius:var(--radius-sm);overflow:hidden}.device-panel[data-v-a91fc22f]{padding:12px}.device-panel__section[data-v-a91fc22f]{margin-bottom:16px}.device-panel__title[data-v-a91fc22f]{font-size:11px;font-weight:600;color:var(--app-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.device-panel__refresh[data-v-a91fc22f]{border:none;background:transparent;color:var(--app-text-muted);font-size:14px;cursor:pointer;padding:2px;border-radius:var(--radius-sm);transition:color var(--transition-base)}.device-panel__refresh[data-v-a91fc22f]:hover{color:var(--app-primary)}.device-panel__input-row[data-v-a91fc22f]{display:flex;gap:4px}.device-panel__input[data-v-a91fc22f]{flex:1;height:30px;padding:0 8px;border:1px solid var(--app-border);border-radius:var(--radius-sm);background:var(--app-bg-surface);color:var(--app-text);font-size:12px;outline:none;transition:border-color var(--transition-base)}.device-panel__input[data-v-a91fc22f]:focus{border-color:var(--app-primary)}.device-panel__input[data-v-a91fc22f]::placeholder{color:var(--app-text-muted)}.device-panel__add-btn[data-v-a91fc22f]{height:30px;padding:0 12px;border:1px solid var(--app-primary);border-radius:var(--radius-sm);background:var(--app-primary-bg);color:var(--app-primary);font-size:12px;cursor:pointer;white-space:nowrap;transition:all var(--transition-base)}.device-panel__add-btn[data-v-a91fc22f]:hover{background:var(--app-primary-bg-hover)}.device-panel__loading[data-v-a91fc22f],.device-panel__empty[data-v-a91fc22f]{font-size:12px;color:var(--app-text-muted);padding:12px 0;text-align:center}.device-panel__list[data-v-a91fc22f]{display:flex;flex-direction:column;gap:8px}.device-card[data-v-a91fc22f]{padding:8px;background:var(--app-bg-surface);border:1px solid var(--app-border);border-radius:var(--radius-sm)}.device-card__name[data-v-a91fc22f]{font-size:12px;font-weight:500;color:var(--app-text);margin-bottom:6px}.device-card__row[data-v-a91fc22f]{display:flex;align-items:center;gap:6px;margin-top:4px}.device-card__tag[data-v-a91fc22f]{font-size:10px;padding:1px 4px;border-radius:2px;background:var(--app-info-bg);color:var(--app-info);flex-shrink:0}.device-card__tag--drone[data-v-a91fc22f]{background:var(--app-success-bg);color:var(--app-success)}.device-card__btn[data-v-a91fc22f]{border:none;background:transparent;color:var(--app-text-secondary);font-size:11px;font-family:var(--font-mono);cursor:pointer;padding:2px 4px;border-radius:2px;transition:all var(--transition-base);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-card__btn[data-v-a91fc22f]:hover{background:var(--app-primary-bg);color:var(--app-primary)}.log-container[data-v-f7d069f3]{position:fixed;bottom:20px;right:20px;z-index:100}.log-fab[data-v-f7d069f3]{width:44px;height:44px;border:none;border-radius:50%;background:var(--app-bg-panel);border:1px solid var(--app-border);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:all var(--transition-base);position:relative}.log-fab[data-v-f7d069f3]:hover{background:var(--app-bg-card);border-color:var(--app-border-strong)}.log-fab__badge[data-v-f7d069f3]{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--app-danger);color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 4px}.log-panel[data-v-f7d069f3]{position:absolute;bottom:52px;right:0;width:420px;max-height:320px;background:var(--app-bg-panel);border:1px solid var(--app-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.log-panel__header[data-v-f7d069f3]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--app-border);flex-shrink:0}.log-panel__title[data-v-f7d069f3]{font-size:12px;font-weight:600;color:var(--app-text)}.log-panel__actions[data-v-f7d069f3]{display:flex;gap:4px}.log-panel__btn[data-v-f7d069f3]{border:none;background:transparent;color:var(--app-text-muted);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);transition:color var(--transition-base)}.log-panel__btn[data-v-f7d069f3]:hover{color:var(--app-text)}.log-panel__list[data-v-f7d069f3]{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.log-item[data-v-f7d069f3]{display:flex;align-items:baseline;gap:6px;padding:4px 12px;font-size:11px;border-bottom:1px solid var(--app-border-light)}.log-item__time[data-v-f7d069f3]{color:var(--app-text-muted);font-family:var(--font-mono);flex-shrink:0}.log-item__sn[data-v-f7d069f3]{color:var(--app-info);font-family:var(--font-mono);flex-shrink:0}.log-item__event[data-v-f7d069f3]{color:var(--app-text-secondary);flex-shrink:0}.log-item__event--error[data-v-f7d069f3]{color:var(--app-danger)}.log-item__data[data-v-f7d069f3]{color:var(--app-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.log-panel-enter-active[data-v-f7d069f3],.log-panel-leave-active[data-v-f7d069f3]{transition:all var(--transition-slow)}.log-panel-enter-from[data-v-f7d069f3],.log-panel-leave-to[data-v-f7d069f3]{opacity:0;transform:translateY(8px)}.live-stream-view[data-v-043d9ddd]{display:flex;height:100%;width:100%;overflow:hidden;background:var(--app-bg)}.live-stream-view__sidebar[data-v-043d9ddd]{width:280px;flex-shrink:0;background:var(--app-bg-panel);border-right:1px solid var(--app-border);overflow-y:auto;display:flex;flex-direction:column}.live-stream-view__main[data-v-043d9ddd]{flex:1;min-width:0;padding:4px}.sidebar-section[data-v-043d9ddd]{padding:12px}.sidebar-header[data-v-043d9ddd]{display:flex;align-items:center;justify-content:space-between}.sidebar-header__title[data-v-043d9ddd]{font-size:14px;font-weight:600;color:var(--app-text)}.sidebar-header__status[data-v-043d9ddd]{font-size:11px;padding:2px 8px;border-radius:var(--radius-full);background:var(--app-warning-bg);color:var(--app-warning)}.sidebar-header__status--ready[data-v-043d9ddd]{background:var(--app-success-bg);color:var(--app-success)}.sidebar-header__status--error[data-v-043d9ddd]{background:var(--app-danger-bg);color:var(--app-danger)}.sidebar-error[data-v-043d9ddd]{margin-top:8px;padding:8px;background:var(--app-danger-bg);border-radius:var(--radius-sm);font-size:11px;color:var(--app-danger);display:flex;align-items:center;gap:8px}.sidebar-error__retry[data-v-043d9ddd]{margin-left:auto;border:1px solid var(--app-danger);border-radius:var(--radius-sm);background:transparent;color:var(--app-danger);font-size:11px;padding:2px 8px;cursor:pointer;flex-shrink:0}.sidebar-divider[data-v-043d9ddd]{height:1px;background:var(--app-border);margin:0 12px}.device-window-page[data-v-f303f4b5]{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--app-bg)}.dw-toolbar[data-v-f303f4b5]{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--app-border);background:var(--app-bg-card);flex-shrink:0;gap:16px}.toolbar-left[data-v-f303f4b5]{display:flex;align-items:baseline;gap:12px;flex-shrink:0}.toolbar-title[data-v-f303f4b5]{font-size:16px;font-weight:600;color:var(--app-text);margin:0}.toolbar-desc[data-v-f303f4b5]{font-size:12px;color:var(--app-text-muted)}.toolbar-right[data-v-f303f4b5]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sn-input[data-v-f303f4b5]{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--app-border);background:var(--app-bg);color:var(--app-text);font-size:13px;width:320px;outline:none;transition:border-color var(--transition-base)}.sn-input[data-v-f303f4b5]:focus{border-color:var(--app-primary)}.sn-input[data-v-f303f4b5]::placeholder{color:var(--app-text-muted)}.btn[data-v-f303f4b5]{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--app-border);transition:all var(--transition-base);white-space:nowrap}.btn-primary[data-v-f303f4b5]{background:var(--app-primary);color:var(--app-text-inverse, #fff);border-color:var(--app-primary)}.btn-primary[data-v-f303f4b5]:hover{opacity:.9}.btn-secondary[data-v-f303f4b5]{background:transparent;color:var(--app-text-secondary);border-color:var(--app-border)}.btn-secondary[data-v-f303f4b5]:hover{color:var(--app-text);border-color:var(--app-border-strong)}.dw-guide[data-v-f303f4b5]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:40px;background:var(--app-bg)}.guide-content[data-v-f303f4b5]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.guide-icon[data-v-f303f4b5]{color:var(--app-text-muted);opacity:.5}.guide-title[data-v-f303f4b5]{font-size:18px;font-weight:600;color:var(--app-text);margin:0}.guide-desc[data-v-f303f4b5]{font-size:13px;color:var(--app-text-muted);margin:0;max-width:400px}.device-chips[data-v-f303f4b5]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;max-width:800px}.chips-label[data-v-f303f4b5]{font-size:12px;color:var(--app-text-muted);flex-shrink:0}.chips-loading[data-v-f303f4b5]{animation:pulse-f303f4b5 1.5s ease-in-out infinite}@keyframes pulse-f303f4b5{0%,to{opacity:.5}50%{opacity:1}}.device-chip[data-v-f303f4b5]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--app-border);background:var(--app-bg-card);cursor:pointer;transition:all var(--transition-base);font-size:12px}.device-chip[data-v-f303f4b5]:hover{border-color:var(--app-primary);background:var(--app-primary-bg)}.chip-name[data-v-f303f4b5]{color:var(--app-text);font-weight:500}.chip-sn[data-v-f303f4b5]{color:var(--app-text-muted);font-family:var(--font-mono);font-size:11px}.dw-sdk-container[data-v-f303f4b5]{flex:1;position:relative;min-height:0;overflow:hidden}.dw-map[data-v-f303f4b5]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.dw-realtime[data-v-f303f4b5]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.dw-realtime[data-v-f303f4b5] #__qiankun_microapp_wrapper_for_real_time_app__,.dw-realtime[data-v-f303f4b5] #__qiankun_microapp_wrapper_for_real_time_app__>div{height:100%!important;pointer-events:none}.dw-realtime[data-v-f303f4b5] #__qiankun_microapp_wrapper_for_real_time_app__ .real-time-wrapper{pointer-events:auto}.dw-map[data-v-f303f4b5]>div{width:100%;height:100%}.user-mgmt[data-v-af3ce971]{padding:24px;width:100%}.user-mgmt__header[data-v-af3ce971]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.user-mgmt__header h2[data-v-af3ce971]{color:var(--app-text-primary, #e6edf3);font-size:20px;font-weight:600;margin:0}.user-mgmt__error[data-v-af3ce971]{color:#f87171;font-size:13px;padding:8px 12px;background:#f8717114;border-radius:var(--radius-sm);border-left:3px solid #f87171;margin-bottom:16px}.user-mgmt__table-wrap[data-v-af3ce971]{overflow-x:auto;border:1px solid var(--app-border, rgba(255,255,255,.08));border-radius:var(--radius-md);background:var(--app-bg-panel, rgba(255,255,255,.04))}.user-table[data-v-af3ce971]{width:100%;border-collapse:collapse;font-size:13px}.user-table th[data-v-af3ce971],.user-table td[data-v-af3ce971]{padding:10px 14px;text-align:left;white-space:nowrap;color:var(--app-text-primary, #e6edf3)}.user-table th[data-v-af3ce971]{font-weight:500;color:var(--app-text-secondary, #8b949e);font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--app-border, rgba(255,255,255,.08))}.user-table tbody tr[data-v-af3ce971]{border-bottom:1px solid var(--app-border, rgba(255,255,255,.04));transition:background var(--transition-base)}.user-table tbody tr[data-v-af3ce971]:hover{background:#ffffff08}.user-table__empty[data-v-af3ce971]{text-align:center;color:var(--app-text-secondary, #8b949e);padding:32px!important}.user-table__actions[data-v-af3ce971]{display:flex;gap:4px;align-items:center}.username[data-v-af3ce971]{font-weight:500;margin-right:6px}.badge[data-v-af3ce971]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;background:#ffffff0f;color:var(--app-text-secondary, #8b949e)}.badge--primary[data-v-af3ce971]{background:#6366f126;color:#818cf8}.badge--success[data-v-af3ce971]{background:#22c55e1f;color:#22c55e}.badge--warning[data-v-af3ce971]{background:#facc151f;color:#facc15}.badge--danger[data-v-af3ce971]{background:#f871711f;color:#f87171}.badge--info[data-v-af3ce971]{background:#38bdf81f;color:#38bdf8;margin-left:4px}.btn[data-v-af3ce971]{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn--sm[data-v-af3ce971]{padding:4px 8px}.btn--ghost[data-v-af3ce971]{background:#ffffff0f;color:var(--app-text-secondary, #8b949e)}.btn--ghost[data-v-af3ce971]:hover:not(:disabled){background:#ffffff1a;color:var(--app-text-primary, #e6edf3)}.btn--primary[data-v-af3ce971]{background:var(--app-primary, #06b6d4);color:#fff}.btn--primary[data-v-af3ce971]:hover:not(:disabled){filter:brightness(1.1)}.btn--success[data-v-af3ce971]{background:#22c55e26;color:#22c55e}.btn--success[data-v-af3ce971]:hover:not(:disabled){background:#22c55e40}.btn--danger[data-v-af3ce971]{background:#f871711f;color:#f87171}.btn--danger[data-v-af3ce971]:hover:not(:disabled){background:#f8717133}.btn--approve[data-v-af3ce971]{background:#22c55e;color:#fff;font-weight:600}.btn--approve[data-v-af3ce971]:hover:not(:disabled){background:#16a34a}.btn--outline[data-v-af3ce971]{background:#ffffff14;color:var(--app-text-primary, #e6edf3);border:1px solid rgba(255,255,255,.15)}.btn--outline[data-v-af3ce971]:hover:not(:disabled){background:#ffffff24}.btn--grant-admin[data-v-af3ce971]{background:#38bdf826;color:#38bdf8}.btn--grant-admin[data-v-af3ce971]:hover:not(:disabled){background:#38bdf840}.btn--revoke-admin[data-v-af3ce971]{background:#facc1526;color:#facc15}.btn--revoke-admin[data-v-af3ce971]:hover:not(:disabled){background:#facc1540}.btn--delete[data-v-af3ce971]{background:#ef4444;color:#fff;font-weight:600}.btn--delete[data-v-af3ce971]:hover:not(:disabled){background:#dc2626}.btn[data-v-af3ce971]:disabled{opacity:.5;cursor:not-allowed}.spinning[data-v-af3ce971]{animation:spin-af3ce971 1s linear infinite}@keyframes spin-af3ce971{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay[data-v-af3ce971]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;z-index:1000}.modal-card[data-v-af3ce971]{background:var(--app-bg-panel, #1a1f2e);border:1px solid var(--app-border, rgba(255,255,255,.1));border-radius:var(--radius-lg);padding:24px;width:380px;max-width:90vw}.modal-card h3[data-v-af3ce971]{margin:0 0 8px;color:var(--app-text-primary, #e6edf3);font-size:16px}.modal-desc[data-v-af3ce971]{color:var(--app-text-secondary, #8b949e);font-size:13px;margin:0 0 16px}.modal-input[data-v-af3ce971]{width:100%;padding:10px 12px;border:1px solid var(--app-border, rgba(255,255,255,.12));border-radius:var(--radius-sm);background:transparent;color:var(--app-text-primary, #e6edf3);font-size:14px;outline:none;box-sizing:border-box}.modal-input[data-v-af3ce971]:focus{border-color:var(--app-primary, #06b6d4)}.modal-input+.modal-input[data-v-af3ce971]{margin-top:10px}.modal-mismatch[data-v-af3ce971]{color:#f87171;font-size:12px;margin:6px 0 0}.modal-actions[data-v-af3ce971]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.auth-page[data-v-8a76ac28]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#080c14;position:relative;overflow:hidden}.auth-bg-orb[data-v-8a76ac28]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;pointer-events:none}.auth-bg-orb--1[data-v-8a76ac28]{width:400px;height:400px;background:var(--app-primary, #06b6d4);top:-120px;right:-80px;opacity:.15}.auth-bg-orb--2[data-v-8a76ac28]{width:300px;height:300px;background:#7c3aed;bottom:-100px;left:-60px;opacity:.12}.auth-bg-orb--3[data-v-8a76ac28]{width:200px;height:200px;background:var(--app-primary, #06b6d4);top:50%;left:60%;opacity:.08}.auth-card[data-v-8a76ac28]{width:100%;max-width:380px;padding:40px 32px;background:#ffffff0a;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:0 24px 48px #0000004d;position:relative;z-index:1}.auth-brand[data-v-8a76ac28]{text-align:center;margin-bottom:32px}.brand-logo[data-v-8a76ac28]{height:64px;width:64px;margin-bottom:12px}.brand-name[data-v-8a76ac28]{margin:0 0 12px;font-size:24px;font-weight:700;color:#fff}.brand-subtitle[data-v-8a76ac28]{font-size:13px;color:#8b949e;margin:0}.auth-form[data-v-8a76ac28]{display:flex;flex-direction:column;gap:18px}.form-group[data-v-8a76ac28]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-8a76ac28]{color:#8b949e;font-size:12px;font-weight:500}.form-group input[data-v-8a76ac28]{padding:12px 14px;border:none;border-bottom:1.5px solid rgba(255,255,255,.12);border-radius:0;background:transparent;color:#e6edf3;font-size:14px;outline:none;transition:border-color var(--transition-base)}.form-group input[data-v-8a76ac28]:focus{border-bottom-color:var(--app-primary)}.form-group input[data-v-8a76ac28]::placeholder{color:#6b7280}.auth-error[data-v-8a76ac28]{color:#f87171;font-size:13px;margin:0;padding:8px 12px;background:#f8717114;border-radius:var(--radius-sm);border-left:3px solid #f87171}.auth-btn[data-v-8a76ac28]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--app-primary),var(--app-primary-active));color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base);margin-top:4px}.auth-btn[data-v-8a76ac28]:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--app-primary-glow)}.auth-btn[data-v-8a76ac28]:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.auth-footer[data-v-8a76ac28]{margin-top:24px;text-align:center}.auth-link-btn[data-v-8a76ac28]{display:inline-block;width:100%;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:#8b949e;font-size:13px;text-decoration:none;transition:all var(--transition-base)}.auth-link-btn[data-v-8a76ac28]:hover{border-color:var(--app-primary);color:var(--app-primary);background:var(--app-primary-bg)}.auth-page[data-v-b10e2b76]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#080c14;position:relative;overflow:hidden}.auth-bg-orb[data-v-b10e2b76]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;pointer-events:none}.auth-bg-orb--1[data-v-b10e2b76]{width:400px;height:400px;background:var(--app-primary, #06b6d4);top:-120px;right:-80px;opacity:.15}.auth-bg-orb--2[data-v-b10e2b76]{width:300px;height:300px;background:#7c3aed;bottom:-100px;left:-60px;opacity:.12}.auth-bg-orb--3[data-v-b10e2b76]{width:200px;height:200px;background:var(--app-primary, #06b6d4);top:50%;left:60%;opacity:.08}.auth-card[data-v-b10e2b76]{width:100%;max-width:380px;padding:36px 32px;background:#ffffff0a;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:0 24px 48px #0000004d;position:relative;z-index:1}.auth-brand[data-v-b10e2b76]{text-align:center;margin-bottom:28px}.brand-logo[data-v-b10e2b76]{height:64px;width:64px;margin-bottom:12px}.brand-name[data-v-b10e2b76]{margin:0 0 12px;font-size:24px;font-weight:700;color:#fff}.brand-subtitle[data-v-b10e2b76]{font-size:13px;color:#8b949e;margin:0}.auth-form[data-v-b10e2b76]{display:flex;flex-direction:column;gap:16px}.form-group[data-v-b10e2b76]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-b10e2b76]{color:#8b949e;font-size:12px;font-weight:500}.form-group input[data-v-b10e2b76]{padding:12px 14px;border:none;border-bottom:1.5px solid rgba(255,255,255,.12);border-radius:0;background:transparent;color:#e6edf3;font-size:14px;outline:none;transition:border-color var(--transition-base)}.form-group input[data-v-b10e2b76]:focus{border-bottom-color:var(--app-primary)}.form-group input[data-v-b10e2b76]::placeholder{color:#6b7280}.auth-error[data-v-b10e2b76]{color:#f87171;font-size:13px;margin:0;padding:8px 12px;background:#f8717114;border-radius:var(--radius-sm);border-left:3px solid #f87171}.auth-success[data-v-b10e2b76]{text-align:center;padding:16px;background:#22c55e14;border-radius:var(--radius-sm);border-left:3px solid #22c55e}.auth-success p[data-v-b10e2b76]{color:#22c55e;font-size:14px;margin:0}.auth-btn[data-v-b10e2b76]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--app-primary),var(--app-primary-active));color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base);margin-top:4px}.auth-btn[data-v-b10e2b76]:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--app-primary-glow)}.auth-btn[data-v-b10e2b76]:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.auth-footer[data-v-b10e2b76]{margin-top:20px;text-align:center}.auth-link-btn[data-v-b10e2b76]{display:inline-block;width:100%;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:#8b949e;font-size:13px;text-decoration:none;transition:all var(--transition-base)}.auth-link-btn[data-v-b10e2b76]:hover{border-color:var(--app-primary);color:var(--app-primary);background:var(--app-primary-bg)}.flight-task-list[data-v-faa498b7]{display:flex;flex-direction:column;height:100%;background:var(--app-bg)}.toolbar[data-v-faa498b7]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--app-border);flex-shrink:0}.toolbar-left[data-v-faa498b7]{display:flex;align-items:center;gap:12px}.toolbar-right[data-v-faa498b7]{display:flex;align-items:center;gap:8px}.status-filter[data-v-faa498b7]{padding:6px 10px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:13px;outline:none}.total-count[data-v-faa498b7]{font-size:13px;color:var(--app-text-secondary)}.refresh-btn[data-v-faa498b7],.create-btn[data-v-faa498b7]{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:transparent;color:var(--app-text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-base)}.refresh-btn[data-v-faa498b7]:hover:not(:disabled),.create-btn[data-v-faa498b7]:hover{background:var(--app-hover-bg);color:var(--app-text)}.create-btn[data-v-faa498b7]{background:var(--app-primary);border-color:var(--app-primary);color:#fff}.create-btn[data-v-faa498b7]:hover{background:var(--app-primary-hover);color:#fff}.spinning[data-v-faa498b7]{animation:spin-faa498b7 1s linear infinite}@keyframes spin-faa498b7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-bar[data-v-faa498b7]{padding:8px 16px;background:var(--app-danger-bg);color:var(--app-danger);font-size:13px;border-bottom:1px solid var(--app-border)}.table-wrapper[data-v-faa498b7]{flex:1;overflow-y:auto;min-height:0;padding:0 16px}.task-table[data-v-faa498b7]{width:100%;border-collapse:separate;border-spacing:0}.task-table thead[data-v-faa498b7]{position:sticky;top:0;z-index:1}.task-table th[data-v-faa498b7]{padding:8px 14px;text-align:left;font-weight:500;font-size:12px;color:var(--app-text-muted);background:var(--app-bg);border-bottom:1px solid var(--app-border);white-space:nowrap;text-transform:uppercase;letter-spacing:.5px}.task-table td[data-v-faa498b7]{padding:0 14px;height:44px;font-size:13px;color:var(--app-text);border-bottom:1px solid color-mix(in srgb,var(--app-border) 50%,transparent);white-space:nowrap}.col-name[data-v-faa498b7]{width:25%;min-width:180px}.col-sn[data-v-faa498b7]{width:15%;min-width:160px}.col-id[data-v-faa498b7]{width:6%;min-width:140px}.col-status[data-v-faa498b7]{width:10%;min-width:80px}.col-type[data-v-faa498b7]{width:8%;min-width:70px}.col-time[data-v-faa498b7]{width:16%;min-width:140px}.col-action[data-v-faa498b7]{width:20%;min-width:140px}.task-row[data-v-faa498b7]{cursor:pointer;transition:background var(--transition-base)}.task-row[data-v-faa498b7]:hover{background:var(--app-hover-bg)}.task-name[data-v-faa498b7]{color:var(--app-text);font-weight:500}.task-row:hover .task-name[data-v-faa498b7]{color:var(--app-primary)}.conflict-badge[data-v-faa498b7]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:500;color:var(--app-danger);background:color-mix(in srgb,var(--app-danger) 15%,transparent);white-space:nowrap;vertical-align:middle}.sn-code[data-v-faa498b7]{font-family:var(--font-mono);font-size:12px;color:var(--app-text-secondary)}.task-id[data-v-faa498b7]{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;font-family:var(--font-mono);font-size:12px;color:var(--app-text-muted)}.status-badge[data-v-faa498b7]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:500;color:var(--badge-color);background:color-mix(in srgb,var(--badge-color) 15%,transparent)}.action-btn[data-v-faa498b7]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--app-border);border-radius:14px;background:transparent;font-size:12px;cursor:pointer;transition:all var(--transition-base);margin-right:4px}.action-btn[data-v-faa498b7]:disabled{opacity:.5;cursor:not-allowed}.action-btn.execute[data-v-faa498b7]{color:var(--app-success);border-color:color-mix(in srgb,var(--app-success) 40%,transparent)}.action-btn.execute[data-v-faa498b7]:hover:not(:disabled){background:var(--app-success);color:#fff}.action-btn.pause[data-v-faa498b7]{color:var(--app-warning);border-color:color-mix(in srgb,var(--app-warning) 40%,transparent)}.action-btn.pause[data-v-faa498b7]:hover:not(:disabled){background:var(--app-warning);color:#fff}.action-btn.resume[data-v-faa498b7]{color:var(--app-success);border-color:color-mix(in srgb,var(--app-success) 40%,transparent)}.action-btn.resume[data-v-faa498b7]:hover:not(:disabled){background:var(--app-success);color:#fff}.action-btn.cancel[data-v-faa498b7],.action-btn.delete[data-v-faa498b7]{color:var(--app-danger);border-color:color-mix(in srgb,var(--app-danger) 40%,transparent)}.action-btn.cancel[data-v-faa498b7]:hover:not(:disabled),.action-btn.delete[data-v-faa498b7]:hover:not(:disabled){background:var(--app-danger);color:#fff}.action-btn.replay[data-v-faa498b7]{color:var(--app-primary);border-color:color-mix(in srgb,var(--app-primary) 40%,transparent)}.action-btn.replay[data-v-faa498b7]:hover{background:var(--app-primary);color:#fff}.action-btn.edit[data-v-faa498b7]{color:var(--app-primary);border-color:color-mix(in srgb,var(--app-primary) 40%,transparent)}.action-btn.edit[data-v-faa498b7]:hover{background:var(--app-primary);color:#fff}.empty-state[data-v-faa498b7],.loading-state[data-v-faa498b7]{display:flex;align-items:center;justify-content:center;padding:64px 16px;font-size:14px;color:var(--app-text-muted)}.segmented-control[data-v-24b5d2c9]{display:inline-flex;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--app-border);background:var(--app-bg-surface)}.segment-btn[data-v-24b5d2c9]{padding:8px 16px;border:none;background:transparent;color:var(--app-text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.segment-btn[data-v-24b5d2c9]:not(:last-child){border-right:1px solid var(--app-border)}.segment-btn[data-v-24b5d2c9]:hover:not(.active):not(:disabled){background:var(--app-hover-bg);color:var(--app-text)}.segment-btn[data-v-24b5d2c9]:disabled{cursor:not-allowed;opacity:.45}.segment-btn.active[data-v-24b5d2c9]:disabled{opacity:.7}.segment-btn.active[data-v-24b5d2c9]{background:var(--app-primary);color:#fff;font-weight:500}.task-basic-section[data-v-f2c00cbe]{display:flex;flex-direction:column;gap:20px}.form-field[data-v-f2c00cbe]{display:flex;flex-direction:column;gap:8px}.field-label[data-v-f2c00cbe]{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--app-text-secondary);font-weight:500}.info-icon[data-v-f2c00cbe]{color:var(--app-text-muted);cursor:help}.field-input[data-v-f2c00cbe]{padding:10px 12px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:14px;outline:none;transition:border-color var(--transition-base)}.field-input[data-v-f2c00cbe]:focus{border-color:var(--app-primary)}.field-input[data-v-f2c00cbe]::placeholder{color:var(--app-text-muted)}.modal-overlay[data-v-22eb1bfc]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--app-overlay)}.modal-panel[data-v-22eb1bfc]{display:flex;flex-direction:column;max-height:80vh;border-radius:var(--radius-lg);background:var(--app-bg-panel);border:1px solid var(--app-border);box-shadow:var(--shadow-lg)}.modal-header[data-v-22eb1bfc]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--app-border);flex-shrink:0}.modal-title[data-v-22eb1bfc]{font-size:16px;font-weight:600;color:var(--app-text);margin:0}.modal-close[data-v-22eb1bfc]{border:none;background:none;font-size:20px;color:var(--app-text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all var(--transition-base)}.modal-close[data-v-22eb1bfc]:hover{color:var(--app-text);background:var(--app-hover-bg)}.modal-body[data-v-22eb1bfc]{flex:1;overflow-y:auto;padding:20px}.modal-footer[data-v-22eb1bfc]{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--app-border);flex-shrink:0}.btn[data-v-22eb1bfc]{padding:8px 20px;border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:all var(--transition-base)}.btn-cancel[data-v-22eb1bfc]{border:1px solid var(--app-border);background:transparent;color:var(--app-text-secondary)}.btn-cancel[data-v-22eb1bfc]:hover{background:var(--app-hover-bg);color:var(--app-text)}.btn-confirm[data-v-22eb1bfc]{border:none;background:var(--app-primary);color:#fff;font-weight:500}.btn-confirm[data-v-22eb1bfc]:hover{background:var(--app-primary-hover)}.modal-enter-active[data-v-22eb1bfc],.modal-leave-active[data-v-22eb1bfc]{transition:opacity var(--transition-slow)}.modal-enter-active .modal-panel[data-v-22eb1bfc],.modal-leave-active .modal-panel[data-v-22eb1bfc]{transition:transform var(--transition-slow)}.modal-enter-from[data-v-22eb1bfc],.modal-leave-to[data-v-22eb1bfc]{opacity:0}.modal-enter-from .modal-panel[data-v-22eb1bfc],.modal-leave-to .modal-panel[data-v-22eb1bfc]{transform:scale(.95) translateY(10px)}.search-bar[data-v-339b3357]{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);margin-bottom:12px}.search-icon[data-v-339b3357]{color:var(--app-text-muted);flex-shrink:0}.search-input[data-v-339b3357]{flex:1;border:none;background:transparent;color:var(--app-text);font-size:14px;outline:none}.search-input[data-v-339b3357]::placeholder{color:var(--app-text-muted)}.wayline-list[data-v-339b3357]{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.list-loading[data-v-339b3357],.list-empty[data-v-339b3357]{padding:32px;text-align:center;font-size:14px;color:var(--app-text-muted)}.wayline-item[data-v-339b3357]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:1px solid transparent}.wayline-item[data-v-339b3357]:hover{background:var(--app-hover-bg)}.wayline-item.selected[data-v-339b3357]{background:var(--app-primary-bg);border-color:var(--app-primary)}.item-main[data-v-339b3357]{display:flex;flex-direction:column;gap:2px}.item-name[data-v-339b3357]{font-size:14px;color:var(--app-text);font-weight:500}.item-meta[data-v-339b3357]{font-size:12px;color:var(--app-text-muted)}.item-type[data-v-339b3357]{font-size:12px;color:var(--app-text-secondary);background:var(--app-bg-elevated);padding:2px 8px;border-radius:var(--radius-sm)}.wayline-section[data-v-f5ae4289]{display:flex;flex-direction:column;gap:8px}.field-label[data-v-f5ae4289]{font-size:13px;color:var(--app-text-secondary);font-weight:500}.select-trigger[data-v-f5ae4289]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:1px dashed var(--app-primary);border-radius:var(--radius-md);background:var(--app-primary-bg);color:var(--app-primary);font-size:14px;cursor:pointer;transition:all var(--transition-base)}.select-trigger[data-v-f5ae4289]:hover{background:var(--app-primary-bg-hover)}.selected-card[data-v-f5ae4289]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface)}.card-info[data-v-f5ae4289]{display:flex;flex-direction:column;gap:2px}.card-name[data-v-f5ae4289]{font-size:14px;color:var(--app-text);font-weight:500}.card-uuid[data-v-f5ae4289]{font-size:11px;color:var(--app-text-muted);font-family:var(--font-mono)}.card-actions[data-v-f5ae4289]{display:flex;gap:4px}.action-btn[data-v-f5ae4289]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--app-border);border-radius:var(--radius-sm);background:transparent;color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-base)}.action-btn[data-v-f5ae4289]:hover{color:var(--app-text);background:var(--app-hover-bg)}.search-bar[data-v-a8be5d1e]{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);margin-bottom:12px}.search-icon[data-v-a8be5d1e]{color:var(--app-text-muted);flex-shrink:0}.search-input[data-v-a8be5d1e]{flex:1;border:none;background:transparent;color:var(--app-text);font-size:14px;outline:none}.search-input[data-v-a8be5d1e]::placeholder{color:var(--app-text-muted)}.device-list[data-v-a8be5d1e]{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.list-loading[data-v-a8be5d1e],.list-empty[data-v-a8be5d1e]{padding:32px;text-align:center;font-size:14px;color:var(--app-text-muted)}.device-item[data-v-a8be5d1e]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:1px solid transparent}.device-item[data-v-a8be5d1e]:hover{background:var(--app-hover-bg)}.device-item.selected[data-v-a8be5d1e]{background:var(--app-primary-bg);border-color:var(--app-primary)}.item-main[data-v-a8be5d1e]{display:flex;flex-direction:column;gap:2px}.item-name[data-v-a8be5d1e]{font-size:14px;color:var(--app-text);font-weight:500}.item-sn[data-v-a8be5d1e]{font-size:11px;color:var(--app-text-muted);font-family:var(--font-mono)}.item-right[data-v-a8be5d1e]{display:flex;align-items:center;gap:12px}.item-model[data-v-a8be5d1e]{font-size:12px;color:var(--app-text-secondary)}.item-status[data-v-a8be5d1e]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--app-text-muted)}.item-status.online[data-v-a8be5d1e]{color:var(--app-success)}.device-section[data-v-5c8048b4]{display:flex;flex-direction:column;gap:8px}.field-label[data-v-5c8048b4]{font-size:13px;color:var(--app-text-secondary);font-weight:500}.select-trigger[data-v-5c8048b4]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:1px dashed var(--app-primary);border-radius:var(--radius-md);background:var(--app-primary-bg);color:var(--app-primary);font-size:14px;cursor:pointer;transition:all var(--transition-base)}.select-trigger[data-v-5c8048b4]:hover{background:var(--app-primary-bg-hover)}.selected-card[data-v-5c8048b4]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface)}.card-info[data-v-5c8048b4]{display:flex;flex-direction:column;gap:2px}.card-name[data-v-5c8048b4]{font-size:14px;color:var(--app-text);font-weight:500}.card-sn[data-v-5c8048b4]{font-size:11px;color:var(--app-text-muted);font-family:var(--font-mono)}.card-actions[data-v-5c8048b4]{display:flex;gap:4px}.action-btn[data-v-5c8048b4]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--app-border);border-radius:var(--radius-sm);background:transparent;color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-base)}.action-btn[data-v-5c8048b4]:hover{color:var(--app-text);background:var(--app-hover-bg)}.toggle-switch-wrapper[data-v-d59781e4]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label[data-v-d59781e4]{font-size:13px;color:var(--app-text)}.toggle-track[data-v-d59781e4]{position:relative;width:44px;height:24px;border-radius:var(--radius-full);background:var(--app-bg-elevated);border:1px solid var(--app-border);transition:all var(--transition-base)}.toggle-track.active[data-v-d59781e4]{background:var(--app-primary);border-color:var(--app-primary)}.toggle-thumb[data-v-d59781e4]{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform var(--transition-base)}.toggle-track.active .toggle-thumb[data-v-d59781e4]{transform:translate(20px)}.multi-modal-toggle[data-v-40f63c62]{border:1px solid var(--app-border);border-radius:var(--radius-md);padding:12px 14px}.toggle-row[data-v-40f63c62]{display:flex;align-items:center;justify-content:space-between}.toggle-text[data-v-40f63c62]{font-size:14px;color:var(--app-text)}.strategy-section[data-v-9bc90507]{display:flex;flex-direction:column;gap:20px}.form-field[data-v-9bc90507]{display:flex;flex-direction:column;gap:8px}.field-label[data-v-9bc90507]{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--app-text-secondary);font-weight:500}.info-icon[data-v-9bc90507]{color:var(--app-text-muted);cursor:help}.field-hint[data-v-9bc90507]{margin:0;font-size:12px;color:var(--app-text-muted)}.field-warning[data-v-9bc90507]{margin:0;font-size:12px;color:var(--app-warning)}.field-input[data-v-9bc90507]{padding:10px 12px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:var(--app-bg-surface);color:var(--app-text);font-size:14px;outline:none;transition:border-color var(--transition-base);color-scheme:dark}.field-input[data-v-9bc90507]:focus{border-color:var(--app-primary)}.repeat-config[data-v-9bc90507]{display:flex;flex-direction:column;gap:12px}.interval-input[data-v-9bc90507]{display:flex;align-items:center;gap:8px}.interval-label[data-v-9bc90507]{font-size:13px;color:var(--app-text-secondary)}.interval-num[data-v-9bc90507]{width:80px}.number-stepper[data-v-febc87cc]{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.step-btn[data-v-febc87cc]{padding:6px 10px;border:1px solid var(--app-border);border-radius:var(--radius-sm);background:var(--app-bg-surface);color:var(--app-text-secondary);font-size:12px;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-base)}.step-btn[data-v-febc87cc]:hover{background:var(--app-hover-bg);color:var(--app-text);border-color:var(--app-border-strong)}.value-display[data-v-febc87cc]{display:inline-flex;align-items:baseline;gap:4px;padding:6px 12px;border:1px solid var(--app-border);border-radius:var(--radius-sm);background:var(--app-bg-panel);min-width:60px;justify-content:center}.value-num[data-v-febc87cc]{font-size:14px;font-weight:500;color:var(--app-text);font-family:var(--font-mono)}.value-unit[data-v-febc87cc]{font-size:12px;color:var(--app-text-muted)}.safety-section[data-v-500a8432]{display:flex;flex-direction:column;gap:20px}.form-field[data-v-500a8432]{display:flex;flex-direction:column;gap:8px}.toggle-field[data-v-500a8432]{padding:0}.toggle-label-row[data-v-500a8432]{display:flex;align-items:center;justify-content:space-between}.field-label[data-v-500a8432]{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--app-text-secondary);font-weight:500}.info-icon[data-v-500a8432]{color:var(--app-text-muted);cursor:help}.create-view[data-v-d96e8423]{display:flex;flex-direction:column;height:100vh;background:var(--app-bg)}.create-header[data-v-d96e8423]{display:flex;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--app-border);flex-shrink:0}.back-btn[data-v-d96e8423]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--app-border);border-radius:var(--radius-md);background:transparent;color:var(--app-text-secondary);cursor:pointer;transition:all var(--transition-base)}.back-btn[data-v-d96e8423]:hover{color:var(--app-text);background:var(--app-hover-bg)}.page-title[data-v-d96e8423]{font-size:18px;font-weight:600;color:var(--app-text);margin:0}.create-main[data-v-d96e8423]{flex:1;display:flex;min-height:0}.form-panel[data-v-d96e8423]{width:480px;flex-shrink:0;border-right:1px solid var(--app-border);display:flex;flex-direction:column}.form-scroll[data-v-d96e8423]{flex:1;overflow-y:auto;display:flex;flex-direction:column}.form-container[data-v-d96e8423]{flex:1;padding:24px;display:flex;flex-direction:column;gap:24px}.field-error[data-v-d96e8423]{margin:-16px 0 0;font-size:12px;color:var(--app-danger)}.form-footer[data-v-d96e8423]{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--app-border);flex-shrink:0}.general-error[data-v-d96e8423]{margin:0 auto 0 0;font-size:13px;color:var(--app-danger)}.btn[data-v-d96e8423]{padding:10px 24px;border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:all var(--transition-base)}.btn-cancel[data-v-d96e8423]{border:1px solid var(--app-border);background:transparent;color:var(--app-text-secondary)}.btn-cancel[data-v-d96e8423]:hover{background:var(--app-hover-bg);color:var(--app-text)}.btn-confirm[data-v-d96e8423]{border:none;background:var(--app-primary);color:#fff;font-weight:500}.btn-confirm[data-v-d96e8423]:hover:not(:disabled){background:var(--app-primary-hover)}.btn-confirm[data-v-d96e8423]:disabled{opacity:.5;cursor:not-allowed}.map-panel[data-v-d96e8423]{flex:1;min-width:0;position:relative}.cesium-map[data-v-d96e8423]{width:100%;height:100%}.welcome-page[data-v-928d7402]{position:relative;min-height:100vh;background:#080c14;overflow-x:hidden;display:flex;flex-direction:column}.welcome-bg-orb[data-v-928d7402]{position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none}.welcome-bg-orb--1[data-v-928d7402]{width:480px;height:480px;background:var(--app-primary, #06b6d4);top:-160px;right:-120px;opacity:.14}.welcome-bg-orb--2[data-v-928d7402]{width:360px;height:360px;background:#7c3aed;bottom:-120px;left:-80px;opacity:.1}.welcome-bg-orb--3[data-v-928d7402]{width:240px;height:240px;background:var(--app-primary, #06b6d4);top:45%;left:55%;opacity:.06}.welcome-topbar[data-v-928d7402]{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:18px 40px}.welcome-brand[data-v-928d7402]{display:flex;align-items:center;gap:12px}.welcome-logo[data-v-928d7402]{height:32px;width:auto}.welcome-brand-name[data-v-928d7402]{font-size:16px;font-weight:600;color:#e6edf3;letter-spacing:.5px}.welcome-cta-btn[data-v-928d7402]:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.welcome-main[data-v-928d7402]{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;padding:48px 40px 80px}.welcome-hero[data-v-928d7402]{position:relative;text-align:center;max-width:760px;margin-bottom:40px;padding-top:40px}.welcome-hero-grid[data-v-928d7402]{position:absolute;top:0;right:-40%;bottom:-40px;left:-40%;background-image:linear-gradient(rgba(6,182,212,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(6,182,212,.06) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 60% 60% at 50% 30%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 60% 60% at 50% 30%,#000 30%,transparent 75%);pointer-events:none;z-index:0}.welcome-hero-glow[data-v-928d7402]{position:absolute;top:-60px;left:50%;transform:translate(-50%);width:560px;height:160px;background:radial-gradient(ellipse at center,rgba(6,182,212,.16),transparent 70%);pointer-events:none;z-index:0}.welcome-badge[data-v-928d7402]{position:relative;z-index:1;display:inline-block;padding:5px 14px;margin-bottom:20px;border:1px solid rgba(6,182,212,.3);border-radius:999px;background:#06b6d414;color:var(--app-primary);font-size:12px;letter-spacing:.5px;animation:welcome-fade-up-928d7402 .6s ease both}.welcome-title[data-v-928d7402]{position:relative;z-index:1;font-size:36px;font-weight:700;color:#e6edf3;margin:0 0 16px;line-height:1.3;animation:welcome-fade-up-928d7402 .6s ease .08s both}.welcome-subtitle[data-v-928d7402]{position:relative;z-index:1;font-size:15px;line-height:1.8;color:#8b949e;margin:0 auto 28px;max-width:640px;animation:welcome-fade-up-928d7402 .6s ease .16s both}.welcome-hero-actions[data-v-928d7402]{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;animation:welcome-fade-up-928d7402 .6s ease .24s both}.welcome-stats[data-v-928d7402]{position:relative;z-index:1;display:flex;justify-content:center;gap:48px;margin-top:40px;animation:welcome-fade-up-928d7402 .6s ease .32s both}.welcome-stat[data-v-928d7402]{display:flex;flex-direction:column;align-items:center;gap:4px}.welcome-stat-num[data-v-928d7402]{font-size:22px;font-weight:700;color:#e6edf3;line-height:1.2}.welcome-stat-label[data-v-928d7402]{font-size:12px;color:#8b949e}@keyframes welcome-fade-up-928d7402{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.welcome-cards[data-v-928d7402]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;width:100%;max-width:1080px;margin-bottom:48px}.welcome-card[data-v-928d7402]{padding:20px;border-radius:var(--radius-lg);background:#ffffff08;border:1px solid rgba(255,255,255,.07);transition:all var(--transition-base);animation:welcome-fade-up-928d7402 .5s ease both}.welcome-card[data-v-928d7402]:hover{transform:translateY(-3px);border-color:var(--app-primary);background:var(--app-primary-bg)}.welcome-card-icon-wrap[data-v-928d7402]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:14px;border-radius:10px;background:#06b6d414;border:1px solid rgba(6,182,212,.14);transition:all var(--transition-base)}.welcome-card:hover .welcome-card-icon-wrap[data-v-928d7402]{background:#06b6d429;border-color:var(--app-primary)}.welcome-card-icon[data-v-928d7402]{color:var(--app-primary)}.welcome-card-title[data-v-928d7402]{font-size:15px;font-weight:600;color:#e6edf3;margin:0 0 6px}.welcome-card-desc[data-v-928d7402]{font-size:12px;line-height:1.6;color:#8b949e;margin:0}.welcome-cta-btn[data-v-928d7402]{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:200px;padding:12px 28px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base);text-decoration:none}.welcome-cta-btn--ghost[data-v-928d7402]{border:1px solid rgba(255,255,255,.14);background:transparent;color:#e6edf3}.welcome-cta-btn--ghost[data-v-928d7402]:hover{border-color:var(--app-primary);color:var(--app-primary);background:var(--app-primary-bg)}.welcome-cta-btn--primary[data-v-928d7402]{border:none;background:linear-gradient(135deg,var(--app-primary),var(--app-primary-active));color:#fff}.welcome-cta-btn--primary[data-v-928d7402]:hover{transform:translateY(-1px);box-shadow:var(--app-primary-glow)}@media(max-width:1024px){.welcome-stats[data-v-928d7402]{gap:32px}}@media(max-width:640px){.welcome-topbar[data-v-928d7402]{padding:14px 20px}.welcome-brand-name[data-v-928d7402]{display:none}.welcome-main[data-v-928d7402]{padding:24px 20px 60px}.welcome-title[data-v-928d7402]{font-size:26px}.welcome-hero-grid[data-v-928d7402]{top:0;right:-100%;bottom:-20px;left:-100%;background-size:32px 32px}.welcome-stats[data-v-928d7402]{gap:24px}.welcome-stat-num[data-v-928d7402]{font-size:18px}.welcome-cards[data-v-928d7402]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.user-dropdown[data-v-32cfc23c]{position:relative}.user-trigger[data-v-32cfc23c]{display:flex;align-items:center;gap:8px;padding:4px 8px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--app-text);cursor:pointer;transition:background var(--transition-base)}.user-trigger[data-v-32cfc23c]:hover{background:var(--app-hover-bg)}.user-avatar[data-v-32cfc23c]{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--app-primary);color:#fff;font-size:13px;font-weight:600;flex-shrink:0}.user-name[data-v-32cfc23c]{font-size:13px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-arrow[data-v-32cfc23c]{color:var(--app-text-muted);transition:transform .2s}.user-arrow--open[data-v-32cfc23c]{transform:rotate(180deg)}.dropdown-menu[data-v-32cfc23c]{position:absolute;top:100%;right:0;min-width:180px;padding-top:6px;background:transparent;z-index:1000}.dropdown-menu-inner[data-v-32cfc23c]{background:var(--app-bg-elevated);border:1px solid var(--app-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.dropdown-header[data-v-32cfc23c]{padding:12px 14px;display:flex;flex-direction:column;gap:2px}.dropdown-username[data-v-32cfc23c]{font-size:13px;font-weight:500;color:var(--app-text)}.dropdown-role[data-v-32cfc23c]{font-size:11px;color:var(--app-text-muted)}.dropdown-divider[data-v-32cfc23c]{height:1px;background:var(--app-border)}.dropdown-item[data-v-32cfc23c]{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--app-text-secondary);font-size:13px;text-align:left;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.dropdown-item[data-v-32cfc23c]:hover{background:var(--app-hover-bg)}.dropdown-item--danger[data-v-32cfc23c]:hover{background:#ef44441a;color:var(--app-danger)}.dropdown-item--color[data-v-32cfc23c]{cursor:pointer}.color-input[data-v-32cfc23c]{width:20px;height:20px;margin-left:auto;border:none;border-radius:var(--radius-sm);cursor:pointer;padding:0;background:none}.color-input[data-v-32cfc23c]::-webkit-color-swatch-wrapper{padding:0}.color-input[data-v-32cfc23c]::-webkit-color-swatch{border:1px solid var(--app-border-strong);border-radius:var(--radius-sm)}.dropdown-enter-active[data-v-32cfc23c],.dropdown-leave-active[data-v-32cfc23c]{transition:opacity .15s,transform .15s}.dropdown-enter-from[data-v-32cfc23c],.dropdown-leave-to[data-v-32cfc23c]{opacity:0;transform:translateY(-4px)}.top-nav[data-v-4650c1fc]{display:flex;align-items:center;height:48px;padding:0 20px;background:var(--app-bg-panel);border-bottom:1px solid var(--app-border);flex-shrink:0;gap:8px}.top-nav__logo[data-v-4650c1fc]{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-right:12px}.logo-text[data-v-4650c1fc]{height:28px;width:auto;display:block;white-space:nowrap}.top-nav__brand-name[data-v-4650c1fc]{font-size:16px;font-weight:600;white-space:nowrap;color:var(--app-text)}.top-nav__items[data-v-4650c1fc]{display:flex;align-items:center;gap:2px;flex:1;justify-content:center;overflow-x:auto}.nav-item[data-v-4650c1fc]{display:flex;align-items:center;gap:5px;padding:0 14px;height:48px;text-decoration:none;color:#ffffffd9;font-size:15px;font-weight:500;white-space:nowrap;transition:color var(--transition-base);position:relative;border:none;background:none}.nav-item[data-v-4650c1fc]:hover{color:#fff}.nav-item--active[data-v-4650c1fc]{color:var(--app-primary-hover);font-weight:600}.nav-item--active[data-v-4650c1fc]:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;border-radius:1px 1px 0 0;background:var(--app-primary-hover)}.nav-item--active .nav-icon[data-v-4650c1fc]{color:var(--app-primary-hover)}.nav-icon[data-v-4650c1fc]{flex-shrink:0;transition:color var(--transition-base)}.top-nav__actions[data-v-4650c1fc]{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:12px}.ai-btn[data-v-4650c1fc]{height:32px;padding:0 10px;border:none;border-radius:var(--radius-md);background:transparent;color:#ffffffa6;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all var(--transition-base)}.ai-btn__label[data-v-4650c1fc]{font-size:13px;font-weight:500;white-space:nowrap}.ai-btn__icon[data-v-4650c1fc]{width:22px;height:22px;border-radius:50%}.ai-btn[data-v-4650c1fc]:hover{background:#ffffff14;color:#fff}.ai-btn--active[data-v-4650c1fc]{background:#7c3aed1f;color:#a78bfa}.chat-message[data-v-4dd90a10]{display:flex;flex-direction:column;gap:4px;padding:4px 0}.chat-message--user[data-v-4dd90a10]{align-items:flex-end}.chat-message--assistant[data-v-4dd90a10]{align-items:flex-start}.chat-message__bubble[data-v-4dd90a10]{max-width:88%;border-radius:14px;padding:12px 16px;font-size:13.5px;line-height:1.65;word-break:break-word}.chat-message__bubble--user[data-v-4dd90a10]{background:#7c3aed26;color:var(--app-text, #e6edf3);border-bottom-right-radius:4px}.chat-message__bubble--assistant[data-v-4dd90a10]{background:var(--app-bg-card, #1c2333);color:var(--app-text, #e6edf3);border-bottom-left-radius:4px;border:1px solid var(--app-border, #30363d)}.chat-message__markdown[data-v-4dd90a10] p{margin:0 0 8px}.chat-message__markdown[data-v-4dd90a10] p:last-child{margin-bottom:0}.chat-message__markdown[data-v-4dd90a10] ul,.chat-message__markdown[data-v-4dd90a10] ol{padding-left:20px;margin:4px 0}.chat-message__markdown[data-v-4dd90a10] code{background:#00000040;padding:2px 5px;border-radius:4px;font-size:12px;font-family:JetBrains Mono,Fira Code,monospace}.chat-message__markdown[data-v-4dd90a10] pre{background:#00000059;border-radius:6px;padding:10px 12px;overflow-x:auto;margin:6px 0}.chat-message__markdown[data-v-4dd90a10] pre code{background:none;padding:0}.chat-message__markdown[data-v-4dd90a10] blockquote{border-left:3px solid var(--app-primary, #1a73e8);padding-left:10px;margin:4px 0;color:var(--app-text-secondary, #8b949e)}.chat-message__confirm[data-v-4dd90a10]{margin-top:10px;padding:10px 12px;background:#0003;border-radius:8px;border:1px solid var(--app-border, #30363d)}.chat-message__confirm-info[data-v-4dd90a10]{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.chat-message__confirm-tool[data-v-4dd90a10]{font-size:12px;font-weight:600;color:var(--app-primary, #1a73e8);font-family:monospace}.chat-message__confirm-desc[data-v-4dd90a10]{font-size:12px;color:var(--app-text-secondary, #8b949e);line-height:1.5}.chat-message__confirm-actions[data-v-4dd90a10]{display:flex;gap:8px}.chat-message__btn[data-v-4dd90a10]{padding:5px 14px;border-radius:6px;font-size:12px;cursor:pointer;border:none;transition:opacity .15s}.chat-message__btn[data-v-4dd90a10]:hover{opacity:.85}.chat-message__btn--approve[data-v-4dd90a10]{background:var(--app-success, #3fb950);color:#fff}.chat-message__btn--reject[data-v-4dd90a10]{background:var(--app-bg-card-hover, #242d3d);color:var(--app-text, #e6edf3);border:1px solid var(--app-border, #30363d)}.chat-message__confirm-status[data-v-4dd90a10]{font-size:12px;font-weight:500}.chat-message__confirm-status--approved[data-v-4dd90a10]{color:var(--app-success, #3fb950)}.chat-message__confirm-status--rejected[data-v-4dd90a10]{color:var(--app-danger, #f85149)}.chat-message__time[data-v-4dd90a10]{font-size:11px;color:var(--app-text-muted, #848d97)}.chat-message__status[data-v-4dd90a10]{display:flex;align-items:center;gap:6px;padding:2px 0 6px}.chat-message__status-dot[data-v-4dd90a10]{width:7px;height:7px;border-radius:50%;background:var(--app-primary, #1a73e8);flex-shrink:0;animation:status-pulse-4dd90a10 1.2s ease-in-out infinite}.chat-message__status-text[data-v-4dd90a10]{font-size:12px;color:var(--app-text-secondary, #8b949e)}@keyframes status-pulse-4dd90a10{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.chat-message-list[data-v-ce713e99]{flex:1;overflow-y:auto;padding:16px 12px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:var(--app-border, #30363d) transparent}.chat-message-list[data-v-ce713e99]::-webkit-scrollbar{width:4px}.chat-message-list[data-v-ce713e99]::-webkit-scrollbar-track{background:transparent}.chat-message-list[data-v-ce713e99]::-webkit-scrollbar-thumb{background:var(--app-border, #30363d);border-radius:2px}.chat-message-list__empty[data-v-ce713e99]{flex:1;display:flex;align-items:center;justify-content:center}.chat-message-list__empty-text[data-v-ce713e99]{font-size:13px;color:var(--app-text-muted, #848d97);text-align:center}.chat-message-list__typing[data-v-ce713e99]{display:flex;align-items:center;gap:4px;padding:8px 14px;align-self:flex-start}.chat-message-list__typing-dot[data-v-ce713e99]{width:6px;height:6px;border-radius:50%;background:var(--app-text-muted, #848d97);animation:typing-bounce-ce713e99 1.2s ease-in-out infinite}.chat-message-list__typing-dot[data-v-ce713e99]:nth-child(2){animation-delay:.2s}.chat-message-list__typing-dot[data-v-ce713e99]:nth-child(3){animation-delay:.4s}@keyframes typing-bounce-ce713e99{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}.chat-input[data-v-52d4f703]{padding:12px 16px 16px;border-top:1px solid var(--app-border, #30363d);background:var(--app-bg-panel, #161b22);flex-shrink:0}.chat-input__row[data-v-52d4f703]{display:flex;align-items:center;gap:8px;background:var(--app-bg-card, #1c2333);border:1px solid var(--app-border, #30363d);border-radius:22px;padding:4px 4px 4px 16px;transition:border-color .15s}.chat-input__row[data-v-52d4f703]:focus-within{border-color:#7c3aed}.chat-input__field[data-v-52d4f703]{flex:1;border:none;background:transparent;color:var(--app-text, #e6edf3);font-size:13px;line-height:1.5;outline:none;font-family:inherit}.chat-input__field[data-v-52d4f703]::placeholder{color:var(--app-text-muted, #848d97)}.chat-input__field--recording[data-v-52d4f703]{color:#e6edf380}.chat-input__field[data-v-52d4f703]:disabled{opacity:.5;cursor:not-allowed}.chat-input__send[data-v-52d4f703]{padding:8px 18px;border:none;border-radius:18px;background:#7c3aed;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s;flex-shrink:0}.chat-input__send[data-v-52d4f703]:hover:not(:disabled){opacity:.85}.chat-input__send[data-v-52d4f703]:disabled{opacity:.4;cursor:not-allowed}.chat-input__error[data-v-52d4f703]{font-size:12px;color:#f87171;padding:0 4px 6px}.chat-input__mic[data-v-52d4f703]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--app-text-muted, #848d97);cursor:pointer;flex-shrink:0;transition:color .15s,background .15s}.chat-input__mic[data-v-52d4f703]:hover:not(:disabled){color:var(--app-text, #e6edf3);background:var(--app-bg-hover, #21262d)}.chat-input__mic[data-v-52d4f703]:disabled{opacity:.4;cursor:not-allowed}.chat-input__mic--recording[data-v-52d4f703]{color:#f87171;animation:mic-pulse-52d4f703 1.2s ease-in-out infinite}@keyframes mic-pulse-52d4f703{0%,to{opacity:1}50%{opacity:.5}}.chat-drawer[data-v-1993d754]{display:flex;flex-direction:column;height:100vh;background:var(--app-bg-panel, #161b22);border-left:1px solid var(--app-border, #30363d);position:fixed;top:0;right:0;z-index:1000;box-shadow:-4px 0 24px #0000004d;overflow:hidden}.drawer-enter-active[data-v-1993d754],.drawer-leave-active[data-v-1993d754]{transition:transform .25s ease,opacity .2s ease;overflow:hidden}.drawer-enter-from[data-v-1993d754],.drawer-leave-to[data-v-1993d754]{transform:translate(100%);opacity:0}.chat-drawer__resize-handle[data-v-1993d754]{position:absolute;left:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent;transition:background .15s;z-index:10}.chat-drawer__resize-handle[data-v-1993d754]:hover,.chat-drawer__resize-handle--dragging[data-v-1993d754]{background:#7c3aed}.chat-drawer__header[data-v-1993d754]{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;border-bottom:1px solid var(--app-border, #30363d);flex-shrink:0}.chat-drawer__header-left[data-v-1993d754]{display:flex;align-items:center;gap:8px}.chat-drawer__status-dot[data-v-1993d754]{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0}.chat-drawer__title[data-v-1993d754]{font-size:15px;font-weight:700;color:var(--app-text, #e6edf3)}.chat-drawer__badge[data-v-1993d754]{font-size:11px;font-weight:500;padding:2px 8px;border-radius:4px;background:#7c3aed33;color:#a78bfa}.chat-drawer__header-actions[data-v-1993d754]{display:flex;align-items:center;gap:4px}.chat-drawer__icon-btn[data-v-1993d754]{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--app-text-secondary, #8b949e);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.chat-drawer__icon-btn[data-v-1993d754]:hover{background:var(--app-bg-card-hover, #242d3d);color:var(--app-text, #e6edf3)}.chat-drawer__welcome[data-v-1993d754]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center;gap:12px}.welcome-icon[data-v-1993d754]{margin-bottom:8px;color:var(--app-primary)}.welcome-title[data-v-1993d754]{font-size:18px;font-weight:600;color:var(--app-text, #e6edf3);margin:0}.welcome-desc[data-v-1993d754]{font-size:14px;color:var(--app-text-secondary, #8b949e);margin:0 0 12px;line-height:1.5}.chat-drawer__quick-prompts[data-v-1993d754]{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;flex-shrink:0}.chat-drawer__chip[data-v-1993d754]{padding:6px 14px;border-radius:16px;border:1px solid var(--app-border, #30363d);background:var(--app-bg-card, #1c2333);color:var(--app-text-secondary, #8b949e);font-size:12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.chat-drawer__chip[data-v-1993d754]:hover{background:#7c3aed1a;color:#a78bfa;border-color:#7c3aed4d}.toast-container[data-v-17ca9781]{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast-item[data-v-17ca9781]{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);background:var(--app-bg-elevated);border:1px solid var(--app-border-strong);box-shadow:var(--shadow-lg);font-size:13px;color:var(--app-text);pointer-events:auto;min-width:240px;max-width:380px}.toast-item--success .toast-icon[data-v-17ca9781]{color:var(--app-success)}.toast-item--error .toast-icon[data-v-17ca9781]{color:var(--app-danger)}.toast-item--warning .toast-icon[data-v-17ca9781]{color:var(--app-warning)}.toast-item--info .toast-icon[data-v-17ca9781]{color:var(--app-info)}.toast-text[data-v-17ca9781]{flex:1;line-height:1.4}.toast-close[data-v-17ca9781]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--app-text-muted);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.toast-close[data-v-17ca9781]:hover{background:var(--app-hover-bg);color:var(--app-text)}.toast-action[data-v-17ca9781]{flex-shrink:0;padding:2px 8px;border:1px solid var(--app-primary);border-radius:var(--radius-sm);background:transparent;color:var(--app-primary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.toast-action[data-v-17ca9781]:hover{background:var(--app-primary);color:#fff}.toast-enter-active[data-v-17ca9781]{transition:all .25s ease}.toast-leave-active[data-v-17ca9781]{transition:all .2s ease}.toast-enter-from[data-v-17ca9781]{opacity:0;transform:translate(20px)}.toast-leave-to[data-v-17ca9781]{opacity:0;transform:translate(20px) scale(.95)}.toast-move[data-v-17ca9781]{transition:transform .25s ease}.layout-fullscreen[data-v-966b11a6]{height:100vh}.layout-app[data-v-966b11a6]{display:flex;flex-direction:column;height:100vh;overflow:hidden}.layout-main[data-v-966b11a6]{flex:1;overflow-y:auto}:root{--app-bg: #0b0f15;--app-bg-panel: #111827;--app-bg-surface: #1a2332;--app-bg-card: #1f2b3d;--app-bg-card-hover: #263448;--app-bg-elevated: #2d3a4e;--sidebar-bg: #0d1219;--app-text: #e6edf3;--app-text-secondary: #8b949e;--app-text-muted: #6b7280;--app-text-inverse: #0b0f15;--app-border: rgba(255, 255, 255, .08);--app-border-light: rgba(255, 255, 255, .05);--app-border-strong: rgba(255, 255, 255, .15);--app-hover-bg: rgba(255, 255, 255, .06);--app-active-bg: rgba(255, 255, 255, .1);--app-overlay: rgba(0, 0, 0, .6)}:root{--app-success: #34d399;--app-success-bg: rgba(52, 211, 153, .12);--app-warning: #fbbf24;--app-warning-bg: rgba(251, 191, 36, .12);--app-danger: #f87171;--app-danger-bg: rgba(248, 113, 113, .12);--app-info: #60a5fa;--app-info-bg: rgba(96, 165, 250, .12)}:root{--app-primary: var(--fh-brand-primary, #06b6d4);--app-primary-hover: var(--fh-brand-primary-hover, #22d3ee);--app-primary-active: var(--fh-brand-primary-active, #0891b2);--app-primary-bg: var(--fh-brand-primary-bg, rgba(6, 182, 212, .1));--app-primary-bg-hover: var(--fh-brand-primary-bg-hover, rgba(6, 182, 212, .18));--app-primary-glow: var(--fh-brand-primary-glow, 0 0 12px rgba(6, 182, 212, .3))}:root{--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .2);--shadow-glow: var(--app-primary-glow);--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .25s ease;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px}:root{--fh-bg-sidebar: var(--sidebar-bg);--fh-text-primary: var(--app-text);--fh-text-secondary: var(--app-text-secondary);--fh-text-muted: var(--app-text-muted);--fh-border-color: var(--app-border);--fh-hover-bg: var(--app-hover-bg);--fh-active-bg: var(--app-primary-bg)}.fh2-container{display:flex;flex-direction:column;height:100%;width:100%}#project-app-container>div,#cockpit-app-container>div,.map-app-container>div{width:100%;height:100%}.project-details{position:relative;width:100%;display:flex;flex:1;overflow:auto}.project-details .right-micro-app{position:relative;display:flex;flex:1}.project-details .right-micro-app .maps-micro-app{display:flex;flex:1}.project-details .right-micro-app .map-app-placeholder{flex:1;position:relative;display:flex;flex-direction:column}.project-details .right-micro-app .map-app-container{height:100%}.project-details .right-micro-app #wayline-app-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.device-details{position:relative;width:100%;display:flex;flex:1;overflow:auto}.device-details .right-micro-app{position:relative;display:flex;flex:1}.device-details .right-micro-app .map-app-placeholder{flex:1;position:relative;display:flex;flex-direction:column}.device-details .right-micro-app .map-app-container{height:100%}html,body,#app{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-sidebar,.app-sidebar *,.layout-main,.layout-main *:not([class*=uranus]):not([class*=ant-]){box-sizing:border-box}.app-sidebar{color:var(--app-text)}.layout-main{background:var(--app-bg);color:var(--app-text)}a{text-decoration:none;color:inherit}#app button{font-family:inherit}#app :focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}#app ::selection{background:var(--app-primary-bg);color:var(--app-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--app-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--app-text-muted)}.layout-fill{width:100%;height:100%}.layout-app{display:flex;height:100vh;overflow:hidden}.layout-main{flex:1;overflow:auto}.page-enter-active,.page-leave-active{transition:opacity var(--transition-slow),transform var(--transition-slow)}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-4px)}
