.mask[data-v-ac98a2a1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog[data-v-ac98a2a1]{width:640px;max-width:94vw;max-height:86vh;overflow:auto;background:#fff;border-radius:10px;box-shadow:0 16px 48px #0000004d;padding:18px 20px}.head[data-v-ac98a2a1]{display:flex;justify-content:space-between;align-items:center;font-size:17px;font-weight:600}.x[data-v-ac98a2a1]{border:none;background:none;font-size:22px;cursor:pointer;line-height:1}.create[data-v-ac98a2a1]{margin:14px 0;padding:12px;background:#f9fafb;border:1px solid #eee;border-radius:8px}.create-title[data-v-ac98a2a1]{font-weight:600;font-size:13px;margin-bottom:8px}.row[data-v-ac98a2a1]{display:flex;gap:8px;margin-bottom:8px}.row input[data-v-ac98a2a1],.row select[data-v-ac98a2a1]{flex:1;min-width:0;padding:7px 9px;border:1px solid #d1d5db;border-radius:6px;font-size:13px}.row select[data-v-ac98a2a1]{flex:0 0 110px}.primary[data-v-ac98a2a1]{flex:0 0 auto;padding:7px 16px;border:none;border-radius:6px;background:#2563eb;color:#fff;cursor:pointer}.primary[data-v-ac98a2a1]:disabled{opacity:.6;cursor:not-allowed}.err[data-v-ac98a2a1]{color:#dc2626;font-size:13px;margin:4px 0 0}.ok[data-v-ac98a2a1]{color:#166534;font-size:13px;margin:4px 0 0}table[data-v-ac98a2a1]{width:100%;border-collapse:collapse;font-size:13px}th[data-v-ac98a2a1],td[data-v-ac98a2a1]{text-align:left;padding:8px 6px;border-bottom:1px solid #f0f0f0}th[data-v-ac98a2a1]{color:#6b7280;font-weight:600}tr.inactive td[data-v-ac98a2a1]{color:#9ca3af}.self[data-v-ac98a2a1]{color:#9ca3af;font-size:12px}.badge-on[data-v-ac98a2a1]{color:#166534;background:#dcfce7;padding:1px 7px;border-radius:10px;font-size:12px}.badge-off[data-v-ac98a2a1]{color:#92400e;background:#fef3c7;padding:1px 7px;border-radius:10px;font-size:12px}.ops[data-v-ac98a2a1]{display:flex;gap:6px}.mini[data-v-ac98a2a1]{padding:3px 10px;font-size:12px;border:1px solid #d1d5db;border-radius:5px;background:#fff;cursor:pointer;white-space:nowrap}.mini[data-v-ac98a2a1]:disabled{opacity:.5;cursor:not-allowed}.empty[data-v-ac98a2a1]{color:#9ca3af;padding:16px;text-align:center}.workbench[data-v-6c5e2ddb]{flex:1;display:flex;flex-direction:column;min-height:0}.toolbar[data-v-6c5e2ddb]{display:flex;align-items:center;gap:10px;padding:8px 16px;background:#f3f4f6;border-bottom:1px solid #e5e7eb;flex:none}.toolbar button[data-v-6c5e2ddb]{padding:6px 12px;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;font-size:13px}.toolbar button[data-v-6c5e2ddb]:disabled{opacity:.5;cursor:not-allowed}.toolbar button.active[data-v-6c5e2ddb]{background:#2563eb;color:#fff;border-color:#2563eb}.toolbar .msg[data-v-6c5e2ddb]{color:#6b7280;font-size:13px}.map-wrap[data-v-6c5e2ddb]{position:relative;flex:1;min-height:0}.map[data-v-6c5e2ddb]{position:absolute;top:0;right:0;bottom:0;left:0}.panel[data-v-6c5e2ddb]{position:absolute;top:12px;right:12px;width:300px;max-height:80%;overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:12px;font-size:13px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.panel-head[data-v-6c5e2ddb]{display:flex;justify-content:space-between;font-weight:600;margin-bottom:6px}.panel .close[data-v-6c5e2ddb]{border:none;background:none;font-size:18px;cursor:pointer;line-height:1}.coord[data-v-6c5e2ddb]{color:#6b7280;margin:4px 0 8px}.none[data-v-6c5e2ddb]{color:#b45309}.multiple[data-v-6c5e2ddb]{color:#2563eb}.area-item[data-v-6c5e2ddb]{border-top:1px solid #f0f0f0;padding:8px 0;list-style:none}ul[data-v-6c5e2ddb]{padding:0;margin:0}.pri[data-v-6c5e2ddb]{color:#9ca3af;font-size:12px}.mgrs[data-v-6c5e2ddb]{margin-top:4px}.mgr[data-v-6c5e2ddb]{display:inline-block;margin-right:8px}.primary[data-v-6c5e2ddb]{display:inline-block;margin-left:4px;padding:0 5px;font-size:11px;background:#dcfce7;color:#166534;border-radius:4px}.no-mgr[data-v-6c5e2ddb]{color:#9ca3af;margin-top:4px}.center-line[data-v-6c5e2ddb]{margin:4px 0 8px;color:#374151}.section-title[data-v-6c5e2ddb]{margin:10px 0 4px;font-weight:600}.mgr-row[data-v-6c5e2ddb]{display:flex;align-items:center;justify-content:space-between;gap:8px}.mgr-info[data-v-6c5e2ddb]{flex:1;min-width:0}.mini[data-v-6c5e2ddb]{padding:3px 10px;font-size:12px;border:1px solid #d1d5db;border-radius:5px;background:#fff;cursor:pointer;white-space:nowrap}.mini[data-v-6c5e2ddb]:disabled{opacity:.5;cursor:not-allowed}.mini.danger[data-v-6c5e2ddb]{color:#dc2626;border-color:#fca5a5}.mini.danger[data-v-6c5e2ddb]:hover{background:#fef2f2}.mini.add[data-v-6c5e2ddb]{background:#2563eb;color:#fff;border-color:#2563eb}.add-form[data-v-6c5e2ddb]{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #f0f0f0}.add-form input[type=text][data-v-6c5e2ddb],.add-form input[data-v-6c5e2ddb]:not([type]){flex:1;min-width:0;padding:6px 8px;border:1px solid #d1d5db;border-radius:5px;font-size:13px}.add-form .chk[data-v-6c5e2ddb]{display:flex;align-items:center;gap:3px;font-size:12px;color:#374151;white-space:nowrap}@media(max-width:640px){.toolbar[data-v-6c5e2ddb]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 8px;padding:8px max(10px,env(safe-area-inset-right)) 7px max(10px,env(safe-area-inset-left))}.toolbar button[data-v-6c5e2ddb]{min-height:44px;padding:7px 8px;white-space:nowrap}.toolbar .msg[data-v-6c5e2ddb]{grid-column:1 / -1;min-width:0;overflow:hidden;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.panel[data-v-6c5e2ddb]{top:auto;right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));width:auto;max-height:min(56%,440px);border-radius:12px;padding:14px}.panel-head[data-v-6c5e2ddb]{min-height:36px;align-items:center}.panel .close[data-v-6c5e2ddb]{width:44px;height:44px;margin:-8px -8px -8px 8px;font-size:24px}.mini[data-v-6c5e2ddb]{min-height:40px}.add-form[data-v-6c5e2ddb]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.add-form input[type=text][data-v-6c5e2ddb],.add-form input[data-v-6c5e2ddb]:not([type]){grid-column:1 / -1;width:100%;min-height:40px;font-size:16px}.add-form .chk[data-v-6c5e2ddb]{min-height:40px}.add-form .mini.add[data-v-6c5e2ddb]{min-width:72px;min-height:40px}}@media(orientation:landscape)and (max-height:500px){.toolbar .msg[data-v-6c5e2ddb]{display:none}.panel[data-v-6c5e2ddb]{top:8px;right:max(8px,env(safe-area-inset-right));bottom:8px;left:auto;width:min(340px,52vw);max-height:none}}.viewer[data-v-3d91734e]{flex:1;display:flex;flex-direction:column;min-height:0}.searchbar[data-v-3d91734e]{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#f3f4f6;border-bottom:1px solid #e5e7eb;flex:none}.addr[data-v-3d91734e]{width:320px;max-width:60vw;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.addr[data-v-3d91734e]:focus{outline:2px solid #2563eb33;border-color:#2563eb}.go[data-v-3d91734e]{padding:8px 16px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:14px;cursor:pointer}.go[data-v-3d91734e]:disabled{opacity:.6;cursor:not-allowed}.msg[data-v-3d91734e]{color:#6b7280;font-size:13px}.map-wrap[data-v-3d91734e]{position:relative;flex:1;min-height:0}.map[data-v-3d91734e]{position:absolute;top:0;right:0;bottom:0;left:0}.panel[data-v-3d91734e]{position:absolute;top:12px;right:12px;width:300px;max-height:80%;overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:12px;font-size:13px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.panel-head[data-v-3d91734e]{display:flex;justify-content:space-between;font-weight:600;margin-bottom:6px}.close[data-v-3d91734e]{border:none;background:none;font-size:18px;cursor:pointer;line-height:1}.hint[data-v-3d91734e],.coord[data-v-3d91734e]{color:#6b7280;margin:4px 0 8px}.addr-line[data-v-3d91734e]{margin:2px 0 8px;font-weight:600}.lvl[data-v-3d91734e]{color:#9ca3af;font-weight:400;font-size:12px}.none[data-v-3d91734e]{color:#b45309}.center-line[data-v-3d91734e]{margin:4px 0 8px;color:#374151}.section-title[data-v-3d91734e]{margin:10px 0 4px;font-weight:600}ul[data-v-3d91734e]{padding:0;margin:0;list-style:none}.area-item[data-v-3d91734e]{border-top:1px solid #f0f0f0;padding:8px 0}.mgrs[data-v-3d91734e]{margin-top:4px}.mgr[data-v-3d91734e]{display:inline-block;margin-right:8px}.primary[data-v-3d91734e]{display:inline-block;margin-left:4px;padding:0 5px;font-size:11px;background:#dcfce7;color:#166534;border-radius:4px}.no-mgr[data-v-3d91734e]{color:#9ca3af;margin-top:4px}@media(max-width:640px){.searchbar[data-v-3d91734e]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 8px;padding:8px max(10px,env(safe-area-inset-right)) 7px max(10px,env(safe-area-inset-left))}.addr[data-v-3d91734e]{width:100%;max-width:none;min-width:0;min-height:44px;font-size:16px}.go[data-v-3d91734e]{min-width:92px;min-height:44px;padding:8px 12px;white-space:nowrap}.msg[data-v-3d91734e]{grid-column:1 / -1;min-width:0;overflow:hidden;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.panel[data-v-3d91734e]{top:auto;right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));width:auto;max-height:min(46%,360px);border-radius:12px;padding:14px}.panel-head[data-v-3d91734e]{min-height:36px;align-items:center}.close[data-v-3d91734e]{width:44px;height:44px;margin:-8px -8px -8px 8px;font-size:24px}}@media(orientation:landscape)and (max-height:500px){.searchbar .msg[data-v-3d91734e]{display:none}.panel[data-v-3d91734e]{top:8px;right:max(8px,env(safe-area-inset-right));bottom:8px;left:auto;width:min(320px,48vw);max-height:none}}.login-wrap[data-v-b4d912f6]{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;overflow:auto;padding:24px;background:linear-gradient(160deg,#1f2937,#111827)}.card[data-v-b4d912f6]{width:min(320px,100%);background:#fff;border-radius:12px;padding:32px 28px;box-shadow:0 12px 40px #00000059;display:flex;flex-direction:column;gap:14px}h1[data-v-b4d912f6]{margin:0;font-size:22px}.sub[data-v-b4d912f6]{margin:0 0 6px;color:#6b7280;font-size:13px}label[data-v-b4d912f6]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#374151}input[data-v-b4d912f6]{padding:9px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}input[data-v-b4d912f6]:focus{outline:2px solid #2563eb33;border-color:#2563eb}button[data-v-b4d912f6]{margin-top:6px;padding:10px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:14px;cursor:pointer}button[data-v-b4d912f6]:disabled{opacity:.6;cursor:not-allowed}.error[data-v-b4d912f6]{margin:0;color:#dc2626;font-size:13px}@media(max-width:640px){.login-wrap[data-v-b4d912f6]{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.card[data-v-b4d912f6]{padding:26px 20px}input[data-v-b4d912f6],button[data-v-b4d912f6]{min-height:44px;font-size:16px}}@media(max-height:560px){.login-wrap[data-v-b4d912f6]{align-items:flex-start}.card[data-v-b4d912f6]{gap:10px;padding-top:20px;padding-bottom:20px}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif}.app{display:flex;flex-direction:column;height:100%;height:100dvh}.topbar{min-height:48px;display:flex;align-items:center;gap:10px;padding:env(safe-area-inset-top) 16px 0;background:#1f2937;color:#fff;flex:none}.topbar .sub{color:#9ca3af;font-size:13px}.topbar>strong{flex:none}.topbar .spacer{flex:1}.topbar .who{min-width:0;overflow:hidden;color:#d1d5db;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.topbar .logout{padding:4px 10px;font-size:12px;border:1px solid #4b5563;border-radius:6px;background:transparent;color:#d1d5db;cursor:pointer}.topbar .logout:hover{background:#374151}.loading{flex:1;display:flex;align-items:center;justify-content:center;color:#6b7280}@media(max-width:640px){.topbar{gap:8px;min-height:calc(48px + env(safe-area-inset-top));padding-right:max(12px,env(safe-area-inset-right));padding-left:max(12px,env(safe-area-inset-left))}.topbar .sub,.topbar .who-role{display:none}.topbar .who{text-align:right}.topbar .logout{min-width:48px;min-height:40px;padding:6px 10px}}
