/* =====================================================================
   Tic-Champion — thème « Plateau TV »
   Nuit de plateau, projecteurs dorés, typographie Archivo (largeur variable).
   ===================================================================== */
:root {
    --night: #0a1433;          /* fond : le plateau dans le noir */
    --studio: #14245c;         /* surfaces */
    --studio-2: #1a2d6e;       /* surfaces relevées */
    --spot-blue: #20398a;      /* contours des pupitres */
    --gold: #f5b83d;           /* projecteur : action principale, chrono, gains */
    --gold-soft: #ffd27a;
    --light: #f3f5fb;          /* texte */
    --muted: #8c99c2;          /* texte secondaire */
    --line: rgba(140, 153, 194, 0.22);
    --line-strong: rgba(140, 153, 194, 0.38);
    --good: #2bd47d;
    --bad: #ff4d5e;
    --font: 'Archivo', system-ui, 'Segoe UI', Roboto, sans-serif;
    --code: 'JetBrains Mono', ui-monospace, Consolas, monospace;
    --r-panel: 18px;
    --r-ctrl: 12px;

    --bs-body-bg: var(--night);
    --bs-body-color: var(--light);
    --bs-body-font-family: var(--font);
    --bs-secondary-color: var(--muted);
    --bs-border-color: var(--line);
    --bs-link-color: var(--gold);
    --bs-link-color-rgb: 245, 184, 61;
    --bs-link-hover-color: var(--gold-soft);
    --bs-link-hover-color-rgb: 255, 210, 122;
    --bs-emphasis-color: #fff;
    --bs-tertiary-bg: var(--studio);
}
[data-bs-theme=dark] { --bs-body-bg: var(--night); --bs-secondary-color: var(--muted); --bs-tertiary-bg: var(--studio); }

