@charset "UTF-8";:root{--bg: #f5f7fb;--surface: #ffffff;--surface-soft: #f6f8fc;--surface-strong: #eef2f8;--border: #e3e9f2;--border-soft: #edf2f8;--text: #1e293b;--text2: #64748b;--text3: #94a3b8;--blue: #2563eb;--blue-strong: #1d4ed8;--blue-soft: #eaf1ff;--green: #059669;--green-soft: #e8f7f1;--red: #dc2626;--amber: #b7791f;--radius: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 1px rgba(15, 23, 42, .03);--shadow: 0 1px 3px rgba(15, 23, 42, .05), 0 4px 12px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06), 0 16px 40px rgba(15, 23, 42, .12);--ring: 0 0 0 3px rgba(37, 99, 235, .14);--page-gap: 0;--radius-xl: 14px;--desktop: #e7ebf3;--center-pad: 12px}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{background:var(--desktop);color:var(--text);font:14px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#app{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.btn{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:12px;font-weight:650;letter-spacing:.2px;cursor:pointer;white-space:nowrap;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .06s}.btn:hover{background:var(--surface-strong);border-color:#c8d2de}.btn:active{transform:translateY(.5px)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--blue-strong);border-color:var(--blue-strong);box-shadow:var(--shadow)}.btn-xs{height:24px;padding:0 8px;font-size:11px}.btn-danger{color:var(--red)}.btn-danger:hover{background:#fff1f2;border-color:#fecaca}.btn-icon{width:24px;height:24px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text3);cursor:pointer;font-size:12px}.btn-icon:hover{background:#fff1f2;border-color:#fecaca;color:var(--red)}.btn-icon-only{width:28px;height:28px;min-width:0;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:0}.btn-icon-only.app-icon,.btn-icon-only .app-icon{display:inline-flex}.btn-icon.danger{color:var(--red)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-soft, #f1f5f9)}.seg-btn{border:0;background:transparent;color:var(--text2);font:600 11px/1 system-ui,-apple-system,sans-serif;padding:0 10px;height:24px;cursor:pointer;white-space:nowrap}.seg-btn:hover{background:#0f172a0f;color:var(--text)}.seg-btn.is-active{background:var(--blue);color:#fff}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.file-btn{position:relative;overflow:hidden}.file-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.hidden-file-input{display:none}.config-input{height:28px;min-width:88px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:12px}.config-input.code{width:118px;font-family:Consolas,SF Mono,monospace}.config-input.num{width:88px}.config-input.wide{width:220px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-btn{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:12px;font-weight:650;letter-spacing:.2px;cursor:pointer;white-space:nowrap;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .06s}.app-btn:hover{background:var(--surface-strong);border-color:#c8d2de}.app-btn:active{transform:translateY(.5px)}.app-btn:disabled{cursor:not-allowed;opacity:.55}.app-btn.is-primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:var(--shadow-sm)}.app-btn.is-primary:hover{background:var(--blue-strong);border-color:var(--blue-strong);box-shadow:var(--shadow)}.app-btn.is-danger{color:var(--red)}.app-btn.is-danger:hover{background:#fff1f2;border-color:#fecaca}.app-btn.is-xs{height:24px;padding:0 8px;font-size:11px}.app-btn.is-icon-only{width:28px;height:28px;min-width:0;padding:0;gap:0}.app-btn.is-ghost{width:24px;height:24px;padding:0;gap:0;border-color:transparent;background:transparent;color:var(--text3);font-size:12px}.app-btn.is-ghost:hover{background:#fff1f2;border-color:#fecaca;color:var(--red)}.app-btn.is-ghost.is-danger{color:var(--red)}.app-btn.is-active{background:var(--blue);border-color:var(--blue);color:#fff}.app-btn.is-active:hover{background:var(--blue-strong);border-color:var(--blue-strong)}.curve-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px}.empty-hint{padding:22px 6px;color:var(--text3);text-align:center;font-size:12px}.curve-card{border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface);padding:10px;box-shadow:var(--shadow-sm);transition:box-shadow .14s,border-color .14s}.curve-card:hover{border-color:#cbd5e1;box-shadow:var(--shadow)}.field-group-card{border-left:3px solid var(--blue);background:#f4f8ff}.curve-card-head{display:flex;align-items:center;gap:7px;min-width:0}.curve-dot{width:14px;height:3px;flex:0 0 auto;border-radius:2px}.curve-name{flex:1;min-width:0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font:700 12px/1.3 SF Mono,Consolas,monospace}.curve-card-params{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:end;margin-top:7px}.field-group-params{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;padding:6px 0 2px 24px}.field-group-params>.btn{grid-column:3}.param-row{min-width:0;display:flex;align-items:center;gap:4px}.param-tag{flex:0 0 auto;color:var(--text3);font-size:10px;white-space:nowrap}.param-input{width:100%;min-width:0;height:24px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);outline:none;font:11px SF Mono,Consolas,monospace;transition:border-color .14s,box-shadow .14s}.param-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.color-row{gap:0}.curve-card-params .color-row{grid-column:1}.curve-card-params .param-row:not(.color-row){display:block}.curve-card-params .param-row:not(.color-row) .param-tag{display:block;margin-bottom:2px;line-height:1}.curve-card-params>.btn{grid-column:4;justify-self:end}.color-row .param-tag{display:none}.color-input{width:28px;height:22px;padding:2px;border:1px solid var(--border);border-radius:4px;background:var(--surface-soft);cursor:pointer}.switch-mini{position:relative;width:30px;height:17px;display:inline-block;flex:0 0 auto}.switch-mini input{width:0;height:0;opacity:0}.slider-mini{position:absolute;inset:0;border-radius:999px;background:#cbd5e1;cursor:pointer;transition:background .14s}.slider-mini:before{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a33;transition:transform .14s}.switch-mini input:checked+.slider-mini{background:var(--blue)}.switch-mini input:checked+.slider-mini:before{transform:translate(13px)}.header{height:58px;min-height:58px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);z-index:5}.header-left,.header-right,.brand{display:flex;align-items:center;min-width:0}.header-left{gap:14px}.header-right{gap:8px;flex-wrap:wrap;justify-content:flex-end}.header-actions{display:inline-flex;align-items:center;gap:6px;padding-left:14px;margin-left:4px;border-left:1px solid var(--border-soft)}.brand{gap:10px}.brand-mark{width:26px;height:26px;flex-shrink:0;border-radius:6px;object-fit:contain;box-shadow:var(--shadow-sm)}.logo{font-size:16px;font-weight:750;line-height:1.1;white-space:nowrap}.subtitle{margin-top:2px;font-size:11px;color:var(--text3);white-space:nowrap}.loading-text{font-size:12px;color:var(--blue)}.badge{height:24px;display:inline-flex;align-items:center;max-width:220px;padding:0 9px;border:1px solid var(--border-soft);border-radius:999px;color:var(--text2);background:var(--surface-soft);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-green{border-color:#b7ead4;background:var(--green-soft);color:var(--green)}.main{flex:1;min-height:0;display:grid;grid-template-columns:320px minmax(420px,1fr);overflow:hidden}.main.view-three{grid-template-columns:minmax(420px,1fr)}.panel-left,.panel-center{min-height:0;background:var(--surface)}.panel-left{display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border);background:var(--surface)}.panel-center{display:flex;flex-direction:column;overflow:hidden;padding:0 var(--center-pad)}.panel-head{height:48px;min-height:48px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border-soft);background:var(--surface);color:var(--text2);font-size:12px;font-weight:750}.panel-head span{display:block;color:var(--text)}.panel-head small{display:block;margin-top:1px;color:var(--text3);font-size:10px;font-weight:600}.input-sm{width:112px;height:28px;padding:0 9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none;font-size:12px}.input-sm:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.tree{flex:1;min-height:160px;overflow-y:auto;padding:6px 0}.tree-parent{min-height:32px;display:flex;align-items:center;gap:6px;padding:5px 12px 5px 10px;border-left:3px solid transparent;color:var(--text);cursor:pointer;font:650 13px/1.2 SF Mono,Consolas,monospace;user-select:none}.tree-parent:hover{background:var(--blue-soft)}.tree-parent.is-active{background:var(--blue-soft);border-left-color:var(--blue);color:var(--blue-strong)}.arrow{width:14px;color:var(--text3);text-align:center;font-size:11px}.tree-count{margin-left:auto;padding:1px 6px;border-radius:999px;background:var(--surface-strong);color:var(--text3);font-size:10px;font-family:inherit}.tree-children{padding:2px 0 5px 12px}.tree-leaf{min-height:26px;display:flex;align-items:center;gap:7px;padding:4px 12px 4px 25px;color:var(--text2);cursor:pointer;font-size:12px;user-select:none}.tree-leaf:hover{background:var(--surface-soft);color:var(--text)}.tree-leaf.is-active{background:var(--blue-soft);color:var(--text);font-weight:700}.dot{width:8px;height:8px;flex:0 0 auto;border:1px solid #cbd5e1;border-radius:50%}.tree-leaf.is-active .dot{border-color:transparent}.field-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.field-panel-head{min-height:48px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border-soft);background:var(--surface)}.field-panel-head span{display:block;color:var(--text);font-size:12px;font-weight:800}.field-panel-head small{display:block;margin-top:1px;color:var(--text3);font-size:10px;font-weight:600}.field-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.field-list{flex:1;min-height:0;overflow-y:auto;padding:8px}.field-section-title{margin:10px 0 6px;padding-left:7px;border-left:3px solid var(--blue);color:var(--text2);font-size:11px;font-weight:800}.view-tabs{display:inline-grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface-strong)}.view-tab{height:24px;min-width:44px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:var(--text2);font-size:11px;font-weight:700;letter-spacing:.3px;cursor:pointer;transition:background .14s,color .14s}.view-tab:hover{color:var(--text);background:#0f172a0a}.view-tab.is-active{background:var(--surface);color:var(--blue);box-shadow:var(--shadow-sm)}.welcome{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:28px;background:radial-gradient(1100px 540px at 50% -12%,rgba(37,99,235,.1),transparent 60%),radial-gradient(820px 420px at 92% 112%,rgba(5,150,105,.07),transparent 60%),linear-gradient(180deg,#f7f9fd 0%,var(--bg) 100%)}.welcome-panel{width:min(420px,100%);padding:34px 30px 28px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#ffffffeb;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 24px 60px #0f172a1f,0 2px 6px #0f172a0d;text-align:center;animation:welcome-in .5s cubic-bezier(.2,.7,.3,1) both}.welcome-icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;border-radius:22px;background:linear-gradient(135deg,#3b82f6 0%,var(--blue) 55%,#1d4ed8 100%);color:#fff;box-shadow:0 10px 24px #2563eb59,inset 0 1px #ffffff59;animation:welcome-float 4s ease-in-out infinite}.welcome-drone{width:42px;height:42px}.welcome-title{font-size:22px;font-weight:800;letter-spacing:.3px}.welcome-text{margin:8px auto 20px;color:var(--text2);font-size:13px;line-height:1.6}.welcome-text code{padding:1px 5px;border-radius:4px;background:var(--surface-strong);font:600 12px Consolas,SF Mono,monospace;color:var(--blue-strong)}.welcome-action{min-width:150px}.welcome-drop-hint{margin-top:14px;font-size:12px;color:var(--text3)}@media (max-width: 980px){.main{grid-template-columns:220px minmax(340px,1fr) 250px}.header{padding:0 12px}.subtitle{display:none}}.chart-toolbar{height:50px;min-height:50px;display:flex;align-items:center;gap:12px;padding:0 14px;border-bottom:1px solid var(--border-soft);background:var(--surface);container-type:inline-size}.chart-title{flex-shrink:0;min-width:0;display:flex;align-items:center;gap:10px}.topbar-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.open-file-btn{gap:5px}.topbar-status{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.topbar-spacer{flex:1 1 auto;min-width:0}.chart-controls{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.chart-hidden-count{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid #fde68a;border-radius:4px;color:#92400e!important;background:#fffbeb;line-height:1;white-space:nowrap}.chart-file-name{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid var(--border-soft);border-radius:4px;background:var(--surface-soft);line-height:1;white-space:nowrap;min-width:0;max-width:260px;overflow:hidden;text-overflow:ellipsis}.chart-toolbar span{color:var(--text3);font-size:12px}@container (max-width: 960px){.topbar-status{display:none}}@container (max-width: 720px){.chart-file-name{display:none}}.chart-legend{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px 14px;max-height:58px;overflow-y:auto;padding:8px 16px;border-bottom:1px solid var(--border-soft);background:#fff}.chart-legend-item{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:220px;height:18px;color:var(--text);font:700 11px/1.2 SF Mono,Consolas,monospace}.chart-legend-line{width:20px;height:4px;flex:0 0 auto;border-radius:2px}.chart-legend-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-eye-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:2px;padding:0;border:none;background:transparent;border-radius:4px;color:var(--text3);cursor:pointer;flex:0 0 auto;transition:background .12s,color .12s}.legend-eye-btn:hover{background:var(--surface-soft);color:var(--text)}.legend-del-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;border-radius:4px;color:var(--text3);cursor:pointer;flex:0 0 auto;opacity:0;transition:background .12s,color .12s,opacity .12s}.chart-legend-item:hover .legend-del-btn{opacity:1}.legend-del-btn:hover{background:#fee2e2;color:#dc2626}.chart-legend-item.is-drawn-off .chart-legend-line{opacity:.25}.chart-legend-item.is-drawn-off .chart-legend-name{opacity:.45}.stats-overflow-popup{position:fixed;z-index:50;min-width:172px;display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:0 8px 24px #0f172a29}.stats-overflow-popup .chart-toggle{justify-content:space-between}.chart-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--text2);font-size:11px;font-weight:700;white-space:nowrap}.event-tag{font-size:11px;font-weight:700}.event-tag-err{color:#dc2626}.event-tag-ev{color:#059669}.event-tag-msg{color:#64748b}.chart-wrap{position:relative;flex:1;min-height:0;background:#fff}.main-chart{width:100%;height:100%}.chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:13px;pointer-events:none}.simple-field-picker{max-height:42%;min-height:150px;display:flex;flex-direction:column;border-bottom:1px solid var(--border-soft);background:#fbfcfe}.simple-field-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-soft)}.simple-field-head span{display:block;color:var(--text);font-size:12px;font-weight:800}.simple-field-head small{display:block;color:var(--text3);font-size:10px;font-weight:600}.simple-field-list{flex:1;min-height:0;overflow-y:auto;padding:8px}.simple-field-type{margin-bottom:8px}.simple-field-type-name{margin-bottom:5px;color:var(--text2);font:800 11px/1.2 Consolas,SF Mono,monospace}.simple-field-chips{display:flex;flex-wrap:wrap;gap:5px}.field-chip{max-width:100%;min-height:24px;display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);color:var(--text2);cursor:pointer;font:700 11px/1.2 Consolas,SF Mono,monospace}.field-chip:hover{border-color:#bfdbfe;background:#eff6ff;color:var(--blue)}.field-chip.is-active{border-color:#93c5fd;background:#dbeafe;color:#1e3a8a}.field-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;margin-bottom:8px;border:1px solid var(--border-soft);border-left:3px solid transparent;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);transition:box-shadow .14s,border-color .14s}.field-item:hover{border-color:#cbd5e1;box-shadow:var(--shadow)}.field-item.is-active{border-left-color:var(--blue);background:var(--blue-soft)}.field-item.is-selected{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f633}.field-item.group{border-left-color:#14b8a6}.field-item.group.is-active{background:#ecfeff}.field-switch{margin-left:8px}.field-main{min-width:0;padding:8px 0 8px 8px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.field-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}.field-count,.field-summary{display:block;overflow:hidden;margin-top:2px;color:var(--text3);text-overflow:ellipsis;white-space:nowrap;font-size:10px}.field-actions{display:flex;gap:2px;padding-right:5px}.field-item.field .field-count{display:none}.field-item.field:not(.is-active){border-left-color:var(--border-soft)}.simple-inline-editor{grid-column:1/-1;padding:0 8px 8px 44px}.simple-curve-params{margin-top:0}.simple-group-params{margin-top:0;padding:0}.field-export-modal{width:min(460px,100vw - 32px)}.field-edit-modal{width:min(860px,100vw - 32px)}.field-edit-toolbar{min-height:48px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 14px;border-bottom:1px solid var(--border-soft);background:#fbfcfe}.field-edit-toolbar label{display:inline-flex;align-items:center;gap:6px;color:var(--text2);font-size:12px;font-weight:700}.field-name-input{width:220px}.field-edit-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(220px,.9fr) minmax(280px,1.1fr);overflow:hidden}.field-edit-picker,.field-edit-selected{min-height:0;display:flex;flex-direction:column;overflow:hidden}.field-edit-picker{border-right:1px solid var(--border-soft);background:#fbfcfe}.field-edit-picker-head,.field-edit-selected-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-soft)}.field-edit-picker-head strong,.field-edit-selected-head strong{color:var(--text);font-size:12px}.field-edit-selected-head span{color:var(--text3);font-size:11px;font-weight:700}.field-edit-count{color:var(--text3);font-size:12px;font-weight:700}.simple-picker-type{width:100%;position:relative;min-height:26px;display:flex;align-items:center;gap:6px;padding:4px 6px;margin-bottom:2px;border-radius:var(--radius);color:var(--text);cursor:pointer;user-select:none;font:800 12px/1.2 Consolas,SF Mono,monospace}.simple-picker-type:hover{background:var(--surface-soft)}.simple-picker-type .caret{flex:0 0 auto;width:10px;color:var(--text3);font-size:10px;text-align:center;transition:transform .12s ease}.simple-picker-type.is-open .caret{transform:rotate(90deg)}.simple-picker-type-name{position:absolute;left:0;right:0;text-align:center;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.simple-picker-type-meta{flex:0 0 auto;margin-left:auto;color:var(--text3);font-size:10px;font-weight:700}.simple-picker-type-badge{flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:10px;line-height:18px;text-align:center}.simple-picker-field{width:100%;min-height:28px;display:flex;align-items:center;gap:7px;padding:4px 8px 4px 14px;border-radius:var(--radius);color:var(--text2);cursor:pointer;font:700 12px/1.2 Consolas,SF Mono,monospace}.simple-picker-field:hover{background:var(--surface-soft);color:var(--text)}.simple-picker-field.is-active{background:#eff6ff;color:#1e3a8a}.field-edit-code{min-width:0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font:700 12px/1.2 Consolas,SF Mono,monospace}.field-edit-picker-list,.field-edit-selected{overflow-y:auto}.field-edit-picker-list{padding:10px}.field-edit-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px 72px 72px 30px;gap:8px;align-items:center;padding:7px 12px;border-bottom:1px solid #f1f5f9}.field-edit-row .color-input{justify-self:start}.field-edit-row .config-input.num{width:100%;min-width:0}.field-edit-row-head{position:sticky;top:0;z-index:1;min-height:32px;background:#f8fafc;color:var(--text3);font-size:11px;font-weight:800}.field-export-toolbar{min-height:40px;display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border-soft);color:var(--text3);font-size:12px}.field-export-list{max-height:min(420px,56vh);overflow-y:auto;padding:8px}.field-export-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;min-height:34px;padding:6px 8px;border-radius:var(--radius);color:var(--text);cursor:pointer}.field-export-row:hover{background:var(--surface-soft)}.message-list{flex:1;min-height:0;overflow-y:auto;padding:4px 0}.message-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;align-items:start;padding:5px 10px;border-bottom:1px solid #f1f5f9;color:var(--text2);font-size:12px}.message-row:hover{background:var(--surface-soft);color:var(--text)}.message-time{color:var(--text3);font:650 10px/1.4 SF Mono,Consolas,monospace;white-space:nowrap}.message-text{min-width:0;overflow-wrap:anywhere;line-height:1.35}.message-empty{padding:18px 10px;color:var(--text3);text-align:center;font-size:12px}.modal-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a57}.modal{width:min(980px,96vw);height:min(720px,88vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md)}.native-dialog{margin:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-md)}.native-dialog:not([open]){display:none}.native-dialog::backdrop{background:#0f172a57}.field-delete-dialog[open]{display:block;width:320px;max-width:calc(100vw - 32px);height:fit-content!important;min-height:0!important;max-height:none!important;overflow:hidden}.confirm-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--border-soft)}.confirm-dialog-head strong{font-size:13px}.confirm-dialog-head small{display:block;margin-top:2px;color:var(--text3);font-size:11px}.dialog-body{padding:12px 10px}.dialog-title{margin-bottom:8px;font-size:13px;font-weight:700}.dialog-target{padding:6px 8px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface-soft);color:var(--text);font:700 12px/1.4 Consolas,SF Mono,monospace;word-break:break-all}.dialog-note{margin-top:8px;color:var(--text3);font-size:12px}.confirm-dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 10px;border-top:1px solid var(--border-soft)}.modal-head{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}.modal-head small{display:block;margin-top:2px;color:var(--text3);font-size:11px;word-break:break-all}.modal-actions{min-height:48px;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 14px;border-top:1px solid var(--border-soft)}.parameter-modal{width:min(860px,94vw);height:min(720px,88vh)}.parameter-toolbar{min-height:50px;display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border-soft);background:linear-gradient(#fbfcfe,#f7f9fc)}.parameter-search{position:relative;width:min(360px,52vw);min-width:220px}.parameter-search-mark{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text3);font-size:14px;pointer-events:none}.parameter-filter{width:100%;height:30px;padding:0 30px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none;font-size:12px}.parameter-filter:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.parameter-clear{position:absolute;right:5px;top:50%;width:22px;height:22px;transform:translateY(-50%);border:0;border-radius:4px;background:transparent;color:var(--text3);cursor:pointer;font-size:14px;line-height:1}.parameter-clear:hover{background:var(--surface-strong);color:var(--text)}.parameter-toolbar-spacer{flex:1;min-width:12px}.parameter-count{height:24px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface);color:var(--text3);font-size:11px;font-weight:700;white-space:nowrap}.parameter-table-wrap{flex:1;min-height:0;overflow:auto;background:var(--surface)}.parameter-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.parameter-name-col{width:58%}.parameter-value-col{width:42%}.parameter-table th{position:sticky;top:0;z-index:1;height:36px;padding:0 14px;border-bottom:1px solid var(--border);background:#f3f6fa;color:var(--text2);text-align:left;font-weight:800}.parameter-table th:last-child{text-align:right}.parameter-table td{height:34px;padding:6px 14px;border-bottom:1px solid #f1f5f9}.parameter-table tbody tr:nth-child(2n){background:#fbfcfe}.parameter-table tbody tr:hover{background:#eff6ff}.parameter-name,.parameter-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Consolas,SF Mono,monospace}.parameter-name{color:#243047;font-weight:650}.parameter-value{color:var(--text);text-align:right;font-variant-numeric:tabular-nums}.parameter-empty{padding:34px 12px;color:var(--text3);text-align:center;font-size:12px}.command-modal{width:min(1280px,97vw);height:min(720px,88vh)}.record-modal{width:min(1180px,96vw)}.group-grid-modal{width:min(720px,94vw);height:auto;max-height:88vh}.tabs{display:flex;align-items:center;gap:4px;padding:0 14px;border-bottom:1px solid var(--border-soft);background:var(--surface)}.tab{position:relative;height:40px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:0;background:transparent;color:var(--text2);font-size:12.5px;font-weight:700;cursor:pointer;transition:color .14s,background .14s}.tab:hover{color:var(--text);background:var(--surface-soft)}.tab.is-active{color:var(--blue)}.tab.is-active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--blue)}.tab-count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--surface-strong);color:var(--text3);font-size:10px;font-weight:700;line-height:18px;text-align:center}.tab.is-active .tab-count{background:var(--blue-soft);color:var(--blue)}.record-toolbar{min-height:50px;display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border-soft);background:linear-gradient(#fbfcfe,#f7f9fc)}.record-message-list{flex:1;min-height:0}.command-table-wrap{flex:1;min-height:0;overflow:auto;background:var(--surface)}.command-table{width:max-content;min-width:100%;border-collapse:collapse;table-layout:auto;font-size:12px}.command-table th{position:sticky;top:0;z-index:1;height:36px;padding:0 8px;border-bottom:1px solid var(--border);background:#f3f6fa;color:var(--text2);text-align:right;font-weight:800;white-space:nowrap}.command-table th:first-child,.command-table th:nth-child(2),.command-table th:nth-child(3),.command-table td:first-child{text-align:left}.command-table td{height:34px;padding:6px 8px;border-bottom:1px solid #f1f5f9;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-table td.command-num,.command-table td.command-cmd{text-align:left}.command-table tbody tr:nth-child(2n){background:#fbfcfe}.command-table tbody tr:hover{background:#eff6ff}.command-seq-col{width:52px}.command-cmd-col{width:180px}.command-param-col{width:72px}.command-lat-col,.command-lng-col{width:124px}.command-alt-col{width:88px}.command-frame-col{width:150px}.command-time-col{width:180px}.command-num{color:var(--text3);font-variant-numeric:tabular-nums;font-family:Consolas,SF Mono,monospace}.command-time{color:var(--text2);text-align:left;font-variant-numeric:tabular-nums;font-family:Consolas,SF Mono,monospace;white-space:nowrap}.command-cmd{display:flex;align-items:center;gap:6px}.command-cmd-name{color:#243047;font-weight:650;font-family:Consolas,SF Mono,monospace}.command-cmd-id{flex-shrink:0;padding:0 5px;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface-soft);color:var(--text3);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;font-family:Consolas,SF Mono,monospace}.command-param,.command-alt,.command-coord{color:var(--text);font-variant-numeric:tabular-nums;font-family:Consolas,SF Mono,monospace}.command-frame{color:var(--text2);font-size:11px;font-family:Consolas,SF Mono,monospace}.metric-editor-modal{width:min(420px,94vw);height:auto;max-height:88vh}.metric-editor-modal .modal-head{min-height:0;padding:10px 14px}.metric-editor-modal .modal-body{flex:0 1 auto;display:flex;flex-direction:column;gap:10px;padding:12px 14px;overflow:auto}.metric-editor-modal .param-tag{flex:0 0 56px}.metric-conv{align-items:flex-start}.metric-conv .param-tag{margin-top:5px}.metric-conv-body{flex:1 1 auto;display:flex;flex-direction:column;gap:6px}.metric-conv-orig{color:var(--text3);font-size:11px}.modal-actions-spacer{flex:1 1 auto}.flight-picker-modal{width:min(560px,94vw);height:min(600px,88vh)}.flight-picker-modal .modal-body{flex:1 1 auto;display:flex;flex-direction:column;gap:8px;padding:12px 14px;overflow:auto}.flight-picker-filter{width:100%}.flight-picker-tree{flex:1 1 auto;overflow:auto;display:flex;flex-direction:column;gap:2px}.flight-picker-type{display:flex;flex-direction:column}.flight-picker-type-head{display:flex;align-items:center;gap:6px;padding:5px 6px;background:none;border:none;cursor:pointer;color:var(--text);font:700 12px/1 Consolas,SF Mono,monospace}.flight-picker-type-head:hover{color:var(--blue)}.flight-picker-type-head .caret{display:inline-block;width:10px;color:var(--text3);font-size:9px;transition:transform .1s}.flight-picker-type-head .caret.is-open{transform:rotate(90deg)}.flight-picker-type-head .type-name{flex:1 1 auto;text-align:left}.flight-picker-type-head small{color:var(--text3);font:700 10px/1 Consolas,SF Mono,monospace}.flight-picker-fields{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 6px 16px}.flight-picker-field{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);cursor:pointer}.flight-picker-field.is-active{border-color:var(--blue);background:#eff6ff}.flight-picker-field span{color:var(--text);font-size:12px;font-weight:700}.flight-picker-field small{margin-left:auto;color:var(--text3);font:700 10px/1 Consolas,SF Mono,monospace}.flight-picker-options{display:flex;flex-direction:column;gap:6px}.flight-picker-hint{color:var(--text3);font-size:11px}.metric-dialog-modal{width:min(880px,100vw - 32px);height:min(600px,88vh)}.metric-dialog-modal .field-edit-body{grid-template-columns:minmax(210px,.7fr) minmax(420px,1.3fr)}.metric-dialog-toolbar{gap:10px}.metric-dialog-toolbar .param-row{flex:0 1 auto}.metric-dialog-toolbar .param-input{width:140px}.metric-field-row{display:grid;align-items:center;column-gap:5px;padding:6px 10px;border-bottom:1px solid var(--border-soft);grid-template-columns:104px 96px 64px 46px 22px}.metric-field-row.mf-row-bar{grid-template-columns:104px 48px 48px 96px 64px 46px 22px}.metric-field-row:last-child{border-bottom:none}.metric-field-head{color:var(--text3);font-size:10px;font-weight:700;padding-top:4px;padding-bottom:4px}.metric-field-key{min-width:0;display:flex;flex-direction:column;gap:1px;overflow:hidden}.metric-field-key small{color:var(--text3);font:700 9px/1 Consolas,SF Mono,monospace}.metric-field-key span{color:var(--text);font:800 12px/1.2 Consolas,SF Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mf-cell{text-align:center}.metric-field-row .config-input,.metric-field-row .mf-mode{width:100%;min-width:0;height:26px;padding:0 4px;text-align:center;font:11px SF Mono,Consolas,monospace;box-sizing:border-box}.metric-field-row .mf-mode{-webkit-appearance:none;appearance:none;padding-right:16px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%2364748b'/></svg>");background-repeat:no-repeat;background-position:right 5px center}.metric-field-row .config-input:disabled{background:var(--surface-soft);color:var(--text2);cursor:default;opacity:.9}.metric-field-row .mf-x{justify-self:center}.toast{position:fixed;top:16px;left:50%;z-index:999;transform:translate(-50%);padding:8px 16px;border-radius:var(--radius);color:#fff;font-size:13px;box-shadow:0 8px 24px #0f172a29;animation:fadeIn .18s ease-out}.toast.success{background:var(--green)}.toast.error{background:var(--red)}.toast.info{background:var(--blue)}.toast.warn{background:var(--amber)}.drop-overlay{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;background:#0f172a2e;pointer-events:none}.drop-panel{width:min(360px,100% - 48px);padding:28px;border:2px dashed var(--blue);border-radius:8px;background:#fffffff5;color:var(--text);text-align:center;box-shadow:0 16px 46px #0f172a2e}.drop-title{font-size:18px;font-weight:800}.drop-text{margin-top:6px;color:var(--text2);font-size:12px}.log-loading-overlay{position:fixed;inset:0;z-index:950;display:flex;align-items:center;justify-content:center;background:#0f172a57;pointer-events:auto}.log-loading-card{min-width:244px;padding:30px 40px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fffffff0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-align:center;box-shadow:0 24px 60px #0f172a29,0 2px 6px #0f172a0d;animation:welcome-in .35s cubic-bezier(.2,.7,.3,1) both}.log-loading-bar{width:130px;height:4px;margin:0 auto 18px;border-radius:999px;background:var(--blue-soft);overflow:hidden}.log-loading-bar span{display:block;width:38%;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue) 0%,#60a5fa 100%);animation:loading-slide 1.1s ease-in-out infinite}.log-loading-title{font-size:16px;font-weight:800;color:var(--text)}.log-loading-stage{margin-top:6px;font-size:13px;color:var(--text2)}.log-loading-file{margin-top:4px;font-size:12px;color:var(--text3)}@keyframes welcome-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes welcome-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes loading-slide{0%{transform:translate(-130%)}to{transform:translate(330%)}}@keyframes spin{to{transform:rotate(360deg)}}.three-view{flex:1;min-height:0;display:grid;grid-template-columns:minmax(360px,1fr) 320px;grid-template-rows:minmax(0,1fr) 48px;overflow:hidden;background:#eef1f5;padding:0}.three-view.three-curve-on{grid-template-rows:minmax(0,1fr) var(--three-curve-h, 150px)}.three-curve-panel{grid-column:1/-1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--border);background:var(--surface)}.three-curve-resizer{position:relative;flex:0 0 auto;height:8px;cursor:row-resize;background:var(--surface);border-bottom:1px solid var(--border-soft);z-index:4;touch-action:none}.three-curve-resizer:before{content:"";position:absolute;top:50%;left:50%;width:40px;height:3px;margin:-1.5px 0 0 -20px;border-radius:2px;background:#cbd5e1;transition:background .15s ease}.three-curve-resizer:hover:before,.three-curve-resizer:active:before{background:var(--blue)}.three-curve-wrap{position:relative;width:100%;flex:1 1 auto;min-height:0;overflow:hidden}.three-curve-chart{position:relative;width:100%;height:100%}.three-curve-chart canvas{display:block;width:100%!important;height:100%!important}.three-playhead .three-play-round{position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:26px;height:26px;padding:0;border:none;border-radius:50%;background:#ef4444;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 5px #0f172a73;z-index:4;transition:background .12s ease,transform .1s ease}.three-playhead .three-play-round:hover{background:#dc2626;transform:translate(-50%) scale(1.08)}.three-play-round.is-playing .three-play-icon:before{border:none;left:0;width:10px;height:10px;background:linear-gradient(to right,#fff 0,#fff 3px,transparent 3px,transparent 7px,#fff 7px,#fff 100%)}.three-playhead{position:absolute;top:0;bottom:0;left:0;width:12px;margin-left:-6px;cursor:ew-resize;pointer-events:auto;z-index:3;will-change:transform;display:none;touch-action:none}.three-playhead-line{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#ef4444;box-shadow:0 0 0 1px #ef444440}.three-playhead:hover .three-playhead-line,.three-playhead:active .three-playhead-line{background:#dc2626;width:3px;margin-left:-1.5px}.three-playhead-thumb{position:absolute;top:1px;left:50%;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;background:#ef4444;border:2px solid #fff;box-shadow:0 1px 3px #0f172a59;transition:transform .1s ease}.three-playhead:hover .three-playhead-thumb,.three-playhead:active .three-playhead-thumb{transform:scale(1.25);background:#dc2626}.three-playhead-tag{position:absolute;top:16px;left:50%;margin-left:4px;white-space:nowrap;font:700 10px/1 Consolas,SF Mono,monospace;color:#fff;background:#ef4444;padding:2px 5px;border-radius:3px;box-shadow:0 1px 3px #0f172a40;pointer-events:none}.three-main{position:relative;min-width:0;min-height:0;border-right:1px solid var(--border);background:#f3f4f6}.three-canvas,.attitude-canvas{position:relative;width:100%;height:100%;overflow:hidden}.three-canvas canvas,.attitude-canvas canvas{display:block;width:100%;height:100%}.three-side{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(170px,1fr);background:var(--surface)}.three-side-panel{min-height:0;display:flex;flex-direction:column;overflow:hidden;border-bottom:1px solid var(--border-soft)}.three-side-head{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-soft);background:var(--surface)}.three-side-head strong{font-size:12.5px;font-weight:750;letter-spacing:.2px}.three-side-head span{min-width:0;overflow:hidden;color:var(--text3);text-overflow:ellipsis;white-space:nowrap;font:700 10px/1.2 Consolas,SF Mono,monospace}.attitude-panel{position:relative;background:#eef1f5}.attitude-canvas{min-height:0;background:#eef1f5;flex:1 1 auto;height:auto}.attitude-card{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:auto minmax(0,1fr);height:170px;min-height:0;border-bottom:1px solid var(--border-soft);background:var(--surface)}.attitude-card-head{grid-column:1/-1}.attitude-card>.three-side-panel{border-bottom:none;min-height:0}.attitude-card>.three-side-panel+.three-side-panel{border-left:1px solid var(--border-soft)}.attitude-dial-body{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--surface-strong);padding:4px}.attitude-dial-canvas{display:block;width:100%;height:100%}.rc-hud-overlay{position:absolute;inset:0;z-index:3;pointer-events:none}.rc-hud-overlay .rc-stick-pad{position:absolute;bottom:10px;width:54px;height:54px;background:radial-gradient(circle at 50% 38%,#ffffff6b,#e0edfa42 70%,#bed2eb29);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);box-shadow:0 2px 8px #0f172a24}.rc-pad-bl{left:10px}.rc-pad-br{right:10px}.three-attitude-source{max-width:132px;min-width:0;height:26px;padding:0 4px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font:700 11px/1.2 Consolas,SF Mono,monospace;cursor:pointer}.three-attitude-source:hover{border-color:var(--blue)}.attitude-compare-toggle{display:inline-flex;align-items:center;gap:3px;margin-left:auto;font-size:11px;color:var(--text2);cursor:pointer;user-select:none}.attitude-compare-toggle input{margin:0}.metrics-panel{background:#fff}.rc-hud{position:absolute;transform:translate(50%);right:50%;bottom:10px;z-index:6;width:176px;padding:6px 8px 8px;border:1px solid rgba(148,163,184,.35);border-radius:var(--radius);background:#ffffffe6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--text2);box-shadow:0 8px 22px #0f172a24;pointer-events:none}.rc-hud.rc-hud-side{position:relative;z-index:auto;width:auto;border:none;border-top:1px solid var(--border-soft);border-radius:0;background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;pointer-events:auto}.rc-hud.rc-hud-side .rc-hud-sticks{max-width:156px;margin:0 auto}.rc-hud.rc-hud-side .rc-stick-pad{width:82%}.rc-hud-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px}.rc-hud-head strong{color:var(--text);font-size:12px}.rc-hud-head span{min-width:0;overflow:hidden;color:var(--text3);text-overflow:ellipsis;white-space:nowrap;font:700 10px/1.2 Consolas,SF Mono,monospace}.rc-hud-sticks{display:flex;gap:6px}.rc-stick{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px}.rc-stick-pad{position:relative;width:100%;aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle at 50% 38%,#fff,#eef4fb 70%,#dbe6f3);border:1px solid rgba(56,189,248,.42);box-shadow:inset 0 0 12px #0f172a0f,inset 0 1px #ffffffe6,0 3px 8px #0f172a1a;overflow:hidden;transition:opacity .15s}.rc-stick-pad.is-disabled{opacity:.5}.rc-stick-cross{position:absolute;inset:0;background:linear-gradient(to right,transparent calc(50% - .5px),rgba(56,189,248,.35) calc(50% - .5px),rgba(56,189,248,.35) calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),rgba(56,189,248,.35) calc(50% - .5px),rgba(56,189,248,.35) calc(50% + .5px),transparent calc(50% + .5px));pointer-events:none}.rc-tick{position:absolute;background:#38bdf899;pointer-events:none}.rc-tick-n{top:5px;left:50%;width:2px;height:6px;margin-left:-1px}.rc-tick-s{bottom:5px;left:50%;width:2px;height:6px;margin-left:-1px}.rc-tick-e{right:5px;top:50%;width:6px;height:2px;margin-top:-1px}.rc-tick-w{left:5px;top:50%;width:6px;height:2px;margin-top:-1px}.rc-stick-center{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#38bdf899;pointer-events:none}.rc-knob{position:absolute;width:26%;height:26%;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0f9ff,#38bdf8 55%,#0369a1);border:2px solid #ffffff;box-shadow:0 1px 4px #0284c773,0 0 8px #38bdf866;transition:left .08s linear,top .08s linear}.rc-stick-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:#94a3b8;font:700 9px/1.3 Consolas,SF Mono,monospace;pointer-events:none}.rc-stick-label{color:var(--text3);font-size:11px;font-weight:800}.rc-readout{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:6px}.rc-readout div{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:2px 8px;border-radius:4px;background:var(--surface-soft);white-space:nowrap}.rc-readout span{color:var(--text3);font-size:11px;font-weight:750}.rc-readout b{color:var(--text);font-variant-numeric:tabular-nums;font:700 12px/1.2 Consolas,SF Mono,monospace}.three-side-scroll{min-height:0;flex:1 1 auto;overflow-y:auto}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.metric-tile{min-width:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;border:1px solid var(--border-soft);border-left:3px solid var(--blue);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.metric-tile.metric-wide{grid-column:1/-1;border-left-color:var(--green)}.metric-tile.metric-mode{grid-column:1/-1;border-left-color:var(--mode-color, var(--blue))}.metric-tile.metric-mode strong{color:var(--mode-color, var(--blue));text-transform:uppercase;letter-spacing:.5px}.metric-tile span{flex:0 0 auto;color:var(--text3);font-size:10px;font-weight:800;white-space:nowrap}.metric-tile strong{flex:1 1 auto;min-width:0;color:var(--text);font:800 13px/1.1 Consolas,SF Mono,monospace;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-tile.metric-motors{grid-column:1/-1;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;border-left-color:#f97316}.metric-motors-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.metric-motors-head small{color:var(--text3);font:700 10px/1.2 Consolas,SF Mono,monospace}.motor-bars{display:flex;align-items:flex-end;gap:6px;min-height:48px}.motor-bar{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px}.motor-bar-track{position:relative;width:100%;height:40px;border-radius:6px;background:var(--surface-strong);box-shadow:inset 0 1px 2px #0f172a1a;overflow:hidden}.motor-bar-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,var(--green) 0%,#f59e0b 78%,var(--red) 100%);transition:height .08s linear}.motor-bar-fill.saturated{background:var(--red)}.motor-bar-label{color:var(--text3);font:700 10px/1 Consolas,SF Mono,monospace}.metric-tile{flex-wrap:wrap}.metric-tile:not(.metric-group):not(.metric-motors):not(.metric-mode){flex-wrap:nowrap;min-height:40px}.metric-main{flex:0 0 auto;display:flex;align-items:center;background:none;border:none;padding:0;cursor:pointer;color:var(--text3);font-size:10px;font-weight:800;white-space:nowrap}.metric-main:hover{color:var(--blue)}.metric-tile.metric-group{flex-direction:column;align-items:stretch;gap:6px}.metric-group-channels{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:flex-end}.metric-channel{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.metric-channel small{color:var(--text3);font:700 9px/1 Consolas,SF Mono,monospace}.bar-h-track{position:relative;flex:1 1 auto;min-width:40px;height:8px;border-radius:4px;background:#c5cdd8;box-shadow:inset 0 1px 2px #0f172a1f;overflow:hidden}.bar-h-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(to right,var(--green) 0%,#f59e0b 78%,var(--red) 100%);transition:width .08s linear}.bar-h-stack{display:flex;flex-direction:column;gap:4px;width:100%}.bar-h-row{display:flex;align-items:center;gap:6px}.bar-h-row small{flex:0 0 30px;color:var(--text3);font:700 10px/1 Consolas,SF Mono,monospace}.bar-h-row .bar-h-track{flex:1 1 auto}.bar-v-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,var(--blue) 0%,#60a5fa 100%);transition:height .08s linear}.metric-tile.metric-expanded{outline:2px solid var(--blue);outline-offset:-1px}.metric-add-btn{margin-left:auto}.metric-empty-hint{padding:18px 12px;text-align:center;color:var(--text3);font-size:11px}.three-field-list{display:grid;gap:6px;padding:0 12px 12px}.three-field-list div{min-height:28px;display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;align-items:center;padding:5px 7px;border-radius:4px;background:var(--surface-soft)}.three-field-list span{color:var(--text3);font-size:11px;font-weight:750}.three-field-list b{min-width:0;overflow:hidden;color:var(--text2);text-overflow:ellipsis;white-space:nowrap;font:700 11px/1.2 Consolas,SF Mono,monospace}.three-timeline{grid-column:1/-1;min-height:48px;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto 72px;gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface)}.three-play-btn{display:inline-flex;align-items:center;gap:6px;padding:0 10px!important}.three-play-icon{position:relative;width:10px;height:10px;flex:0 0 auto}.three-play-icon:before{content:"";position:absolute;top:0;left:1px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #fff}.three-play-btn.is-playing .three-play-icon:before{border:none;left:0;width:10px;height:10px;background:linear-gradient(to right,#fff 0,#fff 3px,transparent 3px,transparent 7px,#fff 7px,#fff 100%)}.three-play-text{line-height:1}.three-time{color:var(--text2);font:600 11px/1 Consolas,SF Mono,monospace;font-variant-numeric:tabular-nums;white-space:nowrap;user-select:none}.three-time-current{color:var(--blue)}.three-range{position:relative;width:100%;min-width:0;touch-action:none;height:22px;display:flex;align-items:center;cursor:pointer;outline:none}.three-range:focus-visible .three-range-track{box-shadow:0 0 0 3px #2563eb33}.three-range-track{position:relative;width:100%;height:10px;border-radius:6px;background:#94a3b84d;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a1f}.three-range-seg{position:absolute;top:0;bottom:0;opacity:.55;pointer-events:none}.three-range-ahead{position:absolute;top:0;bottom:0;right:0;background:#ffffff80;pointer-events:none}.three-range-thumb{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;border:2px solid var(--blue);box-shadow:0 1px 4px #0f172a59;transition:transform .12s ease,background .12s ease;pointer-events:none}.three-range:hover .three-range-thumb,.three-range-drag .three-range-thumb{transform:scale(1.2);background:var(--blue)}.three-speed{height:28px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:12px}.three-overlay{position:absolute;z-index:2;max-width:min(360px,100% - 24px);padding:7px 9px;border:1px solid rgba(148,163,184,.35);border-radius:var(--radius);background:#ffffffdb;color:var(--text2);font:700 11px/1.3 Consolas,SF Mono,monospace;box-shadow:0 6px 18px #0f172a14;pointer-events:none}.three-overlay .btn{pointer-events:auto}.three-overlay.top-left{top:10px;left:10px}.three-overlay.top-right{top:10px;right:10px}.three-overlay-title{margin-bottom:2px;color:var(--text);font-family:inherit;font-size:11px}.three-cam-divider{width:1px;height:14px;background:#94a3b880}.three-fps-hint,.three-mode-hint{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:3;max-width:calc(100% - 24px);padding:5px 11px;border-radius:var(--radius);background:#0f172ac7;color:#e2e8f0;pointer-events:none;white-space:nowrap;font:600 11px/1.4 Consolas,SF Mono,monospace;box-shadow:0 6px 18px #0f172a2e}.three-empty{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:24px;background:#f8fafcc2;color:var(--text3);text-align:center;font-size:13px}.three-empty.error{color:var(--red)}@media (max-width: 980px){.three-view{grid-template-columns:minmax(320px,1fr) 280px}.metric-tile strong{font-size:12px}}@media (max-width: 768px),(pointer: coarse){#app{bottom:auto;height:100vh;height:100dvh}.main,.main.view-three{grid-template-columns:minmax(0,1fr)}.panel-left{position:fixed;top:0;bottom:0;left:0;z-index:80;width:min(86vw,360px);transform:translate(-102%);transition:transform .22s ease;box-shadow:var(--shadow-md)}.panel-left.is-open{transform:none}.panel-left.is-expanded{width:100vw}.drawer-bar{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 6px 14px;border-bottom:1px solid var(--border-soft);background:var(--surface)}.drawer-bar strong{font-size:13px;font-weight:800}.drawer-bar-actions{display:flex;gap:6px}.chart-toolbar{height:auto;min-height:50px;flex-wrap:wrap;gap:6px 8px;padding:6px 8px}.topbar-spacer{display:none}.topbar-actions{margin-left:auto}.modal-backdrop{padding:0;z-index:120}.field-edit-head{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px}.field-edit-head-title{min-width:0}.field-edit-head-title strong{display:block}.field-edit-head-title small{display:block;overflow:hidden;color:var(--text3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.field-edit-head-tools{flex:0 0 auto;display:flex;align-items:center;gap:6px}.field-edit-head-tools .field-name-input{width:104px}.field-edit-head-tools .field-edit-count{white-space:nowrap}.modal-backdrop .modal,.native-dialog{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;border:none;border-radius:0}.field-delete-dialog[open]{display:flex!important;flex-direction:column;height:100vh!important;height:100dvh!important;min-height:0!important}.field-delete-dialog[open] .dialog-body{flex:1 1 auto;overflow-y:auto}.stats-overflow-popup{top:auto!important;right:0!important;bottom:0;left:0!important;width:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.panel-center{padding-left:0;padding-right:0}.three-view{position:relative;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 44px}.three-view.three-curve-on{grid-template-rows:minmax(0,1fr) var(--three-curve-h, 150px)}.three-side{position:absolute;left:6px;right:6px;bottom:48px;z-index:6;display:flex;flex-direction:row;align-items:center;gap:6px;background:none;box-shadow:none}.three-side.hud-hidden{display:none}.attitude-card{display:contents}.attitude-card-head{display:none}.attitude-panel,.attitude-dial{flex:0 0 72px;width:72px;height:72px;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#0a0f1a73;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden}.attitude-panel{order:0}.attitude-dial{order:2}.attitude-panel .attitude-canvas,.attitude-dial .attitude-dial-body{background:none}.metrics-panel{order:1;flex:1 1 auto;min-width:0;height:36px;display:flex;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#0a0f1a66;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden}.metrics-panel .three-side-head{display:none}.metrics-panel .three-side-scroll{flex:1 1 auto;display:flex;overflow:visible}.metric-grid{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:0 6px;overflow-x:auto;overflow-y:hidden}.metric-tile{flex:0 0 auto;flex-direction:row;align-items:center;justify-content:center;gap:3px;height:26px;padding:0 8px;border:none;border-left:none;border-radius:999px;background:#ffffff12;box-shadow:none}.metric-tile span{color:#94a3b8;font-size:9px}.metric-tile strong{color:#f8fafc;font-size:11px}.metric-tile .metric-main{color:#e2e8f0;padding:0}.metric-tile.metric-motors{display:none}.custom-models-side{position:fixed;top:54px;right:6px;bottom:128px;width:min(84vw,320px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);overflow:hidden}.rc-hud-overlay .rc-stick-pad{bottom:128px!important}.geo-board .leaflet-bottom.leaflet-right{inset:auto auto 6px 50%;transform:translate(-50%)}.geo-board .leaflet-bottom.leaflet-right .leaflet-control-attribution{max-width:200px;padding:1px 8px;border-radius:999px;background:#0f172a8c;color:#cbd5e1;font-size:9px;line-height:16px}.tool-sheet-backdrop{position:fixed;inset:0;z-index:85;background:#0f172a57}.tool-sheet{position:fixed;top:0;right:0;bottom:0;z-index:86;width:min(78vw,320px);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-md);animation:tool-sheet-in .2s ease-out both}@keyframes tool-sheet-in{0%{transform:translate(24px);opacity:.4}to{transform:none;opacity:1}}.tool-sheet-head{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--border-soft)}.tool-sheet-head strong{font-size:13px;font-weight:800}.tool-sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 0 16px}.tool-sheet-group{padding:10px 14px 4px}.tool-sheet-group+.tool-sheet-group{border-top:1px solid var(--border-soft)}.tool-sheet-group-title{margin-bottom:7px;color:var(--text3);font-size:11px;font-weight:800}.tool-sheet-group-title+.tool-sheet-group-title{margin-top:10px}.sheet-options{display:flex;flex-direction:column}.sheet-option{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px;border:none;border-bottom:1px solid var(--border-soft);background:transparent;cursor:pointer;text-align:left}.sheet-option:last-child{border-bottom:none}.sheet-option-name{color:var(--text2);font-size:13px;font-weight:650}.sheet-option.is-active .sheet-option-name{color:var(--blue);font-weight:750}.sheet-option-dot{width:18px;height:18px;flex:0 0 auto;border:2px solid #cbd5e1;border-radius:50%;background:transparent}.sheet-option.is-active .sheet-option-dot{border-color:var(--blue);background:radial-gradient(circle,var(--blue) 0 45%,transparent 50%)}.tool-sheet-toggles{display:flex;flex-direction:column}.tool-sheet-toggles .chart-toggle{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px;border-bottom:1px solid var(--border-soft);font-size:13px}.tool-sheet-toggles .chart-toggle:last-child{border-bottom:none}.chart-legend{flex-wrap:nowrap;align-items:center;max-height:none;overflow-x:auto;overflow-y:hidden;padding:4px 8px}.chart-legend-item{flex:0 0 auto}.chart-legend-actions{position:sticky;right:0;z-index:1;display:flex;gap:4px;margin-left:auto;padding:0 0 0 10px;border-left:1px solid var(--border-soft);background:#fff;box-shadow:-6px 0 8px -6px #0f172a40}.three-timeline{display:flex;align-items:center;gap:6px;padding:6px 8px}.three-timeline .three-range{flex:1 1 auto;min-width:0}.three-timeline .app-btn{flex:0 0 auto}.welcome{padding:16px}}.drawer-backdrop{position:fixed;inset:0;z-index:75;background:#0f172a57}.focus-exit-fallback{position:fixed;top:8px;right:10px;z-index:90;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#64748bf2;cursor:pointer}.focus-exit-fallback:hover{color:var(--text);background:#94a3b840;border-radius:6px}.app-icon[data-v-0b062fad]{display:inline-block;vertical-align:middle;flex:0 0 auto}.tool-card[data-v-9210f92a]{display:flex;align-items:center;gap:6px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface-soft);padding:3px 8px;font-size:12px;color:var(--text2);max-width:100%}.tool-card+.tool-card[data-v-9210f92a]{margin-top:3px}.tool-dot[data-v-9210f92a]{width:6px;height:6px;border-radius:50%;background:var(--green);flex:none}.is-pending .tool-dot[data-v-9210f92a]{background:var(--amber)}.tool-label[data-v-9210f92a]{min-width:0}.tool-detail[data-v-9210f92a]{color:var(--text3)}.tool-dur[data-v-9210f92a]{margin-left:auto;color:var(--text3);font-variant-numeric:tabular-nums;flex:none}.tool-dur.is-running[data-v-9210f92a]{color:var(--amber)}.md-view[data-v-a8665b3a]{font-size:13px;line-height:1.65;word-break:break-word}.md-view[data-v-a8665b3a] h1,.md-view[data-v-a8665b3a] h2,.md-view[data-v-a8665b3a] h3,.md-view[data-v-a8665b3a] h4{margin:.6em 0 .3em;font-size:1em;font-weight:600;color:var(--text)}.md-view[data-v-a8665b3a] h1{font-size:1.15em}.md-view[data-v-a8665b3a] h2{font-size:1.08em}.md-view[data-v-a8665b3a] p{margin:.35em 0}.md-view[data-v-a8665b3a] ul,.md-view[data-v-a8665b3a] ol{margin:.35em 0;padding-left:1.4em}.md-view[data-v-a8665b3a] li{margin:.15em 0}.md-view[data-v-a8665b3a] strong{color:var(--text)}.md-view[data-v-a8665b3a] code{font-family:Consolas,monospace;font-size:.92em;background:var(--surface-strong);border-radius:4px;padding:0 4px}.md-view[data-v-a8665b3a] pre{margin:.45em 0;padding:8px 10px;background:var(--surface-strong);border-radius:var(--radius);overflow-x:auto}.md-view[data-v-a8665b3a] pre code{background:none;padding:0}.md-view[data-v-a8665b3a] table{border-collapse:collapse;margin:.45em 0;font-size:.95em;width:100%;table-layout:fixed}.md-view[data-v-a8665b3a] th,.md-view[data-v-a8665b3a] td{border:1px solid var(--border);padding:3px 8px;text-align:left;overflow-wrap:anywhere}.md-view[data-v-a8665b3a] th{background:var(--surface-strong)}.md-view[data-v-a8665b3a] blockquote{margin:.45em 0;padding:2px 10px;border-left:3px solid var(--blue);color:var(--text2)}.md-view[data-v-a8665b3a] a{color:var(--blue)}.md-view[data-v-a8665b3a] hr{border:none;border-top:1px solid var(--border);margin:.6em 0}.msg[data-v-8e8c7720]{display:flex;flex-direction:column;max-width:92%}.msg.user[data-v-8e8c7720]{align-self:flex-end;align-items:flex-end}.msg.assistant[data-v-8e8c7720]{align-self:flex-start;align-items:flex-start}.msg+.msg[data-v-8e8c7720]{margin-top:10px}.msg-tools[data-v-8e8c7720]{width:100%;margin-bottom:4px}.msg-bubble[data-v-8e8c7720]{padding:8px 12px;border-radius:var(--radius-lg);font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.msg.assistant .msg-bubble[data-v-8e8c7720]{white-space:normal}.msg.user .msg-bubble[data-v-8e8c7720]{background:var(--blue);color:#fff;border-bottom-right-radius:4px}.msg-stats[data-v-8e8c7720]{margin-top:3px;font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums}.msg.user .msg-bubble.is-queued[data-v-8e8c7720]{background:var(--blue-soft);color:var(--text2);border:1px dashed var(--blue)}.queued-tag[data-v-8e8c7720]{display:inline-block;margin-left:6px;font-size:10px;padding:0 4px;border-radius:4px;background:#2563eb1f;vertical-align:1px}.msg.assistant .msg-bubble[data-v-8e8c7720]{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;box-shadow:var(--shadow-sm)}.msg-incidents[data-v-8e8c7720]{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.incident-chip[data-v-8e8c7720]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--inc);color:var(--inc);background:var(--surface-strong, transparent);cursor:pointer;white-space:nowrap}.incident-chip[data-v-8e8c7720]:hover{filter:brightness(.92)}.incident-chip.is-focused[data-v-8e8c7720]{background:var(--inc);color:#fff}.incident-chip.is-focused .incident-dot[data-v-8e8c7720]{background:#fff}.incident-dot[data-v-8e8c7720]{width:7px;height:7px;border-radius:50%;flex:none}.msg-list[data-v-ab3936cf]{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:12px}.msg-empty[data-v-ab3936cf]{margin:auto;color:var(--text3);font-size:13px;text-align:center;max-width:260px;line-height:1.7}.msg[data-v-ab3936cf]{display:flex;flex-direction:column;max-width:92%}.msg+.msg[data-v-ab3936cf]{margin-top:10px}.msg.assistant[data-v-ab3936cf]{align-self:flex-start;align-items:flex-start}.msg-tools[data-v-ab3936cf]{width:100%;margin-bottom:4px}.msg-reasoning[data-v-ab3936cf]{width:100%;border:1px dashed var(--border);border-radius:var(--radius);background:transparent;margin-bottom:4px;font-size:12px;color:var(--text3)}.msg-reasoning summary[data-v-ab3936cf]{cursor:pointer;padding:3px 8px;user-select:none;list-style:none}.msg-reasoning summary[data-v-ab3936cf]::-webkit-details-marker{display:none}.msg-reasoning-body[data-v-ab3936cf]{padding:0 8px 6px;white-space:pre-wrap;word-break:break-word;line-height:1.6;max-height:160px;overflow-y:auto}.msg-bubble[data-v-ab3936cf]{padding:8px 12px;border-radius:var(--radius-lg);border-bottom-left-radius:4px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.md-streaming[data-v-ab3936cf]{white-space:normal}.msg-typing[data-v-ab3936cf]{display:flex;align-items:center;gap:6px;color:var(--text3);font-size:13px;padding:4px 2px;font-variant-numeric:tabular-nums}.spinner[data-v-ab3936cf]{width:10px;height:10px;border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin-ab3936cf .8s linear infinite}@keyframes spin-ab3936cf{to{transform:rotate(360deg)}}.chat-input[data-v-f73b669c]{border-top:1px solid var(--border);padding:8px 10px;display:flex;flex-direction:column;gap:6px;background:var(--surface)}.chat-input textarea[data-v-f73b669c]{resize:none;border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;font-size:13px;line-height:1.5;color:var(--text);background:var(--surface-soft);outline:none}.chat-input textarea[data-v-f73b669c]:focus{border-color:var(--blue);box-shadow:var(--ring)}.chat-input textarea[data-v-f73b669c]:disabled{color:var(--text3);cursor:not-allowed}.chat-input-actions[data-v-f73b669c]{display:flex;align-items:center;gap:8px;justify-content:flex-end}.chat-input-hint[data-v-f73b669c]{margin-right:auto;font-size:12px;color:var(--text3)}.chat-input-levels[data-v-f73b669c]{margin-right:auto;display:flex;align-items:center;gap:6px}.level-label[data-v-f73b669c]{font-size:12px;color:var(--text3)}.chat-input-level[data-v-f73b669c]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);color:var(--text);font-size:12px;padding:2px 6px;outline:none;cursor:pointer}.chat-input-level[data-v-f73b669c]:focus{border-color:var(--blue);box-shadow:var(--ring)}.llm-form[data-v-28887fd1]{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:16px 20px}.field[data-v-28887fd1]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text2)}.field input[data-v-28887fd1],.field select[data-v-28887fd1]{border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;font-size:13px;color:var(--text);background:var(--surface-soft)}.field-row[data-v-28887fd1]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.steps-config[data-v-28887fd1]{display:flex;flex-direction:column;gap:6px}.steps-title[data-v-28887fd1]{font-size:12px;color:var(--text2)}.steps-item[data-v-28887fd1]{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--text2)}.steps-label[data-v-28887fd1]{display:flex;align-items:baseline;gap:8px}.steps-item input[data-v-28887fd1]{width:72px;border:1px solid var(--border);border-radius:var(--radius);padding:4px 6px;font-size:13px;color:var(--text);background:var(--surface-soft)}.form-error[data-v-28887fd1]{color:var(--red);font-size:12px;margin:0}.form-note[data-v-28887fd1]{color:var(--text3);font-size:12px;margin:0}.modal-actions[data-v-28887fd1]{display:flex;justify-content:flex-end;gap:8px}.agent-panel[data-v-b2dc417b]{position:fixed;top:0;right:0;bottom:0;max-width:90vw;background:var(--surface-soft);border-left:1px solid var(--border);box-shadow:var(--shadow-md);display:flex;flex-direction:column;z-index:60}.agent-resize-handle[data-v-b2dc417b]{position:absolute;top:0;left:-4px;width:8px;height:100%;cursor:col-resize;z-index:1}.agent-head[data-v-b2dc417b]{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface)}.agent-head strong[data-v-b2dc417b]{font-size:14px;color:var(--text)}.agent-head-sub[data-v-b2dc417b]{font-size:12px;color:var(--text3);flex:1}.agent-head-actions[data-v-b2dc417b]{display:flex;gap:4px;align-items:center}.agent-head-actions[data-v-b2dc417b] .app-btn.is-xs{height:28px}.agent-error[data-v-b2dc417b]{margin:0;padding:6px 12px;font-size:12px;color:var(--red);border-top:1px solid var(--border-soft);background:#fff5f5}.agent-slide-enter-active[data-v-b2dc417b],.agent-slide-leave-active[data-v-b2dc417b]{transition:transform .2s ease}.agent-slide-enter-from[data-v-b2dc417b],.agent-slide-leave-to[data-v-b2dc417b]{transform:translate(100%)}.agent-panel.is-mobile[data-v-b2dc417b]{width:100vw;max-width:100vw}.agent-panel.is-mobile .agent-resize-handle[data-v-b2dc417b]{display:none}.geo-notice[data-v-aaa3743d]{position:absolute;top:50%;left:50%;z-index:1100;transform:translate(-50%,-50%);padding:8px 14px;border-radius:6px;background:#fffffff0;box-shadow:0 1px 4px #00000026;color:#334155;font-size:13px}.geo-notice.is-error[data-v-aaa3743d]{color:#dc2626}.geo-controls[data-v-33ce1095]{position:absolute;top:8px;right:8px;z-index:1100;display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:#ffffffeb;box-shadow:0 1px 4px #00000026;font-size:12px}.geo-control-set[data-v-33ce1095]{display:flex;align-items:center;gap:8px}.geo-provider[data-v-33ce1095]{height:24px;box-sizing:border-box;padding:2px 4px;font-size:12px}.geo-locate[data-v-33ce1095]{font-weight:600}.geo-fold[data-v-33ce1095]{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:0 6px;line-height:1}.geo-controls.is-folded[data-v-33ce1095]{gap:6px;padding:4px}.geo-controls.is-folded .geo-control-set[data-v-33ce1095]{display:none}.geo-toggle[data-v-33ce1095]{display:inline-flex;align-items:center;gap:3px;cursor:pointer;user-select:none}.geo-board{position:absolute;inset:0;z-index:5;background:#e5eaf0}.geo-canvas{position:absolute;inset:0}.geo-board .rc-hud-overlay{z-index:1100}.geo-board .rc-hud-overlay .rc-stick-pad{bottom:40px}.geo-board .leaflet-control-attribution{max-width:90px;overflow:hidden;padding:1px 6px;border-radius:4px 0 0;background:#ffffffc7;box-shadow:0 1px 3px #0000001f;color:#475569;font-size:10px;line-height:16px;text-overflow:ellipsis;transition:max-width .25s ease;white-space:nowrap}.geo-board .leaflet-control-attribution:hover{max-width:85%}.geo-tile-warning{position:absolute;top:8px;left:50%;z-index:1100;max-width:calc(100% - 220px);transform:translate(-50%);padding:6px 12px;border:1px solid #fecaca;border-radius:6px;background:#fee2e2f5;box-shadow:0 1px 4px #00000026;color:#b91c1c;font-size:12px;pointer-events:none}.map-drone-icon,.map-waypoint-icon{background:transparent;border:none}.map-waypoint{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0000004d;color:#fff;font-size:11px;font-weight:700}.map-waypoint-home{background:#0d9488}.map-waypoint-nav{background:#7c3aed}.earth-view{position:absolute;inset:0;z-index:5;background:#000}.earth-canvas{position:absolute;inset:0}.earth-view .cesium-viewer{background:#000}.earth-view .cesium-viewer-bottom{display:none}.earth-view .rc-hud-overlay{z-index:1100}.earth-view .rc-hud-overlay .rc-stick-pad{bottom:12px}.three-curve-exit[data-v-50cf2122]{position:absolute;bottom:8px;left:50%;margin-left:44px;z-index:4;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text2);cursor:pointer;box-shadow:0 1px 4px #0f172a40}.three-curve-exit[data-v-50cf2122]:hover{color:var(--text);background:var(--surface-strong)}.three-range-ai[data-v-138abe6d]{position:absolute;top:0;bottom:0;min-width:2px;opacity:.55;pointer-events:none;box-shadow:inset 0 0 0 1.5px #00000040}.three-debug-panel[data-v-eb5d16e9]{position:absolute;right:10px;top:10px;z-index:20;background:#0f172ad9;color:#e2e8f0;border:1px solid rgba(148,163,184,.4);border-radius:6px;padding:8px 10px;min-width:230px;font:11px/1.5 ui-monospace,Menlo,Consolas,monospace;pointer-events:auto}.three-debug-head[data-v-eb5d16e9]{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:2px}.three-debug-close[data-v-eb5d16e9]{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.three-debug-close[data-v-eb5d16e9]:hover{color:#f1f5f9}.three-debug-src[data-v-eb5d16e9]{color:#93c5fd;margin-bottom:4px}.three-debug-table[data-v-eb5d16e9]{border-collapse:collapse}.three-debug-table th[data-v-eb5d16e9]{text-align:right;color:#94a3b8;padding-right:8px;font-weight:400;white-space:nowrap}.three-debug-table td[data-v-eb5d16e9]{text-align:left;color:#f1f5f9}.three-debug-sep th[data-v-eb5d16e9]{color:#64748b;text-align:left;padding-top:4px;border-top:1px dashed rgba(148,163,184,.3)}.three-debug-note[data-v-eb5d16e9]{margin-top:4px;color:#64748b;font-size:10px}.cm-field[data-v-ec144c2d]{display:block;margin-bottom:8px;font-size:12px;color:#4b5563}.cm-field span[data-v-ec144c2d]{display:block;margin-bottom:2px}.cm-field input[type=number][data-v-ec144c2d]{width:100%;padding:3px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:13px}.cm-field[data-v-ee2ad511]{display:block;margin-bottom:8px;font-size:12px;color:#4b5563}.cm-field span[data-v-ee2ad511]{display:block;margin-bottom:2px}.cm-ctrl[data-v-ee2ad511]{display:flex;align-items:center;gap:6px}.cm-range[data-v-ee2ad511]{flex:1;min-width:0}.cm-num[data-v-ee2ad511]{flex:0 0 56px;width:56px;padding:2px 4px;border:1px solid #d1d5db;border-radius:4px;font-size:12px}.cm-pick-hint[data-v-87e11015]{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:2000;display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:6px;background:#1e293beb;color:#fff;font-size:13px}.cm-grid-hint[data-v-12bd276d]{font-size:11px;color:#6b7280;margin-bottom:4px}.cm-grid-open[data-v-12bd276d]{width:100%;margin-bottom:8px}.cm-grid[data-v-12bd276d]{display:grid;gap:4px;margin-bottom:8px;justify-content:center}.cm-grid-modal-body[data-v-12bd276d]{flex:1;min-height:0;overflow:auto;padding:10px 12px}.cm-cell[data-v-12bd276d]{width:38px;height:38px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#9ca3af;overflow:hidden;background:#fff;position:relative}.cm-cell-arrow[data-v-12bd276d]{position:relative;width:16px;height:22px;transform-origin:50% 50%;transition:transform .1s}.cm-cell-arrow[data-v-12bd276d]:before{content:"";position:absolute;top:0;left:0;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:10px solid #1e40af}.cm-cell-arrow[data-v-12bd276d]:after{content:"";position:absolute;top:9px;left:6px;width:4px;height:12px;background:#1e40af}.cm-cell-plus[data-v-12bd276d]{font-size:14px}.cm-cell[data-v-12bd276d]:hover{background:#f3f4f6}.cm-cell.filled[data-v-12bd276d]{background:#dbeafe;color:#1e40af;border-color:#93c5fd}.cm-cell.sel[data-v-12bd276d]{outline:2px solid #2563eb}.cm-cell-name[data-v-12bd276d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px;max-width:100%}.cm-cell-edit[data-v-12bd276d]{border:1px solid #e5e7eb;border-radius:6px;padding:6px 8px;margin-bottom:8px;background:#f9fafb}.cm-cell-edit-head[data-v-12bd276d]{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#4b5563;gap:4px}.cm-cell-edit-head span[data-v-12bd276d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-cell-file[data-v-12bd276d]{display:flex;align-items:center;gap:4px;font-size:12px;color:#374151;margin:4px 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-tabs[data-v-9e10f695]{display:flex;gap:6px;margin-bottom:10px}.cm-tabs .btn[data-v-9e10f695]{flex:1}.cm-tabs .btn.active[data-v-9e10f695]{background:#2563eb;color:#fff}.custom-models-panel{padding:8px 10px}.cm-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cm-import-row{display:flex;gap:6px;margin-bottom:8px}.cm-import-row .btn{flex:1}.cm-list{border:1px solid #e5e7eb;border-radius:6px;max-height:140px;overflow:auto}.cm-empty{padding:12px;color:#9ca3af;text-align:center;font-size:13px}.cm-row{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;cursor:pointer;border-bottom:1px solid #f3f4f6}.cm-row:hover{background:#f9fafb}.cm-row.active{background:#eff6ff}.cm-row.hidden{opacity:.5}.cm-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-edit{margin-top:10px;border-top:1px solid #e5e7eb;padding-top:10px}.cm-field{display:block;margin-bottom:8px;font-size:12px;color:#4b5563}.cm-field span{display:block;margin-bottom:2px}.cm-field input[type=text],.cm-field input[type=number]{width:100%;padding:3px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:13px}.cm-field input[type=range]{width:100%}.cm-row2{display:flex;gap:8px}.cm-row2 .cm-field{flex:1}.cm-pick,.cm-gizmo{width:100%;margin-bottom:8px}.cm-gizmo.active,.cm-pick.active{background:#2563eb;color:#fff}.cm-save{width:100%;margin-top:4px;background:#16a34a;color:#fff}.cm-hint[data-v-1bf3ae10]{margin:6px 0 0;font-size:11px;color:#9ca3af;line-height:1.4}.custom-models-side[data-v-97bc7afa]{grid-row:1 / -1;min-height:0;display:flex;flex-direction:column}.custom-models-side[data-v-97bc7afa] .custom-models-panel{flex:1;overflow:auto}.settings-overlay[data-v-534d4cf0]{position:fixed;inset:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:100}.settings-modal[data-v-534d4cf0]{background:#fff;border-radius:8px;box-shadow:0 8px 32px #0f172a33;min-width:min(380px,100vw);max-width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}@media (max-width: 768px),(pointer: coarse){.settings-modal[data-v-534d4cf0]{min-width:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;border-radius:0}}.settings-head[data-v-534d4cf0]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.settings-body[data-v-534d4cf0]{padding:12px 16px;overflow-y:auto;flex:1 1 auto;min-height:0}.settings-group+.settings-group[data-v-534d4cf0]{margin-top:16px}.settings-group-title[data-v-534d4cf0]{font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.settings-row[data-v-534d4cf0]{display:flex;align-items:center;gap:10px;padding:6px 0}.settings-label[data-v-534d4cf0]{flex:1;font-size:13px;color:#374151}.settings-hint[data-v-534d4cf0]{margin-left:6px;font-size:11px;color:#9ca3af;font-weight:400}.settings-range[data-v-534d4cf0]{width:150px}.settings-range[data-v-534d4cf0]:disabled{opacity:.45;cursor:not-allowed}.settings-check[data-v-534d4cf0]{width:16px;height:16px;cursor:pointer}.settings-select[data-v-534d4cf0]{min-width:90px;padding:3px 6px;font-size:13px;color:#374151;border:1px solid #d1d5db;border-radius:4px;background:#fff;cursor:pointer}.settings-value[data-v-534d4cf0]{min-width:40px;text-align:right;font:600 12px Consolas,monospace;color:#6b7280}.settings-actions[data-v-534d4cf0]{display:flex;justify-content:flex-end;align-items:center;padding:10px 16px;border-top:1px solid #e5e7eb;flex-shrink:0}.settings-author[data-v-534d4cf0]{margin-right:auto;font-size:10px;color:#b0b4bc;font-weight:400;letter-spacing:.3px}.landscape-hint[data-v-c1ec9683]{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a80;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.landscape-hint-card[data-v-c1ec9683]{width:min(340px,100%);padding:26px 24px 22px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);text-align:center;animation:landscape-hint-in-c1ec9683 .24s ease-out both}@keyframes landscape-hint-in-c1ec9683{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.landscape-hint-phone[data-v-c1ec9683]{position:relative;width:46px;height:78px;margin:0 auto 16px;border:3px solid var(--text2);border-radius:9px;animation:landscape-hint-rotate-c1ec9683 2.4s ease-in-out infinite}.landscape-hint-phone-screen[data-v-c1ec9683]{position:absolute;inset:6px 4px 10px;border-radius:4px;background:var(--blue-soft)}@keyframes landscape-hint-rotate-c1ec9683{0%,18%{transform:rotate(0)}38%,72%{transform:rotate(-90deg)}90%,to{transform:rotate(0)}}.landscape-hint-title[data-v-c1ec9683]{font-size:16px;font-weight:800;color:var(--text)}.landscape-hint-text[data-v-c1ec9683]{margin:6px 0 18px;color:var(--text2);font-size:13px;line-height:1.5}.landscape-hint-actions[data-v-c1ec9683]{display:flex;justify-content:center;gap:10px}
