:root{--bg: #040704;--panel: #0a120b;--line: #16261a;--line-strong: #2a4a33;--accent: #39ff6a;--accent-dim: #39ff6a14;--accent-mid: #39ff6a1c;--gold: #d8b45a;--danger: #ff4d4d;--warn: #ffb020;--friend: #3ddc5a;--info: #4fd1ff;--text: #f4f7f5;--text-soft: #e8f0ea;--muted: #d0dbd3;--muted-2: #b8c6bc;--heading: #ffffff;--sidebar-w: 230px;--right-w: 300px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;height:100%;background:#040704}body{background:var(--bg);color:var(--text);font-family:IBM Plex Mono,Courier New,monospace}button,input{font-family:inherit}.rj{font-family:Rajdhani,sans-serif}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.app-shell{min-height:100vh;background:var(--bg);color:var(--text)}.app-body{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:auto;gap:14px;padding:16px;min-height:calc(100vh - 140px);transition:grid-template-columns .18s ease}.sidebar-collapsed{--sidebar-w: 58px}.app-sidebar{grid-row:1;display:flex;flex-direction:column;gap:14px;position:relative}.sidebar-retract{position:absolute;top:4px;right:-11px;z-index:6;width:22px;height:28px;background:#0a120b;border:1px solid #2a4a33;color:#39ff6a;border-radius:0 3px 3px 0;cursor:pointer;font-size:12px;line-height:1}.app-main{min-width:0}.app-main--wide{grid-column:2}.app-right,.app-status{display:flex;flex-direction:column;gap:14px}.navitem:hover{border-color:#39ff6a55!important;color:var(--text)!important}.modcard:hover{border-color:#39ff6a88!important;transform:translateY(-2px)}.icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}.cop-stage{position:relative;background:#050a06;border:1px solid #16261a;border-radius:4px;min-height:calc(100vh - 210px);overflow:hidden}.cop-map{width:100%;height:calc(100vh - 210px);display:block;background:#050a06}.cop-chrome{position:absolute;top:10px;left:10px;z-index:4;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 310px);align-items:center}.cop-alert{position:absolute;top:auto;bottom:52px;left:12px;transform:none;z-index:6;max-width:min(320px,calc(100% - 24px));pointer-events:none}.cop-toasts{position:absolute;right:12px;top:48px;bottom:auto;z-index:8;display:flex;flex-direction:column;gap:4px;width:min(200px,calc(100% - 24px));pointer-events:none}.cop-toast{pointer-events:auto;display:flex;align-items:center;gap:6px;padding:5px 6px 5px 8px;background:#0a120bf5;border:1px solid #ffb02055;border-left:3px solid #ffb020;border-radius:3px;box-shadow:0 4px 12px #0006}.cop-toast--crit{border-color:#ff4d4d55;border-left-color:#ff4d4d}.cop-toast-body{flex:1;min-width:0}.cop-toast-kind{font-size:9px;letter-spacing:1px;font-weight:700;color:#ffb020}.cop-toast--crit .cop-toast-kind{color:#ff4d4d}.cop-toast-msg{font-size:11px;color:#f4f7f5;line-height:1.25;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cop-chip-lost{pointer-events:auto;background:#1a0808;border:1px solid #ff4d4d88;color:#ff8a8a;font-size:10px;font-weight:700;letter-spacing:.4px;padding:3px 8px;border-radius:3px;cursor:pointer;font-family:inherit}.cop-toast-x{flex-shrink:0;background:transparent;border:1px solid #2a4a33;color:#e8f0ea;border-radius:3px;cursor:pointer;padding:0 6px;line-height:18px;font-size:14px}.popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#040704cc;display:flex;align-items:center;justify-content:center;padding:24px}.popup-card{max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);background:#0a120b;border:1px solid #39ff6a55;border-radius:4px;box-shadow:0 12px 40px #0008;display:flex;flex-direction:column;overflow:hidden}.popup-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px 10px;border-bottom:1px solid #16261a}.popup-title{font-size:14px;letter-spacing:1px;color:#39ff6a;font-weight:700}.popup-status{font-size:10px;color:#d0dbd3;margin-top:3px;text-transform:uppercase}.popup-x{background:transparent;border:1px solid #2a4a33;color:#e8f0ea;border-radius:3px;cursor:pointer;padding:2px 8px;font-size:16px;line-height:1}.popup-body{padding:14px 16px 16px;overflow:auto}.map-mode .app-body{padding:8px;gap:8px;min-height:calc(100vh - 86px)}.map-mode .cop-stage,.map-mode .qgis-stage{min-height:calc(100vh - 148px)}.qgis-workbench{display:flex;flex-direction:column;min-height:0}.qgis-crumb{display:flex;justify-content:space-between;align-items:center;gap:8px}.qgis-crumb>div:first-child{margin-bottom:8px}.gis-tb{flex-shrink:0;margin:0 0 6px;position:relative;z-index:12}.gis-tb-tab{background:#0a120bf2;border:1px solid #2a4a33;color:#39ff6a;cursor:pointer;font-family:inherit;font-size:11px;padding:5px 12px;border-radius:3px}.gis-tb-bar{display:flex;flex-wrap:wrap;align-items:stretch;gap:2px 0;background:#0a120bf5;border:1px solid #2a4a33;border-radius:3px;padding:4px 6px 6px}.gis-tb-group{display:flex;flex-direction:column;gap:2px;padding:0 8px;border-right:1px solid #1c3a24}.gis-tb-end{display:flex;align-items:flex-end;gap:4px;margin-left:auto;padding:0 4px 0 8px}.gis-tb-label{font-family:Rajdhani,sans-serif;font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#6f8a76}.gis-tb-btns{display:flex;flex-wrap:wrap;align-items:center;gap:3px}.gis-tb-btn{background:#071009;border:1px solid #1c3a24;color:#e8f0ea;cursor:pointer;font-family:inherit;font-size:11px;line-height:1.2;padding:4px 7px;border-radius:2px;display:inline-flex;align-items:center}.gis-tb-btn:hover{border-color:#39ff6a66;color:#39ff6a}.gis-tb-btn--on{background:#39ff6a18;border-color:#39ff6a;color:#39ff6a}.gis-tb-sep{width:1px;align-self:stretch;background:#1c3a24;margin:0 3px}.gis-tb-current{font-size:10px;color:#8aa090;padding:4px 6px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gis-tb-drop{position:relative}.gis-tb-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:220px;max-height:min(70vh,480px);overflow:auto;background:#0a120bf8;border:1px solid #2a4a33;border-radius:4px;padding:4px;box-shadow:0 8px 24px #000a}.gis-tb-menu--wide{min-width:280px}.gis-tb-menu .win-tray-item{display:flex;align-items:center;gap:8px}.qgis-workbench:has(.gis-tb) .ol-map,.qgis-workbench:has(.gis-tb) .cop-stage{min-height:calc(100vh - 188px)}.qgis-workbench:has(.gis-tb) .ol-map{height:calc(100vh - 188px)}.qgis-workbench:has(.gis-tb:not(.gis-tb--in)) .ol-map{height:calc(100vh - 248px)}.map-mode .qgis-workbench:has(.gis-tb) .ol-map{height:calc(100vh - 168px)}.map-mode .qgis-workbench:has(.gis-tb:not(.gis-tb--in)) .ol-map{height:calc(100vh - 228px)}.qgis-stage{position:relative}.ol-map{width:100%;height:calc(100vh - 210px);min-height:420px;background:#050a06}.map-mode .ol-map{height:calc(100vh - 148px)}.qgis-dock{position:absolute;top:0;left:0;bottom:0;width:270px;z-index:8;background:#0a120bf5;border-right:1px solid #16261a;display:flex}.qgis-dock--in{width:22px;background:transparent;border:none}.qgis-dock-toggle{width:22px;flex-shrink:0;background:#0a120b;border:1px solid #2a4a33;border-left:none;color:#39ff6a;cursor:pointer}.qgis-dock-body{flex:1;min-width:0;overflow:auto;padding:10px 10px 16px}.qgis-dock-title{font-size:13px;letter-spacing:1px;color:#39ff6a;font-weight:700;margin-bottom:8px}.qgis-tools{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.qgis-group{font-size:10px;letter-spacing:1px;color:#8aa090;margin:10px 0 6px}.qgis-row{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#e8f0ea;padding:3px 0}.qgis-swatch{width:8px;height:8px;border-radius:8px;flex-shrink:0}.qgis-name{flex:1;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qgis-n{font-size:10px;color:#8aa090}.qgis-x{background:transparent;border:none;color:#ff4d4d;cursor:pointer}.qgis-filter{width:100%;margin-bottom:6px;background:#040704;border:1px solid #2a4a33;color:#e8f0ea;border-radius:3px;padding:5px 8px;font-size:11px}.qgis-empty{font-size:10.5px;color:#8aa090;margin-bottom:8px}.qgis-catalog{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:2px}.qgis-step{display:flex;gap:8px;font-size:10px;color:#8aa090}.qgis-step--live{color:#39ff6a}.qgis-step--next{color:#ffb020}.qgis-step--later{color:#5c6f62}.gis-box-list{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:1px;margin:6px 0;border:1px solid #16261a;border-radius:3px;background:#050a06}.gis-box-item{display:flex;gap:8px;text-align:left;background:transparent;border:0;color:#d0dbd3;font-size:10.5px;padding:4px 6px;cursor:pointer}.gis-box-item:hover{background:#39ff6a12}.gis-box-item--on{background:#39ff6a14;color:#39ff6a}.gis-box-run{border-top:1px solid #16261a;padding-top:6px;display:flex;flex-direction:column;gap:4px}.qgis-row--on{background:#39ff6a14;border-radius:3px}.qgis-active{margin-top:6px;padding:8px;border:1px solid #16261a;border-radius:3px;background:#050a06}.qgis-table-wrap{overflow:auto;max-height:60vh}.qgis-table{width:100%;border-collapse:collapse;font-size:11px}.qgis-table th,.qgis-table td{border-bottom:1px solid #16261a;padding:6px 8px;text-align:left;color:#d0dbd3}.qgis-table tr{cursor:pointer}.qgis-table tr:hover{background:#39ff6a12}.ol-control button{background:#0a120bcc!important;color:#39ff6a!important;border-radius:2px!important}.hab-chip{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.5px;padding:1px 6px;border-radius:2px;border:1px solid;white-space:nowrap;font-family:Rajdhani,sans-serif}.intel-table-wrap{max-height:62vh;margin-bottom:12px}.intel-table th{color:#39ff6a;font-size:10px;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;position:sticky;top:0;background:#0a120b}.intel-table td{white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.ol-scale-line{background:#0a120bcc!important}.sid-mouse{background:#0a120bcc!important;color:#e8f0ea!important;font-size:11px!important;font-family:IBM Plex Mono,monospace!important;padding:3px 8px!important;bottom:44px!important;left:8px!important;top:auto!important;right:auto!important}.win-tray{position:absolute;left:50%;bottom:8px;transform:translate(-50%);z-index:9;display:flex;flex-direction:column;align-items:center}.win-tray--in{bottom:0}.win-tray-tab,.win-tray-hide{background:#0a120bf2;border:1px solid #2a4a33;color:#39ff6a;cursor:pointer;font-size:10px;line-height:1;padding:4px 14px;border-radius:4px 4px 0 0}.win-tray-hide{border-radius:3px;padding:6px 8px;align-self:stretch}.win-tray-bar{display:flex;align-items:stretch;flex-wrap:wrap;justify-content:center;gap:4px;max-width:min(96vw,980px);background:#0a120bf5;border:1px solid #2a4a33;border-radius:4px;padding:4px;box-shadow:0 8px 24px #0008}.win-pin{position:relative}.win-pin-btn{min-width:92px;background:transparent;border:1px solid transparent;border-radius:3px;color:#e8f0ea;cursor:pointer;padding:5px 10px;text-align:left;font-family:inherit}.win-pin-btn:hover,.win-pin-btn--on{border-color:#39ff6a55;background:#39ff6a14}.win-pin-name{display:block;font-family:Rajdhani,sans-serif;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#39ff6a}.win-pin-sub{display:block;font-size:9.5px;color:#b8c6bc;margin-top:1px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.win-pin-menu{position:absolute;bottom:calc(100% + 6px);left:0;min-width:220px;max-height:min(72vh,520px);overflow:auto;background:#0a120bf8;border:1px solid #2a4a33;border-radius:4px;padding:4px;box-shadow:0 8px 24px #000a}.win-pin-menu--wide{min-width:280px}.win-tray-form{display:flex;flex-direction:column;gap:6px;padding:4px}.win-tray-form .qgis-filter{margin-bottom:0}.win-tray-item{width:100%;display:flex;justify-content:space-between;gap:10px;background:transparent;border:0;border-radius:3px;color:#e8f0ea;cursor:pointer;padding:7px 8px;font-family:inherit;font-size:12px;text-align:left}.win-tray-item:hover,.win-tray-item--on{background:#39ff6a18;color:#39ff6a}.win-tray-hint{color:#8aa090;font-size:10px}.log-dock{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#0a120bf5;border-top:1px solid #2a4a33}.log-dock-bar{width:100%;display:flex;align-items:center;gap:12px;padding:6px 14px;background:transparent;border:0;color:#39ff6a;cursor:pointer;font-family:inherit;font-size:11px}.log-dock--open .log-dock-bar{border-bottom:1px solid #16261a}.log-dock-body{height:220px;display:flex;flex-direction:column}.log-dock-tools{display:flex;gap:8px;align-items:center;padding:6px 10px;flex-wrap:wrap}.log-chip,.log-select,.log-search{background:#040704;border:1px solid #2a4a33;color:#e8f0ea;border-radius:3px;padding:4px 8px;font-family:inherit;font-size:11px}.log-chip{cursor:pointer;color:#d0dbd3}.log-chip--on{border-color:#39ff6a;color:#39ff6a}.log-search{min-width:160px;flex:1}.log-dock-list{flex:1;overflow:auto;padding:4px 10px 10px;font-size:11px}.log-line{display:grid;grid-template-columns:62px 52px 90px minmax(0,1fr);gap:8px;padding:2px 0;border-bottom:1px solid #16261a55}.log-time{color:#b8c6bc}.log-lvl{text-transform:uppercase;font-weight:700}.log-src{color:#d8b45a}.log-msg{color:#e8f0ea;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-mode .log-dock--open~* .sid-mouse,.map-mode .log-dock--open .sid-mouse{bottom:248px!important}.map-ctx{position:fixed;z-index:90;min-width:220px;max-width:280px;background:#0a120bf8;border:1px solid #39ff6a55;border-radius:4px;box-shadow:0 10px 28px #000a;padding:4px;font-size:12px}.map-ctx-title{font-family:Rajdhani,sans-serif;font-size:10px;letter-spacing:1.2px;color:#39ff6a;font-weight:700;padding:6px 8px 4px;text-transform:uppercase}.map-ctx-sep{height:1px;background:#1c3a24;margin:4px 6px}.map-ctx-item{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;background:transparent;border:none;color:#e8f0ea;font-family:inherit;font-size:12px;text-align:left;padding:6px 8px;border-radius:3px;cursor:pointer}.map-ctx-item:hover:not(:disabled){background:#39ff6a14;color:#39ff6a}.map-ctx-item:disabled{opacity:.4;cursor:default}.map-ctx-item--warn{color:#ffb020}.map-ctx-hint{color:#8aa090;font-size:10px;letter-spacing:.4px}.map-focus-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);z-index:8;background:#0a120bf2;border:1px solid #2a4a33;color:#b8c6bc;font-size:11px;padding:5px 12px;border-radius:3px;pointer-events:none;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}.qgis-workbench--focus .qgis-aux,.qgis-workbench--focus .qgis-aux-top,.qgis-workbench--focus .qgis-dock{display:none}.qgis-workbench--focus .cop-stage,.qgis-workbench--focus .ol-map{min-height:calc(100vh - 112px)}.qgis-workbench--focus .ol-map{height:calc(100vh - 112px)}.map-mode .qgis-workbench--focus .ol-map{height:calc(100vh - 92px)}.cop-stage:fullscreen{width:100%;height:100%;min-height:100%;border:none;border-radius:0;background:#050a06}.cop-stage:fullscreen .ol-map{height:100%;min-height:100%}
