:root{--green:#20a464;--dark:#10261d}body{background:#f5f7f6;color:#17211d}.hero{background:linear-gradient(135deg,var(--dark),var(--green))}.card,.list-group-item{border:0;box-shadow:0 .25rem 1rem rgba(16,38,29,.08)}button,.btn,input,select{min-height:44px}@media(max-width:575.98px){.display-5{font-size:2rem}.hero{padding:1.5rem!important}}.auth-card{max-width:28rem;margin-inline:auto}.form-control-lg{font-size:1rem}.navbar form button{min-height:38px}@media(max-width:575.98px){.auth-card{box-shadow:none;background:transparent}.auth-card .card-body{padding-left:0!important;padding-right:0!important}}
.audit-json{background:#111827;color:#e5e7eb;padding:1rem;border-radius:.5rem;max-height:24rem;overflow:auto;font-size:.8rem;white-space:pre-wrap;word-break:break-word}

.league-logo{max-width:220px;max-height:100px;width:auto;height:auto;object-fit:contain}.league-logo-card{max-width:160px;max-height:80px;width:auto;height:auto;object-fit:contain}@media(max-width:575.98px){.league-logo{max-width:160px;max-height:80px}.league-logo-card{max-width:120px;max-height:64px}}

/* league logo compact size */
.league-logo{max-width:110px!important;max-height:50px!important;width:auto;height:auto;object-fit:contain}
.league-logo-card{max-width:80px!important;max-height:40px!important;width:auto;height:auto;object-fit:contain}
@media(max-width:575.98px){.league-logo{max-width:80px!important;max-height:40px!important}.league-logo-card{max-width:60px!important;max-height:32px!important}}
/* league logo restored size */
.league-logo{max-width:220px!important;max-height:100px!important;width:auto;height:auto;object-fit:contain}
.league-logo-card{max-width:160px!important;max-height:80px!important;width:auto;height:auto;object-fit:contain}
@media(max-width:575.98px){.league-logo{max-width:160px!important;max-height:80px!important}.league-logo-card{max-width:120px!important;max-height:64px!important}}
/* mobile/ui finalization */
html{scroll-behavior:smooth}body{padding-bottom:env(safe-area-inset-bottom)}
.profile-circle{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#20a464;color:#fff;font-weight:700;border:2px solid rgba(255,255,255,.45)}
.nav-touch{min-height:52px;display:flex;align-items:center;font-size:1.05rem}.offcanvas{max-width:86vw}.btn,.form-control,.form-select{min-height:44px}
.status-open{background:#6c757d!important}.status-pending{background:#ffc107!important;color:#212529!important}.status-confirmed{background:#198754!important}.status-disputed{background:#dc3545!important}.status-admin{background:#0d6efd!important}
.group-mobile-card{display:none}
@media(max-width:767.98px){
  .container{padding-left:12px;padding-right:12px}.card{border-radius:.8rem}.hero{border-radius:.8rem!important}.navbar-brand{font-size:1.05rem}
  .desktop-group-table{display:none!important}.group-mobile-card{display:block}.group-player-card{background:#fff;border-radius:.75rem;padding:.8rem 1rem;box-shadow:0 .15rem .6rem rgba(16,38,29,.07)}
  .group-player-card+.group-player-card{margin-top:.65rem}.group-player-rank{font-size:1.35rem;font-weight:700;min-width:2rem}.group-player-stats{font-size:.86rem;color:#6c757d}
  .match-card .card-footer{display:grid!important;grid-template-columns:1fr}.match-card .card-footer .btn,.match-card .card-footer form,.match-card .card-footer form button{width:100%}
  .input-group-lg>.form-control{min-width:0;padding:.65rem .35rem}.input-group-lg>.input-group-text{font-size:.9rem;padding:.65rem .5rem}
  h1.h2{font-size:1.55rem}.display-6{font-size:1.7rem}
}
.avatar-profile{width:96px;height:96px;border-radius:50%;object-fit:cover;flex:0 0 96px}.avatar-fallback{display:flex;align-items:center;justify-content:center;background:#20a464;color:#fff;font-size:2rem;font-weight:700}.avatar-nav{width:38px;height:38px;border-radius:50%;object-fit:cover}.avatar-group{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:0 0 40px}.profile-circle:has(.avatar-nav){background:transparent;border:0;padding:0;overflow:hidden}@media(max-width:575.98px){.avatar-profile{width:80px;height:80px;flex-basis:80px}}
.site-footer{border-top:1px solid rgba(0,0,0,.06);margin-top:2rem}.site-footer+script{margin-top:0}
.rules-content{font-size:1.02rem;line-height:1.65}.rules-content h1,.rules-content h2,.rules-content h3{margin-top:1.5rem;color:#17324d}.rules-content h1:first-child,.rules-content h2:first-child{margin-top:0}.rules-content table{width:100%;margin-bottom:1rem;border-collapse:collapse}.rules-content th,.rules-content td{border:1px solid #d6dee3;padding:.55rem}.rules-content blockquote{border-left:4px solid #159a9c;padding-left:1rem;color:#5a6670}
/* Fix Regelwerk button contrast on dark/hero backgrounds */
a.btn-rulebook,
a.btn-rulebook:link,
a.btn-rulebook:visited{
  color:#fff!important;
  border-color:rgba(255,255,255,.85)!important;
  background:rgba(0,0,0,.16)!important;
}
a.btn-rulebook:hover,
a.btn-rulebook:focus,
a.btn-rulebook:active{
  color:#17324d!important;
  background:#fff!important;
  border-color:#fff!important;
}
.tournament-score-table input{min-width:64px;max-width:120px;margin:auto}.tournament-score-table th{vertical-align:middle}@media(max-width:575.98px){.tournament-score-table{font-size:.85rem}.tournament-score-table input{min-width:54px;padding:.45rem .25rem}}
/* Padelflix login branding */
.login-card h1,.login-card h2{letter-spacing:-.02em}
/* Desktop group-table avatars */
.avatar-group-desktop{width:48px;height:48px;min-width:48px;border-radius:50%;object-fit:cover}
.desktop-group-table .avatar-fallback{display:flex;align-items:center;justify-content:center;background:#e9ecef;color:#495057;font-weight:700}
