/*
 * DG KOF XV HUB — Mobile First Presentation Layer 1.27.1
 *
 * Final compatibility layer. It does not remove saved visual settings.
 * It normalizes containment, intrinsic sizing, touch targets and narrow
 * layouts after every module stylesheet/inline style has been registered.
 */

/* ---------- Foundation ---------- */
.dgkof-hub,
.dgkof-directory,
.dgkof-directory-v2,
.dgkof-directory-same-card,
.dgkof-profile,
.dgkof-module,
.dgkof-responsive-root,
.dgkof-elementor-module-widget,
.dgkof-elementor-tournament-widget,
.dgkof-elementor-registration-widget,
.dgkof-account-box,
.dgkof-player-area,
.dgkof-tournament,
.dgkof-tournament-page-v51,
.dgkof-tournament-register,
.dgkof-tournament-registration-page,
.dgkof-bracket-horizontal {
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  overflow-wrap:anywhere;
}

.dgkof-hub *,
.dgkof-directory *,
.dgkof-directory-v2 *,
.dgkof-directory-same-card *,
.dgkof-profile *,
.dgkof-module *,
.dgkof-responsive-root *,
.dgkof-elementor-module-widget *,
.dgkof-elementor-tournament-widget *,
.dgkof-elementor-registration-widget *,
.dgkof-account-box *,
.dgkof-player-area *,
.dgkof-tournament *,
.dgkof-tournament-page-v51 *,
.dgkof-tournament-register *,
.dgkof-tournament-registration-page *,
.dgkof-bracket-horizontal * {
  box-sizing:border-box;
  min-width:0;
}

.dgkof-hub img,
.dgkof-directory img,
.dgkof-profile img,
.dgkof-module img,
.dgkof-responsive-root img,
.dgkof-tournament img,
.dgkof-tournament-page-v51 img,
.dgkof-player-area img,
.dgkof-bracket-horizontal img,
.dgkof-elementor-module-widget img {
  max-width:100%;
  height:auto;
}

.dgkof-hub iframe,
.dgkof-module iframe,
.dgkof-responsive-root iframe,
.dgkof-tournament iframe {
  max-width:100%;
}

.dgkof-hub input,
.dgkof-hub select,
.dgkof-hub textarea,
.dgkof-hub button,
.dgkof-directory input,
.dgkof-directory select,
.dgkof-directory textarea,
.dgkof-directory button,
.dgkof-module input,
.dgkof-module select,
.dgkof-module textarea,
.dgkof-module button,
.dgkof-responsive-root input,
.dgkof-responsive-root select,
.dgkof-responsive-root textarea,
.dgkof-responsive-root button,
.dgkof-tournament input,
.dgkof-tournament select,
.dgkof-tournament textarea,
.dgkof-tournament button {
  max-width:100%;
  min-width:0;
}

.dgkof-table-wrap,
.dgkof-admin-ft-table-wrap,
.dgkof-bracket-scroll,
.dgkof-admin-bracket-scroll,
.dgkof-bracket-horizontal {
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}

/* ---------- Intrinsically responsive grids ---------- */
.dgkof-player-grid,
.dgkof-directory-v2 .dgkof-player-grid,
.dgkof-directory-same-card .dgkof-player-grid,
.dgkof-top5-grid {
  display:grid!important;
  width:100%!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important;
  gap:clamp(12px,2vw,22px)!important;
}

.dgkof-character-showcase,
.dgkof-character-image-grid {
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))!important;
  gap:clamp(10px,2vw,18px)!important;
}

.dgkof-category-grid,
.dgkof-stats-grid,
.dgkof-hub-columns,
.dgkof-bracket-grid,
.dgkof-registrants-grid,
.dgkof-form-grid {
  display:grid!important;
  width:100%!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))!important;
  gap:clamp(10px,2vw,20px)!important;
}

.dgkof-form-grid {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;
}

.dgkof-readonly-stats,
.dgkof-profile-rates,
.dgkof-stats {
  display:grid!important;
  width:100%!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr))!important;
}

/* Never allow a legacy explicit column count to defeat a narrow container. */
.dgkof-player-grid > *,
.dgkof-character-showcase > *,
.dgkof-character-image-grid > *,
.dgkof-category-grid > *,
.dgkof-stats-grid > *,
.dgkof-hub-columns > *,
.dgkof-bracket-grid > *,
.dgkof-registrants-grid > *,
.dgkof-form-grid > *,
.dgkof-readonly-stats > *,
.dgkof-profile-rates > * {
  width:100%;
  max-width:100%;
  min-width:0;
}

/* ---------- Common headers / actions ---------- */
.dgkof-section-head,
.dgkof-account-head,
.dgkof-ft-head,
.dgkof-ft-notifications-head,
.dgkof-registration-section-head,
.dgkof-profile-footer,
.dgkof-tournament-hero-actions,
.dgkof-tournament-capacity-cta {
  max-width:100%;
  min-width:0;
  flex-wrap:wrap;
}

.dgkof-section-head > *,
.dgkof-account-head > *,
.dgkof-ft-head > *,
.dgkof-ft-notifications-head > *,
.dgkof-registration-section-head > *,
.dgkof-profile-footer > *,
.dgkof-tournament-hero-actions > *,
.dgkof-tournament-capacity-cta > * {
  min-width:0;
  max-width:100%;
}

.dgkof-button,
.dgkof-tournament-action,
.dgkof-registration-actions button,
.dgkof-registration-actions a,
.dgkof-directory-filter-actions button {
  min-height:44px;
  max-width:100%;
}

.dgkof-directory-filter-actions,
.dgkof-registration-actions,
.dgkof-ft-row-actions,
.dgkof-ft-tabs,
.dgkof-chips,
.dgkof-login-links {
  display:flex;
  flex-wrap:wrap!important;
  max-width:100%;
  min-width:0;
  gap:8px;
}

