.tournament-hero { overflow: hidden; }
.tournament-hero-image { display: block; width: 100%; height: clamp(180px, 30vw, 320px); object-fit: cover; }
.tournament-hero-body, .tournament-profile-prompt, .tournament-profile-form { display: flex; flex-direction: column; gap: 16px; }
.tournament-hero-body, .tournament-profile-prompt { padding: 20px; }
.tournament-hero-body h2 { overflow-wrap: anywhere; }
.tournament-hero-badges, .tournament-entry-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.tournament-entry-summary { justify-content: space-between; font-size: 13px; }
.tournament-profile-dialog {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(440px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  padding: 24px;
  background: var(--color-surface-container);
  color: var(--color-on-surface);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-xl);
  z-index: var(--z-modal-backdrop);
}
.tournament-profile-dialog::backdrop { background: rgba(12, 14, 20, .85); backdrop-filter: blur(8px); }
body:has(.tournament-profile-dialog:modal) { overflow: hidden; }
.tournament-profile-form .form-input { width: 100%; }
.tournament-profile-form .text-error { overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .tournament-hero-body, .tournament-profile-prompt, .tournament-profile-dialog { padding: 16px; }
}
/* Registered players' round schedule and qualification path. */
.round-progress { padding:20px; }
.round-progress > p { margin:10px 0 20px; color:var(--color-on-surface-variant); font-size:13px; }
.round-path { list-style:none; margin:0; padding:0; }
.round-step { position:relative; display:flex; gap:14px; padding:0 0 24px; }
.round-step:not(:last-child)::before { content:''; position:absolute; width:2px; top:32px; bottom:0; left:15px; background:rgba(105,255,69,.25); }
.round-step-marker { position:relative; display:grid; place-items:center; flex-shrink:0; width:32px; height:32px; border:1px solid var(--color-primary-fixed); border-radius:50%; color:var(--color-primary-fixed); font-size:13px; }
.round-step-body { flex:1; min-width:0; padding:14px; border:1px solid var(--border-subtle); border-radius:10px; }
.round-step-heading { display:flex; flex-wrap:wrap; align-items:center; gap:8px; justify-content:space-between; margin-bottom:10px; }
.round-step-heading h3 { font-size:15px; margin:0; }
.round-step-body time,.round-step-body p { font-size:12px; line-height:1.6; color:var(--color-on-surface-variant); }
.round-step-body .btn { margin-top:10px; }
.round-step-out .round-step-marker { border-color:var(--color-on-surface-variant); color:var(--color-on-surface-variant); }
.round-step:last-child { padding-bottom:0; }
.tournament-team-entry { padding:20px; }
.tournament-team-entry > p { margin:10px 0 16px; }
.tournament-team-captain { padding:14px; border:1px solid var(--border-glass); border-radius:10px; margin-bottom:16px; }
.tournament-team-captain p { margin-top:10px; overflow-wrap:anywhere; }
.tournament-team-form { display:flex; flex-direction:column; gap:16px; margin-top:16px; }
.tournament-friend { min-width:0; padding:14px; border:1px solid var(--border-glass); border-radius:10px; display:grid; gap:12px; }
.tournament-friend legend { padding:0 6px; color:var(--color-primary-fixed); font-weight:600; }
.tournament-friend .form-input { width:100%; }
.tournament-payout-note { padding:14px; border-left:3px solid var(--color-secondary-container); background:rgba(0,195,255,.06); border-radius:8px; margin:12px 0; font-size:13px; line-height:1.6; }
.tournament-payout-note p { margin-top:8px; }
@media(min-width:600px) { .tournament-friend { grid-template-columns:1fr 1fr; } }
