:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}.entity-form{flex-direction:column;height:100%;min-height:0;display:flex}.entity-form .form-map{border-bottom:1px solid #e5e7eb;flex:1;min-height:200px}.entity-form .form-fields{flex-direction:column;gap:14px;min-height:0;padding:16px;display:flex;overflow-y:auto}.entity-form.split{flex-direction:row}.entity-form.split .form-map{border-bottom:none;border-right:1px solid #e5e7eb;min-width:0}.entity-form.split .form-fields{flex:none;width:400px;min-height:0}.entity-form .field-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.entity-form .field{flex-direction:column;gap:6px;min-width:0;display:flex}.entity-form .field-label{color:#374151;font-size:12px;font-weight:600}.entity-form input,.entity-form select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.entity-form input:focus,.entity-form select:focus{border-color:#f59e0b;outline:none;box-shadow:0 0 0 3px #f59e0b2e}.entity-form .geometry-summary{flex-wrap:wrap;gap:6px;display:flex}.entity-form .chip{color:#92400e;font-variant-numeric:tabular-nums;background:#fef3c7;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600}.entity-form .geometry-empty{color:#6b7280;font-size:12px;line-height:1.5}.entity-form .geometry-actions{flex-wrap:wrap;gap:8px;display:flex}.entity-form .upload-info{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.entity-form .upload-name{color:#374151;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.entity-form .upload-crs{flex-direction:column;gap:4px;display:flex}.entity-form .upload-crs>span{color:#6b7280;font-size:11px;font-weight:600}.entity-form .upload-hint{color:#6b7280;font-size:11px;line-height:1.5}.entity-form .form-error{color:#b91c1c;white-space:pre-wrap;word-break:break-word;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.5}.entity-form .form-actions{justify-content:flex-end;gap:8px;margin-top:auto;padding-top:4px;display:flex}.entity-form .btn{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.entity-form .btn:disabled{opacity:.6;cursor:not-allowed}.entity-form .btn-sm{padding:6px 12px;font-size:12px}.entity-form .btn-primary{color:#1e293b;background:#f59e0b}.entity-form .btn-primary:not(:disabled):hover{background:#d97706}.entity-form .btn-ghost{color:#374151;background:#fff;border-color:#d1d5db}.entity-form .btn-ghost:not(:disabled):hover{background:#f3f4f6}.entity-view{flex-direction:column;width:100%;height:100%;min-height:0;display:flex}.entity-view .view-header{background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.entity-view .view-header h1{color:#111827;font-size:17px;font-weight:700;line-height:1.3}.entity-view .view-subtitle{color:#6b7280;font-size:12px}.entity-view .view-body{flex:1;gap:16px;min-height:0;padding:16px;display:flex;position:relative}.entity-view .list-pane{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.entity-view .filters{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px 16px;display:flex}.entity-view .filter{flex-direction:column;gap:4px;display:flex}.entity-view .filter>span{color:#6b7280;font-size:11px;font-weight:600}.entity-view .filter input,.entity-view .filter select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;min-width:170px;padding:6px 10px;font-family:inherit;font-size:13px}.entity-view .filter input:focus,.entity-view .filter select:focus{border-color:#f59e0b;outline:none;box-shadow:0 0 0 3px #f59e0b2e}.entity-view .filter-count{color:#6b7280;margin-left:auto;padding-bottom:7px;font-size:12px}.entity-view .table-wrap{flex:1;min-height:0;overflow:auto}.entity-view .data-table{border-collapse:collapse;width:100%;font-size:13px}.entity-view .data-table th{z-index:1;text-align:left;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;white-space:nowrap;background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:10px 16px;font-size:11px;font-weight:700;position:sticky;top:0}.entity-view .data-table td{color:#111827;border-bottom:1px solid #f3f4f6;padding:11px 16px}.entity-view .data-table .num{text-align:right;font-variant-numeric:tabular-nums}.entity-view .data-table .muted{color:#6b7280}.entity-view .month-cell{font-weight:600}.entity-view .data-row{cursor:pointer}.entity-view .data-row:hover{background:#fffbeb}.entity-view .data-row.selected{background:#fef3c7;box-shadow:inset 3px 0 #f59e0b}.entity-view .data-row.checked:not(.selected){background:#fffbeb}.entity-view .check-col{width:40px;padding-right:0!important}.entity-view .check-col input{accent-color:#d97706;cursor:pointer;width:15px;height:15px;display:block}.entity-view .check-col input:disabled{cursor:not-allowed}.entity-view .bulk-bar{background:#fffbeb;border-bottom:1px solid #fde68a;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:flex}.entity-view .bulk-count{color:#92400e;margin-right:auto;font-size:13px;font-weight:600}.entity-view .bulk-count em{color:#b45309;font-style:normal;font-weight:500}.entity-view .pagination{background:#f9fafb;border-top:1px solid #e5e7eb;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:16px;padding:10px 16px;display:flex}.entity-view .page-size{color:#6b7280;align-items:center;gap:6px;font-size:12px;display:flex}.entity-view .page-size select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:13px}.entity-view .page-size select:focus{border-color:#f59e0b;outline:none;box-shadow:0 0 0 3px #f59e0b2e}.entity-view .page-range{color:#6b7280;font-variant-numeric:tabular-nums;margin-right:auto;font-size:12px}.entity-view .page-nav{align-items:center;gap:4px;display:flex}.entity-view .page-label{color:#374151;font-variant-numeric:tabular-nums;text-align:center;min-width:72px;font-size:12px;font-weight:600}.entity-view .page-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:4px;display:flex}.entity-view .page-btn:not(:disabled):hover{color:#111827;background:#f3f4f6}.entity-view .page-btn:disabled{opacity:.4;cursor:not-allowed}.entity-view .confirm-list{color:#374151;max-height:180px;margin-top:10px;padding-left:18px;font-size:13px;overflow-y:auto}.entity-view .confirm-list li{line-height:1.6}.entity-view .state-cell{text-align:center;color:#6b7280;padding:32px 16px}.entity-view .actions-col{text-align:right;width:48px}.entity-view .row-btn{cursor:pointer;color:#9ca3af;background:0 0;border:none;border-radius:6px;padding:4px;display:inline-flex}.entity-view .row-btn.danger:hover{color:#b91c1c;background:#fee2e2}.entity-view .detail-backdrop{z-index:40;background:#0f172a73;position:fixed;inset:0}.entity-view .detail-pane{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;flex-shrink:0;width:440px;display:flex;overflow:hidden}.entity-view .detail-pane.expanded{z-index:50;width:auto;position:fixed;inset:24px;box-shadow:0 24px 56px #0000004d}.entity-view .detail-header{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.entity-view .detail-title h2{color:#111827;font-size:15px;font-weight:700;line-height:1.3}.entity-view .detail-sub{color:#6b7280;font-size:12px}.entity-view .detail-tools{gap:4px;display:flex}.entity-view .icon-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px;display:flex}.entity-view .icon-btn:hover{color:#111827;background:#f3f4f6}.entity-view .detail-body,.entity-view .detail-form{flex:1;min-height:0}.entity-view .detail-body{flex-direction:column;display:flex}.entity-view .detail-map{border-bottom:1px solid #e5e7eb;flex-shrink:0;height:260px}.entity-view .detail-content{flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.entity-view .detail-pane.expanded .detail-body{flex-direction:row}.entity-view .detail-pane.expanded .detail-map{border-bottom:none;border-right:1px solid #e5e7eb;flex:1;min-width:0;height:auto}.entity-view .detail-pane.expanded .detail-content{flex:none;width:460px}.entity-view .detail-facts{flex-direction:column;gap:10px;display:flex}.entity-view .detail-facts>div{grid-template-columns:116px 1fr;align-items:baseline;gap:12px;display:grid}.entity-view .detail-facts dt{color:#6b7280;font-size:12px;font-weight:600}.entity-view .detail-facts dd{color:#111827;word-break:break-word;font-size:13px}.entity-view .fact-link{color:#b45309;margin-left:6px;font-weight:600;text-decoration:none}.entity-view .fact-link:hover{text-decoration:underline}.entity-view .mono{color:#6b7280;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}.entity-view .detail-actions{justify-content:flex-end;gap:8px;margin-top:auto;padding-top:8px;display:flex}.entity-view .alert{white-space:pre-wrap;border-radius:8px;margin:12px 16px 0;padding:10px 12px;font-size:12px;line-height:1.5}.entity-view .alert-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.entity-view .confirm-text{color:#374151;font-size:13px;line-height:1.6}.entity-view .confirm-text+.alert{margin:12px 0 0}.entity-view .btn{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.entity-view .btn:disabled{opacity:.6;cursor:not-allowed}.entity-view .btn-sm{padding:6px 12px}.entity-view .btn-primary{color:#1e293b;background:#f59e0b}.entity-view .btn-primary:not(:disabled):hover{background:#d97706}.entity-view .btn-ghost{color:#374151;background:#fff;border-color:#d1d5db}.entity-view .btn-ghost:not(:disabled):hover{background:#f3f4f6}.entity-view .btn-danger{color:#fff;background:#dc2626}.entity-view .btn-danger:not(:disabled):hover{background:#b91c1c}@media (width<=1100px){.entity-view .detail-pane{width:380px}}#app{width:100%;height:100vh}.sidebar[data-v-fb9f4724]{background:#1e293b;flex-direction:column;flex-shrink:0;width:240px;height:100%;display:flex}.sidebar-header[data-v-fb9f4724]{border-bottom:1px solid #ffffff0f;padding:20px 16px 16px}.logo[data-v-fb9f4724]{align-items:center;gap:10px;display:flex}.logo-text[data-v-fb9f4724]{color:#f1f5f9;letter-spacing:-.3px;font-size:18px;font-weight:700}.logo-accent[data-v-fb9f4724]{color:#f59e0b}.sidebar-nav[data-v-fb9f4724]{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.nav-item[data-v-fb9f4724]{color:#94a3b8;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-item[data-v-fb9f4724]:hover{color:#e2e8f0;background:#ffffff0f}.nav-item.active[data-v-fb9f4724]{color:#f59e0b;background:#f59e0b26}.nav-item.open[data-v-fb9f4724]{color:#e2e8f0}.nav-icon[data-v-fb9f4724]{flex-shrink:0;align-items:center;display:flex}.nav-label[data-v-fb9f4724]{flex:1;min-width:0}.nav-caret[data-v-fb9f4724]{opacity:.7;flex-shrink:0;transition:transform .15s}.nav-caret.expanded[data-v-fb9f4724]{transform:rotate(90deg)}.nav-children[data-v-fb9f4724]{border-left:1px solid #ffffff1a;flex-direction:column;gap:2px;margin:2px 0 2px 24px;padding-left:12px;display:flex}.nav-child[data-v-fb9f4724]{color:#94a3b8;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.nav-child[data-v-fb9f4724]:hover{color:#e2e8f0;background:#ffffff0f}.nav-child.active[data-v-fb9f4724]{color:#f59e0b;background:#f59e0b26}.sidebar-footer[data-v-fb9f4724]{border-top:1px solid #ffffff0f;padding:12px}.user-info[data-v-fb9f4724]{border-radius:8px;align-items:center;gap:10px;padding:8px;display:flex}.user-avatar[data-v-fb9f4724]{color:#1e293b;background:#f59e0b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.user-details[data-v-fb9f4724]{flex:1;min-width:0;overflow:hidden}.logout[data-v-fb9f4724]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:6px;display:flex}.logout[data-v-fb9f4724]:hover{color:#e2e8f0;background:#ffffff14}.user-name[data-v-fb9f4724]{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.user-role[data-v-fb9f4724]{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.app-layout[data-v-3ffcbc1f]{width:100%;height:100vh;display:flex;overflow:hidden}.app-main[data-v-3ffcbc1f]{background:#f3f4f6;flex-direction:column;flex:1;display:flex;overflow:hidden}
