:root{--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:13px;line-height:1.5;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:host,:root{--ol-background-color:#fff;--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{background-color:#ffffffbf;background-color:var(--ol-partial-background-color);border:1.5px solid #fff;border:1.5px solid var(--ol-background-color);border-radius:2px;box-sizing:border-box}.ol-mouse-position{position:absolute;right:8px;top:8px}.ol-scale-line{background:#ffffffbf;background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #666;border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:#333;color:var(--ol-foreground-color);font-size:10px;margin:1px;text-align:center;transition:all .25s;will-change:contents,width}.ol-scale-bar{bottom:8px;left:8px;position:absolute}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:#333;background-color:var(--ol-foreground-color);float:right;height:15px;width:1px;z-index:10}.ol-scale-step-text{bottom:-5px;font-size:10px;z-index:11}.ol-scale-step-text,.ol-scale-text{color:#333;color:var(--ol-foreground-color);position:absolute;text-shadow:-1.5px 0 #ffffffbf,0 1.5px #ffffffbf,1.5px 0 #ffffffbf,0 -1.5px #ffffffbf;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)}.ol-scale-text{bottom:25px;font-size:12px;text-align:center}.ol-scale-singlebar{border:1px solid #333;border:1px solid var(--ol-foreground-color);box-sizing:border-box;height:10px;position:relative;z-index:9}.ol-scale-singlebar-even{background-color:#666;background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:#fff;background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;cursor:grab}.ol-control{background-color:#80808040;background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{left:.5em;top:.5em}.ol-rotate{right:.5em;top:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;transition:opacity .25s linear,visibility 0s linear .25s;visibility:hidden}.ol-zoom-extent{left:.5em;top:4.643em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{background-color:#fff;background-color:var(--ol-background-color);border:none;border-radius:2px;color:#666;color:var(--ol-subtle-foreground-color);display:block;font-size:inherit;font-weight:700;height:1.375em;line-height:.4em;margin:1px;padding:0;text-align:center;text-decoration:none;width:1.375em}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{color:#333;color:var(--ol-foreground-color);outline:1px solid #666;outline:1px solid var(--ol-subtle-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{align-items:center;bottom:.5em;display:flex;flex-flow:row-reverse;max-width:calc(100% - 1.3em);right:.5em;text-align:right}.ol-attribution a{color:#666;color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:#333;color:var(--ol-foreground-color);font-size:12px;margin:0;padding:1px .5em;text-shadow:0 0 2px #fff;text-shadow:0 0 2px var(--ol-background-color)}.ol-attribution li{display:inline;list-style:none}.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:#ffffffbf;background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;left:.5em;top:4.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 #666;border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:#80808040;background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted #666;border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}#root,body,html{height:100%;margin:0;overflow:hidden}.app-shell{background:#eef3f8;display:flex;flex-direction:column;height:100vh;overflow:hidden;position:relative}.toast{border-radius:6px;box-shadow:0 8px 20px #0003;color:#fff;font-size:13px;font-weight:600;max-width:320px;min-width:180px;padding:10px 12px;position:fixed;right:14px;top:14px;z-index:1200}.toast-success{background:#1c8f52}.toast-error{background:#b91c1c}.ribbon{align-items:center;background:#005ea8;display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px}.ribbon button{align-items:center;background:#d0ea5b;border:1px solid #0b3f6c;border-radius:4px;color:#132238;cursor:pointer;display:inline-flex;font-weight:600;justify-content:center;line-height:1;padding:7px 9px}.ribbon button:hover{background:#b7d63f}.ribbon button.ribbon-tool-suggested{background:#ffe08a;border-color:#ff8f00;box-shadow:0 0 0 2px #ff8f0040}.ribbon button.ribbon-tool-suggested:hover{background:#ffd15a}.ribbon button:disabled{cursor:not-allowed;opacity:.4;pointer-events:none}.ribbon-group{align-items:center;background:#0000001f;border:1px solid #ffffff59;border-radius:6px;display:inline-flex;gap:8px;padding:6px 8px}.ribbon-group span{color:#fff;font-size:12px;font-weight:700;letter-spacing:.2px;margin-right:2px}.ribbon-login,.user-info{align-items:center;display:flex}.user-info{gap:8px}.user-avatar{border:2px solid #ffffffb3;border-radius:50%;height:28px;width:28px}.user-name{color:#fff;font-size:13px;font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-signout-btn{background:#0000!important;border:1px solid #fff9!important;border-radius:4px;color:#fff!important;cursor:pointer;font-size:12px;padding:5px 10px!important}.user-admin-link{background:#ffffff24;border:1px solid #fff9;border-radius:4px;color:#fff;font-size:12px;font-weight:600;padding:5px 10px;text-decoration:none}.user-admin-link:hover{background:#ffffff38}.coord-search{align-items:center;display:flex;gap:4px;margin-left:12px;position:relative}.coord-search-input{background:#ffffff1f;border:1px solid #ffffff59;border-radius:4px;color:#fff;font-size:12px;outline:none;padding:4px 8px;transition:border-color .15s,background .15s;width:200px}.coord-search-input::placeholder{color:#ffffff80}.coord-search-input:focus{background:#ffffff2e;border-color:#ff9500}.coord-search-btn{background:#ff9500;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:4px 10px;transition:background .15s}.coord-search-btn:hover{background:#e07c00}.coord-search-error{background:#c0392b;border-radius:3px;color:#fff;font-size:11px;left:0;padding:3px 8px;pointer-events:none;position:absolute;top:calc(100% + 4px);white-space:nowrap;z-index:1000}.map-status{background:#00000047;border:1px solid #ffffff40;border-radius:4px;color:#fff;font-size:12px;margin-left:auto;min-width:170px;padding:6px 10px}.map-layout{display:flex;overflow:hidden}.map-layout,.map-panel{flex:1 1;min-height:0;position:relative}.map-canvas{height:100%;width:100%}.map-overlay-card{background:#fffffff0;border:1px solid #b8c6d6;border-radius:6px;box-shadow:0 2px 8px #0000001f;padding:8px;position:absolute;right:10px;top:10px;-webkit-user-select:none;user-select:none;width:220px;z-index:1100}.map-overlay-card--collapsed{padding:5px 8px;width:fit-content}.map-overlay-title{align-items:center;color:#27435f;display:flex;font-size:12px;font-weight:700;gap:8px;justify-content:flex-start;line-height:1.4;margin-bottom:0}.map-overlay-card:not(.map-overlay-card--collapsed) .map-overlay-title{margin-bottom:8px}.map-overlay-toggle{align-items:center;background:#edf2f8;border:1px solid #b8c6d6;border-radius:4px;color:#27435f;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;padding:0;transition:background .12s,border-color .12s;width:20px}.map-overlay-toggle:hover{background:#d4e4f4;border-color:#8aafc8}.map-overlay-card select{border:1px solid #c3cdda;border-radius:4px;padding:6px;width:100%}.basemap-switcher{grid-gap:6px;display:grid;gap:6px;grid-template-columns:1fr 1fr}.basemap-option{align-items:center;background:#f3f7fb;border:2px solid #d0dbe8;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:4px 4px 5px;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.basemap-option:hover{background:#eaf2fb;border-color:#9ab0c8}.basemap-option.active{background:#e8f0fe;border-color:#165391}.basemap-option input[type=radio]{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.basemap-thumb{border:1px solid #d0dbe8;border-radius:3px;display:block;line-height:0;overflow:hidden;transition:border-color .15s}.basemap-option.active .basemap-thumb{border-color:#165391}.basemap-label{color:#3a5570;font-size:11px;font-weight:600}.basemap-option.active .basemap-label{color:#165391}.sidebar{background:#f8fafc;box-sizing:border-box;display:flex;flex:0 0 auto;flex-direction:column;gap:10px;height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:10px}.resize-handle{align-items:center;background:#c8d4e0;cursor:col-resize;display:flex;flex:0 0 10px;justify-content:center;position:relative;transition:background .15s;-webkit-user-select:none;user-select:none;width:10px;z-index:10}.resize-handle:hover{background:#9ab0c5}.sidebar-toggle-btn{align-items:center;background:#2c4a63;border:none;border-radius:50%;box-shadow:0 1px 5px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:700;height:22px;justify-content:center;line-height:1;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:22px;z-index:11}.sidebar-toggle-btn:hover{background:#1a3149}.sidebar h3{margin:0 0 10px}.feature-id{color:#4a5c70;font-size:13px;margin-bottom:10px}.dock-panel{background:#fff;border:1px solid #d2dbe5;border-radius:6px;box-shadow:0 1px 2px #0000000d}.dock-panel-header{align-items:center;border-bottom:1px solid #dbe3ed;display:flex;gap:8px;justify-content:space-between;padding:8px 10px}.dock-panel-header h3{font-size:16px;margin:0}.dock-panel-header button{background:#f3f7fb;border:1px solid #406485;border-radius:4px;color:#1b3957;cursor:pointer;font-size:12px;font-weight:600;padding:5px 9px}.dock-panel-body{padding:10px}.find-form input,.find-form select{border:1px solid #c3cdda;border-radius:4px;box-sizing:border-box;margin-bottom:8px;padding:7px;width:100%}.trail-panel{gap:8px}.trail-panel,.trail-panel label{display:flex;flex-direction:column}.trail-panel label{color:#294863;font-size:12px;gap:4px}.trail-panel select,.trail-panel textarea{border:1px solid #c3cdda;border-radius:4px;box-sizing:border-box;padding:7px;width:100%}.trail-panel button{background:#165391;border:1px solid #16355e;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;padding:8px 12px}.trail-panel button:disabled{background:#9aa8b8;border-color:#8a96a3;cursor:not-allowed}.trail-hint{color:#59708a;font-size:12px}.find-controls,.trail-actions{display:flex;gap:8px}.find-target-note{color:#59708a;font-size:12px;margin-bottom:8px}.search-layer-list{background:#f7fafd;border:1px solid #d2dbe5;border-radius:4px;margin-bottom:8px;max-height:90px;overflow-y:auto;padding:6px}.search-layer-item{color:#294863;font-size:12px;padding:2px 0}.find-actions{display:flex;gap:8px;margin-bottom:8px}.find-actions button{background:#165391;border:1px solid #16355e;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;padding:8px 12px}.find-actions button:disabled{background:#9aa8b8;border-color:#8a96a3;cursor:not-allowed}.search-error{color:#b41f3a;font-size:12px;margin-bottom:8px}.search-results{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto}.search-results button{background:#fff;border:1px solid #c5d0dd;border-radius:4px;color:#18314d;cursor:pointer;padding:7px 8px;text-align:left}.search-results button:hover{background:#edf4ff}#attribute-table{border-collapse:collapse;margin-bottom:10px;width:100%}#attribute-table td,#attribute-table th{border:1px solid #d2dbe5;padding:8px;text-align:left}#attribute-table th{background:#e8eef5}#attribute-table .attr-enum-select,#attribute-table input{background:#fff;border:1px solid #c3cdda;border-radius:4px;box-sizing:border-box;font-size:inherit;padding:6px;width:100%}.attr-ss{position:relative;width:100%}.attr-ss-trigger{align-items:center;background:#fff;border:1px solid #c3cdda;border-radius:4px;box-sizing:border-box;cursor:pointer;display:flex;font-size:inherit;justify-content:space-between;min-height:32px;padding:6px 8px;-webkit-user-select:none;user-select:none;width:100%}.attr-ss-trigger.disabled{background:#f4f8fc;cursor:default;opacity:.8}.attr-ss-trigger:not(.disabled):hover{border-color:#165391}.attr-ss-value{color:#0f2035;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attr-ss-placeholder{color:#94a3b8;flex:1 1}.attr-ss-arrow{color:#60758f;flex-shrink:0;font-size:11px;margin-left:4px}.attr-ss-dropdown{background:#fff;border:1px solid #c3cdda;border-radius:5px;box-shadow:0 4px 16px #00000024;left:0;overflow:hidden;position:absolute;right:0;top:calc(100% + 3px);z-index:9999}.attr-ss-filter{background:#f8fafc;border:none;border-bottom:1px solid #e3eaf2;box-sizing:border-box;font-size:13px;outline:none;padding:7px 10px;width:100%}.attr-ss-filter:focus{background:#fff}.attr-ss-options{max-height:220px;overflow-y:auto}.attr-ss-option{color:#0f2035;cursor:pointer;font-size:13px;padding:7px 10px;transition:background .1s}.attr-ss-option:hover{background:#eef4ff}.attr-ss-option.selected{background:#e8f0fe;color:#165391;font-weight:600}.attr-ss-clear{border-bottom:1px solid #f0f4f8;color:#8fa5b8}.attr-ss-no-results{color:#94a3b8;font-size:13px;font-style:italic;padding:8px 10px}.attr-required-row td:first-child{background:#fff1f1}.attr-required-label{color:#b21f2d;font-weight:700}.attr-required-star{color:#d32f2f;font-weight:800;margin-left:2px}.attr-required-input{background:#fff7f7;border-color:#d32f2f!important}.attr-required-note{color:#b21f2d;font-size:13px;font-weight:600;margin:-4px 0 8px}.edit-actions{display:flex;gap:8px;margin-bottom:14px}.edit-actions button{background:#165391;border:1px solid #16355e;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;padding:8px 12px}.edit-actions button:disabled{background:#9aa8b8;border-color:#8a96a3;cursor:not-allowed}#layer-list label{align-items:center;display:flex;gap:8px;margin:6px 0}.layers-parent-actions{align-items:center;display:flex;flex-direction:row;gap:8px;justify-content:flex-end;margin-bottom:8px}.layers-icon-btn{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:0}.layers-icon-btn:focus-visible{border-radius:4px;outline:2px solid #1a73e8;outline-offset:2px}.layers-icon-btn--zoom{background:#e53935;border-radius:50%;height:32px;transition:background .15s;width:32px}.layers-icon-btn--zoom:hover:not(:disabled){background:#c62828}.layers-icon-btn--zoom:disabled{background:#c8c8c8;cursor:not-allowed}.layers-icon-btn--toggle{background:#0000;border-radius:12px;transition:opacity .15s}.layers-icon-btn--toggle:hover{opacity:.85}.layers-table{border-collapse:collapse;font-size:13px;width:100%}.layers-table th{border-bottom:1px solid #c3cdda;color:#294863;font-weight:700;padding:4px 5px;text-align:center}.layers-table td{padding:3px 5px;vertical-align:middle}.layers-table td:first-child,.layers-table td:nth-child(2),.layers-table td:nth-child(3){padding-left:2px;padding-right:2px;text-align:center;width:20px}.layers-table th:first-child,.layers-table th:nth-child(2),.layers-table th:nth-child(3){padding-left:2px;padding-right:2px;width:20px}.layer-name-cell{word-break:break-word}.layer-name-vs{color:#1565c0;font-weight:600}.layer-name-vse{color:#2e7d32;font-weight:700}.layer-group-header{background:#e3f2fd}.layer-group-name{color:#1565c0;font-size:11px;font-weight:700;letter-spacing:.04em;padding:5px 6px 3px;text-transform:uppercase}.layer-group-collapse-btn{background:none;border:none;color:#1565c0;cursor:pointer;font-size:11px;line-height:1;padding:0 4px 0 0;vertical-align:middle}.layer-move-col{padding:2px!important;text-align:center;white-space:nowrap;width:44px}.layer-move-btn{background:#0000;border:none;border-radius:2px;color:#607d8b;cursor:pointer;font-size:11px;line-height:1;padding:1px 3px}.layer-move-btn:not(:disabled):hover{background:#cfd8dc;color:#1565c0}.layer-move-btn:disabled{cursor:default;opacity:.2}.ribbon-group-edit{background:#ff980014;border:1px solid #e65100;border-radius:4px;padding:2px 6px}.ribbon-group-edit span{color:#e65100;font-weight:600}.ribbon-group-session span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-confirm-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}.delete-confirm-msg{color:#b71c1c;flex:1 1;font-size:13px;font-weight:600}.delete-confirm-yes{background:#c62828;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:5px 14px}.delete-confirm-yes:hover{background:#b71c1c}.delete-confirm-no{background:#e0e0e0;border:none;border-radius:4px;color:#333;cursor:pointer;font-size:13px;padding:5px 14px}.delete-confirm-no:hover{background:#bdbdbd}.empty-note{color:#60758f;font-size:13px;margin-bottom:10px}.layers-loading{animation:pulse-opacity 1.2s ease-in-out infinite;font-style:italic}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.4}}.ol-mouse-position{background:#ffffffdb;border:1px solid #97a7bb;border-radius:4px;bottom:6px;color:#1d334d;font-size:11px;left:auto;padding:2px 6px;right:10px;top:auto}@media (max-width:1000px){.map-layout{flex-direction:column}.map-panel{min-height:55vh}.sidebar{border-left:none;border-right:none;border-top:1px solid #ccd4dd;max-width:none;min-width:0;width:auto}}.edit-modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}.edit-modal{background:#fff;border-radius:10px;box-shadow:0 12px 40px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:95vw;overflow:hidden;width:480px}.edit-modal-header{align-items:center;background:#0f2035;color:#fff;display:flex;flex-shrink:0;gap:12px;padding:14px 20px}.edit-modal-title{flex:1 1;font-size:16px;font-weight:700}.edit-modal-fid{color:#ffffffa6;font-size:12px}.edit-modal-layer{background:#ffffff26;border-radius:3px;font-size:11px;max-width:160px;overflow:hidden;padding:2px 7px;text-overflow:ellipsis;white-space:nowrap}.edit-modal-body{flex:1 1;overflow-y:auto;padding:16px 20px}.edit-modal-empty{color:#60758f;font-size:13px}.edit-modal-table{border-collapse:collapse;width:100%}.edit-modal-table tr+tr td{border-top:1px solid #f0f4f8}.edit-modal-field-name{color:#294863;font-size:13px;font-weight:600;padding:7px 12px 7px 0;vertical-align:middle;width:38%}.edit-modal-input{border:1px solid #c3cdda;border-radius:4px;box-sizing:border-box;font-size:13px;outline:none;padding:6px 9px;transition:border-color .15s;width:100%}.edit-modal-input:focus{border-color:#165391}.edit-modal-footer{background:#f8fafb;border-top:1px solid #e3eaf2;display:flex;flex-shrink:0;gap:10px;padding:12px 20px}.edit-modal-save-btn{background:#165391;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:8px 24px;transition:background .15s}.edit-modal-save-btn:disabled{background:#9ab0c8;cursor:not-allowed}.edit-modal-save-btn:not(:disabled):hover{background:#0f3d6e}.edit-modal-cancel-btn{background:#0000;border:1px solid #c3cdda;border-radius:5px;color:#294863;cursor:pointer;font-size:13px;padding:8px 20px;transition:background .15s}.edit-modal-cancel-btn:hover{background:#f0f4f8}.edit-modal-required{color:#d32f2f;font-weight:700;margin-left:2px}input[type=date].edit-modal-input,input[type=datetime-local].edit-modal-input,input[type=number].edit-modal-input{font-family:inherit}.ribbon-attr-table-btn{background:#a8d4f5;border:1px solid #0b3f6c;border-radius:4px;color:#132238;cursor:pointer;font-weight:600;padding:7px 9px}.ribbon-attr-table-btn:hover{background:#7bbde8}.attr-table-panel{background:#fff;border-radius:4px 4px 0 0;border-top:2px solid #2c4a63;box-shadow:0 -4px 16px #0000002e;display:flex;flex-direction:row;min-height:150px;min-width:300px;overflow:hidden}.attr-table-side-handle{background:#c8d4e0;cursor:ew-resize;flex:0 0 6px;transition:background .15s;-webkit-user-select:none;user-select:none;width:6px}.attr-table-side-handle:hover{background:#9ab0c5}.attr-table-content{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.attr-table-resize-handle{background:#c8d4e0;cursor:ns-resize;flex:0 0 5px;height:5px;-webkit-user-select:none;user-select:none}.attr-table-resize-handle:hover{background:#9ab0c5}.attr-table-header{align-items:center;background:#2c4a63;color:#fff;cursor:grab;display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px;padding:5px 10px;-webkit-user-select:none;user-select:none}.attr-table-header:active{cursor:grabbing}.attr-table-title{font-size:13px;font-weight:700;margin-right:4px;white-space:nowrap}.attr-table-title-wrap{align-items:center;display:flex;gap:8px;min-width:0}.attr-table-badge{align-items:center;background:#d8f1d7;border-radius:999px;color:#0c5a2b;display:inline-flex;font-size:11px;font-weight:700;padding:2px 8px;white-space:nowrap}.attr-table-controls{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:8px}.attr-table-layer-select{background:#1a3149;border:1px solid #9ab0c5;border-radius:3px;color:#fff;font-size:13px;max-width:200px;padding:3px 6px}.attr-table-columns-wrap{position:relative}.attr-table-columns-btn{background:#2c4a63;border:1px solid #4a6a83;border-radius:3px;color:#d0ea5b;cursor:pointer;font-size:13px;font-weight:700;padding:3px 10px;white-space:nowrap}.attr-table-columns-btn:hover:not(:disabled){background:#1a3149}.attr-table-columns-btn:disabled{cursor:not-allowed;opacity:.4}.attr-table-columns-popover{background:#fff;border:1px solid #b7c8d8;border-radius:6px;box-shadow:0 8px 20px #0000002e;color:#1a3149;display:flex;flex-direction:column;gap:8px;left:0;max-height:320px;padding:10px;position:absolute;top:calc(100% + 6px);width:260px;z-index:2100}.attr-table-columns-search{border:1px solid #b7c8d8;border-radius:4px;box-sizing:border-box;font-size:12px;padding:6px 8px;width:100%}.attr-table-columns-actions{display:flex;justify-content:flex-end}.attr-table-columns-actions button{background:#eef4f9;border:1px solid #b7c8d8;border-radius:4px;cursor:pointer;font-size:12px;padding:4px 8px}.attr-table-columns-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}.attr-table-columns-item{align-items:center;display:flex;font-size:12px;gap:8px}.attr-table-columns-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attr-table-columns-empty{color:#6b7f91;font-size:12px;font-style:italic}.attr-table-filter-btns{display:flex;gap:4px}.attr-filter-btn{background:#1a3149;border:1px solid #9ab0c5;border-radius:3px;color:#c8d8e8;cursor:pointer;font-size:13px;padding:3px 10px;transition:background .12s;white-space:nowrap}.attr-filter-btn:hover{background:#2c4a63;color:#fff}.attr-filter-btn.active{background:#d0ea5b;border-color:#a8bc3a;color:#132238;font-weight:700}.attr-table-load-btn{background:#1c8f52;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:3px 14px;transition:background .12s;white-space:nowrap}.attr-table-load-btn:hover:not(:disabled){background:#156b3d}.attr-table-load-btn:disabled{background:#6a8a7a;cursor:not-allowed}.attr-table-csv-btn{background:#2c4a63;border:1px solid #4a6a83;border-radius:3px;color:#d0ea5b;cursor:pointer;font-size:13px;font-weight:700;padding:3px 10px;transition:background .12s;white-space:nowrap}.attr-table-csv-btn:hover:not(:disabled){background:#1a3149}.attr-table-csv-btn:disabled{cursor:not-allowed;opacity:.4}.attr-table-close-btn{background:#0000;border:1px solid #4a6a83;border-radius:3px;color:#c8d8e8;cursor:pointer;font-size:13px;line-height:1;margin-left:auto;padding:2px 8px;transition:background .12s}.attr-table-close-btn:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}.attr-table-body{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.attr-table-error{color:#b91c1c;font-size:13px;padding:10px 14px}.attr-table-empty{color:#6b7f91;font-size:13px;font-style:italic;padding:14px}.attr-table-scroll{flex:1 1;overflow:auto}.attr-table{border-collapse:collapse;font-size:13px;width:100%}.attr-table th{background:#e8eef4;border:1px solid #c8d4e0;color:#1a3149;font-weight:700;padding:5px 10px;position:sticky;text-align:left;top:0;white-space:nowrap;z-index:1}.attr-table td{border:1px solid #e3eaf2;color:#2a3f54;max-width:220px;overflow:hidden;padding:4px 10px;text-overflow:ellipsis;white-space:nowrap}.attr-table tr:nth-child(2n) td{background:#f5f8fb}.attr-table-row{cursor:pointer}.attr-table-row:hover td{background:#dceeff}.attr-table-row.selected td{background:#b3d9ff;font-weight:600}.attr-table-footer{background:#f0f4f8;border-top:1px solid #dce6ef;color:#6b7f91;flex-shrink:0;font-size:11px;padding:3px 12px;text-align:right}.top-search-bar{background:#0000;flex-shrink:0;margin-right:8px;padding:0;position:relative;z-index:500}.top-search-input-wrapper{align-items:center;background:#ffffff1f;border:1px solid #ffffff4d;border-radius:6px;display:flex;gap:6px;padding:0 8px;transition:border-color .15s,background .15s;width:260px}.top-search-input-wrapper:focus-within{background:#ffffff2e;border-color:#ff9500}.top-search-icon{color:#fff9;font-size:16px;line-height:1;pointer-events:none}.top-search-input{background:#0000;border:none;color:#fff;flex:1 1;font-size:13px;min-width:0;outline:none;padding:5px 0}.top-search-input::placeholder{color:#ffffff73}.top-search-clear{background:none;border:none;color:#ffffff8c;cursor:pointer;font-size:14px;line-height:1;padding:2px 4px;transition:color .12s}.top-search-clear:hover{color:#fff}.top-search-spinner{animation:top-search-spin .7s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#ff9500;display:inline-block;flex-shrink:0;height:14px;width:14px}@keyframes top-search-spin{to{transform:rotate(1turn)}}.top-search-dropdown{background:#fff;border:1px solid #c3cdda;border-radius:0 0 8px 8px;border-top:none;box-shadow:0 6px 20px #0000002e;left:16px;max-height:340px;max-width:680px;min-width:320px;overflow-y:auto;position:absolute;top:calc(100% - 2px);z-index:2000}.top-search-dropdown-item{align-items:center;border-bottom:1px solid #edf0f4;color:#18314d;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:9px 14px;-webkit-user-select:none;user-select:none}.top-search-dropdown-item:last-child{border-bottom:none}.top-search-dropdown-item:hover,.top-search-highlighted{background:#edf4ff}.top-search-coord-item{color:#1a6a3a;font-style:italic}.top-search-coord-item.top-search-highlighted,.top-search-coord-item:hover{background:#e8f5ed}.top-search-osm-item{color:#4a4a9a}.top-search-item-icon{flex-shrink:0;font-size:14px}.top-search-status-item{color:#60758f;cursor:default;font-style:italic}.top-search-error-item{color:#c0392b;cursor:default}.attr-invalid-input{background:#fff3e0!important;border:2px solid #e65100!important;outline:none}.attr-validation-msg{background:#fde8e8;border:1px solid #f5a5a5;border-left:3px solid #ef5350;border-radius:4px;color:#b71c1c;font-size:13px;margin-bottom:6px;padding:5px 8px}.edit-modal-input-required{background:#fff5f5!important;border:2px solid #c62828!important}.edit-modal-input-invalid{background:#fff3e0!important;border:2px solid #e65100!important}.edit-modal-validation-msg{background:#fde8e8;border-bottom:1px solid #f5a5a5;border-top:1px solid #f5a5a5;color:#b71c1c;font-size:13px;padding:7px 16px}.legend-list{display:flex;flex-direction:column}.legend-empty{color:#8fa5b8;font-size:12px;font-style:italic;padding:4px 2px;text-align:center}.legend-group{border-bottom:1px solid #eef2f7}.legend-group:last-child{border-bottom:none}.legend-group-header{align-items:center;border-radius:3px;cursor:pointer;display:flex;gap:5px;padding:5px 2px;-webkit-user-select:none;user-select:none}.legend-group-header:hover{background:#f4f8fc}.legend-group-toggle{color:#7a94ab;flex-shrink:0;font-size:11px;text-align:center;width:10px}.legend-group-name{color:#294863;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.legend-group-body{display:flex;flex-direction:column;gap:5px;padding:2px 4px 6px 17px}.legend-row{align-items:center;display:flex;gap:7px}.legend-swatch{display:block;flex-shrink:0;height:16px;image-rendering:pixelated;width:16px}.legend-swatch-wms{image-rendering:auto}.legend-layer-name{color:#1e293b;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookmarks-panel{padding:4px 0}.bm-save-row{display:flex;gap:6px;margin-bottom:8px}.bm-name-input{border:1px solid #c0ccd8;border-radius:4px;flex:1 1;font-size:13px;padding:5px 8px}.bm-name-input:focus{border-color:#1a73e8;outline:none}.bm-save-btn{background:#1a73e8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:5px 10px;white-space:nowrap}.attr-table-th-inner{display:flex;flex-direction:column;gap:6px;min-width:120px}.attr-table-th-top{align-items:center;display:flex;gap:8px;justify-content:space-between}.attr-table-th-label{overflow:hidden;text-overflow:ellipsis}.attr-table-th-actions{align-items:center;display:inline-flex;gap:2px}.attr-table-sort-btn{background:#fff;border:1px solid #b7c8d8;border-radius:3px;color:#35526c;cursor:pointer;font-size:10px;height:20px;line-height:1;padding:0;width:20px}.attr-table-sort-btn:hover{background:#dbe7f1}.attr-table-sort-btn.active{background:#d0ea5b;border-color:#a8bc3a;color:#132238}.attr-table-col-filter{background:#fff;border:1px solid #c9d6e2;border-radius:3px;box-sizing:border-box;font-size:12px;padding:4px 6px;width:100%}.bm-save-btn:hover{background:#1558b0}.bm-empty{color:#888;font-size:13px;line-height:1.4;padding:10px 4px;text-align:center}.bm-list{flex-direction:column;list-style:none;margin:0;padding:0}.bm-item,.bm-list{display:flex;gap:4px}.bm-item{align-items:center;background:#f3f7fb;border:1px solid #dde5ee;border-radius:4px;padding:5px 6px}.bm-name{color:#1a3a5c;cursor:pointer;flex:1 1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bm-name:hover{color:#1a73e8;text-decoration:underline}.bm-delete-btn,.bm-share-btn{background:#fff;border:1px solid #c0ccd8;border-radius:3px;cursor:pointer;flex-shrink:0;font-size:13px;line-height:1;padding:2px 6px}.bm-share-btn:hover{background:#e8f0fe;border-color:#1a73e8}.bm-delete-btn:hover{background:#fde8e8;border-color:#e53935;color:#e53935}.ribbon-print-btn{background:#e8f4ff;border:1px solid #0b3f6c;border-radius:4px;color:#132238;cursor:pointer;font-weight:600;padding:7px 9px}.ribbon-print-btn:hover{background:#c3dff7}.print-modal-overlay{align-items:center;background:#00000085;display:flex;inset:0;justify-content:center;position:fixed;z-index:1200}.print-modal{background:#fff;border-radius:8px;box-shadow:0 8px 32px #00000047;display:flex;flex-direction:column;max-height:92vh;max-width:95vw;overflow:hidden;width:820px}.print-modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;flex-shrink:0;font-size:16px;font-weight:700;justify-content:space-between;padding:12px 16px}.print-modal-close{background:none;border:none;color:#555;cursor:pointer;font-size:20px;line-height:1}.print-modal-close:hover{color:#e53935}.print-modal-controls{align-items:center;border-bottom:1px solid #eee;display:flex;flex-shrink:0;flex-wrap:wrap;font-size:13px;gap:14px;padding:10px 16px}.print-modal-controls label{align-items:center;color:#334;display:flex;gap:6px}.print-modal-controls select{padding:4px 6px}.print-modal-controls select,.print-title-input{border:1px solid #c0ccd8;border-radius:4px;font-size:13px}.print-title-input{padding:4px 8px;width:180px}.print-capture-btn{background:#1a73e8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:6px 14px}.print-capture-btn:hover:not(:disabled){background:#1558b0}.print-capture-btn:disabled{cursor:not-allowed;opacity:.6}.print-capture-err{color:#c62828;font-size:13px}.print-layout{background:#f8f9fb;flex:1 1;overflow-y:auto;padding:12px 16px}.print-header-row{align-items:flex-start;border-bottom:2px solid #234;display:flex;justify-content:space-between;margin-bottom:8px;padding-bottom:6px}.print-title{color:#112;font-size:16px;font-weight:700}.print-meta{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.print-north{color:#223;font-size:18px;font-weight:700}.print-date{color:#666;font-size:11px}.print-map-img{border:1px solid #ccc;display:block;width:100%}.print-map-placeholder{align-items:center;background:#e8eef5;border:1px dashed #aab;border-radius:4px;color:#667;display:flex;font-size:13px;justify-content:center;min-height:260px;padding:20px;text-align:center}.print-scale-bar-row{align-items:center;color:#334;display:flex;font-size:11px;gap:8px;padding:6px 0}.print-scale-bar{background:#333;flex-shrink:0;height:6px;max-width:40%;min-width:20px}.print-scale-label{font-size:11px}.print-legend{border-top:1px solid #dde5ee;display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;padding-top:8px}.print-legend-item{align-items:center;color:#334;display:flex;font-size:11px;gap:5px}.print-legend-swatch{border:1px solid #aaa;border-radius:2px;flex-shrink:0;height:14px;width:14px}.print-modal-footer{border-top:1px solid #eee;display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;padding:10px 16px}.print-btn{background:#1a73e8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 20px}.print-btn:hover:not(:disabled){background:#1558b0}.print-btn:disabled{cursor:not-allowed;opacity:.55}.print-cancel-btn{background:#fff;border:1px solid #c0ccd8;border-radius:4px;cursor:pointer;font-size:13px;padding:8px 16px}.print-cancel-btn:hover{background:#f0f4f8}@media print{body>*{display:none!important}.print-modal-overlay{background:none!important;display:block!important;position:static!important}.print-modal{border-radius:0!important;box-shadow:none!important;display:block!important;max-height:none!important;max-width:100%!important;width:100%!important}.print-modal-controls,.print-modal-footer,.print-modal-header{display:none!important}.print-layout{background:#fff!important;display:block!important;overflow:visible!important;padding:0!important}.print-map-img{max-width:100%;page-break-inside:avoid}}.map-book-panel{padding:4px 0}.mb-controls{border-bottom:1px solid #e8eef5;display:flex;flex-direction:column;gap:8px;padding-bottom:10px}.mb-row{align-items:center;color:#334;display:flex;font-size:13px;gap:6px}.mb-label{color:#556;font-size:12px;min-width:38px}.mb-num-input{border:1px solid #c0ccd8;border-radius:4px;font-size:13px;padding:4px 5px;text-align:center;width:46px}.mb-x{color:#667;font-size:12px}.mb-select{padding:4px 6px}.mb-select,.mb-title-input{border:1px solid #c0ccd8;border-radius:4px;font-size:13px}.mb-title-input{flex:1 1;padding:4px 8px}.mb-num-input:focus,.mb-title-input:focus{border-color:#1a73e8;outline:none}.mb-action-row{gap:8px!important}.mb-btn{background:#1a73e8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px}.mb-btn:hover:not(:disabled){background:#1558b0}.mb-btn:disabled{cursor:not-allowed;opacity:.55}.mb-print-all-btn{background:#388e3c}.mb-print-all-btn:hover:not(:disabled){background:#2e7d32}.mb-cells{display:flex;flex-direction:column;gap:4px;margin-top:10px;max-height:260px;overflow-y:auto}.mb-cell-row{align-items:center;background:#f3f7fb;border:1px solid #dde5ee;border-radius:4px;display:flex;gap:8px;padding:4px 6px}.mb-cell-label{color:#334;flex:1 1;font-size:12px}.mb-cell-print-btn{background:#e8f0fe;border:1px solid #1a73e8;border-radius:3px;color:#1a3a5c;cursor:pointer;font-size:11px;font-weight:600;padding:2px 10px}.mb-cell-print-btn:hover:not(:disabled){background:#c5d8f5}.mb-cell-print-btn:disabled{cursor:not-allowed;opacity:.5}.map-login-page{align-items:center;background:linear-gradient(135deg,#0f2035,#1a3a5c);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;justify-content:center;min-height:100vh}.map-login-card{background:#fff;border-radius:12px;box-shadow:0 12px 40px #00000059;padding:40px 36px;width:340px}.map-login-logo{display:flex;justify-content:center;margin-bottom:12px}.map-login-title{color:#0f2035;font-size:22px;font-weight:700;margin:0 0 4px;text-align:center}.map-login-subtitle{color:#6b7c93;font-size:13px;margin:0 0 24px;text-align:center}.map-login-form{display:flex;flex-direction:column;gap:12px}.map-login-input{border:1px solid #c3cdda;border-radius:6px;box-sizing:border-box;font-size:14px;outline:none;padding:10px 14px;transition:border-color .15s,box-shadow .15s;width:100%}.map-login-input:focus{border-color:#165391;box-shadow:0 0 0 3px #1653911f}.map-login-error{background:#fde8e8;border-radius:5px;color:#c0392b;font-size:13px;padding:8px 12px}.map-login-btn{background:#165391;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;margin-top:4px;padding:11px;transition:background .15s}.map-login-btn:hover:not(:disabled){background:#0f3d6e}.map-login-btn:disabled{background:#9ab0c8;cursor:not-allowed}.map-login-divider{align-items:center;color:#a0b4c4;display:flex;font-size:12px;gap:12px;margin:20px 0 16px}.map-login-divider:after,.map-login-divider:before{background:#d8e4ed;content:"";flex:1 1;height:1px}.auth-portal-page,.map-login-google{display:flex;justify-content:center}.auth-portal-page{align-items:center;background:radial-gradient(circle at top left,#5eb8ff38,#0000 32%),linear-gradient(145deg,#102338,#18385a 48%,#091421);min-height:100vh;padding:24px}.auth-portal-card{background:#fffffff7;border:1px solid #a0b4c447;border-radius:20px;box-shadow:0 24px 60px #00000052;padding:32px 30px;width:min(420px,100%)}.auth-portal-logo{display:flex;justify-content:center;margin-bottom:14px}.auth-portal-title{color:#0f2035;font-size:28px;font-weight:800;letter-spacing:.01em;margin:0;text-align:center}.auth-portal-version{color:#a0b0c4;font-size:11px;letter-spacing:.04em;margin:2px 0 6px;text-align:center}.auth-portal-subtitle{color:#60758f;font-size:14px;line-height:1.5;margin:8px 0 22px;text-align:center}.auth-portal-tabs{grid-gap:8px;background:#edf3f8;border-radius:14px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(0,1fr));margin-bottom:18px;padding:6px}.auth-portal-tabs button{background:#0000;border:none;border-radius:10px;color:#49617c;cursor:pointer;font-size:13px;font-weight:700;padding:10px 12px;transition:background .15s,color .15s,box-shadow .15s}.auth-portal-tabs button.is-active{background:#102338;box-shadow:0 10px 24px #10233838;color:#fff}.auth-portal-form{display:flex;flex-direction:column;gap:12px}.auth-portal-input{background:#fff;border:1px solid #c6d3df;border-radius:10px;box-sizing:border-box;color:#0f2035;font-size:14px;outline:none;padding:12px 14px;transition:border-color .15s,box-shadow .15s,transform .15s;width:100%}.auth-portal-input:focus{border-color:#165391;box-shadow:0 0 0 4px #1653911f}.auth-portal-btn{background:linear-gradient(135deg,#165391,#0f3d6e);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:800;padding:12px 14px;transition:transform .15s,box-shadow .15s,opacity .15s}.auth-portal-btn:hover:not(:disabled){box-shadow:0 10px 20px #16539140;transform:translateY(-1px)}.auth-portal-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}.auth-portal-error,.auth-portal-note{border-radius:10px;font-size:13px;line-height:1.45;margin-bottom:14px;padding:10px 12px}.auth-portal-note{background:#eef6ff;color:#27435f}.auth-portal-error,.auth-portal-note-error{background:#fde8e8;color:#b42318}.auth-portal-divider{align-items:center;color:#90a4b7;display:flex;font-size:12px;gap:12px;letter-spacing:.08em;margin:22px 0 16px;text-transform:uppercase}.auth-portal-divider:after,.auth-portal-divider:before{background:#d8e4ed;content:"";flex:1 1;height:1px}.auth-portal-google{display:flex;justify-content:center}.auth-portal-footnote{color:#6b7c93;font-size:12px;line-height:1.5;margin:18px 0 0;text-align:center}@media (max-width:640px){.auth-portal-page{padding:16px}.auth-portal-card{border-radius:16px;padding:26px 22px}.auth-portal-title{font-size:24px}}.spatial-tools{display:flex;flex-direction:column;font-size:12px;gap:10px}.spatial-tools__ops{display:flex;flex-wrap:wrap;gap:4px}.spatial-op{background:#f5f5f5;border:1px solid #c8d0da;border-radius:4px;color:#111827;font-size:11px;line-height:1.2;padding:5px 9px}.spatial-op--active{background:#173a63;border-color:#173a63;color:#fff}.spatial-tools__selection{color:#355a84;font-size:12px}.spatial-tools__slot{background:#fbfcfe;border:1px solid #d7dee7;border-radius:6px;display:flex;flex-direction:column;gap:8px;padding:9px}.spatial-tools__slot-head{align-items:center;display:flex;gap:8px;justify-content:space-between}.spatial-tools__slot-state{color:#6b7280;text-align:right}.spatial-tools__slot-state--ready{color:#25653f}.spatial-tools__slot-actions{display:flex;flex-wrap:wrap;gap:6px}.spatial-tools__layer-picker{align-items:end;display:flex;gap:8px}.spatial-tools__layer-label{color:#355a84;display:flex;flex:1 1;flex-direction:column;font-size:11px;font-weight:600;gap:4px}.spatial-tools__layer-label select{background:#fff;border:1px solid #c8d0da;border-radius:4px;color:#1f2937;font-size:12px;min-width:0;padding:7px 9px;width:100%}.spatial-clear-btn,.spatial-run-btn,.spatial-tools__draw-btn,.spatial-tools__source-btn{border-radius:4px;font-size:12px}.spatial-tools__draw-btn,.spatial-tools__source-btn{background:#fff;border:1px solid #b8c3d1;color:#173a63;padding:6px 10px;white-space:nowrap}.spatial-clear-btn:disabled,.spatial-run-btn:disabled,.spatial-tools__draw-btn:disabled,.spatial-tools__source-btn:disabled{cursor:not-allowed;opacity:.55}.spatial-tools__draw-btn--active{background:#e8f1fb;border-color:#2e6da4;color:#1e568a}.spatial-tools__source-btn--ghost{color:#4b5563}.spatial-tools__field{color:#1f2937;display:flex;flex-direction:column;font-weight:600;gap:4px}.spatial-tools__field input{border:1px solid #c8d0da;border-radius:4px;font-size:13px;padding:7px 9px}.spatial-tools__error{color:#b91c1c;font-size:12px}.spatial-tools__run{display:flex;gap:8px}.spatial-run-btn{background:#173a63;border:none;color:#fff;padding:7px 16px}.spatial-clear-btn{background:#f5f5f5;border:1px solid #c8d0da;color:#1f2937;padding:7px 12px}.spatial-tools__result{background:#eef8f0;border:1px solid #bcd6c3;border-radius:6px;color:#193622;padding:10px}.spatial-tools__result p{margin:0 0 4px}.spatial-tools__result p:last-child{margin-bottom:0}.spatial-tools__result-note{color:#25653f}.ie{font-size:13px}.ie__msg{color:#888;font-style:italic}.ie__tabs{display:flex;gap:4px;margin-bottom:12px}.ie-tab{background:#f5f5f5;border:1px solid #ccc;border-radius:4px;flex:1 1;font-size:12px;padding:6px}.ie-tab--active{background:#1a3a5c;border-color:#1a3a5c;color:#fff}.ie__error{color:#c0392b;font-size:12px;margin-bottom:8px}.ie__panel{gap:10px}.ie__label,.ie__panel{display:flex;flex-direction:column}.ie__label{font-size:12px;font-weight:600;gap:4px}.ie__hint{color:#5b7086;font-size:12px;line-height:1.45}.ie__select{border:1px solid #ccc;padding:5px 8px}.ie__btn,.ie__select{border-radius:4px;font-size:13px}.ie__btn{background:#1a3a5c;border:none;color:#fff;padding:7px 16px}.ie__btn:disabled{opacity:.5}.ie__result{background:#f0fdf4;border:1px solid #86efac;border-radius:4px;font-size:12px;line-height:1.6;padding:8px 10px}.ie__session{border-top:1px solid #d6e0ea;display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:12px}.ie__session-title{color:#12314f;font-weight:700}.ie__session-copy{color:#4b5f73;font-size:12px;line-height:1.5}.ie__session-actions{display:flex;flex-wrap:wrap;gap:8px}.ie__btn--secondary{background:#365f86}.ie__btn--danger{background:#a63b32}.ie__result-note{color:#166534;margin-top:8px}.ie__result-actions{margin-top:10px}.network-trace{display:flex;flex-direction:column;font-size:12px;gap:10px}.network-trace__field{color:#1f2937;display:flex;flex-direction:column;font-weight:600;gap:4px}.network-trace__field select{border:1px solid #c8d0da;border-radius:4px;font-size:13px;padding:7px 9px}.network-trace__hint{color:#4b5563;line-height:1.45}.network-trace__modes{display:flex;flex-wrap:wrap;gap:6px}.network-trace__mode-btn{background:#f5f5f5;border:1px solid #c8d0da;border-radius:4px;color:#1f2937;font-size:12px;padding:6px 10px}.network-trace__mode-btn--active{background:#173a63;border-color:#173a63;color:#fff}.network-trace__selection-card{background:#fbfcfe;border:1px solid #d7dee7;border-radius:6px;display:flex;flex-direction:column;gap:8px;padding:9px}.network-trace__selection-row{color:#355a84;display:flex;gap:8px;justify-content:space-between}.network-trace__action-btn,.network-trace__clear-btn,.network-trace__run-btn{border-radius:4px;font-size:12px}.network-trace__action-btn{background:#fff;border:1px solid #b8c3d1;color:#173a63;padding:6px 10px}.network-trace__action-btn--active{background:#e8f1ff;border-color:#7fa7d3}.network-trace__run{display:flex;flex-wrap:wrap;gap:8px}.network-trace__run-btn{background:#173a63;border:none;color:#fff;padding:7px 16px}.network-trace__clear-btn{background:#f5f5f5;border:1px solid #c8d0da;color:#1f2937;padding:7px 12px}.network-trace__error{color:#b91c1c;font-size:12px}.network-trace__result{background:#eef8f0;border:1px solid #bcd6c3;border-radius:6px;color:#193622;display:flex;flex-direction:column;gap:6px;padding:10px}.network-trace__result--neutral{background:#f8fafc;border-color:#d7dee7;color:#1f2937}.network-trace__summary-row{display:flex;font-size:12px;gap:8px;justify-content:space-between;padding:2px 0}.network-trace__summary-row--barrier{color:#b91c1c}.network-trace__summary-row--valve{color:#0369a1;font-weight:600}.network-trace__export{display:flex;flex-wrap:wrap;gap:8px}.network-trace__multi-network{background:#fbfcfe;border:1px solid #d7dee7;border-radius:6px;padding:6px 9px}.network-trace__multi-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}.network-trace__multi-item{align-items:center;cursor:pointer;display:flex;font-size:12px;gap:6px}.network-trace__field--inline{align-items:center;display:flex;gap:8px}.network-trace__cost-input{border:1px solid #d7dee7;border-radius:4px;font-size:12px;padding:4px 6px;width:100px}.network-trace__analysis{background:#f8fafc;border:1px solid #d7dee7;border-radius:6px}.network-trace__analysis-header{color:#334155;cursor:pointer;font-size:12px;font-weight:600;padding:8px 10px}.network-trace__analysis-body{display:flex;flex-direction:column;gap:8px;padding:8px 10px}.network-trace__inline-actions{display:flex;flex-wrap:wrap;gap:8px}.network-trace__compact-select{background:#fff;border:1px solid #c8d0da;border-radius:4px;color:#1f2937;font-size:12px;padding:6px 8px}.network-trace__section{background:#fbfcfe;border:1px solid #d7dee7;border-radius:6px;display:flex;flex-direction:column;gap:8px;padding:8px 10px}.network-trace__section-head{color:#334155;display:flex;flex-direction:column;gap:2px}.network-trace__list{display:flex;flex-direction:column;gap:6px}.network-trace__list-item{align-items:center;background:#fff;border:1px solid #d7dee7;border-radius:6px;display:flex;gap:8px;justify-content:space-between;padding:8px 9px}.network-trace__list-item--stack{align-items:start;flex-direction:column}.network-trace__mini-btn{background:#fff;border:1px solid #b8c3d1;border-radius:4px;color:#173a63;font-size:11px;padding:4px 8px}.network-trace__dual-columns{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.network-trace__dashboard{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.network-trace__metric-card{background:#fff;border:1px solid #d7dee7;border-radius:6px;color:#334155;display:flex;flex-direction:column;gap:4px;padding:10px 8px;text-align:center}.network-trace__metric-card strong{color:#0f3d6e;font-size:16px}.network-trace__metric-card--score{background:linear-gradient(180deg,#f7fff8,#eef8f0);border-color:#bcd6c3}.network-trace__profile{display:flex;flex-direction:column;gap:8px}.network-trace__profile-chart{background:linear-gradient(180deg,#fffdf8,#f8fafc);border:1px solid #d7dee7;border-radius:6px;height:auto;max-width:360px;width:100%}.network-trace__profile-axis{stroke:#94a3b8;stroke-width:1}.network-trace__profile-line{fill:none;stroke:#d72638;stroke-width:2.5}.ai-analysis-panel{display:flex;flex-direction:column;gap:8px}.ai-analysis-guide{display:flex;flex-wrap:wrap;gap:6px}.ai-analysis-step{align-items:center;background:linear-gradient(180deg,#fbfdff,#f3f8fc);border:1px solid #dbe6ef;border-radius:999px;display:inline-flex;gap:6px;padding:6px 8px}.ai-analysis-step--ready{background:linear-gradient(180deg,#f7fffa,#edf9f0);border-color:#b7ddc2}.ai-analysis-step-index{align-items:center;background:#dbe9f7;border-radius:50%;color:#0f3f72;display:inline-flex;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.ai-analysis-step--ready .ai-analysis-step-index{background:#dff3e5;color:#15693a}.ai-analysis-card-head strong,.ai-analysis-step strong{color:#163148;display:block;font-size:12px;margin-bottom:1px}.ai-analysis-card-head span,.ai-analysis-layer-item span,.ai-analysis-layer-tools span,.ai-analysis-step span,.ai-analysis-toggle span{color:#5e7388;display:block;font-size:12px;line-height:1.45}.ai-analysis-step span{display:none}.ai-analysis-note{color:#4f6478;font-size:11px;line-height:1.35;margin:0}.ai-analysis-note--subtle{color:#6d8094}.ai-analysis-actions,.ai-analysis-context-summary,.ai-analysis-prompt-ideas,.ai-analysis-status{display:flex;flex-wrap:wrap;gap:6px}.ai-analysis-pill{align-items:center;background:#e8eef5;border-radius:999px;color:#36516a;display:inline-flex;font-size:10px;font-weight:600;gap:5px;padding:2px 6px}.ai-analysis-pill--ready{background:#e8f5ed;color:#1d6a3a}.ai-analysis-pill--warn{background:#fff3e0;color:#9a5a00}.ai-analysis-card{background:#fbfdff;border:1px solid #d6e0ea;border-radius:8px;display:flex;flex-direction:column;gap:6px;padding:6px}.ai-analysis-card-head{display:flex;flex-direction:column;gap:1px}.ai-analysis-btn{background:#165391;border:1px solid #16355e;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;font-weight:600;line-height:1.2;padding:4px 7px}.ai-analysis-btn:hover:not(:disabled){background:#0f3f72}.ai-analysis-btn:disabled{cursor:not-allowed;opacity:.55}.ai-analysis-btn--secondary{background:#f3f7fb;color:#16355e}.ai-analysis-btn--secondary:hover:not(:disabled){background:#e0eaf5}.ai-analysis-btn--ghost{background:#fff;border-color:#b7c8d8;color:#35526c}.ai-analysis-btn--ghost:hover:not(:disabled){background:#f2f7fb}.ai-analysis-layer-item,.ai-analysis-toggle{grid-gap:6px;align-items:start;background:#fff;border:1px solid #dbe6ef;border-radius:7px;display:grid;gap:6px;grid-template-columns:14px 1fr;padding:4px 6px}.ai-analysis-layer-item input,.ai-analysis-toggle input{margin-top:1px}.ai-analysis-toggle--disabled{opacity:.65}.ai-analysis-layer-tools{align-items:start;display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between}.ai-analysis-layer-tool-actions{display:flex;flex-wrap:wrap;gap:4px}.ai-analysis-layer-list{grid-gap:4px;display:grid;gap:4px;max-height:118px;overflow-y:auto;padding-right:2px}.ai-analysis-layer-item--active{background:#eef5ff;border-color:#a5c6ea}.ai-analysis-layer-empty{background:#f8fafc;border:1px dashed #cfdae5;border-radius:6px;color:#6d8094;font-size:11px;line-height:1.35;padding:8px}.ai-analysis-mode-switch{display:inline-flex;flex-wrap:wrap;gap:4px}.ai-analysis-chip,.ai-analysis-mode-btn{background:#fff;border:1px solid #bfd0e2;border-radius:999px;color:#24415f;cursor:pointer;font-size:11px;font-weight:600;line-height:1.2;padding:4px 7px}.ai-analysis-chip:hover,.ai-analysis-mode-btn--active{background:#e8f1ff;border-color:#1e5ea2}.ai-analysis-error{background:#fde8e8;border-radius:5px;color:#b91c1c;font-size:11px;line-height:1.35;padding:6px 8px}.ai-analysis-preview{background:#f8fafc;border:1px solid #d6e0ea;border-radius:6px;overflow:hidden}.ai-analysis-preview img{display:block;width:100%}.ai-analysis-preview-label{background:#fff;border-top:1px solid #d6e0ea;color:#50667a;font-size:11px;padding:5px 7px}.ai-analysis-history{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;padding-right:2px}.ai-analysis-history-empty{background:#f8fafc;border:1px dashed #cfdae5;border-radius:6px;color:#6d8094;font-size:10px;line-height:1.25;padding:6px}.ai-analysis-message{display:flex;flex-direction:column;gap:3px}.ai-analysis-message-head{align-items:baseline;display:flex;gap:8px;justify-content:space-between}.ai-analysis-message-role{color:#556b81;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ai-analysis-message-time{color:#8395a7;font-size:10px}.ai-analysis-bubble{background:#f7fafc;border:1px solid #d7e1eb;border-radius:7px;color:#163148;font-size:11px;line-height:1.35;padding:8px;white-space:pre-wrap}.ai-analysis-message--user .ai-analysis-bubble{background:#e8f1ff;border-color:#bfd4f5}.ai-analysis-message-meta{color:#667d93;font-size:10px}.ai-analysis-compose{display:flex;flex-direction:column;gap:4px}.ai-analysis-compose textarea{border:1px solid #c3cdda;border-radius:6px;box-sizing:border-box;font:inherit;font-size:11px;line-height:1.3;min-height:64px;padding:6px;resize:vertical;width:100%}.ai-analysis-compose textarea:focus{border-color:#165391;box-shadow:0 0 0 3px #1653911f;outline:none}.ai-analysis-compose-foot{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between}.ai-analysis-compose-hint{color:#59708a;font-size:10px}.ai-analysis-compose-main{display:flex;flex-wrap:wrap;gap:4px}.ai-analysis-context-summary{flex-wrap:nowrap;gap:4px;overflow-x:auto;padding-bottom:1px}.ai-analysis-context-summary .ai-analysis-pill{flex:0 0 auto}.admin-login-page{align-items:center;background:#0f2035;display:flex;justify-content:center;min-height:100vh}.admin-login-card{background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000047;padding:40px 40px 48px;width:360px}.admin-login-logo{display:block;height:52px;margin:0 auto 16px;width:52px}.admin-login-logo svg{height:100%;width:100%}.admin-login-title{color:#0f2035;font-size:22px;font-weight:700;margin:0 0 12px;text-align:center}.admin-login-hint{color:#5a7288;font-size:13px;margin:0 0 24px;text-align:center}.admin-login-form{display:flex;flex-direction:column;gap:16px}.admin-login-form label{color:#294863;display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:6px}.admin-login-form input{border:1px solid #c3cdda;border-radius:5px;font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s}.admin-login-form input:focus{border-color:#165391}.admin-login-error{background:#fde8e8;border-radius:4px;color:#c0392b;font-size:13px;padding:8px 12px}.admin-login-btn{background:#165391;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;margin-top:4px;padding:11px;transition:background .15s}.admin-login-btn:hover{background:#0f3d6e}.admin-shell{background:#f5f5f7;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;height:100vh;overflow:hidden}.admin-header{background:#1c1c1e;flex-shrink:0;gap:0;height:56px;padding:0 28px}.admin-header,.admin-header-brand{align-items:center;color:#fff;display:flex}.admin-header-brand{background:none;border:none;cursor:pointer;gap:10px;padding:0;text-decoration:none}.admin-header-brand:hover .admin-header-title{color:#e07b2c}.admin-brand-icon{align-items:center;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.admin-brand-icon svg{height:100%;width:100%}.admin-header-title{font-size:16px;font-weight:700;letter-spacing:.3px;transition:color .15s}.admin-breadcrumb{align-items:center;display:flex;flex:1 1;gap:8px}.admin-bc-sep{color:#ffffff59;font-size:20px;line-height:1;margin-left:10px}.admin-bc-current{color:#e07b2c;font-size:15px;font-weight:600}.admin-header-user{align-items:center;display:flex;gap:10px;margin-left:auto}.admin-header-email{color:#fffc;font-size:13px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-logout-btn{background:#ffffff1f;border:1px solid #ffffff4d;border-radius:5px;color:#fff;cursor:pointer;font-size:13px;padding:6px 14px;transition:background .15s}.admin-logout-btn:hover{background:#ffffff38}.admin-content{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:960px;overflow-y:auto;padding:32px;width:100%}.admin-dashboard{align-items:center;display:flex;flex-direction:column;padding-top:32px}.admin-dashboard-subtitle{color:#888;font-size:14px;letter-spacing:.2px;margin:0 0 36px}.admin-card-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,160px);justify-content:center}@media (max-width:600px){.admin-card-grid{grid-template-columns:repeat(2,140px)}}.admin-card{align-items:center;background:#fff;border:1px solid #e8eaed;border-radius:12px;box-shadow:0 1px 4px #00000012;cursor:pointer;display:flex;flex-direction:column;gap:14px;justify-content:center;padding:28px 16px 22px;text-decoration:none;transition:box-shadow .18s,transform .15s,border-color .18s}.admin-card:hover{border-color:#e07b2c;box-shadow:0 6px 20px #00000021;transform:translateY(-3px)}.admin-card:active{box-shadow:0 2px 8px #0000001a;transform:translateY(0)}.admin-card-icon{align-items:center;display:flex;height:64px;justify-content:center;width:64px}.admin-card-icon svg{height:100%;width:100%}.admin-card-label{color:#3a3a3a;font-size:13px;font-weight:600;letter-spacing:.2px;text-align:center}.admin-card-desc{color:#aaa;font-size:11px;letter-spacing:.1px;line-height:1.4;margin-top:-6px;text-align:center}.config-tab-title{color:#0f2035;font-size:22px;font-weight:700;margin:0 0 8px}.config-tab-desc{color:#4a6076;font-size:14px;margin:0 0 24px}.config-layers-list{display:flex;flex-direction:column;gap:12px}.config-layer-card{background:#fff;border:1px solid #d0dbe8;border-radius:8px;overflow:hidden}.config-layer-header{align-items:center;cursor:pointer;display:flex;gap:12px;padding:14px 18px;transition:background .12s;-webkit-user-select:none;user-select:none}.config-layer-header:hover{background:#f4f8fc}.config-layer-name{color:#0f2035;display:flex;flex:1 1;flex-direction:column;font-size:14px;font-weight:600;gap:2px}.config-layer-internal-name{color:#8a9bb0;font-family:Courier New,monospace;font-size:11px;font-weight:400}.config-layer-meta{color:#60758f;font-size:12px;white-space:nowrap}.config-dirty-badge{background:#fff3cd;border:1px solid #ffd966;border-radius:3px;color:#856404;font-size:11px;padding:2px 7px}.config-fields-loading{color:#60758f;font-size:13px;padding:12px 18px}.config-fields{border-top:1px solid #e3eaf2;padding:16px 18px}.config-fields-grid{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:14px}.config-field-label{align-items:center;color:#294863;cursor:pointer;display:flex;font-size:13px;gap:6px}.config-section-title{color:#7a94ab;font-size:11px;font-weight:700;letter-spacing:.6px;margin:16px 0 8px;text-transform:uppercase}.config-color-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:6px}.config-color-label,.config-label-select-label{align-items:center;color:#294863;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px}.config-label-select{background:#fff;border:1px solid #c3cdda;border-radius:4px;color:#0f2035;cursor:pointer;font-size:13px;min-width:180px;padding:5px 10px}.config-label-select:focus{border-color:#165391;outline:none}.config-color-input{background:none;border:1px solid #c3cdda;border-radius:4px;cursor:pointer;height:28px;padding:2px;width:38px}.config-color-input:focus{border-color:#165391;outline:none}.config-clear-color-btn{background:none;border:1px solid #c3cdda;border-radius:4px;color:#60758f;cursor:pointer;font-size:12px;padding:4px 10px;transition:background .12s,color .12s}.config-clear-color-btn:hover{background:#fde8e8;border-color:#f5a5a5;color:#c0392b}.config-color-hint{color:#8fa5b8;font-size:12px;font-style:italic}.config-layer-header-right{align-items:center;display:flex;gap:8px}.config-color-swatch{border:1px solid #0003;border-radius:3px;display:inline-block;flex-shrink:0;height:14px;width:14px}.config-color-inline{align-items:center;display:flex;gap:6px}.config-font-select{background:#fff;border:1px solid #c3cdda;border-radius:4px;color:#0f2035;cursor:pointer;font-size:13px;min-width:160px;padding:5px 8px}.config-font-select:focus{border-color:#165391;outline:none}.config-size-select{background:#fff;border:1px solid #c3cdda;border-radius:4px;color:#0f2035;cursor:pointer;font-size:13px;padding:5px 8px;width:70px}.config-size-select:focus{border-color:#165391;outline:none}.config-zoom-input{border:1px solid #c3cdda;border-radius:4px;font-size:13px;margin-left:6px;padding:5px 8px;width:60px}.config-zoom-input:focus{border-color:#165391;outline:none}.config-fields-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.config-field-row{align-items:center;display:flex;flex-wrap:nowrap;gap:12px}.config-field-row>.config-field-label{flex:0 0 160px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-field-alias-input{border:1px solid #c8d6e5;border-radius:4px;color:#294863;flex:1 1;font-size:12px;min-width:0;padding:3px 8px}.config-field-alias-input:focus{border-color:#165391;outline:none}.config-field-alias-input::placeholder{color:#a0b4c4;font-style:italic}.config-field-header{border-bottom:1px solid #d0dbe8;margin-bottom:4px;padding-bottom:4px}.config-field-attr-col{flex:0 0 52px;min-width:52px}.config-field-order-col{display:flex;flex:0 0 52px;gap:2px}.config-order-btn{background:#eef3f8;border:1px solid #c8d6e5;border-radius:3px;color:#294863;cursor:pointer;font-size:11px;line-height:1.4;padding:1px 5px}.config-order-btn:disabled{cursor:default;opacity:.35}.config-order-btn:not(:disabled):hover{background:#d4e4f4}.config-display-name-input{border:1px solid #c8d6e5;border-radius:4px;font-size:13px;max-width:360px;padding:5px 8px;width:100%}.config-display-name-input:focus{border-color:#165391;outline:none}.config-font-preview{background:#f4f8fc;border:1px solid #d0dbe8;border-radius:4px;display:inline-block;font-weight:700;margin:6px 0 10px;padding:4px 10px}.config-field-actions{align-items:center;display:flex;gap:12px}.config-save-btn{background:#165391;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 20px;transition:background .15s}.config-save-btn:disabled{background:#9ab0c8;cursor:not-allowed}.config-save-btn:not(:disabled):hover{background:#0f3d6e}.config-status-ok{color:#1a7f37;font-size:13px}.config-status-err{color:#c0392b;font-size:13px}.admin-loading{color:#60758f;font-size:14px;padding:32px}.admin-error{align-items:center;background:#fde8e8;border-radius:6px;color:#c0392b;display:flex;font-size:14px;gap:12px;padding:16px}.admin-noaccess-card{background:#fff;border:1px solid #d7e3ef;border-radius:12px;box-shadow:0 6px 18px #0f203514;margin:48px auto 0;max-width:560px;padding:28px 30px}.admin-noaccess-title{color:#0f2035;font-size:22px;margin:0 0 10px}.admin-noaccess-text{color:#5a7288;font-size:14px;line-height:1.6;margin:0 0 10px}.symbol-picker{position:relative;width:100%}.symbol-picker-toggle{align-items:center;background:#f4f8fc;border:1px solid #c3cdda;border-radius:5px;box-sizing:border-box;color:#294863;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 12px;transition:border-color .12s,background .12s;width:100%}.symbol-picker-toggle:hover{background:#eaf2fb;border-color:#165391}.symbol-picker-toggle img{flex-shrink:0}.symbol-picker-panel{background:#fff;border:1px solid #d0dbe8;border-radius:6px;box-shadow:0 6px 20px #0000001f;left:0;max-height:480px;min-width:260px;overflow-y:auto;padding:10px 12px;position:absolute;right:0;top:calc(100% + 4px);z-index:500}.symbol-picker-category{color:#8fa5b8;font-size:11px;font-weight:700;letter-spacing:.6px;margin:8px 0 4px;text-transform:uppercase}.symbol-picker-category:first-child{margin-top:0}.symbol-picker-grid{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:4px}.symbol-picker-grid-lines{flex-direction:column;gap:4px}.symbol-picker-item{align-items:center;background:#f9fbfd;border:1px solid #c8d6e5;border-radius:4px;cursor:pointer;display:flex;height:40px;justify-content:center;position:relative;transition:border-color .12s,background .12s;width:40px}.symbol-picker-item-line{box-sizing:border-box;gap:10px;height:32px;justify-content:flex-start;padding:0 10px;width:100%}.symbol-picker-line-label{color:#444;font-size:12px;white-space:nowrap}.symbol-picker-item:hover{background:#eaf2fb;border-color:#165391}.symbol-picker-item.selected{background:#e8f0fe;border:2px solid #165391}.symbol-picker-none{align-items:center;background:#f9fbfd;border:1px dashed #c8d6e5;border-radius:4px;box-sizing:border-box;color:#8fa5b8;cursor:pointer;display:flex;font-size:11px;font-style:italic;height:28px;justify-content:center;margin-bottom:8px;transition:border-color .12s,background .12s;width:100%}.symbol-picker-none:hover{background:#fff5f5;border-color:#c0392b;color:#c0392b}.symbol-picker-check{color:#165391;font-size:11px;font-weight:700;line-height:1;position:absolute;right:2px;top:1px}.symbol-swatch{flex-shrink:0;height:18px;vertical-align:middle;width:18px}.my-apps-tab{padding-top:4px}.my-apps-grid{display:flex;flex-wrap:wrap;gap:20px;margin-top:8px}.my-app-card{align-items:center;background:#fff;border:1px solid #d0dbe8;border-radius:10px;color:inherit;display:flex;flex-direction:column;gap:10px;padding:28px 24px;text-decoration:none;transition:box-shadow .15s,border-color .15s;width:220px}.my-app-card:hover{border-color:#165391;box-shadow:0 4px 16px #0000001f}.my-app-icon{font-size:40px}.my-app-name{color:#0f2035;font-size:16px;font-weight:700}.my-app-desc{color:#60758f;font-size:12px;line-height:1.5;text-align:center}.enums-tab{padding:0 0 40px}.enums-header-bar{border-bottom:1px solid #e2e8f0;margin-bottom:12px;padding:18px 24px 10px}.enums-title{color:#0f2035;font-size:17px;font-weight:700;margin:0 0 4px}.enums-subtitle{color:#60758f;font-size:12px;margin:0}.enums-empty{color:#60758f;font-size:14px;line-height:1.7;padding:40px 24px}.enums-empty strong{color:#0f2035}.enums-layers-list{display:flex;flex-direction:column;gap:0}.enums-layer-card{border-bottom:1px solid #e2e8f0}.enums-layer-header{align-items:center;background:#f8fafc;cursor:pointer;display:flex;gap:8px;padding:10px 24px;transition:background .12s;-webkit-user-select:none;user-select:none}.enums-layer-header:hover{background:#eef4ff}.enums-layer-toggle{color:#60758f;flex-shrink:0;font-size:13px;width:14px}.enums-layer-name{color:#0f2035;flex:1 1;font-size:14px;font-weight:600}.enums-layer-meta{align-items:center;color:#60758f;display:flex;font-size:12px;gap:6px}.enums-defined-badge{background:#dcfce7;border-radius:10px;color:#166534;font-size:11px;font-weight:600;padding:1px 6px}.enums-group-tag{background:#1a73e8;border-radius:10px;color:#fff;font-size:11px;padding:1px 8px;white-space:nowrap}.enums-layer-body{background:#fff;padding:12px 24px 16px 36px}.enums-field-row{align-items:flex-start;border-bottom:1px solid #f1f5f9;display:flex;gap:16px;padding:8px 0}.enums-field-row:last-of-type{border-bottom:none}.enums-field-label{flex-shrink:0;padding-top:6px;width:180px}.enums-field-name{color:#1e293b;display:block;font-size:13px;font-weight:600}.enums-field-raw{color:#94a3b8;display:block;font-family:monospace;font-size:11px}.enums-free-text-hint{background:#f1f5f9;border-radius:8px;color:#94a3b8;display:inline-block;font-size:11px;margin-top:3px;padding:1px 6px}.enums-field-values{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:6px}.enums-chip{align-items:center;background:#e8f0fe;border:1px solid #b3c7f7;border-radius:14px;display:inline-flex;font-size:12px;gap:2px;padding:2px 4px 2px 6px}.enums-chip-label{color:#1a3d8f;font-weight:500;padding:0 4px}.enums-chip-move{background:none;border:none;color:#60758f;cursor:pointer;font-size:11px;line-height:1;padding:0 2px}.enums-chip-move:disabled{cursor:default;opacity:.25}.enums-chip-remove{background:none;border:none;border-radius:50%;color:#6b7280;cursor:pointer;font-size:14px;font-weight:700;line-height:1;padding:0 3px}.enums-chip-remove:hover{background:#fecaca;color:#b91c1c}.enums-add-row{align-items:center;display:flex;gap:6px}.enums-add-input{border:1px solid #cbd5e1;border-radius:4px;font-size:12px;height:28px;outline:none;padding:0 8px;width:140px}.enums-add-input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e826}.enums-add-btn{background:#1a73e8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;height:28px;padding:0 10px;white-space:nowrap}.enums-add-btn:hover{background:#1558b0}.enums-save-row{align-items:center;border-top:1px solid #f1f5f9;display:flex;gap:10px;margin-top:12px;padding-top:10px}.enums-save-btn{background:#1a73e8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;height:30px;padding:0 18px}.enums-save-btn:hover:not(:disabled){background:#1558b0}.enums-save-btn:disabled{cursor:default;opacity:.6}.enums-status-saved{color:#166534;font-size:12px;font-weight:600}.enums-status-error{color:#b91c1c;font-size:12px;font-weight:600}.enums-loading{color:#60758f;font-size:13px;padding:24px}.enums-create-card{background:linear-gradient(180deg,#fbfdff,#f5f8fc);border:1px solid #dbe5ef;border-radius:10px;margin:0 24px 14px;padding:16px 18px}.enums-create-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:minmax(240px,320px) minmax(260px,1fr)}.enums-create-field{display:flex;flex-direction:column;gap:6px}.enums-create-field--wide{min-width:0}.enums-create-label{color:#1e293b;font-size:12px;font-weight:600}.enums-create-input,.enums-create-textarea{background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-sizing:border-box;font-size:13px;outline:none;padding:8px 10px;width:100%}.enums-create-input{height:36px}.enums-create-textarea{font-family:inherit;min-height:78px;resize:vertical}.enums-create-input:focus,.enums-create-textarea:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e826}.enums-create-footer{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:12px}.enums-create-preview{color:#64748b;font-size:12px}.enums-create-preview code{color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.enums-create-btn{background:#1a73e8;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;height:34px;padding:0 14px;white-space:nowrap}.enums-create-btn:hover:not(:disabled){background:#1558b0}.enums-create-btn:disabled{cursor:default;opacity:.55}.enums-top-status{padding:0 24px 10px}.enums-search-row{padding:10px 24px 6px}.enums-search{border:1px solid #cbd5e1;border-radius:6px;box-sizing:border-box;font-size:13px;height:32px;max-width:420px;outline:none;padding:0 10px;width:100%}.enums-search:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e826}.enums-layer-raw{color:#94a3b8;flex:1 1;font-family:monospace;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enums-count-badge{background:#e0f2fe;border-radius:10px;color:#075985;flex-shrink:0;font-size:11px;font-weight:600;padding:1px 7px;white-space:nowrap}.enums-values-grid{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;padding:6px 0 10px}.enums-empty-values{color:#94a3b8;font-size:12px;font-style:italic}.enums-add-btn:disabled{cursor:default;opacity:.5}.enums-table-actions{align-items:center;border-top:1px solid #edf2f7;display:flex;gap:10px;margin-top:6px;padding-top:10px}.enums-delete-table-btn{background:#fff5f5;border:1px solid #fecaca;border-radius:6px;color:#b91c1c;cursor:pointer;font-size:12px;font-weight:600;height:30px;padding:0 10px}.enums-delete-table-btn:hover:not(:disabled){background:#fee2e2}.enums-delete-table-btn:disabled{cursor:default;opacity:.55}@media (max-width:900px){.enums-create-grid{grid-template-columns:1fr}.enums-create-footer{align-items:stretch;flex-direction:column}.enums-create-btn{width:100%}}.config-enum-mapping-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:10px;padding:5px 0}.config-enum-mapping-row:last-of-type{border-bottom:none}.config-enum-mapping-label{color:#1e293b;flex-shrink:0;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:180px}.config-enum-mapping-select{background:#fff;border:1px solid #cbd5e1;border-radius:4px;flex:1 1;font-size:12px;height:28px;max-width:340px;outline:none;padding:0 6px}.config-enum-mapping-select:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e826}.cfg-ss{flex:1 1;max-width:340px;position:relative}.cfg-ss-trigger{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:4px;cursor:pointer;display:flex;font-size:12px;gap:6px;height:30px;justify-content:space-between;outline:none;padding:0 8px;text-align:left;transition:border-color .12s,box-shadow .12s;width:100%}.cfg-ss-trigger:focus,.cfg-ss-trigger:hover{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.cfg-ss-value{color:#1e293b;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cfg-ss-placeholder{color:#94a3b8;flex:1 1;font-style:italic}.cfg-ss-arrow{color:#64748b;flex-shrink:0;font-size:11px}.cfg-ss-dropdown{background:#fff;border:1px solid #c3cdda;border-radius:5px;box-shadow:0 6px 20px #00000021;display:flex;flex-direction:column;left:0;position:absolute;right:0;top:calc(100% + 3px);z-index:9999}.cfg-ss-filter{background:#f8fafc;border:none;border-bottom:1px solid #e3eaf2;border-radius:5px 5px 0 0;box-sizing:border-box;font-size:12px;height:32px;outline:none;padding:0 10px;width:100%}.cfg-ss-filter:focus{background:#fff}.cfg-ss-options{max-height:200px;overflow-y:auto}.cfg-ss-option{color:#1e293b;cursor:pointer;font-size:12px;overflow:hidden;padding:6px 10px;text-overflow:ellipsis;white-space:nowrap}.cfg-ss-option:hover{background:#f0f6ff}.cfg-ss-option.selected{background:#e8f0fe;color:#165391;font-weight:600}.cfg-ss-none{border-bottom:1px solid #f1f5f9;color:#64748b}.cfg-ss-no-results{color:#94a3b8;font-size:12px;font-style:italic;padding:8px 10px}.admin-content.config-mode{display:flex;flex-direction:column;margin:0;max-width:none;overflow:hidden;padding:0}.admin-content.datamodel-mode{margin:0;max-width:none;padding:18px 20px}.config-split{display:flex;flex:1 1;min-height:0;overflow:hidden}.config-sidebar{background:#fff;border-right:1px solid #d0dbe8;display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;width:260px}.config-sidebar-hdr{color:#0f2035;font-size:13px;font-weight:700;letter-spacing:.2px;padding:14px 16px 10px}.config-sidebar-hdr,.config-sidebar-search{border-bottom:1px solid #e3eaf2;flex-shrink:0}.config-sidebar-search{padding:8px 10px}.config-sidebar-search input{border:1px solid #c3cdda;border-radius:5px;box-sizing:border-box;color:#294863;font-size:12px;height:30px;outline:none;padding:0 8px;transition:border-color .12s;width:100%}.config-sidebar-search input:focus{border-color:#165391}.config-sidebar-list{flex:1 1;overflow-y:auto}.config-sidebar-item{border-bottom:1px solid #f0f4f8;border-left:3px solid #0000;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:9px 14px 9px 12px;position:relative;transition:background .1s}.config-sidebar-item:hover{background:#f4f8fc}.config-sidebar-item.active{background:#eef4ff;border-left-color:#165391}.config-sidebar-item-name{color:#0f2035;font-size:13px;font-weight:600;padding-right:16px}.config-sidebar-item-name,.config-sidebar-item-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-sidebar-item-sub{color:#94a3b8;font-family:Courier New,monospace;font-size:11px}.config-sidebar-dirty-dot{background:#ff9500;border-radius:50%;flex-shrink:0;height:7px;position:absolute;right:10px;top:50%;transform:translateY(-50%);width:7px}.config-sidebar-empty{color:#8fa5b8;font-size:12px;font-style:italic;padding:20px 14px}.config-main{background:#f8fafc;display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.config-main-empty{align-items:center;color:#8fa5b8;display:flex;flex:1 1;font-size:14px;justify-content:center}.config-main-header{align-items:center;background:#fff;border-bottom:1px solid #d0dbe8;display:flex;flex-shrink:0;gap:10px;padding:12px 20px}.config-main-header-left{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.config-main-layer-name{color:#0f2035;font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-main-layer-sub{color:#94a3b8;font-family:Courier New,monospace;font-size:11px}.config-main-header-swatches{align-items:center;display:flex;flex-shrink:0;gap:6px}.config-inner-tabs{background:#fff;border-bottom:1px solid #d0dbe8;display:flex;flex-shrink:0;gap:0;overflow-x:auto;padding:0 16px}.config-inner-tabs::-webkit-scrollbar{height:3px}.config-inner-tab{align-items:center;background:none;border:none;border-bottom:3px solid #0000;color:#60758f;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:4px;padding:10px 12px;position:relative;transition:color .12s,border-color .12s;white-space:nowrap}.config-inner-tab:hover{color:#0f2035}.config-inner-tab.active{border-bottom-color:#165391;color:#165391}.config-tab-dot{background:#ff9500;border-radius:50%;display:inline-block;flex-shrink:0;height:6px;width:6px}.config-tab-bar{align-items:center;background:#fff;border-bottom:1px solid #e3eaf2;display:flex;flex-shrink:0;justify-content:space-between;padding:8px 20px}.config-tab-bar-title{color:#7a94ab;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.config-tab-bar-actions{align-items:center;display:flex;gap:8px}.config-apply-btn{background:#165391;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:6px 18px;transition:background .15s}.config-apply-btn:disabled{background:#9ab0c8;cursor:not-allowed}.config-apply-btn:not(:disabled):hover{background:#0f3d6e}.config-cancel-btn{background:#fff;border:1px solid #c3cdda;border-radius:5px;color:#60758f;cursor:pointer;font-size:13px;padding:5px 14px;transition:background .15s,color .15s,border-color .15s}.config-cancel-btn:disabled{cursor:not-allowed;opacity:.45}.config-cancel-btn:not(:disabled):hover{background:#fde8e8;border-color:#f5a5a5;color:#c0392b}.config-tab-content{flex:1 1;overflow-y:auto;padding:20px}.roles-tab{padding:8px 0}.roles-header-row{margin-bottom:24px}.roles-title{color:#0f2035;font-size:22px;font-weight:700;margin:0 0 6px}.roles-subtitle{color:#60758f;font-size:14px;line-height:1.5;margin:0}.roles-loading{color:#60758f;font-size:14px;padding:16px 0}.roles-load-err{background:#fde8e8;border:1px solid #f5a5a5;border-radius:6px;color:#c0392b;font-size:13px;margin-bottom:16px;padding:10px 14px}.roles-table-wrap{overflow-x:auto}.roles-table{background:#fff;border:1px solid #d0dbe8;border-collapse:collapse;border-radius:8px;box-shadow:0 1px 4px #0000000f;font-size:13px;overflow:hidden;width:100%}.roles-th{background:#f0f5fb;border-bottom:2px solid #d0dbe8;color:#27435f;font-size:12px;font-weight:600;letter-spacing:.04em;padding:10px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}.roles-th-name{min-width:180px}.roles-th-perm{min-width:100px;text-align:center}.roles-th-actions{min-width:160px}.roles-row{border-bottom:1px solid #e8eef5;transition:background .1s}.roles-row:last-child{border-bottom:none}.roles-row:hover{background:#f7fafd}.roles-new-row{background:#f0f7ff}.roles-new-row:hover{background:#e8f2ff}.roles-cell{padding:8px 12px;vertical-align:middle}.roles-name-cell{min-width:180px}.roles-perm-cell{text-align:center}.roles-actions-cell{align-items:center;display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px}.roles-name-input{background:#fff;border:1px solid #c3cdda;border-radius:5px;box-sizing:border-box;color:#0f2035;font-size:13px;padding:5px 8px;transition:border-color .15s;width:100%}.roles-name-input:focus{border-color:#165391;box-shadow:0 0 0 2px #1653911f;outline:none}.roles-name-input-new{background:#fff}.roles-inline-err{color:#c0392b;font-size:11px;margin-top:3px}.roles-checkbox{accent-color:#165391;cursor:pointer;height:16px;width:16px}.roles-save-btn{background:#165391;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px;transition:background .15s,opacity .15s;white-space:nowrap}.roles-save-btn:hover:not(:disabled){background:#0e3a6a}.roles-save-btn:disabled{cursor:not-allowed;opacity:.45}.roles-delete-btn{background:#fff;border:1px solid #f5a5a5;border-radius:5px;color:#c0392b;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px;transition:background .15s,border-color .15s;white-space:nowrap}.roles-delete-btn:hover{background:#fde8e8;border-color:#c0392b}.roles-cancel-btn{background:#fff;border:1px solid #c3cdda;border-radius:5px;color:#60758f;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px;white-space:nowrap}.roles-cancel-btn:hover{background:#f0f5fb}.roles-status-ok{color:#1a7f37}.roles-status-err,.roles-status-ok{font-size:12px;font-weight:600;white-space:nowrap}.roles-status-err{color:#c0392b;cursor:help}.roles-empty-cell{color:#89a;font-size:14px;font-style:italic;padding:24px;text-align:center}.roles-add-btn{background:#f0f5fb;border:1px dashed #9ab0c8;border-radius:6px;color:#165391;cursor:pointer;font-size:13px;font-weight:600;margin-top:14px;padding:8px 18px;transition:background .15s,border-color .15s}.roles-add-btn:hover{background:#dce9f7;border-color:#165391}.admin-login-divider{align-items:center;color:#a0b4c4;display:flex;font-size:12px;gap:12px;margin:20px 0 16px}.admin-login-divider:after,.admin-login-divider:before{background:#d8e4ed;content:"";flex:1 1;height:1px}.admin-login-google{display:flex;justify-content:center}.users-tab{padding:8px 0}.users-header-row{margin-bottom:24px}.users-title{color:#0f2035;font-size:22px;font-weight:700;margin:0 0 6px}.users-subtitle{color:#60758f;font-size:14px;line-height:1.5;margin:0}.users-loading{color:#60758f;font-size:14px;padding:16px 0}.users-load-err{background:#fde8e8;border:1px solid #f5a5a5;border-radius:6px;color:#c0392b;font-size:13px;margin-bottom:16px;padding:10px 14px}.users-table-wrap{overflow-x:auto}.users-table{background:#fff;border:1px solid #d0dbe8;border-collapse:collapse;border-radius:8px;box-shadow:0 1px 4px #0000000f;font-size:13px;overflow:hidden;width:100%}.users-th{background:#f0f5fb;border-bottom:2px solid #d0dbe8;color:#27435f;font-size:12px;font-weight:600;letter-spacing:.04em;padding:10px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}.users-row{border-bottom:1px solid #e8eef5;transition:background .1s}.users-row:last-child{border-bottom:none}.users-row:hover{background:#f7fafd}.users-new-row{background:#f0f7ff}.users-editing-row{background:#fffaf0}.users-cell{color:#1e293b;font-size:13px;padding:8px 12px;vertical-align:middle}.users-actions-cell{align-items:center;display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px}.users-empty-val{color:#94a3b8;font-style:italic}.users-role-badge{background:#e8f0fe;color:#1a3d8f}.users-role-badge,.users-status-badge{border-radius:10px;display:inline-block;font-size:11px;font-weight:600;padding:2px 8px}.users-status-badge.active{background:#dcfce7;color:#166534}.users-status-badge.inactive{background:#fee2e2;color:#991b1b}.users-input{background:#fff;border:1px solid #c3cdda;border-radius:5px;box-sizing:border-box;color:#0f2035;font-size:13px;padding:5px 8px;transition:border-color .15s;width:100%}.users-input:focus{border-color:#165391;box-shadow:0 0 0 2px #1653911f;outline:none}.users-pw-input{max-width:180px}.users-select{background:#fff;border:1px solid #c3cdda;border-radius:5px;color:#0f2035;cursor:pointer;font-size:13px;padding:5px 8px;width:100%}.users-select:focus{border-color:#165391;outline:none}.users-active-label{align-items:center;color:#294863;cursor:pointer;display:flex;font-size:13px;gap:6px}.users-inline-err{color:#c0392b;font-size:11px;margin-top:3px}.users-edit-btn{background:#f0f5fb;border:1px solid #c3cdda;border-radius:5px;color:#165391;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px}.users-edit-btn:hover{background:#dce9f7}.users-save-btn{background:#165391;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px}.users-save-btn:hover:not(:disabled){background:#0e3a6a}.users-save-btn:disabled{cursor:not-allowed;opacity:.45}.users-cancel-btn{background:#fff;border:1px solid #c3cdda;border-radius:5px;color:#60758f;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px}.users-cancel-btn:hover{background:#f0f5fb}.users-delete-btn{background:#fff;border:1px solid #f5a5a5;border-radius:5px;color:#c0392b;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px}.users-delete-btn:hover{background:#fde8e8}.users-status-ok{color:#1a7f37;font-size:12px;font-weight:600}.users-status-err{color:#c0392b;cursor:help;font-size:12px;font-weight:600}.users-empty-cell{color:#89a;font-size:14px;font-style:italic;padding:24px;text-align:center}.users-add-btn{background:#f0f5fb;border:1px dashed #9ab0c8;border-radius:6px;color:#165391;cursor:pointer;font-size:13px;font-weight:600;margin-top:14px;padding:8px 18px}.users-add-btn:hover{background:#dce9f7;border-color:#165391}.dm-tab{flex-direction:column;height:100%}.dm-split,.dm-tab{display:flex;overflow:hidden}.dm-split{flex:1 1;min-height:0}.dm-list-panel{background:#f7fafd;border-right:1px solid #d0dce8;display:flex;flex-direction:column;flex-shrink:0;min-width:220px;overflow-y:auto;width:290px}.dm-list-header{align-items:center;border-bottom:1px solid #d0dce8;display:flex;flex-shrink:0;justify-content:space-between;padding:16px 16px 10px}.dm-list-title{color:#0f2035;font-size:15px;font-weight:700;margin:0}.dm-new-btn{background:#165391;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 14px}.dm-new-btn:hover{background:#0e3a6a}.dm-list-empty,.dm-load-err,.dm-loading{color:#89a;font-size:13px;font-style:italic;padding:24px 16px}.dm-load-err{color:#c0392b;font-style:normal}.dm-list-table{border-collapse:collapse;font-size:13px;width:100%}.dm-list-th{background:#edf2f8;border-bottom:1px solid #d0dce8;color:#4b6580;font-size:11px;font-weight:600;letter-spacing:.05em;padding:8px 10px;text-transform:uppercase;white-space:nowrap}.dm-list-th-center{text-align:center}.dm-list-row{border-bottom:1px solid #e8eef5;cursor:pointer;transition:background .12s}.dm-list-row:hover{background:#e8f0fb}.dm-list-row-active{background:#dce9f7!important}.dm-list-cell{color:#294863;padding:9px 10px;vertical-align:middle}.dm-list-name{color:#0f2035;font-family:monospace;font-weight:600}.dm-list-center{text-align:center}.dm-list-actions{text-align:right;white-space:nowrap}.dm-list-del-btn{background:#fff;border:1px solid #f5a5a5;border-radius:4px;color:#c0392b;cursor:pointer;font-size:11px;font-weight:600;padding:3px 10px}.dm-list-del-btn:hover:not(:disabled){background:#fde8e8}.dm-list-del-btn:disabled{cursor:not-allowed;opacity:.4}.dm-badge{border-radius:10px;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.dm-badge-draft{background:#e8eef5;color:#5a7288}.dm-badge-deployed{background:#d4edda;color:#155724}.dm-badge-error{background:#f8d7da;color:#721c24}.dm-editor-panel{background:#fff;flex:1 1;min-width:280px;overflow-y:auto}.dm-editor-panel,.dm-erd-panel{display:flex;flex-direction:column}.dm-erd-panel{background:#f8fbff;border-left:1px solid #d0dce8;min-width:300px;overflow:hidden;width:360px}.dm-erd-header{align-items:flex-start;background:#edf4fb;border-bottom:1px solid #dbe6f2;display:flex;gap:10px;justify-content:space-between;padding:14px 14px 10px}.dm-erd-title{color:#12395a;font-size:14px;font-weight:700;margin:0}.dm-erd-subtitle{color:#58758f;font-size:12px;line-height:1.4;margin-top:4px}.dm-erd-refresh-btn{background:#fff;border:1px solid #b7cde3;border-radius:6px;color:#1c4f7a;cursor:pointer;font-size:12px;font-weight:600;padding:5px 10px;white-space:nowrap}.dm-erd-refresh-btn:hover:not(:disabled){background:#e8f1fa}.dm-erd-refresh-btn:disabled{cursor:not-allowed;opacity:.5}.dm-erd-toggle{align-items:center;background:#f4f9ff;border-bottom:1px solid #e1ecf7;color:#3d5f7d;display:flex;font-size:12px;gap:8px;padding:10px 14px}.dm-erd-content{flex:1 1;min-height:0;overflow-y:auto;padding:10px 12px 12px}.dm-erd-list{display:flex;flex-direction:column;gap:8px}.dm-erd-item{background:#fff;border:1px solid #d7e4f2;border-radius:8px;box-shadow:0 1px 2px #0000000a;padding:8px 9px}.dm-erd-main-row{align-items:center;display:flex;flex-wrap:wrap;gap:7px}.dm-erd-table{background:#f1f6fc;border:1px solid #d6e3f1;border-radius:4px;color:#11395a;font-family:Consolas,Courier New,monospace;font-size:11px;padding:2px 5px}.dm-erd-card{border-radius:10px;font-size:11px;font-weight:700;letter-spacing:.03em;padding:2px 7px;text-transform:uppercase}.dm-erd-card-11{background:#d4edda;color:#155724}.dm-erd-card-n1{background:#e4ecff;color:#234a91}.dm-erd-card-1n{background:#e8f4fd;color:#1a5276}.dm-erd-card-nm{background:#fce8f1;color:#8e2a57}.dm-erd-meta-row{color:#4a6783;display:flex;flex-direction:column;font-size:11px;gap:3px;margin-top:6px}.dm-erd-meta-row code{color:#143f64;font-family:Consolas,Courier New,monospace}.dm-erd-empty{background:#f5f9ff;border:1px dashed #c5d8ea;border-radius:8px;color:#5e7a95;font-size:12px;padding:14px}.dm-erd-error{background:#fdecec;border:1px solid #f3c3c3;border-radius:8px;color:#b54444;font-size:12px;padding:12px}@media (max-width:1180px){.dm-split{flex-direction:column}.dm-list-panel{border-bottom:1px solid #d0dce8;border-right:none;max-height:240px;width:100%}.dm-editor-panel{min-height:320px}.dm-erd-panel{border-left:none;border-top:1px solid #d0dce8;max-height:320px;min-width:0;width:100%}}.dm-editor-placeholder{align-items:center;color:#89a;display:flex;font-size:14px;font-style:italic;height:100%;justify-content:center;padding:40px;text-align:center}.dm-editor{display:flex;flex-direction:column;gap:0;padding:20px 24px}.dm-editor-header{align-items:center;border-bottom:1px solid #e8eef5;display:flex;gap:12px;margin-bottom:16px;padding-bottom:12px}.dm-editor-title{color:#0f2035;font-size:16px;font-weight:700;margin:0}.dm-readonly-banner{background:#fff8e1;border:1px solid #ffe082;border-radius:6px;color:#795548;font-size:13px;margin-bottom:14px;padding:8px 14px}.dm-editor-fields{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.dm-form-row{align-items:center;display:flex;gap:12px}.dm-label{color:#4b6580;flex-shrink:0;font-size:13px;font-weight:600;width:120px}.dm-input{border:1px solid #c3cdda;border-radius:6px;color:#0f2035;flex:1 1;font-size:13px;padding:6px 10px}.dm-input:focus{border-color:#165391;outline:none}.dm-input:disabled,.dm-input[readOnly]{background:#f0f5fb;color:#7a8fa3;cursor:not-allowed}.dm-input-sm{max-width:140px}.dm-select{background:#fff;border:1px solid #c3cdda;border-radius:6px;color:#0f2035;font-size:13px;padding:6px 10px}.dm-select:focus{border-color:#165391;outline:none}.dm-select:disabled{background:#f0f5fb;color:#7a8fa3;cursor:not-allowed}.dm-fields-section{margin-bottom:16px}.dm-fields-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.dm-fields-title{color:#294863;font-size:14px;font-weight:700}.dm-add-field-btn{background:#f0f5fb;border:1px dashed #9ab0c8;border-radius:6px;color:#165391;cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px}.dm-add-field-btn:hover{background:#dce9f7;border-color:#165391}.dm-fields-empty{color:#89a;font-size:13px;font-style:italic;padding:12px 0}.dm-fields-table-wrap{background:#d8e4f0;border:1px solid #cbd9e8;border-radius:6px;max-height:430px;overflow-x:auto;overflow-y:auto}.dm-fields-table{border-collapse:collapse;font-size:12px;table-layout:fixed;width:100%}.dm-field-th{background:#c7d6e5;border-bottom:1px solid #b4c6d9;color:#27435c;font-size:12px;font-weight:700;letter-spacing:.01em;padding:8px 10px;position:sticky;text-align:left;text-transform:none;top:0;white-space:nowrap;z-index:1}.dm-field-row{background:#dce7f2;border-bottom:1px solid #d4deea}.dm-field-row:nth-child(2n){background:#d2deec}.dm-field-cell{border-bottom:1px solid #d4deea;padding:5px 8px;vertical-align:middle}.dm-field-center{text-align:center}.dm-field-input{background:#eef4fa;border:1px solid #b6c7d9;border-radius:5px;box-sizing:border-box;color:#0f2035;font-size:12px;padding:4px 9px;width:100%}.dm-field-input:focus{border-color:#165391;outline:none}.dm-field-input[readOnly]{background:#e8eff7;color:#7a8fa3}.dm-field-name{font-family:monospace}.dm-field-select{background:#eef4fa;border:1px solid #b6c7d9;border-radius:5px;font-size:12px;padding:4px 8px;width:100%}.dm-field-select:disabled{background:#e8eff7;color:#7a8fa3}.dm-field-del-btn{background:#fff;border:1px solid #f5a5a5;border-radius:4px;color:#c0392b;cursor:pointer;font-size:11px;font-weight:700;padding:2px 8px}.dm-field-del-btn:hover{background:#fde8e8}.dm-err{background:#fde8e8;border:1px solid #f5a5a5;border-radius:6px;color:#c0392b;font-size:13px;margin-bottom:12px;padding:8px 12px}.dm-deploy-success{background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;margin-bottom:12px;padding:12px 14px}.dm-deploy-success-title{color:#155724;font-size:13px;font-weight:700;margin-bottom:8px}.dm-sql-preview{background:#f0f5fb;border-radius:4px;color:#2c3e50;font-family:monospace;font-size:11px;margin:0;max-height:200px;overflow-x:auto;overflow-y:auto;padding:10px;white-space:pre}.dm-confirm-bar{align-items:center;background:#fff8e1;border:1px solid #ffe082;border-radius:6px;color:#795548;display:flex;font-size:13px;gap:10px;margin-bottom:12px;padding:10px 14px}.dm-confirm-yes-btn{background:#d32f2f;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:5px 16px}.dm-confirm-yes-btn:hover:not(:disabled){background:#b71c1c}.dm-confirm-yes-btn:disabled{cursor:not-allowed;opacity:.45}.dm-confirm-no-btn{background:#fff;border:1px solid #c3cdda;border-radius:5px;color:#60758f;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px}.dm-confirm-no-btn:hover{background:#f0f5fb}.dm-editor-footer{align-items:center;border-top:1px solid #e8eef5;display:flex;flex-wrap:wrap;gap:10px;padding-top:14px}.dm-save-btn{background:#165391;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 20px}.dm-save-btn:hover:not(:disabled){background:#0e3a6a}.dm-save-btn:disabled{cursor:not-allowed;opacity:.45}.dm-deploy-btn{background:#2e7d32;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 20px}.dm-deploy-btn:hover:not(:disabled){background:#1b5e20}.dm-deploy-btn:disabled{cursor:not-allowed;opacity:.45}.dm-cancel-btn{background:#fff;border:1px solid #c3cdda;border-radius:6px;color:#60758f;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px}.dm-cancel-btn:hover{background:#f0f5fb}.dm-cred-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1200}.dm-cred-modal{background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000038;overflow:hidden;padding:0;width:320px}.dm-cred-title{background:#1a73e8;color:#fff;font-size:14px;font-weight:600;padding:12px 16px}.dm-cred-body{display:flex;flex-direction:column;gap:6px;padding:16px}.dm-cred-label{color:#555;font-size:12px;font-weight:600}.dm-cred-input{border:1px solid #ccc;border-radius:5px;box-sizing:border-box;font-size:13px;margin-bottom:6px;padding:7px 10px;width:100%}.dm-cred-input:focus{border-color:#1a73e8;outline:none}.dm-cred-err{background:#fdecea;border-radius:4px;color:#c62828;font-size:12px;margin-top:2px;padding:6px 8px}.dm-cred-footer{display:flex;gap:8px;justify-content:flex-end;padding:10px 16px 14px}.dm-cred-connect-btn{background:#1a73e8;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 20px}.dm-cred-connect-btn:disabled{cursor:not-allowed;opacity:.6}.dm-cred-connect-btn:hover:not(:disabled){background:#1558b0}.dm-cred-cancel-btn{background:#f5f5f5;border:1px solid #ccc;border-radius:5px;color:#333;cursor:pointer;font-size:13px;padding:8px 16px}.dm-cred-cancel-btn:hover{background:#e8e8e8}.dm-gs-reauth-btn{background:none;border:none;cursor:pointer;font-size:14px;margin-left:auto;opacity:.7;padding:0 4px}.dm-gs-reauth-btn:hover{opacity:1}.dm-gs-section{background:#f0f7ff;border:1px solid #b3d4f5;border-radius:8px;margin:16px 0 4px;padding:14px 16px}.dm-gs-section-title{align-items:center;color:#0e3a6a;display:flex;flex-wrap:wrap;font-size:13px;font-weight:700;gap:10px;margin-bottom:10px}.dm-gs-published-badge{align-items:center;background:#d4edda;border-radius:12px;color:#155724;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:2px 10px}.dm-gs-published-badge code{background:none;font-family:monospace;font-size:11px}.dm-gs-info-row{align-items:center;color:#294863;display:flex;flex-wrap:wrap;font-size:12px;gap:6px;margin-bottom:10px}.dm-gs-info-label{color:#4b6580;font-weight:600}.dm-gs-info-row code{background:#e0eaf5;border-radius:3px;font-family:monospace;font-size:11px;padding:1px 5px}.dm-gs-info-sep{background:#b3cce0;height:14px;margin:0 4px;width:1px}.dm-gs-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.dm-gs-label{color:#4b6580;font-size:12px;font-weight:600;white-space:nowrap}.dm-gs-input{background:#fff;border:1px solid #9ab0c8;border-radius:5px;color:#0f2035;font-size:12px;padding:5px 9px;width:140px}.dm-gs-input:focus{border-color:#165391;outline:none}.dm-gs-select{background:#fff;border:1px solid #9ab0c8;border-radius:5px;color:#0f2035;cursor:pointer;font-size:12px;min-width:140px;padding:5px 8px}.dm-gs-select:focus{border-color:#165391;outline:none}.dm-gs-publish-btn{background:#1565c0;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:6px 18px;white-space:nowrap}.dm-gs-publish-btn:hover:not(:disabled){background:#0d47a1}.dm-gs-publish-btn:disabled{cursor:not-allowed;opacity:.45}.dm-gs-err{background:#fde8e8;border:1px solid #f5a5a5;border-radius:5px;color:#c0392b;font-size:12px;margin-top:8px;padding:6px 10px}.dm-pg-section{background:#eef4fb;border-top:2px solid #b8ccde;box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;max-height:240px;overflow:hidden;width:100%}.dm-pg-header-row{align-items:center;border-bottom:1px solid #cddaeb;display:flex;flex-shrink:0;gap:10px;padding-right:10px}.dm-pg-search{background:#fff;border:1px solid #b8ccde;border-radius:14px;color:#0f2035;flex:0 0 260px;font-size:12px;max-width:260px;outline:none;padding:4px 10px}.dm-pg-search:focus{border-color:#165391}.dm-pg-section-toggle{align-items:center;background:none;border:none;box-sizing:border-box;color:#294863;cursor:pointer;display:flex;flex:1 1 auto;flex-shrink:0;gap:8px;min-width:0;padding:8px 16px;text-align:left}.dm-pg-section-toggle:hover{background:#dce9f7}.dm-pg-toggle-icon{color:#5a7288;flex-shrink:0;font-size:11px;width:12px}.dm-pg-section-title{color:#294863;flex:1 1;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.dm-pg-count{background:#d0dce8;border-radius:10px;color:#89a;font-size:11px;padding:1px 8px;white-space:nowrap}.dm-pg-empty,.dm-pg-err,.dm-pg-loading{color:#89a;font-size:12px;font-style:italic;padding:6px 16px 10px}.dm-pg-err{color:#c0392b;font-style:normal}.dm-pg-table-wrap{flex:1 1;min-height:0;overflow-x:auto;overflow-y:auto}.dm-pg-table{border-collapse:collapse;font-size:12px;table-layout:fixed;width:100%}.dm-pg-th{background:#c8d6e6;border-bottom:1px solid #b3c4d7;color:#27435c;font-size:11px;font-weight:700;letter-spacing:.03em;padding:7px 12px;position:sticky;text-transform:uppercase;top:0;white-space:nowrap;z-index:1}.dm-pg-row{background:#dbe5f1;border-bottom:1px solid #d4deea}.dm-pg-row:nth-child(2n){background:#d2deec}.dm-pg-row:hover{background:#c4d5e8}.dm-pg-cell{color:#21384d;overflow:hidden;padding:7px 12px;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.dm-pg-schema{color:#9ab0c8;font-family:monospace;font-size:11px}.dm-pg-tname{color:#0f2035;font-family:monospace;font-weight:600}.dm-pg-badge-yes{background:#d4edda;color:#155724;font-weight:700}.dm-pg-badge-no,.dm-pg-badge-yes{border-radius:8px;display:inline-block;font-size:11px;padding:1px 6px;white-space:nowrap}.dm-pg-badge-no{background:#e8eef5;color:#5a7288}.dm-pg-row-click{cursor:pointer}.dm-pg-row-click:hover{background:#c4d5e8!important}.dm-pg-row-active{background:#aec5de!important}.dm-pg-row-active .dm-pg-tname{color:#0e3a6a}.dm-import-banner{background:#e8f4fd;border:1px solid #9ec5e8;border-radius:6px;color:#1a5276;font-size:13px;line-height:1.5;margin-bottom:14px;padding:8px 14px}.dm-badge-import{background:#d6eaf8;color:#1a5276}.dm-register-btn{background:#1565c0;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 20px}.dm-register-btn:hover:not(:disabled){background:#0d47a1}.dm-register-btn:disabled{cursor:not-allowed;opacity:.45}.mig-tab{flex-direction:column;padding-bottom:24px}.mig-header,.mig-tab{display:flex;gap:18px}.mig-header{align-items:flex-start;flex-wrap:wrap;justify-content:space-between}.mig-title{color:#0f2035;font-size:24px;font-weight:700;margin:0}.mig-subtitle{color:#60758f;font-size:14px;line-height:1.6;margin:8px 0 0;max-width:820px}.mig-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.mig-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.mig-grid-details{align-items:start}.mig-panel{background:#fff;border:1px solid #d7e3ef;border-radius:12px;box-shadow:0 1px 4px #0f20350d;padding:18px}.mig-panel-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.mig-panel-title{color:#16344f;font-size:15px;font-weight:700;margin:0}.mig-form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.mig-form-row,.mig-run-actions,.mig-upload-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.mig-label{color:#4b6580;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:6px}.mig-label-wide{grid-column:span 2}.mig-check{align-items:center;color:#294863;display:flex;font-size:13px;font-weight:600;gap:8px}.mig-input,.mig-select{background:#fff;border:1px solid #c4d2e0;border-radius:8px;color:#0f2035;font-size:13px;min-width:0;padding:9px 12px}.mig-input:focus,.mig-select:focus{border-color:#165391;box-shadow:0 0 0 3px #1653911f;outline:none}.mig-input:disabled,.mig-select:disabled{background:#eef3f8;color:#8aa0b5}.mig-btn{border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;padding:9px 16px}.mig-btn:disabled{cursor:not-allowed;opacity:.45}.mig-btn-primary{background:#165391;color:#fff}.mig-btn-primary:hover:not(:disabled){background:#0d3f72}.mig-btn-secondary{background:#edf4fb;border:1px solid #c8d8ea;color:#165391}.mig-btn-secondary:hover:not(:disabled){background:#deebf8}.mig-hint{color:#6d8298;font-size:12px;line-height:1.5;margin-top:10px}.mig-error{background:#fdecec;border:1px solid #f3c3c3;border-radius:8px;color:#b54444}.mig-error,.mig-result{font-size:13px;margin-top:12px;padding:10px 12px}.mig-result{border-radius:8px}.mig-result-ok{background:#e8f7e8;border:1px solid #c9e7c9;color:#1f6c2d}.mig-result-warn{background:#fff8e8;border:1px solid #f3ddab;color:#8a5d10}.mig-empty{background:#f8fbff;border:1px dashed #c6d6e7;border-radius:10px;color:#6b8097;font-size:13px;padding:14px}.mig-session-badge{background:#edf4fb;border-radius:999px;color:#165391;display:inline-flex;font-size:12px;font-weight:700;margin-top:12px;padding:5px 10px}.mig-kpi-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.mig-kpi{background:linear-gradient(180deg,#f8fbff,#eef4fb);border:1px solid #d8e4f1;border-radius:10px;display:flex;flex-direction:column;gap:4px;padding:12px}.mig-kpi span{color:#7a8fa3;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.mig-kpi strong{color:#16344f;font-size:14px}.mig-scroll{overflow:auto}.mig-table{border-collapse:collapse;font-size:12px;width:100%}.mig-table th{background:#edf4fb;border-bottom:1px solid #d4e2ef;color:#47637d;padding:10px;position:sticky;text-align:left;top:0;white-space:nowrap}.mig-table td{border-bottom:1px solid #e6edf5;color:#21384d;padding:10px;vertical-align:top}.mig-table tbody tr:nth-child(2n){background:#fbfdff}.mig-map-table td{min-width:120px}.mig-cell-stack{display:flex;flex-direction:column;gap:6px}.mig-row-error{background:#fff5f5!important}.mig-row-warning{background:#fffaf0!important}.mig-issue-tag{align-self:flex-start;border-radius:999px;display:inline-flex;font-size:10px;font-weight:700;padding:2px 8px}.mig-issue-tag-error{background:#fde2e2;color:#b54444}.mig-issue-tag-warning{background:#fff0c8;color:#916312}.mig-issues{grid-gap:10px;display:grid;gap:10px;margin-top:14px}.mig-issue-card{background:#fafcff;border:1px solid #dde6ef;border-radius:10px;color:#254157;display:flex;flex-direction:column;font-size:13px;gap:6px;padding:12px 14px}.mig-issue-card-error{background:#fff3f3;border-color:#f3c3c3}.mig-issue-card-warning{background:#fff9ec;border-color:#f2dca8}.mig-issue-head{align-items:center;display:flex;font-size:11px;gap:10px;justify-content:space-between;letter-spacing:.04em;text-transform:uppercase}@media (max-width:1080px){.mig-form-grid,.mig-grid{grid-template-columns:1fr}.mig-label-wide{grid-column:span 1}.mig-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.mig-header{flex-direction:column}.mig-form-row,.mig-header-actions,.mig-run-actions,.mig-upload-row{align-items:stretch;flex-direction:column}.mig-kpi-grid{grid-template-columns:1fr}}.topology-tab{grid-gap:18px;align-items:start;display:grid;gap:18px;grid-template-columns:260px minmax(0,1fr)}.topology-editor,.topology-list{background:#fff;border:1px solid #d7dee7;border-radius:12px;padding:16px}.topology-list{display:flex;flex-direction:column;gap:10px}.topology-editor__footer,.topology-editor__header,.topology-list__header,.topology-section__head{align-items:center;display:flex;gap:12px;justify-content:space-between}.topology-list__item{align-items:center;background:#f8fafc;border:1px solid #d7dee7;border-radius:8px;color:#173a63;display:flex;gap:8px;justify-content:space-between;padding:10px 12px;text-align:left;width:100%}.topology-list__item--active{background:#eef4fb;border-color:#173a63}.topology-list__item small{color:#6b7280}.topology-editor{display:flex;flex-direction:column;gap:16px}.topology-editor__header p{color:#4b5563;margin:4px 0 0}.topology-section{border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:10px;padding-top:12px}.topology-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.topology-grid--edge,.topology-grid--relation{grid-template-columns:repeat(3,minmax(0,1fr))}.topology-grid label,.topology-grid__wide{color:#374151;display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:4px}.topology-grid input,.topology-grid select{border:1px solid #cbd5e1;border-radius:6px;font-size:13px;padding:8px 10px}.topology-grid__wide{grid-column:1/-1}.topology-checkbox{align-items:center;align-self:end;flex-direction:row}.topology-row-card{background:#fbfcfe;border:1px solid #d7dee7;border-radius:10px;display:flex;flex-direction:column;gap:10px;padding:12px}.topology-danger-btn,.topology-primary-btn,.topology-remove-btn,.topology-secondary-btn{border-radius:8px;font-size:13px}.topology-primary-btn{background:#173a63;border:none;color:#fff;padding:9px 14px}.topology-secondary-btn{background:#f8fafc;border:1px solid #cbd5e1;color:#1f2937;padding:8px 12px}.topology-danger-btn,.topology-remove-btn{background:#fff5f5;border:1px solid #ef4444;color:#b91c1c;padding:8px 12px}.topology-status{color:#355a84}.topology-empty,.topology-empty-inline,.topology-error,.topology-loading{color:#4b5563}@media (max-width:1200px){.topology-tab{grid-template-columns:1fr}.topology-grid,.topology-grid--edge,.topology-grid--relation{grid-template-columns:1fr 1fr}}@media (max-width:720px){.topology-grid,.topology-grid--edge,.topology-grid--relation{grid-template-columns:1fr}}
/*# sourceMappingURL=main.40282d50.css.map*/