.rack-view{
  border:1px solid rgba(0,255,0,.18);
  border-radius:18px;
  background: rgba(255,255,255,.03);
  padding:14px;
}
.u-grid{
  display:grid;
  grid-template-rows: repeat(var(--u), 20px);
  gap:2px;
  position:relative;
  background: rgba(0,0,0,.16);
  border-radius:14px;
  padding:10px 10px 10px 56px;
  min-height: 300px;
}
.u-row{ border-bottom:1px dashed rgba(0,255,0,.10); position:relative; }
.u-label{
  position:absolute;
  left:-48px;
  width:44px;
  text-align:right;
  color: rgba(0,255,0,.7);
  font-size:11px;
  top:-6px;
}
.device-block{
  position:absolute;
  left:56px;
  right:10px;
  border-radius:12px;
  border:1px solid rgba(0,255,0,.25);
  padding:8px 10px;
  overflow:hidden;
  cursor:default;
}
.device-type-switch{ background: rgba(0,128,255,.18); }
.device-type-patchpanel{ background: rgba(180,180,180,.14); }
.device-type-server{ background: rgba(0,255,0,.14); }
.device-type-firewall{ background: rgba(255,128,0,.16); }
.device-type-ups{ background: rgba(180,0,255,.16); }
.device-type-router{ background: rgba(255,0,128,.16); }
.device-type-other,
.device-type-pc,
.device-type-printer,
.device-type-network{ background: rgba(255,255,255,.08); }
.device-title{ font-weight:700; font-size:13px; }
.device-meta{ color: rgba(0,255,0,.7) !important; font-size:11px; }
.label-qr-fake{
  border:1px dashed rgba(0,255,0,.35);
  padding:16px;
  border-radius:12px;
  font-family:monospace;
  font-size:14px;
  background: rgba(0,255,0,.05);
}
