:root { --app-bottom-space: env(safe-area-inset-bottom, 0px); }
html { -webkit-text-size-adjust: 100%; }
body { overscroll-behavior-y: contain; }

.pwa-install-box {
  display: none;
  margin: 18px auto 0;
  padding: 14px;
  border: 1px solid #d8e1ec;
  border-radius: 16px;
  background: #eef4fb;
  color: #173f73;
  text-align: center;
}
.pwa-install-box p { margin: 0 0 10px; line-height: 1.5; }
.pwa-install-box .btn { width: 100%; }

@media (display-mode: standalone) {
  body::after {
    content: "";
    display: block;
    height: var(--app-bottom-space);
  }
}

@media (max-width: 720px) {
  .container { width: min(100% - 24px, 1200px); }
  .topbar { padding: 14px 0; }
  .brand h1 { font-size: 1.12rem; }
  .brand .meta { font-size: .85rem; }
  .nav-links { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .nav-links a { text-align: center; padding: 11px 8px; }
  .hero { padding: 22px 0; }
  .hero-panel { padding: 22px; border-radius: 20px; }
  .hero-panel h2 { font-size: 1.55rem; }
  .card { padding: 18px; border-radius: 18px; }
  .auth-wrap { min-height: auto; padding: 18px 12px 28px; }
  .auth-card { padding: 22px 18px; border-radius: 20px; }
  button, .btn { width: 100%; min-height: 46px; }
  .actions { display: grid; grid-template-columns: 1fr; }
  input, select, textarea { font-size: 16px; min-height: 46px; }
  textarea { min-height: 130px; }
  th, td { padding: 10px; font-size: .92rem; }
}
