/* Top bar */
.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: 0 var(--space-4);
  background: var(--bg-nav);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--color-line);
}
.topbar .brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-text);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-3);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
}
.topbar .brand img { width: 28px; height: 28px; }
.topbar .grow { flex: 1; }
.topbar .points-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 4px var(--space-3) 4px 4px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid var(--color-magenta);
  border-radius: var(--radius-pill);
  color: var(--color-magenta-soft);
  font-weight: 700;
  font-size: var(--fs-small);
  letter-spacing: 0.06em;
  box-shadow: 0 0 14px rgba(255, 0, 153, 0.35);
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
  line-height: 1;
}
.topbar button.points-pill {
  -webkit-appearance: none;
  appearance: none;
}
.topbar .points-pill .star { color: var(--color-magenta); }
.topbar .points-pill__avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}
.topbar .logout {
  background: transparent;
  color: var(--color-text-soft);
  border: 1px solid var(--color-line-strong);
  border-radius: var(--radius-pill);
  padding: var(--space-2) var(--space-3);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  min-height: 0;
  box-shadow: none;
  font-weight: 600;
}
.topbar .logout:hover { color: var(--color-text); }
.topbar form.inline { margin: 0; }

/* Tab bar — visible on mobile, hidden on wider screens */
.tabbar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 30;
  height: calc(var(--tab-h) + env(safe-area-inset-bottom));
  display: flex;
  align-items: stretch;
  padding-bottom: env(safe-area-inset-bottom);
  background: rgba(11, 10, 31, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid var(--color-line);
}
.tabbar a {
  flex: 1;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-decoration: none;
  color: var(--color-text-soft);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.06em;
}
.tabbar a .icon { width: 22px; height: 22px; }
.tabbar a.active {
  color: var(--color-cyan);
  text-shadow: 0 0 12px rgba(0, 229, 255, 0.7);
}
.tabbar a.active .icon { filter: drop-shadow(0 0 8px rgba(0, 229, 255, 0.7)); }

/* Center scan tab gets a special visual lift */
.tabbar a.tab-scan {
  position: relative;
}
.tabbar a.tab-scan .scan-fab {
  position: absolute;
  top: -22px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--grad-fire);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 3px rgba(11, 10, 31, 1), 0 8px 24px rgba(255, 0, 153, 0.55);
  color: #fff;
}
.tabbar a.tab-scan .scan-fab .icon { width: 26px; height: 26px; stroke: #fff; }
.tabbar a.tab-scan .scan-label {
  margin-top: 32px;
  color: var(--color-text-soft);
}
.tabbar a.tab-scan.active .scan-label { color: var(--color-cyan); text-shadow: none; }

@media (min-width: 720px) {
  .tabbar { display: none; }
  body.has-tabbar { padding-bottom: env(safe-area-inset-bottom); }
}
@media (max-width: 719px) {
  body.has-tabbar { padding-bottom: calc(var(--tab-h) + env(safe-area-inset-bottom)); }
}
