:root {
    color-scheme: dark;
    --background: #08090b;
    --surface: #121419;
    --surface-2: #191c22;
    --border: #2a2f38;
    --text: #f4f4f5;
    --muted: #9ca3af;
    --gold: #d4af37;
    --red: #e3001b;
    --green: #007a33;
    --radius: 14px;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: var(--background);
}

body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at top right, rgba(212, 175, 55, .06), transparent 32rem),
        var(--background);
    color: var(--text);
    font-family: Inter, Arial, Helvetica, sans-serif;
}

a {
    color: inherit;
}

code,
pre {
    font-family: Consolas, Monaco, monospace;
}

pre {
    max-width: 36rem;
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    color: #d1d5db;
    font-size: .75rem;
}

.admin-header {
    position: sticky;
    z-index: 20;
    top: 0;
    border-bottom: 1px solid rgba(212, 175, 55, .5);
    background: rgba(12, 13, 16, .96);
    backdrop-filter: blur(14px);
}

.admin-header__inner {
    width: min(1500px, calc(100% - 2rem));
    min-height: 76px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    text-decoration: none;
    white-space: nowrap;
}

.brand__mark {
    width: 44px;
    height: 44px;
    border: 2px solid var(--gold);
    border-radius: 12px;
    display: grid;
    place-items: center;
    color: var(--gold);
    font-weight: 950;
}

.brand strong,
.brand small {
    display: block;
}

.brand small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 700;
}

.admin-nav {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-left: auto;
    overflow-x: auto;
}

.admin-nav__link {
    border-radius: 8px;
    padding: .65rem .8rem;
    color: #d4d4d8;
    text-decoration: none;
    font-size: .83rem;
    font-weight: 800;
    white-space: nowrap;
}

.admin-nav__link:hover,
.admin-nav__link.is-active {
    background: rgba(212, 175, 55, .12);
    color: var(--gold);
}

