:root {
  --app-safe-top: env(safe-area-inset-top, 0px);
  --app-safe-right: env(safe-area-inset-right, 0px);
  --app-safe-bottom: env(safe-area-inset-bottom, 0px);
  --app-safe-left: env(safe-area-inset-left, 0px);
}

html {
  min-height: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  padding-bottom: max(12px, var(--app-safe-bottom));
  overscroll-behavior-y: contain;
  touch-action: manipulation;
}

button,
a,
input,
select,
textarea {
  touch-action: manipulation;
}

input,
select,
textarea {
  font-size: 16px !important;
}

button,
.btn,
.nav-tab,
.round-tab,
.player-count-btn,
.pool-round-btn {
  min-height: 44px;
}

input[type="number"],
input[inputmode="numeric"],
input[type="tel"],
.score-input,
.bt-score {
  min-height: 44px;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.app-home-link {
  position: absolute !important;
  top: max(8px, var(--app-safe-top)) !important;
  left: max(10px, var(--app-safe-left)) !important;
  z-index: 50 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  padding: 4px 9px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  background: rgba(255, 255, 255, 0.14) !important;
  color: rgba(255, 255, 255, 0.92) !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.7px !important;
  line-height: 1 !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  transform: none !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.app-home-link:active {
  transform: scale(0.96) !important;
  background: rgba(255, 255, 255, 0.24) !important;
}

.app-install-banner {
  position: fixed;
  left: max(12px, var(--app-safe-left));
  right: max(12px, var(--app-safe-right));
  bottom: max(12px, var(--app-safe-bottom));
  z-index: 5000;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(17, 24, 39, 0.94);
  color: white;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28);
}

.app-install-banner.show {
  display: flex;
}

.app-install-banner span {
  font-size: 0.86rem;
  font-weight: 700;
}

.app-install-banner button {
  border: 0;
  border-radius: 10px;
  padding: 8px 12px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.app-install-banner .install {
  background: #fbbf24;
  color: #111827;
}

.app-install-banner .dismiss {
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
}

@media (display-mode: standalone) {
  body {
    user-select: none;
    -webkit-user-select: none;
  }

  input,
  textarea {
    user-select: text;
    -webkit-user-select: text;
  }
}

@media (max-width: 700px) {
  header {
    padding-top: max(18px, calc(var(--app-safe-top) + 14px)) !important;
  }

  .container {
    width: 100% !important;
    padding-left: max(10px, var(--app-safe-left)) !important;
    padding-right: max(10px, var(--app-safe-right)) !important;
  }

  .actions,
  .action-bar,
  .global-actions,
  .court-actions {
    gap: 8px !important;
  }

  .actions .btn,
  .action-bar .btn,
  .global-actions .btn {
    flex: 1 1 140px;
    justify-content: center;
  }

  .nav-tabs,
  .round-tabs,
  .pool-rounds-nav {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .nav-tabs::-webkit-scrollbar,
  .round-tabs::-webkit-scrollbar,
  .pool-rounds-nav::-webkit-scrollbar {
    display: none;
  }

  .stats-grid,
  .quick-stats-row,
  .tournament-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .players-grid {
    grid-template-columns: 1fr !important;
  }

  .match-teams,
  .match-layout {
    align-items: stretch !important;
  }

  .standings-table-wrap,
  .table-wrap,
  .bracket-body,
  [style*="overflow-x:auto"],
  [style*="overflow-x: auto"] {
    -webkit-overflow-scrolling: touch;
  }
}
