/* Reference-calibrated corrections. The source screenshot is 1672px wide and
   the dashboard is authored at 1920px, so screenshot crops are scaled by
   1920 / 1672 before the stage-level responsive transform is applied. */
.brand {
  width: 690px;
  min-width: 690px;
  height: 77px;
}

.brand::before {
  width: 558px;
  height: 77px;
  background-image: url("./assets/brand-logo.png?v=20260820-1");
  background-size: 558px 77px;
}

.tool-button img {
  flex-basis: 28px;
  width: 28px;
  height: 28px;
  filter: none;
}

.alarm-icon img {
  width: 42px;
  height: 42px;
  filter: none;
}

/* The original fixed scan ring is replaced by a georeferenced Cesium marker,
   so it follows the globe while the user drags or tilts the map. */
.map-scan {
  display: none;
}

.map-visual-mask {
  opacity: .37;
  background:
    linear-gradient(180deg, rgba(0, 8, 19, .24) 0, rgba(0, 17, 31, .05) 29%, rgba(0, 14, 27, .05) 69%, rgba(0, 6, 15, .54) 100%),
    radial-gradient(ellipse at 49% 51%, rgba(18, 74, 104, .02) 25%, rgba(0, 18, 34, .12) 72%, rgba(0, 5, 14, .46) 100%),
    linear-gradient(90deg, rgba(0, 23, 43, .18), transparent 22%, transparent 77%, rgba(0, 11, 25, .30));
}

.map-visual-mask::after {
  opacity: .045;
}

.map-panel.map-bright .map-visual-mask {
  opacity: .30;
}


.warning-map-overlay,
.warning-marker-layer,
.warning-label-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.warning-map-overlay {
  z-index: 5;
}

.warning-map-overlay[hidden] {
  display: none !important;
}

.warning-marker-layer {
  z-index: 1;
}

.warning-label-layer {
  z-index: 2;
}

.warning-map-marker,
.warning-map-label {
  position: absolute;
  top: 0;
  left: 0;
  transform-origin: center;
  will-change: transform;
}

.warning-map-marker {
  display: block;
  object-fit: contain;
  filter: none;
}

.warning-map-label {
  min-width: 156px;
  max-width: 220px;
  box-sizing: border-box;
  padding: 10px 12px 10px;
  border: 1px solid rgba(33, 151, 255, .88);
  border-radius: 8px;
  color: #f4fbff;
  background: linear-gradient(180deg, rgba(5, 31, 55, .96), rgba(3, 19, 35, .95));
  box-shadow: 0 0 0 1px rgba(0, 91, 171, .25), 0 0 14px rgba(0, 129, 238, .22), inset 0 1px rgba(108, 204, 255, .08);
  white-space: nowrap;
}

.warning-map-label strong {
  display: block;
  overflow: hidden;
  color: #f5fbff;
  font: 700 16px/22px "Microsoft YaHei", sans-serif;
  text-overflow: ellipsis;
  letter-spacing: 0;
}

.warning-map-label span {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 5px;
  color: #d8e8f5;
  font: 500 13px/18px "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
}

.warning-map-label span i {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: #ffc229;
  box-shadow: 0 0 7px rgba(255, 194, 41, .62);
}

.warning-map-label span b {
  color: inherit;
  font: inherit;
}

.warning-map-label--level-1 span i {
  background: #ff4b52;
  box-shadow: 0 0 8px rgba(255, 48, 66, .72);
}

.warning-map-label--level-3 span i {
  background: #23cfff;
  box-shadow: 0 0 7px rgba(35, 207, 255, .62);
}

.warning-map-marker[hidden],
.warning-map-label[hidden] {
  display: none;
}


.ui-icon {
  display: block;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
}

.level-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.level-icon {
  display: inline-grid;
  place-items: center;
  color: #7f96ab;
}

.level-icon .ui-icon {
  width: 20px;
  height: 20px;
}

.level-button.is-active .level-icon {
  color: #36cfff;
  filter: drop-shadow(0 0 5px rgba(54, 207, 255, .42));
}

.operator-avatar .ui-icon {
  width: 18px;
  height: 18px;
}

.operator-caret,
.terminal-entry__arrow {
  display: grid;
  place-items: center;
}

.operator-caret .ui-icon {
  width: 17px;
  height: 17px;
}

.terminal-entry__arrow .ui-icon {
  width: 20px;
  height: 20px;
}

.metric-icon .ui-icon {
  width: 32px;
  height: 32px;
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--card-accent) 66%, transparent));
}

.district-title {
  display: flex;
  align-items: center;
  gap: 10px;
}

.district-title > span {
  margin-right: 0;
}

.district-title .level-icon {
  color: #25c9ff;
  filter: drop-shadow(0 0 5px rgba(37, 201, 255, .35));
}
