.login-sheet[data-v-6a65b9da]{max-width:980px}.login-header[data-v-6a65b9da]{border-bottom:2px double var(--moss);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;margin-bottom:34px;padding-bottom:22px;display:grid}.login-header h1[data-v-6a65b9da]{color:var(--moss-dark);margin:4px 0;font-size:30px;line-height:1.2}.login-header p[data-v-6a65b9da]{color:var(--muted);margin:0}.login-layout[data-v-6a65b9da]{grid-template-columns:minmax(0,1fr) 360px;align-items:stretch;gap:28px;display:grid}.login-mark[data-v-6a65b9da],.login-panel[data-v-6a65b9da]{border:1px solid var(--moss);background:#f4ecd894;padding:28px}.login-mark[data-v-6a65b9da]{align-content:center;min-height:280px;display:grid}.survey-stamp[data-v-6a65b9da]{border:1px solid var(--rust);width:fit-content;color:var(--rust);letter-spacing:.18em;margin-bottom:20px;padding:7px 16px;font-family:JetBrains Mono,monospace}.login-mark h2[data-v-6a65b9da]{color:var(--moss-dark);margin:0 0 10px;font-size:28px}.login-mark p[data-v-6a65b9da]{color:var(--muted);margin:0;line-height:1.8}.login-panel[data-v-6a65b9da]{gap:16px;display:grid}.login-panel label[data-v-6a65b9da]{color:var(--moss-dark);gap:7px;font-weight:700;display:grid}.field[data-v-6a65b9da]{border:1px solid var(--moss);width:100%;color:var(--ink);background:#fffdf3db;min-height:40px;padding:8px 10px}.full[data-v-6a65b9da]{width:100%}.login-message[data-v-6a65b9da]{border:1px dashed var(--paper-line);color:var(--moss-dark);background:#fffdf3a3;margin:0;padding:10px;line-height:1.55}.login-message.error[data-v-6a65b9da]{border-color:var(--bad);color:var(--bad)}@media (width<=767px){.login-sheet[data-v-6a65b9da]{margin:12px 8px 22px;padding:20px 16px}.login-header[data-v-6a65b9da],.login-layout[data-v-6a65b9da]{grid-template-columns:1fr}.login-header h1[data-v-6a65b9da]{font-size:22px}.login-mark[data-v-6a65b9da],.login-panel[data-v-6a65b9da]{padding:18px}}.panel-stack[data-v-3a4e5308],.tool-card[data-v-3a4e5308]{gap:12px;display:grid}.compact[data-v-3a4e5308]{margin-bottom:0}.tool-card[data-v-3a4e5308]{border:1px solid var(--paper-line);background:#fffdf394;padding:10px}.tool-card h4[data-v-3a4e5308]{color:var(--moss-dark);margin:0;font-size:14px}.field-row[data-v-3a4e5308]{color:var(--moss-dark);gap:6px;font-size:13px;display:grid}.compact-field[data-v-3a4e5308]{max-width:180px}.result-grid[data-v-3a4e5308]{grid-template-columns:repeat(2,minmax(0,1fr))}.empty-note[data-v-3a4e5308]{border:1px dashed var(--paper-line);color:var(--muted);background:#fffdf38f;margin:0;padding:8px;font-size:12px;line-height:1.55}@media (width<=767px){.result-grid[data-v-3a4e5308]{grid-template-columns:1fr}}.right-card[data-v-48f44dac]{gap:10px;display:grid}.compact[data-v-48f44dac]{margin-bottom:0}.full[data-v-48f44dac]{width:100%}.prediction-mode[data-v-48f44dac]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.prediction-mode label[data-v-48f44dac]{border:1px solid var(--moss);min-height:36px;color:var(--moss-dark);cursor:pointer;background:#fffdf3b8;justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex}.prediction-mode input[data-v-48f44dac]{accent-color:var(--moss)}.prediction-mode label[data-v-48f44dac]:has(input:checked){background:var(--moss);color:#fffdf3}.prediction-mode label.disabled[data-v-48f44dac]{border-color:var(--bad);color:var(--bad);cursor:not-allowed;background:#9b352a14}.prediction-mode label.disabled input[data-v-48f44dac]{cursor:not-allowed}.form-message[data-v-48f44dac],.form-error[data-v-48f44dac],.empty-note[data-v-48f44dac]{margin:0;font-size:13px;line-height:1.65}.form-message[data-v-48f44dac]{color:var(--moss-dark)}.form-error[data-v-48f44dac]{color:var(--bad)}.status-pill.local[data-v-48f44dac]{border-color:var(--bad);color:var(--bad);background:#9b352a1a}.ai-server-warning[data-v-48f44dac]{border:1px dashed var(--bad);color:var(--bad);background:#9b352a14;margin:0;padding:10px;font-weight:700;line-height:1.6}.local-note[data-v-48f44dac]{border:1px dashed var(--paper-line);color:var(--muted);background:#fffdf3a3;margin:0;padding:10px;line-height:1.6}.empty-note[data-v-48f44dac]{color:var(--muted);border:1px dashed var(--paper-line);background:#fffdf38f;padding:10px}.ai-summary[data-v-48f44dac],.relation-block[data-v-48f44dac],.ai-point[data-v-48f44dac]{border:1px solid var(--paper-line);background:#fffdf39e}.ai-summary[data-v-48f44dac]{gap:5px;padding:10px;display:grid}.ai-summary strong[data-v-48f44dac],.point-group h4[data-v-48f44dac],.relation-block h4[data-v-48f44dac]{color:var(--moss-dark)}.ai-summary span[data-v-48f44dac]{color:var(--muted);font-size:12px}.ai-summary span.danger[data-v-48f44dac]{color:var(--bad);font-weight:700}.point-groups[data-v-48f44dac]{gap:10px;display:grid}.point-group[data-v-48f44dac]{gap:8px;display:grid}.point-group h4[data-v-48f44dac],.relation-block h4[data-v-48f44dac]{margin:0;font-size:14px}.ai-point[data-v-48f44dac]{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:9px;display:grid}.ai-point.predicted[data-v-48f44dac]{border-left:3px solid #c45f2f}.ai-point.recommended[data-v-48f44dac]{border-left:3px solid #6e5a20}.ai-point strong[data-v-48f44dac],.ai-point span[data-v-48f44dac],.ai-point small[data-v-48f44dac]{display:block}.ai-point strong[data-v-48f44dac]{color:var(--moss-dark);font-family:JetBrains Mono,monospace}.ai-point span[data-v-48f44dac],.ai-point small[data-v-48f44dac],.relation-block p[data-v-48f44dac]{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.55}.point-actions[data-v-48f44dac]{align-content:start;justify-items:end;gap:5px;display:grid}.confidence[data-v-48f44dac]{color:var(--rust);font-family:JetBrains Mono,monospace;font-size:12px}.relation-block[data-v-48f44dac]{gap:6px;padding:10px;display:grid}@media (width<=720px){.ai-point[data-v-48f44dac]{grid-template-columns:1fr}.point-actions[data-v-48f44dac]{grid-template-columns:auto auto auto;justify-content:start;justify-items:start}}.panel-stack[data-v-26912e4e]{gap:12px;display:grid}.compact[data-v-26912e4e]{margin-bottom:0}.map-click-box[data-v-26912e4e],.control-form[data-v-26912e4e],.point-item[data-v-26912e4e]{border:1px solid var(--paper-line);background:#fffdf39e;padding:10px}.map-click-box[data-v-26912e4e]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 8px;display:grid}.map-click-box strong[data-v-26912e4e],.map-click-box span[data-v-26912e4e]{display:block}.map-click-box span[data-v-26912e4e]{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:12px}.control-form[data-v-26912e4e]{gap:10px;display:grid}.control-form label[data-v-26912e4e],.projected-fields[data-v-26912e4e]{color:var(--moss-dark);gap:6px;font-size:13px;display:grid}.form-grid[data-v-26912e4e]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.note-field[data-v-26912e4e]{resize:vertical}.projected-fields summary[data-v-26912e4e]{cursor:pointer;color:var(--muted)}.form-actions[data-v-26912e4e],.point-actions[data-v-26912e4e]{flex-wrap:wrap;gap:8px;display:flex}.form-error[data-v-26912e4e]{color:var(--bad);margin:0;font-size:13px}.empty-note[data-v-26912e4e]{color:var(--muted);border:1px dashed var(--paper-line);background:#fffdf38f;margin:0;padding:10px;font-size:13px;line-height:1.65}.point-list[data-v-26912e4e]{gap:8px;max-height:520px;display:grid;overflow:auto}.point-item[data-v-26912e4e]{gap:8px;display:grid}.point-item.active[data-v-26912e4e]{outline:2px solid #b8893a8c}.point-item strong[data-v-26912e4e],.point-item span[data-v-26912e4e],.point-item small[data-v-26912e4e]{display:block}.point-item strong[data-v-26912e4e]{color:var(--moss-dark);font-family:JetBrains Mono,monospace}.point-item span[data-v-26912e4e]{margin-top:4px;font-size:13px}.point-item small[data-v-26912e4e]{color:var(--muted);margin-top:4px;font-size:12px}.field-button.danger[data-v-26912e4e]{border-color:var(--rust);color:var(--rust)}.field-button.danger[data-v-26912e4e]:hover{background:var(--rust);color:#fffdf3}@media (width<=720px){.form-grid[data-v-26912e4e],.map-click-box[data-v-26912e4e]{grid-template-columns:1fr}}.panel-stack[data-v-fb47a32e],.tool-card[data-v-fb47a32e]{gap:12px;display:grid}.compact[data-v-fb47a32e]{margin-bottom:0}.tool-card[data-v-fb47a32e]{border:1px solid var(--paper-line);background:#fffdf394;padding:10px}.tool-card h4[data-v-fb47a32e]{color:var(--moss-dark);margin:0;font-size:14px}.field-row[data-v-fb47a32e]{color:var(--moss-dark);gap:6px;font-size:13px;display:grid}.result-grid[data-v-fb47a32e]{grid-template-columns:repeat(2,minmax(0,1fr))}.empty-note[data-v-fb47a32e]{border:1px dashed var(--paper-line);color:var(--muted);background:#fffdf38f;margin:0;padding:8px;font-size:12px;line-height:1.55}@media (width<=767px){.result-grid[data-v-fb47a32e]{grid-template-columns:1fr}}.panel-stack[data-v-5a3cd806]{gap:12px;display:grid}.compact[data-v-5a3cd806]{margin-bottom:0}.file-input[data-v-5a3cd806]{display:none}.button-row[data-v-5a3cd806],.import-summary[data-v-5a3cd806]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.empty-note[data-v-5a3cd806],.import-errors[data-v-5a3cd806]{border:1px dashed var(--paper-line);color:var(--muted);background:#fffdf38f;margin:0;padding:8px;font-size:12px;line-height:1.55}.empty-note p[data-v-5a3cd806],.import-errors p[data-v-5a3cd806]{margin:0}.empty-note p+p[data-v-5a3cd806],.import-errors p+p[data-v-5a3cd806]{margin-top:4px}.import-errors[data-v-5a3cd806]{border-color:var(--survey-danger);color:var(--survey-danger)}@media (width<=767px){.button-row[data-v-5a3cd806],.import-summary[data-v-5a3cd806]{grid-template-columns:1fr}}.implementation-panel[data-v-9a21bbdf],.status-group[data-v-9a21bbdf]{gap:10px;display:grid}.compact[data-v-9a21bbdf]{margin-bottom:0}.status-group[data-v-9a21bbdf]{border:1px solid var(--paper-line);background:#fffdf39e;padding:10px}.status-group h4[data-v-9a21bbdf]{color:var(--moss-dark);margin:0;font-size:14px}.status-group ul[data-v-9a21bbdf]{color:var(--muted);margin:0;padding-left:18px;font-size:12px;line-height:1.65}.full[data-v-9a21bbdf]{width:100%}.clear-message[data-v-9a21bbdf]{color:var(--moss-dark);margin:0;font-size:13px}.panel-stack[data-v-26032e12],.tool-card[data-v-26032e12],.leveling-list[data-v-26032e12]{gap:12px;display:grid}.compact[data-v-26032e12]{margin-bottom:0}.route-types[data-v-26032e12]{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.tool-card[data-v-26032e12]{border:1px solid var(--paper-line);background:#fffdf394;padding:10px}.tool-card h4[data-v-26032e12]{color:var(--moss-dark);margin:0;font-size:14px}.count-text[data-v-26032e12]{color:var(--moss-dark);font-size:13px}.field-row[data-v-26032e12]{color:var(--moss-dark);gap:6px;font-size:13px;display:grid}.full[data-v-26032e12]{width:100%}.result-grid[data-v-26032e12]{grid-template-columns:repeat(2,minmax(0,1fr))}.empty-note[data-v-26032e12]{border:1px dashed var(--paper-line);color:var(--muted);background:#fffdf38f;margin:0;padding:8px;font-size:12px;line-height:1.55}.empty-note p[data-v-26032e12]{margin:0}.empty-note p+p[data-v-26032e12]{margin-top:4px}.leveling-row[data-v-26032e12]{border:1px solid var(--paper-line);background:#fffdf3b3;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.leveling-row strong[data-v-26032e12],.leveling-row span[data-v-26032e12],.leveling-row small[data-v-26032e12]{display:block}.leveling-row span[data-v-26032e12],.leveling-row small[data-v-26032e12]{color:var(--muted);margin-top:3px;font-size:12px}@media (width<=767px){.route-types[data-v-26032e12],.result-grid[data-v-26032e12],.leveling-row[data-v-26032e12]{grid-template-columns:1fr}}.right-card[data-v-0c32cefe]{gap:10px;display:grid}.compact[data-v-0c32cefe]{margin-bottom:0}.nearby-form[data-v-0c32cefe]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:8px;display:grid}.nearby-form label[data-v-0c32cefe]{color:var(--moss-dark);gap:6px;font-size:13px;display:grid}.full[data-v-0c32cefe]{width:100%}.form-error[data-v-0c32cefe],.empty-note[data-v-0c32cefe]{margin:0;font-size:13px;line-height:1.65}.form-error[data-v-0c32cefe]{color:var(--bad)}.empty-note[data-v-0c32cefe]{color:var(--muted);border:1px dashed var(--paper-line);background:#fffdf38f;padding:10px}.nearby-list[data-v-0c32cefe]{gap:8px;max-height:280px;display:grid;overflow:auto}.nearby-list article[data-v-0c32cefe]{border:1px solid var(--paper-line);background:#fffdf39e;padding:9px}.nearby-list article.nearest[data-v-0c32cefe]{border-color:var(--gold);box-shadow:inset 0 0 0 2px #b8893a2e}.nearby-list strong[data-v-0c32cefe],.nearby-list span[data-v-0c32cefe],.nearby-list small[data-v-0c32cefe]{display:block}.nearby-list strong[data-v-0c32cefe]{color:var(--moss-dark);font-family:JetBrains Mono,monospace}.nearby-list span[data-v-0c32cefe],.nearby-list small[data-v-0c32cefe]{margin-top:3px;font-size:12px}.nearby-list small[data-v-0c32cefe]{color:var(--muted)}@media (width<=720px){.nearby-form[data-v-0c32cefe]{grid-template-columns:1fr}}.right-card[data-v-a43c6ed9]{gap:10px;display:grid}.compact[data-v-a43c6ed9]{margin-bottom:0}.empty-note[data-v-a43c6ed9]{color:var(--muted);border:1px dashed var(--paper-line);background:#fffdf38f;margin:0;padding:10px;font-size:13px}.sql-preview[data-v-a43c6ed9],.request-detail[data-v-a43c6ed9]{border:1px solid var(--paper-line);background:#fffdf394;padding:10px}.sql-head[data-v-a43c6ed9]{justify-content:space-between;align-items:center;gap:8px;display:flex}.sql-head strong[data-v-a43c6ed9]{color:var(--moss-dark);font-size:13px}.sql-preview p[data-v-a43c6ed9]{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.55}.sql-block[data-v-a43c6ed9],.json-block[data-v-a43c6ed9]{white-space:pre-wrap;word-break:break-word;max-height:280px;overflow:auto}.sql-block[data-v-a43c6ed9]{border:1px dashed var(--paper-line);color:var(--moss-dark);background:#2540360f;margin:10px 0 0;padding:9px;font-size:12px;line-height:1.5}.param-grid[data-v-a43c6ed9]{gap:5px;margin-top:8px;display:grid}.param-grid span[data-v-a43c6ed9]{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:12px}.request-detail[data-v-a43c6ed9]{padding:0}.request-detail summary[data-v-a43c6ed9]{cursor:pointer;color:var(--moss-dark);padding:8px 10px;font-weight:700}.request-detail .json-block[data-v-a43c6ed9]{border-top:1px solid var(--paper-line);margin:0}.not-implemented[data-v-015e94c3]{border:1px dashed var(--paper-line);background:#fffdf3b8;gap:8px;padding:10px;display:grid}.not-implemented.severity-error[data-v-015e94c3]{border-color:#a14a2a94}.not-implemented.severity-disconnected[data-v-015e94c3]{border-color:#a36b1e94}.not-implemented-head[data-v-015e94c3]{color:var(--moss-dark);align-items:center;gap:8px;display:flex}.not-implemented p[data-v-015e94c3],.not-implemented small[data-v-015e94c3]{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.not-implemented small[data-v-015e94c3]{color:var(--rust)}.panel-stack[data-v-aa4638a3]{gap:12px;display:grid}.compact[data-v-aa4638a3]{margin-bottom:0}.current-frame[data-v-aa4638a3],.frame-form[data-v-aa4638a3],.frame-item[data-v-aa4638a3]{border:1px solid var(--paper-line);background:#fffdf39e;padding:10px}.current-frame strong[data-v-aa4638a3],.current-frame span[data-v-aa4638a3],.current-frame small[data-v-aa4638a3],.frame-item strong[data-v-aa4638a3],.frame-item span[data-v-aa4638a3],.frame-item small[data-v-aa4638a3]{display:block}.current-frame strong[data-v-aa4638a3],.frame-item strong[data-v-aa4638a3]{color:var(--moss-dark);font-family:JetBrains Mono,monospace}.current-frame span[data-v-aa4638a3],.frame-item span[data-v-aa4638a3]{margin-top:4px;font-size:13px}.current-frame small[data-v-aa4638a3],.frame-item small[data-v-aa4638a3]{color:var(--muted);margin-top:4px;font-size:12px}.frame-form[data-v-aa4638a3]{gap:10px;display:grid}.frame-form label[data-v-aa4638a3]{color:var(--moss-dark);gap:6px;font-size:13px;display:grid}.form-grid[data-v-aa4638a3],.role-buttons[data-v-aa4638a3]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.full[data-v-aa4638a3]{width:100%}.form-error[data-v-aa4638a3]{color:var(--bad);margin:0;font-size:13px}.empty-note[data-v-aa4638a3]{color:var(--muted);border:1px dashed var(--paper-line);background:#fffdf38f;margin:0;padding:10px;font-size:13px;line-height:1.65}.frame-list[data-v-aa4638a3]{gap:8px;max-height:460px;display:grid;overflow:auto}.frame-item[data-v-aa4638a3]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.field-button.danger[data-v-aa4638a3]{border-color:var(--rust);color:var(--rust)}.field-button.danger[data-v-aa4638a3]:hover{background:var(--rust);color:#fffdf3}@media (width<=720px){.form-grid[data-v-aa4638a3],.role-buttons[data-v-aa4638a3],.frame-item[data-v-aa4638a3]{grid-template-columns:1fr}}.data-section[data-v-32ed4d03]{gap:6px;min-height:0;padding:6px 8px 8px;display:grid}.data-section.is-open[data-v-32ed4d03]{grid-template-rows:auto minmax(0,1fr)}.drawer-summary[data-v-32ed4d03]{width:100%;color:var(--moss-dark);text-align:left;background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:4px 10px;line-height:1.2;display:flex;min-height:26px!important;padding:0!important;font-size:12px!important}.drawer-summary span[data-v-32ed4d03]{color:var(--muted);font-size:12px}.drawer-summary strong[data-v-32ed4d03]{color:var(--moss-dark);margin-left:auto;font-size:12px}.drawer-body[data-v-32ed4d03]{transform-origin:top;grid-template-rows:auto auto minmax(0,1fr);gap:6px;min-height:0;animation:.18s ease-out drawer-slide-down-32ed4d03;display:grid;overflow:hidden}.drawer-actions[data-v-32ed4d03]{align-items:center;gap:6px;display:inline-flex}.table-tabs[data-v-32ed4d03]{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.table-tabs .tab-button[data-v-32ed4d03]{white-space:nowrap;flex:none;letter-spacing:0!important;width:auto!important;min-width:66px!important;height:26px!important;min-height:26px!important;padding:2px 7px!important;font-size:11.5px!important;line-height:1!important}.table-tabs .tab-button.active[data-v-32ed4d03]{font-weight:700}.empty-cell[data-v-32ed4d03]{color:var(--muted);text-align:center;padding:14px}.data-table-wrap[data-v-32ed4d03]{min-height:0;overflow:auto}@keyframes drawer-slide-down-32ed4d03{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=767px){.drawer-summary[data-v-32ed4d03]{display:none}.data-section.mobile-open[data-v-32ed4d03]{left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:32;max-height:min(52dvh,460px);display:grid;position:fixed;box-shadow:0 18px 46px -22px #1f3830b8}.drawer-body[data-v-32ed4d03]{max-height:calc(min(52dvh,460px) - 28px)}.table-tabs[data-v-32ed4d03]{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tab-button[data-v-32ed4d03],.data-table[data-v-32ed4d03]{min-width:0}.data-table thead[data-v-32ed4d03]{display:none}.data-table[data-v-32ed4d03],.data-table tbody[data-v-32ed4d03],.data-table tr[data-v-32ed4d03],.data-table td[data-v-32ed4d03]{width:100%;display:block}.data-table tr[data-v-32ed4d03]{border-bottom:1px solid var(--paper-line);padding:8px 0}.data-table td[data-v-32ed4d03]{white-space:normal;word-break:break-word;border-bottom:0;grid-template-columns:96px minmax(0,1fr);gap:8px;padding:6px 8px;display:grid}.data-table td[data-v-32ed4d03]:before{content:attr(data-label);color:var(--muted)}.data-table .empty-cell[data-v-32ed4d03]{text-align:left;display:block}.data-table .empty-cell[data-v-32ed4d03]:before{content:""}}.traverse-compute[data-v-b48939c0],.compute-settings[data-v-b48939c0],.adjusted-list[data-v-b48939c0]{gap:10px;display:grid}.compact[data-v-b48939c0]{margin-bottom:0}.compute-settings[data-v-b48939c0]{grid-template-columns:repeat(3,minmax(0,1fr))}.compute-settings label[data-v-b48939c0]{color:var(--moss-dark);gap:6px;font-size:12px;display:grid}.compute-metrics[data-v-b48939c0]{grid-template-columns:repeat(2,minmax(0,1fr))}.quality-flags[data-v-b48939c0]{flex-wrap:wrap;gap:8px;display:flex}.compute-actions[data-v-b48939c0]{justify-content:space-between;align-items:center;gap:8px;display:flex}.empty-note[data-v-b48939c0]{border:1px dashed var(--paper-line);color:var(--muted);background:#fffdf38f;padding:10px;font-size:13px;line-height:1.65}.empty-note p[data-v-b48939c0]{margin:0}.empty-note p+p[data-v-b48939c0]{margin-top:4px}.compute-detail[data-v-b48939c0]{border:1px solid var(--paper-line);background:#fffdf380}.compute-detail summary[data-v-b48939c0]{cursor:pointer;color:var(--moss-dark);padding:8px 10px;font-weight:700}.compute-table-wrap[data-v-b48939c0]{overflow:auto}.compute-table[data-v-b48939c0]{border-collapse:collapse;width:100%;min-width:560px}.compute-table th[data-v-b48939c0],.compute-table td[data-v-b48939c0]{border-top:1px solid var(--paper-line);text-align:left;white-space:nowrap;padding:7px 8px;font-size:12px}.compute-table th[data-v-b48939c0]{color:var(--moss-dark);background:#dce8de99}.adjusted-list[data-v-b48939c0]{padding:0 10px 10px}.adjusted-list article[data-v-b48939c0]{border:1px solid var(--paper-line);background:#fffdf39e;padding:8px}.adjusted-list strong[data-v-b48939c0],.adjusted-list span[data-v-b48939c0],.adjusted-list small[data-v-b48939c0]{display:block}.adjusted-list span[data-v-b48939c0],.adjusted-list small[data-v-b48939c0]{color:var(--muted);margin-top:4px;font-size:12px}@media (width<=767px){.compute-settings[data-v-b48939c0],.compute-metrics[data-v-b48939c0]{grid-template-columns:1fr}}.panel-stack[data-v-29c617a4],.observation-list[data-v-29c617a4],.observation-form[data-v-29c617a4]{gap:12px;display:grid}.compact[data-v-29c617a4]{margin-bottom:0}.full[data-v-29c617a4]{width:100%}.observation-form[data-v-29c617a4],.observation-item[data-v-29c617a4]{border:1px solid var(--paper-line);background:#fffdf39e;padding:10px}.observation-form label[data-v-29c617a4]{color:var(--moss-dark);gap:6px;font-size:13px;display:grid}.form-grid[data-v-29c617a4]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.form-error[data-v-29c617a4]{color:var(--bad);margin:0;font-size:13px}.estimate-note[data-v-29c617a4],.empty-note[data-v-29c617a4]{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.empty-note[data-v-29c617a4]{border:1px dashed var(--paper-line);background:#fffdf38f;padding:10px}.observation-item strong[data-v-29c617a4],.observation-item span[data-v-29c617a4],.observation-item small[data-v-29c617a4]{display:block}.observation-item strong[data-v-29c617a4]{color:var(--moss-dark)}.observation-item span[data-v-29c617a4]{margin-top:4px;font-size:13px}.observation-item small[data-v-29c617a4]{color:var(--muted);margin-top:4px;font-family:JetBrains Mono,monospace;font-size:12px}@media (width<=720px){.form-grid[data-v-29c617a4]{grid-template-columns:1fr}}.layer-switcher[data-v-25c5f4ef]{min-width:260px;color:var(--moss-dark);grid-template-columns:auto minmax(140px,1fr);align-items:center;gap:8px;font-size:13px;display:grid}.layer-switcher span[data-v-25c5f4ef]{white-space:nowrap}@media (width<=720px){.layer-switcher[data-v-25c5f4ef]{grid-template-columns:1fr;min-width:100%}}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}.map-panel[data-v-2db32a78]{flex-direction:column;min-height:0;display:flex}.token-tip[data-v-2db32a78]{color:var(--rust);margin:-2px 0 12px;font-size:13px;line-height:1.5}.map-frame[data-v-2db32a78]{flex:1;min-height:0;position:relative}.ol-map[data-v-2db32a78],.map-unavailable[data-v-2db32a78]{border:1px solid var(--moss);position:absolute;inset:0;overflow:hidden}.ol-map.hidden[data-v-2db32a78]{opacity:0;pointer-events:none}.map-unavailable[data-v-2db32a78]{text-align:center;color:var(--moss-dark);background:#fffdf3c2;place-content:center;gap:8px;padding:24px;display:grid}.map-unavailable strong[data-v-2db32a78],.map-unavailable span[data-v-2db32a78]{display:block}.map-unavailable span[data-v-2db32a78]{max-width:520px;color:var(--muted);font-size:13px;line-height:1.65}.map-grid-label[data-v-2db32a78]{border:1px solid var(--moss);width:36px;height:36px;color:var(--moss-dark);background:#faf3dfcc;place-items:center;font-family:JetBrains Mono,monospace;font-weight:700;display:grid;position:absolute;top:18px;right:18px}.map-controls[data-v-2db32a78]{--map-control-h:clamp(26px, 1.55vw, 32px);--map-control-pad-x:clamp(6px, .55vw, 9px);z-index:5;background:#faf3dff5;border:1px solid #2d504359;flex-wrap:wrap;align-items:center;gap:4px;max-width:calc(100% - 24px);padding:4px;display:flex;position:absolute;bottom:12px;left:12px;box-shadow:0 10px 22px -16px #1f383099}.map-control-button[data-v-2db32a78]{min-width:clamp(34px,3vw,44px);height:var(--map-control-h);min-height:0;padding:3px var(--map-control-pad-x);border:1px solid var(--moss);color:var(--moss-dark);cursor:pointer;white-space:nowrap;background:#fffdf3eb;font-size:clamp(11px,.72vw,12px);line-height:1}.map-control-button[data-v-2db32a78]:hover:not(:disabled){background:var(--moss);color:#fffdf3}.map-control-button[data-v-2db32a78]:disabled{cursor:not-allowed;opacity:.48}.map-marker[data-v-2db32a78]{background:var(--moss);color:#fffdf3;white-space:nowrap;border:2px solid #fffdf3;border-radius:999px;min-width:30px;height:30px;padding:0 8px;font-family:JetBrains Mono,monospace;font-size:10px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 12px #1f383047}.map-marker.station[data-v-2db32a78],.map-marker.station_point[data-v-2db32a78]{background:#244f5a}.map-marker.backsight[data-v-2db32a78],.map-marker.backsight_point[data-v-2db32a78]{background:#7d4d28}.map-marker.foresight[data-v-2db32a78],.map-marker.foresight_point[data-v-2db32a78]{background:#8a352f}.map-marker.benchmark[data-v-2db32a78]{background:#85621f}.map-marker.current_location[data-v-2db32a78]{background:#1f6f8b}.map-marker.highlighted[data-v-2db32a78]{outline:3px solid #f6d37a}.map-marker span[data-v-2db32a78]{text-overflow:ellipsis;max-width:82px;display:block;overflow:hidden}.map-popup[data-v-2db32a78]{border:1px solid var(--moss);min-width:180px;color:var(--ink);background:#faf3dff5;padding:10px;display:none;box-shadow:0 10px 22px -14px #1f383080}.map-popup.visible[data-v-2db32a78],.map-popup strong[data-v-2db32a78],.map-popup span[data-v-2db32a78],.map-popup small[data-v-2db32a78]{display:block}.map-popup strong[data-v-2db32a78]{color:var(--moss-dark);font-family:JetBrains Mono,monospace}.map-popup span[data-v-2db32a78],.map-popup small[data-v-2db32a78]{margin-top:4px;font-size:12px}.map-popup small[data-v-2db32a78]{color:var(--muted)}.map-footer[data-v-2db32a78]{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:10px;display:flex}.map-legend[data-v-2db32a78]{color:var(--muted);flex-wrap:wrap;gap:8px 14px;font-size:12px;display:flex}.map-legend span[data-v-2db32a78]{align-items:center;gap:6px;display:inline-flex}.map-legend i[data-v-2db32a78]{background:var(--moss);border:1px solid #1f383040;width:18px;height:8px}.map-legend .station[data-v-2db32a78]{background:#244f5a}.map-legend .backsight[data-v-2db32a78]{background:#7d4d28}.map-legend .foresight[data-v-2db32a78]{background:#8a352f}.map-legend .ai-predicted[data-v-2db32a78]{background:#c45f2f}.map-legend .ai-recommended[data-v-2db32a78]{background:#6e5a20}.map-legend .line[data-v-2db32a78]{background:repeating-linear-gradient(90deg,#a14a2a 0 6px,#0000 6px 10px)}.click-preview[data-v-2db32a78]{color:var(--moss-dark);font-family:JetBrains Mono,monospace;font-size:12px}.zoom-preview[data-v-2db32a78]{color:var(--muted)}.zoom-preview.warn[data-v-2db32a78]{color:var(--rust)}@media (width<=767px){.map-panel[data-v-2db32a78]{min-height:56dvh}.map-frame[data-v-2db32a78]{min-height:330px}.map-controls[data-v-2db32a78]{--map-control-h:30px;--map-control-pad-x:7px;gap:4px;padding:4px;bottom:10px;left:10px}.map-control-button[data-v-2db32a78]{min-width:38px;font-size:12px}.map-title[data-v-2db32a78]{font-size:13px}}@media (orientation:landscape) and (height<=560px){.map-panel[data-v-2db32a78]{min-height:max(280px,100dvh - 138px)}.map-frame[data-v-2db32a78]{min-height:max(220px,100dvh - 250px)}.map-footer[data-v-2db32a78]{margin-top:6px}}:root{--ink:#1a2820;--paper:#f4ecd8;--paper-soft:#faf3df;--paper-line:#d9cfb6;--moss:#2d5043;--moss-dark:#1f3830;--moss-light:#dce8de;--rust:#a14a2a;--gold:#b8893a;--muted:#6b6055;--panel:#faf3dfe0;--panel-strong:#f4ecd8f0;--ok:#2f6f4f;--warn:#a36b1e;--bad:#9b352a;color:var(--ink);font-family:Noto Serif SC,"Source Serif 4",serif}*{box-sizing:border-box}body{background:radial-gradient(at top,#faf3df 0%,#f4ecd8 50%,#ede2c6 100%);min-height:100vh;margin:0}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#2d50430a 1px,#0000 1px),linear-gradient(90deg,#2d50430a 1px,#0000 1px);background-size:24px 24px;position:fixed;inset:0}button,input,select,textarea{font:inherit}button{cursor:pointer}#app{z-index:1;min-height:100vh;position:relative}.sheet{border:1px solid var(--moss);max-width:1600px;box-shadow:0 1px 0 var(--moss) inset, 0 0 0 4px var(--paper), 0 0 0 5px var(--moss), 0 30px 60px -20px #1f38304d;background:#faf3dfd9;margin:42px auto 72px;padding:52px 56px 44px}.home-header{border-bottom:2px double var(--moss);justify-content:space-between;align-items:flex-end;margin-bottom:40px;padding-bottom:28px;display:flex}.home-header h1{color:var(--moss-dark);letter-spacing:0;margin:0;font-size:42px;font-weight:900}.home-header h1 .small{color:var(--muted);letter-spacing:.25em;margin-bottom:8px;font-family:"Source Serif 4",serif;font-size:15px;font-style:italic;font-weight:400;display:block}.stamp{border:1.5px solid var(--rust);color:var(--rust);white-space:nowrap;padding:8px 18px;font-size:16px;transform:rotate(-2deg)}.intro{text-align:center;margin-bottom:46px;padding:0 30px}.intro p{margin:0 0 14px;font-size:20px;line-height:1.9}.intro .meta{color:var(--muted);letter-spacing:.12em;font-family:JetBrains Mono,monospace;font-size:16px}.intro .dot{opacity:.5;margin:0 10px}.tool-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin-bottom:50px;display:grid}.tool-card{min-width:0;color:inherit;border:1px solid var(--moss);background:#f4ecd880;flex-direction:column;padding:30px 24px 28px;text-decoration:none;transition:transform .25s,background .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden}.tool-card:before{content:"";pointer-events:none;border:1px solid #0000;transition:border-color .25s;position:absolute;inset:8px}.tool-card:hover{background:#f4ecd8d9;transform:translateY(-4px);box-shadow:0 12px 24px -10px #1f383040}.tool-card:hover:before{border-color:var(--gold)}.card-icon{width:108px;height:108px;color:var(--moss);margin:0 auto 24px}.card-icon svg{width:100%;height:100%;display:block}.traverse-path-icon{width:178px;height:126px;margin-bottom:18px}.card-body{flex-direction:column;flex:1;min-width:0;display:flex}.card-no{color:var(--gold);letter-spacing:.25em;margin-bottom:6px;font-family:JetBrains Mono,monospace;font-size:15px}.card-title{color:var(--moss-dark);letter-spacing:0;margin:0 0 6px;font-size:24px;font-weight:700;line-height:1.35}.card-sub{color:var(--muted);border-bottom:1px dashed var(--paper-line);margin:0 0 16px;padding-bottom:12px;font-family:"Source Serif 4",serif;font-size:16px;font-style:italic;line-height:1.45}.card-points{flex:1;margin:0 0 22px;padding:0;list-style:none}.card-points li{color:var(--ink);padding-left:16px;font-size:16px;line-height:1.8;position:relative}.card-points li:before{content:"·";color:var(--gold);font-size:22px;line-height:1;position:absolute;top:3px;left:4px}.card-open{color:var(--moss-dark);border-top:1px dashed var(--paper-line);text-align:center;letter-spacing:.12em;padding:14px 0;font-size:16px;font-weight:600}.card-open .arrow{margin-left:4px;transition:transform .25s;display:inline-block}.tool-card:hover .card-open{color:var(--rust)}.tool-card:hover .card-open .arrow{transform:translate(6px)}.card-accent{border:1.5px solid var(--moss);background:#f4ecd880;box-shadow:inset 0 0 0 5px #f4ecd8eb,inset 0 0 0 6.5px #bb7900}.card-accent .card-icon,.card-accent .card-title{color:var(--moss)}.card-accent .card-no{color:var(--gold)}.card-accent:hover{background:#f4ecd8d9;box-shadow:inset 0 0 0 5px #f4ecd8f5,inset 0 0 0 6.5px #d86b35,0 12px 24px -10px #1f383040}.ledger{border-top:2px double var(--moss);border-bottom:2px double var(--moss);grid-template-columns:repeat(3,1fr);padding:30px 0;display:grid}.ledger-col{border-right:1px dashed var(--paper-line);padding:0 22px}.ledger-col:last-child{border-right:none}.ledger-col h3{color:var(--moss-dark);letter-spacing:.18em;margin:0 0 10px;font-size:16px}.ledger-col p{color:var(--muted);margin:0;font-size:17px;line-height:1.85}.footnote{color:var(--muted);text-align:center;letter-spacing:.12em;margin-top:24px;font-family:"Source Serif 4",serif;font-size:15px;font-style:italic}.tool-button,.ghost-button,.field-button,.tab-button{border:1px solid var(--moss);color:var(--moss-dark);background:#faf3dfe6;min-height:36px;padding:7px 12px;line-height:1.2;transition:background .2s,color .2s,border-color .2s}.tool-button:hover,.ghost-button:hover,.field-button:hover,.tab-button:hover,.tab-button.active,.tool-button.primary{background:var(--moss);color:#fffdf3}.tool-button.warn{border-color:var(--rust);color:var(--rust)}.tool-button.warn:hover{background:var(--rust);color:#fffdf3}.field,.select-field{border:1px solid var(--paper-line);width:100%;min-height:36px;color:var(--ink);background:#fffdf3d1;padding:7px 10px}.field:focus,.select-field:focus{border-color:var(--gold);outline:2px solid #b8893a59}.survey-panel{border:1px solid var(--moss);background:var(--panel);min-width:0;padding:14px}.survey-panel h2,.survey-panel h3{color:var(--moss-dark);letter-spacing:0;margin:0;line-height:1.35}.panel-title{border-bottom:1px dashed var(--paper-line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.panel-kicker{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:11px}.mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.metric{border:1px solid var(--paper-line);background:#fffdf3a8;padding:9px}.metric span{color:var(--muted);font-size:12px;line-height:1.3;display:block}.metric strong{color:var(--moss-dark);word-break:break-word;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:13px;display:block}.data-table-wrap{border:1px solid var(--paper-line);background:#fffdf3b3;width:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:720px}.data-table th,.data-table td{border-bottom:1px solid var(--paper-line);text-align:left;white-space:nowrap;padding:9px 10px;font-size:13px;line-height:1.45}.data-table th{color:var(--moss-dark);background:#dce8deb8;font-weight:700}.data-table td{color:var(--ink)}.status-pill{border:1px solid var(--paper-line);min-height:24px;color:var(--moss-dark);background:#fffdf3bd;align-items:center;padding:3px 8px;font-size:12px;display:inline-flex}.status-pill.ok{color:var(--ok);border-color:#2f6f4f66}.status-pill.warn{color:var(--warn);border-color:#a36b1e66}.json-block{border:1px dashed var(--paper-line);color:#f7f0da;white-space:pre-wrap;background:#1a2820eb;max-height:280px;margin:0;padding:12px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.6;overflow:auto}@media (width<=1180px){.sheet{margin:26px 18px 50px;padding:34px 28px}.tool-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.sheet{margin:14px 6px 28px;padding:22px 18px}.home-header{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:22px;padding-bottom:16px}.home-header h1{font-size:24px}.home-header h1 .small{font-size:10px}.stamp{font-size:12px}.intro{margin-bottom:22px;padding:0}.intro p{font-size:14px}.intro .meta{font-size:12px}.tool-cards,.ledger{grid-template-columns:1fr}.tool-card{padding:20px 18px}.card-icon{width:72px;height:72px}.traverse-path-icon{width:136px;height:96px}.card-title{font-size:19px}.card-sub,.card-points li,.card-open,.ledger-col p{font-size:13px}.ledger-col{border-right:none;border-bottom:1px dashed var(--paper-line);padding:12px 4px}.ledger-col:last-child{border-bottom:none}.mini-grid{grid-template-columns:1fr}}*,:before,:after{box-sizing:border-box}html,body,#app{height:auto;min-height:100%;overflow:hidden auto}body{-webkit-overflow-scrolling:touch}:root{--survey-bg:#f4ecd8;--survey-panel:#faf3dfe6;--survey-panel-solid:#faf3df;--survey-border:#2d5043;--survey-text:#1a2820;--survey-muted:#6b6055;--survey-accent:#2d5043;--survey-danger:#a14a2a;--survey-control-h:clamp(28px, 1.45vw, 32px);--survey-control-pad-y:clamp(3px, .34vw, 5px);--survey-control-pad-x:clamp(6px, .5vw, 10px);--survey-control-font:clamp(12px, .66vw, 13px);--survey-control-gap:clamp(5px, .42vw, 8px);--survey-control-min-w:clamp(64px, 4.8vw, 92px);--survey-tab-min-w:clamp(66px, 5vw, 96px)}.survey-workbench{width:100%;height:auto;min-height:100dvh;color:var(--survey-text);grid-template-rows:auto auto auto auto;gap:10px;padding:10px;display:grid;overflow:hidden visible}.workbench-toast,.workbench-empty{border:1px solid var(--gold);color:var(--moss-dark);background:#fffdf3eb;margin:0;padding:8px 10px;font-size:13px;line-height:1.5}.workbench-empty{border-style:dashed;border-color:var(--paper-line);color:var(--survey-muted)}.workbench-toolbar{border:1px solid var(--survey-border);background:var(--survey-panel);grid-template-columns:auto minmax(220px,1fr);align-items:center;gap:10px 14px;min-width:0;height:auto;min-height:54px;max-height:none;padding:10px 12px;display:grid;overflow:visible;box-shadow:0 14px 34px -28px #1f38308c}.back-link{white-space:nowrap;justify-content:center;align-items:center;min-width:104px;text-decoration:none;display:inline-flex}.toolbar-title{min-width:0;overflow:visible}.toolbar-title h1{color:var(--moss-dark);letter-spacing:0;margin:2px 0 3px;font-size:22px;line-height:1.25;overflow:visible}.toolbar-title p{color:var(--survey-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;line-height:1.45;overflow:hidden}.toolbar-title .panel-kicker{overflow:visible}.toolbar-actions{scrollbar-width:thin;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;min-width:0;display:flex;overflow:auto visible}.toolbar-actions>*{flex:none}.project-picker{min-width:min(100%,310px);color:var(--moss-dark);grid-template-columns:auto minmax(160px,240px);align-items:center;gap:8px;font-size:13px;display:grid}.project-picker span{white-space:nowrap}.project-picker .select-field{min-width:0}.workbench-layout{grid-template-columns:300px minmax(0,1fr) 340px;gap:10px;min-height:0;display:grid;overflow:visible}.task-panel,.analysis-panel,.map-main,.workbench-data-drawer,.survey-panel{min-width:0;min-height:0}.task-panel,.analysis-panel{background:var(--survey-panel-solid);scrollbar-width:thin;flex-direction:column;display:flex;overflow:auto}.task-content,.tool-stack,.file-placeholder{gap:12px;min-height:0;display:grid}.task-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.task-tabs .tab-button{min-width:0}.file-placeholder .full{width:100%}.compact{margin-bottom:0}.map-main{grid-template-rows:auto minmax(0,1fr);gap:8px;display:grid;overflow:hidden}.map-statusbar{border:1px solid var(--paper-line);color:var(--moss-dark);background:#fffdf3b8;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 10px;font-size:12px;line-height:1.4;display:flex}.center-map,.map-panel,.tianditu-map,.map-root,.ol-map,.ol-viewport{height:100%;min-height:0}.map-panel{overflow:hidden}.analysis-panel{gap:10px}.analysis-section{border:1px solid var(--paper-line);background:#fffdf394;min-width:0;padding:0}.analysis-section>summary{min-height:38px;color:var(--moss-dark);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;list-style:none;display:flex}.analysis-section>summary::-webkit-details-marker{display:none}.analysis-section>summary span{font-weight:700}.analysis-section>summary strong{color:var(--survey-muted);font-size:12px;font-weight:400}.analysis-section[open]{padding-bottom:10px}.analysis-section[open]>:not(summary){margin:10px}.analysis-section[open]>:not(summary)+:not(summary){margin-top:0}.quality-note{border:1px dashed var(--paper-line);background:#fffdf394;gap:8px;min-width:0;padding:10px;display:grid}.quality-note p{color:var(--survey-muted);margin:0;font-size:13px;line-height:1.6}.workbench-data-drawer,.data-section{z-index:1;scrollbar-width:thin;min-height:44px;position:relative;overflow:visible}.workbench-data-drawer.is-open,.data-section.is-open{overflow:hidden}.workbench-data-drawer .data-table-wrap,.data-section .data-table-wrap{scrollbar-width:thin;min-height:0;overflow:auto}.survey-workbench :is(button,.tool-button,.ghost-button,.field-button,.tab-button,.drawer-summary,.map-control-button){height:auto;line-height:1.15;min-height:var(--survey-control-h)!important;padding:var(--survey-control-pad-y) var(--survey-control-pad-x)!important;font-size:var(--survey-control-font)!important}.survey-workbench :is(.tool-button,.ghost-button,.field-button,.tab-button){min-width:var(--survey-control-min-w)}.survey-workbench .tool-button.full,.survey-workbench .field-button.full,.survey-workbench .tab-button.full,.survey-workbench .ghost-button.full{width:100%;min-width:0}.survey-workbench :is(.field,.select-field,input,select){min-height:var(--survey-control-h);padding:var(--survey-control-pad-y) var(--survey-control-pad-x);font-size:var(--survey-control-font);line-height:1.2}.survey-workbench textarea.field,.survey-workbench textarea{min-height:62px;padding-top:6px;padding-bottom:6px}.survey-workbench .toolbar-actions,.survey-workbench .task-tabs,.survey-workbench .table-tabs,.survey-workbench .role-buttons,.survey-workbench .button-row,.survey-workbench .drawer-actions,.survey-workbench .map-controls{gap:var(--survey-control-gap)}.survey-workbench .project-picker{gap:var(--survey-control-gap);font-size:var(--survey-control-font);grid-template-columns:auto minmax(140px,220px)}.survey-workbench .task-tabs .tab-button,.survey-workbench .table-tabs .tab-button{min-width:var(--survey-tab-min-w);padding-left:clamp(5px,.45vw,8px);padding-right:clamp(5px,.45vw,8px)}.survey-workbench .drawer-summary{min-height:34px;padding:5px 8px}.survey-workbench .drawer-summary span,.survey-workbench .drawer-summary strong,.survey-workbench .map-statusbar,.survey-workbench .panel-kicker{font-size:clamp(11px,.62vw,12px)}.survey-workbench .map-control-button{min-width:clamp(32px,2.1vw,42px);min-height:clamp(26px,1.55vw,32px);padding:3px clamp(6px,.55vw,9px);font-size:clamp(11px,.72vw,12px)}.survey-workbench .toolbar-title h1{font-size:clamp(19px,1.08vw,22px)}.survey-workbench .panel-title h2,.survey-workbench .panel-title h3{font-size:clamp(18px,1vw,22px)}.survey-workbench .data-section .table-tabs,.survey-workbench .workbench-data-drawer .table-tabs{gap:6px}.survey-workbench .data-section .table-tabs .tab-button,.survey-workbench .workbench-data-drawer .table-tabs .tab-button{letter-spacing:0;white-space:nowrap;width:auto;min-width:72px;height:28px;min-height:28px;padding:3px 8px;font-size:12px;line-height:1}.survey-workbench .data-section .drawer-actions .field-button,.survey-workbench .data-section .drawer-actions button,.survey-workbench .workbench-data-drawer .drawer-actions .field-button,.survey-workbench .workbench-data-drawer .drawer-actions button{height:28px;min-height:28px;padding:3px 8px;font-size:12px}@media (width>=1200px){.survey-workbench{grid-template-rows:auto auto auto auto;gap:6px;padding:6px 8px;overflow:hidden visible}.workbench-toolbar{grid-template-rows:auto;grid-template-columns:auto minmax(250px,340px) minmax(0,1fr);align-items:center;gap:8px 12px;height:auto;min-height:54px;max-height:none;padding:6px 9px;display:grid;overflow:visible}.back-link{grid-column:1;min-width:72px;padding-left:7px;padding-right:7px}.toolbar-title{grid-column:2;align-self:center;min-width:220px;max-width:340px}.toolbar-title h1{white-space:normal;margin:0;font-size:clamp(14px,.82vw,18px);line-height:1.18}.toolbar-title p{white-space:normal;text-overflow:clip;margin:1px 0 0;font-size:clamp(10px,.58vw,12px);line-height:1.15;overflow:visible}.toolbar-title .panel-kicker{letter-spacing:.12em;margin:0 0 1px;font-size:clamp(8px,.45vw,10px);line-height:1.05}.toolbar-actions{flex-wrap:nowrap;grid-area:1/3;align-items:center;gap:7px;min-width:0;max-width:100%;padding:0 0 2px;display:flex;overflow:auto visible}.toolbar-actions>*{flex:none}.toolbar-actions .project-picker{grid-template-columns:auto minmax(138px,210px);min-width:260px;max-width:360px}.toolbar-actions .layer-switcher{min-width:210px}.toolbar-actions .select-field,.toolbar-actions select{max-width:min(24vw,300px)}.toolbar-actions .tool-button,.toolbar-actions button,.back-link{white-space:nowrap}.status-pill{white-space:nowrap;min-height:24px;padding:2px 6px;font-size:11px}.workbench-toast,.workbench-empty{min-height:22px;max-height:28px;padding:3px 6px;font-size:11px;line-height:1.25;overflow:hidden}.workbench-layout{grid-template-columns:280px minmax(0,1fr) 320px;gap:8px;height:clamp(560px,100dvh - 150px,860px);min-height:clamp(560px,100dvh - 150px,860px);display:grid;overflow:visible}.task-panel,.analysis-panel{-webkit-overflow-scrolling:touch;height:100%;min-height:0;max-height:100%;overflow:hidden auto}.map-main{grid-template-rows:auto minmax(0,1fr);gap:5px;height:100%;min-height:0;display:grid;overflow:hidden}.center-map,.map-panel,.tianditu-map,.map-root,.ol-map,.ol-viewport{height:100%;min-height:0;overflow:hidden}.survey-panel{padding:8px}.panel-title{gap:8px;margin-bottom:7px;padding-bottom:6px}.panel-kicker{letter-spacing:.12em;font-size:9px}.survey-workbench .panel-title h2,.survey-workbench .panel-title h3{font-size:clamp(16px,.9vw,19px);line-height:1.15}.task-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:7px}.task-tabs .tab-button{min-width:0}.task-content,.tool-stack,.file-placeholder{gap:8px}.map-statusbar{gap:6px 12px;min-height:26px;padding:4px 8px;font-size:11px;line-height:1.2}.map-panel .panel-title{margin-bottom:6px}.analysis-panel{gap:6px}.analysis-section>summary{min-height:30px;padding:5px 8px}.analysis-section[open]{padding-bottom:6px}.analysis-section[open]>:not(summary){margin:6px}.workbench-data-drawer:not(.is-open),.data-section:not(.is-open){align-items:center;height:32px;min-height:32px;max-height:32px;padding:0 6px;display:flex;overflow:hidden}.workbench-data-drawer:not(.is-open) .drawer-summary,.data-section:not(.is-open) .drawer-summary{align-items:center;height:30px;min-height:30px;padding:0}.workbench-data-drawer.is-open,.data-section.is-open{height:clamp(220px,26dvh,340px);min-height:220px;padding:6px;overflow:hidden}.workbench-data-drawer.is-open .drawer-summary,.data-section.is-open .drawer-summary{height:24px;min-height:24px;padding:0;font-size:11px}.workbench-data-drawer.is-open .drawer-body,.data-section.is-open .drawer-body{grid-template-rows:auto auto minmax(0,1fr);gap:5px;height:100%;min-height:0;display:grid;overflow:hidden}.workbench-data-drawer.is-open .panel-title,.data-section.is-open .panel-title{align-items:center;min-height:32px;margin:0;padding:0 0 4px}.workbench-data-drawer.is-open .panel-title h2,.data-section.is-open .panel-title h2{margin:0;font-size:16px;line-height:1.1}.workbench-data-drawer.is-open .panel-title .panel-kicker,.data-section.is-open .panel-title .panel-kicker{margin-bottom:1px;font-size:8.5px;line-height:1}.workbench-data-drawer.is-open .drawer-actions .status-pill,.workbench-data-drawer.is-open .drawer-actions .field-button,.data-section.is-open .drawer-actions .status-pill,.data-section.is-open .drawer-actions .field-button{height:26px;min-height:26px;padding:2px 7px;font-size:11px}.workbench-data-drawer.is-open .table-tabs,.data-section.is-open .table-tabs{gap:4px;margin:0}.workbench-data-drawer.is-open .table-tabs .tab-button,.data-section.is-open .table-tabs .tab-button{min-width:66px;height:26px;min-height:26px;padding:2px 7px;font-size:11px}.workbench-data-drawer .table-scroll,.workbench-data-drawer .data-table-scroll,.workbench-data-drawer .table-wrapper,.workbench-data-drawer .data-table-wrap,.data-section .table-scroll,.data-section .data-table-scroll,.data-section .table-wrapper,.data-section .data-table-wrap{-webkit-overflow-scrolling:touch;min-height:0;overflow:auto}.data-table th,.data-table td{padding:5px 7px;font-size:11.5px;line-height:1.25}}@media (width>=2400px){.survey-workbench{gap:5px;padding:6px}.workbench-toolbar{min-height:50px;padding-top:5px;padding-bottom:5px}.workbench-layout{grid-template-columns:286px minmax(0,1fr) 326px;height:clamp(680px,100dvh - 145px,980px);min-height:clamp(680px,100dvh - 145px,980px)}.workbench-data-drawer:not(.is-open),.data-section:not(.is-open){height:30px;min-height:30px;max-height:30px}.workbench-data-drawer.is-open,.data-section.is-open{height:clamp(210px,19dvh,300px)}}@media (width>=768px) and (width<=1199px){.survey-workbench{grid-template-rows:auto auto auto auto;height:auto;min-height:100dvh;overflow:hidden visible}.workbench-toolbar{height:auto;max-height:none;overflow:visible}.workbench-layout{grid-template-rows:minmax(50dvh,auto) auto auto;grid-template-columns:1fr;height:auto;min-height:0;display:grid;overflow:visible}.map-main{grid-row:1;height:56dvh;min-height:50dvh;overflow:hidden}.center-map,.map-panel{height:auto;min-height:50dvh}.task-panel{grid-row:2}.analysis-panel{grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;display:grid}.analysis-panel>.panel-title{grid-column:1/-1}.task-panel,.analysis-panel{height:auto;max-height:none;overflow:visible}.workbench-data-drawer.is-open,.data-section.is-open{height:clamp(260px,36dvh,380px);overflow:hidden}.workbench-data-drawer.is-open .drawer-body,.data-section.is-open .drawer-body{grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;display:grid;overflow:hidden}.workbench-data-drawer.is-open .data-table-wrap,.data-section.is-open .data-table-wrap{-webkit-overflow-scrolling:touch;min-height:0;overflow:auto}}.mobile-panel-close,.mobile-bottom-nav{display:none}@media (width<=767px){.survey-workbench{--survey-control-h:40px;--survey-control-pad-y:7px;--survey-control-pad-x:10px;--survey-control-font:14px;--survey-control-gap:7px;--survey-control-min-w:0px;--survey-tab-min-w:0px;--survey-mobile-sheet-top:calc(8px + env(safe-area-inset-top));--survey-mobile-sheet-bottom:calc(66px + env(safe-area-inset-bottom));height:auto;min-height:100dvh;padding:8px 8px calc(76px + env(safe-area-inset-bottom));grid-template-rows:auto auto auto auto;overflow:hidden visible}.workbench-toolbar{grid-template-columns:auto minmax(0,1fr);gap:8px;height:auto;max-height:none;padding:9px;overflow:visible}.back-link{width:fit-content;min-width:0}.toolbar-title h1{font-size:18px}.toolbar-title .panel-kicker,.toolbar-title p{display:none}.toolbar-actions{grid-column:1/-1;grid-template-columns:96px minmax(0,1fr);gap:7px;display:grid;overflow:visible}.toolbar-actions .tool-button,.toolbar-actions .layer-switcher,.project-picker{width:100%;min-width:0}.toolbar-actions .status-pill{display:none}.project-picker,.toolbar-actions .layer-switcher{grid-template-columns:auto minmax(0,1fr)}.toolbar-actions .layer-switcher{grid-column:1/-1}.toolbar-actions .tool-button[disabled]{display:none}.workbench-layout{height:auto;min-height:0;display:block;overflow:visible}.map-main{height:58dvh;min-height:55dvh;overflow:hidden}.center-map,.map-panel{height:auto;min-height:55dvh}.map-statusbar{gap:6px 10px;font-size:11px}.task-panel,.analysis-panel{left:8px;right:8px;top:var(--survey-mobile-sheet-top);bottom:var(--survey-mobile-sheet-bottom);z-index:30;background:var(--survey-panel-solid);border:1px solid var(--survey-border);opacity:1;-webkit-overflow-scrolling:touch;background-image:none;height:auto;max-height:none;padding:0;transition:transform .2s;position:fixed;overflow:hidden auto;transform:translateY(calc(100dvh + 96px));box-shadow:0 18px 46px -22px #1f3830b8}.task-panel.is-open,.analysis-panel.is-open{transform:translateY(0)}.task-panel>.panel-title,.analysis-panel>.panel-title{z-index:30;background:var(--survey-panel-solid);border-bottom:1px solid var(--survey-border);background-image:none;margin:0;padding:12px 12px 10px;position:sticky;top:0;box-shadow:0 6px 14px -14px #1f38308c}.task-panel .task-tabs{background:var(--survey-panel-solid);grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 10px;padding:12px 12px 0}.task-panel .task-content,.task-panel .tool-stack,.task-panel .file-placeholder{background:var(--survey-panel-solid);padding:0 12px 12px}.analysis-panel .analysis-section{background:#fffdf3fa;margin:0 12px 10px}.analysis-panel>.analysis-section:first-of-type{margin-top:12px}.mobile-panel-close{justify-content:center;align-items:center;display:inline-flex}.mobile-bottom-nav{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:40;border:1px solid var(--survey-border);background:#faf3dff5;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:6px;display:grid;position:fixed;box-shadow:0 12px 28px -18px #1f3830b3}.mobile-bottom-nav button{border:1px solid var(--moss);min-width:0;min-height:42px;color:var(--moss-dark);background:#fffdf3db;padding:6px 4px;font-size:12px}.mobile-bottom-nav button.active{background:var(--moss);color:#fffdf3}.workbench-data-drawer:not(.mobile-open),.data-section:not(.mobile-open){display:none}.workbench-data-drawer.mobile-open,.data-section.mobile-open{left:8px;right:8px;top:var(--survey-mobile-sheet-top);bottom:var(--survey-mobile-sheet-bottom);z-index:35;background:var(--survey-panel-solid);border:1px solid var(--survey-border);opacity:1;background-image:none;height:auto;max-height:none;padding:0;display:grid;position:fixed;overflow:hidden;box-shadow:0 18px 46px -22px #1f3830b8}.workbench-data-drawer.mobile-open>.drawer-summary,.data-section.mobile-open>.drawer-summary{display:none}.workbench-data-drawer.mobile-open .drawer-body,.data-section.mobile-open .drawer-body{background:var(--survey-panel-solid);background-image:none;grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;margin:0;padding:0;display:grid;overflow:hidden}.workbench-data-drawer.mobile-open .panel-title,.data-section.mobile-open .panel-title{z-index:30;background:var(--survey-panel-solid);border-bottom:1px solid var(--survey-border);background-image:none;margin:0;padding:12px 12px 10px;position:sticky;top:0;box-shadow:0 6px 14px -14px #1f38308c}.workbench-data-drawer.mobile-open .drawer-actions,.data-section.mobile-open .drawer-actions{justify-content:flex-end;align-items:center;margin-left:auto;display:flex}.workbench-data-drawer.mobile-open .drawer-actions .status-pill,.data-section.mobile-open .drawer-actions .status-pill{display:none}.workbench-data-drawer.mobile-open .table-tabs,.data-section.mobile-open .table-tabs{background:var(--survey-panel-solid);background-image:none;border-bottom:1px solid #315c4c2e;margin:0;padding:12px 12px 8px}.workbench-data-drawer.mobile-open .data-table-wrap,.data-section.mobile-open .data-table-wrap{-webkit-overflow-scrolling:touch;background:#fffdf3fa;min-height:0;margin:0 12px 12px;overflow:auto}.form-grid,.mini-grid{grid-template-columns:1fr}.field,.select-field,textarea,.tool-button,.field-button{width:100%;min-height:40px}.survey-workbench :is(.tool-button,.ghost-button,.field-button,.tab-button){min-width:0}.survey-workbench .map-control-button{width:auto;min-width:38px;height:30px;min-height:30px;padding:3px 7px;font-size:12px}}@media (orientation:landscape) and (height<=560px) and (width<=1199px){.survey-workbench{padding-bottom:calc(60px + env(safe-area-inset-bottom))}.workbench-layout{display:block;overflow:visible}.map-main{min-height:calc(100dvh - 145px)}.center-map,.map-panel{min-height:max(280px,100dvh - 160px)}.task-panel,.analysis-panel,.workbench-data-drawer.mobile-open,.data-section.mobile-open{top:calc(6px + env(safe-area-inset-top));bottom:calc(54px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;overflow-y:auto}.mobile-bottom-nav{bottom:calc(6px + env(safe-area-inset-bottom))}}
