/* BVG Widget */
.holo-tile .tile-inner.tile-bvg {
  padding: 0;
  align-items: stretch;
  justify-content: flex-start;
}

.bvg-widget {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #111;
  border-radius: 15px;
  overflow: hidden;
}

.bvg-header {
  background: var(--bvg-yellow);
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #000;
  flex-shrink: 0;
}

.bvg-station {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 0.78rem;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: 0.03em;
}

.bvg-pulse {
  width: 8px;
  height: 8px;
  background: #000;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}

.bvg-pulse::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: inherit;
  animation: bvg-pulse-anim 2s infinite;
}

@keyframes bvg-pulse-anim {
  0% { transform: scale(1); opacity: 1; }
  100% { transform: scale(3); opacity: 0; }
}

.bvg-header-icon {
  font-size: 0.85rem;
  opacity: 0.85;
}

.bvg-list {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 4px 0;
  scrollbar-width: none;
}

.bvg-list::-webkit-scrollbar {
  display: none;
}

.bvg-item {
  display: flex;
  align-items: center;
  padding: 9px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  animation: bvgFade 0.4s ease-out;
}

.bvg-item:last-child {
  border-bottom: none;
}

@keyframes bvgFade {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

.bvg-badge {
  width: 44px;
  height: 22px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 900;
  font-size: 0.7rem;
  color: #fff;
  flex-shrink: 0;
  letter-spacing: 0.02em;
}

.bvg-badge.tram { background: #be002b; }
.bvg-badge.bus  { background: #95276e; }
.bvg-badge.subway { background: #1c5ba5; }
.bvg-badge.other { background: #555; }

.bvg-dest {
  flex: 1;
  margin: 0 12px;
  font-size: 0.78rem;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #eee;
}

.bvg-time-box {
  text-align: right;
  min-width: 58px;
  flex-shrink: 0;
}

.bvg-min {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  font-size: 0.85rem;
  color: #fff;
  display: block;
  line-height: 1.1;
}

.bvg-delay {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
}

.bvg-delay.ontime { color: #4ade80; }
.bvg-delay.late   { color: #f87171; }

.bvg-footer {
  padding: 7px 14px;
  background: #000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.6rem;
  color: #666;
  border-top: 1px solid rgba(255,255,255,0.05);
  flex-shrink: 0;
  letter-spacing: 0.03em;
}

.bvg-refresh {
  color: var(--bvg-yellow);
  cursor: pointer;
  font-weight: 700;
  letter-spacing: 0.03em;
  transition: opacity 0.2s ease;
}

.bvg-refresh:hover {
  opacity: 0.7;
}

.bvg-status {
  padding: 40px 14px;
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.65rem;
  color: #666;
  letter-spacing: 0.03em;
}

/* Mobile */
@media (max-width: 640px) {
  .bvg-station { font-size: 0.68rem; }
  .bvg-item { padding: 7px 10px; }
  .bvg-badge { width: 36px; height: 20px; font-size: 0.62rem; }
  .bvg-dest { font-size: 0.7rem; margin: 0 8px; }
  .bvg-min { font-size: 0.75rem; }
  .bvg-delay { font-size: 0.55rem; }
  .bvg-footer { font-size: 0.55rem; padding: 6px 10px; }
}