/*
 * Socle commun aux trois plateformes de TournLive : palette, motifs et réglages de base.
 * Aucune mise en forme de composant ici. Chaque plateforme a sa feuille :
 *   showcase.css  — site vitrine (accueil, compétitions, tarifs, connexion)
 *   organizer.css — espace organisateur (/dashboard, /account)
 *   public.css    — site public des spectateurs (/t/…, /feuille/…)
 * La plateforme est portée par la classe du <body> : site-showcase, site-organizer, site-public.
 */
:root {
    --gx-ink: #08283a;
    --gx-bg: #f1fbff;
    --gx-primary: #008fb8;
    --gx-primary-dark: #006f8f;
    --gx-glow: #00c7df;
    --gx-glow-2: #00b8d4;
    --gx-orange: #ff6a00;
    --gx-muted: #52798a;
    --gx-border: #9dd8e5;
    --gx-pale: #e4f8fc;
    --gx-peach: #fff5ea;
    /* Dégradé caractéristique. */
    --gx-energy: linear-gradient(90deg, #008fb8, #00c7df, #ff6a00);
    --tl-ink: var(--gx-ink);
    --tl-muted: var(--gx-muted);
    --tl-primary: var(--gx-primary);
    --tl-primary-dark: var(--gx-primary-dark);
    --tl-lime: var(--gx-orange);
    --tl-bg: var(--gx-bg);
    --tl-border: var(--gx-border);
    --tl-shadow: 0 18px 50px rgba(8, 40, 58, .1);
    --bs-body-color: var(--gx-ink);
    --bs-secondary-color: var(--gx-muted);
    --bs-link-color-rgb: 0, 143, 184;
    --bs-link-hover-color-rgb: 0, 111, 143;
    /* Poussière d'étoiles, pour les fonds clairs. */
    --gx-dust: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cg fill='%23008fb8' opacity='.16'%3E%3Ccircle cx='22' cy='30' r='1.4'/%3E%3Ccircle cx='128' cy='18' r='1'/%3E%3Ccircle cx='188' cy='92' r='1.5'/%3E%3Ccircle cx='70' cy='122' r='1'/%3E%3Ccircle cx='150' cy='176' r='1.3'/%3E%3Ccircle cx='34' cy='198' r='1'/%3E%3C/g%3E%3Cpath d='M104 78l1.5 4 4 1.5-4 1.5-1.5 4-1.5-4-4-1.5 4-1.5z' fill='%23ff6a00' opacity='.3'/%3E%3C/svg%3E");
    /* Champ d'étoiles, pour les aplats bleu nuit. */
    --gx-stars: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cg fill='%23fff'%3E%3Ccircle cx='18' cy='34' r='1.1' opacity='.9'/%3E%3Ccircle cx='96' cy='12' r='.8' opacity='.6'/%3E%3Ccircle cx='171' cy='58' r='1.3' opacity='.85'/%3E%3Ccircle cx='236' cy='23' r='.7' opacity='.55'/%3E%3Ccircle cx='58' cy='112' r='.7' opacity='.5'/%3E%3Ccircle cx='132' cy='141' r='1' opacity='.75'/%3E%3Ccircle cx='214' cy='126' r='.8' opacity='.6'/%3E%3Ccircle cx='27' cy='196' r='1.2' opacity='.8'/%3E%3Ccircle cx='104' cy='228' r='.7' opacity='.5'/%3E%3Ccircle cx='187' cy='206' r='1' opacity='.7'/%3E%3Ccircle cx='246' cy='244' r='.8' opacity='.55'/%3E%3C/g%3E%3Cpath d='M76 62l1.6 4.4 4.4 1.6-4.4 1.6-1.6 4.4-1.6-4.4-4.4-1.6 4.4-1.6z' fill='%2300c7df' opacity='.9'/%3E%3Cpath d='M204 168l1.3 3.6 3.6 1.3-3.6 1.3-1.3 3.6-1.3-3.6-3.6-1.3 3.6-1.3z' fill='%23ff6a00' opacity='.85'/%3E%3C/svg%3E");
    /* Orbites claires (sur fond pâle) et orbites lumineuses (sur bleu nuit). */
    --gx-orbits: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='520' viewBox='0 0 900 520'%3E%3Cg fill='none' stroke='%23008fb8' transform='rotate(-16 640 250)'%3E%3Cellipse cx='640' cy='250' rx='420' ry='120' opacity='.16'/%3E%3Cellipse cx='640' cy='250' rx='310' ry='84' opacity='.22'/%3E%3Cellipse cx='640' cy='250' rx='205' ry='52' opacity='.28'/%3E%3C/g%3E%3Ccircle cx='246' cy='318' r='5' fill='%23ff6a00'/%3E%3Ccircle cx='842' cy='132' r='3.5' fill='%2300c7df'/%3E%3C/svg%3E");
    --gx-orbits-night: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='520' viewBox='0 0 900 520'%3E%3Cg fill='none' stroke='%2300c7df' transform='rotate(-16 640 250)'%3E%3Cellipse cx='640' cy='250' rx='420' ry='120' opacity='.2'/%3E%3Cellipse cx='640' cy='250' rx='310' ry='84' opacity='.28'/%3E%3Cellipse cx='640' cy='250' rx='205' ry='52' opacity='.36'/%3E%3C/g%3E%3Ccircle cx='246' cy='318' r='5' fill='%23ff6a00'/%3E%3Ccircle cx='842' cy='132' r='3.5' fill='%2300c7df'/%3E%3C/svg%3E");
    --gx-night-bg: var(--gx-stars), radial-gradient(circle at 10% -20%, rgba(0,199,223,.28), transparent 40%), radial-gradient(circle at 92% 0%, rgba(255,106,0,.2), transparent 34%), linear-gradient(120deg, #062233, #0b4a66 55%, #08283a);
}

body { color: var(--gx-ink); }
.text-muted { color: var(--gx-muted) !important; }
.text-primary { color: var(--gx-primary) !important; }
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible, a:focus-visible { box-shadow: 0 0 0 3px rgba(255,106,0,.45); outline: 0; }
.form-control, .form-select { border-color: var(--gx-border); }
.form-control:focus, .form-select:focus { border-color: var(--gx-glow-2); box-shadow: 0 0 0 .23rem rgba(0,199,223,.2); }
.match-clock.is-running i { color: var(--gx-orange); }

/* Bouton du menu : son libellé n'est montré que là où une plateforme le décide. */
body.site-admin .navbar-toggler-label { display: none; }
