    /* ── Bottom Navigation Bar ── */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  width: min(480px, 100%);
  max-width: 480px;
  background: rgba(12, 12, 16, 0.9);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
      border-top: 1px solid var(--border);
      display: flex;
      justify-content: space-around;
      align-items: flex-end;
      padding: 10px 8px env(safe-area-inset-bottom, 20px);
      z-index: 100;
      opacity: 1;
      transition: opacity 0.22s ease;
    }

    body.is-keyboard-open .bottom-nav {
      visibility: hidden;
      opacity: 0;
      pointer-events: none;
    }

    /* Remove old inner wrapper — no longer needed */
    .bottom-nav-inner {
      display: contents;
    }

    /* ── Base tab button reset ── */
    .tab-btn {
      appearance: none;
      background: transparent;
      border: none;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
      padding: 0;
    }

    /* ── Regular nav item ── */
    .nav-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      flex: 1;
      padding: 4px 0;
    }

    /* Icon */
    .nav-item .tab-icon {
      font-size: 20px;
      line-height: 1;
      opacity: 0.25;
      transition: opacity 0.15s, color 0.15s;
      color: var(--text);
    }

    .nav-item .tab-icon svg {
      width: 20px;
      height: 20px;
      display: block;
      stroke: currentColor;
      fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    /* Label */
    .nav-item .tab-label {
      font-family: 'Manrope', sans-serif;
      font-size: 10px;
      font-weight: 700;
      color: var(--muted);
      transition: color 0.15s;
      line-height: 1;
    }

    /* Active dot */
    .nav-item::after {
      content: '';
      display: block;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: transparent;
      transition: background 0.15s, box-shadow 0.15s;
    }

    /* Active state */
    .nav-item.active .tab-icon  { opacity: 1; color: var(--accent); }
    .nav-item.active .tab-label { color: var(--accent); }
    /* Active dot disabled: keep pseudo-element space to avoid layout shifts. */

    /* ── FAB slot — inline, same flex:1 ── */
    .nav-fab {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      flex: 1;
      padding: 0 0 4px;
    }

    .fab-btn {
      width: 48px;
      height: 48px;
      border-radius: 16px;
      background: var(--accent);
      color: #000e1a;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 18px var(--accent-glow);
      transition: transform 0.15s, box-shadow 0.15s;
      pointer-events: none; /* clicks handled by parent button */
    }

    .fab-btn svg {
      width: 22px;
      height: 22px;
      stroke: #000e1a;
      fill: none;
    }

    .nav-fab:active .fab-btn {
      transform: scale(0.93);
      box-shadow: 0 2px 10px var(--accent-glow);
    }

    .fab-label {
      font-family: 'Manrope', sans-serif;
      font-size: 10px;
      font-weight: 700;
      color: var(--accent);
      line-height: 1;
    }

    /* FAB pulse animation */
    @keyframes fabPulse {
      0%, 100% {
        box-shadow: 0 4px 18px var(--accent-glow);
        transform: scale(1);
      }
      50% {
        box-shadow: 0 6px 26px var(--accent-glow), 0 0 36px rgba(56, 189, 248, 0.15);
        transform: scale(1.04) translateY(-1px);
      }
    }

    .nav-fab .fab-btn {
      animation: fabPulse 3s cubic-bezier(0.36, 0, 0.22, 1) infinite;
      will-change: transform, box-shadow;
    }

    .nav-fab:active .fab-btn,
    body.is-keyboard-open .nav-fab .fab-btn {
      animation: none;
    }

    /* Active state on FAB (when add tab is open) */
    .nav-fab.active .fab-btn {
      animation: none;
      box-shadow: 0 6px 24px var(--accent-glow);
    }

    @media (prefers-reduced-motion: reduce) {
      .nav-item .tab-icon,
      .nav-item .tab-label,
      .nav-fab .fab-btn {
        transition: none !important;
        animation: none !important;
      }
    }
