.crsm-v11[data-crsm-app] .crsm-v11__glass-svg {
  color: #72ddff;
  background: #07111e;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-stage-background {
  fill: #0a1726;
  stroke: #29506a;
  stroke-width: 2;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-stage-glow {
  color: #32c9ff;
  opacity: 0.7;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-stage-grid {
  opacity: 0.46;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-grid-line {
  fill: none;
  stroke: #4285a3;
  stroke-width: 1;
  opacity: 0.42;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-node,
.crsm-v11[data-crsm-app] .crsm-v11__glass-edge {
  cursor: pointer;
  transition: opacity 160ms ease;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-building-faces {
  color: #69dcff;
  transform-box: fill-box;
  transform-origin: center;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-face,
.crsm-v11[data-crsm-app] .crsm-v11__glass-building-inner {
  stroke: #8ae7ff;
  stroke-width: 1.8;
  vector-effect: non-scaling-stroke;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-face--top { fill-opacity: 0.72; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-face--front { fill-opacity: 0.66; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-face--side { fill-opacity: 0.58; }

.crsm-v11[data-crsm-app] .crsm-v11__glass-building-inner {
  stroke: #d3f7ff;
  stroke-dasharray: 4 4;
  opacity: 0.54;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-node--active .crsm-v11__glass-building-faces { color: #55dcff; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--planned .crsm-v11__glass-building-faces { color: #b29cff; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--atRisk .crsm-v11__glass-building-faces { color: #ff8a7a; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--retired .crsm-v11__glass-building-faces { color: #8499aa; opacity: 0.72; }

.crsm-v11[data-crsm-app] .crsm-v11__glass-node--active .crsm-v11__glass-face { stroke-dasharray: none; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--planned .crsm-v11__glass-face { stroke-dasharray: 8 5; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--atRisk .crsm-v11__glass-face { stroke-dasharray: 12 4 2 4; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--retired .crsm-v11__glass-face {
  stroke-dasharray: 2 6;
  stroke-linecap: round;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-node--critical .crsm-v11__glass-face { stroke-width: 3.2; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--high .crsm-v11__glass-face { stroke-width: 2.6; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-node--low .crsm-v11__glass-face { stroke-width: 1.4; }

.crsm-v11[data-crsm-app] .crsm-v11__glass-label {
  fill: #f4fcff;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 750;
  paint-order: stroke fill;
  pointer-events: none;
  stroke: #07111e;
  stroke-linejoin: round;
  stroke-width: 4;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge-line,
.crsm-v11[data-crsm-app] .crsm-v11__glass-edge-halo,
.crsm-v11[data-crsm-app] .crsm-v11__glass-edge-hit {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge-line {
  stroke: #67dcff;
  stroke-linecap: round;
  stroke-width: 2.4;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge-halo {
  stroke: #092033;
  stroke-linecap: round;
  stroke-width: 10;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge-hit {
  pointer-events: stroke;
  stroke: transparent;
  stroke-width: 44;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge--critical .crsm-v11__glass-edge-line { stroke-width: 4; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-edge--high .crsm-v11__glass-edge-line { stroke-width: 3.2; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-edge--medium .crsm-v11__glass-edge-line { stroke-width: 2.4; }
.crsm-v11[data-crsm-app] .crsm-v11__glass-edge--low .crsm-v11__glass-edge-line { stroke-width: 1.8; }

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge--planned .crsm-v11__glass-edge-line {
  stroke: #b29cff;
  stroke-dasharray: 8 6;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge--atRisk .crsm-v11__glass-edge-line {
  stroke: #ff8a7a;
  stroke-dasharray: 12 4 3 4;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge--retired .crsm-v11__glass-edge-line {
  stroke: #8499aa;
  stroke-dasharray: 2 7;
  opacity: 0.76;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-node.is-selected .crsm-v11__glass-face {
  stroke: #fff3a3;
  stroke-dasharray: none;
  stroke-width: 4;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-node.is-related .crsm-v11__glass-face {
  stroke-width: 3;
  stroke-dasharray: 7 3;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge.is-selected .crsm-v11__glass-edge-line {
  stroke: #fff3a3;
  stroke-width: 5;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge.is-related .crsm-v11__glass-edge-line {
  stroke: #d9f7ff;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-svg.has-selection :is(.crsm-v11__glass-node, .crsm-v11__glass-edge) {
  opacity: 0.22;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-svg.has-selection :is(.is-selected, .is-related) {
  opacity: 1;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-node[data-crsm-map-node]:focus .crsm-v11__glass-face {
  stroke: #fff3a3;
  stroke-dasharray: none;
  stroke-width: 5;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-edge[data-crsm-map-edge]:focus .crsm-v11__glass-edge-halo {
  stroke: #fff3a3;
  stroke-width: 10;
}

.crsm-v11[data-crsm-app] :is(
  .crsm-v11__glass-node[data-crsm-map-node],
  .crsm-v11__glass-edge[data-crsm-map-edge]
):focus {
  outline: 3px solid #fff3a3;
  outline-offset: 3px;
}

.crsm-v11[data-crsm-app] :is(
  [data-crsm-map-mode="glass"],
  [data-crsm-map-action="rotate"],
  [data-crsm-map-action="fit"],
  [data-crsm-map-action="zoom-in"],
  [data-crsm-map-action="zoom-out"]
) {
  min-width: 44px;
  min-height: 44px;
}

.crsm-v11[data-crsm-app] .crsm-v11__glass-building-faces.is-rotating {
  animation: crsm-v11-glass-turn 1200ms cubic-bezier(0.35, 0.08, 0.2, 1) both;
}

@keyframes crsm-v11-glass-turn {
  from { transform: perspective(720px) rotateY(0deg); }
  to { transform: perspective(720px) rotateY(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .crsm-v11[data-crsm-app] .crsm-v11__glass-node,
  .crsm-v11[data-crsm-app] .crsm-v11__glass-edge {
    transition: none;
  }

  .crsm-v11[data-crsm-app] .crsm-v11__glass-building-faces.is-rotating {
    animation: none;
  }
}
