:root {
    --green: #0b74d1;
    --green-soft: #e8f4ff;
    --ink: #102033;
    --muted: #60758c;
    --line: #cfe0ef;
    --panel: #ffffff;
    --bg: #eef7ff;
    --blue-deep: #0f3d63;
    --blue-mid: #177cc7;
    --blue-soft: #dff1ff;
    --blue-wash: #f7fbff;
    --shadow: 0 14px 34px rgba(22, 90, 140, 0.09);
    --shadow-soft: 0 8px 22px rgba(22, 90, 140, 0.08);
    --focus: 0 0 0 3px rgba(11, 116, 209, 0.14);
}

/* Player account edit form visibility guard. */
.account-edit-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 18px !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.account-edit-form label,
.account-edit-form .form-actions {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.account-edit-form .full-row,
.account-edit-form .form-actions {
    grid-column: 1 / -1 !important;
}

.account-edit-form .btn {
    display: inline-flex !important;
}

/* Clear mobile profile button: person icon plus label. */
.profile-toggle {
    grid-column: 3 !important;
    justify-self: end !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: auto !important;
    min-width: 84px !important;
    height: 44px !important;
    padding: 0 12px !important;
    border: 1px solid rgba(179, 197, 34, 0.88) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #193b2a !important;
    box-shadow: 0 6px 20px rgba(23, 45, 60, 0.08) !important;
    cursor: pointer !important;
}

.profile-toggle span,
.profile-toggle span::before,
.profile-toggle span::after {
    display: none !important;
    content: none !important;
}

.profile-toggle svg {
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.profile-toggle em {
    display: block !important;
    color: currentColor !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.profile-toggle.active,
.profile-open .profile-toggle {
    border-color: #c8d832 !important;
    background: #f2f8d2 !important;
    color: #193b2a !important;
}

/* Final placement guard for ATP-style player profile. */
.player-atp-legacy-stats {
    display: none !important;
}

.player-atp-hero {
    margin-bottom: 18px !important;
}

/* Tournament gallery lightbox navigation. */
.gallery-lightbox-nav {
    position: fixed;
    top: 50%;
    z-index: 5002;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 50%;
    background: rgba(9, 37, 22, 0.72);
    color: #ffffff;
    font-size: 42px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
}

.gallery-lightbox-nav:hover {
    border-color: rgba(229, 239, 67, 0.78);
    background: rgba(16, 69, 39, 0.92);
    color: #e5ef43;
}

.gallery-lightbox-prev {
    left: 28px;
}

.gallery-lightbox-next {
    right: 28px;
}

@media (max-width: 680px) {
    .gallery-lightbox-nav {
        top: auto;
        bottom: 22px;
        width: 46px;
        height: 46px;
        font-size: 34px;
        transform: none;
    }

    .gallery-lightbox-prev {
        left: 22px;
    }

    .gallery-lightbox-next {
        right: 22px;
    }

    .gallery-lightbox figcaption {
        padding: 0 58px;
    }
}

/* Tournament profile final ordering and bracket stability. */
.tournament-champions-panel {
    display: none !important;
}

.tournament-podium-panel {
    margin-bottom: 18px !important;
}

.tournament-inline-draw {
    min-width: 0 !important;
    overflow: hidden !important;
}

.tournament-inline-draw .draw-bracket {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: minmax(390px, 430px) !important;
    grid-template-columns: none !important;
    gap: 46px !important;
    align-items: start !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    padding: 6px 12px 18px !important;
    scroll-snap-type: x proximity;
}

.tournament-inline-draw .bracket-round {
    width: 100% !important;
    min-width: 0 !important;
    scroll-snap-align: start;
}

.tournament-inline-draw .bracket-match {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.tournament-inline-draw .bracket-match::after {
    right: -31px !important;
    width: 30px !important;
}

.tournament-inline-draw .bracket-match-meta,
.tournament-inline-draw .bracket-score-row {
    min-width: 0 !important;
}

.tournament-inline-draw .bracket-match-meta em,
.tournament-inline-draw .bracket-player span {
    min-width: 0 !important;
}

@media (max-width: 760px) {
    .tournament-inline-draw .draw-bracket {
        grid-auto-flow: row !important;
        grid-auto-columns: auto !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 16px !important;
        overflow-x: visible !important;
        padding: 4px 0 10px !important;
    }

    .tournament-inline-draw .bracket-round:nth-child(2) .bracket-match-list,
    .tournament-inline-draw .bracket-round:nth-child(3) .bracket-match-list {
        gap: 16px !important;
    }

    .tournament-inline-draw .bracket-match::after {
        display: none !important;
    }
}

/* Completed tournament profile order and champion cards. */
.tournament-champions-panel,
.tournament-format-overview-panel {
    margin-bottom: 18px !important;
}

.tournament-champions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 14px;
}

.tournament-champion-card {
    position: relative;
    display: grid;
    min-height: 214px;
    gap: 8px;
    align-content: start;
    padding: 18px;
    overflow: hidden;
    border: 1px solid rgba(218, 228, 55, 0.35);
    border-radius: 8px;
    background:
        radial-gradient(circle at 88% 12%, rgba(218, 228, 55, 0.28), transparent 34%),
        linear-gradient(135deg, #082516 0%, #104527 62%, #177345 100%);
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 16px 34px rgba(9, 55, 29, 0.16);
}

.tournament-champion-card::after {
    content: "1";
    position: absolute;
    right: 14px;
    bottom: -24px;
    color: rgba(229, 239, 67, 0.12);
    font-size: 120px;
    font-weight: 1000;
    line-height: 1;
}

.tournament-champion-card:hover {
    transform: translateY(-1px);
    border-color: rgba(218, 228, 55, 0.7);
}

.champion-format,
.champion-category {
    position: relative;
    z-index: 1;
    width: fit-content;
}

.champion-format {
    color: #e5ef43;
    font-size: 12px;
    font-weight: 1000;
    text-transform: uppercase;
}

.champion-category {
    min-height: 26px;
    padding: 5px 9px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.78);
    font-size: 11px;
    font-weight: 900;
}

.champion-avatars {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
}

.champion-avatar {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    overflow: hidden;
    border: 2px solid rgba(229, 239, 67, 0.72);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #e5ef43;
    font-size: 15px;
    font-weight: 1000;
}

.champion-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tournament-champion-card strong,
.tournament-champion-card small {
    position: relative;
    z-index: 1;
}

.tournament-champion-card strong {
    margin-top: 4px;
    color: #ffffff;
    font-size: 20px;
    line-height: 1.15;
}

.tournament-champion-card small {
    color: #e5ef43;
    font-size: 12px;
    font-weight: 900;
}

.tournament-format-overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.tournament-format-overview-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid rgba(217, 231, 239, 0.95);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(22, 90, 140, 0.06);
}

.tournament-format-overview-card:hover {
    border-color: rgba(15, 127, 104, 0.28);
    transform: translateY(-1px);
}

.tournament-format-overview-card > span {
    color: var(--green);
    font-size: 11px;
    font-weight: 1000;
    text-transform: uppercase;
}

.tournament-format-overview-card > strong {
    color: var(--blue-deep);
    font-size: 17px;
    line-height: 1.2;
}

.tournament-format-overview-card dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 0;
}

.tournament-format-overview-card dl div {
    min-width: 0;
    padding: 8px 7px;
    border-radius: 8px;
    background: #f4f8ea;
}

.tournament-format-overview-card dt {
    margin: 0 0 3px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
}

.tournament-format-overview-card dd {
    margin: 0;
    color: var(--green);
    font-size: 22px;
    font-weight: 1000;
    line-height: 1;
}

.tournament-structure-format {
    scroll-margin-top: 130px;
}

@media (max-width: 680px) {
    .tournament-champion-card {
        min-height: 190px;
        padding: 15px;
    }

    .tournament-format-overview-card dl {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tournament-format-overview-card dd {
        font-size: 19px;
    }
}

/* Final ATP-style player profile hero. */
.player-atp-legacy-stats {
    display: none !important;
}

.player-atp-hero {
    position: relative;
    overflow: hidden;
    margin-bottom: 18px;
    border: 1px solid rgba(88, 136, 162, 0.3);
    border-radius: 8px;
    background:
        radial-gradient(circle at 86% 8%, rgba(218, 228, 55, 0.34), transparent 30%),
        linear-gradient(135deg, #082516 0%, #104527 46%, #177345 100%);
    box-shadow: 0 22px 50px rgba(11, 54, 30, 0.2);
    color: #ffffff;
}

.player-atp-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: 18px;
    align-items: stretch;
    min-height: 310px;
    padding: 34px 34px 0;
}

.player-atp-copy {
    position: relative;
    z-index: 2;
    align-self: center;
    padding-bottom: 120px;
}

.player-atp-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 12px;
    border: 1px solid rgba(218, 228, 55, 0.48);
    border-radius: 999px;
    background: rgba(218, 228, 55, 0.14);
    color: #e7ef58;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.player-atp-copy h1 {
    max-width: 680px;
    margin: 18px 0 10px;
    color: #ffffff;
    font-size: 48px;
    line-height: 1.02;
    letter-spacing: 0;
    text-transform: uppercase;
}

.player-atp-meta,
.player-atp-overall {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.player-atp-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.86);
    font-size: 12px;
    font-weight: 900;
}

.player-atp-overall {
    margin-top: 18px;
}

.player-atp-overall span {
    min-width: 112px;
    padding: 10px 12px;
    border: 1px solid rgba(218, 228, 55, 0.28);
    border-radius: 8px;
    background: rgba(4, 32, 18, 0.36);
    color: rgba(255, 255, 255, 0.72);
    font-size: 12px;
    font-weight: 800;
}

.player-atp-overall strong {
    display: block;
    margin-bottom: 2px;
    color: #e5ef43;
    font-size: 22px;
    line-height: 1;
}

.player-atp-photo {
    position: relative;
    z-index: 1;
    align-self: end;
    justify-self: center;
    width: 100%;
    max-width: 310px;
    height: 310px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
    color: #e5ef43;
    font-size: 54px;
    font-weight: 1000;
}

.player-atp-photo::before {
    content: "";
    position: absolute;
    inset: auto 6% 0;
    height: 72%;
    border-radius: 50% 50% 0 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0));
}

.player-atp-photo img {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom center;
    filter: drop-shadow(0 20px 28px rgba(0, 0, 0, 0.26));
}

.player-atp-photo span {
    position: relative;
    display: grid;
    place-items: center;
    width: 176px;
    height: 176px;
    margin-bottom: 54px;
    border: 1px solid rgba(229, 239, 67, 0.45);
    border-radius: 50%;
    background: rgba(0, 0, 40, 0.32);
}

.player-atp-statboard {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: -96px 34px 34px;
    border: 1px solid rgba(218, 228, 55, 0.48);
    border-radius: 8px;
    overflow: hidden;
    background: rgba(6, 38, 21, 0.9);
    box-shadow: 0 18px 36px rgba(5, 35, 19, 0.28);
    backdrop-filter: blur(8px);
}

.player-atp-stat-card {
    min-width: 0;
}

.player-atp-stat-card + .player-atp-stat-card {
    border-left: 1px solid rgba(218, 228, 55, 0.28);
}

.player-atp-stat-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 54px;
    padding: 0 18px;
    border-bottom: 1px solid rgba(218, 228, 55, 0.28);
    background: rgba(255, 255, 255, 0.08);
}

.player-atp-stat-title strong {
    color: #ffffff;
    font-size: 18px;
}

.player-atp-stat-title span {
    color: #e5ef43;
    font-size: 12px;
    font-weight: 900;
}

.player-atp-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.player-atp-stat-grid div {
    min-width: 0;
    min-height: 86px;
    padding: 15px 16px;
    border-right: 1px solid rgba(218, 228, 55, 0.18);
    border-bottom: 1px solid rgba(218, 228, 55, 0.18);
}

.player-atp-stat-grid div:nth-child(3n) {
    border-right: 0;
}

.player-atp-stat-grid div:nth-last-child(-n + 3) {
    border-bottom: 0;
}

.player-atp-stat-grid span {
    display: block;
    color: rgba(255, 255, 255, 0.64);
    font-size: 12px;
    font-weight: 800;
}

.player-atp-stat-grid strong {
    display: block;
    margin-top: 8px;
    color: #ffffff;
    font-size: 26px;
    line-height: 1;
}

@media (max-width: 860px) {
    .player-atp-main {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 24px 20px 0;
    }

    .player-atp-copy {
        padding-bottom: 0;
    }

    .player-atp-copy h1 {
        font-size: 34px;
    }

    .player-atp-photo {
        max-width: 260px;
        height: 250px;
        margin-top: -10px;
    }

    .player-atp-statboard {
        grid-template-columns: 1fr;
        margin: 0 20px 22px;
    }

    .player-atp-stat-card + .player-atp-stat-card {
        border-left: 0;
        border-top: 1px solid rgba(218, 228, 55, 0.28);
    }
}

@media (max-width: 560px) {
    .player-atp-main {
        padding: 20px 16px 0;
    }

    .player-atp-copy h1 {
        font-size: 28px;
    }

    .player-atp-overall span {
        flex: 1 1 calc(50% - 8px);
        min-width: 0;
    }

    .player-atp-photo {
        height: 220px;
    }

    .player-atp-statboard {
        margin: 0 12px 16px;
    }

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

    .player-atp-stat-grid div:nth-child(3n) {
        border-right: 1px solid rgba(218, 228, 55, 0.18);
    }

    .player-atp-stat-grid div:nth-child(2n) {
        border-right: 0;
    }

    .player-atp-stat-grid div:nth-last-child(-n + 3) {
        border-bottom: 1px solid rgba(218, 228, 55, 0.18);
    }

    .player-atp-stat-grid div:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    .player-atp-stat-grid strong {
        font-size: 22px;
    }
}

@media (max-width: 680px) {
    .account-edit-form {
        grid-template-columns: 1fr !important;
    }

    .tournament-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .gallery-lightbox {
        padding: 14px !important;
    }

    .gallery-lightbox-close {
        top: 12px !important;
        right: 12px !important;
    }
}

/* Dedicated player edit page form - keep last. */
.player-edit-panel {
    width: min(980px, 100%) !important;
    max-width: 980px !important;
    min-height: 0 !important;
    padding: 26px !important;
    overflow: visible !important;
}

.player-edit-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-edit-form label {
    display: block !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
}

.player-edit-form label span {
    display: block !important;
    margin-bottom: 7px !important;
    color: #344054 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
}

