:root{--rac-region:#1769e0;--rac-region-soft:#eaf3ff}
.rac-version-badge{position:fixed;right:18px;bottom:18px;z-index:900;padding:8px 11px;border:1px solid #bcd4f3;border-radius:9px;background:#fff;color:#164b88;box-shadow:0 5px 18px #0c2f5a22;font:700 8px Inter}
.rac-network-tools{position:absolute;z-index:700;left:10px;right:10px;top:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px;border:1px solid #d7e3f1;border-radius:9px;background:#fffffff2;box-shadow:0 5px 14px #12375f1d;backdrop-filter:blur(5px)}
.rac-network-tools>select{grid-column:1/-1}
.rac-network-tools select,.rac-network-tools input,.rac-network-tools button{height:30px;border:1px solid #cfdae8;border-radius:6px;background:#fff;color:#264d78;font:700 7px Inter;padding:0 8px}
.rac-network-tools button{cursor:pointer}.rac-network-tools button.active{border-color:var(--rac-region);background:var(--rac-region);color:#fff}
.rac-network-tools .rac-erl-toggle{min-width:0}.rac-network-tools .rac-erl-toggle.active{border-color:#00c853;background:#00e676;color:#053d22;box-shadow:0 0 0 2px #00e67633}
.rac-network-tools .rac-fibre-toggle{min-width:0}.rac-network-tools .rac-fibre-toggle.active{border-color:#00a6d6;background:#dff9ff;color:#006785;box-shadow:0 0 0 2px #00c8ff33}
.rac-station-search{grid-column:1/-1;display:flex;gap:5px}.rac-station-search input{flex:1;min-width:0}.rac-station-search button{width:58px}
.rac-region-status{position:absolute;z-index:700;left:10px;right:10px;bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid #d9e5f2;border-radius:7px;background:#fffffff0;color:#526c89;font:600 6.5px Inter}
.rac-region-status strong{color:var(--rac-region)}.rac-region-status span:last-child{text-align:right}
.rac-erl-key{display:inline-block;width:18px;height:4px;margin-right:4px;border-radius:3px;background:#00e676;box-shadow:0 0 0 1px #00a846}
.rac-fibre-key{display:inline-block;width:18px;height:3px;margin-right:4px;border-radius:3px;background:repeating-linear-gradient(90deg,#00c8ff 0 6px,transparent 6px 9px)}
.rac-station-marker{transition:stroke-width .15s,r .15s}.rac-station-marker:hover{stroke-width:4}
.rac-track-tooltip,.rac-station-tooltip,.rac-fibre-tooltip{border:0!important;border-radius:7px!important;background:#0d315d!important;color:#fff!important;box-shadow:0 5px 15px #061c3880!important;font:700 7px Inter!important}
.rac-track-tooltip:before,.rac-station-tooltip:before,.rac-fibre-tooltip:before{border-top-color:#0d315d!important}
.rac-popup{min-width:210px;color:#244664;font:500 8px/1.45 Inter}.rac-popup strong{display:block;margin-bottom:3px;color:#0d3566;font:800 11px Manrope}.rac-popup small{display:block;margin-top:5px;color:#708399}.rac-popup-actions{display:flex;gap:5px;margin-top:8px}.rac-popup-actions button{flex:1;border:1px solid #cbd9e8;border-radius:5px;background:#f7faff;color:#175daf;padding:6px;font:700 7px Inter;cursor:pointer}.rac-popup-actions button.primary{border-color:#1769e0;background:#1769e0;color:#fff}
.rac-pano-layer-controls .rac-summary-trigger{grid-column:1/-1;display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:6px;width:100%;min-height:34px;padding:5px;border:1px solid #b8d4ef;border-radius:6px;background:#fff;color:#0d4f91;text-align:left;cursor:pointer}.rac-pano-layer-controls .rac-summary-trigger:hover{border-color:#1769e0;background:#eef6ff;box-shadow:0 3px 10px #0b2e6d24}.rac-pano-layer-controls .rac-summary-trigger:focus-visible{outline:2px solid #6bb4ff;outline-offset:1px}.rac-pano-layer-controls .rac-summary-trigger i{display:grid;place-items:center;width:22px;height:22px;border-radius:4px;background:#1769e0;color:#fff;font:800 13px Inter}.rac-pano-layer-controls .rac-summary-trigger span{display:grid;min-width:0}.rac-pano-layer-controls .rac-summary-trigger b{color:#0d4f91;font:800 7.3px/1.15 Inter}.rac-pano-layer-controls .rac-summary-trigger small{margin-top:2px;color:#6f849a;font:650 6.3px Inter}
.rac-summary-modal[hidden]{display:none}.rac-summary-modal{position:fixed;z-index:5000;inset:0;display:grid;place-items:center;padding:24px;background:#071f426b;backdrop-filter:blur(4px)}.rac-summary-dialog{width:min(1160px,96vw);max-height:88vh;overflow:hidden;border:1px solid #cbdceb;border-radius:16px;background:#f8fbff;box-shadow:0 24px 70px #071f4266;color:#173a62}.rac-summary-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px 17px;border-bottom:1px solid #dbe6f1;background:#fff}.rac-summary-dialog>header span{color:#1769e0;font:800 8px Inter;letter-spacing:.12em}.rac-summary-dialog>header h2{margin:4px 0;color:#0b2e6d;font:800 23px Manrope}.rac-summary-dialog>header p{margin:0;color:#6d8096;font:600 10px Inter}.rac-summary-close{width:34px;height:34px;border:1px solid #cfdeec;border-radius:8px;background:#fff;color:#42617e;font:700 22px/1 Inter;cursor:pointer}.rac-summary-table-wrap{max-height:calc(88vh - 170px);overflow:auto;padding:14px 18px}.rac-summary-dialog table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid #d7e3ef;border-radius:10px;background:#fff;font:600 10px Inter}.rac-summary-dialog th,.rac-summary-dialog td{padding:9px 11px;border-right:1px solid #e3ebf3;border-bottom:1px solid #e3ebf3;text-align:left}.rac-summary-dialog tr>*:last-child{border-right:0}.rac-summary-dialog thead th{position:sticky;top:0;z-index:1;background:#edf5fe;color:#315a84;font-size:8px;letter-spacing:.04em;text-transform:uppercase}.rac-summary-dialog tbody th{min-width:120px;background:#f8fbff;vertical-align:top}.rac-summary-dialog tbody th i{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:var(--region-color)}.rac-summary-dialog tbody th strong{display:inline;color:#0d3566}.rac-summary-dialog tbody th span{display:block;margin:5px 0 0 15px;color:#698097;font-size:8px}.rac-summary-dialog td.number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rac-summary-dialog td.region-total{background:#f5f9fe;color:#0d4f91;font-weight:800;vertical-align:middle}.rac-summary-dialog td.station-count{min-width:72px;text-align:center}.rac-summary-dialog td.station-names{min-width:225px;padding:8px;vertical-align:top}.rac-summary-dialog td.station-names span{display:block;padding:3px 7px;border-bottom:1px solid #dfe9f3;color:#315b84;font-size:8px;line-height:1.3}.rac-summary-dialog td.station-names span:last-child{border-bottom:0}.rac-summary-dialog tfoot th,.rac-summary-dialog tfoot td{border-bottom:0;background:#0d4f91;color:#fff;font-weight:800}.rac-summary-dialog tfoot td{text-align:right;white-space:nowrap}.rac-summary-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 20px;border-top:1px solid #dbe6f1;background:#fff}.rac-summary-dialog>footer small{color:#71869d;font:600 8px Inter}.rac-summary-dialog>footer div{display:flex;gap:8px}.rac-summary-dialog>footer button{height:34px;padding:0 16px;border:1px solid #bfd2e5;border-radius:7px;background:#fff;color:#175daf;font:800 9px Inter;cursor:pointer}.rac-summary-dialog>footer button.primary{border-color:#1769e0;background:#1769e0;color:#fff}@media(max-width:720px){.rac-summary-modal{padding:8px}.rac-summary-dialog{width:100%;max-height:96vh}.rac-summary-table-wrap{padding:8px;overflow:auto}.rac-summary-dialog table{min-width:900px}.rac-summary-dialog>footer{align-items:flex-start;flex-direction:column}.rac-summary-dialog>footer div{width:100%}.rac-summary-dialog>footer button{flex:1}}
.rac-fibre-popup em{display:block;margin:7px 0;padding:6px;border-left:3px solid #00c8ff;background:#eefbff;color:#46647f;font-style:normal}.rac-fibre-popup a{color:#007aa3;font-weight:800}
.rac-pano-layer-controls{position:absolute;z-index:1000;top:48px;right:12px;width:156px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:0;padding:6px;border:1px solid rgba(170,201,233,.72);border-radius:8px;background:rgba(255,255,255,.76);box-shadow:0 7px 18px #082b5b22;color:#244d78;pointer-events:auto;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.rac-pano-layer-controls>strong{grid-column:1/-1;white-space:nowrap;color:#1769e0;font:800 8px Inter;letter-spacing:.06em}.rac-pano-layer-controls>small{display:none}
.rac-pano-layer-controls select{grid-column:1/-1;width:100%;height:25px;border:1px solid rgba(180,204,228,.8);border-radius:4px;background:rgba(255,255,255,.78);color:#244d78;padding:0 4px;font:750 7.5px Inter}
.rac-pano-layer-controls .rac-asset-network-select{border-color:#83b6eb;background:#eef6ff;color:#0d4f91;font-weight:800}
.rac-pano-layer-controls label{display:flex!important;align-items:center;gap:4px;min-width:0;min-height:24px;padding:4px!important;border:1px solid rgba(200,217,234,.76);border-radius:4px;background:rgba(255,255,255,.7)!important;color:#405b79!important;font-size:7.5px!important}.rac-pano-layer-controls label input{flex:0 0 auto;width:12px;height:12px;margin:0}.rac-pano-layer-controls label .layer-symbol{flex:0 0 auto}.rac-pano-layer-controls label b{min-width:0;font:750 7.5px Inter}
.rac-pano-layer-controls .rac-erl-control{border-color:#6ee7a0;background:#fff!important;color:#075c30!important}.rac-pano-layer-controls .rac-erl-control b{font:800 7.5px Inter}.rac-pano-layer-controls .rac-erl-control em{display:none}
.rac-pano-layer-controls .rac-fibre-control{border-color:#6edfff;background:#fff!important;color:#006d8b!important}.rac-pano-layer-controls .rac-fibre-control b{font:800 7.5px Inter}.rac-pano-layer-controls .rac-fibre-control em{display:none}
.rac-track-symbol{background:var(--rac-region)!important;border-radius:3px;height:3px!important}.rac-station-symbol{width:10px!important;height:10px!important;border:2px solid #fff;border-radius:50%;background:var(--rac-region)!important;box-shadow:0 0 0 1px var(--rac-region)}
.rac-erl-symbol{background:#00e676!important;border-radius:3px;height:4px!important;box-shadow:0 0 0 1px #00a846}
.rac-fibre-symbol{height:3px!important;border-radius:3px;background:repeating-linear-gradient(90deg,#00c8ff 0 6px,transparent 6px 9px)!important}
.rac-pano-station-marker{filter:drop-shadow(0 1px 2px #0b274e66)}
#vih .vih-map-window.rac-regional-map .osm-map{height:calc(100% - 50px);min-height:470px}
#vih .vih-map-window.rac-regional-map .vih-window-head,#vih .vih-map-window.rac-regional-map .vih-layer-chips{display:none}
@media(min-width:1201px){
 #sensors .spatial-workspace.rac-spatial-resizable{
  --rac-pano-width:38%;
  grid-template-columns:minmax(340px,var(--rac-pano-width)) 16px minmax(360px,1fr);
  gap:0;
 }
 #sensors .spatial-workspace.rac-spatial-resizable>#sensorsLiveWorkspace,
 #sensors .spatial-workspace.rac-spatial-resizable>.gis-panel{min-width:0}
 .rac-spatial-splitter{position:relative;z-index:1100;width:16px;height:100%;align-self:stretch;cursor:col-resize;touch-action:none;user-select:none;outline:0}
 .rac-spatial-splitter::before{content:"";position:absolute;inset:0 6px;border-radius:6px;background:#d5e1ee;box-shadow:inset 0 0 0 1px #c4d3e3;transition:background .15s,box-shadow .15s}
 .rac-spatial-splitter span{position:absolute;left:50%;top:50%;width:12px;height:50px;border:1px solid #b7c9dc;border-radius:8px;background:#fff;box-shadow:0 4px 12px #0b2e6d2e;transform:translate(-50%,-50%)}
 .rac-spatial-splitter span::before{content:"";position:absolute;left:3px;top:14px;width:4px;height:20px;border-left:1px solid #7f99b4;border-right:1px solid #7f99b4}
 .rac-spatial-splitter:hover::before,.rac-spatial-splitter:focus-visible::before,.rac-spatial-splitter.is-dragging::before{background:#2786f2;box-shadow:0 0 0 3px #2786f22b}
 .rac-spatial-splitter:focus-visible span{border-color:#1769e0;box-shadow:0 0 0 3px #1769e033,0 4px 12px #0b2e6d2e}
 body.rac-spatial-resizing,body.rac-spatial-resizing *{cursor:col-resize!important}
 .rac-pano-layer-controls,.rac-asset-layer-manager{flex:none}
 #sensors .spatial-workspace .gis-panel{background:#fff!important}
 #sensors .gis-layer-controls{
  position:relative;
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:4px!important;
  max-height:none!important;
  min-height:0;
  margin:5px 0 0!important;
  padding:27px 5px 5px!important;
  overflow:visible!important;
  border:1px solid #cbdced;
  border-radius:7px;
  background:#fff!important;
  box-shadow:0 3px 10px #0b2e6d14;
 }
 #sensors .gis-layer-controls>#alignmentLayer{display:none!important}
 #sensors .gis-layer-strip-title{position:absolute;left:8px;top:8px;color:#24517f;font:800 9px Inter;letter-spacing:.06em}
 #sensors .gis-close-all-layers{position:absolute;right:6px;top:4px;z-index:5;width:auto;min-width:62px;height:20px;padding:0 8px;border-radius:4px;box-shadow:none;font:800 8px Inter}
 #sensors .gis-layer-controls label{
  box-sizing:border-box;
  display:flex!important;
  align-items:center;
  gap:5px;
  min-width:0;
  min-height:34px;
  margin:0;
  padding:4px 5px!important;
  border:1px solid #d9e5f1!important;
  border-radius:5px;
  background:#fff!important;
  color:#264b72!important;
  box-shadow:none!important;
  cursor:pointer;
 }
 #sensors .gis-layer-controls label:hover{border-color:#79aee8!important;background:#f7fbff!important}
 #sensors .gis-layer-controls label:has(input:checked){border-color:#86b7e9!important;background:#fff!important}
 #sensors .gis-layer-controls label input{flex:0 0 auto;width:13px;height:13px;margin:0}
 #sensors .gis-layer-controls label .layer-symbol{flex:0 0 auto;width:9px;height:9px}
 #sensors .gis-layer-controls label>span:last-child{min-width:0;font:750 clamp(7px,.66vw,10px)/1.15 Inter;overflow-wrap:anywhere}
 #sensors .gis-layer-controls .defect-layer-control{grid-column:auto;position:static;z-index:auto;color:#754000!important}
}
@media(max-width:1200px){.rac-spatial-splitter{display:none}#sensors .spatial-workspace.rac-spatial-resizable{grid-template-columns:1fr}}
@media(max-width:800px){.rac-network-tools{grid-template-columns:1fr auto}.rac-network-tools select{grid-column:1/-1}.rac-region-status{align-items:flex-start;flex-direction:column}.rac-region-status span:last-child{text-align:left}.rac-pano-layer-controls{top:48px;right:8px;width:156px;padding:6px}}
