:root {
    --tt-radius: 8px;
    --tt-radius-sm: 6px;
    --tt-border: #d7e1ec;
    --tt-shadow: 0 18px 48px rgba(16, 32, 51, 0.10);
}

html {
    scroll-behavior: smooth;
}

body.tt-evenements-theme {
    background: #f3f7fb;
}

.tt-main,
.tt-public-home {
    padding-inline: 16px;
}

.tt-site-header {
    box-shadow: 0 12px 30px rgba(7, 59, 102, 0.18);
}

.tt-site-header .wp-block-navigation-item__content {
    border-radius: 999px;
    padding: 8px 12px;
}

.tt-site-header .wp-block-navigation-item__content:hover,
.tt-site-header .wp-block-navigation-item__content:focus {
    background: rgba(255, 255, 255, 0.14);
}

.tt-hero,
.tt-content-card,
.tt-shortcode-panel {
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-shadow);
}

.tt-hero {
    overflow: hidden;
    position: relative;
}

.tt-hero::after {
    background: linear-gradient(90deg, rgba(36, 84, 232, 0.22), rgba(15, 159, 176, 0.18));
    content: "";
    inset: auto 0 0 0;
    height: 8px;
    position: absolute;
}

.tt-shortcode-panel {
    margin-top: 24px;
}

.tt-public-global-portal,
.tt-public-registration,
.tt-competition-module,
.tt-display-app,
.tt-team-public,
.tt-championship-public {
    color: #102033;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.tt-public-global-portal * {
    box-sizing: border-box;
}

.tt-public-global-hero,
.tt-public-global-filters,
.tt-public-global-player-help,
.tt-public-global-player-results,
.tt-public-global-section,
.tt-public-global-side-card,
.tt-competition-module,
.tt-public-registration,
.tt-display-app {
    background: #ffffff;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    box-shadow: 0 10px 28px rgba(16, 32, 51, 0.06);
}

.tt-public-global-hero {
    align-items: flex-start;
    background: #073b66;
    color: #ffffff;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    padding: 24px;
}

.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: #bfe7f1;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tt-public-global-hero h2 {
    color: #ffffff;
    font-size: 2rem;
    margin-top: 8px;
}

.tt-public-global-hero span {
    color: #e4f2fb;
    display: block;
    margin-top: 8px;
}

.tt-public-global-filters {
    align-items: end;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(160px, 220px) minmax(220px, 1fr) auto auto;
    margin-top: 18px;
    padding: 16px;
}

.tt-public-global-filters label,
.tt-public-registration label,
.tt-competition-module label {
    color: #31445a;
    display: grid;
    font-size: 0.9rem;
    font-weight: 700;
    gap: 6px;
}

.tt-public-global-filters input,
.tt-public-registration input,
.tt-public-registration select,
.tt-public-registration textarea,
.tt-competition-module input,
.tt-competition-module select,
.tt-competition-module textarea {
    background: #ffffff;
    border: 1px solid #b9c7d8;
    border-radius: var(--tt-radius-sm);
    color: #102033;
    min-height: 42px;
    padding: 10px 12px;
    width: 100%;
}

.tt-public-global-filters button,
.tt-public-global-reset,
.tt-public-registration button,
.tt-public-registration .button,
.tt-competition-module button,
.tt-competition-module .button,
.tt-display-app button,
.tt-display-app .button {
    align-items: center;
    background: #2454e8;
    border: 1px solid #2454e8;
    border-radius: var(--tt-radius-sm);
    color: #ffffff;
    cursor: pointer;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    text-decoration: none;
}

.tt-public-global-reset,
.tt-competition-module .button-secondary {
    background: #ffffff;
    color: #2454e8;
}

.tt-public-global-layout {
    align-items: start;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1fr) 320px;
    margin-top: 22px;
}

.tt-public-global-layout main,
.tt-public-global-layout aside {
    display: grid;
    gap: 18px;
}

.tt-public-global-section,
.tt-public-global-player-results,
.tt-public-global-side-card,
.tt-public-global-player-help {
    padding: 18px;
}

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

.tt-public-global-section h3,
.tt-public-global-player-results h3,
.tt-public-global-side-card h3 {
    font-size: 1.15rem;
    margin: 0;
}

.tt-public-global-section header span,
.tt-public-global-side-card header span {
    background: #eef4fb;
    border-radius: 999px;
    color: #41536a;
    font-size: 0.85rem;
    font-weight: 800;
    padding: 6px 10px;
}

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

.tt-public-global-card,
.tt-public-global-player-card,
.tt-public-global-match-list article,
.tt-public-global-table-list article,
.tt-public-global-event-list article,
.tt-competition-room-grid > *,
.tt-upcoming-list > * {
    background: #f8fbff;
    border: 1px solid #dbe5ef;
    border-radius: var(--tt-radius);
    padding: 14px;
}

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

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

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

.tt-public-global-card dl div {
    background: #ffffff;
    border-radius: var(--tt-radius-sm);
    padding: 10px;
}

.tt-public-global-card dt {
    color: #637083;
    font-size: 0.78rem;
}

.tt-public-global-card dd {
    font-size: 1.35rem;
    font-weight: 850;
    margin: 0;
}

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

.tt-public-global-match-list article {
    border-left: 5px solid #2454e8;
}

.tt-public-global-section-urgent .tt-public-global-match-list article,
.tt-upcoming-list > .is-ready,
.tt-public-global-match-list article.is-ready {
    border-left-color: #2f9e44;
}

.tt-public-global-match-list article.is-blocked,
.tt-upcoming-list > .is-blocked {
    border-left-color: #dc2626;
}

.tt-public-global-match-list article.is-waiting-referee,
.tt-upcoming-list > .is-waiting-referee {
    border-left-color: #f59e0b;
}

.tt-public-empty {
    background: #fff8e6;
    border: 1px solid #f6d98c;
    border-radius: var(--tt-radius);
    color: #6c4f0d;
    padding: 14px;
}

.tt-public-global-player-help {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-top: 18px;
}

.tt-public-global-player-help strong {
    color: #073b66;
}

.tt-public-global-player-results {
    margin-top: 18px;
}

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

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

.tt-public-registration,
.tt-competition-module,
.tt-display-app {
    padding: 20px;
}

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

@media (max-width: 980px) {
    .tt-public-global-layout,
    .tt-competition-layout-with-queue,
    .tt-public-global-filters {
        grid-template-columns: 1fr;
    }

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

    .tt-public-global-hero {
        display: grid;
    }
}

@media print {
    .tt-site-header,
    .tt-site-footer,
    .wp-block-buttons,
    .tt-public-global-filters {
        display: none !important;
    }

    body.tt-evenements-theme {
        background: #ffffff;
    }

    .tt-shortcode-panel,
    .tt-public-global-section,
    .tt-public-global-side-card {
        box-shadow: none;
    }
}