.player-edit-form input,
.player-edit-form select {
    display: block !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    background: #fbfdff !important;
    color: var(--ink) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-edit-full,
.player-edit-actions {
    grid-column: 1 / -1 !important;
}

.player-edit-actions {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

@media (max-width: 680px) {
    .player-edit-panel {
        padding: 16px !important;
    }

    .player-edit-form {
        grid-template-columns: 1fr !important;
    }
}

/* Final compact dashboard match/result override. */
.modern-results-list {
    gap: 7px !important;
}

.modern-results .panel-title-row {
    margin-bottom: 12px !important;
}

.modern-result-card {
    grid-template-columns: minmax(145px, 0.44fr) minmax(0, 1.4fr) minmax(160px, 0.48fr) !important;
    gap: 10px !important;
    min-height: 0 !important;
    padding: 10px 12px !important;
}

.result-meta-line,
.result-context-line {
    gap: 2px !important;
}

.result-meta-line span:first-child {
    padding: 4px 7px !important;
    font-size: 11px !important;
}

.result-meta-line span:last-child,
.result-meta-line small,
.result-context-line span,
.result-context-line strong {
    font-size: 11px !important;
    line-height: 1.25 !important;
}

.result-match-line {
    gap: 8px !important;
}

.result-match-line strong {
    font-size: 13px !important;
    line-height: 1.25 !important;
}

.result-match-line em {
    padding: 4px 7px !important;
    font-size: 12px !important;
}

.upcoming-match-card .result-context-line span {
    display: none !important;
}

@media (max-width: 980px) {
    .modern-result-card {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .result-match-line {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    }
}

@media (max-width: 680px) {
    .modern-result-card {
        padding: 9px 10px !important;
    }

    .result-match-line {
        grid-template-columns: 1fr !important;
        gap: 5px !important;
    }

    .result-match-line em {
        justify-self: start !important;
    }
}

/* Privacy, consent, and sharing helpers. */
.privacy-policy-panel {
    display: grid;
    gap: 12px;
    max-width: 920px;
}

.privacy-policy-panel h2 {
    margin: 12px 0 0;
    color: var(--blue-deep);
    font-size: 20px;
}

.privacy-policy-panel p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.privacy-policy-panel a,
.privacy-consent a,
.cookie-consent a,
.site-footer-legal a {
    color: var(--green);
    font-weight: 900;
}

.privacy-consent {
    grid-column: 1 / -1;
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(207, 224, 239, 0.9);
    border-radius: 8px;
    background: #f7fbff;
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
}

.privacy-consent input {
    width: 18px !important;
    min-width: 18px;
    height: 18px !important;
    margin-top: 1px;
}

.site-footer-legal {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid rgba(207, 224, 239, 0.62);
}

.cookie-consent {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1200;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    width: min(620px, calc(100% - 36px));
    padding: 16px;
    border: 1px solid rgba(207, 224, 239, 0.96);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(16, 32, 51, 0.16);
}

.cookie-consent[hidden] {
    display: none;
}

.cookie-consent strong {
    display: block;
    margin-bottom: 4px;
    color: var(--blue-deep);
}

.cookie-consent p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

@media (max-width: 680px) {
    .cookie-consent {
        left: 12px;
        right: 12px;
        bottom: 12px;
        grid-template-columns: 1fr;
        width: auto;
    }

    .cookie-consent .btn {
        width: 100%;
    }
}

/* Tournament gallery player tags. */
.gallery-photo-card {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.gallery-tag-form {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(207, 224, 239, 0.86);
    border-radius: 8px;
    background: #f7fbff;
}

.gallery-tag-form label {
    display: grid;
    gap: 6px;
}

.gallery-tag-form label span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.gallery-tag-form select {
    width: 100%;
    min-height: 112px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    font: inherit;
}

.gallery-tag-form .table-action {
    justify-self: start;
}

.player-tagged-photos-panel {
    margin-bottom: 18px;
}

.player-tagged-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}

.player-tagged-photo-card {
    overflow: hidden;
    display: grid;
    border: 1px solid rgba(207, 224, 239, 0.9);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.player-tagged-photo-card:hover {
    border-color: var(--green);
    box-shadow: 0 12px 26px rgba(22, 90, 140, 0.1);
    transform: translateY(-1px);
}

.player-tagged-photo-card img {
    width: 100%;
    aspect-ratio: 2 / 3;
    object-fit: cover;
    object-position: center top;
}

.player-tagged-photo-card span {
    display: grid;
    gap: 3px;
    padding: 10px;
}

.player-tagged-photo-card strong {
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-tagged-photo-card small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

/* Larger tournament poster images on the tournaments page. */
.tournament-poster-grid {
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)) !important;
    gap: 22px !important;
}

.tournament-poster-media {
    aspect-ratio: 2 / 3 !important;
}

.tournament-poster-body {
    padding: 16px !important;
}

.tournament-poster-body > strong {
    font-size: 21px !important;
}

@media (min-width: 1280px) {
    .tournament-poster-grid {
        grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)) !important;
    }
}

@media (max-width: 680px) {
    .tournament-poster-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .tournament-poster-card {
        grid-template-columns: 138px minmax(0, 1fr) !important;
    }

    .tournament-poster-media {
        min-height: 190px !important;
        aspect-ratio: auto !important;
    }
}

/* Final profile menu icon override. */
.profile-toggle {
    grid-column: 3 !important;
    justify-self: end !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: auto !important;
    min-width: 84px !important;
    height: 44px !important;
    padding: 0 12px !important;
    border: 1px solid rgba(179, 197, 34, 0.88) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #193b2a !important;
    box-shadow: 0 6px 20px rgba(23, 45, 60, 0.08) !important;
    cursor: pointer !important;
}

.profile-toggle span,
.profile-toggle span::before,
.profile-toggle span::after {
    display: none !important;
    content: none !important;
}

.profile-toggle svg {
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.profile-toggle em {
    display: block !important;
    color: currentColor !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.profile-toggle.active,
.profile-open .profile-toggle {
    border-color: #c8d832 !important;
    background: #f2f8d2 !important;
    color: #193b2a !important;
}

/* Match list and result polish. */
.match-list-panel {
    overflow: visible;
}

.match-list-panel .format-tabs {
    margin-bottom: 16px;
}

.match-card-list {
    display: grid;
    gap: 10px;
}

.match-list-card {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) 132px 72px;
    gap: 16px;
    align-items: center;
    padding: 14px;
    border: 1px solid rgba(189, 213, 226, 0.9);
    border-radius: 8px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(22, 90, 140, 0.06);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.match-list-card:hover {
    border-color: var(--green);
    box-shadow: 0 16px 34px rgba(22, 90, 140, 0.12);
    transform: translateY(-1px);
}

.match-list-date {
    display: grid;
    gap: 3px;
    padding: 10px;
    border-radius: 8px;
    background: var(--blue-wash);
}

.match-list-date strong {
    color: var(--blue-deep);
    font-size: 14px;
}

.match-list-date span,
.match-list-topline span,
.match-list-topline em,
.match-list-teams small,
.match-list-open {
    color: var(--muted);
    font-size: 12px;
}

.match-list-main {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.match-list-topline {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
}

.match-list-topline strong {
    color: var(--blue-deep);
}

.match-list-topline span,
.match-list-topline em {
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(237, 245, 252, 0.95);
    font-style: normal;
}

.match-list-topline em {
    background: var(--green-soft);
    color: var(--green);
}

.match-list-teams {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.match-list-teams span {
    min-width: 0;
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 16px;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.match-list-teams span:last-child {
    text-align: right;
}

.match-list-teams .winner {
    color: #087a38;
}

.match-list-teams b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-right: 5px;
    border-radius: 50%;
    background: var(--green-soft);
    color: #087a38;
    font-size: 11px;
}

.match-list-score {
    display: grid;
    justify-items: center;
    gap: 7px;
    padding: 10px;
    border-radius: 8px;
    background: rgba(245, 248, 251, 0.95);
}

.match-list-score strong {
    color: var(--blue-deep);
    font-size: 20px;
    line-height: 1;
}

.match-list-open {
    justify-self: end;
    color: var(--green);
    font-weight: 900;
}

.enhanced-result-panel {
    max-width: 1180px;
}

.match-result-hero {
    display: grid;
    gap: 16px;
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid rgba(189, 213, 226, 0.9);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, rgba(246, 251, 255, 0.95) 100%);
}

.match-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.match-result-meta span,
.match-result-meta em {
    color: var(--muted);
    font-size: 13px;
    font-style: normal;
    font-weight: 800;
}

.match-result-meta strong {
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--green-soft);
    color: var(--green);
    font-size: 13px;
}

.enhanced-result-panel .match-result-title {
    grid-template-columns: minmax(0, 1fr) 150px minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 0;
}

.enhanced-result-panel .match-result-title > div:not(.match-vs) {
    display: grid;
    align-content: center;
    min-height: 112px;
    background: #fff;
}

.enhanced-result-panel .match-result-title > div.winner {
    border-color: rgba(15, 127, 104, 0.38);
    background: rgba(240, 249, 244, 0.96);
}

.enhanced-result-panel .match-result-title > div.winner small {
    display: inline-flex;
    width: fit-content;
    margin-top: 10px;
    padding: 5px 9px;
    border-radius: 999px;
    background: var(--green);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}

.enhanced-result-panel .match-vs {
    display: grid;
    align-content: center;
    justify-items: center;
    min-height: 112px;
    padding: 14px;
    border-radius: 8px;
    background: var(--blue-deep);
    color: #fff;
}

.enhanced-result-panel .match-vs strong {
    color: #fff;
    font-size: 28px;
    line-height: 1.1;
    text-align: center;
}

.enhanced-result-panel .match-vs span {
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.enhanced-result-panel .readonly-scoreboard {
    margin-top: 0;
}

@media (max-width: 980px) {
    .match-list-card {
        grid-template-columns: 82px minmax(0, 1fr) 120px;
    }

    .match-list-open {
        display: none;
    }

    .match-list-teams {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .match-list-teams span:last-child {
        text-align: left;
    }
}

@media (max-width: 680px) {
    .match-list-card,
    .enhanced-result-panel .match-result-title {
        grid-template-columns: 1fr;
    }

    .match-list-score {
        justify-items: start;
    }

    .enhanced-result-panel .match-vs {
        min-height: 86px;
    }
}

/* Internal messages. */
.messages-panel,
.message-view-panel {
    display: grid;
    gap: 16px;
}

.messages-tabs {
    margin-bottom: 2px;
}

.messages-list {
    display: grid;
    gap: 10px;
}

.message-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid rgba(21, 79, 60, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.84);
    color: inherit;
    text-decoration: none;
}

.message-row:hover,
.message-row.is-unread {
    border-color: rgba(27, 131, 92, 0.38);
    background: rgba(238, 249, 242, 0.92);
}

.message-row-main {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.message-row-main strong,
.message-row-main em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.message-row-main em,
.message-row-date,
.message-view-meta {
    color: var(--muted);
    font-size: 13px;
    font-style: normal;
}

.message-view-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
}

.message-view-body {
    padding: 18px;
    border: 1px solid rgba(21, 79, 60, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.74);
    line-height: 1.65;
    white-space: normal;
}

.message-compose-form textarea {
    resize: vertical;
}

.daily-matches-panel {
    border-color: rgba(32, 128, 91, 0.2);
}

.daily-matches-list {
    gap: 8px !important;
}

.daily-match-card.is-completed {
    background: rgba(240, 249, 244, 0.92) !important;
}

.daily-match-card.is-upcoming .result-match-line em {
    background: rgba(245, 248, 251, 0.96) !important;
    color: var(--muted) !important;
}

@media (max-width: 680px) {
    .message-row {
        grid-template-columns: 1fr;
        gap: 7px;
        padding: 12px;
    }

    .message-row-date {
        justify-self: start;
    }
}

/* Tournament profile order: full-width formats first, gallery below. */
.tournament-gallery-original {
    display: none !important;
}

.tournament-formats-full {
    grid-template-columns: 1fr !important;
}

.tournament-formats-full > .panel {
    min-width: 0;
}

/* Tournament winner podium shown on completed tournament profiles. */
.tournament-podium-panel {
    margin-bottom: 18px;
}

.tournament-podium-list {
    display: grid;
    gap: 16px;
}

.tournament-podium-format {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%);
}

.tournament-podium-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.tournament-podium-heading strong {
    color: var(--blue-deep);
    font-size: 18px;
}

.tournament-podium-heading span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.tournament-structure-panel {
    margin-bottom: 18px;
}

.tournament-structure-list {
    display: grid;
    gap: 18px;
}

.tournament-structure-format {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #fbfdff;
}

.tournament-structure-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.tournament-structure-heading h3 {
    margin: 0 0 4px;
    color: var(--blue-deep);
    font-size: 18px;
}

.tournament-structure-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.tournament-inline-groups {
    margin-bottom: 0;
}

.tournament-inline-group-card,
.tournament-inline-empty {
    box-shadow: none;
}

.tournament-inline-draw {
    display: grid;
    gap: 12px;
}

.tournament-inline-draw-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.tournament-inline-draw h4 {
    margin: 0;
    color: var(--blue-deep);
    font-size: 15px;
}

.tournament-inline-draw .draw-bracket {
    margin: 0;
}

.podium-stage {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.38fr) minmax(0, 0.92fr);
    align-items: end;
    gap: 12px;
}

.podium-step {
    display: grid;
    gap: 8px;
    justify-items: center;
    min-height: 176px;
    padding: 18px 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px 8px 0 0;
    background: #ffffff;
    text-align: center;
}

.podium-step-gold {
    min-height: 286px;
    padding-top: 26px;
    border-color: rgba(198, 155, 27, 0.32);
    background: linear-gradient(180deg, #fff9db 0%, #ffffff 74%);
    box-shadow: 0 18px 42px rgba(198, 155, 27, 0.16);
}

.podium-step-silver {
    min-height: 260px;
    background: linear-gradient(180deg, #f1f5f9 0%, #ffffff 78%);
}

.podium-step-bronze {
    min-height: 198px;
    background: linear-gradient(180deg, #fff2e6 0%, #ffffff 78%);
}

.podium-place {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 999px;
    background: var(--green);
    color: #ffffff;
    font-size: 20px;
    font-weight: 900;
}

.podium-step-gold .podium-place {
    width: 64px;
    height: 64px;
    background: #c69b1b;
    font-size: 30px;
}

.podium-step-silver .podium-place {
    background: #73879d;
}

.podium-step-bronze .podium-place {
    background: #b66a2d;
}

.podium-label {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.podium-entry,
.podium-entry.compact {
    display: grid;
    gap: 7px;
    justify-items: center;
    min-width: 0;
}

.podium-entry strong,
.podium-name {
    max-width: 100%;
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
    text-overflow: ellipsis;
}

.podium-entry small {
    color: var(--green);
    font-size: 12px;
    font-weight: 900;
}

.podium-avatars,
.podium-avatar-stack {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 50px;
    flex-wrap: wrap;
}

.podium-avatar {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    overflow: hidden;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #edf8ff;
    color: var(--green);
    font-size: 13px;
    font-weight: 900;
    box-shadow: 0 8px 18px rgba(13, 53, 87, 0.12);
}

.podium-avatar + .podium-avatar {
    margin-left: 0;
}

.podium-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.podium-bronze-list {
    display: grid;
    gap: 8px;
    width: 100%;
}

.podium-step-bronze .podium-entry.compact {
    gap: 5px;
}

.podium-step-bronze .podium-entry.compact strong {
    font-size: 13px;
}

.podium-step-bronze .podium-entry.compact .podium-avatars {
    gap: 6px;
}

.podium-step-bronze .podium-entry.compact .podium-avatar {
    width: 36px;
    height: 36px;
    font-size: 11px;
}

.podium-step-gold .podium-entry {
    gap: 10px;
}

.podium-step-gold .podium-entry strong {
    font-size: 19px;
}

.podium-step-gold .podium-entry small {
    font-size: 13px;
}

.podium-step-gold .podium-avatar {
    width: 62px;
    height: 62px;
    font-size: 16px;
}

.podium-step-gold .podium-avatars {
    gap: 10px;
}

@media (max-width: 780px) {
    .tournament-structure-format {
        padding: 12px;
    }

    .tournament-structure-heading {
        display: grid;
    }

    .podium-stage {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .podium-step,
    .podium-step-gold,
    .podium-step-silver,
    .podium-step-bronze {
        min-height: 0;
        border-radius: 8px;
    }

    .podium-step-gold {
        order: -1;
    }

    .tournament-podium-heading {
        display: grid;
    }
}

/* Home tournament poster cards and top ranking preview. */
.tournament-lists-grid {
    display: none !important;
}

.tournament-lists-grid .tournament-list {
    display: none !important;
}

.home-tournaments-panel {
    margin-bottom: 22px;
}

.home-tournaments-champions-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 0.88fr);
    gap: 18px;
    align-items: start;
    margin-bottom: 22px;
}

.home-tournaments-champions-grid .home-tournaments-panel {
    margin-bottom: 0;
}

.home-tournaments-champions-grid .home-tournament-card-grid {
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
}

.home-champions-panel {
    display: grid;
    gap: 14px;
}

.home-champion-list {
    display: grid;
    gap: 10px;
}

.home-champion-card {
    display: grid;
    grid-template-columns: 34px auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: linear-gradient(135deg, #fffdf1 0%, #ffffff 72%);
}

.home-champion-medal {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: #c69b1b;
    color: #ffffff;
    font-size: 16px;
    font-weight: 900;
}

.home-champion-avatars {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.home-champion-avatar {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    overflow: hidden;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #edf8ff;
    color: var(--green);
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 8px 18px rgba(13, 53, 87, 0.12);
}

.home-champion-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-champion-card strong {
    display: block;
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 14px;
    line-height: 1.2;
    text-overflow: ellipsis;
}

.home-champion-card small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
}

.home-tournaments-panel .panel-title-row {
    align-items: flex-start;
    gap: 18px;
}

.home-tournament-tabs {
    margin: 0;
    padding: 0;
}

.home-tournament-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 14px;
}

.home-tournament-card {
    display: grid;
    overflow: hidden;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    box-shadow: var(--shadow-soft);
}

.home-tournament-card:hover {
    border-color: rgba(15, 127, 104, 0.25);
    box-shadow: 0 16px 34px rgba(13, 53, 87, 0.11);
    transform: translateY(-1px);
}

.home-tournament-card-media {
    display: grid;
    place-items: center;
    overflow: hidden;
    aspect-ratio: 2 / 3;
    background: linear-gradient(135deg, #0c3556, #0f7f68);
    color: #fff;
    font-weight: 900;
}

.home-tournament-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-tournament-card-body {
    display: grid;
    gap: 6px;
    padding: 12px;
}

.home-tournament-card-body time {
    justify-self: start;
    padding: 5px 8px;
    border-radius: 8px;
    background: var(--green-soft);
    color: var(--green);
    font-size: 12px;
    font-weight: 900;
}

.home-tournament-card-body strong,
.home-tournament-card-body span,
.home-tournament-card-body small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-tournament-card-body strong {
    color: var(--blue-deep);
    font-size: 15px;
}

.home-tournament-card-body span,
.home-tournament-card-body small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.tournament-index-card .tournament-poster-head,
.tournament-index-card .tournament-poster-body,
.tournament-index-card dl {
    display: none !important;
}

.tournament-index-card .home-tournament-card-media .tournament-poster-placeholder {
    display: grid;
    place-items: center;
    padding: 0;
    background: transparent;
    color: #ffffff;
}

.tournament-index-card .home-tournament-card-media .tournament-poster-placeholder strong,
.tournament-index-card .home-tournament-card-media .tournament-poster-placeholder small {
    display: none;
}

.home-rankings-panel {
    margin-bottom: 22px;
}

.home-sponsor-banner {
    display: block;
    overflow: hidden;
    margin: 0 0 22px;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #02070b;
    box-shadow: var(--shadow-soft);
}

.home-sponsor-banner:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 42px rgba(13, 53, 87, 0.12);
}

.home-sponsor-banner img {
    display: block;
    width: 100%;
    height: auto;
}

.home-partners-panel {
    margin-bottom: 22px;
}

.home-partner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 280px));
    gap: 14px;
    align-items: stretch;
}

.home-partner-card {
    display: grid;
    place-items: center;
    min-height: 130px;
    padding: 20px 24px;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(15, 48, 69, 0.06);
}

.home-partner-card img {
    display: block;
    width: min(100%, 240px);
    height: auto;
}

@media (min-width: 769px) {
    .home-sponsor-banner-bi {
        width: 300px;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .home-sponsor-banner-bi img {
        width: 300px;
        height: 250px;
        object-fit: cover;
    }
}

.home-ranking-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
}

.home-ranking-row {
    display: grid;
    grid-template-columns: 34px 42px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
}

.home-ranking-row:hover {
    border-color: rgba(15, 127, 104, 0.25);
    box-shadow: 0 12px 26px rgba(13, 53, 87, 0.08);
}

.home-ranking-place {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: var(--green-soft);
    color: var(--green);
    font-weight: 900;
}

.home-ranking-avatar {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    overflow: hidden;
    border-radius: 999px;
    background: #edf8ff;
    color: var(--green);
    font-size: 13px;
    font-weight: 900;
}

.home-ranking-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-ranking-name {
    min-width: 0;
}

.home-ranking-name strong,
.home-ranking-name small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-ranking-name strong {
    color: var(--blue-deep);
}

.home-ranking-name small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.home-ranking-points {
    color: var(--green);
    font-weight: 900;
    white-space: nowrap;
}

@media (max-width: 980px) {
    .home-ranking-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .home-tournaments-champions-grid {
        grid-template-columns: 1fr;
    }

    .home-tournaments-panel .panel-title-row {
        display: grid;
    }

    .home-tournament-card {
        grid-template-columns: 104px minmax(0, 1fr);
    }

    .home-tournament-card-media {
        min-height: 156px;
        aspect-ratio: auto;
    }

    .home-ranking-row {
        grid-template-columns: 28px 38px minmax(0, 1fr);
    }

    .home-ranking-points {
        grid-column: 3;
    }
}

/* Compact dashboard match and result rows. */
.modern-results-list {
    gap: 7px !important;
}

.modern-results .panel-title-row {
    margin-bottom: 12px !important;
}

.modern-result-card {
    grid-template-columns: minmax(145px, 0.44fr) minmax(0, 1.4fr) minmax(160px, 0.48fr) !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    min-height: 0 !important;
}

.result-meta-line,
.result-context-line {
    gap: 2px !important;
}

.result-meta-line span:first-child {
    padding: 4px 7px !important;
    font-size: 11px !important;
}

.result-meta-line span:last-child,
.result-meta-line small,
.result-context-line span,
.result-context-line strong {
    font-size: 11px !important;
    line-height: 1.25 !important;
}

.result-match-line {
    gap: 8px !important;
}

.result-match-line strong {
    font-size: 13px !important;
    line-height: 1.25 !important;
}

.result-match-line em {
    padding: 4px 7px !important;
    font-size: 12px !important;
}

.upcoming-match-card .result-context-line span {
    display: none !important;
}

@media (max-width: 980px) {
    .modern-result-card {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .result-match-line {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    }
}

@media (max-width: 680px) {
    .modern-result-card {
        padding: 9px 10px !important;
    }

    .result-match-line {
        grid-template-columns: 1fr !important;
        gap: 5px !important;
    }

    .result-match-line em {
        justify-self: start !important;
    }
}

.tournament-index-panel {
    display: grid;
    gap: 18px;
}

.tournament-index-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.tournament-index-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 9px 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--blue-deep);
    text-decoration: none;
    white-space: nowrap;
}

.tournament-index-tabs a.active,
.tournament-index-tabs a:hover {
    border-color: rgba(15, 127, 104, 0.28);
    background: var(--green-soft);
    color: var(--green);
}

.tournament-index-tabs strong {
    font-size: 14px;
}

.tournament-index-tabs span {
    display: inline-grid;
    min-width: 24px;
    height: 24px;
    place-items: center;
    padding: 0 7px;
    border-radius: 999px;
    background: rgba(15, 127, 104, 0.1);
    font-size: 12px;
    font-weight: 900;
}

.tournament-poster-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 18px;
}

.tournament-poster-card {
    display: grid;
    overflow: hidden;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    box-shadow: var(--shadow-soft);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.tournament-poster-card:hover {
    border-color: rgba(15, 127, 104, 0.25);
    box-shadow: 0 18px 42px rgba(13, 53, 87, 0.12);
    transform: translateY(-2px);
}

.tournament-poster-media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background: #0d352f;
}

.tournament-poster-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.22s ease;
}

.tournament-poster-card:hover .tournament-poster-media img {
    transform: scale(1.025);
}

