:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{--gis-bg-canvas:#16171e;--gis-bg-panel:#21222c;--gis-bg-toolbar:#282a36;--gis-bg-menu:#1b1c24;--gis-bg-input:#15161c;--gis-bg-hover:#343746;--gis-bg-active:#44475a;--gis-border:#383a4c;--gis-border-focus:#6272a4;--gis-text-primary:#f8f8f2;--gis-text-secondary:#a0a6b8;--gis-text-muted:#6272a4;--gis-qgis-green:#37a84e;--gis-qgis-green-hover:#43c45d;--gis-accent-blue:#00b0ff;--gis-accent-yellow:#f1fa8c;--gis-accent-orange:#ffb86c;--gis-accent-red:#f55;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100vw;height:100vh;font-family:var(--font-sans);background-color:var(--gis-bg-canvas);color:var(--gis-text-primary);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;margin:0;padding:0;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--gis-bg-input)}::-webkit-scrollbar-thumb{background:var(--gis-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gis-border-focus)}.ol-zoom{top:14px;left:14px}.ol-zoom button{cursor:pointer;transition:background-color .15s;background-color:var(--gis-bg-toolbar)!important;color:var(--gis-text-primary)!important;border:1px solid var(--gis-border)!important;border-radius:4px!important;width:28px!important;height:28px!important;margin:2px!important;font-size:16px!important;font-weight:700!important;box-shadow:0 2px 6px #0006!important}.ol-zoom button:hover{background-color:var(--gis-bg-hover)!important;border-color:var(--gis-qgis-green)!important}.ol-scale-line{border:1px solid var(--gis-border)!important;background:#21222cd9!important;border-radius:4px!important;padding:2px 6px!important;bottom:35px!important;left:14px!important;box-shadow:0 2px 6px #0000004d!important}.ol-scale-line-inner{border:1px solid var(--gis-text-primary)!important;color:var(--gis-text-primary)!important;font-family:var(--font-mono)!important;border-top:none!important;font-size:11px!important;font-weight:500!important}.ol-tooltip-measure{color:var(--gis-accent-yellow);border:1px solid var(--gis-accent-yellow);font-size:12px;font-family:var(--font-mono);white-space:nowrap;pointer-events:none;background:#1b1c24eb;border-radius:4px;padding:4px 8px;font-weight:600;box-shadow:0 4px 10px #00000080}.ol-popup{background-color:var(--gis-bg-panel);border:1px solid var(--gis-border);z-index:1000;border-radius:6px;min-width:260px;max-width:380px;padding:12px;position:absolute;bottom:12px;left:-50px;box-shadow:0 6px 20px #0009}.ol-popup:after,.ol-popup:before{content:" ";pointer-events:none;border:solid #0000;width:0;height:0;position:absolute;top:100%}.ol-popup:after{border-top-color:var(--gis-bg-panel);border-width:10px;margin-left:-10px;left:48px}.ol-popup:before{border-top-color:var(--gis-border);border-width:11px;margin-left:-11px;left:48px}.ol-popup-closer{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;font-size:14px;line-height:1;position:absolute;top:8px;right:8px}.ol-popup-closer:hover{color:var(--gis-accent-red)}.gis-application{background-color:var(--gis-bg-canvas);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.gis-menubar{background-color:var(--gis-bg-menu);border-bottom:1px solid var(--gis-border);z-index:1100;align-items:center;gap:12px;height:30px;padding:0 10px;font-size:12px;display:flex}.gis-brand{align-items:center;gap:6px;margin-right:6px;display:flex}.gis-logo-badge{color:#fff;background:linear-gradient(135deg,#37a84e,#2b843d);border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:800;display:flex;position:relative;box-shadow:0 1px 3px #0006}.gis-logo-badge.large{width:44px;height:44px;font-size:24px}.gis-title{letter-spacing:.5px;color:var(--gis-text-primary);font-size:13px;font-weight:700}.gis-version-tag{background-color:var(--gis-bg-hover);color:var(--gis-text-muted);font-size:10px;font-family:var(--font-mono);border-radius:3px;padding:1px 5px}.gis-menu-nav{align-items:center;gap:2px;display:flex}.menu-item-wrapper{position:relative}.menu-btn{color:var(--gis-text-secondary);cursor:pointer;font-size:12px;font-family:var(--font-sans);background:0 0;border:none;border-radius:3px;padding:4px 8px;transition:all .15s}.menu-btn:hover,.menu-btn.active{background-color:var(--gis-bg-hover);color:var(--gis-text-primary)}.menu-dropdown{background-color:var(--gis-bg-panel);border:1px solid var(--gis-border);z-index:1200;border-radius:4px;min-width:220px;padding:4px;position:absolute;top:100%;left:0;box-shadow:0 4px 14px #00000080}.dropdown-item{text-align:left;width:100%;color:var(--gis-text-primary);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;transition:background-color .12s;display:flex}.dropdown-item:hover{background-color:var(--gis-bg-hover);color:var(--gis-qgis-green)}.menubar-right-status{color:var(--gis-text-muted);align-items:center;gap:6px;margin-left:auto;font-size:11px;display:flex}.status-indicator-dot{background-color:var(--gis-qgis-green);border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #37a84eb3}.gis-toolbar{background-color:var(--gis-bg-toolbar);border-bottom:1px solid var(--gis-border);z-index:1050;align-items:center;gap:6px;height:38px;padding:0 8px;display:flex}.toolbar-group{align-items:center;gap:3px;display:flex}.toolbar-divider{background-color:var(--gis-border);width:1px;height:20px;margin:0 4px}.tool-btn{color:var(--gis-text-secondary);cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:5px;min-width:28px;height:28px;padding:0 6px;font-size:12px;transition:all .15s;display:flex}.tool-btn:hover{background-color:var(--gis-bg-hover);border-color:var(--gis-border);color:var(--gis-text-primary)}.tool-btn.active,.tool-btn.active-panel{background-color:var(--gis-bg-active);border-color:var(--gis-border-focus);color:var(--gis-accent-blue)}.tool-btn-primary{color:#50fa7b;background-color:#37a84e26;border-color:#37a84e66}.tool-btn-primary:hover{border-color:var(--gis-qgis-green);color:#fff;background-color:#37a84e4d}.btn-danger-hover:hover{color:var(--gis-accent-red)}.btn-label{font-weight:500}.toolbar-mode-badge{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);border-radius:4px;align-items:center;gap:6px;margin-left:auto;padding:3px 8px;font-size:11px;display:flex}.badge-title{color:var(--gis-text-muted);font-size:10px;font-weight:600}.badge-value{color:var(--gis-accent-yellow);font-family:var(--font-mono)}.gis-workspace{flex:1;display:flex;position:relative;overflow:hidden}.gis-layers-panel{background-color:var(--gis-bg-panel);border-right:1px solid var(--gis-border);z-index:900;flex-direction:column;width:280px;min-width:220px;max-width:400px;display:flex}.panel-header{background-color:var(--gis-bg-toolbar);border-bottom:1px solid var(--gis-border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.panel-title-area{align-items:center;gap:6px;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.5px;color:var(--gis-text-primary);font-size:12px;font-weight:600}.layer-count-badge{background-color:var(--gis-bg-hover);color:var(--gis-text-muted);border-radius:10px;padding:1px 6px;font-size:10px}.panel-actions{gap:4px;display:flex}.panel-icon-btn{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:3px;display:flex}.panel-icon-btn:hover{background-color:var(--gis-bg-hover);color:var(--gis-text-primary)}.panel-body{flex-direction:column;flex:1;padding:6px;display:flex;overflow-y:auto}.layers-tree{flex-direction:column;gap:4px;display:flex}.layer-item-row{background-color:var(--gis-bg-input);cursor:pointer;border:1px solid #0000;border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;transition:all .12s;display:flex}.layer-item-row:hover{border-color:var(--gis-border);background-color:var(--gis-bg-hover)}.layer-item-row.selected{border-color:var(--gis-border-focus);background-color:#44475a66}.layer-visibility-btn{cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.icon-visible{color:var(--gis-qgis-green)}.icon-hidden{color:var(--gis-text-muted)}.layer-symbol-preview{background-color:#0003;border:1.5px solid;border-radius:3px;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.layer-info{flex-direction:column;flex:1;min-width:0;display:flex}.layer-name{color:var(--gis-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.layer-meta-line{align-items:center;gap:6px;margin-top:2px;display:flex}.layer-meta{color:var(--gis-text-muted);font-size:10px}.layer-crs-chip{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-accent-yellow);font-family:var(--font-mono);cursor:pointer;border-radius:3px;align-items:center;gap:3px;padding:1px 5px;font-size:9px;transition:all .12s;display:inline-flex}.layer-crs-chip:hover{background-color:var(--gis-bg-hover);border-color:var(--gis-qgis-green);color:#fff}.crs-field{min-width:220px}.crs-select-box{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-text-primary);font-size:11px;font-family:var(--font-sans);cursor:pointer;border-radius:4px;outline:none;padding:6px 8px}.crs-select-box:focus{border-color:var(--gis-qgis-green)}.layer-item-actions{gap:2px;display:flex}.layer-action-btn{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px}.layer-action-btn:hover{background-color:var(--gis-bg-hover);color:var(--gis-text-primary)}.layer-action-btn.btn-danger:hover{color:var(--gis-accent-red)}.layer-opacity-slider{border-top:1px dashed var(--gis-border);flex-direction:column;gap:2px;width:100%;margin-top:4px;padding-top:6px;display:flex}.opacity-label{color:var(--gis-text-secondary);font-size:10px}.layer-opacity-slider input[type=range]{width:100%;height:4px;accent-color:var(--gis-qgis-green);cursor:pointer}.layers-panel-hint{border:1px dashed var(--gis-border);color:var(--gis-text-muted);background-color:#0003;border-radius:4px;margin-top:auto;padding:10px;font-size:11px}.layers-panel-hint code{color:var(--gis-accent-blue);font-family:var(--font-mono)}.gis-center-area{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.gis-canvas-wrapper{flex:1;width:100%;height:100%;position:relative}.gis-map-canvas{width:100%;height:100%}.gis-attribute-panel{background-color:var(--gis-bg-panel);border-top:2px solid var(--gis-border);z-index:950;flex-direction:column;height:240px;min-height:120px;max-height:400px;display:flex;box-shadow:0 -4px 12px #0000004d}.table-toolbar{background-color:var(--gis-bg-toolbar);border-bottom:1px solid var(--gis-border);justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.table-info{align-items:center;gap:8px;font-size:12px;display:flex}.table-title strong{color:var(--gis-qgis-green)}.table-counter{color:var(--gis-text-muted);font-size:11px}.table-actions{align-items:center;gap:8px;display:flex}.table-search-box{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);border-radius:4px;align-items:center;gap:4px;padding:2px 6px;display:flex}.table-search-box input{color:var(--gis-text-primary);background:0 0;border:none;outline:none;width:140px;font-size:11px}.clear-search-btn{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;display:flex}.table-btn{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-text-secondary);cursor:pointer;border-radius:3px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:flex}.table-btn:hover{background-color:var(--gis-bg-hover);color:var(--gis-text-primary)}.table-close-btn{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:14px}.table-close-btn:hover{color:var(--gis-text-primary)}.table-grid-wrapper{flex:1;overflow:auto}.attribute-grid{border-collapse:collapse;text-align:left;width:100%;font-size:11px}.attribute-grid thead th{background-color:var(--gis-bg-toolbar);color:var(--gis-text-secondary);border-bottom:1px solid var(--gis-border);text-transform:uppercase;padding:6px 10px;font-size:10px;font-weight:600;position:sticky;top:0}.attribute-grid tbody tr{border-bottom:1px solid #383a4c66}.attribute-grid tbody tr:hover{background-color:var(--gis-bg-hover)}.attribute-grid tbody td{color:var(--gis-text-primary);white-space:nowrap;padding:5px 10px}.th-action,.td-action{text-align:center;width:32px}.row-zoom-btn{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px}.row-zoom-btn:hover{color:var(--gis-accent-blue)}.mono{font-family:var(--font-mono)}.table-empty-message{text-align:center;color:var(--gis-text-muted);padding:30px;font-size:12px}.gis-statusbar{background-color:var(--gis-bg-menu);border-top:1px solid var(--gis-border);z-index:1000;align-items:center;gap:10px;height:26px;padding:0 10px;font-size:11px;display:flex}.status-section{align-items:center;gap:5px;display:flex}.status-icon,.status-label{color:var(--gis-text-muted)}.status-value{color:var(--gis-text-primary)}.status-value.highlight{color:var(--gis-qgis-green);font-weight:500}.status-divider{background-color:var(--gis-border);width:1px;height:14px}.status-spacer{margin-left:auto}.status-btn{color:var(--gis-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-size:11px;display:flex}.status-btn:hover,.status-btn.active{background-color:var(--gis-bg-hover);color:var(--gis-text-primary)}.crs-badge{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);font-family:var(--font-mono);color:var(--gis-accent-yellow);border-radius:3px;padding:1px 6px;font-size:10px}.popup-title{color:var(--gis-text-primary);border-bottom:1px solid var(--gis-border);align-items:center;gap:6px;margin-bottom:8px;padding-bottom:4px;font-size:12px;display:flex}.dot-indicator{background-color:var(--gis-qgis-green);border-radius:50%;width:8px;height:8px}.popup-table-wrapper{max-height:180px;overflow-y:auto}.popup-table{border-collapse:collapse;width:100%;font-size:11px}.popup-table td{padding:3px 4px}.prop-name{color:var(--gis-text-muted);width:40%;font-weight:500}.prop-val{color:var(--gis-text-primary);word-break:break-all}.gis-modal-backdrop{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0009;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.gis-modal-card{background-color:var(--gis-bg-panel);border:1px solid var(--gis-border-focus);border-radius:8px;flex-direction:column;width:520px;max-width:90vw;display:flex;overflow:hidden;box-shadow:0 10px 30px #000000b3}.modal-header{background-color:var(--gis-bg-toolbar);border-bottom:1px solid var(--gis-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-header h3{font-size:14px;font-weight:600}.btn-close{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;font-size:16px}.modal-tabs{border-bottom:1px solid var(--gis-border);background-color:var(--gis-bg-menu);display:flex}.tab-btn{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 12px;font-size:12px;font-weight:500}.tab-btn.active{color:var(--gis-qgis-green);border-bottom-color:var(--gis-qgis-green);background-color:var(--gis-bg-panel)}.modal-body{flex-direction:column;gap:14px;padding:16px;display:flex}.form-group-row{gap:10px;display:flex}.form-field{flex-direction:column;gap:4px;display:flex}.form-field.flex-grow{flex:1}.form-field label{color:var(--gis-text-muted);font-size:11px}.form-field input[type=text]{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-text-primary);border-radius:4px;outline:none;padding:6px 10px;font-size:12px}.form-field input[type=text]:focus{border-color:var(--gis-qgis-green)}.color-picker-input{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);cursor:pointer;border-radius:4px;width:42px;height:31px;padding:2px}.samples-selector{flex-direction:column;gap:10px;display:flex}.sample-card{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;transition:all .15s;display:flex}.sample-card:hover{border-color:var(--gis-qgis-green);background-color:var(--gis-bg-hover)}.square-sample{background-color:#ffb86c;border-radius:3px;width:20px;height:20px}.sample-text{flex:1}.sample-text h4{margin-bottom:2px;font-size:12px}.sample-text p{color:var(--gis-text-muted);font-size:11px}.upload-zone{border:2px dashed var(--gis-border);background-color:var(--gis-bg-input);text-align:center;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.upload-icon{color:var(--gis-qgis-green)}.upload-zone p{color:var(--gis-text-secondary);font-size:12px}.upload-zone input[type=file]{color:var(--gis-text-muted);font-size:11px}.file-ready-alert{color:#50fa7b;align-items:center;gap:6px;margin-top:6px;font-size:11px;display:flex}.text-zone{flex-direction:column;gap:6px;display:flex}.text-zone label{color:var(--gis-text-muted);font-size:11px}.text-zone textarea{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-text-primary);font-family:var(--font-mono);resize:vertical;border-radius:4px;outline:none;padding:8px;font-size:11px}.text-zone textarea:focus{border-color:var(--gis-qgis-green)}.modal-footer{background-color:var(--gis-bg-toolbar);border-top:1px solid var(--gis-border);justify-content:flex-end;align-items:center;gap:8px;padding:10px 16px;display:flex}.btn-primary{background-color:var(--gis-qgis-green);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 14px;font-size:12px;font-weight:600;transition:background-color .15s}.btn-primary:hover{background-color:var(--gis-qgis-green-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background-color:var(--gis-bg-input);color:var(--gis-text-secondary);border:1px solid var(--gis-border);cursor:pointer;border-radius:4px;padding:6px 12px;font-size:12px}.btn-secondary:hover{background-color:var(--gis-bg-hover);color:var(--gis-text-primary)}.about-hero{align-items:center;gap:14px;display:flex}.subtitle{color:var(--gis-text-muted);font-size:11px}.about-desc{color:var(--gis-text-secondary);font-size:12px;line-height:1.5}.about-meta{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-text-secondary);border-radius:6px;flex-direction:column;gap:4px;padding:10px;font-size:11px;display:flex}.supported-formats-pills{flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 8px;display:flex}.format-pill{background-color:var(--gis-bg-hover);color:var(--gis-accent-blue);border:1px solid var(--gis-border);font-size:10px;font-family:var(--font-mono);border-radius:12px;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.processing-indicator{color:var(--gis-qgis-green-hover);background-color:#37a84e26;border:1px solid #37a84e66;border-radius:6px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:11px;display:flex}.spin-icon{animation:1s linear infinite gis-spin}@keyframes gis-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.format-error-alert{border:1px solid var(--gis-accent-red);color:#ff8585;text-align:left;background-color:#ff555526;border-radius:6px;margin-top:8px;padding:8px 12px;font-size:11px}.crs-badge-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:2px 4px;transition:background-color .15s;display:flex}.crs-badge-btn:hover{background-color:var(--gis-bg-hover)}.status-icon-globe{color:var(--gis-accent-blue)}.crs-modal-card{height:600px;max-height:90vh;width:780px!important;max-width:95vw!important}.modal-title-with-icon{align-items:center;gap:8px;display:flex}.text-qgis-green{color:var(--gis-qgis-green)}.crs-filters-bar{background-color:var(--gis-bg-menu);border-bottom:1px solid var(--gis-border);flex-direction:column;gap:8px;padding:10px 16px;display:flex}.crs-search-box{width:100%}.crs-search-box input{width:100%!important}.crs-category-pills{flex-wrap:wrap;gap:6px;display:flex}.cat-pill{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-text-secondary);cursor:pointer;border-radius:12px;padding:3px 9px;font-size:11px;transition:all .12s}.cat-pill:hover{border-color:var(--gis-qgis-green);color:var(--gis-text-primary)}.cat-pill.active{background-color:var(--gis-qgis-green);border-color:var(--gis-qgis-green);color:#fff;font-weight:600}.crs-modal-body{background-color:var(--gis-bg-panel);flex:1;display:flex;overflow:hidden}.crs-list-panel{border-right:1px solid var(--gis-border);background-color:var(--gis-bg-input);flex-direction:column;gap:2px;width:320px;padding:6px;display:flex;overflow-y:auto}.crs-list-row{cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;transition:all .12s;display:flex}.crs-list-row:hover{background-color:var(--gis-bg-hover);border-color:var(--gis-border)}.crs-list-row.selected{border-color:var(--gis-qgis-green);background-color:#44475a80}.crs-row-left{flex-direction:column;gap:2px;min-width:0;display:flex}.crs-code-badge{font-family:var(--font-mono);color:var(--gis-accent-yellow);font-size:10px;font-weight:600}.crs-name-text{color:var(--gis-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.crs-active-tag{color:var(--gis-qgis-green);white-space:nowrap;align-items:center;gap:3px;font-size:10px;font-weight:600;display:flex}.crs-detail-panel{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.detail-header{border-bottom:1px solid var(--gis-border);justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:8px;display:flex}.detail-header h4{color:var(--gis-text-primary);font-size:14px}.crs-category-tag{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);color:var(--gis-accent-blue);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10px}.detail-description{color:var(--gis-text-secondary);font-size:12px;line-height:1.4}.detail-meta-grid{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);border-radius:4px;grid-template-columns:repeat(2,1fr);gap:8px;padding:8px 12px;display:grid}.meta-item{flex-direction:column;gap:2px;display:flex}.meta-label{color:var(--gis-text-muted);font-size:10px}.meta-value{color:var(--gis-text-primary);font-size:11px}.detail-code-box{background-color:var(--gis-bg-input);border:1px solid var(--gis-border);border-radius:4px;flex-direction:column;flex:1;min-height:140px;display:flex;overflow:hidden}.code-box-header{background-color:var(--gis-bg-toolbar);border-bottom:1px solid var(--gis-border);color:var(--gis-text-muted);justify-content:space-between;align-items:center;padding:4px 8px;font-size:10px;font-weight:600;display:flex}.copy-btn{color:var(--gis-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;font-size:10px;display:flex}.copy-btn:hover{color:var(--gis-qgis-green)}.code-content{color:var(--gis-accent-yellow);white-space:pre-wrap;word-break:break-all;flex:1;padding:8px;font-size:10px;line-height:1.4;overflow-y:auto}.crs-footer-hint{color:var(--gis-text-muted);margin-right:auto;font-size:11px}.crs-footer-hint strong{color:var(--gis-accent-yellow);font-family:var(--font-mono)}