/* ---------- Base ---------- */
.tc-body { background: var(--night); color: var(--light); min-height: 100vh; display: flex; flex-direction: column; }
.tc-main { flex: 1; position: relative; z-index: 1; }
/* Faisceau de projecteur venant du haut de la scène */
.tc-bg {
    position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background:
        radial-gradient(ellipse 55% 45% at 50% -8%, rgba(245, 184, 61, 0.16), transparent 70%),
        radial-gradient(ellipse 80% 60% at 50% 120%, rgba(32, 57, 138, 0.55), transparent 70%);
}
a { text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
::selection { background: rgba(245, 184, 61, 0.35); color: #fff; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
h1, h2, h3, .h1, .h2, .h3, .h4, .h5 { font-weight: 800; font-variation-settings: "wdth" 78; line-height: 1.1; }
.tc-mono, code, kbd, pre { font-family: var(--code); }
.tc-mono { font-variant-numeric: tabular-nums; }
.tc-text-cyan { color: var(--gold) !important; }
.tc-text-green { color: var(--good) !important; }
.tc-text-red { color: var(--bad) !important; }
.tc-text-amber { color: var(--gold) !important; }
.tc-kicker { font-size: .95rem; color: var(--muted); margin-bottom: .2rem; }
.tc-count { font-size: .85rem; font-weight: 800; color: var(--night); background: var(--gold); border-radius: 999px; padding: .1rem .55rem; vertical-align: middle; font-variation-settings: "wdth" 100; }
.tc-back { font-size: .92rem; color: var(--muted); display: inline-flex; gap: .35rem; align-items: center; }
.tc-back:hover { color: var(--gold); }
.tc-caption { font-size: .9rem; color: var(--muted); margin-bottom: .5rem; }

/* ---------- Barre de navigation ---------- */
.tc-navbar { background: rgba(10, 20, 51, 0.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); z-index: 1030; }
.tc-brand { display: inline-flex; align-items: center; gap: .6rem; color: #fff !important; font-size: 1.35rem; font-weight: 900; font-variation-settings: "wdth" 70; text-decoration: none !important; }
.tc-brand-lg { font-size: 1.9rem; }
.tc-brand-accent { color: var(--gold); }
.tc-brand-icon { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: var(--night); font-size: 1.05rem; box-shadow: 0 0 0 3px rgba(245, 184, 61, 0.25); }
.tc-brand-lg .tc-brand-icon { width: 48px; height: 48px; font-size: 1.4rem; }
.tc-navbar .nav-link { color: var(--muted); font-weight: 600; font-size: .95rem; padding: .5rem .85rem !important; display: flex; white-space: nowrap; gap: .45rem; align-items: center; border-radius: 999px; }
.tc-navbar .nav-link:hover { color: #fff; text-decoration: none; }
.tc-navbar .nav-link.active { color: var(--night); background: var(--gold); }
.tc-user-btn { display: flex; align-items: center; gap: .55rem; color: var(--light); border: 1px solid var(--line-strong); background: var(--studio); border-radius: 999px; padding: .25rem .8rem .25rem .3rem; }
.tc-user-btn:hover, .tc-user-btn:focus { color: #fff; border-color: var(--gold); background: var(--studio); }
.tc-avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--spot-blue); color: var(--gold); display: grid; place-items: center; font-weight: 800; font-size: .85rem; flex: none; }
.tc-avatar-sm { width: 26px; height: 26px; font-size: .75rem; }
.tc-role { font-size: .72rem; font-weight: 700; padding: .1rem .5rem; border-radius: 999px; background: rgba(140, 153, 194, 0.18); color: var(--muted); }
.tc-role-admin { background: rgba(245, 184, 61, 0.18); color: var(--gold); }
.tc-dropdown { background: var(--studio); border: 1px solid var(--line-strong); border-radius: 14px; box-shadow: 0 24px 48px rgba(0, 0, 0, .45); padding: .35rem; }
.tc-dropdown .dropdown-item { border-radius: 10px; font-size: .92rem; display: flex; gap: .55rem; align-items: center; color: var(--light); }
.tc-dropdown .dropdown-item:hover { background: var(--studio-2); color: #fff; }
.tc-dropdown .dropdown-header, .tc-dropdown .dropdown-item-text { color: var(--muted); }

/* ---------- Boutons ---------- */
.btn { border-radius: 999px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding-left: 1.15rem; padding-right: 1.15rem; transition: background .15s, border-color .15s, color .15s, transform .1s; }
.btn:active { transform: translateY(1px); }
.btn-sm { padding-left: .8rem; padding-right: .8rem; }
.tc-btn-primary { background: var(--gold); color: var(--night) !important; border: 0; }
.tc-btn-primary:hover, .tc-btn-primary:focus { background: var(--gold-soft); color: var(--night) !important; }
.tc-btn-primary:disabled { background: rgba(245, 184, 61, .35); }
.tc-btn-ghost { background: transparent; border: 1px solid var(--line-strong); color: var(--light); }
.tc-btn-ghost:hover, .tc-btn-ghost:focus { border-color: var(--gold); color: #fff; background: rgba(245, 184, 61, .06); }
.tc-btn-danger { background: var(--bad); color: #fff; border: 0; }
.tc-btn-danger:hover { background: #ff6b79; color: #fff; }
.tc-btn-icon { color: var(--muted); border: 0; background: transparent; padding: .35rem .55rem; border-radius: 10px; }
.tc-btn-icon:hover, .tc-btn-icon:focus { color: var(--gold); background: rgba(245, 184, 61, .08); }

/* ---------- Panneaux ---------- */
.tc-card { background: var(--studio); border: 1px solid var(--line); border-radius: var(--r-panel); padding: 1.35rem; position: relative; }
.tc-card-head { font-weight: 800; font-size: 1.12rem; font-variation-settings: "wdth" 85; margin-bottom: 1rem; display: flex; align-items: center; gap: .5rem; color: #fff; }
.tc-card-head > i { color: var(--gold); }
.tc-sticky { position: sticky; top: 86px; }

/* ---------- Formulaires ---------- */
.form-label { font-size: .9rem; font-weight: 600; color: #dfe4f3; }
.tc-input, .form-control.tc-input, .form-select.tc-input { background-color: var(--night); border: 1px solid var(--line-strong); color: var(--light); border-radius: var(--r-ctrl); }
.tc-input:focus { background-color: var(--night); border-color: var(--gold); box-shadow: 0 0 0 3px rgba(245, 184, 61, .2); color: #fff; }
.tc-input::placeholder { color: #5f6c96; }
.form-select.tc-input option { background: var(--studio); }
.is-invalid, .tc-input.is-invalid { border-color: var(--bad) !important; }
.invalid-feedback { color: #ff8a95; font-size: .85rem; }
.form-check-input { background-color: var(--night); border-color: var(--line-strong); }
.form-check-input:checked { background-color: var(--gold); border-color: var(--gold); }
.form-check-input:focus { box-shadow: 0 0 0 3px rgba(245, 184, 61, .25); border-color: var(--gold); }
.form-switch .form-check-input:checked { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%230a1433'/%3e%3c/svg%3e"); }
.form-text { color: var(--muted); }

/* ---------- Alertes ---------- */
.tc-alert { display: flex; align-items: flex-start; gap: .6rem; border-radius: 14px; border: 0; border-left: 4px solid; background: var(--studio); color: var(--light); }
.tc-alert > i { font-size: 1.1rem; line-height: 1.4; }
.tc-alert-success { border-color: var(--good); } .tc-alert-success > i { color: var(--good); }
.tc-alert-danger { border-color: var(--bad); } .tc-alert-danger > i { color: var(--bad); }
.tc-alert-warning { border-color: var(--gold); } .tc-alert-warning > i { color: var(--gold); }
.tc-alert-info { border-color: var(--muted); } .tc-alert-info > i { color: var(--muted); }
.tc-alert .btn-close { filter: invert(1) grayscale(1); }

/* ---------- Accueil / lobby ---------- */
.tc-hero { padding: 2.5rem 0 1.5rem; text-align: center; }
.tc-hero-title { font-size: clamp(2.6rem, 7vw, 5rem); font-weight: 900; font-variation-settings: "wdth" 66; line-height: .95; margin: 0 auto .9rem; max-width: 14ch; }
.tc-hero-sub { color: var(--muted); font-size: 1.15rem; max-width: 46ch; margin: 0 auto; }
.tc-hero-actions { display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; margin-top: 1.6rem; }

/* L'affiche : la prochaine partie, sous le projecteur */
.tc-feature { position: relative; overflow: hidden; border-radius: 20px; padding: 1.3rem 1.5rem 1.2rem; margin-bottom: 1.8rem; text-align: center;
    background: radial-gradient(ellipse 60% 85% at 50% 0%, rgba(245, 184, 61, .28), transparent 70%), linear-gradient(180deg, var(--studio-2), var(--studio)); border: 1px solid var(--line-strong); }
.tc-feature-when { font-weight: 700; color: var(--gold); font-size: .92rem; display: inline-flex; gap: .5rem; align-items: center; }
.tc-feature-title { font-size: clamp(1.7rem, 3.8vw, 2.6rem); font-weight: 900; font-variation-settings: "wdth" 64; line-height: 1; margin: .35rem auto .4rem; max-width: 22ch; }
.tc-feature-desc { color: #cbd3ec; max-width: 60ch; margin: 0 auto .8rem; font-size: .95rem; }
.tc-feature-facts { display: flex; justify-content: center; gap: 2rem; flex-wrap: wrap; margin-bottom: .9rem; }
.tc-feature-facts div { display: flex; flex-direction: column; }
.tc-feature-facts strong { font-size: 1.35rem; font-weight: 900; font-variation-settings: "wdth" 72; color: #fff; font-variant-numeric: tabular-nums; line-height: 1.1; }
.tc-feature-facts strong.is-prize { color: var(--gold); }
.tc-feature-facts span { font-size: .8rem; color: var(--muted); }
.tc-feature-actions { display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; }

/* Le programme : les autres compétitions, en lignes horaires */
.tc-section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.tc-section-title h2 { font-size: 2rem; margin: 0; }
.tc-schedule { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.tc-slot { display: grid; grid-template-columns: 112px 1fr auto 28px; align-items: center; gap: 1.2rem; padding: 1.05rem .6rem; border-bottom: 1px solid var(--line); color: var(--light); }
a.tc-slot:hover { background: rgba(245, 184, 61, .05); text-decoration: none; color: #fff; }
.tc-slot-time { display: flex; flex-direction: column; line-height: 1.05; }
.tc-slot-time strong { font-size: 1.75rem; font-weight: 900; font-variation-settings: "wdth" 70; font-variant-numeric: tabular-nums; }
.tc-slot-time span { font-size: .82rem; color: var(--muted); }
.tc-slot-main { min-width: 0; }
.tc-slot-title { font-size: 1.22rem; font-weight: 800; font-variation-settings: "wdth" 85; margin: 0 0 .25rem; display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.tc-slot-meta { font-size: .86rem; color: var(--muted); display: flex; gap: 1rem; flex-wrap: wrap; }
.tc-slot-prize { text-align: right; }
.tc-slot-prize strong { display: block; font-size: 1.3rem; font-weight: 900; font-variation-settings: "wdth" 75; color: var(--gold); white-space: nowrap; }
.tc-slot-prize span { font-size: .82rem; color: var(--muted); white-space: nowrap; }
.tc-slot-go { color: var(--gold); font-size: 1.3rem; }
.tc-slot.is-done .tc-slot-prize strong { color: var(--muted); }
@media (max-width: 767.98px) {
    .tc-slot { grid-template-columns: 72px 1fr; gap: .6rem 1rem; }
    .tc-slot-prize { grid-column: 2; text-align: left; }
    .tc-slot-go { display: none; }
}

/* Badges d'état */
.tc-badge { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 700; padding: .2rem .6rem; border-radius: 999px; background: rgba(140, 153, 194, .16); color: #cbd3ec; white-space: nowrap; font-variation-settings: "wdth" 100; }
.tc-badge-live { background: var(--bad); color: #fff; }
.tc-badge-open { background: rgba(245, 184, 61, .16); color: var(--gold); }
.tc-badge-done { background: rgba(140, 153, 194, .14); color: var(--muted); }
.tc-badge-joined { background: rgba(43, 212, 125, .14); color: var(--good); }
.tc-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--bad); display: inline-block; animation: tc-blink 1.4s steps(2, start) infinite; }
.tc-live-dot-red { background: #fff; }
@keyframes tc-blink { to { visibility: hidden; } }
.tc-cstatus { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; white-space: nowrap; background: rgba(140, 153, 194, .16); color: #cbd3ec; }
.tc-cstatus-draft { color: var(--muted); }
.tc-cstatus-registration { background: rgba(245, 184, 61, .16); color: var(--gold); }
.tc-cstatus-live { background: var(--bad); color: #fff; }
.tc-cstatus-finished { background: rgba(43, 212, 125, .14); color: var(--good); }
.tc-cstatus-cancelled { color: var(--muted); text-decoration: line-through; }
.tc-status { display: inline-block; font-size: .78rem; font-weight: 700; padding: .18rem .6rem; border-radius: 999px; white-space: nowrap; }
.tc-status-published { background: rgba(43, 212, 125, .14); color: var(--good); }
.tc-status-draft { background: rgba(245, 184, 61, .16); color: var(--gold); }
.tc-status-archived { background: rgba(140, 153, 194, .14); color: var(--muted); }
.tc-diff { --diff: var(--gold); display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; color: var(--diff); background: color-mix(in srgb, var(--diff) 15%, transparent); white-space: nowrap; }
.tc-diff-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--diff); }
.tc-cat-chip { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; color: #cbd3ec; white-space: nowrap; }
.tc-cat-chip i { color: var(--gold); }
.tc-chip { --diff: var(--gold); border-radius: 999px; padding: .2rem .7rem; font-size: .82rem; font-weight: 700; color: var(--diff); background: color-mix(in srgb, var(--diff) 14%, transparent); }
.tc-comp-label { font-size: .84rem; color: var(--muted); }

/* ---------- Tableau de bord ---------- */
.tc-stat { background: var(--studio); border: 1px solid var(--line); border-radius: var(--r-panel); padding: 1rem 1.2rem; }
.tc-stat-label { font-size: .9rem; color: var(--muted); font-weight: 600; }
.tc-stat-value { font-size: 2.5rem; font-weight: 900; font-variation-settings: "wdth" 70; line-height: 1.05; font-variant-numeric: tabular-nums; }
.tc-stat-foot { font-size: .84rem; color: var(--muted); }
.tc-stat-green .tc-stat-value { color: var(--good); }
.tc-stat-amber .tc-stat-value { color: var(--gold); }
.tc-stat-muted .tc-stat-value { color: var(--muted); }
.tc-stat-sm .tc-stat-value { font-size: 1.8rem; }
.tc-bar-row { display: grid; grid-template-columns: 200px 1fr 44px; align-items: center; gap: .9rem; padding: .5rem .35rem; border-radius: 10px; color: inherit; }
.tc-bar-row:hover { background: var(--studio-2); text-decoration: none; }
.tc-bar-label { display: flex; align-items: center; gap: .6rem; }
.tc-bar { height: 10px; background: var(--night); border-radius: 99px; overflow: hidden; }
.tc-bar span { display: block; height: 100%; background: var(--diff); border-radius: 99px; min-width: 4px; }
.tc-bar-value { text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; }
.tc-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .5rem; }
.tc-cat { display: flex; align-items: center; gap: .6rem; padding: .6rem .8rem; border-radius: var(--r-ctrl); color: var(--light); background: var(--night); }
.tc-cat:hover { color: #fff; text-decoration: none; box-shadow: inset 0 0 0 1px var(--gold); }
.tc-cat > i { color: var(--gold); }
.tc-cat-name { flex: 1; font-size: .92rem; }
.tc-cat-count { font-weight: 800; color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- Filtres & tableaux ---------- */
.tc-filters { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(150px, 1fr)) auto auto; gap: .5rem; }
.tc-filter-search { position: relative; }
.tc-filter-search i { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--muted); }
.tc-filter-search input { padding-left: 2.4rem; }
@media (max-width: 991.98px) { .tc-filters { grid-template-columns: 1fr 1fr; } .tc-filter-search { grid-column: 1 / -1; } }
.tc-table { --bs-table-bg: transparent; --bs-table-color: var(--light); --bs-table-border-color: var(--line); }
.tc-table thead th { font-size: .86rem; color: var(--muted); font-weight: 600; background: rgba(10, 20, 51, .5); padding-top: .8rem; padding-bottom: .8rem; }
.tc-table tbody tr:hover { background: rgba(245, 184, 61, .04); }
.tc-table-sm td, .tc-table-sm th { padding: .5rem .55rem; }
.tc-q-cell { max-width: 460px; min-width: 240px; }
.tc-q-link { color: var(--light); font-weight: 600; }
.tc-q-link:hover { color: var(--gold); }
.tc-q-meta { display: flex; flex-wrap: wrap; gap: .8rem; font-size: .82rem; color: var(--muted); margin-top: .2rem; }
.tc-row-muted td { color: var(--muted); }
.tc-pagination .page-link { background: var(--studio); border-color: var(--line); color: var(--light); font-weight: 600; }
.tc-pagination .page-item.active .page-link { background: var(--gold); border-color: var(--gold); color: var(--night); }
.tc-pagination .page-link:hover { background: var(--studio-2); color: #fff; }
.tc-pagination .page-item.disabled .page-link { background: transparent; color: #4b5885; }

/* ---------- Éditeur Quill ---------- */
.tc-editor { border: 1px solid var(--line-strong); border-radius: 14px; overflow: hidden; background: var(--night); }
.tc-editor:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(245, 184, 61, .2); }
.tc-editor .ql-toolbar.ql-snow { border: 0; border-bottom: 1px solid var(--line); background: var(--studio-2); font-family: var(--font); }
.tc-editor .ql-container.ql-snow { border: 0; font-family: var(--font); font-size: 1.02rem; color: var(--light); }
.tc-editor .ql-editor { min-height: 140px; line-height: 1.6; }
.tc-editor-sm .ql-editor { min-height: 90px; }
.tc-editor .ql-editor.ql-blank::before { color: #5f6c96; font-style: normal; }
.tc-editor .ql-snow .ql-stroke { stroke: #aab4d6; }
.tc-editor .ql-snow .ql-fill { fill: #aab4d6; }
.tc-editor .ql-snow .ql-picker { color: #aab4d6; }
.tc-editor .ql-snow button:hover .ql-stroke, .tc-editor .ql-snow button.ql-active .ql-stroke { stroke: var(--gold); }
.tc-editor .ql-snow button:hover .ql-fill, .tc-editor .ql-snow button.ql-active .ql-fill { fill: var(--gold); }
.tc-editor .ql-snow .ql-tooltip { background: var(--studio); border: 1px solid var(--line-strong); color: var(--light); box-shadow: 0 10px 30px rgba(0, 0, 0, .5); border-radius: 12px; z-index: 5; }
.tc-editor .ql-snow .ql-tooltip input[type=text] { background: var(--night); border: 1px solid var(--line-strong); color: var(--light); }
.tc-editor .ql-editor code, .tc-rich code { font-size: .88em; background: rgba(245, 184, 61, .12); color: var(--gold-soft); padding: .1em .35em; border-radius: 6px; }
#questionEditor:not(.ql-container), #explanationEditor:not(.ql-container) { padding: .75rem 1rem; min-height: 100px; }
.tc-rich p:last-child { margin-bottom: 0; }
.tc-rich blockquote { border-left: 3px solid var(--gold); padding-left: .9rem; color: #cbd3ec; }
.tc-rich ol li[data-list="bullet"] { list-style-type: disc; }
.tc-rich li > .ql-ui { display: none; }

/* ---------- Code ---------- */
.tc-code-input { font-family: var(--code); font-size: .86rem; background: #060d24 !important; color: #e6ebfa; border: 1px solid var(--line-strong); border-radius: 14px; min-height: 220px; tab-size: 4; resize: vertical; }
.tc-code-input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(245, 184, 61, .2); color: #fff; }
.tc-code-preview, .tc-code-block { background: #060d24; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; height: 100%; min-height: 220px; display: flex; flex-direction: column; }
.tc-code-block { height: auto; min-height: 0; margin: 1.2rem 0; text-align: left; }
.tc-code-preview-bar { display: flex; align-items: center; gap: 6px; padding: .5rem .9rem; border-bottom: 1px solid var(--line); }
.tc-code-preview-bar span { display: none; }
.tc-code-preview-bar em { font-style: normal; font-size: .8rem; font-weight: 600; color: var(--muted); }
.tc-code-preview pre, .tc-code-block pre { margin: 0; flex: 1; overflow: auto; }
.tc-code-preview code.hljs, .tc-code-block code.hljs, .tc-code-block code { background: transparent; font-size: .9rem; padding: .9rem 1rem; display: block; line-height: 1.6; }
.tc-snippet { background: #060d24; border: 1px solid var(--line); border-radius: 12px; padding: .75rem; font-size: .78rem; color: #cbd3ec; white-space: pre-wrap; }
.tc-snippet code { background: transparent; padding: 0; color: inherit; }

/* ---------- Image ---------- */
.tc-dropzone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; text-align: center; padding: 1.4rem 1rem; border: 2px dashed var(--line-strong); border-radius: 14px; cursor: pointer; color: #cbd3ec; background: var(--night); transition: border-color .15s, background .15s; margin: 0; width: 100%; }
.tc-dropzone i { font-size: 1.8rem; color: var(--gold); }
.tc-dropzone:hover, .tc-dropzone.is-dragover { border-color: var(--gold); background: rgba(245, 184, 61, .05); }
.tc-dropzone-lg { padding: 2.6rem 1rem; }
.tc-image-preview { height: 150px; border-radius: 14px; display: grid; place-items: center; overflow: hidden; background: var(--night); }
.tc-image-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* ---------- Propositions (formulaire) ---------- */
.tc-options { display: grid; gap: .55rem; border-radius: 14px; }
.tc-options.is-invalid { outline: 1px solid var(--bad); outline-offset: 6px; }
.tc-option { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: .55rem; }
.tc-option-radio { position: absolute; opacity: 0; pointer-events: none; }
.tc-option-letter { width: 44px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-weight: 900; border: 1px solid var(--line-strong); color: var(--muted); cursor: pointer; margin: 0; background: var(--night); transition: all .15s; }
.tc-option-letter:hover { border-color: var(--good); color: var(--good); }
.tc-option-radio:focus-visible + .tc-option-letter { outline: 2px solid var(--gold); outline-offset: 2px; }
.tc-option-radio:checked + .tc-option-letter { background: var(--good); border-color: var(--good); color: var(--night); }
.tc-option:has(.tc-option-radio:checked) .tc-input { border-color: var(--good); }
.tc-option-remove:disabled { opacity: .25; }

/* ---------- Sélecteur de difficulté ---------- */
.tc-diff-picker { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; border-radius: 14px; }
.tc-diff-picker.is-invalid { outline: 1px solid var(--bad); outline-offset: 4px; }
.tc-diff-option { --diff: var(--gold); display: grid; grid-template-columns: 1fr auto; gap: .1rem .5rem; padding: .65rem .8rem; border: 1px solid var(--line-strong); border-radius: 14px; cursor: pointer; background: var(--night); transition: all .15s; margin: 0; }
.tc-diff-option:hover { border-color: var(--diff); }
.tc-diff-name { font-weight: 800; }
.tc-diff-pts { font-weight: 900; color: var(--diff); font-variant-numeric: tabular-nums; }
.tc-diff-time { grid-column: 1 / -1; font-size: .78rem; color: var(--muted); }
.btn-check:checked + .tc-diff-option { border-color: var(--diff); background: color-mix(in srgb, var(--diff) 14%, var(--night)); box-shadow: inset 0 0 0 1px var(--diff); }
.btn-check:focus-visible + .tc-diff-option { outline: 2px solid var(--gold); outline-offset: 2px; }

/* ---------- Aperçu des gains ---------- */
.tc-score-row { display: flex; justify-content: space-between; align-items: baseline; padding: .4rem 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.tc-score-row strong { font-size: 1.15rem; font-weight: 900; font-variant-numeric: tabular-nums; color: #fff; }
.tc-score-row:first-of-type strong { color: var(--gold); }
.tc-timer-bar { height: 8px; border-radius: 99px; margin-top: .9rem; background: linear-gradient(90deg, var(--bad), var(--gold)); opacity: .9; }
.tc-timer-bar span { display: none; }

/* =====================================================================
   Pupitres & plateau (aperçu question, arène)
   ===================================================================== */
.tc-arena-card, .tc-stage {
    background: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(245, 184, 61, .14), transparent 70%), var(--studio);
    border: 1px solid var(--line-strong); border-radius: 24px; padding: 1.8rem; position: relative;
}
.tc-arena-head, .tc-q-head { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.tc-arena-points { font-weight: 900; color: var(--gold); font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.tc-arena-timer { font-weight: 800; border-radius: 999px; padding: .15rem .6rem; background: var(--night); }
.tc-arena-timerbar { display: none; }
.tc-question-body { font-size: clamp(1.45rem, 2.6vw, 2.05rem); font-weight: 800; font-variation-settings: "wdth" 82; line-height: 1.2; color: #fff; text-align: center; margin: 1.2rem auto; max-width: 30ch; }
.tc-question-body code { font-size: .8em; }
.tc-question-image { margin: 1.2rem 0; text-align: center; }
.tc-question-image img { max-width: 100%; max-height: 360px; border-radius: 14px; }
.tc-answers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1.5rem; }
@media (max-width: 575.98px) { .tc-answers { grid-template-columns: 1fr; } }
/* Le pupitre : bloc arrondi au contour bleu, lettre dans un losange doré */
.tc-answer { display: flex; align-items: center; gap: 1rem; padding: .95rem 1.1rem .95rem 1.2rem; border-radius: 16px; background: var(--night); border: 2px solid var(--spot-blue); color: var(--light); font-size: 1.05rem; font-weight: 600; text-align: left; }
.tc-answer-letter { width: 32px; height: 32px; flex: none; display: grid; place-items: center; font-weight: 900; font-size: .95rem; color: var(--night); background: var(--gold); border-radius: 7px; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
.tc-answer.is-correct { border-color: var(--good); background: color-mix(in srgb, var(--good) 16%, var(--night)); color: #fff; }
.tc-answer.is-correct .tc-answer-letter { background: var(--good); }
.tc-answer.is-correct > i { color: var(--good); }
.tc-explanation { margin-top: 1.4rem; padding: 1rem 1.2rem; border-radius: 16px; background: var(--night); border-left: 4px solid var(--gold); text-align: left; }
.tc-explanation-title { font-weight: 800; color: var(--gold); margin-bottom: .35rem; }
.tc-mini-bar { height: 6px; border-radius: 99px; background: var(--night); overflow: hidden; min-width: 70px; }
.tc-mini-bar span { display: block; height: 100%; background: var(--gold); }
.tc-dl { display: grid; grid-template-columns: auto 1fr; gap: .45rem 1rem; font-size: .92rem; }
.tc-dl dt { color: var(--muted); font-weight: 400; }
.tc-dl dd { margin: 0; text-align: right; }

/* ---------- Barème ---------- */
.tc-level { --diff: var(--gold); border-radius: var(--r-panel); padding: 1.1rem 1.2rem; background: var(--studio); border-top: 4px solid var(--diff); }
.tc-level-name { font-weight: 800; color: var(--diff); font-size: 1rem; }
.tc-level-pts { font-size: 2.8rem; font-weight: 900; font-variation-settings: "wdth" 68; line-height: 1.05; font-variant-numeric: tabular-nums; }
.tc-level-pts small { font-size: 1rem; font-weight: 700; color: var(--muted); margin-left: .25rem; }
.tc-level-meta { font-size: .84rem; color: var(--muted); }
.tc-formula { font-family: var(--code); font-size: .88rem; background: var(--night); border-radius: 12px; padding: .8rem 1rem; color: #cbd3ec; overflow-x: auto; white-space: nowrap; }
.tc-formula span { color: var(--gold); }
.tc-round { margin-bottom: 1rem; }
.tc-round-title { font-size: .95rem; font-weight: 700; margin-bottom: .35rem; }
.tc-round-bar { display: flex; gap: 3px; height: 32px; border-radius: 10px; overflow: hidden; }
.tc-round-bar span { --diff: var(--gold); display: grid; place-items: center; font-size: .78rem; font-weight: 800; color: var(--night); background: var(--diff); white-space: nowrap; overflow: hidden; padding: 0 .3rem; }
.tc-draw-list { list-style: none; counter-reset: draw; padding: 0; margin: 0; display: grid; gap: .4rem; }
.tc-draw-list li { counter-increment: draw; display: flex; align-items: center; gap: .75rem; padding: .6rem .8rem; border-radius: 12px; background: var(--night); }
.tc-draw-list li::before { content: counter(draw); font-weight: 900; color: var(--gold); min-width: 1.4rem; }
.tc-draw-list a { color: var(--light); }

/* ---------- Import ---------- */
.tc-report-ok { border-left: 4px solid var(--good); }
.tc-report-warn { border-left: 4px solid var(--gold); }
.tc-report-errors { max-height: 380px; overflow: auto; }
.tc-pills .nav-link { color: var(--muted); font-size: .85rem; font-weight: 700; padding: .3rem .9rem; border-radius: 999px; }
.tc-pills .nav-link.active { background: var(--gold); color: var(--night); }

/* ---------- Modale ---------- */
.tc-modal { background: var(--studio); border: 1px solid var(--line-strong); border-radius: 20px; box-shadow: 0 30px 80px rgba(0, 0, 0, .6); }
.tc-modal .btn-close { filter: invert(1) grayscale(1); }
.modal-backdrop.show { opacity: .75; }

/* ---------- Authentification ---------- */
.tc-auth-wrap { position: relative; z-index: 1; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 1rem; }
.tc-auth-card { width: 100%; max-width: 430px; background: var(--studio); border: 1px solid var(--line-strong); border-radius: 24px; padding: 2.1rem; }
.tc-auth-title { font-size: 2.3rem; font-weight: 900; font-variation-settings: "wdth" 70; margin-bottom: .3rem; }
.tc-auth-sub { color: var(--muted); margin-bottom: 1.6rem; }
.tc-auth-row { display: flex; justify-content: space-between; align-items: baseline; }
.tc-auth-link { font-size: .88rem; }
.tc-reset-preview { word-break: break-all; font-size: .85rem; background: var(--night); border-radius: 12px; padding: .75rem .9rem; margin-top: .75rem; }

/* ---------- Erreurs ---------- */
.tc-error-code { font-size: clamp(5rem, 14vw, 8rem); font-weight: 900; font-variation-settings: "wdth" 62; line-height: 1; color: var(--gold); }
.tc-error-detail { background: #060d24; border-radius: 14px; padding: 1rem; font-size: .78rem; color: #ff9aa4; max-height: 400px; overflow: auto; white-space: pre-wrap; }

/* ---------- Pied de page ---------- */
.tc-footer { position: relative; z-index: 1; border-top: 1px solid var(--line); padding: 1.2rem 0; color: var(--muted); font-size: .88rem; margin-top: 2.5rem; }

/* =====================================================================
   Compétitions
   ===================================================================== */
.tc-comp-hero { display: grid; grid-template-columns: 1fr 290px; gap: 1.2rem; padding: 1.3rem 1.5rem; border-radius: 20px; align-items: start; border: 1px solid var(--line-strong);
    background: radial-gradient(ellipse 55% 90% at 20% 0%, rgba(245, 184, 61, .2), transparent 70%), linear-gradient(180deg, var(--studio-2), var(--studio)); }
.tc-comp-hero.is-live { border-color: var(--bad); }
.tc-comp-hero-title { font-size: clamp(1.8rem, 3.6vw, 2.6rem); font-weight: 900; font-variation-settings: "wdth" 64; line-height: .95; margin: .3rem 0 .4rem; }
.tc-comp-meta { font-size: .92rem; color: var(--muted); }
.tc-comp-hero-side { padding: .9rem 1rem; border-radius: 14px; background: var(--night); align-self: start; }
.tc-comp-hero-pool { font-size: 1.8rem; font-weight: 900; font-variation-settings: "wdth" 68; color: var(--gold); line-height: 1.05; font-variant-numeric: tabular-nums; }
@media (max-width: 991.98px) { .tc-comp-hero { grid-template-columns: 1fr; padding: 1.1rem; } }
.tc-comp-hero-side .btn-lg { padding: .55rem 1rem; font-size: 1.05rem; }
.tc-comp-hero-side .d-grid { margin-top: .8rem !important; }
.tc-comp-hero .text-secondary[style*="pre-line"] { font-size: .95rem; }
.tc-timeline { display: grid; gap: .1rem; }
.tc-timeline-item { display: flex; gap: .9rem; align-items: center; padding: .6rem 0; position: relative; }
.tc-timeline-item:not(:last-child)::after { content: ""; position: absolute; left: 18px; top: 48px; bottom: -12px; width: 2px; background: var(--line-strong); }
.tc-timeline-dot { width: 38px; height: 38px; flex: none; border-radius: 50%; display: grid; place-items: center; font-weight: 900; background: var(--night); color: var(--gold); border: 2px solid var(--gold); }
.tc-round-final .tc-timeline-dot { background: var(--gold); color: var(--night); }
.tc-player-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; max-height: 480px; overflow: auto; }
.tc-player-list li { display: flex; align-items: center; gap: .6rem; padding: .5rem .65rem; border-radius: 12px; background: var(--night); font-size: .95rem; }
.tc-player-list li.is-me { box-shadow: inset 0 0 0 1px var(--gold); }
.tc-player-list li.is-winner { background: color-mix(in srgb, var(--gold) 14%, var(--night)); }
.tc-rank { font-weight: 900; color: var(--muted); min-width: 30px; text-align: right; font-variant-numeric: tabular-nums; }
.tc-organizer-panel { border-left: 4px solid var(--gold); }

/* Assistant de création */
.tc-stepper { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1rem; flex-wrap: wrap; }
.tc-stepper li { flex: 1 1 180px; }
.tc-stepper-btn { width: 100%; display: flex; align-items: center; gap: .6rem; padding: .7rem 1rem; border-radius: 999px; border: 1px solid var(--line-strong); background: var(--studio); color: var(--muted); font-weight: 700; text-align: left; }
.tc-stepper-btn span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; background: var(--night); }
.tc-stepper-btn.is-active { color: var(--night); background: var(--gold); border-color: var(--gold); }
.tc-stepper-btn.is-active span { background: var(--night); color: var(--gold); }
.tc-stepper-btn.is-done { color: var(--light); }
.tc-stepper-btn.is-done span { background: var(--good); color: var(--night); }
.tc-stepper-btn.has-error { border-color: var(--bad); color: #ff8a95; }
.tc-rounds { display: grid; gap: .6rem; }
.tc-round-row { padding: .9rem 1rem; border-radius: 16px; background: var(--night); }
.tc-round-row-head { display: flex; gap: .75rem; align-items: center; margin-bottom: .5rem; }
.tc-round-num { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; color: var(--night); background: var(--gold); flex: none; }
.tc-check-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .45rem; }
.tc-check { margin: 0; cursor: pointer; }
.tc-check input { position: absolute; opacity: 0; }
.tc-check span { display: flex; gap: .5rem; align-items: center; padding: .55rem .8rem; border-radius: 999px; border: 1px solid var(--line-strong); font-size: .9rem; background: var(--night); transition: all .15s; }
.tc-check span i { color: var(--gold); }
.tc-check input:checked + span { border-color: var(--gold); background: var(--gold); color: var(--night); }
.tc-check input:checked + span i { color: var(--night); }
.tc-check input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }

/* =====================================================================
   Arène
   ===================================================================== */
.tc-arena-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.tc-arena-bar-title { display: flex; align-items: center; gap: .9rem; }
.tc-arena-bar-title h1 { font-size: 1.7rem; }
.tc-arena-bar-title .tc-back { font-size: 1.3rem; }
.tc-arena-bar-stats { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.tc-pill { font-size: .86rem; font-weight: 700; padding: .3rem .8rem; border-radius: 999px; background: var(--studio); white-space: nowrap; }
.tc-pill-score { background: var(--gold); color: var(--night); font-size: .95rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.tc-stage { min-height: 480px; }
.tc-screen-center { min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.tc-countdown { font-size: clamp(7rem, 22vw, 12rem); font-weight: 900; font-variation-settings: "wdth" 62; line-height: 1; color: var(--gold); }
.tc-radar { width: 120px; height: 120px; position: relative; }
.tc-radar span { position: absolute; inset: 0; border-radius: 50%; border: 3px solid var(--gold); opacity: 0; animation: tc-radar 3s ease-out infinite; }
.tc-radar span:nth-child(2) { animation-delay: 1s; } .tc-radar span:nth-child(3) { animation-delay: 2s; }
@keyframes tc-radar { 0% { transform: scale(.2); opacity: .9; } 100% { transform: scale(1); opacity: 0; } }

/* Élément signature : la rampe de lampes du chrono */
.tc-lamps-wrap { display: flex; align-items: center; gap: 1rem; margin: .2rem 0 .6rem; }
.tc-lamps { flex: 1; display: grid; grid-template-columns: repeat(20, 1fr); gap: 5px; }
.tc-lamp { height: 14px; border-radius: 4px; background: #0d1a45; box-shadow: inset 0 0 0 1px rgba(140, 153, 194, .18); transition: background .25s, box-shadow .25s; }
.tc-lamp.on { background: var(--gold); box-shadow: 0 0 10px rgba(245, 184, 61, .7); }
.tc-lamps-wrap.is-urgent .tc-lamp.on { background: var(--bad); box-shadow: 0 0 10px rgba(255, 77, 94, .75); }
.tc-lamps-num { font-size: 2.3rem; font-weight: 900; font-variation-settings: "wdth" 66; min-width: 2.2ch; text-align: right; color: var(--gold); font-variant-numeric: tabular-nums; line-height: 1; }
.tc-lamps-wrap.is-urgent .tc-lamps-num { color: var(--bad); }

.tc-answers-live { margin-top: 1.6rem; }
.tc-answer-btn { width: 100%; cursor: pointer; position: relative; overflow: hidden; transition: border-color .12s, background .12s, transform .1s; }
.tc-answer-btn::before { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--share, 0%); background: rgba(140, 153, 194, .1); transition: width .6s ease; pointer-events: none; }
.tc-answer-btn:not(:disabled):hover { border-color: var(--gold); background: color-mix(in srgb, var(--gold) 8%, var(--night)); }
.tc-answer-btn:not(:disabled):active { transform: scale(.985); }
.tc-answer-btn:disabled { cursor: default; color: var(--light); }
.tc-answers.is-locked .tc-answer-btn:not(.is-selected):not(.is-correct) { opacity: .55; }
.tc-answer-btn.is-selected { border-color: var(--gold); background: color-mix(in srgb, var(--gold) 18%, var(--night)); opacity: 1 !important; }
.tc-answer-btn.is-pending { animation: tc-pending .5s ease-in-out infinite alternate; }
@keyframes tc-pending { to { border-color: var(--gold-soft); } }
.tc-answer-btn.is-correct { border-color: var(--good) !important; background: color-mix(in srgb, var(--good) 18%, var(--night)) !important; opacity: 1 !important; }
.tc-answer-btn.is-correct .tc-answer-letter { background: var(--good); }
.tc-answer-btn.is-wrong { border-color: var(--bad) !important; background: color-mix(in srgb, var(--bad) 16%, var(--night)) !important; }
.tc-answer-btn.is-wrong .tc-answer-letter { background: var(--bad); color: #fff; }
.tc-answer-stat { margin-left: auto; font-size: .86rem; font-weight: 800; color: var(--muted); position: relative; font-variant-numeric: tabular-nums; }
.tc-answer-text, .tc-answer-letter { position: relative; }
.tc-q-foot { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.1rem; font-size: .92rem; color: var(--muted); }
.tc-gain { font-weight: 900; font-size: 1.3rem; color: var(--gold) !important; }

.tc-leaderboard { position: sticky; top: 86px; }
.tc-lb { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; max-height: 70vh; overflow: auto; }
.tc-lb-row { display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; border-radius: 12px; background: var(--night); font-size: .95rem; transition: background .5s; }
.tc-lb-row.is-me { box-shadow: inset 0 0 0 1px var(--gold); }
.tc-lb-row.is-winner { background: color-mix(in srgb, var(--gold) 18%, var(--night)); }
.tc-lb-row.is-eliminated { opacity: .45; }
.tc-lb-row.is-gain { background: color-mix(in srgb, var(--good) 20%, var(--night)); }
.tc-lb-pos { width: 26px; text-align: center; font-weight: 900; color: var(--muted); font-variant-numeric: tabular-nums; }
.tc-lb-row:first-child .tc-lb-pos, .tc-lb-row.is-winner .tc-lb-pos { color: var(--gold); }
.tc-lb-presence { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.tc-lb-presence.on { background: var(--good); }
.tc-lb-presence.off { background: #3c4a78; }
.tc-lb-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.tc-lb-name small { color: var(--gold); font-weight: 600; }
.tc-lb-out { font-size: .76rem; color: var(--bad); font-weight: 700; }
.tc-lb-score { font-weight: 900; font-variant-numeric: tabular-nums; }
.tc-lb-focus { font-size: .7rem; font-weight: 800; color: var(--night); background: var(--gold); border-radius: 6px; padding: 0 .3rem; }
.tc-lb-empty { color: var(--muted); font-size: .95rem; }

.tc-re-col { padding: 1rem 1.2rem; border-radius: 16px; background: var(--night); height: 100%; text-align: left; }
.tc-re-ok { border-top: 4px solid var(--good); } .tc-re-ok h3 { color: var(--good); }
.tc-re-out { border-top: 4px solid var(--bad); } .tc-re-out h3 { color: var(--bad); }
.tc-re-col ol { padding-left: 1.2rem; margin: 0; display: grid; gap: .3rem; }
.tc-re-col li { display: flex; justify-content: space-between; gap: .5rem; }
.tc-mini-timer { font-weight: 800; color: var(--gold); }
.tc-me-banner { padding: .9rem 1rem; border-radius: 14px; background: var(--night); text-align: center; font-weight: 700; }
.tc-me-banner.is-ok { background: color-mix(in srgb, var(--good) 16%, var(--night)); color: var(--good); }
.tc-me-banner.is-out { background: color-mix(in srgb, var(--bad) 14%, var(--night)); color: #ff8a95; }

.tc-podium { display: flex; align-items: flex-end; justify-content: center; gap: .8rem; margin: 1.6rem 0 1rem; min-height: 240px; }
.tc-podium-step { width: 160px; text-align: center; animation: tc-rise .7s ease both; }
.tc-podium-2 { animation-delay: .2s; } .tc-podium-3 { animation-delay: .35s; }
@keyframes tc-rise { from { transform: translateY(24px); opacity: 0; } }
.tc-podium-name { font-weight: 800; font-size: 1.1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-podium-score { font-size: .9rem; color: var(--muted); margin-bottom: .4rem; font-variant-numeric: tabular-nums; }
.tc-podium-prize { display: inline-block; margin: -.15rem 0 .5rem; padding: .15rem .6rem; border-radius: 999px; background: rgba(245,184,61,.14); color: var(--gold); font-weight: 800; font-size: .85rem; font-variant-numeric: tabular-nums; }
.tc-me-prize { color: var(--gold); font-weight: 700; }
.tc-podium-block { border-radius: 14px 14px 0 0; display: grid; place-items: center; font-size: 2.6rem; font-weight: 900; font-variation-settings: "wdth" 66; color: var(--night); }
.tc-podium-1 .tc-podium-block { height: 160px; background: var(--gold); }
.tc-podium-2 .tc-podium-block { height: 112px; background: #c9d1ea; }
.tc-podium-3 .tc-podium-block { height: 80px; background: #d99a63; }

.tc-arena-hint { color: var(--muted); }
.tc-toasts { position: fixed; right: 16px; bottom: 16px; z-index: 1080; display: grid; gap: .5rem; max-width: min(380px, calc(100vw - 32px)); }
.tc-toast { margin: 0; padding: .75rem 1rem; box-shadow: 0 14px 34px rgba(0, 0, 0, .5); animation: tc-rise .25s ease; transition: opacity .4s, transform .4s; }
.tc-toast.is-out { opacity: 0; transform: translateY(10px); }
.tc-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 1070; width: 100vw; height: 100vh; }
kbd { background: var(--studio); border: 1px solid var(--line-strong); color: var(--light); font-size: .78rem; }

@media (max-width: 575.98px) {
    .tc-card { padding: 1rem; }
    .tc-stage, .tc-arena-card { padding: 1.1rem; }
    .tc-feature { padding: 1.1rem 1rem; }
    .tc-feature-facts { gap: 1.4rem; }
    .tc-bar-row { grid-template-columns: 1fr 50px; }
    .tc-bar-row .tc-bar { grid-column: 1 / -1; grid-row: 2; }
    .tc-podium-step { width: 100px; }
    .tc-lamps { gap: 3px; }
}
@media (prefers-reduced-motion: reduce) {
    .tc-live-dot, .tc-radar span, .tc-podium-step, .tc-answer-btn.is-pending { animation: none; }
}

/* =====================================================================
   Avatars, portefeuille, profil
   ===================================================================== */
.tc-av { display: inline-grid; place-items: center; flex: none; border-radius: 50%; overflow: hidden; background: var(--spot-blue); color: var(--gold); font-weight: 900; }
.tc-av img { width: 100%; height: 100%; object-fit: cover; }
.tc-av-sm { width: 30px; height: 30px; font-size: .85rem; }
.tc-av-md { width: 40px; height: 40px; font-size: 1rem; }
.tc-av-lg { width: 72px; height: 72px; font-size: 1.8rem; }
.tc-av-xl { width: 116px; height: 116px; font-size: 3rem; box-shadow: 0 0 0 4px var(--gold); }
.tc-dropdown .dropdown-item .ms-auto { padding-left: 1rem; }

.tc-wallet-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.2rem; margin-bottom: 1.5rem; }
.tc-wallet-head h1 { font-size: 2.6rem; font-weight: 900; font-variation-settings: "wdth" 66; }
.tc-balance { text-align: right; display: flex; flex-direction: column; }
.tc-balance span { color: var(--muted); font-size: .9rem; }
.tc-balance strong { font-size: clamp(2.4rem, 6vw, 3.6rem); font-weight: 900; font-variation-settings: "wdth" 64; color: var(--gold); line-height: 1; font-variant-numeric: tabular-nums; }
.tc-balance small { color: var(--muted); }
.tc-amount { font-size: 1.5rem; font-weight: 800; }
.tc-quick { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.tc-wallet-totals { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; }
.tc-wallet-totals div { background: var(--studio); border-radius: 14px; padding: .8rem 1rem; display: flex; flex-direction: column; }
.tc-wallet-totals span { font-size: .82rem; color: var(--muted); }
.tc-wallet-totals strong { font-size: 1.15rem; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 575.98px) { .tc-wallet-totals { grid-template-columns: 1fr 1fr; } .tc-balance { text-align: left; } }
.tc-ledger { list-style: none; padding: 0; margin: 0; }
.tc-ledger li { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.tc-ledger li:last-child { border-bottom: 0; }
.tc-ledger-main { display: flex; flex-direction: column; min-width: 0; }
.tc-ledger-main strong { font-weight: 700; }
.tc-ledger-main strong a { color: var(--light); }
.tc-ledger-main span { font-size: .82rem; color: var(--muted); }
.tc-ledger-side { display: flex; flex-direction: column; align-items: flex-end; text-align: right; flex: none; }
.tc-ledger-side strong { font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tc-ledger-side span { font-size: .82rem; color: var(--muted); }
.tc-tx { font-size: .74rem !important; font-weight: 700; border-radius: 999px; padding: .05rem .5rem; margin-top: .15rem; }
.tc-tx-completed { color: var(--good) !important; background: rgba(43, 212, 125, .12); }
.tc-tx-pending { color: var(--gold) !important; background: rgba(245, 184, 61, .14); }
.tc-tx-failed, .tc-tx-cancelled { color: var(--muted) !important; background: rgba(140, 153, 194, .14); }
.tc-pay { max-width: 460px; margin: 1rem auto; }
.tc-pay-amount { font-size: 3.2rem; font-weight: 900; font-variation-settings: "wdth" 64; color: var(--gold); }
.tc-wd { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: center; }
.tc-wd-main { display: flex; gap: 1.2rem; align-items: center; }
.tc-wd-amount { font-size: 1.8rem; font-weight: 900; font-variation-settings: "wdth" 68; color: var(--gold); white-space: nowrap; }
.tc-wd-actions { display: flex; flex-direction: column; gap: .5rem; align-items: flex-end; }

.tc-profile-hero { display: flex; flex-wrap: wrap; align-items: center; gap: 1.6rem; padding: 2rem; border-radius: 26px; margin-bottom: 1.2rem;
    background: radial-gradient(ellipse 50% 100% at 10% 0%, rgba(245, 184, 61, .22), transparent 70%), linear-gradient(180deg, var(--studio-2), var(--studio)); border: 1px solid var(--line-strong); }
.tc-profile-id { flex: 1; min-width: 240px; }
.tc-profile-name { font-size: clamp(2.2rem, 5vw, 3.4rem); font-weight: 900; font-variation-settings: "wdth" 64; margin: 0 0 .2rem; }
.tc-profile-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.tc-lvl { max-width: 460px; }
.tc-lvl-row { display: flex; justify-content: space-between; font-size: .9rem; margin-bottom: .35rem; }
.tc-lvl-row strong { color: var(--gold); }
.tc-lvl-row span { color: var(--muted); font-variant-numeric: tabular-nums; }
.tc-xp { height: 12px; border-radius: 99px; background: var(--night); overflow: hidden; }
.tc-xp span { display: block; height: 100%; background: var(--gold); border-radius: 99px; min-width: 6px; }
.tc-xp-sm { height: 8px; margin: .3rem 0 .15rem; }
.tc-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: .6rem; }
.tc-kpis div { background: var(--studio); border-radius: 16px; padding: .9rem 1rem; display: flex; flex-direction: column; }
.tc-kpis strong { font-size: 1.7rem; font-weight: 900; font-variation-settings: "wdth" 70; font-variant-numeric: tabular-nums; line-height: 1.1; white-space: nowrap; }
.tc-kpis span { font-size: .8rem; color: var(--muted); }
@media (max-width: 991.98px) { .tc-kpis { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575.98px) { .tc-kpis { grid-template-columns: repeat(2, 1fr); } .tc-profile-hero { padding: 1.3rem; } }
.tc-badges { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .6rem; }
.tc-badge-card { display: flex; gap: .8rem; align-items: center; padding: .8rem; border-radius: 14px; background: var(--night); opacity: .5; }
.tc-badge-card.is-earned { opacity: 1; box-shadow: inset 0 0 0 1px rgba(245, 184, 61, .45); }
.tc-badge-card div { display: flex; flex-direction: column; min-width: 0; }
.tc-badge-card strong { font-weight: 800; }
.tc-badge-card span { font-size: .8rem; color: var(--muted); }
.tc-badge-ico { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 50%; font-size: 1.2rem; background: var(--studio-2); color: var(--muted); }
.tc-badge-card.is-earned .tc-badge-ico { background: var(--gold); color: var(--night); }
.tc-badge-progress { color: var(--gold) !important; font-weight: 700; }
.tc-catstat { margin-bottom: .9rem; }

/* Bannières et répartition de la cagnotte */
.tc-feature.has-banner, .tc-comp-hero.has-banner {
    background: linear-gradient(180deg, rgba(10, 20, 51, .55) 0%, rgba(10, 20, 51, .92) 75%), var(--banner) center / cover no-repeat, var(--studio);
}
.tc-banner-thumb { display: block; width: 100%; max-height: 110px; object-fit: cover; border-radius: 10px; }
.tc-split-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .5rem; border-radius: 14px; }
.tc-split-picker.is-invalid { outline: 1px solid var(--bad); outline-offset: 4px; }
.tc-split-option { display: flex; flex-direction: column; gap: .5rem; padding: .75rem .85rem; border-radius: 14px; border: 1px solid var(--line-strong); background: var(--night); cursor: pointer; margin: 0; }
.tc-split-option strong { font-size: .9rem; }
.tc-split-bars { display: flex; gap: 3px; height: 10px; border-radius: 99px; overflow: hidden; }
.tc-split-1 { background: var(--gold); } .tc-split-2 { background: #c9d1ea; } .tc-split-3 { background: #d99a63; }
.btn-check:checked + .tc-split-option { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); }
.btn-check:focus-visible + .tc-split-option { outline: 2px solid var(--gold); outline-offset: 2px; }
.tc-verify { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem; padding: .9rem 1.1rem; margin-bottom: 1.2rem; border-radius: 14px; background: var(--studio); border-left: 4px solid var(--gold); }
.tc-verify > i { font-size: 1.4rem; color: var(--gold); }
.tc-lb-podium .tc-podium-step { display: flex; flex-direction: column; align-items: center; gap: .3rem; color: var(--light); text-decoration: none; }
.tc-lb-podium .tc-podium-block { width: 100%; }
.tc-ranking { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .4rem; }
.tc-ranking li { display: grid; grid-template-columns: 40px 40px 1fr auto auto; align-items: center; gap: .9rem; padding: .6rem .9rem; border-radius: 14px; background: var(--studio); }
.tc-ranking li.is-me { box-shadow: inset 0 0 0 1px var(--gold); }
.tc-ranking-pos { font-weight: 900; font-size: 1.2rem; color: var(--muted); text-align: center; font-variant-numeric: tabular-nums; }
.tc-ranking-name { font-weight: 800; color: var(--light); }
.tc-ranking-meta { font-size: .85rem; color: var(--muted); }
.tc-ranking-value { font-weight: 900; color: var(--gold); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 575.98px) { .tc-ranking li { grid-template-columns: 32px 40px 1fr auto; } .tc-ranking-meta { display: none; } }

.tc-prize-chip { padding: .1rem .5rem; border-radius: 999px; background: rgba(245,184,61,.14); color: var(--gold); font-weight: 700; font-size: .78rem; font-variant-numeric: tabular-nums; white-space: nowrap; }

.tc-lb-explain { color: var(--muted); margin: -.25rem 0 1.5rem; max-width: 60ch; }

/* ---------- Assistant : questions choisies à la main ---------- */
.tc-picks { margin-top: .9rem; padding-top: .8rem; border-top: 1px dashed var(--line-strong); }
.tc-picks-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.tc-picks.is-over .tc-picks-count, .tc-picks.is-over .tc-picks-rest { color: var(--bad) !important; }
.tc-pick-list { list-style: none; padding: 0; margin: 0; counter-reset: pick; }
.tc-picks.has-picks .tc-pick-list { margin-top: .7rem; }
.tc-pick { counter-increment: pick; display: grid; grid-template-columns: 1fr 84px 84px auto; gap: .6rem; align-items: center;
    padding: .6rem .7rem; margin-bottom: .45rem; border-radius: 12px; background: var(--studio); border: 1px solid var(--line); }
.tc-pick-main { min-width: 0; }
.tc-pick-text { font-size: .9rem; line-height: 1.35; overflow-wrap: anywhere; }
.tc-pick .tc-pick-text::before { content: counter(pick) ". "; color: var(--gold); font-weight: 800; }
.tc-pick-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .7rem; margin-top: .25rem; font-size: .75rem; color: var(--muted); }
.tc-pick-meta .tc-chip { font-size: .7rem; padding: .05rem .5rem; }
.tc-pick-field { display: flex; flex-direction: column; gap: .15rem; margin: 0; }
.tc-pick-field span { font-size: .68rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.tc-pick-field input { padding: .25rem .45rem; }
.tc-pick-actions { display: flex; gap: .15rem; }
.tc-icon-btn { color: var(--muted); border: 1px solid transparent; padding: .2rem .4rem; line-height: 1; }
.tc-icon-btn:hover, .tc-icon-btn:focus-visible { color: var(--light); border-color: var(--line-strong); }
.tc-icon-danger:hover, .tc-icon-danger:focus-visible { color: var(--bad); border-color: rgba(255, 77, 94, .4); }
.tc-pick:first-child [data-pick-move="-1"], .tc-pick:last-child [data-pick-move="1"] { visibility: hidden; }
.tc-picker-results { display: flex; flex-direction: column; gap: .5rem; min-height: 120px; }
.tc-picker-item { display: flex; align-items: center; gap: .8rem; padding: .65rem .8rem; border-radius: 12px; background: var(--night); border: 1px solid var(--line); }
.tc-picker-item .tc-pick-main { flex: 1; }
.tc-picker-item .btn { flex-shrink: 0; min-width: 92px; }
@media (max-width: 575.98px) {
    .tc-pick { grid-template-columns: 1fr 1fr; }
    .tc-pick-main { grid-column: 1 / -1; }
    .tc-pick-actions { grid-column: 1 / -1; justify-content: flex-end; }
    .tc-picker-item { flex-direction: column; align-items: stretch; }
}

@media (min-width: 992px) and (max-width: 1399.98px) { .tc-navbar .nav-link { padding: .45rem .6rem !important; font-size: .9rem; } }

/* ---------- Administration : migrations ---------- */
.min-w-0 { min-width: 0; }
.tc-mig-list { list-style: none; margin: 0; padding: 0; }
.tc-mig { padding: .9rem 1rem; border-top: 1px solid var(--line); }
.tc-mig-row { display: flex; align-items: center; gap: .85rem; }
.tc-mig-version { flex-shrink: 0; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px;
    background: var(--night); font-family: "JetBrains Mono", monospace; font-weight: 600; color: var(--muted); }
.tc-mig.is-pending .tc-mig-version { background: rgba(245, 184, 61, .14); color: var(--gold); }
.tc-mig.is-new .tc-mig-version { background: rgba(43, 212, 125, .14); color: var(--good); }
.tc-mig.is-failed .tc-mig-version { background: rgba(255, 77, 94, .14); color: var(--bad); }
.tc-mig-badge { flex-shrink: 0; display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.tc-mig-badge.is-done { color: var(--muted); background: rgba(140, 153, 194, .12); }
.tc-mig-badge.is-ok { color: var(--good); background: rgba(43, 212, 125, .14); }
.tc-mig-badge.is-pending { color: var(--gold); background: rgba(245, 184, 61, .14); }
.tc-mig-badge.is-bad { color: var(--bad); background: rgba(255, 77, 94, .14); }
.tc-mig-meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: .45rem 0 0 calc(46px + .85rem); font-size: .78rem; color: var(--muted); }
.tc-mig-details { margin: .45rem 0 0 calc(46px + .85rem); }
.tc-mig-details summary { cursor: pointer; font-size: .8rem; color: var(--muted); width: max-content; }
.tc-mig-details summary:hover { color: var(--light); }
.tc-mig-sql { margin: .5rem 0 0; max-height: 320px; overflow: auto; padding: .8rem 1rem; border-radius: 12px; background: var(--night); font-size: .78rem; }
.tc-mig-sql code { white-space: pre; }
.tc-mig-alert.is-bad { border-color: rgba(255, 77, 94, .45); background: linear-gradient(180deg, rgba(255, 77, 94, .08), transparent 60%), var(--studio); }
.tc-mig-msg { color: #ffb3bb; overflow-wrap: anywhere; white-space: pre-wrap; }
.tc-mig-ok-icon { font-size: 2.4rem; color: var(--good); }
.tc-menu-badge { margin-left: auto; min-width: 1.4rem; padding: .05rem .45rem; border-radius: 999px; background: var(--gold); color: var(--night); font-size: .72rem; font-weight: 800; text-align: center; }
@media (max-width: 575.98px) {
    .tc-mig-row { flex-wrap: wrap; }
    .tc-mig-meta, .tc-mig-details { margin-left: 0; }
}
.tc-user-btn { position: relative; }
.tc-attention-dot { position: absolute; top: 4px; right: 6px; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 3px var(--night); }

/* ---------- Lobby : badges d'état et compétitions populaires ---------- */
.tc-badge-soon { background: rgba(32, 57, 138, .55); color: #b9c8ff; }
.tc-badge-hot { background: linear-gradient(90deg, #ff7a3d, var(--gold)); color: var(--night); }
.tc-slot.is-popular { position: relative; border-radius: 16px; background: linear-gradient(90deg, rgba(245, 184, 61, .07), transparent 55%); }
.tc-slot.is-popular::before { content: ""; position: absolute; left: 0; top: 14%; bottom: 14%; width: 3px; border-radius: 3px;
    background: linear-gradient(180deg, #ff7a3d, var(--gold)); box-shadow: 0 0 12px rgba(245, 184, 61, .6); animation: tc-hot-pulse 2.4s ease-in-out infinite; }
.tc-slot.is-popular .tc-badge-hot i { display: inline-block; animation: tc-flame 1.6s ease-in-out infinite; transform-origin: 50% 90%; }
@keyframes tc-hot-pulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes tc-flame { 0%, 100% { transform: scale(1) rotate(0); } 30% { transform: scale(1.15) rotate(-6deg); } 60% { transform: scale(.95) rotate(5deg); } }
@media (prefers-reduced-motion: reduce) {
    .tc-slot.is-popular::before, .tc-slot.is-popular .tc-badge-hot i { animation: none; }
}

/* ---------- Administration : diagnostic ---------- */
.tc-sys-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; max-width: 560px; }
.tc-sys-total { padding: .8rem 1rem; border-radius: 16px; background: var(--studio); border: 1px solid var(--line); display: flex; flex-direction: column; }
.tc-sys-total strong { font-size: 1.9rem; font-weight: 900; line-height: 1; font-variation-settings: "wdth" 80; }
.tc-sys-total span { font-size: .8rem; color: var(--muted); }
.tc-sys-total.is-bad strong { color: var(--bad); }
.tc-sys-total.is-warn strong { color: var(--gold); }
.tc-sys-total.is-ok strong { color: var(--good); }
.tc-sys-list { list-style: none; margin: 0; padding: 0; }
.tc-sys { display: flex; gap: .7rem; padding: .6rem 0; border-top: 1px solid var(--line); }
.tc-sys:first-child { border-top: 0; padding-top: 0; }
.tc-sys > i { margin-top: .1rem; flex-shrink: 0; }
.tc-sys.is-ok > i { color: var(--good); }
.tc-sys.is-warn > i { color: var(--gold); }
.tc-sys.is-bad > i { color: var(--bad); }
.tc-sys.is-info > i { color: var(--muted); }
.tc-sys > div { flex: 1; }
.tc-sys-row { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.tc-sys-label { font-weight: 600; font-size: .92rem; }
.tc-sys-value { font-family: "JetBrains Mono", monospace; font-size: .8rem; color: var(--muted); text-align: right; overflow-wrap: anywhere; }
.tc-sys-help { margin-top: .2rem; font-size: .8rem; color: var(--muted); }
.tc-sys.is-bad .tc-sys-help { color: #ffb3bb; }
.tc-sys.is-warn .tc-sys-help { color: #ffe0a3; }

.tc-feature-actions .btn-lg { padding: .5rem 1.2rem; font-size: 1rem; }


/* ---------- Horloge du serveur (en-tête) ---------- */
.tc-clock { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .75rem; border-radius: 999px;
    border: 1px solid var(--line); background: rgba(10, 20, 51, .55); color: var(--light); white-space: nowrap; line-height: 1.2; }
.tc-clock i { color: var(--gold); }
.tc-clock-time { font-family: "JetBrains Mono", ui-monospace, monospace; font-weight: 600; font-size: .95rem; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.tc-clock-date { font-size: .78rem; color: var(--muted); }
.tc-clock-corner { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 14px); right: 16px; z-index: 5; }
@media (max-width: 1199.98px) { .tc-clock-date { display: none; } }
@media (max-width: 380px) { .tc-clock { padding: .25rem .55rem; } .tc-clock i { display: none; } }
.tc-lvl-hint { margin-top: .35rem; font-size: .8rem; color: var(--muted); }

/* ---------- Entraînement ---------- */
.tc-train-resume { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; border-color: rgba(245, 184, 61, .45); }
.tc-check.is-empty { opacity: .45; }
.tc-train-top { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .6rem; }
.tc-train-top .tc-back { margin-right: auto; }
.tc-train-score { font-weight: 800; color: var(--gold); font-variant-numeric: tabular-nums; }
.tc-train-progress { display: flex; gap: 4px; margin-bottom: 1rem; }
.tc-train-progress span { flex: 1; height: 6px; border-radius: 99px; background: var(--studio); }
.tc-train-progress .is-current { background: var(--gold); }
.tc-train-progress .is-ok { background: var(--good); }
.tc-train-progress .is-ko { background: var(--bad); }
.tc-train-card { padding: 1.4rem 1.5rem; }
.tc-train-timerbar { height: 6px; border-radius: 99px; background: var(--night); overflow: hidden; margin: .8rem 0 0; }
.tc-train-timerbar span { display: block; height: 100%; width: 100%; background: var(--good); transition: background .3s; }
.tc-train-timerbar span.is-low { background: var(--bad); }
.tc-arena-timer.is-low { color: var(--bad); }
.tc-train-verdict { margin-top: 1.2rem; padding: .8rem 1rem; border-radius: 14px; font-weight: 700; display: flex; gap: .5rem; align-items: center; }
.tc-train-verdict.is-ok { background: color-mix(in srgb, var(--good) 14%, transparent); color: var(--good); }
.tc-train-verdict.is-ko { background: color-mix(in srgb, var(--bad) 14%, transparent); color: #ff9aa5; }
.tc-train-result { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.tc-train-ring { --p: 0; width: 132px; height: 132px; flex: none; border-radius: 50%; display: grid; place-content: center; text-align: center;
    background: radial-gradient(closest-side, var(--studio) 78%, transparent 79%), conic-gradient(var(--gold) calc(var(--p) * 1%), var(--night) 0); }
.tc-train-ring strong { font-size: 1.7rem; font-weight: 900; line-height: 1; font-variant-numeric: tabular-nums; }
.tc-train-ring span { font-size: .85rem; color: var(--muted); }
.tc-train-stats { max-width: 420px; }
.tc-train-again { width: 230px; }
.tc-train-review { list-style: none; margin: 0; padding: 0; counter-reset: q; }
.tc-train-review li { display: flex; gap: .8rem; align-items: flex-start; padding: .7rem 0; border-top: 1px solid var(--line); }
.tc-train-review li:first-child { border-top: 0; }
.tc-train-review li > i { margin-top: .15rem; }
.tc-train-review li.is-ok > i { color: var(--good); }
.tc-train-review li.is-ko > i { color: var(--bad); }
.tc-train-review li > div { flex: 1; }
@media (max-width: 767.98px) { .tc-train-again { width: 100%; } .tc-train-card { padding: 1.1rem; } }

/* ---------- Devenir organisateur ---------- */
.tc-orgreq-state { display: flex; gap: 1.1rem; align-items: flex-start; }
.tc-orgreq-state > i { font-size: 2.2rem; line-height: 1; }
.tc-orgreq-state.is-approved > i { color: var(--gold); }
.tc-orgreq-state.is-pending > i { color: #7cc4ff; }
.tc-orgreq-quote { margin: .9rem 0; padding: .8rem 1rem; border-left: 3px solid var(--gold); background: rgba(255, 255, 255, .04); border-radius: 0 .6rem .6rem 0; color: #dfe6f5; font-size: .95rem; white-space: normal; word-break: break-word; }
.tc-orgreq-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.tc-orgreq-list li { display: flex; gap: .6rem; color: #cfd8ea; }
.tc-orgreq-list i { color: var(--gold); }
.tc-orgreq-steps { padding-left: 1.2rem; margin: 0; color: #cfd8ea; display: grid; gap: .35rem; }
.tc-orgreq-head { display: flex; gap: .9rem; align-items: center; }
.tc-orgreq form .tc-input { flex: 1 1 240px; }

/* ---------- Bouton son ---------- */
.tc-sound-toggle { font-size: 1.15rem; line-height: 1; align-items: center; }
.tc-sound-toggle.is-muted { color: #6f7c99; }