.tournament-poster-placeholder {
    display: grid;
    height: 100%;
    align-content: end;
    gap: 11px;
    padding: 22px;
    background:
        linear-gradient(180deg, rgba(13, 53, 87, 0.12), rgba(0, 29, 25, 0.9)),
        linear-gradient(135deg, #0f7f68, #122f43 54%, #d2d853);
    color: #fff;
}

.tournament-poster-placeholder span,
.tournament-poster-placeholder small {
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.tournament-poster-placeholder strong {
    font-size: 30px;
    line-height: 1.02;
}

.tournament-poster-body {
    display: grid;
    gap: 10px;
    padding: 14px;
}

.tournament-poster-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.tournament-poster-head small,
.tournament-poster-body > span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.tournament-poster-body > strong {
    color: var(--blue-deep);
    font-size: 19px;
    line-height: 1.16;
}

.tournament-poster-body dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 2px 0 0;
}

.tournament-poster-body dl div {
    padding: 9px 10px;
    border-radius: 8px;
    background: #edf8ff;
}

.tournament-poster-body dt,
.tournament-poster-body dd {
    margin: 0;
}

.tournament-poster-body dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.tournament-poster-body dd {
    margin-top: 3px;
    color: var(--green);
    font-size: 20px;
    font-weight: 900;
}

.tournament-tab-empty {
    margin: 0;
}

@media (max-width: 680px) {
    .tournament-index-panel {
        gap: 14px;
    }

    .tournament-index-tabs {
        margin-left: -12px;
        margin-right: -12px;
        padding-left: 12px;
        padding-right: 12px;
    }

    .tournament-poster-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .tournament-poster-card {
        grid-template-columns: 118px minmax(0, 1fr);
    }

    .tournament-poster-media {
        height: 100%;
        min-height: 172px;
        aspect-ratio: auto;
    }

    .tournament-poster-placeholder {
        padding: 12px;
    }

    .tournament-poster-placeholder strong {
        font-size: 19px;
    }

    .tournament-poster-body {
        padding: 12px;
    }

    .tournament-poster-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .tournament-poster-body > strong {
        font-size: 17px;
    }

    .tournament-poster-body dl {
        grid-template-columns: 1fr;
    }
}

.is-public .player-edit-form {
    display: grid !important;
}

.is-public form.player-edit-form[action*="save_"],
.is-public form.player-edit-form[action*="profile_update.php"] {
    display: grid !important;
}

/* Dedicated player edit page form. */
.player-edit-panel {
    width: min(980px, 100%) !important;
    max-width: 980px !important;
    min-height: 0 !important;
    padding: 26px !important;
    overflow: visible !important;
}

.player-edit-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-edit-form label {
    display: block !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-edit-form label span {
    display: block !important;
    margin-bottom: 7px !important;
    color: #344054 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
}

.player-edit-form input,
.player-edit-form select {
    display: block !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    background: #fbfdff !important;
    color: var(--ink) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-edit-full,
.player-edit-actions {
    grid-column: 1 / -1 !important;
}

.player-edit-actions {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

@media (max-width: 680px) {
    .player-edit-panel {
        padding: 16px !important;
    }

    .player-edit-form {
        grid-template-columns: 1fr !important;
    }
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    background:
        linear-gradient(180deg, #e7f4ff 0%, #f6fbff 42%, #eef7ff 100%);
    color: var(--ink);
    font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Inter", Arial, sans-serif;
    line-height: 1.45;
    text-rendering: optimizeLegibility;
}

.sidebar {
    padding: 24px;
    background: linear-gradient(180deg, #0e456f 0%, #0b2f4d 100%);
    color: #fff;
    box-shadow: 8px 0 28px rgba(16, 61, 99, 0.16);
}

.sidebar-top {
    display: grid;
    gap: 18px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 36px;
}

.brand span {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #7dd3fc;
    color: #07304f;
    font-weight: 800;
}

.brand strong {
    font-size: 18px;
}

.mobile-header-actions,
.menu-toggle,
.mobile-auth-link,
.profile-toggle,
.mobile-profile-menu {
    display: none;
}

.sidebar nav {
    display: grid;
    gap: 6px;
}

.nav-section {
    margin: 18px 6px 6px;
    color: rgba(217, 236, 251, 0.62);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.sidebar a {
    padding: 13px 14px;
    border-radius: 8px;
    color: #d9ecfb;
    text-decoration: none;
    font-weight: 800;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.sidebar a:hover,
.sidebar a.active {
    background: rgba(125, 211, 252, 0.18);
    color: #ffffff;
}

.sidebar a:hover {
    transform: translateX(2px);
}

.main {
    min-width: 0;
    padding: 30px;
}

.page-header {
    margin-bottom: 22px;
}

.page-header-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.site-footer {
    margin-top: 52px;
    padding: 26px;
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(280px, 1.1fr);
    gap: 28px;
    align-items: center;
    border: 1px solid rgba(195, 211, 38, 0.34);
    border-radius: 16px;
    background:
        radial-gradient(circle at 18% -20%, rgba(195, 211, 38, 0.22), transparent 36%),
        linear-gradient(135deg, #123f26 0%, #09271c 100%);
    color: #ffffff;
    box-shadow: 0 22px 52px rgba(11, 45, 30, 0.18);
    overflow: hidden;
}

.site-footer a {
    color: #f0f7c7;
    text-decoration: none;
    font-weight: 800;
}

.site-footer a:hover {
    color: #ffffff;
}

.site-footer-brand {
    display: flex;
    align-items: center;
    gap: 16px;
}

.site-footer-brand img {
    width: 92px;
    height: 92px;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.28));
}

.site-footer-brand strong {
    display: block;
    font-size: 22px;
    line-height: 1.1;
}

.site-footer-brand span {
    display: block;
    margin-top: 6px;
    color: rgba(255, 255, 255, 0.76);
    font-size: 14px;
    font-weight: 800;
}

.site-footer-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.site-footer-grid > div {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
}

.site-footer-label {
    color: #c3d326;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.site-footer-credit {
    grid-column: 1 / -1;
    padding-top: 2px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.page-actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.action-form {
    margin: 0;
}

.action-form .btn {
    width: 100%;
}

.tournament-extra-actions {
    justify-content: flex-end;
    margin: -12px 0 18px;
}

.eyebrow {
    margin: 0 0 6px;
    color: var(--green);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

h1 {
    margin: 0;
    font-size: 34px;
    line-height: 1.12;
}

.page-header p:last-child {
    margin: 8px 0 0;
    color: var(--muted);
}

.notice {
    margin-bottom: 20px;
    padding: 14px 16px;
    border: 1px solid #f1c27d;
    border-radius: 8px;
    background: #fff6e8;
    color: #8a5200;
}

.notice-success {
    border-color: #b6dcf7;
    background: #edf8ff;
    color: #075985;
}

.notice-error {
    border-color: #efb4b4;
    background: #fff0f0;
    color: #9f1f1f;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 15px;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(180deg, #1887d5 0%, #0a6dbd 100%);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(10, 109, 189, 0.18);
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(10, 109, 189, 0.24);
}

.btn.secondary {
    background: #496b86;
    box-shadow: none;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.stat-card,
.panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.stat-card {
    padding: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}

.stat-card span {
    display: block;
    color: var(--muted);
    font-size: 13px;
}

.stat-card strong {
    display: block;
    margin-top: 10px;
    font-size: 30px;
    color: var(--blue-deep);
}

.workbench {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(320px, 0.7fr);
    gap: 18px;
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}

.panel {
    padding: 22px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.panel h2 {
    margin: 0 0 18px;
    font-size: 20px;
}

.panel-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.panel-title-row h2 {
    margin-bottom: 6px;
}

.panel-title-row p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.text-panel p {
    margin: 0;
    color: #344054;
    line-height: 1.55;
}

.flow {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.flow div,
.model-row {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
}

.flow strong,
.model-row strong {
    display: block;
    font-size: 15px;
}

.flow span,
.model-row span {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 13px;
}

.model-panel {
    display: flex;
    flex-direction: column;
}

.model-row + .model-row {
    margin-top: 10px;
}

.model-row span {
    margin: 0 0 5px;
    color: var(--green);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-soft);
}

.table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}

.table th,
.table td {
    padding: 14px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
}

.table th {
    background: #f3f9ff;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.table small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
}

.click-row {
    cursor: pointer;
}

.click-row:hover {
    background: #f4faff;
}

.code-badge,
.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 8px;
    background: var(--green-soft);
    color: var(--green);
    font-size: 12px;
    font-weight: 800;
}

.status-pill {
    background: #edf5fc;
    color: #496b86;
}

.empty-state {
    padding: 34px 20px;
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: #f7fbff;
    text-align: center;
}

.empty-state strong {
    display: block;
    font-size: 18px;
}

.empty-state p {
    margin: 8px 0 18px;
    color: var(--muted);
}

.form-panel {
    max-width: 980px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.form-grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.format-preset-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.format-preset {
    appearance: none;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    padding: 9px 12px;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, color 0.16s ease;
}

.format-preset:hover,
.format-preset:focus-visible {
    border-color: var(--green);
    box-shadow: 0 0 0 3px rgba(38, 166, 91, 0.12);
    color: var(--green);
    outline: none;
}

.format-preset.is-featured {
    border-color: var(--green);
    background: var(--green-soft);
    color: var(--green);
}

label span {
    display: block;
    margin-bottom: 7px;
    color: #344054;
    font-size: 13px;
    font-weight: 800;
}

.form-help {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
}

.result-admin-actions {
    display: grid;
    gap: 12px;
    margin: 18px 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.result-decision-form {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(150px, 220px) auto;
    gap: 12px;
    align-items: end;
}

.result-schedule-form {
    display: grid;
    grid-template-columns: minmax(150px, 190px) minmax(120px, 150px) auto;
    gap: 12px;
    align-items: end;
}

.inline-delete-form {
    display: inline;
    margin: 0 0 0 6px;
}

.bracket-admin-row .inline-delete-form {
    margin-left: 0;
}

input,
select {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfdff;
    color: var(--ink);
    font-size: 14px;
}

textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfdff;
    color: var(--ink);
    font: inherit;
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--green);
    box-shadow: var(--focus);
}

.form-textareas {
    margin-top: 16px;
}

.form-actions {
    margin-top: 18px;
}

.full-row {
    grid-column: 1 / -1;
}

.compact-form {
    display: grid;
    gap: 14px;
}

.expand-panel {
    align-self: start;
}

.expand-panel summary {
    width: 100%;
    list-style: none;
}

.expand-panel summary::-webkit-details-marker {
    display: none;
}

.expand-panel-body {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.tournament-profile-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stat-text {
    font-size: 18px !important;
}

.tournament-workbench {
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.65fr);
}

.player-list-cell {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 220px;
}

.player-list-avatar {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    overflow: hidden;
    display: inline-grid;
    place-items: center;
    border: 1px solid #b9d8ef;
    border-radius: 8px;
    background: linear-gradient(135deg, #dff1ff, #ffffff);
    color: var(--blue-deep);
    font-size: 13px;
    font-weight: 900;
}

.player-list-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.players-table {
    min-width: 680px;
}

.dashboard-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr);
    gap: 22px;
    align-items: stretch;
    margin-bottom: 24px;
    padding: 26px;
    border: 1px solid #b9d8ef;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(223, 241, 255, 0.92));
    box-shadow: 0 18px 42px rgba(22, 90, 140, 0.12);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.dashboard-hero.has-image {
    background: #dff1ff;
}

.dashboard-hero:hover {
    border-color: #8fc6ee;
    box-shadow: 0 22px 50px rgba(22, 90, 140, 0.16);
    transform: translateY(-1px);
}

.hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.dashboard-hero.has-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(247, 251, 255, 0.96) 0%, rgba(232, 244, 255, 0.9) 45%, rgba(232, 244, 255, 0.58) 100%);
}

.dashboard-hero > * {
    position: relative;
    z-index: 2;
}

.hero-kicker {
    display: inline-flex;
    margin-bottom: 14px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #dff1ff;
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    box-shadow: inset 0 0 0 1px rgba(15, 61, 99, 0.08);
}

.hero-main h2 {
    margin: 0;
    max-width: 780px;
    color: var(--blue-deep);
    font-size: 34px;
    line-height: 1.08;
}

.hero-main p {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 16px;
    font-weight: 800;
}

.hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.hero-badges span {
    padding: 7px 10px;
    border: 1px solid #bfddf2;
    border-radius: 999px;
    background: #fff;
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 6px 14px rgba(22, 90, 140, 0.07);
}

.hero-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.hero-metrics article {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 120px;
    padding: 16px;
    border: 1px solid #c6dff2;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.84);
    backdrop-filter: blur(4px);
    box-shadow: var(--shadow-soft);
}

.hero-metrics span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.hero-metrics strong {
    margin-top: 8px;
    color: var(--green);
    font-size: 34px;
    line-height: 1;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.6fr);
    gap: 18px;
    margin-bottom: 24px;
}

.dashboard-format-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.dashboard-format-card {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
    color: var(--ink);
    text-decoration: none;
    box-shadow: 0 6px 16px rgba(22, 90, 140, 0.05);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.dashboard-format-card:hover {
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 12px 26px rgba(22, 90, 140, 0.1);
    transform: translateY(-1px);
}

.dashboard-format-card h3 {
    margin: 0;
    color: var(--blue-deep);
    font-size: 17px;
}

.dashboard-format-card p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.dashboard-format-card > div {
    display: grid;
    grid-template-columns: repeat(3, auto 1fr);
    gap: 4px 6px;
    align-items: baseline;
    margin-top: 6px;
}

.dashboard-format-card > div strong {
    color: var(--green);
    font-size: 18px;
}

.dashboard-format-card > div span {
    color: var(--muted);
    font-size: 12px;
}

.latest-results-panel {
    margin-bottom: 24px;
}

.latest-results-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.result-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
    color: var(--ink);
    text-decoration: none;
    box-shadow: 0 6px 16px rgba(22, 90, 140, 0.05);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.result-card:hover {
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 12px 26px rgba(22, 90, 140, 0.1);
    transform: translateY(-1px);
}

.result-card-head,
.result-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.result-card-head span {
    color: var(--green);
    font-size: 12px;
    font-weight: 900;
}

.result-card-head strong,
.result-card-foot strong {
    color: var(--blue-deep);
    font-size: 12px;
}

.result-card-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.result-card-body div {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.result-card-body div strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.result-card-body > span {
    padding: 7px 10px;
    border-radius: 8px;
    background: #fff;
    color: var(--blue-deep);
    font-weight: 900;
}

.result-card-foot span {
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.42fr);
    gap: 22px;
    min-height: 340px;
    margin-bottom: 22px;
    padding: 34px;
    border: 1px solid rgba(143, 198, 238, 0.72);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(224, 243, 255, 0.94)),
        linear-gradient(120deg, #ffffff, #dff1ff);
    background-position: center;
    background-size: cover;
    box-shadow: 0 24px 60px rgba(22, 90, 140, 0.16);
}

.home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(90deg, rgba(247, 251, 255, 0.97) 0%, rgba(232, 244, 255, 0.88) 48%, rgba(232, 244, 255, 0.64) 100%);
}

.home-hero:not(.has-image)::before {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(224, 243, 255, 0.88)),
        repeating-linear-gradient(135deg, rgba(11, 116, 209, 0.06) 0 1px, transparent 1px 18px);
}

.home-hero > * {
    position: relative;
    z-index: 1;
}

.home-hero-content {
    align-self: end;
    max-width: 880px;
}

.home-hero-content h2 {
    margin: 0;
    max-width: 900px;
    color: var(--blue-deep);
    font-size: 52px;
    line-height: 1.02;
}

.home-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.home-hero-meta span {
    padding: 9px 12px;
    border: 1px solid rgba(143, 198, 238, 0.82);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--blue-deep);
    font-size: 13px;
    font-weight: 900;
    backdrop-filter: blur(6px);
}

.home-hero-scoreboard {
    align-self: end;
    display: grid;
    gap: 10px;
}

.home-hero-scoreboard article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 82px;
    padding: 16px 18px;
    border: 1px solid rgba(143, 198, 238, 0.76);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(8px);
}

.home-hero-scoreboard span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.home-hero-scoreboard strong {
    color: var(--green);
    font-size: 34px;
    line-height: 1;
}

.home-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.55fr);
    gap: 18px;
    margin-bottom: 22px;
}

.home-format-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.home-formats-panel {
    margin-bottom: 22px;
}

.home-format-card {
    display: grid;
    gap: 16px;
    padding: 18px;
    border: 1px solid rgba(207, 224, 239, 0.92);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff, #f5fbff);
    color: var(--ink);
    text-decoration: none;
    box-shadow: var(--shadow-soft);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.home-format-card:hover {
    border-color: #8fc6ee;
    box-shadow: 0 16px 34px rgba(22, 90, 140, 0.13);
    transform: translateY(-2px);
}

.home-format-card > div:first-child {
    display: grid;
    gap: 7px;
}

.home-format-title-row {
    display: flex !important;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px !important;
}

.home-format-title-row > div {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.home-format-participants {
    flex: 0 0 auto;
    padding: 7px 10px;
    border-radius: 999px;
    background: #edf7c8;
    color: #0d5a3a;
    font-size: 13px;
    font-weight: 950;
    white-space: nowrap;
}

.home-format-card strong {
    color: var(--blue-deep);
    font-size: 20px;
    line-height: 1.18;
}

.home-format-card small {
    color: var(--muted);
    font-weight: 800;
}

.home-format-card dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.home-format-card dl div {
    padding: 10px;
    border-radius: 8px;
    background: #edf8ff;
}

.home-format-card dt {
    margin: 0 0 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.home-format-card dd {
    margin: 0;
    color: var(--green);
    font-size: 22px;
    font-weight: 900;
}

@media (max-width: 680px) {
    .home-format-title-row {
        align-items: stretch;
        flex-direction: column;
    }

    .home-format-participants {
        align-self: flex-start;
    }
}

.home-kpi-section {
    margin-top: 28px;
}

.home-kpi-heading {
    margin-bottom: 16px;
    text-align: center;
}

.home-kpi-heading span {
    display: inline-block;
    margin-bottom: 8px;
    color: #0c6b4f;
    font-size: 13px;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
}

.home-kpi-heading h2 {
    margin: 0;
    color: #173f25;
    font-size: 30px;
    line-height: 1.15;
}

.home-stats {
    margin-bottom: 0;
}

.home-stats .stat-card {
    position: relative;
    overflow: hidden;
    border-color: rgba(210, 216, 83, 0.42);
    background:
        radial-gradient(circle at 85% 18%, rgba(219, 223, 72, 0.24), transparent 32%),
        linear-gradient(145deg, #0f3a24 0%, #164d30 56%, #0b2b1c 100%);
    box-shadow: 0 18px 42px rgba(14, 58, 36, 0.18);
}

.home-stats .stat-card::after {
    content: "";
    position: absolute;
    inset: auto -18px -34px auto;
    width: 92px;
    height: 92px;
    border: 1px solid rgba(216, 222, 78, 0.26);
    border-radius: 50%;
}

.home-stats .stat-card span {
    position: relative;
    color: rgba(240, 237, 171, 0.82);
    font-weight: 900;
    text-transform: uppercase;
}

.home-stats .stat-card strong {
    position: relative;
    color: #d9df3f;
    font-size: 34px;
}

.modern-results {
    overflow: hidden;
}

.tournament-lists-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
}

.tournament-list {
    display: grid;
    gap: 10px;
}

.tournament-list-card {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    text-decoration: none;
    box-shadow: 0 6px 16px rgba(22, 90, 140, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.tournament-list-card:hover {
    border-color: #8fc6ee;
    box-shadow: 0 12px 24px rgba(22, 90, 140, 0.09);
    transform: translateY(-1px);
}

.tournament-list-card time {
    padding: 8px;
    border-radius: 8px;
    background: #edf8ff;
    color: var(--green);
    font-size: 12px;
    font-weight: 900;
    text-align: center;
}

.tournament-list-card div {
    min-width: 0;
}

.tournament-list-card strong,
.tournament-list-card span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tournament-list-card strong {
    color: var(--blue-deep);
}

.tournament-list-card span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.tournament-list-card small {
    color: var(--muted);
    font-weight: 900;
}

.tournament-list-card.muted time {
    background: #f1f5f9;
    color: #496b86;
}

.modern-results-list {
    display: grid;
    gap: 10px;
}

.modern-result-card {
    display: grid;
    grid-template-columns: minmax(180px, 0.55fr) minmax(0, 1.4fr) minmax(220px, 0.65fr);
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    text-decoration: none;
    box-shadow: 0 6px 18px rgba(22, 90, 140, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.modern-result-card:hover {
    border-color: #8fc6ee;
    box-shadow: 0 14px 30px rgba(22, 90, 140, 0.1);
    transform: translateY(-1px);
}

.result-meta-line,
.result-context-line {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.result-meta-line span:first-child {
    width: max-content;
    padding: 5px 8px;
    border-radius: 8px;
    background: var(--green-soft);
    color: var(--green);
    font-size: 12px;
    font-weight: 900;
}

.result-meta-line span:last-child,
.result-meta-line small,
.result-context-line span {
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.result-meta-line small {
    display: block;
    color: #496b86;
}

.result-match-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.result-match-line strong {
    overflow: hidden;
    color: var(--blue-deep);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.result-match-line strong:last-child {
    text-align: right;
}

.result-match-line strong.winner {
    color: #0a7f35;
}

.winner-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 19px;
    height: 19px;
    margin-right: 6px;
    border-radius: 999px;
    background: #dcfce7;
    color: #0a7f35;
    font-size: 12px;
    font-weight: 900;
    vertical-align: 1px;
}

.result-match-line em {
    min-width: 76px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #0f3d63;
    color: #ffffff;
    font-style: normal;
    font-weight: 900;
    text-align: center;
}

.result-context-line {
    justify-items: end;
}

.result-context-line strong {
    overflow: hidden;
    max-width: 100%;
    color: var(--green);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.auth-shell {
    display: grid;
    place-items: start center;
}

.auth-panel {
    width: min(100%, 560px);
}

.register-panel {
    width: min(100%, 780px);
}

.link-question,
.existing-player-link {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
}

.link-question {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    color: var(--blue-deep);
    font-weight: 900;
}

.link-question > span {
    margin-right: auto;
}

.link-question label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
}

.link-question input {
    width: 17px;
    height: 17px;
    accent-color: var(--green);
}

.existing-player-link {
    padding: 16px;
}

.existing-player-link[hidden] {
    display: none;
}

.account-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.55fr) minmax(0, 1fr);
    gap: 18px;
}

.account-overview-grid {
    grid-template-columns: minmax(280px, 460px);
}

.account-card {
    text-align: center;
}

.account-avatar {
    width: 128px;
    height: 128px;
    margin: 0 auto 16px;
    overflow: hidden;
    display: grid;
    place-items: center;
    border: 1px solid #b9d8ef;
    border-radius: 8px;
    background: linear-gradient(135deg, #dff1ff, #ffffff);
    color: var(--blue-deep);
    font-size: 34px;
    font-weight: 900;
    box-shadow: var(--shadow-soft);
}

.account-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.account-card h2 {
    margin-bottom: 4px;
}

.account-edit-shortcut {
    margin: 8px auto 16px;
    width: fit-content;
}

.account-card > p {
    margin: 0 0 18px;
    color: var(--green);
    font-weight: 900;
}

.account-facts {
    display: grid;
    gap: 10px;
    margin: 0;
    text-align: left;
}

.account-facts div {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
}

.account-facts dt {
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.account-facts dd {
    margin: 0;
    color: var(--blue-deep);
    font-weight: 900;
}

.tournament-gallery-panel {
    margin-bottom: 18px;
}

.gallery-upload-form {
    display: grid;
    gap: 12px;
    margin-bottom: 18px;
}

.gallery-dropzone {
    position: relative;
    display: grid;
    min-height: 150px;
    place-items: center;
    gap: 6px;
    padding: 24px;
    border: 2px dashed rgba(11, 116, 209, 0.28);
    border-radius: 14px;
    background: linear-gradient(180deg, #f7fcff, #eef8ff);
    color: var(--blue-deep);
    text-align: center;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.gallery-dropzone span {
    margin: 0;
    color: var(--green);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.gallery-dropzone strong {
    font-size: 20px;
}

.gallery-dropzone small {
    color: var(--muted);
    font-weight: 700;
}

.gallery-dropzone input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.gallery-dropzone.is-dragover {
    border-color: var(--green);
    background: #e8f4ff;
    transform: translateY(-1px);
}

.gallery-upload-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.gallery-file-count {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.tournament-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}

.gallery-photo {
    display: block;
    overflow: hidden;
    aspect-ratio: 2 / 3;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #f7fbff;
    box-shadow: 0 8px 20px rgba(22, 90, 140, 0.08);
}

.gallery-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center top;
    transition: transform 0.2s ease;
}

.gallery-photo:hover img {
    transform: scale(1.04);
}

.player-tournament-entries {
    margin-bottom: 18px;
}

.player-entry-list {
    display: grid;
    gap: 10px;
}

.player-entry-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--blue-wash);
}

.player-entry-item strong {
    display: block;
    color: var(--blue-deep);
}

.player-entry-item small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-weight: 800;
}

.player-entry-item form {
    margin: 0;
}

.gallery-lightbox[hidden] {
    display: none !important;
}

.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: grid;
    place-items: center;
    padding: 28px;
    background: rgba(6, 22, 34, 0.82);
}

.gallery-lightbox figure {
    position: relative;
    width: min(92vw, 980px);
    max-height: 88vh;
    margin: 0;
    display: grid;
    gap: 10px;
    justify-items: center;
}

.gallery-lightbox img {
    max-width: 100%;
    max-height: 82vh;
    display: block;
    border-radius: 14px;
    object-fit: contain;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
}

.gallery-lightbox figcaption {
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.gallery-lightbox-close {
    position: fixed;
    top: 22px;
    right: 24px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
}

.gallery-lightbox-open {
    overflow: hidden;
}

.format-list {
    display: grid;
    gap: 12px;
}

.format-card,
.entry-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.format-card {
    color: var(--ink);
    text-decoration: none;
}

.format-admin-card {
    align-items: stretch;
}

.format-card-main {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: var(--ink);
    text-decoration: none;
}

.format-card-actions {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding-left: 12px;
    border-left: 1px solid var(--line);
}

.format-card-actions form {
    margin: 0;
}

.format-card:hover {
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 10px 24px rgba(22, 90, 140, 0.08);
    transform: translateY(-1px);
}

.format-card h3 {
    margin: 10px 0 5px;
    font-size: 18px;
}

.format-card p,
.entry-card p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.format-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(90px, 1fr));
    gap: 8px;
}

.format-metrics span {
    padding: 10px;
    border-radius: 8px;
    background: #fff;
    color: var(--muted);
    font-size: 12px;
    text-align: center;
}

.format-metrics strong {
    display: block;
    color: var(--ink);
    font-size: 20px;
}

.player-signup-panel {
    margin-bottom: 18px;
}

.signup-player-note {
    display: grid;
    align-content: center;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
}

.signup-player-note span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.signup-player-note strong {
    color: var(--blue-deep);
}

.signup-partner-fields {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7fbff;
}

.inline-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-right: 10px;
}

.inline-actions form {
    display: inline;
}

.players-workbench {
    grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr);
}

.entry-list {
    display: grid;
    gap: 12px;
}

.entry-card h3 {
    margin: 10px 0 5px;
    font-size: 18px;
}

.entry-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-size: 13px;
}

.compact-empty {
    padding: 22px 16px;
}

.format-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 18px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    overflow-x: auto;
}

.format-tabs a {
    flex: 0 0 auto;
    padding: 10px 14px;
    border-radius: 7px;
    color: var(--ink);
    font-weight: 800;
    text-decoration: none;
}

.format-tabs a span {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.format-tabs a:hover,
.format-tabs a.active {
    background: var(--green-soft);
    color: var(--green);
}

.format-tabs a:hover span,
.format-tabs a.active span {
    color: var(--green);
}

.format-standings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}

.group-standings-card {
    min-width: 0;
}

.compact-title-row {
    margin-bottom: 12px;
}

.compact-table th,
.compact-table td {
    padding: 9px 10px;
}

.compact-table th {
    font-size: 11px;
}

.compact-table .code-badge,
.compact-table .status-pill {
    min-height: 24px;
    padding: 4px 7px;
    font-size: 11px;
}

.entry-matches-cell {
    min-width: 360px;
}

.entry-match-list {
    display: grid;
    gap: 6px;
}

.player-upcoming-panel {
    margin-bottom: 18px;
}

.player-upcoming-list {
    display: grid;
    gap: 10px;
}

.player-upcoming-match {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid rgba(31, 139, 122, 0.2);
    border-radius: 8px;
    background: #f7fbff;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.player-upcoming-match:hover {
    border-color: var(--green);
    box-shadow: 0 12px 26px rgba(22, 90, 140, 0.1);
    transform: translateY(-1px);
}

.player-upcoming-match time {
    display: grid;
    gap: 2px;
    justify-items: start;
}

.player-upcoming-match time strong {
    color: var(--green);
    font-size: 24px;
    line-height: 1;
}

.player-upcoming-match time span,
.player-upcoming-match div span,
.player-upcoming-match small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.player-upcoming-match div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.player-upcoming-match div strong {
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-upcoming-match small {
    padding: 6px 9px;
    border-radius: 8px;
    background: #edf5fc;
    color: #496b86;
    white-space: nowrap;
}

.player-upcoming-match.is-completed {
    background: #ffffff;
}

.player-upcoming-match.is-completed time strong {
    color: var(--blue-deep);
}

.player-upcoming-match.is-completed small {
    background: var(--green-soft);
    color: var(--green);
    font-size: 13px;
}

.match-result-action,
.entry-match-line b {
    justify-self: end;
    padding: 7px 10px;
    border-radius: 8px;
    background: var(--green);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.player-upcoming-match.is-completed .match-result-action,
.entry-match-line b.is-muted {
    background: var(--blue-deep);
}

.entry-match-line {
    display: grid;
    grid-template-columns: 72px minmax(180px, 1fr) 96px 82px auto;
    gap: 8px;
    align-items: center;
    padding: 7px 8px;
    border: 1px solid rgba(31, 139, 122, 0.16);
    border-radius: 8px;
    background: rgba(231, 248, 244, 0.58);
    color: var(--ink);
    text-decoration: none;
}

.entry-match-line:hover {
    border-color: var(--green);
    background: #fff;
}

.entry-match-line span,
.entry-match-line em,
.entry-match-line small {
    color: var(--muted);
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
}

.entry-match-line strong {
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-responsive-table-wrap {
    overflow-x: auto;
}

.player-entries-table td,
.player-history-table td {
    vertical-align: top;
}

.player-entries-table th:nth-child(7),
.player-entries-table td:nth-child(7) {
    display: none !important;
}

.player-entry-tabs {
    margin-top: -2px;
    margin-bottom: 14px;
}

.ranking-responsive-table-wrap .ranking-table td {
    vertical-align: middle;
}

.compact-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.mini-card {
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
    color: var(--ink);
    text-decoration: none;
}

.mini-card:hover {
    border-color: var(--green);
    background: #fff;
}

.mini-card strong,
.mini-card span {
    display: block;
}

.mini-card span {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
}

.ranking-mini-card span + span {
    margin-top: 3px;
}

.balance-card .balance-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.balance-card b {
    color: var(--blue-deep);
    font-size: 15px;
}

.player-profile-head {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    margin-bottom: 22px;
}

.player-avatar {
    width: 160px;
    height: 160px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--green-soft);
    color: var(--green);
    font-size: 20px;
    font-weight: 900;
}

.player-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.player-facts h2 {
    margin-bottom: 14px;
}

.player-facts dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.player-facts dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.player-facts dd {
    margin: 4px 0 0;
    font-weight: 800;
}

.section-divider {
    height: 1px;
    margin: 22px 0;
    background: var(--line);
}

.result-win {
    background: rgba(11, 116, 209, 0.07);
}

.result-loss {
    background: rgba(198, 40, 40, 0.04);
}

.inline-score-form {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 170px;
}

.inline-rank-form {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
}

.inline-rank-form select {
    min-height: 34px;
    padding: 6px 8px;
}

.inline-score-form select {
    min-height: 34px;
    padding: 6px 8px;
}

.tiny-btn {
    min-height: 34px;
    padding: 6px 10px;
    font-size: 12px;
}

.muted-text {
    color: var(--muted);
    font-size: 12px;
}

.muted-line {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.medal-pill,
.medal-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-weight: 900;
}

.medal-pill {
    min-height: 28px;
    padding: 5px 10px;
    font-size: 12px;
}

.medal-mini {
    min-width: 25px;
    height: 25px;
    margin-right: 4px;
    font-size: 11px;
}

.medal-pill.gold,
.medal-mini.gold {
    background: #fff3c4;
    color: #8a5b00;
}

.medal-pill.silver,
.medal-mini.silver {
    background: #edf0f4;
    color: #475467;
}

.medal-pill.bronze,
.medal-mini.bronze {
    background: #f7dfc8;
    color: #8a3f00;
}

.medal-row {
    background: linear-gradient(90deg, rgba(11, 116, 209, 0.07), rgba(11, 116, 209, 0.01));
}

.match-pair {
    display: grid;
    gap: 3px;
}

.match-pair span {
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

.match-pair em {
    color: var(--muted);
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
    text-transform: uppercase;
}

.draw-bracket {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(320px, 360px);
    grid-template-columns: none;
    gap: 28px;
    align-items: center;
    overflow-x: auto;
    padding: 4px 6px 14px;
}

.manual-draw-panel {
    display: grid;
    gap: 12px;
    padding-top: 8px;
}

.manual-draw-form {
    display: grid;
    gap: 14px;
}

.manual-draw-size {
    max-width: 240px;
}

.manual-draw-slots {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 12px;
}

.manual-draw-slots label,
.manual-draw-size {
    display: grid;
    gap: 6px;
}

.manual-draw-slots span,
.manual-draw-size span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}

.manual-draw-slots select,
.manual-draw-size select {
    min-height: 38px;
    padding: 8px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-weight: 800;
}

.bracket-round {
    min-width: 320px;
}

.bracket-round-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.bracket-round-title span {
    color: var(--ink);
    font-size: 14px;
}

.bracket-round-title strong {
    padding: 4px 8px;
    border-radius: 999px;
    background: #e8f4ff;
    color: #0f3d63;
    font-size: 11px;
}

.bracket-match-list {
    display: grid;
    gap: 16px;
}

.bracket-round:nth-child(2) .bracket-match-list {
    gap: 76px;
}

.bracket-round:nth-child(3) .bracket-match-list {
    gap: 160px;
}

.bracket-match {
    position: relative;
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7fbff;
    box-shadow: 0 8px 20px rgba(22, 90, 140, 0.07);
}

.bracket-match::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -19px;
    width: 18px;
    border-top: 1px solid #bdd8ee;
}

.bracket-round:last-child .bracket-match::after {
    display: none;
}

.bracket-match.is-completed {
    background: #fff;
}

.bracket-match-meta,
.bracket-score-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.bracket-match-meta {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.bracket-match-meta small {
    color: var(--green);
    font-size: 11px;
    font-weight: 900;
    text-transform: none;
    white-space: nowrap;
}

.bracket-match-meta em {
    overflow: hidden;
    font-style: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.match-schedule-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px auto;
    gap: 6px;
    align-items: center;
    padding-top: 8px;
    border-top: 1px solid rgba(31, 139, 122, 0.12);
}

.match-schedule-form input {
    min-width: 0;
    min-height: 32px;
    padding: 5px 7px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
}

.bracket-player {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    font-weight: 800;
}

.bracket-player span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bracket-player.is-winner {
    border-color: rgba(11, 116, 209, 0.28);
    background: var(--green-soft);
    color: var(--green);
}

.bracket-player strong {
    flex: 0 0 auto;
}

.bracket-score-row {
    min-height: 34px;
    flex-wrap: wrap;
}

.bracket-score {
    font-weight: 900;
}

.bracket-inline-score {
    justify-content: flex-end;
    min-width: 0;
}

.bracket-inline-score select {
    width: 120px;
    min-width: 0;
}

.bracket-admin-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding-top: 8px;
    border-top: 1px solid rgba(31, 139, 122, 0.12);
}

.draw-decision-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center;
    min-width: 0;
}

.draw-decision-form select {
    min-width: 0;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    font-size: 12px;
    font-weight: 800;
}

.draw-table-legacy {
    display: none;
}

.standings-table td {
    vertical-align: middle;
}

.group-standings-order-form {
    display: grid;
    gap: 12px;
}

.rank-order-input {
    width: 74px;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-weight: 800;
}

.group-standings-table-wrap {
    overflow-x: auto;
}

.qualified-row {
    background: linear-gradient(90deg, rgba(11, 116, 209, 0.08), rgba(11, 116, 209, 0.015));
}

.rank-badge {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e8f4ff;
    color: #0f3d63;
    font-weight: 800;
}

.rank-badge.qualified {
    background: var(--green);
    color: #fff;
}

.text-green {
    color: var(--green);
    font-weight: 800;
}

.text-red {
    color: #c62828;
    font-weight: 800;
}

.status-qualified {
    background: var(--green-soft);
    color: var(--green);
}

.table-action {
    appearance: none;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--green);
    font-weight: 800;
    font: inherit;
    padding: 0;
    text-decoration: none;
}

.table-action:hover {
    text-decoration: underline;
}

.delete-entry-form {
    display: inline-flex;
    margin: 0;
}

.row-actions {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.admin-player-link-select {
    display: grid;
    gap: 5px;
    min-width: 260px;
}

.admin-player-link-select span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}

.admin-player-link-select select {
    min-height: 36px;
    max-width: 360px;
    padding: 7px 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-weight: 800;
}

.danger-action {
    color: #c62828;
}

.danger-btn {
    background: #b83232 !important;
    color: #ffffff !important;
}

.inline-group-schedule-form {
    display: grid;
    grid-template-columns: minmax(180px, 240px) minmax(150px, 200px) auto;
    gap: 12px;
    align-items: end;
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr);
    gap: 18px;
}

.contact-card {
    background: linear-gradient(145deg, #ffffff, var(--tennis-soft));
}

.contact-facts {
    display: grid;
    gap: 14px;
    margin: 22px 0 0;
}

.contact-facts div {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
}

.contact-facts dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.contact-facts dd {
    margin: 4px 0 0;
    color: var(--blue-deep);
    font-weight: 900;
}

.contact-facts a {
    color: inherit;
}

.contact-form textarea {
    resize: vertical;
}

.filters-bar {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(150px, 220px) minmax(150px, 220px) auto auto;
    gap: 10px;
    align-items: end;
    margin: 18px 0 22px;
}

.filters-bar input,
.filters-bar select {
    min-height: 42px;
}

@media (max-width: 720px) {
    .inline-group-schedule-form {
        grid-template-columns: 1fr;
    }

    .contact-layout {
        grid-template-columns: 1fr;
    }

    .filters-bar {
        grid-template-columns: 1fr;
    }
}

.result-panel {
    max-width: 1120px;
}

.match-result-title {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 80px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
    margin-bottom: 22px;
}

.match-result-title > div:not(.match-vs) {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7fbff;
}

.match-result-title span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.match-result-title strong {
    display: block;
    margin-top: 8px;
    font-size: 18px;
}

.match-vs {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-weight: 900;
}

.result-sets {
    display: grid;
    gap: 12px;
}

.result-set-row {
    display: grid;
    grid-template-columns: 80px repeat(4, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7fbff;
}

.result-set-row > strong {
    padding-bottom: 12px;
}

@media (max-width: 1100px) {
    body {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: sticky;
        top: 0;
        z-index: 40;
        padding: 12px 16px;
        box-shadow: 0 10px 28px rgba(16, 61, 99, 0.14);
    }

    .sidebar-top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }

    .brand {
        margin-bottom: 0;
    }

    .brand span {
        width: 38px;
        height: 38px;
    }

    .brand strong {
        font-size: 16px;
    }

    .mobile-header-actions {
        display: flex;
        align-items: center;
        gap: 9px;
        margin-left: auto;
    }

    .mobile-auth-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 36px;
        padding: 8px 12px;
        border: 1px solid rgba(217, 236, 251, 0.3);
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.1);
        color: #ffffff;
        font-size: 13px;
        font-weight: 900;
        text-decoration: none;
    }

    .mobile-auth-link.active {
        background: rgba(125, 211, 252, 0.2);
    }

    .menu-toggle {
        display: inline-grid;
        place-items: center;
        width: 40px;
        height: 40px;
        border: 1px solid rgba(217, 236, 251, 0.32);
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.1);
        cursor: pointer;
    }

    .menu-toggle span {
        display: block;
        width: 18px;
        height: 2px;
        border-radius: 999px;
        background: #ffffff;
        transition: transform 0.18s ease, opacity 0.18s ease;
    }

    .menu-open .menu-toggle span:nth-child(1) {
        transform: translateY(6px) rotate(45deg);
    }

    .menu-open .menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .menu-open .menu-toggle span:nth-child(3) {
        transform: translateY(-6px) rotate(-45deg);
    }

    .sidebar nav {
        position: fixed;
        top: 64px;
        right: 12px;
        left: 12px;
        z-index: 50;
        display: grid;
        max-height: calc(100vh - 82px);
        overflow-y: auto;
        padding: 12px;
        border: 1px solid rgba(143, 198, 238, 0.34);
        border-radius: 8px;
        background: #0d3557;
        box-shadow: 0 24px 60px rgba(5, 26, 44, 0.32);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-8px);
        transition: opacity 0.18s ease, transform 0.18s ease;
    }

    .menu-open .sidebar nav {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .menu-backdrop {
        position: fixed;
        inset: 0;
        z-index: 35;
        background: rgba(8, 26, 43, 0.38);
    }

    .menu-backdrop[hidden] {
        display: none;
    }

    .nav-profile-section,
    .nav-profile-link {
        display: none !important;
    }

    .sidebar a {
        width: 100%;
        white-space: normal;
    }

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

    .workbench {
        grid-template-columns: 1fr;
    }

    .home-hero,
    .home-layout,
    .tournament-lists-grid {
        grid-template-columns: 1fr;
    }

    .home-hero {
        min-height: 300px;
    }

    .home-hero-scoreboard {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .modern-result-card {
        grid-template-columns: minmax(0, 0.65fr) minmax(0, 1.35fr);
    }

    .result-context-line {
        grid-column: 1 / -1;
        justify-items: start;
    }

    .account-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-hero,
    .dashboard-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 680px) {
    .main {
        padding: 16px;
    }

    body {
        background: #f4fbff;
    }

    .brand {
        gap: 10px;
        margin-bottom: 10px;
    }

    .brand span {
        width: 38px;
        height: 38px;
    }

    h1 {
        font-size: 27px;
    }

    .page-header {
        margin-bottom: 18px;
    }

    .stats-grid,
    .info-grid,
    .flow,
    .form-grid,
    .form-grid.two,
    .result-schedule-form,
    .result-decision-form,
    .home-format-grid {
        grid-template-columns: 1fr;
    }

    .stats-grid {
        gap: 10px;
    }

    .stat-card,
    .panel {
        box-shadow: 0 8px 20px rgba(22, 90, 140, 0.07);
    }

    .stat-card {
        padding: 14px;
    }

    .stat-card strong {
        font-size: 24px;
    }

    .panel {
        padding: 16px;
    }

    .site-footer {
        grid-template-columns: 1fr;
        gap: 18px;
        margin-top: 34px;
        padding: 20px;
        border-radius: 14px;
    }

    .site-footer-brand {
        align-items: center;
    }

    .site-footer-brand img {
        width: 74px;
        height: 74px;
    }

    .site-footer-brand strong {
        font-size: 19px;
    }

    .site-footer-grid {
        grid-template-columns: 1fr;
    }

    .page-header-row,
    .panel-title-row,
    .format-card,
    .entry-card {
        flex-direction: column;
        align-items: stretch;
    }

    .page-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .page-actions .btn,
    .panel-title-row .btn,
    .panel-title-row form,
    .panel-title-row form .btn {
        width: 100%;
    }

    .format-metrics {
        grid-template-columns: 1fr;
    }

    .dashboard-hero {
        padding: 18px;
    }

    .home-hero {
        min-height: 0;
        padding: 18px;
    }

    .home-hero-content h2 {
        font-size: 34px;
    }

    .home-hero-meta span,
    .hero-badges span {
        width: 100%;
    }

    .home-hero-scoreboard {
        grid-template-columns: 1fr;
    }

    .home-hero-scoreboard article {
        min-height: 66px;
    }

    .home-format-card dl {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .modern-result-card,
    .result-match-line {
        grid-template-columns: 1fr;
    }

    .tournament-list-card {
        grid-template-columns: 78px minmax(0, 1fr);
    }

    .tournament-list-card small {
        grid-column: 2;
    }

    .result-match-line strong:last-child {
        text-align: left;
    }

    .result-match-line em {
        width: max-content;
        min-width: 88px;
    }

    .hero-main h2 {
        font-size: 27px;
    }

    .hero-metrics,
    .dashboard-format-grid,
    .latest-results-list {
        grid-template-columns: 1fr;
    }

    .hero-metrics article {
        min-height: auto;
    }

    .dashboard-format-card > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dashboard-format-card > div strong,
    .dashboard-format-card > div span {
        display: block;
    }

    .format-tabs {
        flex-wrap: nowrap;
        margin-left: -16px;
        margin-right: -16px;
        padding-left: 16px;
        padding-right: 16px;
        border-left: 0;
        border-right: 0;
        border-radius: 0;
    }

    .format-tabs a {
        min-width: max-content;
    }

    .player-profile-head,
    .player-facts dl {
        grid-template-columns: 1fr;
    }

    .player-avatar {
        width: 132px;
        height: 132px;
    }

    .format-standings-grid,
    .compact-card-grid {
        grid-template-columns: 1fr;
    }

    .table-wrap {
        margin-left: -6px;
        margin-right: -6px;
        border-radius: 8px;
    }

    .table {
        min-width: 720px;
    }

    .compact-table th,
    .compact-table td,
    .table th,
    .table td {
        padding: 10px;
    }

    .entry-matches-cell {
        min-width: 280px;
    }

    .entry-match-line {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .player-upcoming-match {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 11px 12px;
    }

    .player-upcoming-match time {
        grid-template-columns: auto auto;
        align-items: baseline;
        gap: 8px;
    }

    .player-upcoming-match div strong {
        white-space: normal;
    }

    .player-upcoming-match small {
        justify-self: start;
    }

    .entry-match-line strong {
        white-space: normal;
    }

    .player-responsive-table-wrap {
        margin-left: 0;
        margin-right: 0;
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .player-responsive-table-wrap .player-entries-table,
    .player-responsive-table-wrap .player-history-table {
        display: block;
        min-width: 0;
        width: 100%;
        border-collapse: separate;
    }

    .player-responsive-table-wrap thead {
        display: none;
    }

    .player-responsive-table-wrap tbody,
    .player-responsive-table-wrap tr,
    .player-responsive-table-wrap td {
        display: block;
        width: 100%;
    }

    .player-responsive-table-wrap tbody {
        display: grid;
        gap: 10px;
    }

    .player-responsive-table-wrap tr {
        padding: 12px;
        border: 1px solid rgba(217, 231, 239, 0.9);
        border-radius: 8px;
        background: #ffffff;
        box-shadow: 0 10px 24px rgba(13, 53, 87, 0.06);
    }

    .player-responsive-table-wrap td {
        position: relative;
        min-width: 0;
        padding: 8px 0;
        border: 0;
    }

    .player-responsive-table-wrap td + td {
        border-top: 1px solid rgba(217, 231, 239, 0.7);
    }

    .player-responsive-table-wrap td::before {
        display: block;
        margin-bottom: 4px;
        color: var(--muted);
        font-size: 11px;
        font-weight: 900;
        text-transform: uppercase;
    }

    .player-entries-table td:nth-child(1)::before,
    .player-history-table td:nth-child(1)::before {
        content: "Р”Р°С‚Р°";
    }

    .player-entries-table td:nth-child(2)::before,
    .player-history-table td:nth-child(2)::before {
        content: "РўСѓСЂРЅРёСЂ";
    }

    .player-entries-table td:nth-child(3)::before,
    .player-history-table td:nth-child(3)::before {
        content: "Р¤РѕСЂРјР°С‚";
    }

    .player-entries-table td:nth-child(4)::before {
        content: "РЈС‡Р°СЃС‚РёРµ";
    }

    .player-entries-table td:nth-child(5)::before {
        content: "РњР°С‡РѕРІРµ";
    }

    .player-entries-table td:nth-child(6)::before {
        content: "РџРѕР±РµРґРё / Р·Р°РІСЉСЂС€РµРЅРё";
    }

    .player-entries-table td:nth-child(7)::before {
        content: "РЎС‚Р°С‚СѓСЃ";
    }

    .player-history-table td:nth-child(4)::before {
        content: "РњСЏСЃС‚Рѕ";
    }

    .player-history-table td:nth-child(5)::before {
        content: "РњРµРґР°Р»";
    }

    .player-history-table td:nth-child(6)::before {
        content: "РўРѕС‡РєРё";
    }

    .player-responsive-table-wrap .entry-matches-cell {
        min-width: 0;
    }

    .player-responsive-table-wrap .entry-match-list {
        gap: 7px;
    }

    .player-responsive-table-wrap .entry-match-line {
        grid-template-columns: 1fr;
        gap: 5px;
        padding: 9px 10px;
    }

    .player-responsive-table-wrap .entry-match-line span,
    .player-responsive-table-wrap .entry-match-line em,
    .player-responsive-table-wrap .entry-match-line small {
        font-size: 11px;
    }

    .player-responsive-table-wrap .entry-match-line strong {
        font-size: 13px;
        line-height: 1.3;
        white-space: normal;
    }

    .ranking-tabs,
    .ranking-mode-tabs {
        display: flex;
        gap: 8px;
        margin-left: -4px;
        margin-right: -4px;
        padding: 0 4px 6px;
        overflow-x: auto;
        scroll-snap-type: x proximity;
    }

    .ranking-tabs a,
    .ranking-mode-tabs a {
        flex: 0 0 auto;
        min-width: max-content;
        padding: 9px 11px;
        scroll-snap-align: start;
    }

    .ranking-tabs a span {
        font-size: 11px;
    }

    .ranking-responsive-table-wrap {
        margin-left: 0;
        margin-right: 0;
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .ranking-responsive-table-wrap .ranking-table {
        display: block;
        min-width: 0;
        width: 100%;
        border-collapse: separate;
    }

    .ranking-responsive-table-wrap thead {
        display: none;
    }

    .ranking-responsive-table-wrap tbody,
    .ranking-responsive-table-wrap tr,
    .ranking-responsive-table-wrap td {
        display: block;
        width: 100%;
    }

    .ranking-responsive-table-wrap tbody {
        display: grid;
        gap: 10px;
    }

    .ranking-responsive-table-wrap tr {
        display: grid;
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 8px 10px;
        padding: 12px;
        border: 1px solid rgba(217, 231, 239, 0.9);
        border-radius: 8px;
        background: #ffffff;
        box-shadow: 0 10px 24px rgba(13, 53, 87, 0.06);
    }

    .ranking-responsive-table-wrap td {
        min-width: 0;
        padding: 0;
        border: 0;
    }

    .ranking-responsive-table-wrap td:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
        width: auto;
    }

    .ranking-responsive-table-wrap td:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }

    .ranking-responsive-table-wrap td:nth-child(n+3) {
        grid-column: 1 / -1;
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding-top: 7px;
        border-top: 1px solid rgba(217, 231, 239, 0.7);
        color: var(--blue-deep);
        font-weight: 900;
    }

    .ranking-responsive-table-wrap td:nth-child(n+3)::before {
        color: var(--muted);
        font-size: 11px;
        font-weight: 900;
        text-transform: uppercase;
    }

    .ranking-responsive-table-wrap td:nth-child(3)::before {
        content: "РўРѕС‡РєРё";
    }

    .ranking-responsive-table-wrap td:nth-child(4)::before {
        content: "РўСѓСЂРЅРёСЂРё";
    }

    .ranking-responsive-table-wrap td:nth-child(5)::before {
        content: "РЈС‡Р°СЃС‚РёСЏ";
    }

    .ranking-responsive-table-wrap td:nth-child(6)::before {
        content: "РќР°Р№-РґРѕР±СЂРѕ";
    }

    .ranking-responsive-table-wrap td:nth-child(7)::before {
        content: "РњРµРґР°Р»Рё";
    }

    .ranking-responsive-table-wrap .rank-badge {
        width: 40px;
        height: 40px;
    }

    .ranking-responsive-table-wrap .ranking-person {
        width: 100%;
        align-items: center;
    }

    .ranking-responsive-table-wrap .ranking-person > span:last-child {
        min-width: 0;
    }

    .ranking-responsive-table-wrap .ranking-person strong,
    .ranking-responsive-table-wrap .muted-line {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: normal;
    }

    .ranking-responsive-table-wrap .ranking-avatar {
        width: 40px;
        height: 40px;
    }

    .ranking-responsive-table-wrap .ranking-avatar-stack {
        min-width: 54px;
    }

    .group-standings-table-wrap {
        margin-left: 0;
        margin-right: 0;
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .group-responsive-standings-table {
        display: block;
        min-width: 0;
        width: 100%;
        border-collapse: separate;
    }

    .group-responsive-standings-table thead {
        display: none;
    }

    .group-responsive-standings-table tbody {
        display: grid;
        gap: 8px;
    }

    .group-responsive-standings-table tr {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        align-items: start;
        gap: 8px 10px;
        padding: 10px;
        border: 1px solid rgba(217, 231, 239, 0.9);
        border-radius: 8px;
        background: #ffffff;
        box-shadow: 0 8px 18px rgba(13, 53, 87, 0.05);
    }

    .group-responsive-standings-table tr.qualified-row {
        border-color: rgba(31, 139, 122, 0.25);
        background: rgba(231, 248, 244, 0.55);
    }

    .group-responsive-standings-table td {
        display: block;
        min-width: 0;
        padding: 0;
        border: 0;
    }

    .group-responsive-standings-table td:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }

    .group-responsive-standings-table td:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }

    .group-responsive-standings-table td:nth-child(2) strong {
        display: block;
        overflow: hidden;
        color: var(--blue-deep);
        line-height: 1.25;
        text-overflow: ellipsis;
    }

    .group-responsive-standings-table td:nth-child(n+3) {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(72px, 1fr) auto;
        align-items: center;
        gap: 8px;
        min-height: 32px;
        padding: 6px 8px;
        border-radius: 7px;
        background: #f7fbfd;
        color: var(--blue-deep);
        font-size: 12px;
        font-weight: 900;
    }

    .group-responsive-standings-table td:nth-child(n+3)::before {
        min-width: 0;
        color: var(--muted);
        font-size: 10px;
        font-weight: 900;
        text-transform: uppercase;
    }

    .group-responsive-standings-table td:nth-child(3)::before {
        content: "Рњ";
    }

    .group-responsive-standings-table td:nth-child(4)::before {
        content: "Рџ";
    }

    .group-responsive-standings-table td:nth-child(5)::before {
        content: "Р—";
    }

    .group-responsive-standings-table td:nth-child(6)::before {
        content: "РЎРµС‚РѕРІРµ";
    }

    .group-responsive-standings-table td:nth-child(7)::before {
        content: "Р“РµР№РјРѕРІРµ";
    }

    .group-responsive-standings-table td:nth-child(8)::before {
        content: "РљРѕРµС„.";
    }

    .draw-bracket {
        grid-auto-flow: row;
        grid-auto-columns: auto;
        grid-template-columns: minmax(0, 1fr);
    }

    .bracket-round {
        min-width: 0;
    }

    .bracket-round:nth-child(2) .bracket-match-list,
    .bracket-round:nth-child(3) .bracket-match-list {
        gap: 16px;
    }

    .bracket-match::after {
        display: none;
    }

    .match-result-title,
    .result-set-row {
        grid-template-columns: 1fr;
    }

    .inline-score-form {
        min-width: 0;
        flex-wrap: wrap;
    }

    .draw-decision-form {
        grid-template-columns: 1fr;
        max-width: none;
        width: 100%;
    }

    .bracket-admin-row {
        grid-template-columns: 1fr;
    }

    .result-card-body {
        grid-template-columns: 1fr;
    }

    .result-card-body > span {
        justify-self: start;
    }
}

@media (max-width: 430px) {
    .main {
        padding: 12px;
    }

    .sidebar {
        padding: 14px 12px;
    }

    .sidebar a {
        padding: 10px 11px;
        font-size: 14px;
    }

    .format-tabs {
        margin-left: -12px;
        margin-right: -12px;
        padding-left: 12px;
        padding-right: 12px;
    }

    .btn {
        min-height: 40px;
        padding: 9px 12px;
    }

    .stats-grid,
    .tournament-profile-stats {
        grid-template-columns: 1fr;
    }

    .hero-main h2 {
        font-size: 24px;
    }

    .home-hero-content h2 {
        font-size: 29px;
    }

    .dashboard-hero {
        padding: 14px;
    }

    .home-hero,
    .panel {
        padding: 14px;
    }

    .home-format-card {
        padding: 14px;
    }

    .home-format-card dl {
        grid-template-columns: 1fr;
    }
}

/* Fresh sport-site visual pass */
:root {
    --green: #0f7f68;
    --green-soft: #e8fbf4;
    --ink: #101827;
    --muted: #66768a;
    --line: #d9e7ef;
    --panel: #ffffff;
    --bg: #f5fbff;
    --blue-deep: #0c3556;
    --blue-mid: #11699e;
    --blue-soft: #e4f5ff;
    --blue-wash: #f7fcff;
    --tennis: #b7f000;
    --tennis-soft: #f3ffd6;
    --shadow: 0 18px 42px rgba(13, 53, 87, 0.08);
    --shadow-soft: 0 10px 24px rgba(13, 53, 87, 0.07);
    --focus: 0 0 0 3px rgba(183, 240, 0, 0.28);
}

body {
    display: block;
    background:
        linear-gradient(180deg, rgba(228, 245, 255, 0.92) 0%, rgba(245, 251, 255, 0.98) 320px),
        #f5fbff;
}

.sidebar {
    position: sticky;
    top: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 72px;
    padding: 12px clamp(18px, 3vw, 46px);
    border-bottom: 1px solid rgba(217, 231, 239, 0.9);
    background: rgba(255, 255, 255, 0.88);
    color: var(--ink);
    box-shadow: 0 12px 36px rgba(13, 53, 87, 0.08);
    backdrop-filter: blur(14px);
}

.sidebar-top {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.brand {
    margin: 0;
    color: var(--ink);
}

.brand img {
    width: 70px;
    height: 70px;
    display: block;
    object-fit: contain;
}

.brand span {
    width: 42px;
    height: 42px;
    background: var(--tennis);
    color: #102033;
    box-shadow: inset 0 -8px 16px rgba(15, 127, 104, 0.14);
}

.brand strong {
    color: var(--blue-deep);
    font-weight: 900;
}

.sidebar nav {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.nav-section {
    display: none;
}

.sidebar a {
    padding: 10px 13px;
    border-radius: 8px;
    color: #40566c;
    font-size: 14px;
    font-weight: 900;
}

.sidebar a:hover,
.sidebar a.active {
    background: var(--tennis-soft);
    color: var(--blue-deep);
    transform: none;
}

.nav-profile-link {
    border: 1px solid var(--line);
    background: #ffffff;
}

.main {
    width: min(1480px, calc(100% - 36px));
    margin: 0 auto;
    padding: 34px 0 52px;
}

.page-header-row {
    align-items: flex-end;
}

.eyebrow {
    color: var(--green);
    letter-spacing: 0;
}

h1 {
    color: var(--blue-deep);
    font-size: 38px;
}

.btn {
    border: 1px solid rgba(15, 127, 104, 0.14);
    background: linear-gradient(180deg, #11a37f 0%, #0f7f68 100%);
    box-shadow: 0 12px 24px rgba(15, 127, 104, 0.18);
}

.btn.secondary {
    border-color: var(--line);
    background: #ffffff;
    color: var(--blue-deep);
}

.panel,
.stat-card,
.table-wrap {
    border-color: rgba(217, 231, 239, 0.86);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--shadow);
}

.panel {
    padding: 24px;
}

.home-hero {
    min-height: 410px;
    padding: clamp(24px, 4vw, 52px);
    border: 0;
    background-color: #0c3556;
    box-shadow: 0 28px 70px rgba(13, 53, 87, 0.18);
}

.home-hero::before {
    background:
        linear-gradient(90deg, rgba(9, 28, 45, 0.9) 0%, rgba(9, 28, 45, 0.62) 46%, rgba(9, 28, 45, 0.18) 100%),
        linear-gradient(180deg, rgba(12, 53, 86, 0.22), rgba(12, 53, 86, 0.44));
}

.home-hero:not(.has-image)::before {
    background:
        linear-gradient(135deg, #0c3556 0%, #11699e 58%, #b7f000 160%),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0 1px, transparent 1px 18px);
}

.hero-kicker {
    background: var(--tennis);
    color: #102033;
}

.home-hero-content h2 {
    color: #ffffff;
    font-size: clamp(38px, 5vw, 72px);
    max-width: 980px;
}

.home-hero-meta span,
.hero-badges span {
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    backdrop-filter: blur(10px);
}

.home-hero-scoreboard article {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.13);
    color: #ffffff;
}

.home-hero-scoreboard span {
    color: rgba(255, 255, 255, 0.72);
}

.home-hero-scoreboard strong {
    color: var(--tennis);
}

.home-featured-tournament {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
    gap: 20px;
    align-items: stretch;
    margin-bottom: 22px;
}

.home-featured-poster {
    display: grid;
    min-height: 520px;
    overflow: hidden;
    place-items: center;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 24px 55px rgba(13, 53, 87, 0.14);
    text-decoration: none;
}

.home-featured-poster img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 720px;
    object-fit: contain;
}

.home-featured-poster span {
    color: var(--blue-deep);
    font-weight: 900;
}

.home-featured-info {
    display: grid;
    align-content: start;
    gap: 18px;
    margin: 0;
}

.home-featured-heading {
    display: grid;
    gap: 10px;
}

.home-featured-heading h2 {
    margin: 0;
    color: var(--blue-deep);
    font-size: 44px;
    line-height: 1.05;
}

.home-featured-heading .btn {
    justify-self: start;
}

.home-featured-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.home-featured-facts div {
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #f8fbfd;
}

.home-featured-facts span,
.home-featured-format em,
.home-featured-subhead p {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.home-featured-facts strong {
    display: block;
    margin-top: 4px;
    overflow-wrap: anywhere;
    color: var(--blue-deep);
    font-size: 18px;
    line-height: 1.2;
}

.home-featured-format-section {
    display: grid;
    gap: 12px;
}

.home-featured-subhead h3 {
    margin: 0 0 4px;
    color: var(--blue-deep);
    font-size: 20px;
}

.home-featured-subhead p {
    margin: 0;
}

.home-featured-format-list {
    display: grid;
    gap: 9px;
}

.home-featured-format {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #ffffff;
    color: inherit;
    text-decoration: none;
    box-shadow: var(--shadow-soft);
}

.home-featured-format span {
    min-width: 0;
}

.home-featured-format strong,
.home-featured-format small,
.home-featured-format em {
    display: block;
}

.home-featured-format strong {
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-featured-format small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.home-featured-format b {
    flex: 0 0 auto;
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--green-soft);
    color: var(--green);
    font-size: 12px;
    white-space: nowrap;
}

.home-format-card,
.modern-result-card,
.tournament-list-card,
.player-directory-card {
    border: 1px solid rgba(217, 231, 239, 0.9);
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.home-format-card:hover,
.modern-result-card:hover,
.tournament-list-card:hover,
.player-directory-card:hover {
    border-color: rgba(15, 127, 104, 0.25);
    box-shadow: 0 18px 42px rgba(13, 53, 87, 0.12);
}

.code-badge,
.status-pill {
    background: var(--tennis-soft);
    color: #406000;
}

.result-match-line em {
    background: var(--blue-deep);
}

.ranking-person {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ranking-avatar,
.ranking-avatar-stack {
    flex: 0 0 auto;
}

.ranking-avatar {
    width: 42px;
    height: 42px;
    overflow: hidden;
    display: inline-grid;
    place-items: center;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--blue-soft), var(--tennis-soft));
    color: var(--blue-deep);
    font-size: 13px;
    font-weight: 900;
    box-shadow: 0 8px 18px rgba(17, 58, 89, 0.14);
}

.ranking-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ranking-avatar-stack {
    display: inline-flex;
    align-items: center;
    min-width: 58px;
}

.ranking-avatar-stack .ranking-avatar + .ranking-avatar {
    margin-left: -18px;
}

.winner-check {
    background: var(--tennis);
    color: #102033;
}

.players-directory-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.32fr);
    gap: 18px;
}

.player-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.player-directory-card {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 16px;
    border-radius: 8px;
    color: var(--ink);
    text-decoration: none;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.player-directory-card:hover {
    transform: translateY(-2px);
}

.player-directory-photo {
    width: 74px;
    height: 74px;
    overflow: hidden;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--blue-soft), var(--tennis-soft));
    color: var(--blue-deep);
    font-size: 20px;
    font-weight: 900;
}

.player-directory-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.player-directory-main,
.player-directory-stats {
    min-width: 0;
    display: grid;
    gap: 6px;
}

.player-directory-main strong {
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 18px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-directory-main small,
.player-directory-stats span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.player-directory-stats {
    grid-column: 1 / -1;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}

.player-directory-stats strong {
    color: var(--green);
    font-size: 22px;
}

.player-medals-line {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
}

.player-medals-line i {
    font-style: normal;
}

@media (max-width: 1100px) {
    .sidebar {
        display: block;
        min-height: 64px;
        padding: 12px 16px;
    }

    .sidebar nav {
        display: grid;
        justify-content: stretch;
    }

    .nav-profile-link,
    .nav-profile-section {
        display: none !important;
    }

    .main {
        width: min(100% - 28px, 1480px);
        padding-top: 24px;
    }

    .players-directory-layout,
    .player-card-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    h1 {
        font-size: 30px;
    }

    .page-header-row {
        align-items: flex-start;
    }

    .home-hero {
        min-height: 0;
    }

    .home-hero-content h2 {
        font-size: 36px;
    }

    .player-directory-card {
        grid-template-columns: 62px minmax(0, 1fr);
        padding: 13px;
    }

    .player-directory-photo {
        width: 62px;
        height: 62px;
    }

    .link-question {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .link-question > span {
        margin-right: 0;
    }
}

.is-public form[action*="save.php"],
.is-public form[action*="save_"],
.is-public form[action*="generate.php"],
.is-public form[action*="generate_"],
.is-public form[action*="reorder_matches.php"],
.is-public form[action*="update_rank.php"],
.is-public form[action*="draws/generate.php"],
.is-public form[action*="draws/manual_create.php"],
.is-public form[action*="group_entries/save.php"],
.is-public form[action*="entries/save.php"],
.is-public form[action*="groups/save.php"],
.is-public form[action*="matches/delete.php"],
.is-public form[action*="matches/save_result.php"],
.is-public form[action*="matches/update_schedule.php"],
.is-public form[action*="formats/save_final_standings.php"],
.is-public .new-format-details,
.is-public .player-create-panel,
.is-public a[href*="tournaments/form.php"] {
    display: none !important;
}

.is-public .players-directory-layout,
.is-public .tournament-workbench {
    grid-template-columns: 1fr;
}

.is-public .player-edit-form {
    display: grid !important;
}

.readonly-scoreboard {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0 0;
}

.readonly-scoreboard article {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--blue-wash);
    text-align: center;
}

.readonly-scoreboard span,
.readonly-scoreboard small {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.readonly-scoreboard strong {
    display: block;
    margin: 5px 0;
    color: var(--blue-deep);
    font-size: 24px;
    font-weight: 900;
}

@media (max-width: 680px) {
    .readonly-scoreboard {
        grid-template-columns: 1fr;
    }
}

/* Final mobile navigation polish */
.brand {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    text-decoration: none;
}

.brand img {
    transition: transform 0.18s ease, filter 0.18s ease;
}

.brand:hover img {
    transform: scale(1.04);
    filter: drop-shadow(0 12px 22px rgba(18, 69, 48, 0.18));
}

@media (max-width: 1100px) {
    body.menu-open {
        overflow: hidden;
    }

    .sidebar {
        position: sticky;
        top: 0;
        z-index: 60;
        display: flex;
        min-height: 82px;
        padding: 10px 14px;
        border-bottom: 1px solid rgba(181, 211, 231, 0.85);
        background: rgba(247, 252, 255, 0.94);
        box-shadow: 0 14px 38px rgba(17, 58, 89, 0.12);
        backdrop-filter: blur(18px);
    }

    .sidebar-top {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }

    .brand img {
        width: 68px;
        height: 68px;
    }

    .mobile-header-actions {
        display: inline-flex;
        align-items: center;
        gap: 10px;
    }

    .mobile-auth-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
        padding: 0 16px;
        border: 1px solid rgba(181, 211, 231, 0.95);
        border-radius: 999px;
        background: #ffffff;
        color: var(--blue-deep);
        font-size: 13px;
        font-weight: 900;
        text-decoration: none;
        box-shadow: 0 10px 22px rgba(17, 58, 89, 0.08);
    }

    .mobile-auth-link.active {
        background: var(--blue-deep);
        color: #ffffff;
    }

    .menu-toggle {
        position: relative;
        display: inline-grid;
        place-items: center;
        width: 46px;
        height: 46px;
        border: 0;
        border-radius: 999px;
        background: linear-gradient(135deg, var(--blue), var(--blue-deep));
        box-shadow: 0 14px 28px rgba(21, 112, 197, 0.22);
        cursor: pointer;
    }

    .menu-toggle span {
        position: absolute;
        width: 19px;
        height: 2px;
        border-radius: 999px;
        background: #ffffff;
        transition: transform 0.18s ease, opacity 0.18s ease;
    }

    .menu-toggle span:nth-child(1) {
        transform: translateY(-7px);
    }

    .menu-toggle span:nth-child(3) {
        transform: translateY(7px);
    }

    .menu-open .menu-toggle span:nth-child(1) {
        transform: rotate(45deg);
    }

    .menu-open .menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .menu-open .menu-toggle span:nth-child(3) {
        transform: rotate(-45deg);
    }

    .sidebar nav {
        position: fixed;
        top: 94px;
        left: 14px;
        right: 14px;
        z-index: 70;
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        max-height: calc(100vh - 112px);
        padding: 14px;
        overflow: auto;
        border: 1px solid rgba(181, 211, 231, 0.95);
        border-radius: 18px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 28px 70px rgba(17, 58, 89, 0.24);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-10px) scale(0.98);
        transform-origin: top right;
        transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
        visibility: hidden;
    }

    .menu-open .sidebar nav {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0) scale(1);
        visibility: visible;
    }

    .sidebar nav a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 48px;
        padding: 12px 14px;
        border: 1px solid transparent;
        border-radius: 14px;
        background: var(--blue-wash);
        color: var(--blue-deep);
        font-size: 15px;
        font-weight: 900;
        text-decoration: none;
    }

    .sidebar nav a::after {
        content: "";
        width: 8px;
        height: 8px;
        border-top: 2px solid currentColor;
        border-right: 2px solid currentColor;
        opacity: 0.45;
        transform: rotate(45deg);
    }

    .sidebar nav a.active {
        border-color: rgba(15, 127, 104, 0.3);
        background: linear-gradient(135deg, var(--green), #11a87e);
        color: #ffffff;
        box-shadow: 0 12px 24px rgba(15, 127, 104, 0.18);
    }

    .nav-section {
        display: block;
        margin: 8px 4px 2px;
        color: var(--muted);
        font-size: 11px;
        font-weight: 900;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .nav-profile-link,
    .nav-profile-section {
        display: none !important;
    }

    .menu-backdrop {
        position: fixed;
        inset: 0;
        z-index: 50;
        background: rgba(9, 36, 58, 0.38);
        backdrop-filter: blur(5px);
    }

    .menu-backdrop[hidden] {
        display: none;
    }
}

@media (max-width: 520px) {
    .sidebar {
        min-height: 76px;
        padding: 8px 10px;
    }

    .brand img {
        width: 62px;
        height: 62px;
    }

    .mobile-header-actions {
        gap: 8px;
    }

    .mobile-auth-link {
        min-height: 40px;
        max-width: 124px;
        padding: 0 13px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .menu-toggle {
        width: 44px;
        height: 44px;
    }

    .sidebar nav {
        top: 84px;
        left: 10px;
        right: 10px;
        max-height: calc(100vh - 96px);
        padding: 12px;
        border-radius: 16px;
    }

    .sidebar nav a {
        min-height: 46px;
        padding: 11px 12px;
        font-size: 14px;
    }
}

/* Hard mobile nav guard: keep the hamburger visible above older nav rules. */
@media (max-width: 1100px) {
    body {
        grid-template-columns: 1fr !important;
    }

    .sidebar {
        position: sticky !important;
        top: 0 !important;
        z-index: 1003 !important;
        display: flex !important;
        width: 100% !important;
    }

    .sidebar-top {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .mobile-header-actions {
        display: flex !important;
        align-items: center !important;
    }

    .menu-toggle {
        display: inline-grid !important;
        flex: 0 0 44px !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .sidebar nav {
        position: fixed !important;
        top: 88px !important;
        left: 10px !important;
        right: 10px !important;
        z-index: 1004 !important;
        display: grid !important;
        opacity: 0 !important;
        pointer-events: none !important;
        visibility: hidden !important;
    }

    .menu-open .sidebar nav {
        opacity: 1 !important;
        pointer-events: auto !important;
        visibility: visible !important;
        transform: translateY(0) scale(1) !important;
    }

    .menu-backdrop {
        z-index: 1001 !important;
    }
}

/* Centered brand/header layout */
@media (min-width: 1101px) {
    .sidebar {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 12px !important;
        min-height: 142px !important;
        padding: 14px clamp(18px, 3vw, 46px) 16px !important;
    }

    .sidebar-top {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
    }

    .brand {
        margin: 0 !important;
        justify-content: center !important;
    }

    .brand img {
        width: 92px !important;
        height: 92px !important;
    }

    .sidebar nav {
        width: 100% !important;
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    .sidebar nav .nav-section {
        display: none !important;
    }

    .main {
        padding-top: 28px !important;
    }
}

@media (max-width: 1100px) {
    .sidebar {
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        min-height: auto !important;
        padding: 12px 12px 14px !important;
    }

    .sidebar-top {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        gap: 10px !important;
    }

    .brand {
        justify-content: center !important;
    }

    .brand img {
        width: 78px !important;
        height: 78px !important;
    }

    .mobile-header-actions {
        width: 100% !important;
        justify-content: center !important;
        gap: 10px !important;
    }

    .sidebar nav {
        top: 154px !important;
    }
}

@media (max-width: 520px) {
    .brand img {
        width: 72px !important;
        height: 72px !important;
    }

    .sidebar nav {
        top: 148px !important;
    }
}

/* Mobile menu icon contrast */
@media (max-width: 1100px) {
    .menu-toggle {
        border: 1px solid rgba(15, 127, 104, 0.28) !important;
        background: #ffffff !important;
        box-shadow: 0 12px 28px rgba(15, 61, 99, 0.16) !important;
    }

    .menu-toggle span {
        background: var(--green) !important;
    }

    .menu-open .menu-toggle {
        background: var(--green) !important;
    }

    .menu-open .menu-toggle span {
        background: #ffffff !important;
    }
}

/* Mobile header: separate main menu and profile menu. */
@media (max-width: 1100px) {
    .mobile-header-actions {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
    }

    .mobile-auth-link {
        display: none !important;
    }

    .menu-toggle {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        min-width: 98px !important;
        flex: 0 0 auto !important;
        height: 44px !important;
        padding: 0 15px 0 40px !important;
        border-radius: 999px !important;
    }

    .menu-toggle em {
        display: inline-block !important;
        color: var(--blue-deep);
        font-style: normal;
        font-size: 13px;
        font-weight: 900;
        line-height: 1;
    }

    .menu-toggle span {
        position: absolute !important;
        left: 14px !important;
        top: 50% !important;
        display: block !important;
        width: 18px !important;
        height: 2px !important;
        margin: 0 !important;
    }

    .menu-toggle span:nth-child(1) {
        transform: translateY(-7px) !important;
    }

    .menu-toggle span:nth-child(2) {
        transform: translateY(-1px) !important;
    }

    .menu-toggle span:nth-child(3) {
        transform: translateY(5px) !important;
    }

    .menu-open .menu-toggle em {
        color: #ffffff;
    }

    .menu-open .menu-toggle span:nth-child(1) {
        transform: rotate(45deg) !important;
    }

    .menu-open .menu-toggle span:nth-child(2) {
        opacity: 0 !important;
    }

    .menu-open .menu-toggle span:nth-child(3) {
        transform: rotate(-45deg) !important;
    }

    .profile-toggle {
        position: relative;
        display: inline-grid !important;
        place-items: center;
        width: 44px;
        height: 44px;
        border: 1px solid rgba(15, 127, 104, 0.28);
        border-radius: 999px;
        background: #ffffff;
        box-shadow: 0 12px 28px rgba(15, 61, 99, 0.16);
        cursor: pointer;
    }

    .profile-toggle span {
        position: relative;
        width: 18px;
        height: 18px;
        border: 2px solid var(--green);
        border-radius: 999px;
    }

    .profile-toggle span::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 3px;
        width: 5px;
        height: 5px;
        border-radius: 999px;
        background: var(--green);
        transform: translateX(-50%);
    }

    .profile-toggle span::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: 3px;
        width: 10px;
        height: 5px;
        border-radius: 999px 999px 4px 4px;
        background: var(--green);
        transform: translateX(-50%);
    }

    .profile-toggle.active,
    .profile-open .profile-toggle {
        background: var(--green);
        border-color: var(--green);
    }

    .profile-toggle.active span,
    .profile-open .profile-toggle span {
        border-color: #ffffff;
    }

    .profile-toggle.active span::before,
    .profile-toggle.active span::after,
    .profile-open .profile-toggle span::before,
    .profile-open .profile-toggle span::after {
        background: #ffffff;
    }

    .mobile-profile-menu {
        position: fixed;
        top: 154px;
        left: 50%;
        z-index: 1004;
        display: grid !important;
        width: min(270px, calc(100vw - 28px));
        gap: 8px;
        padding: 12px;
        border: 1px solid rgba(181, 211, 231, 0.95);
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 28px 70px rgba(17, 58, 89, 0.24);
        opacity: 0;
        pointer-events: none;
        transform: translate(-50%, -10px) scale(0.98);
        transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
        visibility: hidden;
    }

    .profile-open .mobile-profile-menu {
        opacity: 1;
        pointer-events: auto;
        transform: translate(-50%, 0) scale(1);
        visibility: visible;
    }

    .mobile-profile-menu a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 46px;
        padding: 11px 12px;
        border-radius: 13px;
        background: var(--blue-wash);
        color: var(--blue-deep);
        font-size: 14px;
        font-weight: 900;
        text-decoration: none;
    }

    .mobile-profile-menu a.active {
        background: linear-gradient(135deg, var(--green), #11a87e);
        color: #ffffff;
    }
}

@media (max-width: 520px) {
    .menu-toggle {
        min-width: 92px !important;
        height: 42px !important;
        padding: 0 12px 0 38px !important;
    }

    .profile-toggle {
        width: 42px;
        height: 42px;
    }

    .mobile-profile-menu {
        top: 148px;
    }
}

/* Header redesign: compact court bar on desktop and mobile. */
body {
    grid-template-columns: 1fr !important;
}

.sidebar {
    position: sticky !important;
    top: 0 !important;
    z-index: 1003 !important;
    width: min(100% - 18px, 1680px) !important;
    min-height: 104px !important;
    margin: 8px auto 0 !important;
    padding: 10px 24px !important;
    border: 1px solid rgba(205, 219, 70, 0.28) !important;
    border-radius: 10px !important;
    background:
        linear-gradient(90deg, rgba(5, 19, 18, 0.92), rgba(9, 34, 31, 0.78), rgba(5, 19, 18, 0.92)),
        radial-gradient(circle at 50% 110%, rgba(212, 222, 57, 0.12), transparent 34%),
        linear-gradient(135deg, #071311 0%, #102b25 54%, #071311 100%) !important;
    box-shadow: 0 16px 42px rgba(2, 20, 17, 0.22) !important;
    overflow: visible !important;
}

.sidebar::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(90deg, transparent 49.9%, rgba(255, 255, 255, 0.08) 50%, transparent 50.1%),
        linear-gradient(0deg, rgba(255, 255, 255, 0.07), transparent 28%, transparent 72%, rgba(255, 255, 255, 0.06));
    opacity: 0.42;
    pointer-events: none;
}

.sidebar-top {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(110px, 1fr) auto minmax(110px, 1fr) !important;
    align-items: center !important;
    gap: 12px !important;
}

.brand {
    grid-column: 2 !important;
    justify-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
}

.brand img {
    width: 82px !important;
    height: 82px !important;
    object-fit: contain !important;
    filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.35)) !important;
}

.mobile-header-actions {
    display: contents !important;
}

.menu-toggle {
    grid-column: 1 !important;
    justify-self: start !important;
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 102px !important;
    height: 44px !important;
    padding: 0 16px 0 42px !important;
    border: 1px solid rgba(210, 220, 52, 0.62) !important;
    border-radius: 999px !important;
    background: rgba(5, 24, 22, 0.72) !important;
    color: #f4f1ab !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 12px 22px rgba(0, 0, 0, 0.2) !important;
    cursor: pointer !important;
}

.menu-toggle em {
    display: inline-block !important;
    color: #ffffff !important;
    font-style: normal !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.menu-toggle span {
    position: absolute !important;
    left: 15px !important;
    top: 50% !important;
    display: block !important;
    width: 18px !important;
    height: 2px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    background: #cddf32 !important;
    transition: transform 0.18s ease, opacity 0.18s ease !important;
}

.menu-toggle span:nth-child(1) {
    transform: translateY(-7px) !important;
}

.menu-toggle span:nth-child(2) {
    transform: translateY(-1px) !important;
}

.menu-toggle span:nth-child(3) {
    transform: translateY(5px) !important;
}

.menu-open .menu-toggle {
    background: #cddf32 !important;
}

.menu-open .menu-toggle em {
    color: #0b241b !important;
}

.menu-open .menu-toggle span {
    background: #0b241b !important;
}

.menu-open .menu-toggle span:nth-child(1) {
    transform: rotate(45deg) !important;
}

.menu-open .menu-toggle span:nth-child(2) {
    opacity: 0 !important;
}

.menu-open .menu-toggle span:nth-child(3) {
    transform: rotate(-45deg) !important;
}

.profile-toggle {
    grid-column: 3 !important;
    justify-self: end !important;
    position: relative !important;
    display: inline-grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    border: 1px solid rgba(210, 220, 52, 0.62) !important;
    border-radius: 999px !important;
    background: rgba(5, 24, 22, 0.72) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 12px 22px rgba(0, 0, 0, 0.2) !important;
    cursor: pointer !important;
}

.profile-toggle span {
    position: relative !important;
    width: 18px !important;
    height: 18px !important;
    border: 2px solid #cddf32 !important;
    border-radius: 999px !important;
}

.profile-toggle span::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 3px !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 999px !important;
    background: #cddf32 !important;
    transform: translateX(-50%) !important;
}

.profile-toggle span::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 3px !important;
    width: 10px !important;
    height: 5px !important;
    border-radius: 999px 999px 4px 4px !important;
    background: #cddf32 !important;
    transform: translateX(-50%) !important;
}

