.pwa-banner {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      background: #1a1d2e;
      border-top: 1px solid rgba(99,102,241,.25);
      padding: 14px 16px;
      z-index: 99999;
      display: flex;
      flex-direction: column;
      gap: 10px;
      box-shadow: 0 -8px 32px rgba(0,0,0,.5);
      transform: translateY(110%);
      transition: transform .35s cubic-bezier(.4,0,.2,1);
      font-family: inherit;
      /* Safe area для iPhone снизу */
      padding-bottom: max(14px, env(safe-area-inset-bottom));
  }
  .pwa-banner--visible { transform: translateY(0); }

  .pwa-banner__content,
  .pwa-banner__ios-content {
      display: flex; align-items: center; gap: 12px;
  }
  .pwa-banner__icon {
      width: 48px; height: 48px; border-radius: 12px;
      flex-shrink: 0; object-fit: cover;
      box-shadow: 0 4px 12px rgba(0,0,0,.4);
  }
  .pwa-banner__text {
      display: flex; flex-direction: column; gap: 3px; flex: 1;
  }
  .pwa-banner__text strong {
      font-size: 14px; color: #e2e8f0; font-weight: 700;
  }
  .pwa-banner__text span {
      font-size: 12px; color: #94a3b8; line-height: 1.4;
  }
  .pwa-banner__text b { color: #a5b4fc; }

  .pwa-banner__actions {
      display: flex; gap: 8px; justify-content: flex-end;
  }
  .pwa-banner__dismiss {
      padding: 9px 16px;
      background: transparent;
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 10px;
      color: #64748b; font-size: 13px; cursor: pointer;
      transition: border-color .2s;
  }
  .pwa-banner__dismiss:active { opacity: .7; }
  .pwa-banner__install {
      padding: 9px 22px;
      background: linear-gradient(135deg, #6366f1, #8b5cf6);
      border: none; border-radius: 10px;
      color: #fff; font-size: 13px;
      font-weight: 700; cursor: pointer;
      box-shadow: 0 4px 16px rgba(99,102,241,.4);
      transition: opacity .2s, transform .1s;
  }
  .pwa-banner__install:active { opacity: .85; transform: scale(.97); }

  /* iOS специфика */
  .pwa-banner--ios {
      padding-bottom: max(32px, env(safe-area-inset-bottom));
      position: relative;
  }
  .pwa-banner__close {
      position: absolute; top: 10px; right: 12px;
      background: rgba(255,255,255,.06);
      border: none; border-radius: 50%;
      color: #64748b; font-size: 14px;
      cursor: pointer; padding: 4px 8px;
      line-height: 1;
  }
  .pwa-banner__arrow {
      position: absolute; bottom: 10px; left: 50%;
      transform: translateX(-50%);
      width: 0; height: 0;
      border-left: 9px solid transparent;
      border-right: 9px solid transparent;
      border-top: 9px solid rgba(99,102,241,.5);
  }

  .pwa-spinner {
      display: inline-block;
      width: 14px; height: 14px;
      border: 2px solid rgba(255,255,255,.3);
      border-radius: 50%;
      border-top-color: #fff;
      animation: pwa-spin 1s linear infinite;
      margin-right: 8px;
      vertical-align: middle;
  }
  @keyframes pwa-spin {
      to { transform: rotate(360deg); }
  }
