:root{--bg:#11131a;--panel:#1b1e28;--panel2:#222633;--line:#303544;--text:#f1f3f8;--muted:#9ba3b5;--blue:#69a9ff;--purple:#9d8cff;--green:#8ee0b0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 Inter,Segoe UI,Arial,sans-serif}.top{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,22px);background:#171923;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none;font-weight:900;letter-spacing:2px}.brand-mark{background:linear-gradient(135deg,#6baeff,#8b7cff);padding:7px 10px;border-radius:7px;color:#10131b;font-size:18px;letter-spacing:-1px}nav{display:flex;gap:25px;align-items:center}nav a,.admin-link a{color:#c4cad7;text-decoration:none}nav a:hover,.admin-link a:hover{color:white}.nav-join{background:#6baeff;color:#10131b!important;padding:8px 15px;border-radius:5px;font-weight:700}.wrap{width:min(1120px,92vw);margin:38px auto 80px}.hero{min-height:310px;border:1px solid #343b50;border-radius:12px;background:radial-gradient(ellipse at 78% 35%,#34466a 0,transparent 42%),linear-gradient(110deg,#22283a,#171b27 65%);padding:42px;display:flex;justify-content:space-between;overflow:hidden}.hero h1{font-size:clamp(34px,5vw,54px);line-height:1.08;margin:12px 0}.hero h1 span{color:var(--blue)}.hero p,.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;color:#9cafff;font-weight:800}.hero-art{width:36%;position:relative;min-height:220px;border:1px solid #52678a;border-radius:8px;background:linear-gradient(145deg,#384a69aa,#151a27aa);transform:skew(-8deg);overflow:hidden}.track-line{position:absolute;width:150%;height:70px;border:12px solid #9bc6ff;border-left:0;border-right:0;transform:rotate(-28deg);top:80px;left:-20px;box-shadow:0 0 30px #6baeff66}.hero-number{position:absolute;right:25px;top:15px;font-size:75px;font-weight:900;color:#ffffff18}.hero-caption{position:absolute;bottom:17px;left:20px;font-size:10px;letter-spacing:3px}.button,button{display:inline-block;border:0;border-radius:5px;background:var(--blue);color:#101722;padding:11px 17px;font-weight:800;text-decoration:none;cursor:pointer}.toolbar{margin:25px 0}.toolbar form{display:flex;gap:10px}.toolbar input{flex:1}.toolbar input, input,textarea,select{width:100%;background:#12151e;border:1px solid #363d4e;border-radius:5px;color:var(--text);padding:12px;font:inherit}.toolbar select{width:190px}.section-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin:25px 0 10px}.section-head h2{font-size:20px}.section-head span{color:var(--muted);font-size:13px}.map-list{display:grid;gap:9px}.map-row{display:flex;align-items:center;gap:17px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:7px}.map-thumb{width:76px;height:66px;flex:none;border-radius:5px;background:linear-gradient(145deg,#3c5476,#202a3d);display:grid;place-items:center;color:#b6d5ff;font-weight:900;font-size:21px}.map-info{flex:1;min-width:0}.map-title{font-size:17px;color:#f3f5fb;text-decoration:none;font-weight:750}.map-title:hover{color:var(--blue)}.tags{display:flex;gap:7px;margin-top:7px}.tags span{font-size:11px;color:#aeb8cc;background:#2b3040;padding:3px 7px;border-radius:3px}.map-download{text-align:right;display:grid;gap:1px;min-width:105px}.map-download strong{font-size:18px}.map-download small{color:var(--muted)}.map-download a{color:var(--blue);font-size:12px;text-decoration:none;margin-top:4px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:25px;margin:20px 0}.narrow{max-width:500px;margin:40px auto}.panel h1{margin-top:0}.panel form{display:grid;gap:15px}.panel label{display:grid;gap:6px;color:#c6ccda}.panel textarea{resize:vertical}.panel button{justify-self:start}.flash{padding:12px 15px;background:#283a35;border:1px solid #3c6b58;color:#b7f0d1;border-radius:6px;margin-bottom:20px}.stats,.actions{display:flex;gap:20px;align-items:center;margin:20px 0;color:var(--muted)}.secondary{background:#353d50;color:#e4e9f3}.danger{background:#a94352;color:white}.inline{display:flex!important;grid-template-columns:none!important;gap:8px!important}.admin-row{display:flex;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.admin-row>a{flex:1;color:white}.admin-row span{color:var(--muted)}.admin-row form{display:block!important}footer{text-align:center;border-top:1px solid var(--line);padding:25px;color:#747d90;font-size:12px}.admin-link{margin-top:30px}h1{font-size:32px}a{color:var(--blue)}@media(max-width:700px){.top{padding:0 4vw}nav{gap:10px;font-size:12px}.brand{font-size:12px}.hero{padding:25px}.hero-art{display:none}.toolbar form{flex-wrap:wrap}.toolbar select{width:100%}.map-row{gap:10px}.map-thumb{width:55px;height:55px}.map-download{min-width:75px}.map-download a{font-size:11px}.map-title{font-size:15px}.muted{font-size:12px}}

/* ADMINISTRATION TMX EXCHANGE */
.admin-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}
.admin-heading h1{margin:8px 0 0}
.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}
.admin-stat{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:19px;display:flex;flex-direction:column;gap:5px}
.admin-stat span{color:#c4cad7;font-size:13px}
.admin-stat strong{font-size:27px;color:var(--blue)}
.admin-stat small{color:var(--muted);font-size:11px}
.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.admin-columns .panel{min-width:0}
.admin-columns h2,.panel>h2{font-size:18px;margin:0 0 15px}
.admin-row{flex-wrap:wrap}
.admin-row>a{min-width:0}
.admin-row span,.admin-row small{font-size:12px}
.status-published{color:var(--green)!important}
.status-hidden{color:#ff9caa!important}
.admin-comment{padding:13px 0;border-bottom:1px solid var(--line)}
.admin-comment p{margin:7px 0;color:#d4d9e4;overflow-wrap:anywhere}
.admin-comment small{color:var(--muted)}
@media(max-width:850px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-columns{grid-template-columns:1fr}}
@media(max-width:480px){.admin-stats{gap:8px}.admin-stat{padding:13px}.admin-stat strong{font-size:22px}.admin-row{gap:8px}}

/* GESTION DES MEMBRES */
.admin-members {
    margin-top: 20px;
}

.admin-member-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 15px 0;
    border-bottom: 1px solid var(--line);
}

.admin-member-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.admin-member-info strong {
    color: var(--text);
}

.admin-member-info span,
.admin-member-info small {
    color: var(--muted);
    overflow-wrap: anywhere;
}

.admin-member-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-member-actions form {
    margin: 0;
}

.admin-member-actions button {
    white-space: nowrap;
}

@media(max-width:650px) {
    .admin-member-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* MODERATION DES CIRCUITS */
.admin-moderation {
    margin-top: 20px;
}

.admin-search {
    display: flex;
    gap: 10px;
    margin: 18px 0;
    flex-wrap: wrap;
}

.admin-search input {
    flex: 1;
    min-width: 200px;
}

.admin-map-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 15px 0;
    border-bottom: 1px solid var(--line);
}

.admin-map-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.admin-map-info strong {
    font-size: 15px;
}

.admin-map-info span,
.admin-map-info small {
    color: var(--muted);
    overflow-wrap: anywhere;
}

.admin-map-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.admin-map-actions form {
    margin: 0;
}

.admin-map-actions button {
    white-space: nowrap;
}

@media(max-width:650px) {
    .admin-map-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* MODERATION DES COMMENTAIRES */
.admin-comment-moderation {
    margin-top: 20px;
}

.admin-comment-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.admin-comment-actions form {
    margin: 0;
}

.admin-comment-actions button {
    font-size: 12px;
    padding: 8px 13px;
}


/* ESPACE COMMENTAIRES */
.map-comments {
    margin-top: 20px;
}

.map-comments h2 {
    margin-top: 0;
    font-size: 20px;
}

.comment-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 20px 0;
}

.comment-form textarea {
    width: 100%;
    min-height: 100px;
    resize: vertical;
}

.comment-form small {
    color: var(--muted);
}

.map-comment {
    padding: 16px 0;
    border-top: 1px solid var(--line);
}

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

.map-comment-heading small {
    color: var(--muted);
}

.map-comment p {
    color: var(--text);
    overflow-wrap: anywhere;
    line-height: 1.6;
}

.map-comment form {
    margin-top: 8px;
}

.map-comment button {
    font-size: 12px;
    padding: 7px 12px;
}


/* NOUVEAU DESIGN FICHE CIRCUIT */
.map-detail {
    position: relative;
    overflow: hidden;
    padding: 32px;
    border: 1px solid #3b4964;
    background:
        radial-gradient(ellipse at 90% 0%, #526da044, transparent 45%),
        linear-gradient(135deg, #242d40, #1b1e28 65%);
}

.map-detail .eyebrow {
    color: #8dbbff;
}

.map-detail h1 {
    font-size: clamp(30px, 5vw, 46px);
    margin: 12px 0 18px;
    overflow-wrap: anywhere;
}

.map-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 18px 0 25px;
}

.map-badges span {
    background: #303b52;
    border: 1px solid #465675;
    color: #dce8ff;
    border-radius: 5px;
    padding: 6px 11px;
    font-size: 12px;
    font-weight: 700;
}

.map-description {
    color: #d2d8e5;
    line-height: 1.8;
    margin: 20px 0;
    overflow-wrap: anywhere;
}

.map-detail-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 25px 0;
}

.map-detail-stat {
    background: #151a25aa;
    border: 1px solid #38445b;
    border-radius: 7px;
    padding: 14px 17px;
}

.map-detail-stat small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.map-detail-stat strong {
    display: block;
    color: white;
    font-size: 21px;
    margin-top: 3px;
}

.map-detail .actions {
    flex-wrap: wrap;
    margin: 25px 0 10px;
}

.map-detail .download-main {
    background: linear-gradient(110deg, #75b6ff, #9b8cff);
    color: #101522;
    padding: 15px 25px;
    font-size: 15px;
    box-shadow: 0 5px 22px #6baeff33;
}

.map-detail .download-main:hover {
    filter: brightness(1.12);
    transform: translateY(-1px);
}

.map-detail .secondary {
    padding: 13px 18px;
}

.map-detail .inline {
    margin-top: 20px;
}

@media(max-width:600px) {
    .map-detail {
        padding: 21px;
    }

    .map-detail-stats {
        gap: 8px;
    }

    .map-detail-stat {
        padding: 11px;
    }

    .map-detail-stat strong {
        font-size: 18px;
    }

    .map-detail .actions {
        align-items: stretch;
        flex-direction: column;
    }

    .map-detail .actions > a,
    .map-detail .actions > form,
    .map-detail .actions > form button {
        width: 100%;
        text-align: center;
    }
}


/* Aperçu image des circuits */
.map-preview {
    display: block;
    width: 100%;
    max-width: 500px;
    max-height: 300px;
    aspect-ratio: 16 / 9;
    object-fit: contain;
    border-radius: 8px;
    margin: 0 0 28px;
    border: 1px solid #465675;
    background: #12151e;
}


/* Accueil : affichage compact des maps */
.map-list {
    gap: 6px;
}

.map-row {
    gap: 12px;
    padding: 9px 12px;
}

.map-thumb {
    width: 58px;
    height: 50px;
    font-size: 17px;
}

.map-title {
    font-size: 14px;
    line-height: 1.3;
}

.map-info .muted {
    font-size: 12px;
    line-height: 1.3;
}

.tags {
    gap: 5px;
    margin-top: 4px;
}

.tags span {
    font-size: 10px;
    padding: 2px 5px;
}

.map-download {
    min-width: 90px;
}

.map-download strong {
    font-size: 15px;
}

.map-download small,
.map-download a {
    font-size: 11px;
}


/* Tableau compact des maps */
.maps-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--panel);
}
.maps-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    line-height: 1.35;
    white-space: nowrap;
}
.maps-table th {
    padding: 9px 10px;
    text-align: left;
    color: var(--muted);
    background: var(--panel2);
    font-size: 11px;
}
.maps-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--line);
}
.maps-table tbody tr:hover { background: #252a38; }
.maps-table .table-map-name a {
    color: #f3f5fb;
    font-weight: 700;
    text-decoration: none;
}
.maps-table .table-map-name a:hover { color: var(--blue); }
.maps-table .table-difficulty {
    padding: 2px 6px;
    border-radius: 3px;
    background: #2b3040;
    font-size: 10px;
}
.maps-table .table-date { color: var(--muted); }
.maps-table .number-cell { text-align: right; }
.maps-table .table-download {
    margin-left: 9px;
    color: var(--blue);
    text-decoration: none;
    font-size: 11px;
}
.maps-table .table-empty {
    padding: 22px;
    color: var(--muted);
    text-align: center;
}

/* Temps des médailles sur la fiche circuit */
.map-medals {
    margin: 28px 0;
}

.map-medals h2,
.map-technical h2 {
    font-size: 1.2rem;
    margin-bottom: 16px;
}

.medal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 12px;
}