.profile-toggle.active,
.profile-open .profile-toggle {
    background: #cddf32 !important;
}

.profile-toggle.active span,
.profile-open .profile-toggle span {
    border-color: #0b241b !important;
}

.profile-toggle.active span::before,
.profile-toggle.active span::after,
.profile-open .profile-toggle span::before,
.profile-open .profile-toggle span::after {
    background: #0b241b !important;
}

.sidebar nav {
    position: fixed !important;
    top: 124px !important;
    left: 50% !important;
    z-index: 1004 !important;
    display: grid !important;
    width: min(380px, calc(100vw - 28px)) !important;
    max-height: calc(100vh - 142px) !important;
    gap: 8px !important;
    padding: 13px !important;
    overflow: auto !important;
    border: 1px solid rgba(210, 220, 52, 0.32) !important;
    border-radius: 16px !important;
    background: rgba(9, 30, 27, 0.98) !important;
    box-shadow: 0 28px 70px rgba(2, 18, 16, 0.34) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translate(-50%, -10px) scale(0.98) !important;
    transform-origin: top center !important;
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease !important;
    visibility: hidden !important;
}

.menu-open .sidebar nav {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translate(-50%, 0) scale(1) !important;
    visibility: visible !important;
}

.sidebar nav a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 46px !important;
    padding: 11px 13px !important;
    border: 1px solid rgba(210, 220, 52, 0.12) !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: #eef1d2 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}

