/* Shared SVG vocabulary; intentionally scoped away from the storefront theme. */
.ol-scheme, .ol-symbols, .ol-type-icon {
  --ol-line: #1a2733;
  --ol-pipe: #e3ebf3;
  --ol-liquid: #5984d6;
  --ol-dim: #0d5c91;
  --ol-active: #f59e0b;
  --ol-flow: #1a6fb5;
}
.ol-symbols { position: absolute; width: 0; height: 0; overflow: hidden; }
.ol-scheme { display: block; width: 100%; height: auto; color: var(--ol-line); fill: none; stroke: var(--ol-line); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; font-family: inherit; }
.ol-scheme text { fill: var(--ol-line); stroke: white; stroke-width: 4px; paint-order: stroke; stroke-linejoin: round; font-family: inherit; font-size: 14px; font-weight: 400; }
.ol-detail { stroke: var(--ol-line); stroke-width: 2; fill: none; }
.ol-detail circle, .ol-detail rect, circle.ol-detail, rect.ol-detail { fill: white; }
.ol-scheme .ol-cable { fill: none; stroke: var(--ol-line); stroke-width: 1; stroke-dasharray: 4 3; opacity: .65; }
.ol-scheme .ol-pipe { fill: none; stroke: var(--ol-line); stroke-width: 8; }
.ol-scheme .ol-pipe-inner { fill: none; stroke: var(--ol-pipe); stroke-width: 4; }
.ol-scheme .ol-liquid { fill: var(--ol-liquid); fill-opacity: .18; stroke: none; }
.ol-scheme .ol-level { color: var(--ol-liquid); stroke: var(--ol-liquid); stroke-width: 1.5; fill: none; }
.ol-scheme .ol-flow { color: var(--ol-flow); stroke: var(--ol-flow); fill: none; stroke-width: 2; }
.ol-scheme .ol-note { fill: var(--ol-line); }
.ol-scheme [data-dim] { color: var(--ol-dim); stroke: currentColor; stroke-width: 1.5; fill: none; }
.ol-scheme [data-dim].ol-level { color: var(--ol-liquid); stroke: var(--ol-liquid); }
.ol-scheme [data-dim] text { fill: currentColor; }
.ol-scheme [data-dim].is-active { color: var(--ol-active); stroke-width: 3; }
.ol-scheme [data-dim].is-active text { font-weight: 700; }
.ol-scheme--heating [data-option] { display: none; }
.ol-scheme--heating [data-option].is-on { display: inline; }
.ol-type-icon { display: block; width: 48px; height: 48px; color: var(--ol-dim); flex: none; }
.ol-type-choice:hover .ol-type-icon, .ol-type-choice:focus-within .ol-type-icon { color: var(--ol-liquid); }
@media (forced-colors: active) {
  .ol-scheme [data-dim].is-active { color: Highlight; }
}

/* Short identifiers pair with full, numbered labels in the form. */
.ol-scheme .ol-dim-number { font-size: 18px; font-weight: 700; }

.ol-scheme .ol-dim-marker{fill:#fff;stroke:currentColor;stroke-width:1.5}
.ol-scheme [data-dim].is-active .ol-dim-marker{stroke-width:3}

.ol-scheme [data-dim] .ol-route-line{stroke:transparent;fill:none}
.ol-scheme [data-dim].is-active .ol-route-line{stroke:currentColor;stroke-width:4}
/* Keep the active stroke amber while its text remains readable on white. */
.ol-scheme [data-dim].is-active .ol-dim-number{fill:#7a4100}

/* Keep context visible, but give the selected measurement visual priority. */
.ol-scheme [data-dim]>path{opacity:.35;pointer-events:none}
.ol-scheme:has([data-dim].is-active) [data-dim]:not(.is-active)>path{opacity:.1}
.ol-scheme [data-dim].is-active>path{opacity:1}
.ol-scheme [data-dim] .ol-dim-marker,.ol-scheme [data-dim] .ol-dim-number{cursor:pointer}
.ol-scheme [data-dim]:focus-visible{outline:none}
.ol-scheme [data-dim]:focus-within .ol-dim-marker{stroke:#0d5c91;stroke-width:3}

.ol-scheme [data-dim].is-active{stroke:var(--ol-active)}

.ol-scheme [data-dim] .ol-dim-hit{fill:transparent;stroke:none;pointer-events:all;cursor:pointer}

.ol-scheme .ol-dim-hit:focus-visible{outline:none}