.medal-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    background: #12151e;
    border: 1px solid #465675;
    border-radius: 10px;
}

.medal-item span {
    color: #aebbd2;
    font-size: 0.9rem;
}

.medal-item strong {
    font-size: 1.35rem;
}

.map-technical {
    margin: 28px 0;
    padding: 18px;
    background: #12151e;
    border: 1px solid #465675;
    border-radius: 10px;
}

.map-technical p {
    margin: 8px 0;
    overflow-wrap: anywhere;
}

.map-technical code {
    color: #aebbd2;
    overflow-wrap: anywhere;
}


/* Échelle visuelle des médailles */
.medal-scale {
    margin-top: 30px;
    padding: 18px;
    background: #12151e;
    border: 1px solid #465675;
    border-radius: 10px;
}

.medal-scale h3 {
    margin: 0 0 35px;
    font-size: 1rem;
}

.medal-track {
    position: relative;
    height: 5px;
    margin: 0 12px 48px;
    background: linear-gradient(to right, #d9ad35, #aeb7c5, #a66a43);
    border-radius: 10px;
}

.medal-marker {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    white-space: nowrap;
}

.medal-marker i {
    width: 15px;
    height: 15px;
    border: 3px solid #12151e;
    border-radius: 50%;
    background: #d9ad35;
}

.medal-marker.silver i {
    background: #aeb7c5;
}

.medal-marker.bronze i {
    background: #a66a43;
}

.medal-marker b {
    font-size: 0.85rem;
}

.medal-scale > p {
    margin: 0;
    font-size: 0.8rem;
}


/* Médailles dans le tableau d'accueil */
.table-medals {
    white-space: nowrap;
    text-align: center;
    min-width: 100px;
}

.table-medals span {
    display: inline-block;
    font-size: 1.05rem;
    cursor: help;
    margin: 0 2px;
}


/* Barre de recherche et filtres */
.toolbar form {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) repeat(5, minmax(110px, 1fr)) auto;
    gap: 10px;
    align-items: stretch;
}