.sidebar nav a:hover,
.sidebar nav a.active {
    background: #cddf32 !important;
    color: #0b241b !important;
    transform: none !important;
}

.nav-section,
.nav-profile-link,
.nav-profile-section {
    display: none !important;
}

.mobile-profile-menu {
    position: fixed !important;
    top: 124px !important;
    left: 50% !important;
    z-index: 1004 !important;
    display: grid !important;
    width: min(270px, calc(100vw - 28px)) !important;
    gap: 8px !important;
    padding: 12px !important;
    border: 1px solid rgba(210, 220, 52, 0.32) !important;
    border-radius: 16px !important;
    background: rgba(9, 30, 27, 0.98) !important;
    box-shadow: 0 28px 70px rgba(2, 18, 16, 0.34) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translate(-50%, -10px) scale(0.98) !important;
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease !important;
    visibility: hidden !important;
}

.profile-open .mobile-profile-menu {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translate(-50%, 0) scale(1) !important;
    visibility: visible !important;
}

.mobile-profile-menu a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 46px !important;
    padding: 11px 12px !important;
    border-radius: 13px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: #eef1d2 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}

.mobile-profile-menu a.active,
.mobile-profile-menu a:hover {
    background: #cddf32 !important;
    color: #0b241b !important;
}

.main {
    padding-top: 26px !important;
}