/* ---------- Legacy frontend cards ---------- */
.dgkof-player-card,
.dgkof-player-card-v2 {
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

.dgkof-player-image {
  width:100%;
  max-width:100%;
}

.dgkof-player-image img {
  display:block;
  width:100%;
  max-width:100%;
  object-fit:cover;
}

.dgkof-player-body,
.dgkof-player-v2-content {
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}

.dgkof-player-body h4,
.dgkof-player-v2-heading h3,
.dgkof-player-v2-heading h2 {
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* ---------- Profiles ---------- */
.dgkof-profile-hero {
  width:100%;
  max-width:100%;
  min-width:0;
  grid-template-columns:minmax(0,300px) minmax(0,1fr)!important;
}

.dgkof-profile-photo {
  max-width:100%;
}

.dgkof-profile-main {
  min-width:0;
  max-width:100%;
}

.dgkof-profile-main h1,
.dgkof-profile-main h2 {
  overflow-wrap:anywhere;
}

/* ---------- Rankings / lists / H2H ---------- */
.dgkof-h2h-head {
  width:100%;
  min-width:0;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
}

.dgkof-h2h-head > *,
.dgkof-ranking li > *,
.dgkof-rating-board li > * {
  min-width:0;
  max-width:100%;
}

.dgkof-ranking li,
.dgkof-rating-board li {
  min-width:0;
  max-width:100%;
}

.dgkof-ranking-player-copy,
.dgkof-ranking-player-copy *,
.dgkof-list-player-name,
.dgkof-rating-board li strong {
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* ---------- Tournament landing page ---------- */
.dgkof-tournament-page-v51 {
  padding-inline:clamp(12px,3vw,20px);
}

.dgkof-tournament-hero {
  min-height:clamp(360px,55vw,560px);
}

.dgkof-tournament-hero-content {
  width:100%;
  max-width:820px;
  padding:clamp(24px,5vw,54px);
}

.dgkof-tournament-facts {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));
}

.dgkof-tournament-participant-grid {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
}

.dgkof-timeline-track {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
}

.dgkof-tournament-content-card {
  padding:clamp(18px,4vw,30px);
}

.dgkof-tournament-section-title h2 {
  overflow-wrap:anywhere;
}

/* ---------- Tournament registration ---------- */
.dgkof-tournament-register,
.dgkof-tournament-registration-page {
  width:100%;
  max-width:100%;
  min-width:0;
}

.dgkof-tournament-register *,
.dgkof-tournament-registration-page * {
  min-width:0;
  max-width:100%;
}

.dgkof-registration-welcome,
.dgkof-registration-layout,
.dgkof-registration-grid {
  width:100%;
  max-width:100%;
  min-width:0;
}

/* ---------- Brackets: preserve intentional horizontal canvas, never page overflow ---------- */
.dgkof-bracket-horizontal {
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden;
}

.dgkof-bracket-horizontal .dgkof-bracket-rounds {
  min-width:max-content;
}

.dgkof-bracket-horizontal .dgkof-match-card,
.dgkof-bracket-horizontal .dgkof-tournament-snapshot {
  min-width:0;
  max-width:100%;
}

.dgkof-bracket-horizontal .dgkof-match-card {
  overflow:hidden;
}

.dgkof-bracket-horizontal .dgkof-match-card input,
.dgkof-bracket-horizontal .dgkof-match-card select,
.dgkof-bracket-horizontal .dgkof-match-card button {
  max-width:100%;
}

/* ---------- Betting / fight cards ---------- */
.kof-vs,
.kof-vs-badge,
.kof-tape-side,
.kof-player-info,
.kof-team-badge {
  min-width:0;
  max-width:100%;
}

.kof-player-info *,
.kof-team-badge * {
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}

.kof-player-photo {
  max-width:100%;
}

.kof-vs-badge .dgkof-vs-dourado {
  width:clamp(42px,10vw,82px);
  height:clamp(42px,10vw,82px);
}

/* ---------- Narrow phones: 0–480px ---------- */
@media (max-width:480px) {
  .dgkof-hub,
  .dgkof-directory,
  .dgkof-profile,
  .dgkof-module,
  .dgkof-tournament-page-v51,
  .dgkof-tournament-register {
    margin-left:0!important;
    margin-right:0!important;
  }

  .dgkof-hero {
    padding:20px!important;
    border-radius:14px!important;
  }

  .dgkof-hero h2 {
    font-size:clamp(28px,9vw,36px)!important;
    line-height:1.05;
  }

  .dgkof-hero p {
    font-size:15px!important;
  }

  .dgkof-profile-hero {
    grid-template-columns:1fr!important;
    padding:18px!important;
    gap:18px!important;
  }

  .dgkof-profile-photo {
    width:100%;
    height:auto!important;
    aspect-ratio:1/1;
    max-height:280px;
  }

  .dgkof-profile-main h1,
  .dgkof-profile-main h2 {
    font-size:clamp(28px,9vw,42px)!important;
  }

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

  .dgkof-stats div,
  .dgkof-readonly-stats div {
    padding:14px 8px!important;
  }

  .dgkof-stats strong {
    font-size:28px!important;
  }

  .dgkof-section-head,
  .dgkof-account-head {
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:10px!important;
  }

  .dgkof-section-head a,
  .dgkof-section-head .dgkof-button {
    width:100%;
    text-align:center;
  }

  .dgkof-directory-filter-grid,
  .dgkof-form-grid {
    grid-template-columns:1fr!important;
  }

  .dgkof-directory-filter-actions > *,
  .dgkof-registration-actions > *,
  .dgkof-ft-row-actions > * {
    flex:1 1 100%;
    width:100%;
  }

  .dgkof-tournament-hero {
    min-height:360px!important;
    border-radius:16px!important;
  }

  .dgkof-tournament-hero-content {
    padding:22px!important;
  }

  .dgkof-tournament-hero h1 {
    font-size:clamp(32px,11vw,52px)!important;
  }

  .dgkof-tournament-hero-meta {
    font-size:14px!important;
  }

  .dgkof-tournament-facts {
    grid-template-columns:1fr 1fr!important;
  }

  .dgkof-tournament-facts > div {
    padding:15px 12px!important;
  }

  .dgkof-tournament-capacity {
    padding:18px!important;
  }

  .dgkof-tournament-capacity-head {
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:8px!important;
  }

  .dgkof-tournament-capacity-cta {
    align-items:flex-start!important;
    flex-direction:column!important;
  }

  .dgkof-tournament-action {
    width:100%;
    justify-content:center;
  }

  .dgkof-tournament-content-card {
    border-radius:14px!important;
  }

  .dgkof-tournament-participant-grid,
  .dgkof-timeline-track {
    grid-template-columns:1fr!important;
  }

  .dgkof-bracket-horizontal {
    margin-inline:0!important;
    padding-bottom:8px;
  }

  .dgkof-dg-score-badge {
    width:min(132px,100%)!important;
  }
}

/* ---------- Tablet / small desktop: 481–782px ---------- */
@media (min-width:481px) and (max-width:782px) {
  .dgkof-player-grid,
  .dgkof-top5-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .dgkof-profile-hero {
    grid-template-columns:180px minmax(0,1fr)!important;
  }

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

/* ---------- Elementor containment ---------- */
.elementor .dgkof-responsive-root,
.elementor .dgkof-elementor-module-widget,
.elementor .dgkof-elementor-tournament-widget,
.elementor .dgkof-elementor-registration-widget,
.elementor-widget-container .dgkof-responsive-root,
.elementor-widget-container .dgkof-elementor-module-widget {
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

.elementor .dgkof-responsive-root > *,
.elementor .dgkof-elementor-module-widget > *,
.elementor .dgkof-elementor-tournament-widget > *,
.elementor .dgkof-elementor-registration-widget > * {
  max-width:100%;
  min-width:0;
}

/* ---------- Accessibility / motion ---------- */
@media (prefers-reduced-motion:reduce) {
  .dgkof-hub *,
  .dgkof-directory *,
  .dgkof-module *,
  .dgkof-responsive-root *,
  .dgkof-tournament *,
  .dgkof-tournament-page-v51 * {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}

/* ==========================================================================
   ADMIN — responsive workspace
   ========================================================================== */
@media (max-width:782px) {
  .dgkof-admin,
  .dgkof-admin-wrap,
  .dgkof-admin-page,
  .dgkof-settings-wrap {
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .dgkof-admin *,
  .dgkof-admin-wrap *,
  .dgkof-admin-page *,
  .dgkof-settings-wrap * {
    box-sizing:border-box;
    min-width:0;
    max-width:100%;
  }

  .dgkof-admin .dgkof-grid,
  .dgkof-admin-wrap .dgkof-grid,
  .dgkof-admin-page .dgkof-grid,
  .dgkof-settings-wrap .dgkof-grid,
  .dgkof-admin .dgkof-player-grid {
    grid-template-columns:1fr!important;
  }

  .dgkof-admin .dgkof-two-col,
  .dgkof-admin-wrap .dgkof-two-col {
    grid-template-columns:1fr!important;
  }

  .dgkof-admin .dgkof-actions,
  .dgkof-admin-wrap .dgkof-actions,
  .dgkof-admin-page .dgkof-actions {
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px;
  }

  .dgkof-admin table,
  .dgkof-admin-wrap table,
  .dgkof-admin-page table {
    width:100%;
  }

  .dgkof-admin .widefat,
  .dgkof-admin-wrap .widefat {
    display:block;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

@media (max-width:480px) {
  .dgkof-admin .button,
  .dgkof-admin button,
  .dgkof-admin input[type=submit],
  .dgkof-admin-wrap .button,
  .dgkof-admin-wrap button,
  .dgkof-admin-wrap input[type=submit] {
    min-height:44px;
  }

  .dgkof-admin input[type=text],
  .dgkof-admin input[type=number],
  .dgkof-admin input[type=email],
  .dgkof-admin input[type=url],
  .dgkof-admin select,
  .dgkof-admin textarea,
  .dgkof-admin-wrap input[type=text],
  .dgkof-admin-wrap input[type=number],
  .dgkof-admin-wrap input[type=email],
  .dgkof-admin-wrap input[type=url],
  .dgkof-admin-wrap select,
  .dgkof-admin-wrap textarea {
    width:100%!important;
    max-width:100%!important;
  }
}

/* ========================================================================
 * 1.27.3 — GLOBAL MOBILE-FIRST HARDENING
 * This layer is intentionally global to the plugin, not limited to the Hub.
 * ======================================================================== */

/* Never use character-level word breaking as a generic overflow solution. */
[class^="dgkof"],
[class*=" dgkof"],
[class^="kof-"],
[class*=" kof-"] {
  box-sizing:border-box;
}

[class^="dgkof"] h1,
[class^="dgkof"] h2,
[class^="dgkof"] h3,
[class^="dgkof"] h4,
[class^="dgkof"] h5,
[class^="dgkof"] h6,
[class^="dgkof"] p,
[class^="dgkof"] a,
[class^="dgkof"] span,
[class^="dgkof"] strong,
[class^="dgkof"] em,
[class^="dgkof"] small,
[class^="dgkof"] label,
[class^="dgkof"] li,
[class^="dgkof"] th,
[class^="dgkof"] td,
[class*=" dgkof"] h1,
[class*=" dgkof"] h2,
[class*=" dgkof"] h3,
[class*=" dgkof"] h4,
[class*=" dgkof"] h5,
[class*=" dgkof"] h6,
[class*=" dgkof"] p,
[class*=" dgkof"] a,
[class*=" dgkof"] span,
[class*=" dgkof"] strong,
[class*=" dgkof"] em,
[class*=" dgkof"] small,
[class*=" dgkof"] label,
[class*=" dgkof"] li,
[class*=" dgkof"] th,
[class*=" dgkof"] td {
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}

/* Flex/grid children must be allowed to shrink, while intentional horizontal
 * canvases (brackets/tables) keep their own scrolling behavior below. */
[class^="dgkof"] > *,
[class*=" dgkof"] > * {
  min-width:0;
}

[class^="dgkof"] img,
[class*=" dgkof"] img,
[class^="dgkof"] svg,
[class*=" dgkof"] svg,
[class^="dgkof"] video,
[class*=" dgkof"] video {
  max-width:100%;
}

/* Forms: no desktop-sized control may force the viewport wider than the
 * component that contains it. */
[class^="dgkof"] input,
[class^="dgkof"] select,
[class^="dgkof"] textarea,
[class^="dgkof"] button,
[class*=" dgkof"] input,
[class*=" dgkof"] select,
[class*=" dgkof"] textarea,
[class*=" dgkof"] button {
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
}

/* ========================================================================
 * Player Area — mobile navigation is a component, not a desktop grid.
 * ======================================================================== */
@media (max-width:900px) {
  .dgkof-player-area-shell {
    grid-template-columns:1fr!important;
    width:100%!important;
    max-width:100%!important;
  }

  .dgkof-player-sidebar {
    width:100%!important;
    max-width:100%!important;
    padding:12px!important;
  }

  .dgkof-player-nav {
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
  }

  .dgkof-player-nav-item {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    justify-content:center!important;
    flex-direction:column!important;
    gap:4px!important;
    padding:10px 6px!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    line-height:1.25!important;
  }

  .dgkof-player-nav-item .dgkof-player-nav-icon {
    flex:0 0 auto!important;
    width:auto!important;
    min-width:20px!important;
  }

  /* Steam is a section containing its own navigation. It must span the
   * complete mobile navigation width rather than occupy one grid cell. */
  .dgkof-player-nav-group {
    grid-column:1 / -1!important;
    width:100%!important;
    min-width:0!important;
  }

  .dgkof-player-nav-group-title {
    width:100%!important;
    min-width:0!important;
    justify-content:flex-start!important;
    padding:10px 12px!important;
  }

  .dgkof-player-nav-submenu {
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 8px!important;
    padding:6px 0 0 10px!important;
    gap:6px!important;
  }

  .dgkof-player-nav-subitem {
    margin:0!important;
    width:100%!important;
    min-width:0!important;
  }

  .dgkof-player-main {
    width:100%!important;
    min-width:0!important;
    padding:clamp(14px,4vw,24px)!important;
  }
}

@media (max-width:560px) {
  .dgkof-player-nav,
  .dgkof-player-nav-submenu {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .dgkof-player-nav-item {
    min-height:52px!important;
    padding:9px 8px!important;
    font-size:clamp(10px,2.8vw,12px)!important;
  }

  .dgkof-player-nav-item span:last-child,
  .dgkof-player-nav-group-title span:last-child {
    overflow-wrap:break-word!important;
    word-break:normal!important;
  }

  .dgkof-player-welcome {
    width:100%!important;
    max-width:100%!important;
  }

  .dgkof-player-stat-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:360px) {
  .dgkof-player-nav,
  .dgkof-player-nav-submenu {
    grid-template-columns:1fr!important;
  }

  .dgkof-player-nav-item {
    min-height:48px!important;
    flex-direction:row!important;
    justify-content:flex-start!important;
    text-align:left!important;
    padding:10px 12px!important;
  }
}

/* ========================================================================
 * Global floating notification control — safe-area aware.
 * ======================================================================== */
.dgkofh-notification-trigger-wrap {
  max-width:none!important;
  min-width:0!important;
}

@media (max-width:600px) {
  .dgkofh-notification-trigger-wrap {
    top:max(72px,env(safe-area-inset-top))!important;
    right:max(12px,env(safe-area-inset-right))!important;
  }

  .dgkofh-notification-trigger {
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
  }
}

.dgkofh-notification-center {
  max-width:calc(100vw - 24px)!important;
  box-sizing:border-box!important;
}

@media (max-width:600px) {
  .dgkofh-notification-center {
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-width:none!important;
    top:max(66px,calc(env(safe-area-inset-top) + 12px))!important;
    max-height:calc(100dvh - max(82px,calc(env(safe-area-inset-top) + 24px)))!important;
  }
}

/* ========================================================================
 * Global narrow viewport protection.
 * ======================================================================== */
@media (max-width:480px) {
  [class^="dgkof"],
  [class*=" dgkof"] {
    max-width:100%;
  }

  [class^="dgkof"] .dgkof-section-head,
  [class^="dgkof"] .dgkof-account-head,
  [class^="dgkof"] .dgkof-ft-head,
  [class^="dgkof"] .dgkof-ft-notifications-head,
  [class^="dgkof"] .dgkof-registration-section-head,
  [class*=" dgkof"] .dgkof-section-head,
  [class*=" dgkof"] .dgkof-account-head,
  [class*=" dgkof"] .dgkof-ft-head,
  [class*=" dgkof"] .dgkof-ft-notifications-head,
  [class*=" dgkof"] .dgkof-registration-section-head {
    flex-direction:column!important;
    align-items:stretch!important;
  }

  [class^="dgkof"] .dgkof-section-head > *,
  [class^="dgkof"] .dgkof-account-head > *,
  [class^="dgkof"] .dgkof-ft-head > *,
  [class^="dgkof"] .dgkof-ft-notifications-head > *,
  [class^="dgkof"] .dgkof-registration-section-head > *,
  [class*=" dgkof"] .dgkof-section-head > *,
  [class*=" dgkof"] .dgkof-account-head > *,
  [class*=" dgkof"] .dgkof-ft-head > *,
  [class*=" dgkof"] .dgkof-ft-notifications-head > *,
  [class*=" dgkof"] .dgkof-registration-section-head > * {
    width:100%!important;
    max-width:100%!important;
  }

  [class^="dgkof"] .dgkof-table-wrap,
  [class*=" dgkof"] .dgkof-table-wrap,
  [class^="dgkof"] .dgkof-admin-ft-table-wrap,
  [class*=" dgkof"] .dgkof-admin-ft-table-wrap {
    width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
}


/* ========================================================================
 * 1.27.4 — GLOBAL MOBILE-FIRST AUDIT / STAGE 2
 * Structural hardening across every public/admin plugin component.
 * This layer is intentionally independent from any single module.
 * ======================================================================== */

/* Component roots become containment contexts so responsive behavior follows
 * the space actually available to a widget/shortcode, including Elementor
 * columns, not only the browser viewport. */
.dgkof-hub,
.dgkof-directory,
.dgkof-profile,
.dgkof-module,
.dgkof-responsive-root,
.dgkof-player-area,
.dgkof-tournament,
.dgkof-tournament-page-v51,
.dgkof-tournament-register,
.dgkof-tournament-registration-page,
.dgkof-account-box,
.dgkof-public-player,
.dgkof-public-tournament,
.dgkof-public-tournament-registration,
.dgkof-single-player-page,
.dgkof-single-tournament-page,
.dgkof-elementor-public,
.dgkof-tournament-page,
.dgkof-tournament-registration-page,
.dgkof-tournament-registrants,
.dgkofh-ref-grid,
.dgkofh-ref-ranking,
.kof-benchmark-wrap,
.kof-ranking,
.kof-betting,
.kof-floating-menu {
  container-type:inline-size;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

/* Extend the same structural contract to legacy kof-* components. */
[class^="kof-"],
[class*=" kof-"],
[class^="dgkofh-"],
[class*=" dgkofh-"] {
  box-sizing:border-box;
  min-width:0;
}

[class^="kof-"] > *,
[class*=" kof-"] > *,
[class^="dgkofh-"] > *,
[class*=" dgkofh-"] > * {
  min-width:0;
  box-sizing:border-box;
}

[class^="kof-"] img,
[class*=" kof-"] img,
[class^="dgkofh-"] img,
[class*=" dgkofh-"] img,
[class^="kof-"] svg,
[class*=" kof-"] svg {
  max-width:100%;
}

/* Text must wrap at words. Character-level breaking is only appropriate for
 * machine identifiers/URLs and is never the default UI strategy. */
[class^="kof-"] h1,
[class^="kof-"] h2,
[class^="kof-"] h3,
[class^="kof-"] h4,
[class^="kof-"] h5,
[class^="kof-"] h6,
[class^="kof-"] p,
[class^="kof-"] a,
[class^="kof-"] span,
[class^="kof-"] strong,
[class^="kof-"] em,
[class^="kof-"] small,
[class^="kof-"] label,
[class^="kof-"] li,
[class^="kof-"] th,
[class^="kof-"] td,
[class*=" kof-"] h1,
[class*=" kof-"] h2,
[class*=" kof-"] h3,
[class*=" kof-"] h4,
[class*=" kof-"] h5,
[class*=" kof-"] h6,
[class*=" kof-"] p,
[class*=" kof-"] a,
[class*=" kof-"] span,
[class*=" kof-"] strong,
[class*=" kof-"] em,
[class*=" kof-"] small,
[class*=" kof-"] label,
[class*=" kof-"] li,
[class*=" kof-"] th,
[class*=" kof-"] td,
[class^="dgkofh-"] h1,
[class^="dgkofh-"] h2,
[class^="dgkofh-"] h3,
[class^="dgkofh-"] h4,
[class^="dgkofh-"] h5,
[class^="dgkofh-"] h6,
[class^="dgkofh-"] p,
[class^="dgkofh-"] a,
[class^="dgkofh-"] span,
[class^="dgkofh-"] strong,
[class^="dgkofh-"] em,
[class^="dgkofh-"] small,
[class^="dgkofh-"] label,
[class^="dgkofh-"] li {
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}

/* Form controls: full-width by default on narrow components, while native
 * checkboxes/radios remain intrinsic. */
[class^="dgkof"] input:not([type="checkbox"]):not([type="radio"]),
[class*=" dgkof"] input:not([type="checkbox"]):not([type="radio"]),
[class^="kof-"] input:not([type="checkbox"]):not([type="radio"]),
[class*=" kof-"] input:not([type="checkbox"]):not([type="radio"]),
[class^="dgkof"] select,
[class*=" dgkof"] select,
[class^="kof-"] select,
[class*=" kof-"] select,
[class^="dgkof"] textarea,
[class*=" dgkof"] textarea,
[class^="kof-"] textarea,
[class*=" kof-"] textarea {
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

/* Prevent common inline-flex/flex rows from becoming horizontal page
 * overflow. Intentional horizontal canvases are excluded by their wrappers. */
[class^="dgkof"]:not(.dgkof-bracket-horizontal),
[class*=" dgkof"]:not(.dgkof-bracket-horizontal),
[class^="kof-"]:not(.kof-bracket-horizontal),
[class*=" kof-"]:not(.kof-bracket-horizontal) {
  max-width:100%;
}

/* High-risk desktop grids receive a component-safe mobile baseline. */
@media (max-width:782px) {
  .dgkof-tournament-facts,
  .dgkof-reg-facts,
  .dgkof-tournament-participant-grid,
  .dgkof-reg-participant-grid,
  .dgkof-evidence-gallery,
  .dgkof-dashboard-kpi-grid,
  .dgkof-dashboard-attention-grid,
  .dgkof-dashboard-quick-grid,
  .dgkof-promo-phase-list,
  .dgkof-promo-media-grid,
  .dgkof-achievements-grid,
  .dgkof-category-grid,
  .dgkof-stats-grid,
  .dgkof-registrants-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .dgkof-tournament-match-list,
  .dgkof-promo-grid,
  .dgkof-registration-grid,
  .dgkof-reg-grid,
  .dgkof-profile-content-grid {
    grid-template-columns:1fr!important;
  }

  .dgkof-tournament-match-list article,
  .dgkof-player-match-fight {
    min-width:0;
  }

  .dgkof-tournament-participant strong,
  .dgkof-reg-participant strong,
  .dgkof-player-match-event>strong,
  .dgkof-player-match-player strong {
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
  }

  .dgkof-tournament-hero-actions,
  .dgkof-tournament-capacity-cta,
  .dgkof-reg-section-title,
  .dgkof-promo-timeline-head,
  .dgkof-promo-actions,
  .dgkof-evidence-player-head,
  .dgkof-evidence-ft-head {
    align-items:stretch!important;
  }
}

@media (max-width:600px) {
  .dgkof-tournament-facts,
  .dgkof-reg-facts,
  .dgkof-evidence-gallery,
  .dgkof-dashboard-kpi-grid,
  .dgkof-dashboard-quick-grid,
  .dgkof-achievements-grid,
  .dgkof-category-grid,
  .dgkof-stats-grid,
  .dgkof-registrants-grid,
  .dgkof-promo-phase-list,
  .dgkof-promo-media-grid {
    grid-template-columns:1fr!important;
  }

  .dgkof-tournament-hero-content,
  .dgkof-tournament-content-card,
  .dgkof-tournament-capacity,
  .dgkof-reg-info-card,
  .dgkof-reg-signup-card,
  .dgkof-reg-side-card,
  .dgkof-reg-participants,
  .dgkof-promo-card,
  .dgkof-promo-timeline {
    padding-left:clamp(14px,5vw,22px)!important;
    padding-right:clamp(14px,5vw,22px)!important;
  }

  .dgkof-tournament-action,
  .dgkof-registration-actions>* ,
  .dgkof-promo-actions>* {
    width:100%!important;
    justify-content:center;
  }

  .dgkof-tournament-action,
  .dgkof-button,
  .dgkof-player-challenge,
  .dgkof-player-checkin-button {
    min-height:44px;
  }
}

@media (max-width:430px) {
  .kof-options,
  .kof-layout-cards,
  .kof-ranking-wrap.kof-layout-cards {
    grid-template-columns:1fr!important;
  }

  .kof-ranking,
  .kof-benchmark-wrap {
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .kof-option,
  .kof-ranking-card,
  .kof-card {
    min-width:0!important;
    max-width:100%!important;
  }

  .kof-char-image,
  .kof-ranking-char-image {
    max-width:100%;
  }
}

/* Player area: the generated settings CSS is intentionally allowed to style
 * colors/visuals, but its legacy desktop grid must not defeat this global
 * navigation contract. */
@media (max-width:900px) {
  .dgkof-player-area-shell {
    grid-template-columns:1fr!important;
  }

  .dgkof-player-nav {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .dgkof-player-nav-group {
    grid-column:1/-1!important;
  }

  .dgkof-player-nav-submenu {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    padding-left:0!important;
    border-left:0!important;
  }
}

@media (max-width:360px) {
  .dgkof-player-nav,
  .dgkof-player-nav-submenu {
    grid-template-columns:1fr!important;
  }

  .dgkof-player-nav-item {
    flex-direction:row!important;
    justify-content:flex-start!important;
    text-align:left!important;
  }
}

/* Notification panel: never exceed the safe viewport and never become a
 * source of page-level horizontal scrolling. */
.dgkofh-notification-center,
.dgkofh-notification-center-list,
.dgkofh-notification-center-item,
.dgkofh-notification-center-copy {
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

.dgkofh-notification-center-copy strong,
.dgkofh-notification-center-copy p,
.dgkofh-notification-center-copy small {
  overflow-wrap:break-word!important;
  word-break:normal!important;
}

@media (max-width:600px) {
  .dgkofh-notification-center {
    left:max(8px,env(safe-area-inset-left))!important;
    right:max(8px,env(safe-area-inset-right))!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - max(92px,calc(env(safe-area-inset-top) + 28px)))!important;
  }
}

/* Modal/dialog safety: dialogs must fit the visual viewport, including small
 * landscape phones and devices with a virtual keyboard. */
.dgkofh-challenge-modal,
.dgkof-admin-evidence-modal {
  padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
}

.dgkofh-challenge-dialog {
  width:min(520px,100%);
  max-width:100%;
  max-height:min(90dvh,720px);
}

/* Intentional horizontal canvases are self-contained. The document itself
 * should never need horizontal scrolling because of a plugin component. */
.dgkof-bracket-horizontal,
.dgkof-bracket-scroll,
.dgkof-admin-bracket-scroll,
.dgkof-table-wrap,
.dgkof-admin-ft-table-wrap,
.dgkof-single-bracket-v51,
.dgkof-bracket-lane {
  max-width:100%!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}

@media (max-width:782px) {
  .dgkof-admin-evidence-filter,
  .dgkof-evidence-filter {
    width:100%!important;
    max-width:100%!important;
  }

  .dgkof-admin-evidence-filter select,
  .dgkof-evidence-filter select {
    width:100%!important;
    min-width:0!important;
  }

  .dgkof-admin table,
  .dgkof-admin-wrap table,
  .dgkof-admin-page table,
  .dgkof-settings-wrap table {
    min-width:0;
  }
}

/* Respect reduced motion without allowing responsive transitions to reappear
 * from module-specific styles. */
@media (prefers-reduced-motion:reduce) {
  [class^="dgkof"],
  [class*=" dgkof"],
  [class^="kof-"],
  [class*=" kof-"] {
    scroll-behavior:auto!important;
  }
}


/* ========================================================================
 * 1.27.5 — GLOBAL MOBILE-FIRST VISUAL REFINEMENT / COMPONENT LAYER
 * Stage 3: visual density, touch ergonomics, readable hierarchy and
 * component-level reflow. This is global to plugin-rendered components.
 * ======================================================================== */

/* Prevent plugin components from becoming horizontal scrolling surfaces.
 * Intentional horizontal canvases (brackets/tables) keep their own wrapper. */
.dgkof-hub,.dgkof-directory,.dgkof-directory-v2,.dgkof-directory-same-card,
.dgkof-profile,.dgkof-module,.dgkof-responsive-root,
.dgkof-elementor-module-widget,.dgkof-elementor-tournament-widget,
.dgkof-elementor-registration-widget,.dgkof-account-box,.dgkof-player-area,
.dgkof-tournament,.dgkof-tournament-page-v51,.dgkof-tournament-register,
.dgkof-tournament-registration-page { overflow-x:clip; }

/* Fluid component typography: preserve hierarchy without desktop-sized jumps. */
.dgkof-hub h1,.dgkof-directory h1,.dgkof-module h1,.dgkof-profile h1,
.dgkof-tournament h1,.dgkof-tournament-page-v51 h1 { font-size:clamp(1.75rem,5.5vw,3.25rem); line-height:1.08; }
.dgkof-hub h2,.dgkof-directory h2,.dgkof-module h2,.dgkof-profile h2,
.dgkof-tournament h2,.dgkof-tournament-page-v51 h2 { font-size:clamp(1.35rem,4vw,2.25rem); line-height:1.15; }
.dgkof-hub h3,.dgkof-directory h3,.dgkof-module h3,.dgkof-profile h3,
.dgkof-tournament h3,.dgkof-tournament-page-v51 h3 { font-size:clamp(1.08rem,3vw,1.5rem); line-height:1.2; }

/* Touch ergonomics without forcing every compact icon into a huge box. */
.dgkof-hub button,.dgkof-hub [role="button"],.dgkof-module button,
.dgkof-module [role="button"],.dgkof-profile button,.dgkof-profile [role="button"],
.dgkof-player-area button,.dgkof-player-area [role="button"],
.dgkof-tournament button,.dgkof-tournament [role="button"] { touch-action:manipulation; }

/* Forms always shrink with their containing component. */
.dgkof-hub form,.dgkof-module form,.dgkof-profile form,
.dgkof-player-area form,.dgkof-tournament form { min-width:0; max-width:100%; }
.dgkof-hub label,.dgkof-module label,.dgkof-profile label,
.dgkof-player-area label,.dgkof-tournament label { line-height:1.35; }

@media (max-width:600px) {
  .dgkof-player-card,.dgkof-player-card-v2,.dgkof-registrant-card,
  .dgkof-match-card,.dgkof-content-card,.dgkof-tournament-content-card,
  .dgkof-account-box,.dgkof-module-card { max-width:100%!important; min-width:0!important; }

  .dgkof-section-head,.dgkof-account-head,.dgkof-ft-head,
  .dgkof-registration-section-head,.dgkof-tournament-section-title { gap:10px!important; }

  .dgkof-section-head > *,.dgkof-account-head > *,.dgkof-ft-head > *,
  .dgkof-registration-section-head > *,.dgkof-tournament-section-title > * { flex:1 1 100%; }

  .dgkof-directory-filter-actions,.dgkof-registration-actions,.dgkof-ft-row-actions { width:100%; }
  .dgkof-directory-filter-actions > *,.dgkof-registration-actions > *,
  .dgkof-ft-row-actions > * { flex:1 1 100%; width:100%; }

  .dgkof-ranking li,.dgkof-rating-board li { min-height:52px; gap:8px!important; }
  .dgkof-ranking-player-copy,.dgkof-rating-board li strong { line-height:1.2; }

  .dgkof-table-wrap,.dgkof-admin-ft-table-wrap,.dgkof-bracket-scroll,
  .dgkof-admin-bracket-scroll { border-radius:10px; overscroll-behavior-inline:contain; }
}

/* At 360px and below, information blocks become a readable single stream. */
@media (max-width:360px) {
  .dgkof-stats,.dgkof-readonly-stats,.dgkof-profile-rates,
  .dgkof-tournament-facts,.dgkof-player-stat-grid { grid-template-columns:1fr!important; }
  .dgkof-player-nav,.dgkof-player-nav-submenu { grid-template-columns:1fr!important; }
  .dgkof-button,.dgkof-tournament-action,.dgkof-registration-actions a,
  .dgkof-registration-actions button { width:100%!important; }
}

/* Small tablets: prioritize readable card widths over packing a third/fourth column. */
@media (min-width:601px) and (max-width:900px) {
  .dgkof-player-grid,.dgkof-top5-grid,.dgkof-registrants-grid,
  .dgkof-character-showcase,.dgkof-character-image-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .dgkof-form-grid,.dgkof-directory-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}

/* Notification surfaces must fit the viewport and safe areas. */
.dgkof-notification-panel,.dgkof-notifications-panel,.dgkof-toast-stack,
.dgkof-player-notifications { max-width:min(420px,calc(100vw - 24px))!important; min-width:0!important; }
@media (max-width:600px) {
  .dgkof-notification-panel,.dgkof-notifications-panel,.dgkof-player-notifications {
    width:min(420px,calc(100vw - 24px))!important;
    max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px)!important;
    overflow-y:auto!important; -webkit-overflow-scrolling:touch;
  }
}

/* Embedded media is contained by the component instead of the desktop viewport. */
.dgkof-hub iframe,.dgkof-module iframe,.dgkof-profile iframe,
.dgkof-tournament iframe,.dgkof-responsive-root iframe { display:block; width:100%; max-width:100%; }

/* Only long machine-readable strings get character-level emergency wrapping. */
.dgkof-hub .dgkof-url,.dgkof-module .dgkof-url,.dgkof-profile .dgkof-url,
.dgkof-player-area .dgkof-url,.dgkof-tournament .dgkof-url,
.dgkof-hub code,.dgkof-module code,.dgkof-profile code {
  overflow-wrap:anywhere; word-break:break-word;
}

/* ========================================================================
 * 1.27.6 — Mobile First Global / Stage 4: critical interaction surfaces
 * These rules refine behavior of components with high interaction density.
 * They are intentionally component-scoped and do not replace saved styling.
 * ======================================================================== */

/* Player Area: navigation is a real control surface, not a compressed card grid. */
.dgkof-player-area,
.dgkof-player-area .dgkof-player-nav,
.dgkof-player-area .dgkof-player-nav-submenu,
.dgkof-player-area [data-dgkof-player-content]{
  min-width:0!important;
  max-width:100%!important;
}
.dgkof-player-area .dgkof-player-nav-item{
  min-width:0!important;
  max-width:100%!important;
  min-height:44px!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.dgkof-player-area .dgkof-player-nav-item span,
.dgkof-player-area .dgkof-player-nav-item strong,
.dgkof-player-area .dgkof-player-nav-item em{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* Reference Char / voting: cards collapse before their text becomes cramped. */
.dgkof-reference-grid,
.dgkof-reference-list,
.dgkof-reference-ranking,
.dgkof-voting-grid,
.dgkof-vote-grid,
.dgkof-character-reference-grid{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.dgkof-reference-grid > *,
.dgkof-reference-list > *,
.dgkof-reference-ranking > *,
.dgkof-voting-grid > *,
.dgkof-vote-grid > *,
.dgkof-character-reference-grid > *{
  min-width:0!important;
  max-width:100%!important;
}

/* Rankings: preserve rank/value columns while allowing the player copy to shrink. */
.dgkof-ranking li,
.dgkof-rating-board li{
  min-width:0!important;
  max-width:100%!important;
}
.dgkof-ranking li .dgkof-ranking-player-copy,
.dgkof-rating-board li .dgkof-ranking-player-copy{
  min-width:0!important;
  overflow:hidden!important;
}
.dgkof-ranking li .dgkof-ranking-player-copy strong,
.dgkof-rating-board li strong{
  display:block;
  min-width:0!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* Tournament cards: actions become a predictable vertical stack on narrow widths. */
.dgkof-tournament-page-v51 .dgkof-tournament-match-list article,
.dgkof-tournament-page-v51 .dgkof-tournament-participant,
.dgkof-tournament-register .dgkof-registration-card,
.dgkof-tournament-registration-page .dgkof-registration-card{
  min-width:0!important;
  max-width:100%!important;
}
.dgkof-tournament-page-v51 .dgkof-tournament-match-list article > div,
.dgkof-tournament-page-v51 .dgkof-tournament-participant > div{
  min-width:0!important;
}

/* Brackets: keep the fight-card geometry; horizontal scrolling belongs to the bracket. */
.dgkof-bracket-horizontal,
.dgkof-bracket-scroll,
.dgkof-admin-bracket-scroll,
.dgkof-single-bracket-v51,
.dgkof-tournament-bracket-section .dgkof-bracket-lane{
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
}
.dgkof-bracket-horizontal .dgkof-round-column,
.dgkof-bracket-scroll .dgkof-round-column,
.dgkof-single-bracket-v51 .dgkof-round-column{
  flex:0 0 250px;
}

/* Notification trigger: never shrink it below a touch target and keep it above site chrome. */
.dgkofh-notification-trigger-wrap{
  contain:layout paint;
}
.dgkofh-notification-trigger{
  min-width:44px!important;
  min-height:44px!important;
  width:44px;
  height:44px;
}
.dgkofh-notification-trigger:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}
.dgkofh-notification-center{
  max-width:calc(100vw - 24px)!important;
  max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px)!important;
  overflow:hidden;
}
.dgkofh-notification-center-list{
  min-width:0;
  max-height:min(62dvh,520px);
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.dgkofh-notification-center-list > *{
  min-width:0;
  max-width:100%;
}

/* Notification panel items: controls never force the message column wider. */
.dgkof-ft-notification{
  min-width:0!important;
}
.dgkof-ft-notification > div{
  min-width:0!important;
  max-width:100%;
}
.dgkof-ft-notification strong,
.dgkof-ft-notification p{
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.dgkof-ft-notification .button-link{
  flex:0 0 auto;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}

/* Challenge / evidence modals: viewport-safe on phones and with dynamic browser chrome. */
.dgkofh-challenge-dialog,
.dgkof-evidence-modal,
.dgkof-admin-evidence-modal{
  max-width:100vw;
  max-height:100dvh;
}
.dgkofh-challenge-dialog > form,
.dgkofh-challenge-dialog .dgkofh-challenge-form{
  max-width:100%;
  max-height:calc(100dvh - 24px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}

/* Forms: labels/controls stack before they become unusably narrow. */
@media (max-width:600px){
  .dgkof-registration-actions,
  .dgkof-directory-filter-actions,
  .dgkof-ft-row-actions,
  .dgkof-player-footer-actions{
    width:100%!important;
  }
  .dgkof-registration-actions > *,
  .dgkof-directory-filter-actions > *,
  .dgkof-ft-row-actions > *,
  .dgkof-player-footer-actions > *{
    flex:1 1 100%!important;
    width:100%!important;
  }
  .dgkof-ft-notification{
    flex-direction:column!important;
    align-items:stretch!important;
  }
  .dgkof-ft-notification .button-link{
    width:100%;
    justify-content:center;
  }
  .dgkof-tournament-page-v51 .dgkof-tournament-hero-actions > *,
  .dgkof-tournament-page-v51 .dgkof-tournament-capacity-cta > *{
    width:100%;
  }
}

@media (max-width:360px){
  .dgkofh-notification-center{
    left:8px!important;
    right:8px!important;
    width:auto!important;
    max-width:none!important;
  }
  .dgkof-tournament-page-v51 .dgkof-tournament-hero-content{
    padding-inline:16px!important;
  }
}

