/* WEISS PADEL CONNECT responsive layer.
   Desktop rules remain in styles.css; this file only changes tablet and phone layouts. */

@media (max-width: 980px) {
  .header-inner { min-height: 0; flex-wrap: wrap; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
  .brand { flex: 0 0 auto; }
  .main-nav { order: 3; width: 100%; max-width: 100%; margin: 0; overflow-x: auto; overflow-y: hidden; justify-content: flex-start; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .main-nav::-webkit-scrollbar { display: none; }
  .main-nav a { flex: 0 0 auto; min-height: 38px; display: inline-flex; align-items: center; scroll-snap-align: start; }
  .hero { gap: 30px; }
  .hero-proof { min-width: min(420px, 42vw); }
  .layout, .trainer-layout { grid-template-columns: minmax(300px, 370px) minmax(0, 1fr); gap: 20px; }
  .trainer-card-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .hero, .trainer-hero { padding-top: 34px; padding-bottom: 38px; }
  .hero h1 { font-size: clamp(3rem, 10vw, 4.5rem); }
  .hero-proof { width: 100%; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .layout, .trainer-layout { grid-template-columns: 1fr; }
  .search-panel, .trainer-filter-panel { position: static; }
  .results-panel, .trainer-results-panel { min-width: 0; }
  .account-shell, .admin-shell { padding-top: 38px; }
  .account-auth, .account-profile { max-width: none; }
  .admin-toolbar, .admin-list-head { align-items: flex-start; flex-direction: column; }
  .admin-toolbar .reset-button, .admin-list-head .reset-button { width: 100%; }
}

@media (max-width: 640px) {
  html { font-size: 16px; }
  body { overflow-x: hidden; }
  .header-inner, .hero, .layout, .trainer-hero, .trainer-layout, .account-shell, .admin-shell { padding-left: 16px; padding-right: 16px; }
  .brand img { width: 150px; height: auto; }
  .main-nav {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 4px;
    overflow: visible;
    border-radius: 14px;
    padding: 4px;
    scroll-snap-type: none;
  }
  .main-nav a {
    grid-column: span 3;
    min-width: 0;
    padding: 8px 3px;
    justify-content: center;
    font-size: .66rem;
    text-align: center;
    white-space: nowrap;
  }
  .main-nav a:nth-child(n + 5) { grid-column: span 4; }
  .hero { padding-top: 32px; padding-bottom: 36px; }
  .hero h1 { max-width: 100%; margin-top: 10px; font-size: clamp(2.65rem, 13vw, 3.55rem); line-height: .98; overflow-wrap: anywhere; }
  .hero p { font-size: .98rem; line-height: 1.55; }
  .hero-proof { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; background: var(--line); }
  .hero-proof div, .hero-proof div:not(:nth-child(3n + 1)), .hero-proof div:nth-child(n + 4), .hero-proof div:not(:first-child) { min-width: 0; padding: 14px 15px; border: 0; background: rgb(17, 21, 29); }
  .hero-proof span { white-space: normal; line-height: 1.25; }
  .layout, .trainer-layout { gap: 16px; padding-bottom: 48px; }
  .search-panel, .results-panel, .trainer-filter-panel, .trainer-results-panel, .account-auth, .account-profile, .admin-form, .admin-list-panel { padding: 18px; border-radius: 17px; }
  .section-heading { align-items: flex-start; margin-bottom: 20px; }
  .section-heading h2 { font-size: 1.18rem; }
  .filter-section, .trainer-filter-block { padding: 14px; }
  .field-grid, .account-grid, .player-edit-panel .account-grid, .shop-links-form, .shop-links-group { grid-template-columns: 1fr; }
  .field { margin-bottom: 16px; }
  input, select, textarea, button { max-width: 100%; }
  input, select, .location-select { min-height: 48px; font-size: 16px; }
  .location-menu, .provider-menu { position: relative; top: 6px; max-height: 300px; }
  .result-card-head, .court-group-head, .trainer-availability, .match-card-actions { align-items: flex-start; flex-direction: column; }
  .court-group-head { gap: 6px; }
  .day-heading { align-items: flex-start; }
  .day-title { min-width: 0; width: 100%; }
  .day-slot-count, .day-weather { white-space: normal; }
  .court-group .availability-row { grid-template-columns: minmax(128px, auto) minmax(0, 1fr); gap: 10px; }
  .court-group .availability-row .slot-book-button { grid-column: 1 / -1; width: 100%; justify-content: center; }
  .slot { width: auto; min-width: 128px; }
  .trainer-profile-pair, .request-profile-grid { grid-template-columns: 1fr; }
  .trainer-slot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trainer-availability button, .trainer-profile-button, .trainer-contact-actions { width: 100%; }
  .trainer-contact-actions > * { flex: 1 1 100%; text-align: center; }
  .match-mode-switch { grid-template-columns: 1fr; }
  .match-lineup { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .match-request-summary { grid-template-columns: 1fr !important; }
  .match-request-actions { width: 100%; flex-direction: column; }
  .match-request-actions button, .request-profile-toggle, .match-card-actions button { width: 100%; }
  .booking-dialog, .date-calendar-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); }
  .booking-dialog form, .date-calendar-shell { padding: 22px 18px; }
  .date-calendar-weekdays, .date-calendar-grid { gap: 4px; }
  .date-calendar-grid button { border-radius: 9px; }
  .account-intro { margin-bottom: 24px; }
  .account-intro h1 { font-size: clamp(2.45rem, 12vw, 3.4rem); }
  .account-tabs, .cockpit-tabs, .shop-gender-tabs { grid-template-columns: 1fr; display: grid; }
  .account-profile-head, .profile-booking-main, .booking-dashboard-head { align-items: flex-start; flex-direction: column; }
  .account-profile-head .reset-button { width: 100%; }
  .account-booking-dashboard { padding: 16px; border-radius: 17px; }
  .booking-actions { width: 100%; }
  .booking-actions button { flex: 1 1 100%; }
  .admin-login-row, .admin-form-actions, .cockpit-tools { grid-template-columns: 1fr; }
  .cockpit-row { grid-template-columns: 42px minmax(0, 1fr); }
  .cockpit-actions { grid-column: 1 / -1; width: 100%; justify-content: flex-start; }
  .cockpit-actions button { flex: 1 1 auto; }
  footer { gap: 14px; padding-top: 24px; padding-bottom: 24px; }
  .legal-links { gap: 10px 14px; }
}

@media (max-width: 390px) {
  .header-inner, .hero, .layout, .trainer-hero, .trainer-layout, .account-shell, .admin-shell { padding-left: 12px; padding-right: 12px; }
  .brand img { width: 136px; }
  .hero h1 { font-size: 2.45rem; }
  .search-panel, .results-panel, .trainer-filter-panel, .trainer-results-panel, .account-auth, .account-profile, .admin-form, .admin-list-panel { padding: 14px; }
  .match-lineup { grid-template-columns: 1fr; }
  .court-group .availability-row { grid-template-columns: 1fr; }
  .court-group .availability-row .slot-book-button { grid-column: 1; }
  .slot { width: 100%; }
}

@media (max-width: 640px) {
  .results-list .result-card { padding: 17px; border-radius: 17px; }
  .results-list .result-card-head { grid-template-columns: 52px minmax(0,1fr); align-items: center; gap: 13px; padding-bottom: 16px; }
  .results-list .result-card-head::before { width: 52px; height: 52px; font-size: 1.35rem; }
  .results-list .result-card h3 { font-size: 1.12rem; }
  .results-list .day-heading { grid-template-columns: 1fr 1fr; gap: 13px; padding: 15px; }
  .results-list .day-title { grid-column: 1 / -1; }
  .results-list .day-slot-count { justify-content: flex-start; padding: 4px 10px 4px 0; border-left: 0; }
  .results-list .day-weather { justify-self: start; }
  .results-list .court-group .availability-list { grid-template-columns: 1fr; }
  .results-list .court-group .availability-row { grid-template-columns: minmax(0,1fr) auto!important; }
  .results-list .court-group .availability-row .slot-book-button { grid-column: auto; width: auto; }
}

@media (max-width: 390px) {
  .results-list .day-heading,.results-list .court-group .availability-row { grid-template-columns: 1fr!important; }
  .results-list .day-slot-count { border-right: 0; }
  .results-list .court-group .availability-row .slot-book-button { grid-column: 1; width: 100%; justify-content: center; }
}

@media (max-width: 640px) {
  .cockpit-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cockpit-tabs button { min-width: 0; padding-inline: 7px; }
}
/* Unified static navigation on phones */
@media(max-width:640px){.main-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;overflow:visible;border-radius:15px;padding:5px;scroll-snap-type:none}.main-nav a,.main-nav a:nth-child(n + 5){grid-column:auto;min-width:0;min-height:44px;padding:8px 3px;justify-content:center;font-size:.68rem;text-align:center;white-space:nowrap}}

/* Public navigation before member sign-in */
@media(max-width:980px){.header-inner .main-nav.public-nav{order:3;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.main-nav.public-nav a,.main-nav.public-nav a:nth-child(n + 5){grid-column:auto;min-width:0}}