@media (max-width: 680px) {
    .sidebar {
        width: calc(100% - 8px) !important;
        min-height: 98px !important;
        margin-top: 4px !important;
        padding: 9px 12px !important;
        border-radius: 9px !important;
    }

    .sidebar-top {
        grid-template-columns: minmax(92px, 1fr) auto minmax(48px, 1fr) !important;
    }

    .brand img {
        width: 70px !important;
        height: 70px !important;
    }

    .menu-toggle {
        min-width: 92px !important;
        height: 42px !important;
        padding: 0 12px 0 38px !important;
    }

    .menu-toggle em {
        font-size: 13px !important;
    }

    .profile-toggle {
        width: 42px !important;
        height: 42px !important;
    }

    .sidebar nav,
    .mobile-profile-menu {
        top: 112px !important;
    }
}

/* Light header variant with centered logo and court arcs. */
.sidebar {
    min-height: 76px !important;
    margin-top: 14px !important;
    padding: 10px 32px !important;
    border: 1px solid rgba(214, 221, 226, 0.88) !important;
    border-radius: 14px !important;
    background:
        radial-gradient(circle at 50% -46px, rgba(206, 220, 48, 0.12), transparent 118px),
        linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%) !important;
    box-shadow: 0 12px 34px rgba(20, 43, 58, 0.08) !important;
    overflow: visible !important;
}

.sidebar::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: -112px !important;
    width: 420px !important;
    height: 270px !important;
    border-top: 1px solid rgba(195, 211, 38, 0.58) !important;
    border-left: 1px solid rgba(195, 211, 38, 0.38) !important;
    border-right: 1px solid rgba(195, 211, 38, 0.38) !important;
    border-bottom: 0 !important;
    border-radius: 50% 50% 0 0 !important;
    background: transparent !important;
    opacity: 1 !important;
    transform: translateX(-50%) !important;
    pointer-events: none !important;
}

.sidebar::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: -122px !important;
    width: 348px !important;
    height: 246px !important;
    border-top: 1px solid rgba(195, 211, 38, 0.38) !important;
    border-left: 1px solid rgba(195, 211, 38, 0.28) !important;
    border-right: 1px solid rgba(195, 211, 38, 0.28) !important;
    border-bottom: 0 !important;
    border-radius: 50% 50% 0 0 !important;
    transform: translateX(-50%) !important;
    pointer-events: none !important;
}

.sidebar-top {
    overflow: hidden !important;
    border-radius: inherit !important;
}

.sidebar-top {
    min-height: 56px !important;
}

.brand img {
    width: 72px !important;
    height: 72px !important;
    filter: drop-shadow(0 9px 14px rgba(15, 63, 37, 0.22)) !important;
}

.menu-toggle {
    min-width: 108px !important;
    height: 46px !important;
    padding: 0 16px 0 44px !important;
    border: 1px solid rgba(30, 61, 42, 0.12) !important;
    background: #ffffff !important;
    color: #193b2a !important;
    box-shadow: 0 6px 20px rgba(23, 45, 60, 0.08) !important;
}

