.sw-pwa-banner {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: -100px;
  z-index: 999999;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #FAF6F1; /* Paper */
  border: 2px solid #423244; /* Ink */
  color: #423244;
  padding: 16px 18px;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(66, 50, 68, 0.25);
  font-size: 16px;
  line-height: 1.3;
  transition: bottom 0.25s ease-out;
}

.sw-pwa-banner-visible {
  bottom: 16px;
}

.sw-pwa-banner-text {
  flex: 1;
  font-weight: 600;
}

.sw-pwa-banner-btn {
  min-height: 44px;
  min-width: 44px;
  padding: 10px 18px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  border: 2px solid #423244;
}

.sw-pwa-banner-install {
  background: #423244; /* Ink */
  color: #FAF6F1;
}

.sw-pwa-banner-install:hover,
.sw-pwa-banner-install:focus-visible {
  background: #D9A664; /* Gold */
  color: #423244;
  border-color: #D9A664;
}

.sw-pwa-banner-dismiss {
  background: transparent;
  color: #423244;
  font-size: 22px;
  line-height: 1;
  padding: 8px 14px;
}

.sw-pwa-banner-dismiss:hover,
.sw-pwa-banner-dismiss:focus-visible {
  background: #D7E6E6; /* Sky */
  color: #423244;
}

@media (max-width: 480px) {
  .sw-pwa-banner {
    flex-wrap: wrap;
  }
  .sw-pwa-banner-text {
    width: 100%;
  }
}

.sw-pwa-share-icon {
  vertical-align: -4px;
  margin: 0 2px;
  color: #423244; /* Ink */
}

.sw-pwa-banner-ios .sw-pwa-banner-text {
  line-height: 1.5;
}
