body { font-family: -apple-system, "Noto Sans TC", "Microsoft JhengHei", sans-serif; background: #f5f7fb; }
.hero-banner { background-size: cover; }
.product-card img { aspect-ratio: 4/3; object-fit: cover; }
.product-card { cursor: pointer; transition: transform .2s, box-shadow .2s; }
.product-card:hover { transform: translateY(-4px); box-shadow: 0 8px 16px rgba(0,0,0,.1); }
.pwa-install-banner {
  position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%);
  background: #0d6efd; color:#fff; padding: 10px 16px; border-radius: 999px;
  display: flex; align-items: center; gap: 12px; z-index: 1080;
  box-shadow: 0 4px 12px rgba(0,0,0,.2); max-width: calc(100% - 24px);
}
.pwa-install-banner.d-none { display: none !important; }
.appointment-day { background: #fff; border-radius: 8px; padding: 12px; margin-bottom: 12px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emergency-banner { background: linear-gradient(135deg,#dc3545,#a71d2a); color:#fff; }
body.is-offline::before {
  content: "⚠ 目前離線，部分功能無法使用";
  display: block; background: #ffc107; color: #333; text-align: center;
  padding: 6px 12px; font-size: .85rem; position: sticky; top: 0; z-index: 1090;
}
@media (display-mode: standalone) { .pwa-only-hide-when-installed { display: none !important; } }