.menu-toggle em {
    color: #193b2a !important;
}

.menu-toggle span {
    left: 16px !important;
    background: #193b2a !important;
}

.menu-open .menu-toggle {
    border-color: #c8d832 !important;
    background: #f2f8d2 !important;
}

.menu-open .menu-toggle em,
.menu-open .menu-toggle span {
    color: #193b2a !important;
    background: #193b2a !important;
}

.profile-toggle {
    width: 44px !important;
    height: 44px !important;
    border: 1px solid rgba(179, 197, 34, 0.88) !important;
    background: #ffffff !important;
    box-shadow: 0 6px 20px rgba(23, 45, 60, 0.08) !important;
}

.profile-toggle span {
    width: 15px !important;
    height: 13px !important;
    border: 2px solid #193b2a !important;
    border-bottom: 0 !important;
    border-radius: 10px 10px 5px 5px !important;
    transform: translateY(1px) !important;
}

.profile-toggle span::before {
    left: 50% !important;
    top: -4px !important;
    width: 5px !important;
    height: 4px !important;
    border: 2px solid #193b2a !important;
    border-bottom: 0 !important;
    border-radius: 6px 6px 0 0 !important;
    background: transparent !important;
    transform: translateX(-50%) !important;
}

.profile-toggle span::after {
    left: 50% !important;
    bottom: -5px !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 999px !important;
    background: #193b2a !important;
    transform: translateX(-50%) !important;
}

.profile-toggle.active,
.profile-open .profile-toggle {
    background: #f2f8d2 !important;
    border-color: #c8d832 !important;
}

.profile-toggle.active span,
.profile-open .profile-toggle span {
    border-color: #193b2a !important;
}

.profile-toggle.active span::before,
.profile-open .profile-toggle span::before {
    border-color: #193b2a !important;
    background: transparent !important;
}

.profile-toggle.active span::after,
.profile-open .profile-toggle span::after {
    background: #193b2a !important;
}

.sidebar nav,
.mobile-profile-menu {
    top: 104px !important;
    z-index: 1010 !important;
    border-color: rgba(214, 221, 226, 0.9) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 24px 60px rgba(20, 43, 58, 0.18) !important;
}

.sidebar nav a,
.mobile-profile-menu a {
    border-color: rgba(30, 61, 42, 0.08) !important;
    background: #f7fafb !important;
    color: #193b2a !important;
}

.sidebar nav a:hover,
.sidebar nav a.active,
.mobile-profile-menu a.active,
.mobile-profile-menu a:hover {
    background: #edf7c8 !important;
    color: #193b2a !important;
}

@media (max-width: 680px) {
    .sidebar {
        width: calc(100% - 8px) !important;
        min-height: 76px !important;
        margin-top: 14px !important;
        padding: 8px 20px !important;
        border-radius: 12px !important;
    }

    .sidebar::before {
        top: -104px !important;
        width: 330px !important;
        height: 220px !important;
    }

    .sidebar::after {
        top: -112px !important;
        width: 272px !important;
        height: 202px !important;
    }

    .sidebar-top {
        grid-template-columns: minmax(102px, 1fr) auto minmax(48px, 1fr) !important;
        min-height: 54px !important;
    }

    .brand img {
        width: 66px !important;
        height: 66px !important;
    }

    .menu-toggle {
        min-width: 96px !important;
        height: 42px !important;
        padding: 0 12px 0 38px !important;
    }

    .menu-toggle span {
        left: 14px !important;
    }

    .profile-toggle {
        width: 40px !important;
        height: 40px !important;
    }

    .sidebar nav,
    .mobile-profile-menu {
        top: 104px !important;
    }
}

/* Header sizing refinement. */
.sidebar {
    min-height: 106px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

.sidebar-top {
    min-height: 82px !important;
    align-items: center !important;
}

.brand img {
    width: 98px !important;
    height: 98px !important;
}

.menu-toggle,
.profile-toggle {
    align-self: center !important;
    transform: translateY(0) !important;
}

.sidebar nav,
.mobile-profile-menu {
    top: 132px !important;
}

@media (max-width: 680px) {
    .sidebar {
        min-height: 94px !important;
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    .sidebar-top {
        min-height: 78px !important;
    }

    .brand img {
        width: 88px !important;
        height: 88px !important;
    }

    .sidebar nav,
    .mobile-profile-menu {
        top: 124px !important;
    }
}

/* Desktop header uses direct navigation links; hamburger stays mobile-only. */
@media (min-width: 1101px) {
    .sidebar {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: center !important;
        gap: 8px !important;
        min-height: 138px !important;
        padding: 10px 34px 14px !important;
    }

    .sidebar-top {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: minmax(160px, 1fr) auto minmax(160px, 1fr) !important;
        min-height: 86px !important;
        align-items: center !important;
        overflow: visible !important;
    }

    .brand {
        grid-column: 2 !important;
        justify-self: center !important;
    }

    .brand img {
        width: 100px !important;
        height: 100px !important;
    }

    .mobile-header-actions {
        display: contents !important;
    }

    .menu-toggle {
        display: none !important;
    }

    .profile-toggle {
        display: none !important;
    }

    .sidebar nav {
        position: static !important;
        left: auto !important;
        top: auto !important;
        z-index: 2 !important;
        display: flex !important;
        width: 100% !important;
        max-height: none !important;
        align-items: center !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        padding: 0 !important;
        overflow: visible !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: none !important;
        visibility: visible !important;
    }

    .sidebar nav a:not(.nav-profile-link) {
        min-height: 38px !important;
        padding: 9px 14px !important;
        border: 1px solid transparent !important;
        border-radius: 999px !important;
        background: transparent !important;
        color: #193b2a !important;
        font-size: 14px !important;
        font-weight: 900 !important;
        text-decoration: none !important;
    }

    .sidebar nav a:not(.nav-profile-link):hover,
    .sidebar nav a:not(.nav-profile-link).active {
        border-color: rgba(195, 211, 38, 0.38) !important;
        background: #edf7c8 !important;
        color: #193b2a !important;
        transform: none !important;
    }

    .sidebar nav a::after {
        display: none !important;
    }

    .nav-section,
    .nav-profile-link,
    .nav-profile-section {
        display: none !important;
    }

    .mobile-profile-menu {
        top: 128px !important;
    }
}

/* Compact tournament format cards on mobile. */
@media (max-width: 680px) {
    .format-list {
        gap: 8px !important;
    }

    .format-card {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 12px !important;
        border-radius: 8px !important;
        align-items: start !important;
    }

    .format-card-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
    }

    .format-card-actions {
        width: 100% !important;
        justify-content: flex-start !important;
        padding-left: 0 !important;
        padding-top: 8px !important;
        border-left: 0 !important;
        border-top: 1px solid var(--line) !important;
    }

    .format-card h3 {
        margin: 0 0 4px !important;
        font-size: 18px !important;
        line-height: 1.15 !important;
    }

    .format-card p {
        font-size: 12px !important;
        line-height: 1.3 !important;
    }

    .format-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 5px !important;
    }

    .format-metrics span {
        padding: 6px 5px !important;
        font-size: 10px !important;
        line-height: 1.15 !important;
        border-radius: 7px !important;
    }

    .format-metrics strong {
        margin-bottom: 2px !important;
        font-size: 17px !important;
        line-height: 1 !important;
    }

    .home-format-card {
        padding: 12px !important;
        gap: 8px !important;
    }

    .home-format-card strong {
        font-size: 17px !important;
    }

    .home-format-card small,
    .home-format-participants {
        font-size: 11px !important;
    }

    .home-format-participants {
        padding: 5px 8px !important;
    }

    .tournament-profile-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin-bottom: 14px !important;
    }

    .tournament-profile-stats .stat-card {
        min-height: 0 !important;
        padding: 11px 12px !important;
        border-radius: 8px !important;
    }

    .tournament-profile-stats .stat-card span {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    .tournament-profile-stats .stat-card strong {
        margin-top: 6px !important;
        font-size: 24px !important;
        line-height: 1.1 !important;
    }

    .tournament-profile-stats .stat-card .stat-text {
        font-size: 18px !important;
    }
}

@media (max-width: 980px) {
    .home-featured-tournament {
        grid-template-columns: 1fr;
    }

    .home-featured-poster {
        min-height: 0;
    }

    .home-featured-poster img {
        height: auto;
        max-height: none;
    }
}

@media (max-width: 680px) {
    .home-featured-tournament {
        gap: 14px;
    }

    .home-featured-info {
        padding: 16px;
    }

    .home-featured-heading h2 {
        font-size: 30px;
    }

    .home-featured-facts {
        grid-template-columns: 1fr;
    }

    .home-featured-format {
        align-items: flex-start;
        flex-direction: column;
    }

    .home-featured-format b {
        white-space: normal;
    }
}

/* Player account edit form visibility guard - keep last. */
.account-edit-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 18px !important;
    opacity: 1 !important;
    visibility: visible !important;
    min-height: 0 !important;
}

.account-edit-form label,
.account-edit-form .form-actions {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
}

.account-edit-form input,
.account-edit-form select {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.account-edit-form .full-row,
.account-edit-form .form-actions {
    grid-column: 1 / -1 !important;
}

.account-edit-form .btn {
    display: inline-flex !important;
}

@media (max-width: 680px) {
    .account-edit-form {
        grid-template-columns: 1fr !important;
    }
}

/* Dedicated player edit page form - actual final override. */
.player-edit-panel {
    width: min(980px, 100%) !important;
    max-width: 980px !important;
    min-height: 0 !important;
    padding: 26px !important;
    overflow: visible !important;
}

.player-edit-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-edit-form label {
    display: block !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
}

.player-edit-form label span {
    display: block !important;
    margin-bottom: 7px !important;
    color: #344054 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
}

.player-edit-form input,
.player-edit-form select {
    display: block !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    background: #fbfdff !important;
    color: var(--ink) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.player-edit-full,
.player-edit-actions {
    grid-column: 1 / -1 !important;
}

.player-edit-actions {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

@media (max-width: 680px) {
    .player-edit-panel {
        padding: 16px !important;
    }

    .player-edit-form {
        grid-template-columns: 1fr !important;
    }
}

/* Final compact dashboard match/result override. */
.modern-results-list {
    gap: 7px !important;
}

.modern-results .panel-title-row {
    margin-bottom: 12px !important;
}

.modern-result-card {
    grid-template-columns: minmax(145px, 0.44fr) minmax(0, 1.4fr) minmax(160px, 0.48fr) !important;
    gap: 10px !important;
    min-height: 0 !important;
    padding: 10px 12px !important;
}

.result-meta-line,
.result-context-line {
    gap: 2px !important;
}

.result-meta-line span:first-child {
    padding: 4px 7px !important;
    font-size: 11px !important;
}

.result-meta-line span:last-child,
.result-meta-line small,
.result-context-line span,
.result-context-line strong {
    font-size: 11px !important;
    line-height: 1.25 !important;
}

.result-match-line {
    gap: 8px !important;
}

.result-match-line strong {
    font-size: 13px !important;
    line-height: 1.25 !important;
}

.result-match-line em {
    padding: 4px 7px !important;
    font-size: 12px !important;
}

.upcoming-match-card .result-context-line span {
    display: none !important;
}

@media (max-width: 980px) {
    .modern-result-card {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .result-match-line {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    }
}

@media (max-width: 680px) {
    .modern-result-card {
        padding: 9px 10px !important;
    }

    .result-match-line {
        grid-template-columns: 1fr !important;
        gap: 5px !important;
    }

    .result-match-line em {
        justify-self: start !important;
    }
}

/* Larger tournament poster images on the tournaments page. */
.tournament-poster-grid {
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)) !important;
    gap: 22px !important;
}

.tournament-poster-media {
    aspect-ratio: 2 / 3 !important;
}

.tournament-poster-body {
    padding: 16px !important;
}

.tournament-poster-body > strong {
    font-size: 21px !important;
}

@media (min-width: 1280px) {
    .tournament-poster-grid {
        grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)) !important;
    }
}

@media (max-width: 680px) {
    .tournament-poster-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .tournament-poster-card {
        grid-template-columns: 138px minmax(0, 1fr) !important;
    }

    .tournament-poster-media {
        min-height: 190px !important;
        aspect-ratio: auto !important;
    }
}
/* Final profile menu icon override - keep last. */
.profile-toggle {
    grid-column: 3 !important;
    justify-self: end !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: auto !important;
    min-width: 84px !important;
    height: 44px !important;
    padding: 0 12px !important;
    border: 1px solid rgba(179, 197, 34, 0.88) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #193b2a !important;
    box-shadow: 0 6px 20px rgba(23, 45, 60, 0.08) !important;
    cursor: pointer !important;
}

.profile-toggle span,
.profile-toggle span::before,
.profile-toggle span::after {
    display: none !important;
    content: none !important;
}

.profile-toggle svg {
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.profile-toggle em {
    display: block !important;
    color: currentColor !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.profile-toggle.active,
.profile-open .profile-toggle {
    border-color: #c8d832 !important;
    background: #f2f8d2 !important;
    color: #193b2a !important;
}

/* Final placement guard for ATP-style player profile. */
.player-atp-legacy-stats {
    display: none !important;
}

.player-atp-hero {
    margin-bottom: 18px !important;
}

.home-news-panel {
    margin-top: 18px;
}

.news-panel-actions,
.news-card-actions,
.news-admin-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.news-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}

.home-news-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-card {
    display: grid;
    overflow: hidden;
    border: 1px solid rgba(217, 231, 239, 0.9);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 30px rgba(13, 53, 87, 0.07);
}

.news-card.is-draft {
    border-style: dashed;
}

.news-card-media {
    display: grid;
    place-items: center;
    min-height: 150px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #edf8ff;
    color: var(--blue-deep);
    font-weight: 900;
}

.news-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-card-body {
    display: grid;
    gap: 8px;
    padding: 14px;
}

.news-card-body time,
.news-status {
    justify-self: start;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.news-status {
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff6d6;
    color: #7a5b00;
}

.news-card-body h3 {
    margin: 0;
    color: var(--blue-deep);
    font-size: 19px;
    line-height: 1.2;
}

.news-card-body h3 a {
    color: inherit;
}

.news-card-body p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}

.news-detail-panel {
    display: grid;
    gap: 18px;
    max-width: 920px;
}

.news-detail-media {
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid rgba(217, 231, 239, 0.9);
}

.news-detail-media img {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: cover;
}

.news-detail-summary {
    margin: 0;
    color: var(--blue-deep);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.55;
}

.news-detail-body {
    color: var(--text);
    font-size: 15px;
    line-height: 1.75;
}

.form-full-field {
    display: grid;
    gap: 7px;
    margin-top: 16px;
}

@media (max-width: 980px) {
    .home-news-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .news-panel-actions,
    .news-panel-actions .btn,
    .news-admin-actions,
    .news-admin-actions form,
    .news-admin-actions .btn {
        width: 100%;
    }

    .news-card-grid {
        grid-template-columns: 1fr;
    }
}

/* Rich news editor and article layout. */
.news-rich-field > span {
    display: block;
    margin-bottom: 8px;
    font-weight: 800;
    color: var(--ink);
}

.news-editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px 8px 0 0;
    background: rgba(255, 255, 255, 0.8);
}

.news-editor-toolbar button {
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.news-editor-toolbar button:hover {
    border-color: var(--accent);
    color: var(--accent-dark);
}

.news-rich-editor {
    min-height: 320px;
    padding: 18px;
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: #fff;
    outline: none;
    overflow-wrap: anywhere;
}

.news-rich-editor:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(163, 230, 53, 0.2);
}

.news-article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 22px;
    align-items: start;
}

.news-article-card {
    padding: 24px;
}

.news-detail-media {
    margin-bottom: 24px;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: #fff;
}

.news-detail-media img {
    display: block;
    width: 100%;
    height: auto;
}

.news-detail-summary {
    margin: 0 0 22px;
    padding: 16px 18px;
    border-left: 4px solid var(--accent);
    background: rgba(237, 252, 204, 0.65);
    color: var(--ink);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.6;
}

.article-content {
    color: var(--ink);
    font-size: 1rem;
    line-height: 1.75;
}

.article-content h2,
.article-content h3,
.article-content h4 {
    margin: 1.6em 0 0.55em;
    color: var(--ink);
    line-height: 1.2;
}

.article-content h2 {
    font-size: 1.55rem;
}

.article-content h3 {
    font-size: 1.25rem;
}

.article-content p,
.article-content ul,
.article-content ol,
.article-content blockquote {
    margin: 0 0 1.05em;
}

.article-content ul,
.article-content ol {
    padding-left: 1.4em;
}

.article-content blockquote {
    padding: 14px 18px;
    border-left: 4px solid var(--accent-dark);
    background: rgba(222, 239, 248, 0.7);
    border-radius: 0 8px 8px 0;
    font-weight: 700;
}

.article-content a {
    color: var(--accent-dark);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.news-latest-panel {
    position: sticky;
    top: 18px;
    padding: 18px;
}

.news-latest-list {
    display: grid;
    gap: 12px;
}

.news-latest-item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--ink);
    text-decoration: none;
}

.news-latest-item:hover {
    border-color: var(--accent);
    transform: translateY(-1px);
}

.news-latest-item img {
    width: 72px;
    height: 58px;
    border-radius: 7px;
    object-fit: cover;
}

.news-latest-item strong {
    display: block;
    margin-bottom: 4px;
    line-height: 1.25;
}

.news-latest-item small {
    color: var(--muted);
    font-weight: 700;
}

.compact-title-row {
    gap: 12px;
    margin-bottom: 14px;
}

@media (max-width: 980px) {
    .news-article-layout {
        grid-template-columns: 1fr;
    }

    .news-latest-panel {
        position: static;
    }
}
/* Player records page. */
.records-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.record-card {
    padding: 18px;
}

.record-card-heading {
    margin-bottom: 14px;
}

.record-card-heading h2 {
    margin: 2px 0 5px;
    font-size: 1.15rem;
}

.record-card-heading p {
    margin: 0;
    color: var(--muted);
    font-weight: 700;
    line-height: 1.45;
}

.record-list {
    display: grid;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.record-list a {
    display: grid;
    grid-template-columns: 34px 42px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 58px;
    padding: 9px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--ink);
    text-decoration: none;
}

.record-list a:hover {
    border-color: var(--accent);
    transform: translateY(-1px);
}

.record-rank,
.record-player-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-weight: 900;
}

.record-rank {
    width: 30px;
    height: 30px;
    background: rgba(222, 239, 248, 0.9);
    color: var(--ink);
}

.record-player-avatar {
    width: 42px;
    height: 42px;
    overflow: hidden;
    background: rgba(163, 230, 53, 0.18);
    color: var(--accent-dark);
    border: 1px solid rgba(20, 184, 166, 0.18);
}

.record-player-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.record-player-name {
    min-width: 0;
}

.record-player-name strong,
.record-player-name small,
.record-value strong,
.record-value small {
    display: block;
}

.record-player-name strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-player-name small,
.record-value small {
    color: var(--muted);
    font-size: 0.75rem;
    font-weight: 800;
}

.record-value {
    min-width: 78px;
    padding-left: 10px;
    border-left: 1px solid var(--line);
    text-align: right;
}

.record-value strong {
    color: var(--accent-dark);
    font-size: 1.05rem;
}

@media (max-width: 980px) {
    .records-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .record-list a {
        grid-template-columns: 30px 38px minmax(0, 1fr);
    }

    .record-value {
        grid-column: 3;
        padding-left: 0;
        border-left: 0;
        text-align: left;
    }
}

/* Home gallery albums. */
.home-gallery-albums-panel {
    margin-top: 18px;
}

.home-gallery-album-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.home-gallery-album {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(9, 45, 74, 0.06);
}

.home-gallery-preview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: 280px;
    gap: 2px;
    overflow: hidden;
    background: #eaf5fb;
}

.home-gallery-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.home-gallery-preview:has(img:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-gallery-preview img:first-child {
    grid-row: auto;
}

.home-gallery-preview img.is-single {
    grid-column: 1 / -1;
    grid-row: 1 / -1;
}

.home-gallery-album-body {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
}

.home-gallery-album h3 {
    margin: 0 0 6px;
    font-size: 18px;
}

.home-gallery-album h3 a {
    color: var(--blue);
    text-decoration: none;
}

.home-gallery-album p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.home-gallery-album small {
    flex: 0 0 auto;
    border-radius: 999px;
    background: #e7fff5;
    color: var(--green);
    font-weight: 800;
    padding: 7px 9px;
    white-space: nowrap;
}

@media (max-width: 680px) {
    .home-gallery-preview {
        grid-template-rows: 240px;
    }
}

@media (max-width: 980px) {
    .home-gallery-album-grid {
        grid-template-columns: 1fr;
    }
}

/* Home records tabs. */
.home-records-panel {
    margin-top: 18px;
}

.home-record-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
    overflow-x: auto;
    padding: 6px 2px 10px;
}

.home-record-tab {
    flex: 0 0 auto;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    color: var(--green-dark);
    cursor: pointer;
    font: inherit;
    font-weight: 900;
    padding: 10px 13px;
    white-space: nowrap;
}

.home-record-tab:hover,
.home-record-tab.active {
    border-color: #b8dc1f;
    background: var(--green-soft);
    color: var(--green);
}

.home-record-panel[hidden] {
    display: none;
}