.toolbar input {
    width: 100%;
    min-width: 0;
}

.toolbar select {
    width: 100%;
    min-width: 0;
}

.toolbar button {
    white-space: nowrap;
}

@media (max-width: 1000px) {
    .toolbar form {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .toolbar form input {
        grid-column: span 2;
    }
}

@media (max-width: 600px) {
    .toolbar form {
        grid-template-columns: 1fr 1fr;
    }

    .toolbar form input {
        grid-column: span 2;
    }

    .toolbar form button {
        grid-column: span 2;
    }
}

/* Titre TMX SSM */
.hero h1 span {
    color: #FFD400;
    font-weight: 900;
    text-shadow: 0 0 18px rgba(255, 212, 0, 0.25);
}

/* Encadré analyse automatique GBX */
.gbx-info {
    margin: 20px 0;
    padding: 18px;
    background: #191b22;
    border: 1px solid #FFD400;
    border-left: 4px solid #FFD400;
    border-radius: 10px;
}

.gbx-info strong {
    display: block;
    color: #FFD400;
    font-size: 1.1rem;
    margin-bottom: 10px;
}

.gbx-info p {
    color: #c5ccda;
    margin: 8px 0;
    line-height: 1.6;
}

/* =================================
   THEME JAUNE TMX SSM°
   Accueil et Upload uniquement
================================= */

/* PAGE ACCUEIL */
.hero h1,
.hero h1 span,
.hero p,
.hero .eyebrow,
.hero-caption {
    color: #FFD400;
}

.toolbar input,
.toolbar select {
    color: #FFD400;
}

.toolbar button {
    color: #FFD400;
}

.section-head h2,
.section-head span {
    color: #FFD400;
}

.maps-table th,
.maps-table td,
.maps-table .table-map-name a,
.maps-table .table-difficulty,
.maps-table .table-date,
.maps-table .table-download {
    color: #FFD400;
}

.maps-table .table-map-name a:hover,
.maps-table .table-download:hover {
    color: #fff0a0;
}

/* PAGE UPLOAD */
.upload-panel h1,
.upload-panel p,
.upload-panel label,
.upload-panel .muted {
    color: #FFD400;
}

.upload-panel input,
.upload-panel select,
.upload-panel textarea {
    color: #FFD400;
    border-color: #806f22;
}

.upload-panel input::placeholder,
.upload-panel textarea::placeholder {
    color: #c5a900;
}

.upload-panel option {
    color: #FFD400;
    background: #12151e;
}

.upload-panel button {
    color: #FFD400;
}

.upload-panel .gbx-info {
    border-color: #FFD400;
}

.upload-panel .gbx-info strong,
.upload-panel .gbx-info p {
    color: #FFD400;
}


/* Suppression des maps depuis l'accueil - administrateur */
.maps-table .admin-action-cell {
    text-align: center;
    width: 65px;
}

.maps-table .admin-action-cell form {
    margin: 0;
}

.admin-delete-button {
    background: #b52d3b;
    color: white;
    border: 1px solid #e04b59;
    border-radius: 5px;
    width: 30px;
    height: 30px;
    padding: 0;
    font-size: 23px;
    line-height: 1;
    cursor: pointer;
}

.admin-delete-button:hover {
    background: #e02035;
    transform: scale(1.08);
}

/* TMX SSM - Fond Trackmania Stadium */
body {
    background-color: #11131a;
    background-image:
        linear-gradient(rgba(10, 12, 20, 0.72), rgba(10, 12, 20, 0.82)),
        url('/trackmania-bg.jpg');
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* Navigation TMX SSM° - Jaune */
.brand,
.brand-mark,
nav a,
nav a:visited,
.admin-link a {
    color: #FFD400 !important;
}

.brand-mark {
    background: transparent;
    text-shadow: 0 0 8px #FFD40088;
}

.nav-join {
    background: #FFD400 !important;
    color: #11131a !important;
}

nav a:hover,
.admin-link a:hover,
.brand:hover {
    color: #fff1a3 !important;
    text-shadow: 0 0 10px #FFD400;
}

/* =====================================
   TMX SSM° - STATISTICS & HALL OF FAME
   ===================================== */

.tmx-statistics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin: 28px 0;
}

.tmx-stat-card {
    background: linear-gradient(145deg, #20232e, #11131a);
    border: 1px solid #FFD40055;
    border-radius: 14px;
    padding: 24px 18px;
    text-align: center;
    box-shadow: 0 5px 20px #0006;
    transition: .25s ease;
}

.tmx-stat-card:hover {
    transform: translateY(-4px);
    border-color: #FFD400;
    box-shadow: 0 0 18px #FFD40033;
}

.tmx-stat-card span {
    display: block;
    color: #FFD400;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.5px;
    margin-bottom: 12px;
}

.tmx-stat-card strong {
    display: block;
    color: #fff;
    font-size: 32px;
    text-shadow: 0 0 12px #FFD40055;
}

.tmx-hall-of-fame {
    background: linear-gradient(145deg, #20232e, #11131a);
    border: 1px solid #FFD40066;
    border-radius: 14px;
    padding: 24px;
    margin: 28px 0;
    box-shadow: 0 5px 22px #0006;
}

.tmx-hall-of-fame h2 {
    color: #FFD400;
    margin: 0 0 5px;
    letter-spacing: 1px;
}

.tmx-hall-of-fame > p {
    margin-bottom: 20px;
}

.tmx-hall-row {
    display: grid;
    grid-template-columns: 48px minmax(0, 2fr) minmax(0, 1fr) 85px;
    align-items: center;
    gap: 12px;
    padding: 14px 10px;
    border-bottom: 1px solid #ffffff16;
    transition: .2s ease;
}

.tmx-hall-row:last-child {
    border-bottom: none;
}

.tmx-hall-row:hover {
    background: #FFD4000d;
}

.tmx-hall-rank {
    color: #FFD400;
    font-weight: 900;
    font-size: 18px;
}

.tmx-hall-row > a {
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.tmx-hall-row > a:hover {
    color: #FFD400;
}

.tmx-hall-author {
    color: #aeb5c4;
    font-size: 13px;
}

.tmx-hall-row > strong {
    color: #FFD400;
    text-align: right;
    font-size: 13px;
}

@media (max-width: 650px) {
    .tmx-statistics {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .tmx-stat-card {
        padding: 17px;
    }

    .tmx-stat-card strong {
        font-size: 27px;
    }

    .tmx-hall-of-fame {
        padding: 16px;
    }

    .tmx-hall-row {
        grid-template-columns: 35px minmax(0, 1fr) 65px;
        gap: 8px;
    }

    .tmx-hall-author {
        display: none;
    }
}

/* TMX SSM° - Système de notation */
.table-vote {
    min-width: 125px;
    text-align: center;
}

.vote-average {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-bottom: 5px;
}

.vote-average strong {
    color: #FFD400;
    font-size: 14px;
}

.vote-average small {
    color: #aeb5c4;
    font-size: 11px;
}

.vote-form {
    display: flex;
    justify-content: center;
    gap: 2px;
}

.vote-star {
    background: transparent;
    border: 0;
    padding: 1px;
    color: #656b78;
    font-size: 19px;
    cursor: pointer;
    line-height: 1;
}

.vote-star.is-selected,
.vote-star:hover {
    color: #FFD400;
    text-shadow: 0 0 8px #FFD40088;
}

.vote-login {
    color: #FFD400;
    font-size: 12px;
    text-decoration: none;
}

.vote-login:hover {
    color: white;
}

/* Correction boutons étoiles dans le tableau */
.maps-table .vote-form {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.maps-table .vote-form .vote-star {
    display: inline-block;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 1px !important;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    color: #656b78;
    font-size: 19px;
    line-height: 1;
    font-weight: normal;
    box-shadow: none;
}

.maps-table .vote-form .vote-star.is-selected,
.maps-table .vote-form .vote-star:hover {
    color: #FFD400;
    text-shadow: 0 0 8px #FFD40088;
}

/* Notation sur la fiche d'un circuit */
.map-rating {
    margin: 22px 0;
    padding: 18px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 212, 0, 0.22);
    border-radius: 10px;
}

.map-rating h2 {
    margin: 0 0 12px;
    color: #FFD400;
}

.map-rating .vote-average {
    justify-content: flex-start;
    margin-bottom: 10px;
}

.map-rating .vote-average strong {
    font-size: 22px;
}

.map-rating .vote-form {
    display: flex;
    justify-content: flex-start;
    gap: 5px;
}

.map-rating .vote-form .vote-star {
    display: inline-block;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 2px 4px !important;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    color: #656b78;
    font-size: 30px;
    line-height: 1;
    box-shadow: none;
    cursor: pointer;
}

.map-rating .vote-form .vote-star.is-selected,
.map-rating .vote-form .vote-star:hover {
    color: #FFD400;
    text-shadow: 0 0 8px #FFD40088;
}

.map-rating .vote-login {
    font-size: 14px;
}


/* Note moyenne à côté du nom du circuit */
.map-name-rating {
    display: inline-block;
    margin-left: 7px;
    color: #FFD400;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
    text-shadow: 0 0 6px #FFD40055;
}


/* =========================================
   REFONTE VISUELLE TMX SSM°
   Identité historique bleu nuit / jaune / violet
========================================= */

/* Grand titre central */
.hero {
    min-height: 245px;
    position: relative;
    align-items: center;
    justify-content: center;
    text-align: center;
    background:
        radial-gradient(ellipse at 50% 40%, #34345c 0%, transparent 65%),
        linear-gradient(120deg, #101522, #1b1c30 55%, #111522);
    border: 1px solid #555080;
    box-shadow: 0 8px 30px #0007;
}

.hero > div:first-child {
    position: relative;
    z-index: 2;
    width: 100%;
}

.hero h1 {
    font-size: clamp(48px, 7vw, 76px);
    letter-spacing: 4px;
    margin: 8px 0;
}

.hero h1 span {
    color: #FFD400;
    text-shadow: 0 0 22px #FFD40066;
}

.hero .eyebrow {
    color: #b69cff;
    letter-spacing: 4px;
}

.hero p {
    color: #e0e2f0;
}

.hero-art {
    position: absolute;
    right: 3%;
    width: 27%;
    opacity: .35;
    z-index: 1;
}

/* Statistiques */
.tmx-statistics {
    gap: 15px;
    margin: 22px 0;
}

.tmx-stat-card {
    background: linear-gradient(145deg, #202b43, #111827);
    border: 1px solid #555b83;
    border-radius: 9px;
    box-shadow: 0 5px 18px #0008;
}

.tmx-stat-card:hover {
    border-color: #FFD400;
}

.tmx-stat-card span {
    color: #FFD400;
    letter-spacing: 2px;
}

.tmx-stat-card strong {
    color: #fff;
    font-size: 36px;
}

/* Hall of Fame violet */
.tmx-hall-of-fame {
    background: linear-gradient(145deg, #292044, #17152a);
    border: 2px solid #9270db;
    border-radius: 10px;
    padding: 23px;
    box-shadow: 0 0 22px #7852bb33;
}

.tmx-hall-of-fame h2 {
    color: #d4b5ff;
    font-size: 22px;
    letter-spacing: 2px;
}

.tmx-hall-of-fame > p {
    color: #b9a8dc;
}

.tmx-hall-row {
    border-bottom-color: #ffffff20;
}

.tmx-hall-row:hover {
    background: #a17aff18;
}

.tmx-hall-rank {
    color: #e1c4ff;
}

.tmx-hall-row > a:hover {
    color: #d4b5ff;
}

.tmx-hall-row > strong {
    color: #FFD400;
}

/* Adaptation mobile */
@media (max-width: 650px) {
    .hero {
        min-height: 210px;
        padding: 25px 15px;
    }

    .hero h1 {
        font-size: 42px;
        letter-spacing: 2px;
    }

    .hero-art {
        display: none;
    }

    .tmx-statistics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
    }

    .tmx-stat-card {
        padding: 13px 5px;
    }

    .tmx-stat-card span {
        font-size: 9px;
        letter-spacing: 0;
    }

    .tmx-stat-card strong {
        font-size: 21px;
    }
}


/* =========================================
   REFONTE VISUELLE TMX SSM°
   Identité historique bleu nuit / jaune / violet
========================================= */

/* Grand titre central */
.hero {
    min-height: 245px;
    position: relative;
    align-items: center;
    justify-content: center;
    text-align: center;
    background:
        radial-gradient(ellipse at 50% 40%, #34345c 0%, transparent 65%),
        linear-gradient(120deg, #101522, #1b1c30 55%, #111522);
    border: 1px solid #555080;
    box-shadow: 0 8px 30px #0007;
}

.hero > div:first-child {
    position: relative;
    z-index: 2;
    width: 100%;
}

.hero h1 {
    font-size: clamp(48px, 7vw, 76px);
    letter-spacing: 4px;
    margin: 8px 0;
}

.hero h1 span {
    color: #FFD400;
    text-shadow: 0 0 22px #FFD40066;
}

.hero .eyebrow {
    color: #b69cff;
    letter-spacing: 4px;
}

.hero p {
    color: #e0e2f0;
}

.hero-art {
    position: absolute;
    right: 3%;
    width: 27%;
    opacity: .35;
    z-index: 1;
}

/* Statistiques */
.tmx-statistics {
    gap: 15px;
    margin: 22px 0;
}

.tmx-stat-card {
    background: linear-gradient(145deg, #202b43, #111827);
    border: 1px solid #555b83;
    border-radius: 9px;
    box-shadow: 0 5px 18px #0008;
}

.tmx-stat-card:hover {
    border-color: #FFD400;
}

.tmx-stat-card span {
    color: #FFD400;
    letter-spacing: 2px;
}

.tmx-stat-card strong {
    color: #fff;
    font-size: 36px;
}

/* Hall of Fame violet */
.tmx-hall-of-fame {
    background: linear-gradient(145deg, #292044, #17152a);
    border: 2px solid #9270db;
    border-radius: 10px;
    padding: 23px;
    box-shadow: 0 0 22px #7852bb33;
}

.tmx-hall-of-fame h2 {
    color: #d4b5ff;
    font-size: 22px;
    letter-spacing: 2px;
}

.tmx-hall-of-fame > p {
    color: #b9a8dc;
}

.tmx-hall-row {
    border-bottom-color: #ffffff20;
}

.tmx-hall-row:hover {
    background: #a17aff18;
}

.tmx-hall-rank {
    color: #e1c4ff;
}

.tmx-hall-row > a:hover {
    color: #d4b5ff;
}

.tmx-hall-row > strong {
    color: #FFD400;
}

/* Adaptation mobile */
@media (max-width: 650px) {
    .hero {
        min-height: 210px;
        padding: 25px 15px;
    }

    .hero h1 {
        font-size: 42px;
        letter-spacing: 2px;
    }

    .hero-art {
        display: none;
    }

    .tmx-statistics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
    }

    .tmx-stat-card {
        padding: 13px 5px;
    }

    .tmx-stat-card span {
        font-size: 9px;
        letter-spacing: 0;
    }

    .tmx-stat-card strong {
        font-size: 21px;
    }
}


/* =========================================
   REFONTE VISUELLE TMX SSM°
   Identité historique bleu nuit / jaune / violet
========================================= */

/* Grand titre central */
.hero {
    min-height: 245px;
    position: relative;
    align-items: center;
    justify-content: center;
    text-align: center;
    background:
        radial-gradient(ellipse at 50% 40%, #34345c 0%, transparent 65%),
        linear-gradient(120deg, #101522, #1b1c30 55%, #111522);
    border: 1px solid #555080;
    box-shadow: 0 8px 30px #0007;
}

.hero > div:first-child {
    position: relative;
    z-index: 2;
    width: 100%;
}

.hero h1 {
    font-size: clamp(48px, 7vw, 76px);
    letter-spacing: 4px;
    margin: 8px 0;
}

.hero h1 span {
    color: #FFD400;
    text-shadow: 0 0 22px #FFD40066;
}

.hero .eyebrow {
    color: #b69cff;
    letter-spacing: 4px;
}

.hero p {
    color: #e0e2f0;
}

.hero-art {
    position: absolute;
    right: 3%;
    width: 27%;
    opacity: .35;
    z-index: 1;
}

/* Statistiques */
.tmx-statistics {
    gap: 15px;
    margin: 22px 0;
}

.tmx-stat-card {
    background: linear-gradient(145deg, #202b43, #111827);
    border: 1px solid #555b83;
    border-radius: 9px;
    box-shadow: 0 5px 18px #0008;
}

.tmx-stat-card:hover {
    border-color: #FFD400;
}

.tmx-stat-card span {
    color: #FFD400;
    letter-spacing: 2px;
}

.tmx-stat-card strong {
    color: #fff;
    font-size: 36px;
}

/* Hall of Fame violet */
.tmx-hall-of-fame {
    background: linear-gradient(145deg, #292044, #17152a);
    border: 2px solid #9270db;
    border-radius: 10px;
    padding: 23px;
    box-shadow: 0 0 22px #7852bb33;
}

.tmx-hall-of-fame h2 {
    color: #d4b5ff;
    font-size: 22px;
    letter-spacing: 2px;
}

.tmx-hall-of-fame > p {
    color: #b9a8dc;
}

.tmx-hall-row {
    border-bottom-color: #ffffff20;
}

.tmx-hall-row:hover {
    background: #a17aff18;
}

.tmx-hall-rank {
    color: #e1c4ff;
}

.tmx-hall-row > a:hover {
    color: #d4b5ff;
}

.tmx-hall-row > strong {
    color: #FFD400;
}

/* Adaptation mobile */
@media (max-width: 650px) {
    .hero {
        min-height: 210px;
        padding: 25px 15px;
    }

    .hero h1 {
        font-size: 42px;
        letter-spacing: 2px;
    }

    .hero-art {
        display: none;
    }

    .tmx-statistics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
    }

    .tmx-stat-card {
        padding: 13px 5px;
    }

    .tmx-stat-card span {
        font-size: 9px;
        letter-spacing: 0;
    }

    .tmx-stat-card strong {
        font-size: 21px;
    }
}


/* =========================================
   TMX SSM° - REFONTE FICHE CIRCUIT
   Bleu nuit / Jaune / Violet
========================================= */

/* Panneau principal */
.map-detail {
    background:
        radial-gradient(ellipse at 90% 0%, #51407844, transparent 45%),
        linear-gradient(145deg, #202b43, #111827 75%);
    border: 1px solid #555b83;
    border-radius: 12px;
    box-shadow: 0 8px 30px #0008;
}

.map-detail .eyebrow {
    color: #c5a5ff;
    letter-spacing: 3px;
    font-weight: 800;
}

.map-detail h1 {
    color: #FFD400;
    text-shadow: 0 0 18px #FFD40033;
}

/* Badges */
.map-badges span {
    background: #29344e;
    border: 1px solid #59658b;
    color: #f0eaff;
    border-radius: 6px;
}

.map-badges span:first-child {
    border-color: #9270db;
}

/* Aperçu */
.map-preview {
    border: 2px solid #65548f;
    border-radius: 10px;
    box-shadow: 0 5px 20px #0008;
}

/* Description */
.map-description {
    color: #e0e2f0;
}

/* Statistiques */
.map-detail-stat {
    background: #151d30;
    border: 1px solid #485477;
}

.map-detail-stat small {
    color: #b9a8dc;
}

.map-detail-stat strong {
    color: #FFD400;
}

/* Bouton téléchargement */
.map-detail .download-main {
    background: linear-gradient(110deg, #FFD400, #ffad24);
    color: #171522;
    box-shadow: 0 5px 22px #FFD40033;
    font-weight: 900;
}

/* Médailles */
.map-medals {
    background: linear-gradient(145deg, #202b43, #171c2c);
    border: 1px solid #59658b;
    border-radius: 10px;
    padding: 22px;
    margin: 25px 0;
}

.map-medals h2,
.map-technical h2 {
    color: #FFD400;
    letter-spacing: 1px;
}

.medal-item {
    background: #111a2b;
    border: 1px solid #465477;
    border-radius: 8px;
    padding: 15px;
}

.medal-item span {
    color: #d8caff;
}

.medal-item strong {
    color: #fff;
    font-size: 22px;
}

/* Échelle des médailles */
.medal-scale {
    background: #17152a;
    border: 1px solid #65548f;
    border-radius: 8px;
    padding: 18px;
    margin-top: 20px;
}

.medal-scale h3 {
    color: #d4b5ff;
}

.medal-scale > p {
    color: #b9a8dc;
}

/* Informations techniques */
.map-technical {
    background: linear-gradient(145deg, #292044, #17152a);
    border: 1px solid #8064b9;
    border-radius: 10px;
    padding: 22px;
    margin: 25px 0;
}

.map-technical p {
    color: #e5dcf7;
}

.map-technical code {
    color: #FFD400;
    overflow-wrap: anywhere;
}

/* Notation violette */
.map-rating {
    background: linear-gradient(145deg, #292044, #17152a);
    border: 2px solid #9270db;
    border-radius: 10px;
    padding: 23px;
    margin: 25px 0;
    box-shadow: 0 0 22px #7852bb22;
}

.map-rating h2 {
    color: #d4b5ff;
    letter-spacing: 1px;
}

.map-rating .vote-average strong {
    color: #FFD400;
}

.map-rating .vote-average small {
    color: #c9b8e8;
}

.map-rating .vote-form .vote-star {
    color: #766a91;
}

.map-rating .vote-form .vote-star.is-selected,
.map-rating .vote-form .vote-star:hover {
    color: #FFD400;
}

.map-rating .vote-login {
    color: #d4b5ff;
}

/* Mobile */
@media (max-width: 600px) {
    .map-detail {
        padding: 18px;
    }

    .map-medals,
    .map-technical,
    .map-rating {
        padding: 15px;
    }

    .medal-item {
        padding: 11px;
    }

    .medal-item strong {
        font-size: 18px;
    }
}


/* =========================================
   TMX SSM° - CONNEXION ET INSCRIPTION
   Bleu nuit / Jaune / Violet
========================================= */

/* Carte principale */
.narrow {
    max-width: 470px;
    margin: 65px auto;
}

.narrow.panel {
    position: relative;
    padding: 38px;
    background:
        radial-gradient(ellipse at 90% 0%, #51407844, transparent 50%),
        linear-gradient(145deg, #202b43, #111827 80%);
    border: 2px solid #8064b9;
    border-radius: 13px;
    box-shadow: 0 10px 35px #0009, 0 0 22px #7852bb22;
}

/* Titre */
.narrow.panel h1 {
    color: #FFD400;
    text-align: center;
    font-size: 30px;
    letter-spacing: 2px;
    text-shadow: 0 0 18px #FFD40033;
    margin: 0 0 28px;
}

/* Libellés */
.narrow.panel label {
    color: #d4b5ff;
    font-weight: 700;
    letter-spacing: .4px;
    gap: 9px;
}

/* Champs */
.narrow.panel input {
    background: #101827;
    border: 1px solid #59658b;
    border-radius: 7px;
    color: #fff;
    padding: 14px;
    transition: border-color .2s, box-shadow .2s;
}

.narrow.panel input:focus {
    outline: none;
    border-color: #b18aff;
    box-shadow: 0 0 0 3px #9270db33;
}

.narrow.panel input::placeholder {
    color: #818ba2;
}

/* Bouton */
.narrow.panel button {
    justify-self: stretch;
    width: 100%;
    margin-top: 8px;
    padding: 14px;
    background: linear-gradient(110deg, #FFD400, #ffad24);
    color: #171522;
    border: none;
    border-radius: 7px;
    font-weight: 900;
    font-size: 15px;
    letter-spacing: 1px;
    box-shadow: 0 5px 20px #FFD40033;
    transition: transform .2s, filter .2s;
}

.narrow.panel button:hover {
    filter: brightness(1.12);
    transform: translateY(-2px);
}

/* Liens dans le formulaire */
.narrow.panel a {
    color: #d4b5ff;
}

.narrow.panel a:hover {
    color: #FFD400;
}

/* Adaptation mobile */
@media (max-width: 600px) {
    .narrow {
        margin: 30px auto;
    }

    .narrow.panel {
        padding: 25px 20px;
    }

    .narrow.panel h1 {
        font-size: 25px;
    }
}


/* =========================================
   TMX SSM° - HALL OF FAME COMPACT
========================================= */

.tmx-hall-of-fame {
    padding: 12px 18px !important;
    margin: 12px 0 !important;
    border-radius: 10px;
}

.tmx-hall-of-fame h2 {
    font-size: 19px !important;
    margin: 0 0 3px !important;
    line-height: 1.2;
}

.tmx-hall-of-fame > p {
    font-size: 11px !important;
    margin: 0 0 8px !important;
}

.tmx-hall-row {
    min-height: 0 !important;
    padding: 5px 10px !important;
    margin: 3px 0 !important;
    gap: 10px;
}

.tmx-hall-rank {
    font-size: 15px !important;
}

.tmx-hall-author {
    font-size: 11px !important;
}

.tmx-hall-row > strong {
    font-size: 12px !important;
}


/* TMX SSM° - Pagination */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 18px;
    margin: 25px 0 35px;
    padding: 15px;
}

.pagination a,
.pagination .disabled {
    display: inline-block;
    padding: 11px 20px;
    border-radius: 7px;
    font-weight: 800;
    text-decoration: none;
}

.pagination a {
    background: linear-gradient(110deg, #FFD400, #ffad24);
    color: #171522;
    border: 1px solid #FFD400;
    transition: transform .2s, filter .2s;
}

.pagination a:hover {
    filter: brightness(1.12);
    transform: translateY(-2px);
}

.pagination .disabled {
    background: #202b43;
    color: #7f8aa3;
    border: 1px solid #46516e;
    cursor: not-allowed;
}

.pagination-info {
    color: #d4b5ff;
    font-weight: 800;
}

@media (max-width: 600px) {
    .pagination {
        gap: 9px;
    }

    .pagination a,
    .pagination .disabled {
        padding: 9px 12px;
        font-size: 13px;
    }
}


/* Pagination - boutons bleu nuit */
.pagination a {
    background: linear-gradient(135deg, #354568, #202b43) !important;
    color: #e2d2ff !important;
    border: 1px solid #8064b9 !important;
    box-shadow: 0 3px 12px #0005;
}

.pagination a:hover {
    background: linear-gradient(135deg, #514078, #354568) !important;
    color: #FFD400 !important;
    border-color: #FFD400 !important;
    transform: translateY(-2px);
}


/* Menu - bouton Join harmonisé */
.top nav a.nav-join {
    background: linear-gradient(135deg, #354568, #202b43) !important;
    color: #e2d2ff !important;
    border: 1px solid #8064b9 !important;
    border-radius: 7px;
    padding: 9px 18px;
    font-weight: 800;
}

.top nav a.nav-join:hover {
    background: linear-gradient(135deg, #514078, #354568) !important;
    color: #FFD400 !important;
    border-color: #FFD400 !important;
}

/* Compteur des visiteurs en ligne - TMX SSM */
.online-stats {
    margin: 30px auto 18px;
    padding: 16px 20px;
    max-width: 900px;
    text-align: center;
    background: linear-gradient(135deg, #202b43, #354568);
    border: 1px solid #8064b9;
    border-radius: 10px;
    box-shadow: 0 4px 15px #0005;
    color: #e2d2ff;
    font-size: 13px;
    line-height: 1.8;
}

.online-stats p {
    margin: 4px 0;
}

.online-stats strong {
    color: #FFD400;
    font-weight: 900;
}
/* Tableau de bord du compte TMX SSM */
.account-dashboard {
    background: linear-gradient(145deg, #17243d, #202b43) !important;
    border: 1px solid #8064b9 !important;
    border-radius: 14px;
    padding: 25px !important;
    box-shadow: 0 5px 20px #0006;
}

.account-welcome {
    border-bottom: 1px solid #8064b955;
    padding-bottom: 15px;
    margin-bottom: 22px;
}

.account-welcome h2 {
    color: #FFD400;
    margin: 0 0 8px;
}

.account-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin: 20px 0 30px;
}

.account-stat {
    background: linear-gradient(145deg, #354568, #202b43);
    border: 1px solid #8064b9;
    border-radius: 11px;
    padding: 20px 12px;
    text-align: center;
}

.account-stat strong {
    display: block;
    color: #FFD400;
    font-size: 28px;
    font-weight: 900;
    margin-bottom: 7px;
}

.account-stat span {
    color: #e2d2ff;
    font-size: 13px;
    font-weight: 700;
}

.account-dashboard h3 {
    color: #FFD400;
    margin: 25px 0 15px;
}

.account-map-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.account-map-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    padding: 14px 17px;
    background: #253450;
    border: 1px solid #8064b955;
    border-radius: 9px;
    text-decoration: none;
    transition: 0.2s ease;
}

.account-map-item:hover {
    background: #354568;
    border-color: #FFD400;
    transform: translateX(3px);
}

.account-map-title {
    color: #FFD400;
    font-weight: 800;
}

.account-map-meta {
    color: #e2d2ff;
    font-size: 12px;
    text-align: right;
}

@media (max-width: 650px) {
    .account-stats {
        grid-template-columns: 1fr;
    }

    .account-map-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .account-map-meta {
        text-align: left;
    }
}
