@import url('../shared/design-system.css');

.tt-public-registration {
    max-width: 920px;
    margin: 0 auto;
}

.tt-public-reference-search {
    display: grid;
    gap: 12px;
    margin-bottom: 22px;
    padding: 16px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
}

.tt-public-reference-search h3,
.tt-public-reference-search p {
    margin: 0;
}

.tt-public-reference-search label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 700;
}

.tt-public-reference-search input {
    width: 100%;
}

.tt-public-reference-search button,
.tt-public-reference-card button {
    min-height: 42px;
    padding: 0 16px;
    border: 0;
    border-radius: 6px;
    background: #2271b1;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.tt-public-reference-results {
    display: grid;
    gap: 8px;
}

.tt-public-reference-card {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 10px;
    border: 1px solid #dcdcde;
    border-radius: 6px;
    background: #f6f7f7;
}

.tt-public-reference-card span {
    display: block;
    color: #50575e;
}

.tt-public-muted {
    color: #646970;
}

.tt-public-empty {
    padding: 14px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #f6f7f7;
}

.tt-public-global-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 22px;
}

.tt-public-global-pagination a,
.tt-public-global-pagination span {
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid var(--tt-border, #d7e0ea);
    border-radius: 6px;
    background: #fff;
    color: var(--tt-ink, #172033);
    font-weight: 700;
    text-decoration: none;
}

.tt-public-global-pagination a:hover,
.tt-public-global-pagination a:focus-visible {
    border-color: var(--tt-primary, #164b7a);
    color: var(--tt-primary, #164b7a);
}

.tt-public-module-head {
    margin-bottom: 16px;
}

.tt-reference-profile-module {
    max-width: 1180px;
    margin: 0 auto;
}

.tt-reference-profile-search {
    grid-template-columns: minmax(180px, 240px) minmax(220px, 1fr) auto;
    align-items: end;
}

.tt-reference-profile-search select,
.tt-reference-profile-search input {
    min-height: 42px;
    border: 1px solid var(--tt-border, #dcdcde);
    border-radius: 6px;
}

.tt-reference-profile-list {
    display: grid;
    gap: 10px;
}

.tt-reference-profile-list-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--tt-border, #dcdcde);
    border-radius: var(--tt-radius, 8px);
    background: var(--tt-card-bg, #fff);
}

.tt-reference-profile-list-card strong,
.tt-reference-profile-list-card span {
    display: block;
}

.tt-reference-profile-list-card span {
    margin-top: 4px;
    color: var(--tt-muted, #646970);
}

.tt-reference-profile-link {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 6px;
    background: var(--tt-primary-blue, #143c74);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.tt-reference-profile {
    display: grid;
    gap: 16px;
}

.tt-reference-profile-head {
    padding: 22px;
    border-radius: var(--tt-radius, 8px);
    background: linear-gradient(135deg, var(--tt-primary-blue, #143c74), #062544);
    color: #fff;
}

.tt-reference-profile-head h3,
.tt-reference-profile-head p {
    margin: 4px 0 0;
}

.tt-reference-profile-head small {
    display: block;
    margin-top: 10px;
    color: var(--tt-secondary-blue, #bdeaff);
}

.tt-reference-profile-type {
    display: inline-flex;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.tt-reference-profile-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.tt-reference-profile-card {
    padding: 16px;
    border: 1px solid var(--tt-border, #dcdcde);
    border-radius: var(--tt-radius, 8px);
    background: var(--tt-card-bg, #fff);
}

.tt-reference-profile-wide {
    grid-column: 1 / -1;
}

.tt-reference-profile-card h4 {
    margin: 0 0 12px;
    color: var(--tt-primary-blue, #143c74);
}

.tt-reference-profile-card dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.tt-reference-profile-card dl div {
    display: grid;
    grid-template-columns: minmax(120px, 42%) minmax(0, 1fr);
    gap: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(20, 60, 116, 0.12);
}

.tt-reference-profile-card dt {
    color: var(--tt-muted, #646970);
    font-weight: 700;
}

.tt-reference-profile-card dd {
    margin: 0;
    font-weight: 700;
}

.tt-reference-profile-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.tt-reference-profile-table {
    width: 100%;
    border-collapse: collapse;
}

.tt-reference-profile-table th,
.tt-reference-profile-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--tt-border, #dcdcde);
    text-align: left;
    vertical-align: top;
}

.tt-reference-profile-table th {
    background: #f6f7f7;
    color: var(--tt-primary-blue, #143c74);
}

.tt-reference-raw details {
    margin-top: 8px;
    border: 1px solid var(--tt-border, #dcdcde);
    border-radius: 6px;
    background: #fff;
}

.tt-reference-raw summary {
    padding: 10px 12px;
    cursor: pointer;
    font-weight: 800;
}

@media (max-width: 720px) {
    .tt-reference-profile-search,
    .tt-reference-profile-card dl div,
    .tt-reference-profile-list-card {
        grid-template-columns: 1fr;
    }

    .tt-reference-profile-list-card {
        align-items: stretch;
    }
}

.tt-public-module-head h2,
.tt-public-module-head p {
    margin: 0 0 8px;
}

.tt-public-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

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

.tt-public-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 700;
}

.tt-public-form input,
.tt-public-form select,
.tt-public-form textarea {
    width: 100%;
}

.tt-public-checkbox {
    flex-direction: row !important;
    align-items: flex-start;
}

.tt-public-checkbox input {
    width: auto;
    margin-top: 4px;
}

.tt-public-form button {
    min-height: 44px;
    align-self: flex-start;
    padding: 0 18px;
    border: 0;
    border-radius: 6px;
    background: #1d2327;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.tt-public-notice {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 6px;
    font-weight: 700;
}

.tt-public-notice-success {
    background: #d1e7dd;
    color: #0a3622;
}

.tt-public-notice-error {
    background: #f8d7da;
    color: #58151c;
}

.tt-public-teams {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

.tt-public-team,
.tt-public-team-detail {
    padding: 16px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
}

.tt-public-team h3,
.tt-public-team-detail h2 {
    margin-top: 0;
}

.tt-public-team ul {
    margin: 12px 0 0;
    padding-left: 20px;
}

.tt-public-team small {
    display: block;
    color: #646970;
}

.tt-public-team-detail table {
    width: 100%;
    border-collapse: collapse;
}

.tt-public-team-detail th,
.tt-public-team-detail td {
    padding: 8px;
    border-bottom: 1px solid #dcdcde;
    text-align: left;
}

.tt-public-player-module,
.tt-public-team-registration {
    max-width: 980px;
    margin: 0 auto;
}

.tt-public-player-search {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(180px, 240px) minmax(180px, 240px) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 18px;
    padding: 16px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
}

.tt-public-player-search label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 700;
}

.tt-public-player-search input,
.tt-public-player-search select {
    width: 100%;
    min-height: 40px;
}

.tt-public-player-search button {
    min-height: 42px;
    padding: 0 18px;
    border: 0;
    border-radius: 6px;
    background: #2271b1;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.tt-public-player-results {
    display: grid;
    gap: 16px;
}

.tt-public-player-card {
    padding: 16px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
}

.tt-public-player-identity {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 12px;
}

.tt-public-player-identity h3,
.tt-public-player-identity p {
    margin: 0 0 6px;
}

.tt-public-status {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 2px 10px;
    border-radius: 999px;
    background: #edf6ff;
    color: #0a4b78;
    font-weight: 700;
    white-space: nowrap;
}

.tt-public-registration-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 14px;
}

.tt-public-registration-list span {
    padding: 5px 9px;
    border-radius: 999px;
    background: #f0f0f1;
}

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

.tt-public-match-box {
    padding: 12px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #f6f7f7;
}

.tt-public-match-box-play {
    border-left: 4px solid #2271b1;
}

.tt-public-match-box-referee {
    border-left: 4px solid #8a6d3b;
}

.tt-public-match-box p {
    margin: 6px 0 0;
}

.tt-public-match-box p:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tt-public-match-box p:last-child span {
    padding: 3px 8px;
    border-radius: 999px;
    background: #fff;
}

.tt-public-opponent {
    font-size: 1.1rem;
    font-weight: 700;
}

.tt-public-timeline {
    display: grid;
    gap: 8px;
}

.tt-public-timeline-item {
    display: grid;
    gap: 3px;
    padding: 10px;
    border: 1px solid #dcdcde;
    border-radius: 6px;
    background: #f6f7f7;
}

.tt-public-timeline-item span {
    color: #646970;
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
}

.tt-public-timeline-item small {
    color: #50575e;
}

.tt-public-team-players {
    display: grid;
    gap: 12px;
}

.tt-public-team-player {
    margin: 0;
    padding: 12px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #f6f7f7;
}

.tt-public-team-player legend {
    padding: 0 6px;
    font-weight: 700;
}

.tt-public-tournament-calendar,
.tt-public-tournament-list {
    max-width: 1120px;
    margin: 0 auto;
}

.tt-public-calendar-months,
.tt-public-tournament-cards {
    display: grid;
    gap: 18px;
}

.tt-public-calendar-month h3 {
    margin: 0 0 10px;
}

.tt-public-calendar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
}

.tt-public-tournament-card {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid #dcdcde;
    border-left: 4px solid #2271b1;
    border-radius: 8px;
    background: #fff;
}

.tt-public-tournament-card-team,
.tt-public-tournament-card-family,
.tt-public-tournament-card-italian_round,
.tt-public-tournament-card-custom_team {
    border-left-color: #8a6d3b;
}

.tt-public-tournament-card-mixed {
    border-left-color: #007c89;
}

.tt-public-tournament-card h3,
.tt-public-tournament-card p {
    margin: 8px 0 0;
}

.tt-public-tournament-card small {
    display: block;
    margin-top: 4px;
    color: #646970;
}

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

.tt-public-tournament-meta div {
    padding: 8px;
    border-radius: 6px;
    background: #f6f7f7;
}

.tt-public-tournament-meta dt {
    color: #646970;
    font-size: .82rem;
    font-weight: 700;
}

.tt-public-tournament-meta dd {
    margin: 3px 0 0;
    font-weight: 700;
}

.tt-public-tournament-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tt-public-mobile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 0;
}

.tt-public-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 6px;
    background: #2271b1;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.tt-public-button-secondary {
    background: #1d2327;
}

.tt-public-button-disabled {
    background: #dcdcde;
    color: #50575e;
    cursor: not-allowed;
}

.tt-public-team-matches,
.tt-public-team-match-sheet {
    max-width: 1120px;
    margin: 0 auto;
}

.tt-public-team-match-list {
    display: grid;
    gap: 12px;
}

.tt-public-team-match-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
}

.tt-public-team-match-card h3,
.tt-public-team-match-card p {
    margin: 0 0 4px;
}

.tt-public-team-score {
    display: inline-grid;
    grid-template-columns: auto auto auto;
    gap: 8px;
    align-items: center;
    padding: 8px 12px;
    border-radius: 6px;
    background: #f6f7f7;
    font-size: 1.25rem;
}

.tt-public-print-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
}

.tt-public-print-actions button {
    min-height: 40px;
    padding: 0 14px;
    border: 0;
    border-radius: 6px;
    background: #1d2327;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.tt-public-team-match-sheet {
    padding: 14px;
    border: 2px solid #1d2327;
    background: #fff;
}

.tt-public-sheet-head {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(320px, 1fr);
    gap: 16px;
    align-items: stretch;
    padding-bottom: 10px;
    border-bottom: 2px solid #1d2327;
}

.tt-public-sheet-head strong,
.tt-public-sheet-head span {
    display: block;
    text-align: center;
}

.tt-public-sheet-head strong {
    font-size: 1.2rem;
}

.tt-public-sheet-head dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    border: 1px solid #1d2327;
}

.tt-public-sheet-head dl div {
    padding: 6px;
    border: 1px solid #1d2327;
}

.tt-public-sheet-head dt {
    font-size: .8rem;
    font-weight: 700;
}

.tt-public-sheet-head dd {
    margin: 2px 0 0;
    font-weight: 700;
}

.tt-public-sheet-teams {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 14px;
}

.tt-public-sheet-team {
    border: 1px solid #1d2327;
}

.tt-public-sheet-team h3,
.tt-public-sheet-team p {
    margin: 0;
    padding: 8px 10px;
    border-bottom: 1px solid #1d2327;
}

.tt-public-table-wrap {
    margin-top: 14px;
    overflow-x: auto;
}

.tt-public-sheet-team table,
.tt-public-sheet-score-table {
    width: 100%;
    border-collapse: collapse;
}

.tt-public-sheet-team th,
.tt-public-sheet-team td,
.tt-public-sheet-score-table th,
.tt-public-sheet-score-table td {
    padding: 7px;
    border: 1px solid #1d2327;
    text-align: left;
}

.tt-public-sheet-total {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 14px;
    padding: 12px;
    border: 2px solid #1d2327;
    background: #f6f7f7;
}

.tt-public-regulation-summary,
.tt-regulation {
    margin: 16px 0;
    padding: 14px;
    border: 1px solid #dcdcde;
    background: #fff;
}

.tt-regulation-article {
    margin-bottom: 14px;
}

.tt-regulation-article h3 {
    margin: 0 0 6px;
    font-size: 1rem;
}

.tt-regulation-version {
    margin: 0 0 12px;
    color: #646970;
    font-size: .92rem;
}

.tt-public-table {
    overflow-x: auto;
}

.tt-public-table table {
    width: 100%;
    border-collapse: collapse;
}

.tt-public-table th,
.tt-public-table td {
    padding: 8px;
    border: 1px solid #dcdcde;
    text-align: left;
}

.tt-row-warning {
    background: #fff4e5;
}

@media (max-width: 720px) {
    .tt-public-grid {
        grid-template-columns: 1fr;
    }

    .tt-public-reference-card {
        align-items: stretch;
        flex-direction: column;
    }

    .tt-public-player-search,
    .tt-public-next-grid {
        grid-template-columns: 1fr;
    }

    .tt-public-player-identity {
        flex-direction: column;
    }

    .tt-public-status {
        white-space: normal;
    }

    .tt-public-tournament-meta {
        grid-template-columns: 1fr;
    }

    .tt-public-team-match-card,
    .tt-public-sheet-head,
    .tt-public-sheet-teams {
        grid-template-columns: 1fr;
    }
}

@media print {
    .tt-public-print-actions {
        display: none !important;
    }

    .tt-public-team-match-sheet {
        max-width: none;
        border-color: #000;
        color: #000;
    }
}
.tt-competition-module {
    margin: 24px 0;
    overflow: hidden;
}

.tt-competition-head {
    padding: 18px;
    background: linear-gradient(135deg, var(--tt-primary-blue), #062544);
    color: #fff;
}

.tt-competition-head p,
.tt-competition-head h2,
.tt-competition-head span {
    margin: 0;
}

.tt-competition-head p {
    color: var(--tt-secondary-blue);
    font-weight: 700;
    text-transform: uppercase;
}

.tt-competition-head h2 {
    margin-top: 4px;
}

.tt-competition-body {
    padding: 18px;
}

.tt-competition-cards,
.tt-competition-room-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.tt-competition-card,
.tt-competition-room,
.tt-upcoming-card {
    padding: 14px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    background: var(--tt-card-bg);
}

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

.tt-competition-card strong {
    margin-top: 4px;
    font-size: 28px;
    color: var(--tt-primary-blue);
}

.tt-competition-table-pills,
.tt-upcoming-list,
.tt-competition-print-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tt-upcoming-list {
    flex-direction: column;
}

.tt-upcoming-ready {
    border-left: 5px solid var(--tt-success);
}

.tt-upcoming-blocked,
.tt-level-blocking {
    border-left: 5px solid var(--tt-danger);
}

.tt-level-warning {
    border-left: 5px solid var(--tt-warning);
}

.tt-competition-layout-with-queue {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 16px;
}

@media (max-width: 900px) {
    .tt-competition-layout-with-queue {
        grid-template-columns: 1fr;
    }
}

.tt-point-simulator {
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    background: #fff;
    box-shadow: var(--tt-shadow);
    overflow: hidden;
}

.tt-point-simulator-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    padding: 18px;
    align-items: end;
}

.tt-point-simulator-form label {
    display: grid;
    gap: 6px;
    font-weight: 700;
}

.tt-point-simulator-form input,
.tt-point-simulator-form select {
    min-height: 42px;
    border: 1px solid var(--tt-border);
    border-radius: 6px;
    padding: 8px 10px;
}

.tt-point-simulator-form button {
    min-height: 42px;
    border: 0;
    border-radius: 6px;
    background: var(--tt-primary-blue);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.tt-point-simulator-result {
    display: grid;
    gap: 6px;
    margin: 0 18px 18px;
    padding: 16px;
    border-left: 5px solid var(--tt-secondary-blue);
    border-radius: 8px;
    background: var(--tt-card-bg);
}

.tt-point-simulator-result strong {
    color: var(--tt-primary-blue);
    font-size: 24px;
}

.tt-point-simulator-result span,
.tt-point-simulator-result em {
    color: #50575e;
}

.tt-public-global-portal {
    max-width: 1320px;
    margin: 0 auto;
    color: #1d2327;
}

.tt-public-global-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-end;
    margin-bottom: 16px;
    padding: 22px;
    border-radius: 8px;
    background: #073a66;
    color: #fff;
}

.tt-public-global-hero p,
.tt-public-global-hero h2,
.tt-public-global-hero span,
.tt-public-global-hero small {
    margin: 0;
}

.tt-public-global-hero p {
    color: #8ed8ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.tt-public-global-hero h2 {
    margin-top: 6px;
    font-size: 28px;
}

.tt-public-global-hero span,
.tt-public-global-hero small {
    color: #e6f4ff;
}

.tt-public-global-filters {
    display: grid;
    grid-template-columns: minmax(160px, 220px) minmax(240px, 1fr) auto auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
}

.tt-public-global-filters label {
    display: grid;
    gap: 6px;
    font-weight: 800;
}

.tt-public-global-filters input {
    min-height: 42px;
    width: 100%;
    border: 1px solid #b8c1cc;
    border-radius: 6px;
    padding: 8px 10px;
}

.tt-public-global-filters button,
.tt-public-global-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 16px;
    border: 0;
    border-radius: 6px;
    background: #2271b1;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.tt-public-global-reset {
    border: 1px solid #2271b1;
    background: #fff;
    color: #0a4b78;
}

.tt-public-global-player-help,
.tt-public-global-player-results,
.tt-public-global-section,
.tt-public-global-side-card {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #fff;
}

.tt-public-global-player-help {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.tt-public-global-player-help strong,
.tt-public-global-player-help span {
    display: block;
}

.tt-public-global-player-help span {
    color: #50575e;
}

.tt-public-global-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    gap: 16px;
    align-items: start;
}

.tt-public-global-section > header,
.tt-public-global-side-card > header,
.tt-public-global-player-results > header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: baseline;
    margin-bottom: 12px;
}

.tt-public-global-section h3,
.tt-public-global-side-card h3,
.tt-public-global-player-results h3 {
    margin: 0;
    color: #073a66;
}

.tt-public-global-section header span,
.tt-public-global-side-card header span,
.tt-public-global-player-results header span {
    color: #646970;
    font-weight: 700;
}

.tt-public-global-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.tt-public-global-card,
.tt-public-global-match,
.tt-public-global-player-card,
.tt-public-global-event-list article,
.tt-public-global-table-list article,
.tt-public-global-next-box,
.tt-public-global-mini-item {
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background: #f8fafc;
}

.tt-public-global-card {
    display: grid;
    gap: 8px;
    padding: 14px;
    border-left: 5px solid #2271b1;
}

.tt-public-global-card small {
    color: #0a4b78;
    font-weight: 800;
    text-transform: uppercase;
}

.tt-public-global-card h4,
.tt-public-global-card p {
    margin: 0;
}

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

.tt-public-global-card dl div {
    padding: 8px;
    border-radius: 6px;
    background: #fff;
}

.tt-public-global-card dt,
.tt-public-global-match dt {
    color: #646970;
    font-size: 12px;
    font-weight: 800;
}

.tt-public-global-card dd,
.tt-public-global-match dd {
    margin: 2px 0 0;
    font-weight: 800;
}

.tt-public-global-type-team_championship,
.tt-public-global-type-championship {
    border-left-color: #007c89;
}

.tt-public-global-type-team,
.tt-public-global-type-family,
.tt-public-global-type-custom_team {
    border-left-color: #8a6d3b;
}

.tt-public-global-event-list,
.tt-public-global-match-list,
.tt-public-global-table-list,
.tt-public-global-mini-list {
    display: grid;
    gap: 10px;
}

.tt-public-global-event-list {
    margin-top: 14px;
}

.tt-public-global-event-list article {
    display: grid;
    gap: 4px;
    padding: 12px;
}

.tt-public-global-event-list span,
.tt-public-global-mini-item span,
.tt-public-global-table-list span,
.tt-public-global-table-list small {
    color: #50575e;
}

.tt-public-global-match {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(320px, 44%);
    gap: 14px;
    align-items: stretch;
    padding: 14px;
    border-left: 5px solid #8c8f94;
}

.tt-public-global-status-called {
    border-left-color: #d63638;
}

.tt-public-global-status-in_progress,
.tt-public-global-status-playing {
    border-left-color: #8a6d3b;
}

.tt-public-global-status-scheduled,
.tt-public-global-status-waiting {
    border-left-color: #2271b1;
}

.tt-public-global-status-completed,
.tt-public-global-status-validated {
    border-left-color: #00a32a;
}

.tt-public-global-match small {
    color: #0a4b78;
    font-weight: 800;
    text-transform: uppercase;
}

.tt-public-global-match h4,
.tt-public-global-match p {
    margin: 4px 0 0;
}

.tt-public-global-match dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.tt-public-global-match dl div {
    padding: 8px;
    border-radius: 6px;
    background: #fff;
}

.tt-public-global-player-results {
    border-left: 5px solid #2271b1;
}

.tt-public-global-player-card {
    display: grid;
    gap: 12px;
    margin-top: 12px;
    padding: 14px;
    background: #fff;
}

.tt-public-global-player-card h4,
.tt-public-global-player-card p {
    margin: 0 0 4px;
}

.tt-public-global-next {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.tt-public-global-next-box {
    display: grid;
    gap: 5px;
    padding: 12px;
    background: #f6f7f7;
}

.tt-public-global-next-box strong {
    color: #073a66;
}

.tt-public-global-next-box span {
    font-weight: 800;
}

.tt-public-global-next-box small {
    color: #50575e;
}

.tt-public-global-mini-item {
    padding: 10px;
}

.tt-public-global-side-card {
    position: sticky;
    top: 16px;
}

.tt-public-global-table-list article {
    display: grid;
    gap: 4px;
    padding: 10px;
    background: #f6f7f7;
}

.tt-public-global-date-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tt-public-global-date-list a {
    padding: 7px 10px;
    border: 1px solid #dcdcde;
    border-radius: 999px;
    background: #fff;
    color: #0a4b78;
    font-weight: 800;
    text-decoration: none;
}

.tt-public-global-date-list a.is-active {
    border-color: #073a66;
    background: #073a66;
    color: #fff;
}

@media (max-width: 900px) {
    .tt-public-global-hero,
    .tt-public-global-player-help {
        align-items: flex-start;
        flex-direction: column;
    }

    .tt-public-global-filters,
    .tt-public-global-layout,
    .tt-public-global-match,
    .tt-public-global-next {
        grid-template-columns: 1fr;
    }

    .tt-public-global-side-card {
        position: static;
    }
}

@media (max-width: 560px) {
    .tt-public-global-card dl,
    .tt-public-global-match dl {
        grid-template-columns: 1fr;
    }

    .tt-public-global-hero h2 {
        font-size: 22px;
    }
}

.tt-public-page-frame {
    --tt-primary-blue: #003a70;
    --tt-secondary-blue: #00a3e0;
    --tt-accent-red: #e30613;
    --tt-ink: #172033;
    --tt-soft: #f4f8fb;
    --tt-line: #d7e0ea;
    max-width: min(1380px, calc(100vw - 28px));
    margin: 0 auto;
}

.tt-public-page-frame a {
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.tt-public-page-frame .tt-public-empty,
.tt-public-page-frame .tt-public-notice {
    border: 1px solid var(--tt-line);
    border-left: 5px solid var(--tt-secondary-blue);
    border-radius: 8px;
    background: #fff;
    color: var(--tt-ink);
    box-shadow: 0 10px 28px rgba(0, 58, 112, .06);
}

.tt-public-global-portal {
    max-width: min(1380px, calc(100vw - 28px));
    color: var(--tt-dark-text, #172033);
}

.tt-public-global-hero {
    position: relative;
    overflow: hidden;
    min-height: 168px;
    padding: 26px;
    border: 1px solid rgba(0, 58, 112, .14);
    background:
        linear-gradient(90deg, rgba(0, 58, 112, .96), rgba(0, 58, 112, .84)),
        repeating-linear-gradient(135deg, rgba(255,255,255,.08) 0 12px, transparent 12px 24px);
    box-shadow: 0 18px 42px rgba(0, 58, 112, .14);
}

.tt-public-global-hero::after {
    content: "";
    position: absolute;
    right: 24px;
    bottom: -34px;
    width: 210px;
    height: 210px;
    border: 18px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
}

.tt-public-global-hero > * {
    position: relative;
    z-index: 1;
}

.tt-public-global-hero p {
    color: #bdeaff;
}

.tt-public-global-hero h2 {
    max-width: 900px;
    font-size: clamp(28px, 3vw, 48px);
    line-height: 1.06;
}

.tt-public-global-hero h2::after {
    content: "";
    display: block;
    width: 78px;
    height: 4px;
    margin-top: 14px;
    border-radius: 999px;
    background: var(--tt-accent-red, #e30613);
}

.tt-public-global-filters,
.tt-public-reference-search,
.tt-public-player-search,
.tt-public-form,
.tt-public-global-player-help,
.tt-public-global-player-results,
.tt-public-global-section,
.tt-public-global-side-card,
.tt-public-tournament-card,
.tt-public-player-card,
.tt-public-team-match-card,
.tt-public-team,
.tt-public-team-detail {
    border-color: var(--tt-border, #d7e0ea);
    border-radius: 8px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 10px 28px rgba(0, 58, 112, .06);
}

.tt-public-global-filters {
    border-top: 4px solid var(--tt-accent-red, #e30613);
}

.tt-public-global-filters button,
.tt-public-reference-search button,
.tt-public-player-search button,
.tt-public-form button,
.tt-public-button {
    border: 1px solid var(--tt-primary-blue, #003a70);
    background: var(--tt-primary-blue, #003a70);
    color: #fff;
    transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.tt-public-global-filters button:hover,
.tt-public-reference-search button:hover,
.tt-public-player-search button:hover,
.tt-public-form button:hover,
.tt-public-button:hover {
    border-color: #00549f;
    background: #00549f;
    color: #fff;
    transform: translateY(-1px);
}

.tt-public-global-reset,
.tt-public-button-secondary {
    border: 1px solid var(--tt-primary-blue, #003a70);
    background: #fff;
    color: var(--tt-primary-blue, #003a70);
}

.tt-public-global-card,
.tt-public-global-match,
.tt-public-global-player-card,
.tt-public-global-event-list article,
.tt-public-global-table-list article,
.tt-public-global-next-box,
.tt-public-global-mini-item,
.tt-public-tournament-card {
    border-color: var(--tt-border, #d7e0ea);
    background: #fff;
}

.tt-public-global-card,
.tt-public-tournament-card {
    border-left-color: var(--tt-primary-blue, #003a70);
}

.tt-public-global-type-team_championship,
.tt-public-global-type-championship,
.tt-public-tournament-card-team_championship {
    border-left-color: var(--tt-accent-red, #e30613);
}

.tt-public-global-section h3,
.tt-public-global-side-card h3,
.tt-public-global-player-results h3,
.tt-public-module-head h2 {
    color: var(--tt-primary-blue, #003a70);
}

.tt-public-status {
    background: #e8f4fb;
    color: var(--tt-primary-blue, #003a70);
}

@media (min-width: 1180px) {
    .tt-public-global-layout {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    }
}

@media (max-width: 720px) {
    .tt-public-page-frame,
    .tt-public-global-portal {
        max-width: calc(100vw - 18px);
    }

    .tt-public-global-hero {
        min-height: 0;
        padding: 20px;
    }
}

.tt-public-registrations {
    --tt-registration-surface: #ffffff;
    --tt-registration-muted: #667085;
    max-width: 1320px;
    margin: 0 auto;
    padding: 20px;
    color: #101828;
    font-family: inherit;
}

.tt-public-registrations-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding: 22px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--tt-primary-blue, #003a70), var(--tt-secondary-blue, #00549f));
    color: #fff;
}

.tt-public-registrations-hero p,
.tt-public-registrations-hero h2,
.tt-public-registrations-hero span {
    margin: 0;
}

.tt-public-registrations-hero p {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    opacity: .78;
}

.tt-public-registrations-hero h2 {
    margin-top: 4px;
    font-size: clamp(1.7rem, 3vw, 2.8rem);
    line-height: 1.05;
}

.tt-public-registrations-hero span {
    display: block;
    margin-top: 8px;
    color: rgba(255, 255, 255, .82);
}

.tt-public-registration-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.tt-public-registration-summary article {
    padding: 16px;
    border: 1px solid var(--tt-border, #d7e0ea);
    border-radius: 14px;
    background: var(--tt-registration-surface);
}

.tt-public-registration-summary span {
    display: block;
    color: var(--tt-registration-muted);
    font-weight: 700;
}

.tt-public-registration-summary strong {
    display: block;
    margin-top: 6px;
    font-size: 2rem;
    line-height: 1;
}

.tt-public-registration-tournaments,
.tt-public-registration-events {
    display: grid;
    gap: 18px;
}

.tt-public-registration-tournament {
    padding: 18px;
    border: 1px solid var(--tt-border, #d7e0ea);
    border-radius: 16px;
    background: #f8fbff;
}

.tt-public-registration-tournament > header {
    margin-bottom: 16px;
}

.tt-public-registration-tournament h3 {
    margin: 0;
    color: var(--tt-primary-blue, #003a70);
    font-size: 1.45rem;
}

.tt-public-registration-tournament p,
.tt-public-registration-title p {
    margin: 5px 0 0;
    color: var(--tt-registration-muted);
}

.tt-public-registration-events {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.tt-public-registration-event-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--tt-border, #d7e0ea);
    border-left: 5px solid var(--tt-primary-blue, #003a70);
    border-radius: 14px;
    background: var(--tt-registration-surface);
    box-shadow: 0 14px 30px rgba(16, 24, 40, .06);
}

.tt-public-registration-event-card.is-full {
    border-left-color: var(--tt-accent-red, #e30613);
}

.tt-public-registration-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.tt-public-registration-title h4 {
    margin: 0;
    font-size: 1.1rem;
}

.tt-public-registration-badge {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    background: #e8f4fb;
    color: var(--tt-primary-blue, #003a70);
    font-size: .85rem;
    font-weight: 800;
}

.tt-public-registration-badge.is-full {
    background: #fff1f2;
    color: var(--tt-accent-red, #e30613);
}

.tt-public-registration-capacity {
    display: grid;
    gap: 8px;
}

.tt-public-registration-capacity strong {
    color: #1d2939;
}

.tt-public-registration-capacity span {
    display: block;
    overflow: hidden;
    height: 10px;
    border-radius: 999px;
    background: #eef2f7;
}

.tt-public-registration-capacity i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--tt-primary-blue, #003a70), var(--tt-secondary-blue, #00549f));
}

.tt-public-registration-event-card.is-full .tt-public-registration-capacity i {
    background: linear-gradient(90deg, var(--tt-accent-red, #e30613), #ff6b6b);
}

.tt-public-registration-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--tt-border, #d7e0ea);
    border-radius: 12px;
    background: #fff;
}

.tt-public-registration-table {
    width: 100%;
    min-width: 520px;
    border-collapse: collapse;
}

.tt-public-registration-table th,
.tt-public-registration-table td {
    padding: 9px 10px;
    border-bottom: 1px solid #e7edf5;
    text-align: left;
    vertical-align: top;
}

.tt-public-registration-table th {
    background: #f1f5f9;
    color: #344054;
    font-size: .86rem;
    text-transform: uppercase;
}

.tt-public-registration-table tbody tr:last-child td {
    border-bottom: 0;
}

.tt-public-registration-table td:first-child {
    width: 44px;
    color: var(--tt-registration-muted);
    font-weight: 800;
    text-align: center;
}

.tt-public-registration-table .is-empty td {
    color: #667085;
    font-style: italic;
}

.tt-public-registration-waiting {
    padding: 12px;
    border-radius: 12px;
    background: #fff8e6;
}

.tt-public-registration-waiting summary {
    cursor: pointer;
    color: #8a5a00;
    font-weight: 800;
}

.tt-public-registration-waiting ol {
    margin: 10px 0 0;
    padding-left: 20px;
}

.tt-public-empty {
    padding: 22px;
    border: 1px solid var(--tt-border, #d7e0ea);
    border-radius: 14px;
    background: #fff;
    color: #475467;
}

@media (min-width: 1480px) {
    .tt-public-registrations {
        max-width: 1560px;
    }

    .tt-public-registration-events {
        grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    }
}

@media (max-width: 860px) {
    .tt-public-registration-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .tt-public-registrations {
        padding: 12px;
    }

    .tt-public-registrations-hero,
    .tt-public-registration-tournament,
    .tt-public-registration-event-card {
        border-radius: 12px;
    }

    .tt-public-registration-summary,
    .tt-public-registration-events {
        grid-template-columns: 1fr;
    }

    .tt-public-registration-title {
        flex-direction: column;
    }
}
.tt-public-trap {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.tt-public-global-main {
    min-width: 0;
}

.tt-public-global-portal :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.tt-public-registration :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.tt-public-page-frame :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 3px;
    box-shadow: 0 0 0 2px #102a43;
}

.tt-public-global-portal :where(button, .tt-public-button, input:not([type="checkbox"]):not([type="radio"]), select),
.tt-public-registration :where(button, .tt-public-button, input:not([type="checkbox"]):not([type="radio"]), select),
.tt-public-page-frame :where(button, .tt-public-button, input:not([type="checkbox"]):not([type="radio"]), select) {
    min-height: 44px;
}

.tt-public-checkbox input[type="checkbox"],
.tt-public-checkbox input[type="radio"] {
    width: 22px;
    min-width: 22px;
    height: 22px;
}

@media (prefers-reduced-motion: reduce) {
    .tt-public-global-portal *,
    .tt-public-registration *,
    .tt-public-page-frame * {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