.home-record-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-record-list a {
    display: grid;
    grid-template-columns: 34px 42px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 58px;
    padding: 9px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
}

.home-record-list a:hover {
    border-color: var(--green);
    box-shadow: 0 12px 24px rgba(22, 90, 140, 0.08);
}

.home-record-place,
.home-record-avatar {
    display: grid;
    place-items: center;
    border-radius: 999px;
    font-weight: 900;
}

.home-record-place {
    width: 28px;
    height: 28px;
    background: #e8f4ff;
    color: var(--blue);
}

.home-record-avatar {
    overflow: hidden;
    width: 38px;
    height: 38px;
    background: #e7fff5;
    color: var(--green);
    font-size: 13px;
}

.home-record-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-record-name {
    min-width: 0;
}

.home-record-name strong {
    display: block;
    overflow: hidden;
    color: var(--blue-deep);
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-record-name small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}

.home-record-value {
    display: grid;
    justify-items: end;
    min-width: 64px;
}

.home-record-value strong {
    color: var(--green);
    font-size: 18px;
    line-height: 1;
}

.home-record-value small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}

@media (max-width: 980px) {
    .home-record-list {
        grid-template-columns: 1fr;
    }
}

/* Home tournament calendar. */
.home-calendar-panel,
.tournament-calendar-page,
.admin-quick-entry-panel {
    margin-bottom: 18px;
}

.calendar-month-grid {
    display: grid;
    gap: 14px;
}

.compact-calendar-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.full-calendar-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.calendar-month-card {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #ffffff;
    padding: 12px;
}

.calendar-month-card h3 {
    margin: 0 0 10px;
    color: var(--blue-deep);
    font-size: 16px;
}

.calendar-weekdays,
.calendar-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
}

.calendar-weekdays {
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

.calendar-day {
    min-height: 78px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow: hidden;
    border: 1px solid #e5edf4;
    border-radius: 6px;
    background: #f8fbfd;
    padding: 5px;
}

.calendar-day.muted {
    opacity: 0.45;
}

.calendar-day.today {
    border-color: var(--green);
    box-shadow: inset 0 0 0 1px rgba(15, 127, 104, 0.18);
}

.calendar-day.has-events {
    background: #eef8f4;
}

.calendar-day-number {
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 900;
}

.calendar-event {
    display: block;
    overflow: hidden;
    border-radius: 5px;
    background: var(--green);
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    padding: 3px 5px;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-event:hover {
    background: var(--blue-deep);
}

.calendar-day small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
}

.admin-quick-entry-form .form-grid.three {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(120px, 0.5fr);
}

.gallery-bulk-tag-form {
    display: grid;
    gap: 12px;
}

.gallery-bulk-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid #d7e8df;
    border-radius: 8px;
    background: #f4fbf8;
    padding: 10px 12px;
}

.gallery-bulk-actions span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.gallery-tag-chips {
    display: flex;
    min-height: 34px;
    flex-wrap: wrap;
    gap: 6px;
}

.gallery-tag-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    gap: 5px;
    border-radius: 999px;
    background: #e8f4ff;
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 800;
    padding: 5px 8px;
}

.gallery-tag-chip button {
    width: 18px;
    min-width: 18px;
    height: 18px;
    min-height: 18px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: rgba(13, 53, 87, 0.12);
    color: var(--blue-deep);
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 0;
}

@media (max-width: 980px) {
    .compact-calendar-grid,
    .full-calendar-grid,
    .admin-quick-entry-form .form-grid.three {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .calendar-month-card {
        padding: 10px;
    }

    .calendar-day {
        min-height: 58px;
        padding: 4px;
    }

    .calendar-event {
        font-size: 9px;
        padding: 2px 4px;
    }

    .gallery-bulk-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Tournament format admin workspace */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.format-admin-workspace {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.is-public .format-admin-workspace {
    grid-template-columns: minmax(0, 1fr);
}

.format-stage-rail {
    position: sticky;
    top: 154px;
    display: grid;
    gap: 2px;
    padding: 8px 0;
}

.format-stage-rail a {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    min-height: 68px;
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--ink);
    text-decoration: none;
}

.format-stage-rail a::after {
    content: "";
    position: absolute;
    left: 30px;
    top: 52px;
    width: 1px;
    height: 30px;
    background: var(--line);
}

.format-stage-rail a:last-child::after {
    display: none;
}

.format-stage-rail a:hover,
.format-stage-rail a:focus-visible {
    background: rgba(232, 251, 244, 0.72);
    outline: none;
}

.format-stage-rail a.is-active {
    background: #e7f8f1;
    color: #0a6f5a;
}

.format-stage-number {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid #cad8e2;
    border-radius: 999px;
    background: #eef4f8;
    color: #697b8e;
    font-size: 13px;
    font-weight: 900;
}

.format-stage-rail a.is-active .format-stage-number,
.format-stage-rail a.is-complete .format-stage-number {
    border-color: var(--green);
    background: var(--green);
    color: #ffffff;
}

.format-stage-rail a.is-upcoming {
    color: #718296;
}

.format-stage-rail strong,
.format-stage-rail small {
    display: block;
}

.format-stage-rail strong {
    font-size: 14px;
}

.format-stage-rail small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.format-stage-rail a.is-active small {
    color: var(--green);
}

.format-workspace-surface {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(217, 231, 239, 0.94);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--shadow);
}

.format-workspace-header,
.format-workspace-toolbar,
.format-block-heading,
.format-workspace-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.format-workspace-header {
    padding: 24px 24px 18px;
}

.format-workspace-header h2,
.format-block-heading h3 {
    margin: 0;
    color: var(--blue-deep);
}

.format-workspace-header h2 {
    font-size: 28px;
}

.format-workspace-header p,
.format-block-heading p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.format-remaining-count {
    color: #b56b05;
    font-size: 14px;
    white-space: nowrap;
}

.format-remaining-count.is-ready {
    color: var(--green);
}

.format-workspace-toolbar {
    justify-content: flex-start;
    padding: 0 24px 18px;
}

.format-admin-tools {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 24px 16px;
    padding: 10px 12px;
    border: 1px solid #d8e5ec;
    border-radius: 8px;
    background: #f7fbfd;
}

.format-admin-tools strong {
    margin-right: 2px;
    color: var(--blue-deep);
    font-size: 12px;
}

.format-admin-tools a {
    padding: 6px 9px;
    border-radius: 6px;
    background: #ffffff;
    color: var(--green);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.format-admin-tools a:hover,
.format-admin-tools a:focus-visible {
    background: var(--green-soft);
    outline: none;
}

.format-admin-tools small {
    margin-left: auto;
    color: var(--muted);
    font-size: 11px;
}

.format-group-picker {
    display: grid;
    grid-template-columns: auto minmax(190px, 260px);
    gap: 10px;
    align-items: center;
}

.format-group-picker label {
    color: var(--blue-deep);
    font-size: 13px;
    font-weight: 900;
}

.format-group-picker select {
    min-height: 40px;
    background: #ffffff;
    font-weight: 800;
}

.format-section-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(120px, 1fr));
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #eff5f8;
}

.format-section-switch a {
    display: grid;
    place-items: center;
    min-height: 40px;
    padding: 8px 18px;
    color: #4e6175;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.format-section-switch a:hover,
.format-section-switch a:focus-visible,
.format-section-switch a.active {
    background: var(--green);
    color: #ffffff;
    outline: none;
}

.format-workspace-block {
    scroll-margin-top: 150px;
    padding: 0 24px 22px;
}

.format-workspace-block + .format-workspace-block {
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.format-block-heading {
    align-items: flex-start;
    margin-bottom: 12px;
}

.format-block-heading h3 {
    font-size: 18px;
}

.format-workspace-table-wrap {
    overflow-x: auto;
    border-radius: 8px;
    box-shadow: none;
}

.format-workspace-matches-table {
    min-width: 1080px;
}

.format-workspace-standings-table {
    min-width: 760px;
}

.format-workspace-matches-table th,
.format-workspace-matches-table td,
.format-workspace-standings-table th,
.format-workspace-standings-table td {
    padding: 10px 12px;
}

.format-workspace-matches-table tr.is-editable {
    background: #f8fffc;
}

.format-workspace-matches-table tr.is-editable td:first-child {
    box-shadow: inset 3px 0 0 var(--green);
}

.workspace-match-time strong,
.workspace-match-time small {
    display: block;
    white-space: nowrap;
}

.workspace-match-time strong {
    color: var(--blue-deep);
    font-size: 12px;
}

.workspace-match-time small {
    margin-top: 3px;
}

.workspace-team-name {
    display: block;
    max-width: 220px;
    color: var(--blue-deep);
    font-size: 13px;
    line-height: 1.35;
}

.workspace-score-summary {
    color: var(--blue-deep);
    white-space: nowrap;
}

.workspace-set-inputs {
    display: flex;
    align-items: end;
    gap: 8px;
}

.workspace-set-pair {
    display: grid;
    grid-template-columns: 38px 8px 38px;
    gap: 4px;
    align-items: center;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.workspace-set-pair legend {
    grid-column: 1 / -1;
    width: 100%;
    margin-bottom: 3px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
}

.workspace-set-pair label {
    position: relative;
}

.workspace-set-pair input {
    width: 38px;
    min-height: 36px;
    padding: 5px 3px;
    background: #ffffff;
    text-align: center;
}

.workspace-set-pair > span {
    color: var(--muted);
    text-align: center;
}

.workspace-inline-result-form {
    display: flex;
    align-items: center;
    gap: 6px;
}

.workspace-row-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    white-space: nowrap;
}

.workspace-row-actions form {
    margin: 0;
}

.workspace-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 9px;
    border-radius: 7px;
    background: #eef3f7;
    color: #66768a;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.workspace-status.is-complete {
    background: #e8f8e6;
    color: #3f7d32;
}

.workspace-status.is-editing {
    background: #fff3d6;
    color: #9a6200;
}

.manual-order-note {
    color: #9a6200 !important;
    font-weight: 800;
}

.tie-override {
    width: min(380px, 100%);
}

.tie-override summary {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7fbfd;
    color: var(--blue-deep);
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    list-style: none;
}

.tie-override summary::-webkit-details-marker {
    display: none;
}

.tie-override[open] summary {
    border-color: var(--green);
    background: var(--green-soft);
    color: var(--green);
}

.tie-override form {
    display: grid;
    gap: 9px;
    margin-top: 9px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.tie-override form p {
    margin: 0 0 2px;
    color: var(--muted);
    font-size: 12px;
}

.tie-override form label {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 64px;
    gap: 8px;
    align-items: center;
}

.tie-override form label span {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tie-override form input {
    min-height: 36px;
    padding: 6px 8px;
}

.tie-override-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.format-workspace-footer {
    padding: 18px 24px;
    border-top: 1px solid var(--line);
    background: #f8fbfd;
}

.format-workspace-footer > span:first-child {
    color: var(--blue-deep);
    font-size: 13px;
    font-weight: 900;
}

.btn.is-disabled {
    border-color: #dce6ec;
    background: #e8eef2;
    color: #8b99a8;
    box-shadow: none;
    cursor: not-allowed;
    pointer-events: none;
}

@media (max-width: 1100px) {
    .format-admin-workspace {
        grid-template-columns: 1fr;
    }

    .format-stage-rail {
        position: static;
        grid-template-columns: repeat(4, minmax(150px, 1fr));
        overflow-x: auto;
        padding: 0 0 6px;
    }

    .format-stage-rail a::after {
        display: none;
    }
}

@media (max-width: 760px) {
    .format-admin-workspace {
        width: 100%;
        min-width: 0;
        overflow-x: hidden;
    }

    .format-stage-rail {
        grid-template-columns: repeat(4, minmax(132px, 1fr));
        max-width: 100%;
    }

    .format-workspace-surface {
        max-width: 100%;
    }

    .format-stage-rail a {
        grid-template-columns: 30px minmax(0, 1fr);
        min-height: 58px;
        padding: 8px;
    }

    .format-stage-number {
        width: 28px;
        height: 28px;
    }

    .format-workspace-header,
    .format-workspace-toolbar,
    .format-block-heading,
    .format-workspace-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .format-workspace-header,
    .format-workspace-toolbar,
    .format-workspace-block,
    .format-workspace-footer {
        padding-left: 14px;
        padding-right: 14px;
    }

    .format-admin-tools {
        align-items: stretch;
        flex-wrap: wrap;
        margin-right: 14px;
        margin-left: 14px;
    }

    .format-admin-tools strong,
    .format-admin-tools small {
        flex-basis: 100%;
    }

    .format-admin-tools small {
        margin-left: 0;
    }

    .format-remaining-count {
        white-space: normal;
    }

    .format-group-picker,
    .format-section-switch {
        width: 100%;
    }

    .format-group-picker {
        grid-template-columns: 1fr;
    }

    .format-section-switch {
        grid-template-columns: repeat(2, 1fr);
    }

    .tie-override {
        width: 100%;
    }

    .format-workspace-footer .btn,
    .format-workspace-footer .btn.is-disabled {
        width: 100%;
    }
}

/* Simplified tournament profile: compact facts and one clear format directory. */
@media (min-width: 1101px) {
    .tournament-profile-page .sidebar {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 38px !important;
        min-height: 106px !important;
        padding: 8px 40px !important;
        background: #ffffff !important;
        box-shadow: 0 14px 34px rgba(13, 53, 87, 0.08) !important;
    }

    .tournament-profile-page .sidebar::before {
        display: none !important;
    }

    .tournament-profile-page .sidebar-top {
        flex: 0 0 auto !important;
        display: block !important;
        width: auto !important;
        min-height: 0 !important;
    }

    .tournament-profile-page .mobile-header-actions,
    .tournament-profile-page .menu-toggle,
    .tournament-profile-page .profile-toggle {
        display: none !important;
    }

    .tournament-profile-page .brand {
        display: block !important;
    }

    .tournament-profile-page .brand img {
        width: 88px !important;
        height: 88px !important;
    }

    .tournament-profile-page .sidebar nav {
        flex: 1 1 auto !important;
        justify-content: center !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
    }

    .tournament-profile-page .sidebar nav a:not(.nav-profile-link) {
        padding-right: 13px !important;
        padding-left: 13px !important;
    }

    .tournament-profile-page .main {
        padding-top: 16px;
    }
}

.tournament-profile-hero {
    display: grid;
    gap: 16px;
    margin-bottom: 18px;
    padding: 22px 36px;
    overflow: hidden;
    border: 1px solid rgba(205, 224, 236, 0.92);
    border-radius: 14px;
    background: #f7fbfe;
    box-shadow: 0 16px 38px rgba(34, 76, 108, 0.08);
}

.tournament-profile-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.tournament-profile-heading h1 {
    max-width: 900px;
    font-size: clamp(34px, 3.6vw, 50px);
    line-height: 1.04;
}

.tournament-primary-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.tournament-profile-meta {
    display: grid;
    grid-template-columns: minmax(250px, 1.5fr) repeat(3, minmax(140px, 0.75fr));
    max-width: 980px;
    border-top: 1px solid rgba(205, 224, 236, 0.92);
}

.tournament-meta-item {
    display: grid;
    align-content: center;
    gap: 5px;
    min-width: 0;
    min-height: 58px;
    padding: 10px 20px;
    border-right: 1px solid rgba(205, 224, 236, 0.92);
}

.tournament-meta-item:first-child {
    padding-left: 0;
}

.tournament-meta-item:last-child {
    border-right: 0;
}

.tournament-meta-item span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.tournament-meta-item strong {
    color: var(--blue-deep);
    font-size: 17px;
    font-weight: 900;
    line-height: 1.2;
}

.tournament-meta-badge {
    display: inline-flex;
    width: fit-content;
    padding: 6px 11px;
    border-radius: 999px;
    background: #eaf1f6;
    color: var(--blue-deep);
    font-style: normal;
    font-size: 13px;
    line-height: 1;
}

.tournament-admin-actions {
    margin: -6px 0 18px;
}

.tournament-format-hub {
    margin-bottom: 18px;
    padding: 24px 36px 26px;
    border-radius: 14px;
    background: #fbfdff;
}

.tournament-format-hub-heading {
    margin-bottom: 16px;
}

.tournament-format-hub-heading h2 {
    color: var(--blue-deep);
    font-size: 27px;
}

.tournament-format-hub-heading p {
    font-size: 14px;
}

.tournament-format-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.tournament-format-tile {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(198, 219, 232, 0.96);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(35, 81, 114, 0.05);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.tournament-format-tile:hover {
    border-color: rgba(15, 127, 104, 0.48);
    box-shadow: 0 16px 34px rgba(35, 81, 114, 0.1);
    transform: translateY(-2px);
}

.tournament-format-tile-link {
    display: grid;
    gap: 10px;
    height: 100%;
    padding: 16px;
    color: var(--ink);
    text-decoration: none;
}

.tournament-format-tile-link:focus-visible {
    outline: 3px solid rgba(15, 127, 104, 0.32);
    outline-offset: -3px;
}

.tournament-format-tile-topline,
.tournament-format-tile-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.tournament-format-tile-topline > span {
    color: var(--green);
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.tournament-format-tile-topline > b {
    flex: 0 0 auto;
    padding: 7px 12px;
    border-radius: 999px;
    background: #edf3f7;
    color: var(--blue-deep);
    font-size: 13px;
}

.tournament-format-name {
    min-height: 28px;
    color: var(--blue-deep);
    font-size: clamp(20px, 1.7vw, 23px);
    line-height: 1.2;
}

.tournament-format-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.tournament-format-metrics > span {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 8px 11px;
    border: 1px solid #e2edf4;
    border-radius: 9px;
    background: #fbfdff;
}

.tournament-format-metrics small,
.tournament-format-tile-footer small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}

.tournament-format-metrics b {
    color: var(--blue-deep);
    font-size: 20px;
    line-height: 1;
}

.tournament-format-tile-footer {
    align-self: end;
}

.tournament-format-tile-footer > span:first-child {
    display: grid;
    gap: 2px;
}

.tournament-format-tile-footer > span:first-child b {
    color: var(--blue-deep);
    font-size: 15px;
}

.tournament-format-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 178px;
    min-height: 38px;
    padding: 7px 16px;
    border-radius: 8px;
    background: var(--green);
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
    box-shadow: 0 8px 18px rgba(15, 127, 104, 0.18);
}

.tournament-format-open span {
    font-size: 23px;
    font-weight: 500;
    line-height: 0;
}

.tournament-stage-strip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 15px;
    align-items: center;
    margin-top: 16px;
    padding: 14px 18px;
    border: 1px solid #dce9f1;
    border-radius: 10px;
    background: #ffffff;
}

.tournament-stage-mark {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #eaf1f6;
    color: #5b7891;
    font-size: 16px;
    font-weight: 1000;
}

.tournament-stage-strip strong {
    display: block;
    color: var(--blue-deep);
    font-size: 15px;
}

.tournament-stage-strip p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.tournament-stage-strip time {
    color: #4f6f8a;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}

.tournament-format-management {
    margin-bottom: 18px;
}

.tournament-structure-panel {
    content-visibility: auto;
    contain-intrinsic-size: 900px;
}

@media (max-width: 900px) {
    .tournament-profile-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tournament-meta-item,
    .tournament-meta-item:first-child {
        padding: 13px 16px;
        border-right: 1px solid rgba(205, 224, 236, 0.92);
        border-bottom: 1px solid rgba(205, 224, 236, 0.92);
    }

    .tournament-meta-item:nth-child(2n) {
        border-right: 0;
    }

    .tournament-meta-item:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    .tournament-format-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .tournament-profile-hero,
    .tournament-format-hub {
        padding: 18px 14px;
        border-radius: 10px;
    }

    .tournament-profile-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 16px;
    }

    .tournament-profile-heading h1 {
        font-size: 32px;
    }

    .tournament-primary-actions,
    .tournament-primary-actions .btn {
        width: 100%;
    }

    .tournament-profile-meta {
        grid-template-columns: 1fr 1fr;
    }

    .tournament-meta-item,
    .tournament-meta-item:first-child {
        min-height: 62px;
        padding: 10px;
    }

    .tournament-meta-dates {
        grid-column: 1 / -1;
        border-right: 0;
    }

    .tournament-meta-item:nth-child(2) {
        border-right: 1px solid rgba(205, 224, 236, 0.92);
        border-bottom: 0;
    }

    .tournament-meta-item:nth-child(3) {
        border-bottom: 0;
    }

    .tournament-meta-item:last-child {
        grid-column: 1 / -1;
        border-top: 1px solid rgba(205, 224, 236, 0.92);
    }

    .tournament-admin-actions,
    .tournament-admin-actions form,
    .tournament-admin-actions .btn {
        width: 100%;
    }

    .tournament-format-hub-heading {
        align-items: stretch;
    }

    .tournament-format-hub-heading h2 {
        font-size: 25px;
    }

    .tournament-format-tile-link {
        gap: 12px;
        padding: 15px;
    }

    .tournament-format-name {
        min-height: 0;
        font-size: 21px;
    }

    .tournament-format-metrics {
        gap: 6px;
    }

    .tournament-format-metrics > span {
        padding: 9px 7px;
    }

    .tournament-format-metrics small {
        font-size: 10px;
    }

    .tournament-format-metrics b {
        font-size: 19px;
    }

    .tournament-format-tile-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .tournament-format-open {
        width: 100%;
        min-width: 0;
        min-height: 44px;
    }

    .tournament-stage-strip {
        grid-template-columns: auto minmax(0, 1fr);
        padding: 14px;
    }

    .tournament-stage-strip time {
        grid-column: 2;
        white-space: normal;
    }
}