.user-menu {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.user-menu__identity {
    text-align: right;
}

.user-menu__identity strong,
.user-menu__identity span {
    display: block;
}

.user-menu__identity strong {
    font-size: .84rem;
}

.user-menu__identity span {
    margin-top: .16rem;
    color: var(--muted);
    font-size: .7rem;
}

.admin-main {
    width: min(1500px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 2rem 0 4rem;
}

.admin-footer {
    border-top: 1px solid var(--border);
    padding: 1.25rem;
    color: #71717a;
    text-align: center;
    font-size: .76rem;
}

.page-heading {
    margin-bottom: 1.5rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.page-heading h1 {
    margin: 0;
    font-size: clamp(1.85rem, 4vw, 2.8rem);
}

.page-heading p {
    max-width: 54rem;
    margin: .65rem 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.eyebrow {
    margin: 0 0 .45rem !important;
    color: var(--gold) !important;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .7rem;
    font-weight: 900;
}

.role-badge,
.status {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .4rem .7rem;
    background: rgba(212, 175, 55, .14);
    color: var(--gold);
    font-size: .7rem;
    font-weight: 900;
    white-space: nowrap;
}

.status--en_cours {
    background: rgba(0, 122, 51, .2);
    color: #86efac;
}

.status--a_venir {
    background: #252b34;
    color: #d1d5db;
}

.status--termine {
    background: #343943;
    color: #d1d5db;
}

.stat-grid {
    margin-bottom: 1.5rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.stat-card {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.1rem;
    background: linear-gradient(145deg, var(--surface-2), var(--surface));
}

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

.stat-card span {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
}

.stat-card strong {
    margin-top: .45rem;
    color: var(--gold);
    font-size: 2.1rem;
}

.stat-card--danger strong {
    color: #fb7185;
}

.dashboard-grid {
    margin-bottom: 1.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr);
    gap: 1.25rem;
}

.panel {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    overflow: hidden;
}

.panel__header {
    min-height: 72px;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--surface-2);
}

.panel__header h2,
.panel__header p {
    margin: 0;
}

.panel__header h2 {
    font-size: 1rem;
}

.panel__header p {
    margin-top: .3rem;
    color: var(--muted);
    font-size: .72rem;
}

.list-stack {
    display: grid;
}

.match-line {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.match-line:last-child {
    border-bottom: 0;
}

.match-line strong {
    overflow-wrap: anywhere;
}

.match-line strong span {
    color: var(--muted);
    font-size: .76rem;
    font-weight: 500;
}

.match-line p {
    margin: .35rem 0 0;
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.5;
}

.check-list {
    margin: 0;
    padding: 1rem 1.4rem 0 2.4rem;
    color: #d1d5db;
    line-height: 1.8;
    font-size: .84rem;
}

.check-list li::marker {
    color: var(--green);
}

.info-box {
    margin: 1rem;
    border: 1px solid rgba(212, 175, 55, .35);
    border-radius: 10px;
    padding: .9rem;
    background: rgba(212, 175, 55, .07);
    color: #fde68a;
    font-size: .78rem;
    line-height: 1.55;
}

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

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

th,
td {
    padding: .8rem .85rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
    font-size: .76rem;
}

th {
    background: #0e1014;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .66rem;
}

tbody tr:hover {
    background: rgba(255, 255, 255, .025);
}

.empty-state {
    margin: 0;
    padding: 2rem 1.15rem;
    color: var(--muted);
    text-align: center;
}

.alert {
    margin-bottom: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .85rem 1rem;
    font-size: .82rem;
}

.alert--success {
    border-color: rgba(0, 122, 51, .75);
    background: rgba(0, 122, 51, .13);
    color: #bbf7d0;
}

.alert--error {
    border-color: rgba(227, 0, 27, .8);
    background: rgba(227, 0, 27, .12);
    color: #fecdd3;
}

.alert--warning {
    border-color: rgba(212, 175, 55, .6);
    background: rgba(212, 175, 55, .1);
    color: #fde68a;
}

.button {
    min-height: 40px;
    border: 1px solid transparent;
    border-radius: 9px;
    padding: .65rem .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text);
    text-decoration: none;
    font: inherit;
    font-size: .78rem;
    font-weight: 900;
    cursor: pointer;
}

.button--primary {
    background: var(--gold);
    color: #111;
}

.button--primary:hover {
    filter: brightness(1.08);
}

.button--secondary {
    border-color: var(--border);
    background: #1d2128;
}

.button--secondary:hover {
    border-color: var(--gold);
    color: var(--gold);
}

.button--wide {
    width: 100%;
}

.text-link {
    color: var(--gold);
    text-decoration: none;
    font-size: .76rem;
    font-weight: 900;
}

.filter-bar {
    margin-bottom: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem;
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: .75rem;
    background: var(--surface);
}

.field {
    min-width: 160px;
    display: grid;
    gap: .4rem;
}

.field span {
    color: #d4d4d8;
    font-size: .74rem;
    font-weight: 800;
}

.field input,
.field select {
    width: 100%;
    min-height: 43px;
    border: 1px solid #343943;
    border-radius: 9px;
    padding: .65rem .75rem;
    background: #0d0f13;
    color: var(--text);
    font: inherit;
}

.field input:focus,
.field select:focus,
.button:focus-visible,
a:focus-visible {
    outline: 3px solid rgba(212, 175, 55, .45);
    outline-offset: 2px;
}

.login-shell {
    min-height: calc(100vh - 180px);
    display: grid;
    place-items: center;
}

.login-card {
    width: min(460px, 100%);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 1.5rem;
    background:
        linear-gradient(145deg, rgba(212, 175, 55, .045), transparent 45%),
        var(--surface);
    box-shadow: 0 32px 90px rgba(0, 0, 0, .38);
}

.login-card__header {
    margin-bottom: 1.3rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.login-card__header h1,
.login-card__header p {
    margin: 0;
}

.login-card__header h1 {
    font-size: 1.45rem;
}

.login-card__header p {
    margin-top: .3rem;
    color: var(--muted);
    font-size: .78rem;
}

.form-stack {
    display: grid;
    gap: 1rem;
}

.security-note {
    margin: 1rem 0 0;
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.5;
}

@media (max-width: 1050px) {
    .admin-header__inner {
        flex-wrap: wrap;
        padding: .8rem 0;
    }

    .admin-nav {
        order: 3;
        width: 100%;
        margin-left: 0;
    }

    .user-menu {
        margin-left: auto;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .user-menu__identity {
        display: none;
    }

    .page-heading {
        flex-direction: column;
    }

    .match-line {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    .admin-header__inner,
    .admin-main {
        width: min(100% - 1rem, 1500px);
    }

    .brand span:last-child {
        display: none;
    }

    .stat-grid {
        grid-template-columns: 1fr;
    }

    .filter-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .filter-bar .field,
    .filter-bar .button {
        width: 100%;
    }
}


/* =========================================================
   LOT 4B — GESTION DES MATCHS
   ========================================================= */

small {
    color: var(--muted);
}

.form-panel {
    padding: 1.2rem;
}

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

.field--wide {
    grid-column: 1 / -1;
}

.field textarea {
    width: 100%;
    border: 1px solid #343943;
    border-radius: 9px;
    padding: .75rem;
    resize: vertical;
    background: #0d0f13;
    color: var(--text);
    font: inherit;
}

.field textarea:focus {
    outline: 3px solid rgba(212, 175, 55, .45);
    outline-offset: 2px;
}

.form-actions,
.action-row,
.table-actions,
.dashboard-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .7rem;
}

.form-actions {
    margin-top: 1.2rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--border);
}

.dashboard-actions {
    padding: 0 1rem 1rem;
}

.confirmation-box {
    border: 1px solid rgba(212, 175, 55, .35);
    border-radius: 10px;
    padding: .9rem;
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    background: rgba(212, 175, 55, .07);
    color: #fde68a;
    font-size: .8rem;
    line-height: 1.5;
}

.confirmation-box input {
    width: auto;
    min-height: auto;
    margin-top: .15rem;
}

.score-cell {
    color: var(--gold);
    font-size: 1rem;
    font-weight: 950;
    white-space: nowrap;
}

.match-hero {
    margin-bottom: 1.25rem;
    padding: 1.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
}

.match-hero__team span,
.match-hero__team strong,
.match-hero__score span,
.match-hero__score strong,
.match-hero__score small {
    display: block;
}

.match-hero__team span {
    color: var(--muted);
    font-size: .72rem;
}

.match-hero__team strong {
    margin-top: .35rem;
    font-size: 1.25rem;
}

.match-hero__team--right {
    text-align: right;
}

.match-hero__score {
    min-width: 170px;
    text-align: center;
}

.match-hero__score span,
.match-hero__score small {
    color: var(--muted);
    font-size: .7rem;
}

.match-hero__score strong {
    margin: .25rem 0;
    color: var(--gold);
    font-size: 2.6rem;
}

.detail-grid {
    margin-bottom: 1.25rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.detail-card {
    padding: 1.15rem;
}

.detail-card h2 {
    margin: 0 0 1rem;
    font-size: 1rem;
}

.detail-card dl,
.readiness-list {
    margin: 0;
    display: grid;
    gap: .75rem;
}

.detail-card dl div,
.readiness-list div {
    border-bottom: 1px solid var(--border);
    padding-bottom: .65rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.detail-card dt,
.readiness-list dt {
    color: var(--muted);
    font-size: .75rem;
}

.detail-card dd,
.readiness-list dd {
    margin: 0;
    text-align: right;
    font-size: .8rem;
    font-weight: 800;
}

.group-readiness-grid {
    margin-bottom: 1.25rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.readiness-list {
    padding: 1rem;
}

.ranking-mini {
    margin: 0;
    padding: 0 1rem 1rem 2.3rem;
}

.ranking-mini li {
    margin-bottom: .55rem;
    color: #d4d4d8;
    font-size: .78rem;
}

.ranking-mini li span,
.ranking-mini li strong {
    display: inline-block;
}

.ranking-mini li strong {
    float: right;
    color: var(--gold);
}

.ranking-mini li small {
    display: block;
    margin-top: .2rem;
    color: #fde68a;
}

.quarter-grid,
.quarter-schedule-grid {
    padding: 1rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.quarter-card,
.quarter-schedule {
    border: 1px solid var(--border);
    border-radius: 11px;
    padding: 1rem;
    background: var(--surface-2);
}

.quarter-card h3 {
    margin: .75rem 0 .45rem;
    font-size: .9rem;
    line-height: 1.4;
}

.quarter-card p {
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.5;
}

.quarter-schedule {
    min-width: 0;
}

.quarter-schedule legend {
    padding: 0 .35rem;
    color: var(--gold);
    font-weight: 900;
}

.quarter-schedule p {
    min-height: 3rem;
    color: #d4d4d8;
    font-size: .78rem;
    line-height: 1.5;
}

.quarter-schedule .field {
    min-width: 0;
    margin-top: .75rem;
}

.knockout-form {
    margin-top: 1.25rem;
}

@media (max-width: 1200px) {
    .group-readiness-grid,
    .quarter-grid,
    .quarter-schedule-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .form-grid,
    .detail-grid,
    .match-hero {
        grid-template-columns: 1fr;
    }

    .match-hero__team,
    .match-hero__team--right {
        text-align: center;
    }

    .group-readiness-grid,
    .quarter-grid,
    .quarter-schedule-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   LOT 4C — ÉVÉNEMENTS ET AFFECTATIONS ARBITRALES
   ========================================================= */

.button--danger {
    border-color: rgba(227, 0, 27, .75);
    background: rgba(227, 0, 27, .16);
    color: #fecdd3;
}

.button--danger:hover {
    background: rgba(227, 0, 27, .28);
}

.text-link--danger {
    color: #fb7185;
}

.muted-text {
    color: var(--muted);
    font-size: .75rem;
}

.event-state {
    display: inline-flex;
    border-radius: 999px;
    padding: .3rem .55rem;
    font-size: .65rem;
    font-weight: 900;
}

.event-state--valide {
    background: rgba(0, 122, 51, .18);
    color: #86efac;
}

.event-state--annule {
    background: rgba(227, 0, 27, .13);
    color: #fda4af;
}

.row-cancelled {
    opacity: .62;
    text-decoration-color: rgba(255, 255, 255, .4);
}

.row-cancelled td {
    background: rgba(227, 0, 27, .025);
}

.assignment-list {
    display: grid;
}

.assignment-card {
    padding: 1rem;
    border-bottom: 1px solid var(--border);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 1fr);
    align-items: center;
    gap: 1rem;
}

.assignment-card:last-child {
    border-bottom: 0;
}

.assignment-card--inactive {
    opacity: .55;
}

.assignment-card strong,
.assignment-card p {
    margin: 0;
}

.assignment-card p {
    margin-top: .3rem;
    color: var(--muted);
    font-size: .75rem;
}

.inline-deactivation-form {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.inline-deactivation-form input {
    width: 100%;
    min-height: 40px;
    border: 1px solid #343943;
    border-radius: 8px;
    padding: .55rem .7rem;
    background: #0d0f13;
    color: var(--text);
}

.assignment-summary {
    margin-bottom: 1.25rem;
}

.assignment-badges {
    padding: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.assignment-badges span {
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: .45rem .7rem;
    background: var(--surface-2);
    color: #d4d4d8;
    font-size: .72rem;
    font-weight: 800;
}

.cancellation-summary {
    margin-bottom: 1rem;
    padding: 1rem;
}

.cancellation-summary dl {
    margin: 0;
    display: grid;
    gap: .7rem;
}

.cancellation-summary dl div {
    border-bottom: 1px solid var(--border);
    padding-bottom: .55rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.cancellation-summary dt {
    color: var(--muted);
}

.cancellation-summary dd {
    margin: 0;
    text-align: right;
    font-weight: 800;
}

@media (max-width: 760px) {
    .assignment-card {
        grid-template-columns: 1fr;
    }

    .inline-deactivation-form {
        align-items: stretch;
        flex-direction: column;
    }
}


/* LOT 4D — SUSPENSIONS ET DISCIPLINE */
.red-dossiers-panel{margin-bottom:1.25rem;border-color:rgba(227,0,27,.45)}
.discipline-state{display:inline-flex;border-radius:999px;padding:.3rem .55rem;background:rgba(212,175,55,.12);color:#fde68a;font-size:.66rem;font-weight:900}
.text-warning{color:#fde68a}.initialization-panel{margin-top:1.25rem}
.discipline-summary-grid{margin-bottom:1.25rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.discipline-summary-card{padding:1rem}.discipline-summary-card span,.discipline-summary-card strong{display:block}.discipline-summary-card span{color:var(--muted);font-size:.72rem}.discipline-summary-card strong{margin-top:.45rem;color:var(--gold);font-size:1rem;line-height:1.4}
.suspension-alert-panel{margin-bottom:1.25rem;border-color:rgba(227,0,27,.5)}.suspension-alert-list{padding:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.suspension-alert-list article{border:1px solid rgba(227,0,27,.3);border-radius:10px;padding:.85rem;background:rgba(227,0,27,.06)}.suspension-alert-list strong,.suspension-alert-list span,.suspension-alert-list small{display:block}.suspension-alert-list span{margin-top:.25rem;color:#fecdd3;font-size:.76rem}.suspension-alert-list small{margin-top:.35rem;line-height:1.45}
@media(max-width:900px){.discipline-summary-grid,.suspension-alert-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.discipline-summary-grid,.suspension-alert-list{grid-template-columns:1fr}}


/* =========================================================
   LOT 4E — RÉSULTATS, TIRS AU BUT ET DÉPENDANCES
   ========================================================= */

.result-score-grid {
    margin-bottom: 1.25rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.result-score-card {
    padding: 1rem;
    text-align: center;
}

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

.result-score-card span {
    color: var(--muted);
    font-size: .72rem;
}

.result-score-card strong {
    margin-top: .45rem;
    color: var(--gold);
    font-size: 1.45rem;
}

.result-summary-panel,
.shootout-panel,
.validation-panel,
.stage-generation-panel {
    margin-bottom: 1.25rem;
}

.result-winner-badge {
    border: 1px solid rgba(0, 122, 51, .6);
    border-radius: 999px;
    padding: .45rem .75rem;
    background: rgba(0, 122, 51, .15);
    color: #86efac;
    font-size: .75rem;
    font-weight: 900;
}

.shootout-create-form,
.shootout-add-form {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: .8rem;
}

.shootout-create-form .field,
.shootout-add-form .field {
    flex: 1 1 220px;
}

.shootout-sequence {
    padding: 1rem;
    display: grid;
    gap: .55rem;
}

.shootout-kick {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .7rem .8rem;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 44px auto auto;
    align-items: center;
    gap: .75rem;
    background: var(--surface-2);
}

.shootout-kick--cancelled {
    opacity: .5;
}

.shootout-kick__order {
    color: var(--gold);
    font-weight: 950;
}

.shootout-kick strong,
.shootout-kick small {
    display: block;
}

.shootout-kick__result {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 1.1rem;
    font-weight: 950;
}

.shootout-kick__result.is-goal {
    background: rgba(0, 122, 51, .2);
    color: #86efac;
}

.shootout-kick__result.is-miss {
    background: rgba(227, 0, 27, .16);
    color: #fda4af;
}

.shootout-next-team {
    flex: 1 1 100%;
    border: 1px solid rgba(212, 175, 55, .35);
    border-radius: 9px;
    padding: .7rem;
    color: #fde68a;
}

.shootout-actions {
    padding: 0 1rem 1rem;
    display: grid;
    gap: .75rem;
}

.inline-justification-form {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.inline-justification-form input {
    flex: 1;
    min-height: 40px;
    border: 1px solid #343943;
    border-radius: 8px;
    padding: .55rem .7rem;
    background: #0d0f13;
    color: var(--text);
}

button:disabled,
.button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.next-stage-grid {
    margin-bottom: 1.25rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.next-stage-card {
    padding: 1rem;
}

.next-stage-card h2 {
    margin: .7rem 0 .4rem;
    font-size: .95rem;
    line-height: 1.45;
}

.next-stage-card p {
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.5;
}

.next-pairing-grid {
    padding: 1rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.next-pairing-grid article {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .85rem;
    display: grid;
    gap: .35rem;
    background: var(--surface-2);
}

.next-pairing-grid article span {
    color: var(--muted);
    font-size: .72rem;
}

@media (max-width: 1050px) {
    .result-score-grid,
    .next-stage-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shootout-kick {
        grid-template-columns: 44px minmax(0, 1fr) 40px auto;
    }

    .shootout-kick .table-actions {
        grid-column: 2 / -1;
    }
}

@media (max-width: 650px) {
    .result-score-grid,
    .next-stage-grid,
    .next-pairing-grid {
        grid-template-columns: 1fr;
    }

    .shootout-kick {
        grid-template-columns: 40px minmax(0, 1fr) 38px;
    }

    .shootout-kick .event-state,
    .shootout-kick .table-actions {
        grid-column: 2 / -1;
    }

    .inline-justification-form {
        align-items: stretch;
        flex-direction: column;
    }
}


/* =========================================================
   LOT 4G - STATISTIQUES, DISTINCTIONS ET RAPPORT
   ========================================================= */
.statistics-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.recommendation-list,.recommendation-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; padding:1rem; }
.recommendation-strip { padding:0; margin-bottom:1.25rem; }
.recommendation-list article,.recommendation-strip article { border:1px solid var(--border); border-radius:10px; padding:1rem; background:var(--surface-2); }
.recommendation-list span,.recommendation-list strong,.recommendation-list small,.recommendation-strip span,.recommendation-strip strong,.recommendation-strip small { display:block; }
.recommendation-list span,.recommendation-strip span { color:var(--muted); font-size:.72rem; }
.recommendation-list strong,.recommendation-strip strong { margin-top:.35rem; color:var(--gold); }
.recommendation-list small,.recommendation-strip small { margin-top:.35rem; line-height:1.45; }
.report-kv { padding:1rem; margin:0; display:grid; gap:.7rem; }
.report-kv div { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--border); padding-bottom:.55rem; }
.report-kv dt { color:var(--muted); } .report-kv dd { margin:0; text-align:right; font-weight:800; }
.unavailable-panel { margin-top:1.25rem; }
.unavailable-tags { padding:1rem; display:flex; flex-wrap:wrap; gap:.5rem; }
.unavailable-tags span { border:1px solid var(--border); border-radius:999px; padding:.4rem .65rem; color:var(--muted); font-size:.7rem; }
.team-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.25rem; }
.team-detail-card { padding:1rem; } .team-detail-card h2 { margin:0 0 1rem; font-size:1rem; }
.team-detail-card dl { margin:0; display:grid; gap:.55rem; } .team-detail-card dl div { display:flex; justify-content:space-between; gap:.75rem; border-bottom:1px solid var(--border); padding-bottom:.45rem; }
.team-detail-card dt { color:var(--muted); font-size:.72rem; } .team-detail-card dd { margin:0; text-align:right; font-size:.75rem; font-weight:700; }
.award-state { display:inline-flex; padding:.3rem .55rem; border-radius:999px; font-size:.65rem; font-weight:900; }
.award-state--proposition { background:rgba(212,175,55,.14); color:#fde68a; } .award-state--validee { background:rgba(0,122,51,.18); color:#86efac; } .award-state--annulee { background:rgba(227,0,27,.14); color:#fda4af; }
.award-table { margin-top:1.25rem; }
.award-action-form { min-width:260px; display:grid; grid-template-columns:1fr auto auto; gap:.45rem; }
.award-action-form input { min-height:38px; border:1px solid #343943; border-radius:8px; padding:.5rem; background:#0d0f13; color:var(--text); }
.closure-checks { padding:1rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.closure-check { border:1px solid var(--border); border-radius:9px; padding:.8rem; display:flex; justify-content:space-between; gap:1rem; }
.closure-check.is-ok { border-color:rgba(0,122,51,.45); } .closure-check.is-blocked { border-color:rgba(227,0,27,.45); }
.closure-check span { color:var(--muted); text-align:right; }
.closure-form { margin-top:1.25rem; }
.report-cover { padding:2rem; text-align:center; margin-bottom:1.25rem; }
.report-cover h2 { font-size:2rem; margin:0; } .report-cover>p { color:var(--muted); }
.report-podium { margin-top:1.5rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.report-podium article,.report-stat-grid article { border:1px solid var(--border); border-radius:10px; padding:1rem; background:var(--surface-2); }
.report-podium span,.report-podium strong,.report-stat-grid span,.report-stat-grid strong { display:block; }
.report-podium strong,.report-stat-grid strong { margin-top:.4rem; color:var(--gold); }
.report-section { margin-bottom:1.25rem; padding:1rem; } .report-section>h2 { margin-top:0; }
.report-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; }
.report-awards { margin:0; padding-left:1.2rem; } .report-awards li { margin:.5rem 0; }
.report-match-list { display:grid; gap:.55rem; } .report-match-list article { border-bottom:1px solid var(--border); padding-bottom:.5rem; display:flex; justify-content:space-between; gap:1rem; } .report-match-list span { color:var(--muted); }
@media(max-width:1000px){.statistics-grid,.report-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.recommendation-list,.recommendation-strip,.team-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.statistics-grid,.report-stat-grid,.recommendation-list,.recommendation-strip,.team-detail-grid,.closure-checks,.report-podium{grid-template-columns:1fr;}.award-action-form{grid-template-columns:1fr;}.report-match-list article,.closure-check{flex-direction:column;}.closure-check span{text-align:left;}}
@media print {
    .admin-header,.admin-footer,.no-print,.report-controls .action-row { display:none !important; }
    body { background:#fff !important; color:#000 !important; }
    .admin-main { max-width:none; margin:0; padding:0; }
    .panel,.report-section,.report-cover { border:0 !important; box-shadow:none !important; background:#fff !important; color:#000 !important; break-inside:avoid; }
    table { color:#000 !important; } th,td { border-color:#bbb !important; }
    .report-section { page-break-inside:avoid; }
}


.sheet-state {
    display: inline-flex;
    border-radius: 999px;
    padding: .3rem .6rem;
    background: rgba(212, 175, 55, .12);
    color: #fde68a;
    font-size: .68rem;
    font-weight: 900;
}
.sheet-state--verrouillee { background: rgba(0,122,51,.18); color: #86efac; }
.sheet-state--refusee, .sheet-state--annulee { background: rgba(227,0,27,.14); color: #fda4af; }
.sheet-header { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; padding:1rem; margin-bottom:1rem; }
.sheet-header div { border-right:1px solid var(--border); padding-right:1rem; }
.sheet-header div:last-child { border-right:0; }
.sheet-header span,.sheet-header strong { display:block; }
.sheet-header span { color:var(--muted); font-size:.72rem; }
.sheet-header strong { margin-top:.35rem; }
.sheet-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; margin-top:1rem; }
.sheet-actions h2 { width:100%; }
.inline-control-form,.inline-cancel-form { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.inline-control-form input[type=text],.inline-cancel-form input[type=text] { min-height:40px; border:1px solid #343943; border-radius:8px; padding:.55rem .7rem; background:#0d0f13; color:var(--text); }
.sheet-summary-panel { margin-bottom:1.25rem; }
.sheet-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; padding:1rem; }
.sheet-summary-grid article { border:1px solid var(--border); border-radius:10px; padding:.9rem; background:var(--surface-2); }
.sheet-summary-grid strong,.sheet-summary-grid span,.sheet-summary-grid small,.sheet-summary-grid a { display:block; }
.sheet-summary-grid span { margin-top:.3rem; color:var(--gold); }
.sheet-summary-grid small { margin:.35rem 0; }
.replacement-form select option[hidden] { display:none; }
@media(max-width:760px){.sheet-header,.sheet-summary-grid{grid-template-columns:1fr 1fr}.inline-control-form,.inline-cancel-form{align-items:stretch;flex-direction:column}}
@media(max-width:480px){.sheet-header,.sheet-summary-grid{grid-template-columns:1fr}.sheet-header div{border-right:0;border-bottom:1px solid var(--border);padding-bottom:.7rem}}


.assignment-match-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.assignment-match-card {
    padding: 1rem;
}

.assignment-match-card header {
    display: grid;
    gap: .8rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid var(--border);
}

.assignment-match-card header > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.assignment-match-card header > strong {
    font-size: 1rem;
    line-height: 1.5;
}

.assignment-match-card header > strong span {
    margin: 0 .25rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 500;
}

.assignment-role {
    border: 1px solid rgba(212, 175, 55, .35);
    border-radius: 999px;
    padding: .3rem .55rem;
    color: #fde68a;
    font-size: .68rem;
    font-weight: 800;
}

.assignment-match-card dl {
    margin: 1rem 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.assignment-match-card dl div {
    border: 1px solid var(--border);
    border-radius: 9px;
    padding: .65rem;
    background: var(--surface-2);
}

.assignment-match-card dt {
    color: var(--muted);
    font-size: .66rem;
}

.assignment-match-card dd {
    margin: .25rem 0 0;
    font-size: .78rem;
    font-weight: 800;
}

.assignment-match-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
}

.assignment-match-card__actions form {
    margin: 0;
}

.assignment-warning {
    margin: .8rem 0 0;
    color: #fda4af;
    font-size: .74rem;
}

.referee-guide {
    margin-bottom: 1rem;
    padding: 1rem;
}

.referee-guide__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.referee-guide__steps article {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
}

.referee-guide__steps article > strong {
    display: grid;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: rgba(212, 175, 55, .16);
    color: var(--gold);
}

.referee-guide__steps h2,
.referee-guide__steps p {
    margin: 0;
}

.referee-guide__steps h2 {
    font-size: .82rem;
}

.referee-guide__steps p {
    margin-top: .25rem;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.45;
}

.referee-match-controls {
    margin-bottom: 1rem;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.referee-match-controls h2,
.referee-match-controls p {
    margin: 0;
}

.referee-match-controls p {
    margin-top: .3rem;
    color: var(--muted);
    font-size: .75rem;
}

.quick-access-grid {
    padding: 1rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.quick-access-grid a {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .85rem;
    background: var(--surface-2);
    color: var(--text);
    text-decoration: none;
    transition: border-color .18s ease, transform .18s ease;
}

.quick-access-grid a:hover {
    border-color: rgba(212, 175, 55, .55);
    transform: translateY(-1px);
}

.quick-access-grid strong,
.quick-access-grid span {
    display: block;
}

.quick-access-grid span {
    margin-top: .25rem;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.4;
}

button:disabled {
    cursor: not-allowed;
    opacity: .5;
}

@media (max-width: 920px) {
    .assignment-match-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 620px) {
    .assignment-match-card dl,
    .referee-guide__steps,
    .quick-access-grid {
        grid-template-columns: 1fr;
    }

    .referee-match-controls {
        align-items: stretch;
        flex-direction: column;
    }
}


/* Mes affectations */

.assignments-hero {
    position: relative;
    overflow: hidden;
    min-height: 230px;
    margin-bottom: 1.2rem;
    border: 1px solid rgba(212, 175, 55, .3);
    border-radius: 22px;
    padding: clamp(1.4rem, 4vw, 2.4rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    background:
        linear-gradient(115deg, rgba(227, 0, 27, .14), transparent 38%),
        radial-gradient(circle at 82% 20%, rgba(212, 175, 55, .2), transparent 18rem),
        linear-gradient(145deg, #181b21, #0d0f13 72%);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .25);
}

.assignments-hero::after {
    position: absolute;
    right: -5rem;
    bottom: -9rem;
    width: 25rem;
    height: 25rem;
    border: 1px solid rgba(212, 175, 55, .11);
    border-radius: 50%;
    content: "";
}

.assignments-hero__content {
    position: relative;
    z-index: 2;
    max-width: 760px;
}

.assignments-hero__eyebrow {
    display: block;
    margin-bottom: .7rem;
    color: var(--gold);
    text-transform: uppercase;
    letter-spacing: .18em;
    font-size: .68rem;
    font-weight: 950;
}

.assignments-hero h1 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.7rem);
    line-height: 1;
    letter-spacing: -.045em;
}

.assignments-hero p {
    max-width: 620px;
    margin: .85rem 0 0;
    color: #b6bbc5;
    line-height: 1.65;
}

.assignments-hero__mark {
    position: relative;
    z-index: 2;
    flex: 0 0 142px;
    width: 142px;
    height: 142px;
    border: 1px solid rgba(212, 175, 55, .42);
    border-radius: 50%;
    display: grid;
    place-content: center;
    background:
        radial-gradient(circle, rgba(212, 175, 55, .16), rgba(212, 175, 55, .03) 62%, transparent 63%);
    text-align: center;
    box-shadow:
        inset 0 0 0 8px rgba(212, 175, 55, .035),
        0 0 45px rgba(212, 175, 55, .08);
}

.assignments-hero__mark span,
.assignments-hero__mark strong {
    display: block;
}

.assignments-hero__mark span {
    color: var(--gold);
    letter-spacing: .2em;
    font-size: .7rem;
    font-weight: 950;
}

.assignments-hero__mark strong {
    margin-top: .2rem;
    font-size: 2rem;
}

.assignment-flow {
    margin-top: 1.3rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.assignment-flow span {
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 999px;
    padding: .42rem .7rem;
    background: rgba(255, 255, 255, .035);
    color: #e4e4e7;
    font-size: .69rem;
    font-weight: 800;
}

.assignment-flow i {
    color: var(--gold);
    font-style: normal;
    opacity: .72;
}

.assignment-overview {
    margin-bottom: 1.1rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.assignment-overview__card {
    min-height: 88px;
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: .85rem;
    background: linear-gradient(145deg, var(--surface-2), var(--surface));
    color: var(--text);
    text-decoration: none;
    transition:
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}

.assignment-overview__card:hover,
.assignment-overview__card.is-active {
    border-color: rgba(212, 175, 55, .5);
    transform: translateY(-2px);
    box-shadow: 0 16px 35px rgba(0, 0, 0, .18);
}

.assignment-overview__card--live.is-active {
    border-color: rgba(227, 0, 27, .65);
}

.assignment-overview__icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    background: rgba(212, 175, 55, .12);
    color: var(--gold);
    font-size: .85rem;
    font-weight: 950;
}

.assignment-overview__card--live .assignment-overview__icon {
    background: rgba(227, 0, 27, .13);
}

.assignment-overview__icon--live {
    position: relative;
}

.assignment-overview__icon--live::before {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #ff334c;
    content: "";
    box-shadow: 0 0 0 7px rgba(227, 0, 27, .12);
    animation: assignment-live-pulse 1.8s infinite;
}

.assignment-overview__card--finished .assignment-overview__icon {
    background: rgba(0, 122, 51, .14);
    color: #86efac;
}

.assignment-overview__card strong,
.assignment-overview__card small {
    display: block;
}

.assignment-overview__card strong {
    font-size: 1.55rem;
    line-height: 1;
}

.assignment-overview__card small {
    margin-top: .3rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 800;
}

.assignment-toolbar {
    position: relative;
    z-index: 4;
    margin-bottom: 1rem;
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: .65rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    background: rgba(18, 20, 25, .86);
}

.assignment-tabs {
    display: flex;
    align-items: center;
    gap: .35rem;
    overflow-x: auto;
}

.assignment-tabs a {
    border-radius: 10px;
    padding: .65rem .8rem;
    color: #a9afb9;
    text-decoration: none;
    font-size: .74rem;
    font-weight: 850;
    white-space: nowrap;
}

.assignment-tabs a:hover,
.assignment-tabs a.is-active {
    background: rgba(212, 175, 55, .13);
    color: var(--gold);
}

.assignment-more-filters {
    position: relative;
    flex: 0 0 auto;
}

.assignment-more-filters summary {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .62rem .78rem;
    color: #d4d4d8;
    cursor: pointer;
    list-style: none;
    font-size: .73rem;
    font-weight: 850;
}

.assignment-more-filters summary::-webkit-details-marker {
    display: none;
}

.assignment-more-filters[open] summary {
    border-color: rgba(212, 175, 55, .45);
    color: var(--gold);
}

.assignment-more-filters form {
    position: absolute;
    top: calc(100% + .55rem);
    right: 0;
    width: min(440px, calc(100vw - 2rem));
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: .9rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    background: #121419;
    box-shadow: 0 20px 55px rgba(0, 0, 0, .42);
}

.assignment-more-filters label span {
    display: block;
    margin-bottom: .35rem;
    color: var(--muted);
    font-size: .67rem;
    font-weight: 800;
}

.assignment-more-filters input {
    width: 100%;
    min-height: 42px;
    border: 1px solid #343943;
    border-radius: 9px;
    padding: .6rem .7rem;
    background: #0d0f13;
    color: var(--text);
}

.assignment-more-filters form > div {
    grid-column: 1 / -1;
    display: flex;
    gap: .55rem;
}

.sports-assignment-list {
    display: grid;
    gap: 1rem;
}

.sports-match-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 20px;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, .025), transparent 48%),
        #121419;
    box-shadow: 0 14px 35px rgba(0, 0, 0, .14);
    transition:
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}

.sports-match-card:hover {
    border-color: rgba(212, 175, 55, .38);
    transform: translateY(-2px);
    box-shadow: 0 22px 48px rgba(0, 0, 0, .22);
}

.sports-match-card--en_cours {
    border-color: rgba(227, 0, 27, .42);
    background:
        linear-gradient(100deg, rgba(227, 0, 27, .08), transparent 34%),
        linear-gradient(160deg, rgba(255, 255, 255, .025), transparent 48%),
        #121419;
}

.sports-match-card__accent {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #4b5563;
}

.sports-match-card--en_cours .sports-match-card__accent {
    background: var(--red);
    box-shadow: 0 0 18px rgba(227, 0, 27, .45);
}

.sports-match-card--a_venir .sports-match-card__accent {
    background: var(--gold);
}

.sports-match-card--termine .sports-match-card__accent {
    background: var(--green);
}

.sports-match-card__header {
    padding: .9rem 1.15rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.sports-match-card__status {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: #d4d4d8;
    text-transform: uppercase;
    letter-spacing: .11em;
    font-size: .66rem;
}

.live-indicator {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ff334c;
    box-shadow: 0 0 0 5px rgba(227, 0, 27, .12);
    animation: assignment-live-pulse 1.8s infinite;
}

.sports-match-card__role {
    border: 1px solid rgba(212, 175, 55, .32);
    border-radius: 999px;
    padding: .36rem .62rem;
    background: rgba(212, 175, 55, .07);
    color: #f5d979;
    font-size: .65rem;
    font-weight: 900;
}

.sports-scoreboard {
    min-height: 150px;
    padding: 1rem clamp(1rem, 4vw, 2.5rem) 1.25rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(130px, .45fr) minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
}

.sports-team {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.sports-team--away {
    flex-direction: row-reverse;
    text-align: right;
}

.sports-team__badge {
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    border: 1px solid rgba(212, 175, 55, .28);
    border-radius: 17px;
    display: grid;
    place-items: center;
    background:
        linear-gradient(145deg, rgba(212, 175, 55, .13), rgba(212, 175, 55, .035));
    color: var(--gold);
    font-size: 1.2rem;
    font-weight: 950;
    box-shadow: inset 0 0 0 5px rgba(212, 175, 55, .025);
}

.sports-team strong {
    font-size: clamp(.9rem, 2vw, 1.22rem);
    line-height: 1.35;
}

.sports-scoreboard__center {
    text-align: center;
}

.sports-scoreboard__score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
}

.sports-scoreboard__score strong {
    min-width: 36px;
    font-size: clamp(2.2rem, 5vw, 3.3rem);
    line-height: 1;
}

.sports-scoreboard__score span {
    color: #6b7280;
    font-size: 1.5rem;
}

.sports-scoreboard__versus {
    display: block;
    color: var(--gold);
    font-size: 1.3rem;
    font-weight: 950;
    letter-spacing: .12em;
}

.sports-scoreboard__center small {
    display: block;
    margin-top: .45rem;
    color: var(--muted);
    font-size: .66rem;
    font-weight: 800;
}

.sports-match-meta {
    border-top: 1px solid rgba(255, 255, 255, .055);
    border-bottom: 1px solid rgba(255, 255, 255, .055);
    padding: .7rem 1.15rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .7rem 1.2rem;
    background: rgba(0, 0, 0, .12);
}

.sports-match-meta span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: #aeb4be;
    font-size: .7rem;
    font-weight: 750;
}

.sports-match-meta i {
    color: var(--gold);
    font-style: normal;
    font-size: .65rem;
}

.sports-match-card__footer {
    padding: .9rem 1.15rem 1.05rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sports-match-info,
.sports-match-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
}

.sports-match-info span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
}

.sports-match-info i {
    width: 21px;
    height: 21px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .055);
    color: #c4c9d1;
    font-style: normal;
    font-size: .62rem;
}

.sports-match-info .is-ready {
    color: #86efac;
}

.sports-match-info .is-ready i {
    background: rgba(0, 122, 51, .16);
    color: #86efac;
}

.sports-match-info .is-warning {
    color: #fda4af;
}

.sports-match-info .is-warning i {
    background: rgba(227, 0, 27, .13);
    color: #fda4af;
}

.sports-match-actions form {
    margin: 0;
}

.sports-action {
    border: 0;
    color: #fff;
    font-weight: 900;
}

.sports-action--event {
    background: linear-gradient(135deg, #e3001b, #ad0015);
    box-shadow: 0 8px 20px rgba(227, 0, 27, .18);
}

.sports-action--start {
    background: linear-gradient(135deg, #d4af37, #9e7d18);
    color: #101114;
    box-shadow: 0 8px 20px rgba(212, 175, 55, .13);
}

.sports-action--finish {
    border: 1px solid rgba(227, 0, 27, .45);
    background: rgba(227, 0, 27, .1);
    color: #fda4af;
}

.sports-action:hover {
    filter: brightness(1.08);
}

.sports-match-card__warning {
    margin: -.25rem 1.15rem 1rem;
    border-left: 3px solid var(--red);
    padding: .55rem .7rem;
    background: rgba(227, 0, 27, .055);
    color: #fda4af;
    font-size: .7rem;
}

.assignment-empty {
    padding: 3rem 1rem;
    text-align: center;
}

.assignment-empty > span {
    display: block;
    font-size: 2.2rem;
}

.assignment-empty h2 {
    margin: .7rem 0 0;
}

.assignment-empty p {
    margin: .45rem 0 1rem;
    color: var(--muted);
}

@keyframes assignment-live-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 5px rgba(227, 0, 27, .12);
    }

    50% {
        box-shadow: 0 0 0 10px rgba(227, 0, 27, 0);
    }
}

@media (max-width: 900px) {
    .assignments-hero__mark {
        display: none;
    }

    .sports-scoreboard {
        grid-template-columns: minmax(0, 1fr) minmax(105px, .4fr) minmax(0, 1fr);
    }

    .sports-team {
        align-items: center;
        flex-direction: column;
        text-align: center;
    }

    .sports-team--away {
        flex-direction: column;
        text-align: center;
    }

    .sports-match-card__footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 680px) {
    .assignments-hero {
        min-height: auto;
        padding: 1.35rem;
    }

    .assignment-overview {
        grid-template-columns: 1fr;
    }

    .assignment-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .assignment-tabs {
        width: 100%;
    }

    .assignment-more-filters {
        align-self: flex-end;
    }

    .assignment-more-filters form {
        position: fixed;
        z-index: 30;
        top: auto;
        right: 1rem;
        bottom: 1rem;
        left: 1rem;
        width: auto;
    }

    .sports-scoreboard {
        min-height: 135px;
        padding: .8rem;
        grid-template-columns: minmax(0, 1fr) 76px minmax(0, 1fr);
        gap: .45rem;
    }

    .sports-team__badge {
        flex-basis: 46px;
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }

    .sports-team strong {
        font-size: .78rem;
    }

    .sports-scoreboard__score {
        gap: .3rem;
    }

    .sports-scoreboard__score strong {
        min-width: 20px;
        font-size: 2rem;
    }

    .sports-match-meta {
        justify-content: flex-start;
    }

    .sports-match-actions {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .sports-match-actions .button,
    .sports-match-actions form,
    .sports-match-actions form .button {
        width: 100%;
    }
}

@media (max-width: 430px) {
    .assignment-flow i {
        display: none;
    }

    .assignment-flow span {
        font-size: .64rem;
    }

    .sports-match-card__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .sports-match-meta {
        flex-direction: column;
        gap: .45rem;
    }
}

.finance-split{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:1rem}.inline-form{display:flex;align-items:end;gap:1rem;margin-bottom:1rem}.inline-form .field{flex:1}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:1.2rem}.permission-grid label{border:1px solid var(--border);border-radius:9px;padding:.65rem;background:var(--surface-2);font-size:.75rem}.secret-panel code{display:inline-block;margin:1rem 0;padding:1rem 1.25rem;border:1px solid rgba(212,175,55,.4);border-radius:10px;background:#0d0f13;color:var(--gold);font-size:1.2rem;letter-spacing:.06em}.narrow-form{max-width:620px}.field--wide{grid-column:1/-1}@media(max-width:800px){.finance-split{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.inline-form{align-items:stretch;flex-direction:column}}


.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.module-card{border:1px solid var(--border);border-radius:18px;padding:1.1rem;display:flex;gap:.9rem;background:linear-gradient(145deg,var(--surface-2),var(--surface));color:var(--text);text-decoration:none;transition:.18s}.module-card:hover{border-color:rgba(212,175,55,.5);transform:translateY(-2px)}.module-card>span{flex:0 0 46px;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(212,175,55,.13);color:var(--gold);font-weight:950;font-size:1.1rem}.module-card h2,.module-card p{margin:0}.module-card p{margin-top:.35rem;color:var(--muted);font-size:.75rem;line-height:1.5}.module-card small{display:block;margin-top:.55rem;color:#d6ba62}.role-chip-grid{padding:1rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.role-chip-grid>span{border:1px solid var(--border);border-radius:12px;padding:.7rem;display:grid;grid-template-columns:auto 1fr;gap:.25rem .55rem;align-items:center}.role-chip-grid strong{grid-row:1/3;font-size:1.35rem;color:var(--gold)}.role-chip-grid small{color:var(--muted);font-size:.62rem}.row-warning{background:rgba(227,0,27,.06)}.creation-panel{margin-bottom:1rem;padding:1rem}.creation-panel summary{cursor:pointer;font-weight:900;color:var(--gold)}.creation-panel form{margin-top:1rem}.preline{white-space:pre-line;line-height:1.65}.compact-confirm{display:flex;justify-content:space-between;align-items:center;gap:1rem}.filter-pills{margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:.45rem}.filter-pills a{border:1px solid var(--border);border-radius:999px;padding:.45rem .7rem;color:var(--text);text-decoration:none;font-size:.7rem}.task-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.task-card{position:relative;border:1px solid var(--border);border-radius:16px;padding:1rem;background:var(--surface);color:var(--text);text-decoration:none;overflow:hidden}.task-card:before{position:absolute;inset:0 auto 0 0;width:4px;background:#64748b;content:""}.task-card.priority-haute:before{background:var(--gold)}.task-card.priority-critique:before{background:var(--red)}.task-card h2{font-size:1rem}.task-card p{color:var(--muted);font-size:.75rem;line-height:1.5}.task-card footer{display:flex;justify-content:space-between;gap:.5rem;color:#aab0b8;font-size:.65rem}.required-badge{margin-left:.4rem;border-radius:999px;padding:.25rem .45rem;background:rgba(227,0,27,.12);color:#fda4af;font-size:.62rem;font-weight:900}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.split-grid .panel{display:grid;gap:.7rem}.timeline-list{display:grid;gap:.7rem}.timeline-list article{border-left:3px solid var(--gold);padding:.6rem .8rem;background:var(--surface-2)}.timeline-list small{display:block;color:var(--muted);margin:.2rem 0}.license-control{margin-bottom:1rem;border:1px solid var(--border);border-radius:20px;padding:1.4rem;background:var(--surface)}.license-control>div{display:flex;align-items:center;gap:1rem}.license-control h2,.license-control p{margin:0}.license-control p{color:var(--muted)}.license-control__light{width:18px;height:18px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 8px rgba(34,197,94,.12)}.license-control.is-closed .license-control__light{background:var(--red);box-shadow:0 0 0 8px rgba(227,0,27,.12)}.admin-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.publication-summary{display:flex;gap:1rem}.publication-summary>div{min-width:120px;border:1px solid var(--border);border-radius:12px;padding:.8rem}.publication-summary strong,.publication-summary span{display:block}.publication-summary strong{font-size:1.4rem;color:var(--gold)}.publication-summary span{color:var(--muted);font-size:.7rem}
@media(max-width:950px){.module-grid,.task-board{grid-template-columns:repeat(2,minmax(0,1fr))}.role-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.module-grid,.task-board,.split-grid,.admin-content-grid{grid-template-columns:1fr}.role-chip-grid{grid-template-columns:1fr}.compact-confirm{align-items:stretch;flex-direction:column}.publication-summary{flex-direction:column}}


.brand__logo{width:46px;height:46px;border-radius:13px;object-fit:contain;background:#fff;padding:4px}.portal-state-card{margin-bottom:1rem;border:1px solid var(--border);border-radius:18px;padding:1.2rem;display:flex;align-items:center;gap:1rem;background:var(--surface)}.portal-state-card__light{flex:0 0 18px;width:18px;height:18px;border-radius:50%;background:#8b949e;box-shadow:0 0 0 8px rgba(139,148,158,.1)}.portal-state-card--ouvert .portal-state-card__light{background:#22c55e;box-shadow:0 0 0 8px rgba(34,197,94,.12)}.portal-state-card--lecture_seule .portal-state-card__light{background:#d4af37;box-shadow:0 0 0 8px rgba(212,175,55,.12)}.portal-state-card--ferme .portal-state-card__light{background:#ef3340;box-shadow:0 0 0 8px rgba(239,51,64,.12)}.portal-state-card small,.portal-state-card h2,.portal-state-card p{margin:0}.portal-state-card small{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}.portal-state-card h2{margin-top:.2rem}.portal-state-card p{margin-top:.3rem;color:var(--muted)}.secure-pin-panel{border:1px solid var(--border);border-radius:12px;padding:1rem;background:var(--surface-2)}.secure-pin-panel>p{margin:.35rem 0 .8rem;color:var(--muted)}.portal-mode-explanation{padding:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.portal-mode-explanation article{border:1px solid var(--border);border-radius:12px;padding:.9rem;background:var(--surface-2)}.portal-mode-explanation p{margin:.4rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.55}.branding-preview-panel{padding:1rem}.branding-preview{min-height:220px;border:1px dashed rgba(212,175,55,.4);border-radius:16px;display:grid;place-items:center;background:var(--surface-2)}.branding-preview img{max-width:80%;max-height:180px;object-fit:contain}.branding-preview--empty span{width:90px;height:90px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(135deg,#e3001b,#8c0011);font-weight:950}.logo-history-grid{padding:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.logo-history-card{border:1px solid var(--border);border-radius:14px;padding:.8rem;display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:.7rem;background:var(--surface-2)}.logo-history-card.is-active{border-color:rgba(212,175,55,.5)}.logo-history-card img{width:70px;height:70px;border-radius:10px;object-fit:contain;background:#fff;padding:4px}.logo-history-card strong,.logo-history-card small{display:block}.logo-history-card small{margin-top:.3rem;color:var(--muted)}.logo-history-card form,.logo-history-card .status{grid-column:1/-1}.application-detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;margin-bottom:1rem}.detail-list{display:grid;gap:.75rem}.detail-list div{border-bottom:1px solid var(--border);padding-bottom:.7rem}.detail-list dt{color:var(--muted);font-size:.68rem}.detail-list dd{margin:.25rem 0 0}.availability-list{display:grid;gap:.6rem}.availability-list article{border:1px solid var(--border);border-radius:10px;padding:.7rem;background:var(--surface-2)}.availability-list strong,.availability-list span,.availability-list small{display:block}.availability-list span{margin-top:.25rem}.availability-list small{margin-top:.25rem;color:var(--muted)}@media(max-width:850px){.portal-mode-explanation,.logo-history-grid,.application-detail-grid{grid-template-columns:1fr}}
