::-moz-selection {
 color: black;
 background-color: gold;
}
::selection {
	color: black;
	background-color: gold;
}
p::-moz-selection {
 color: black;
 background-color: gold;
}
p::selection {
	color: black;
	background-color: gold;
}
:root {
 --bg:#111111;
--panel:#121314;
--line:#1b1c21;
--text:#f2f3f7;
--muted:#9aa3b2;
 --gold:#fcb10f;
--orange:#ff7c00;
--shadow:0 20px 60px rgba(0,0,0,.65);
 --z-header:10;
--z-modal:30;
--z-overlay:40;
	color-scheme: dark;
}
#log::-webkit-scrollbar {
width:10px;
}
#log::-webkit-scrollbar-thumb {
background:#2b2f38;
border-radius:10px;
}
#log::-webkit-scrollbar-thumb:hover {
background:#343845;
}
header {
	z-index: var(--z-header);
}
.modal {
	z-index: var(--z-modal);
}
.end-overlay {
	z-index: var(--z-overlay);
}
* {
	box-sizing: border-box
}
html, body {
	height: 100%;
	margin: 0;
	font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	background: var(--bg);
	color: var(--text);
}
.app {
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
}
header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	background: radial-gradient(120% 180% at 0% -40%, rgba(252,177,15,.10), transparent 40%), linear-gradient(180deg, #151515, #111111);
	border-bottom: 1px solid var(--line);
	position: sticky;
	top: 0;
	z-index: 10;
}
.brand {
	display: flex;
	align-items: center;
	gap: 12px;
}
.brand img {
	width: 44px;
	height: 44px;
	object-fit: contain;
	filter: drop-shadow(0 4px 16px rgba(252,177,15,.25));
}
.brand h1 {
	font-size: 16px;
	margin: 0;
	letter-spacing: .6px;
}
.stadium {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.scoreboard {
	display: flex;
	align-items: center;
	gap: 10px;
	background: linear-gradient(180deg, #121212, #0a0a0a);
	border: 1px solid #232323;
	border-radius: 16px;
	padding: 10px 14px;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), var(--shadow);
	transition: filter .25s ease, transform .12s ease, box-shadow .12s ease;
}
.scoreboard.pulse {
	filter: drop-shadow(0 0 22px rgba(252,177,15,.35));
}
.scoreboard.compact {
	padding: 6px 10px;
	border-radius: 12px;
	gap: 8px;
}
.scoreboard.compact .score {
	font-size: 18px;
	padding: 2px 8px;
	border-radius: 8px;
}
.scoreboard.compact .score small {
	font-size: 10px;
}
.scoreboard.clickable {
	cursor: pointer;
	user-select: none;
}
.scoreboard.clickable:hover {
	border-color: #343845;
	box-shadow: 0 6px 22px rgba(0,0,0,.35);
}
.lamp {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #1f1f1f;
	box-shadow: 0 0 0 2px #111 inset, 0 0 12px rgba(252,177,15,.35);
	border: 1px solid #2a2a2a
}
:root {
--fs-score: clamp(14px, 2.2vw, 22px);
}
.score {
	font-family: ui-monospace, Menlo, Consolas, monospace;
	font-size: var(--fs-score);
	letter-spacing: 2px;
	color: var(--gold);
	text-shadow: 0 0 10px rgba(252,177,15,.45);
	padding: 4px 10px;
	border-radius: 10px;
	background: rgba(0,0,0,.55);
	border: 1px solid #2a2a2a;
}
.score small {
	color: #9b7a10;
	font-size: 11px;
	margin-left: 6px;
	letter-spacing: .5px
}
.btn {
	background: linear-gradient(180deg, #15161a, #0f1013);
	color: var(--text);
	border: 1px solid #252831;
	padding: 10px 14px;
	border-radius: 14px;
	cursor: pointer;
	font-weight: 700;
	letter-spacing: .2px;
	box-shadow: 0 2px 0 #000;
	transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.btn:hover {
	border-color: #343845;
	transform: translateY(-1px);
	box-shadow: 0 6px 22px rgba(0,0,0,.35);
}
.btn.primary {
	background: linear-gradient(180deg, rgba(252,177,15,.22), rgba(252,177,15,.08));
	border-color: #3a3219;
	color: var(--gold);
	text-shadow: 0 0 8px rgba(252,177,15,.35)
}
.btn[disabled], .filebtn[disabled] {
	opacity: .55;
	cursor: not-allowed;
	pointer-events: none;
	filter: grayscale(100%);
}
.grid {
	display: grid;
	grid-template-columns: 360px 1fr;
	gap: 12px;
	height: auto;
	padding: 12px;
}
main {
	background: radial-gradient(140% 180% at 100% -20%, rgba(252,177,15,.06), transparent 40%), linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
	border: 1px solid var(--line);
	border-radius: 18px;
	overflow: hidden;
	position: relative;
	box-shadow: var(--shadow);
}
.panel {
	padding: 16px;
	border-bottom: 1px solid var(--line);
}
.panel h2 {
	font-size: 13px;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: .8px;
	color: #f0d8a1;
}
.small {
	font-size: 12px;
	color: #b5becc;
}
canvas {
	display: block;
	width: 100%;
	height: 100%;
	background: #000;
}
#log {
	height: 280px;
	overflow: auto;
	padding: 10px;
	font-size: 10px !important;
	line-height: 1.4;
}
.chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(252,177,15,.10);
	border: 1px solid rgba(252,177,15,.28);
	color: #ffe9bb;
	font-size: 12px;
}
.badges-list > div {
	margin-bottom: 10px;
}
.badges-list > div:last-child {
	margin-bottom: 0;
}
.filerow {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center
}
.filewrap {
	position: relative;
	display: inline-block;
}
.filewrap input[type=file] {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
}
.filebtn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 12px;
	border-radius: 12px;
	border: 1px solid #2a2f38;
	background: linear-gradient(180deg, #15161a, #0f1013);
	font-weight: 700;
	color: #ffffff;
}
.filebtn .dot {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: #444
}
.filebtn.a .dot {
	background: #3aa0ff
}
.filebtn.b .dot {
	background: #ff7c00
}
.filemeta {
	font-size: 12px;
	color: #ffffff
}
 @keyframes goalFlash {
0%, 100% {
filter:none
}
50% {
filter: drop-shadow(0 0 24px rgba(252,177,15,.8));
}
}
 @keyframes goalShake {
0%, 100% {
transform: translate(0, 0)
}
20% {
transform: translate(1px, -1px)
}
40% {
transform: translate(-1px, 1px)
}
60% {
transform: translate(1px, 1px)
}
80% {
transform: translate(-1px, -1px)
}
}
.goal-anim {
	animation: goalFlash .9s ease, goalShake .9s ease;
}
/* Pop court sur le chiffre qui marque */
@keyframes bump {
 0% {
transform: scale(1)
}
 30% {
transform: scale(1.12)
}
 100% {
transform: scale(1)
}
}
.score.bump {
	animation: bump .45s ease;
}
/* Hint perf pendant l'anim */
.goal-anim, .scoreboard.pulse {
	will-change: transform, filter;
}
.modal {
	position: fixed;
	inset: 0;
	display: none;
	place-items: center;
	background: rgba(0,0,0,.6);
	backdrop-filter: blur(6px);
	z-index: 30;
}
.modal.open {
	display: grid;
}
.card {
	width: min(740px, 92vw);
	background: linear-gradient(180deg, #0f1013, #0a0a0c);
	border: 1px solid #2a2b33;
	border-radius: 20px;
	padding: 20px;
	box-shadow: var(--shadow);
}
.card h3 {
	margin-top: 0;
	color: #f2e3b5
}
.steps {
	display: grid;
	gap: 8px;
	font-size: 14px;
	color: #cdd5e4
}
 @media (max-width: 980px) {
.grid {
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr;
	height: auto;
	padding: 10px;
}
main {
	order: 2;
}
aside.left {
	order: 1
}
header {
	flex-wrap: wrap
}
.stadium {
	margin-left: 0
}
}
/* Overlay fin de partie */
.end-overlay {
	position: fixed;
	inset: 0;
	display: none;
	place-items: center;
	background: rgba(0,0,0,.55);
	backdrop-filter: blur(6px);
	z-index: 40;
}
.end-overlay.open {
	display: grid;
}
.end-card {
	width: min(720px, 92vw);
	padding: 28px 24px;
	border-radius: 22px;
	border: 1px solid rgba(252,177,15,.28);
	background: radial-gradient(120% 180% at 0% -30%, rgba(252,177,15,.10), transparent 40%), linear-gradient(180deg, #0f1013, #0a0a0c);
	box-shadow: 0 20px 60px rgba(0,0,0,.65), inset 0 0 0 1px rgba(255,255,255,.03);
	animation: endPop .45s ease, endGlow 2.2s ease-in-out infinite alternate;
	text-align: center;
}
.end-title {
	font-size: 14px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #f0d8a1;
	margin: 0 0 10px;
}
.end-score {
	font-family: ui-monospace, Menlo, Consolas, monospace;
	font-weight: 800;
	letter-spacing: .06em;
	font-size: clamp(34px, 6.5vw, 78px);
	color: var(--gold);
	text-shadow: 0 0 18px rgba(252,177,15,.35);
	margin: 6px 0 10px;
}
.end-sub {
	color: #cbd3e6;
	font-size: 13px;
	opacity: .9;
}
 @keyframes endPop {
 0% {
transform: scale(.92);
opacity:0
}
 100% {
transform: scale(1);
opacity:1
}
}
@keyframes endGlow {
 0% {
box-shadow: 0 20px 60px rgba(0,0,0,.65), 0 0 0 rgba(252,177,15,0)
}
 100% {
box-shadow: 0 20px 60px rgba(0,0,0,.65), 0 0 30px rgba(252,177,15,.35)
}
}
/* PATCH — Harmoniser le lien Accueil avec les boutons */
a.btn, a.btn:link, a.btn:visited {
	text-decoration: none;   /* enlève le souligné */
	color: inherit;          /* même couleur que .btn */
}
a.btn:hover, a.btn:focus {
	text-decoration: none;   /* pas de souligné au survol/focus */
}
/* —— Scoreboard en blanc, haute lisibilité —— */
#turnPanel .score, #timerPanel .score, #scoreboard .score {
	color: #ff7c00 !important;
	text-shadow: 0 2px 8px rgba(0,0,0,.55);
}
/* Détails internes (chiffres + libellés) */
#turnPanel .score span, #timerPanel .score span, #timerPanel .score small, #scoreboard .score span {
	color: #fcb10f !important;
}
/* Optionnel: un peu plus d'impact visuel pour DOM/EXT */
#scoreboard .score {
	font-weight: 800;
	letter-spacing: .4px;
}
.scoreboard.disabled {
	opacity: .6;
	cursor: not-allowed;
	filter: grayscale(100%);
}
/* Coaching: garder l'état visuel actif même quand désactivé */
#coachPanel .btn.active {
	background: #fcb10f;
	color: #000000;
	border-color: #3a3219;
}
#coachPanel .btn.active[disabled] {
	opacity: 1;
	filter: none;
	cursor: not-allowed;
}
/* ====== UI latérale — Affichage (switch + select) ====== */
.form-group {
	display: grid;
	gap: 12px;
}
.form-row {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--line, #2b3040);
	border-radius: 12px;
	background: radial-gradient(120% 160% at 100% -40%, rgba(252,177,15,.06), transparent 40%), linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
	box-shadow: var(--shadow, 0 6px 28px rgba(0,0,0,.25));
}
.form-label {
	color: #cfd7e6;
	font-size: 13px;
	letter-spacing: .2px;
}
/* --- Switch --- */
.switch {
 --h: 24px;
 --w: 48px;
 --thumb: 18px;
	position: relative;
	display: inline-block;
	width: var(--w);
	height: var(--h);
	cursor: pointer;
}
.switch input {
	position: absolute;
	inset: 0;
	opacity: 0;
}
.switch .track {
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: linear-gradient(180deg, #15161a, #0f1013);
	border: 1px solid #252831;
	transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.switch .thumb {
	position: absolute;
	top: 50%;
	left: 3px;
	width: var(--thumb);
	height: var(--thumb);
	border-radius: 999px;
	background: #e8f3ea;
	transform: translate(0, -50%);
	transition: transform .15s ease;
	box-shadow: 0 2px 0 #000, 0 6px 16px rgba(0,0,0,.35);
}
.switch input:checked ~ .track {
	background: #fcb10f;
	border-color: #3a3219;
	box-shadow: 0 10px 30px rgba(252,177,15,.25);
}
.switch input:checked ~ .thumb {
	transform: translate(calc(var(--w) - var(--thumb) - 6px), -50%);
	background: #111;
}
/* --- Select custom --- */
.select {
	position: relative;
	display: inline-grid;
}
.select select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background: linear-gradient(180deg, #15161a, #0f1013);
	color: #9aa3b2;
	font-size: 13px;
	padding: 10px 36px 10px 12px;
	border: 1px solid #252831;
	border-radius: 10px;
	box-shadow: 0 2px 0 #000;
	min-width: 120px;
	outline: none;
	transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;
}
.select select:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 30px rgba(0,0,0,.45);
	border-color: #343845;
}
.select select:focus {
	border-color: #3a3219;
	box-shadow: 0 0 0 2px rgba(252,177,15,.35);
}
/* Chevron */
.select::after {
	content: "";
	position: absolute;
	right: 10px;
	top: 50%;
	width: 10px;
	height: 10px;
	transform: translateY(-50%) rotate(45deg);
	border-right: 2px solid #cfd7e6;
	border-bottom: 2px solid #cfd7e6;
	pointer-events: none;
	opacity: .9;
}
.btn:focus-visible, .filebtn:focus-visible, .scoreboard:focus-visible {
 outline: none;
 box-shadow: 0 0 0 2px rgba(252,177,15,.45), 0 4px 22px rgba(0,0,0,.35);
 border-color:#3a3219;
}
@media (prefers-reduced-motion: reduce) {
* {
	animation-duration: .001ms !important;
	animation-iteration-count: 1 !important;
	transition: none !important;
}
}
@media (max-width:600px) {
#log {
	height: 200px;
}
}
#weatherPanel .btn.active {
	background: var(--gold);
	color: #000;
	border-color: #3a3219;
}
#weatherPanel .btn:not(.active):hover {
	border-color: #343845;
}
a.btn:focus-visible {
box-shadow:0 0 0 2px rgba(252,177,15,.45);
border-color:#3a3219;
}
.score {
	background: rgba(0,0,0,.65);
	border-color: #333;
}
/* Flash balayage scoreboard (unique) */
.stadium .scoreboard {
	position: relative;
	overflow: hidden;
	contain: paint;
}
.stadium .scoreboard::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -20%;
	right: -20%;
	pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
	animation: sweep 1.6s ease infinite;
	transform: translateX(-100%);
}

/* Garde l’animation mais sans aller à -120%/120% */
@keyframes sweep {
 0% {
transform: translateX(-100%);
}
 60% {
transform: translateX(100%);
}
 100% {
transform: translateX(100%);
}
}
/* appliqué via canvas ? Ajoute au moins ce style pour cohérence globale */
.scoreboard:hover {
	box-shadow: 0 8px 28px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.04);
}
aside, main {
	background-image: radial-gradient(120% 180% at 100% -20%, rgba(252,177,15,.06), transparent 40%), linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02)), radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.04) 0 1px, transparent 1px);
	background-repeat: no-repeat, no-repeat, repeat;
	background-size: auto, auto, 6px 6px;
}
/* === Panneaux repliables (aside) === */
.panel[aria-expanded="false"] > *:not(h2) {
	display: none;
}
aside .panel h2 {
	cursor: pointer;
	position: relative;
	padding-right: 18px; /* place pour le caret */
}
/* Caret ▾ / ▸ */
aside .panel h2::after {
	content: "▾";
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	display: inline-flex;
	align-items: center;
	opacity: .8;
}
.panel[aria-expanded="false"] > h2::after {
	content: "▸";
}

/* Focus clavier propre */
aside .panel h2:focus-visible {
 outline:none;
 box-shadow:0 0 0 2px rgba(252,177,15,.45);
 border-radius:6px;
}
/* Patch : réduire la taille et forcer une seule ligne sur l’overlay rôle */
#roleOverlay .end-score {
	font-size: clamp(24px, 5.8vw, 52px);
	line-height: 1.05;
	white-space: nowrap;   /* évite le retour à la ligne */
	letter-spacing: -0.02em;
}
@media (max-width: 768px) {
#btnLocal {
	opacity: 0.5;
	pointer-events: none;
	cursor: not-allowed;
}
}
 .switch input:focus-visible ~ .track {
 box-shadow: 0 0 0 2px rgba(252,177,15,.45);
 border-color:#3a3219;
}
.switch input:focus-visible ~ .thumb {
 outline: 2px solid rgba(252,177,15,.65);
 outline-offset: 2px;
}
#log {
	content-visibility: auto;
	contain-intrinsic-size: 280px; /* taille estimée hors-écran */
	contain: content;
}
aside, main {
	content-visibility: auto;
	contain: paint;
}
@media (max-width:600px) {
#log {
	height: 200px;
}
.btn, .filebtn {
	padding: 12px 16px;
	min-height: 44px;
}
}
@media (max-width:600px) {
:root {
--shadow: 0 10px 24px rgba(0,0,0,.45);
}
}
.select select:focus-visible {
 border-color:#3a3219;
 box-shadow:0 0 0 2px rgba(252,177,15,.45);
}
a.btn[aria-disabled="true"] {
	opacity: .55;
	cursor: not-allowed;
	pointer-events: none;
	filter: grayscale(100%);
}
.sr-only {
	position: absolute!important;
	width: 1px!important;
	height: 1px!important;
	padding: 0!important;
	margin: -1px!important;
	overflow: hidden!important;
	clip: rect(0,0,0,0)!important;
	white-space: nowrap!important;
	border: 0!important;
}
@media (prefers-contrast:more) {
.btn, .filebtn {
	border-color: #3a3219;
}
.score {
	border-color: #3a3219;
}
}
@media (forced-colors:active) {
.btn, .filebtn, .select select, .score {
	forced-color-adjust: auto;
}
}
.fab-nav {
	position: fixed;
	right: 12px;
	bottom: 12px;
	display: flex;
	gap: 8px;
	z-index: 9999;
	pointer-events: auto;
}
.fab-nav button {
	padding: 8px 10px;
	border-radius: 10px;
	background: #111;
	color: #fff;
	border: 1px solid #333;
	font: 13px system-ui, sans-serif;
	cursor: pointer;
	touch-action: manipulation;
	box-shadow: 0 6px 22px rgba(0,0,0,.35);
}
.fab-nav button:hover {
	border-color: #555
}
/* badges/log/status cohérents */
.chip, #netStatus {
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
/* ====== MODERN PACK 2025 — surcharge douce ====== */

/* 0) Tokens supplémentaires (couleurs & rayons) */
:root {
 --accent:#8b5cf6;      /* violet doux pour éléments actifs/infos */
 --ok:#17c964;          /* succès */
 --bad:#ff375f;         /* erreur/annulation */
 --radius-sm:10px;
--radius:14px;
--radius-lg:20px;
 --glass-bg: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
 --glass-border: 1px solid rgba(255,255,255,.08);
}
/* 1) Header “glass” (améliore ton header sticky) */
header {
	background: var(--glass-bg);
	border-bottom: var(--glass-border);
	backdrop-filter: saturate(130%) blur(8px);
	-webkit-backdrop-filter: saturate(130%) blur(8px);
}
/* 2) Panneaux latéraux “verre dépoli” + spacing */
aside .panel {
	background: var(--glass-bg);
	border: var(--glass-border);
	border-radius: var(--radius);
	margin-bottom: 10px;
}
/* 3) Statut salon (#netStatus) en badge glass (si présent) */
#netStatus {
	display: inline-block;
	padding: 8px 12px;
	border-radius: 12px;
	background: var(--glass-bg);
	border: var(--glass-border);
}
/* 4) Boutons : état primaire & danger + icône seule */
.btn {
	border-radius: var(--radius);
	position: relative;
	overflow: hidden; /* pour de futurs effets subtils */
}
.btn.primary {                       /* renforce ton .btn.primary actuel */
	border-color: rgba(252,177,15,.45);
	box-shadow: 0 10px 30px rgba(252,177,15,.18);
}
.btn--danger {
	background: linear-gradient(180deg, rgba(255,55,95,.18), rgba(255,55,95,.06));
	border-color: rgba(255,55,95,.45);
	color: #ffd9e1;
	text-shadow: 0 0 8px rgba(255,55,95,.25);
}
.btn--icon {
	padding: 10px;
	width: 40px;
	aspect-ratio: 1;
	display: inline-grid;
	place-content: center;
}

/* 5) Sélecteurs & switch : focus plus premium (complète tes règles) */
.select select:focus-visible {
 border-color:#3a3219;
 box-shadow:0 0 0 2px rgba(252,177,15,.35), 0 4px 22px rgba(0,0,0,.35);
}
.switch input:focus-visible ~ .track {
 box-shadow:0 0 0 2px rgba(252,177,15,.35);
}
/* 6) Scoreboard & tuiles : contraste doux + glass */
.scoreboard {
	background: var(--glass-bg);
	border: var(--glass-border);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border-radius: var(--radius);
}
/* 7) FAB nav (Plateau/Mains) plus “app” */
.fab-nav {
	right: 14px;
	bottom: 14px;
	gap: 10px;
	background: var(--glass-bg);
	border: var(--glass-border);
	border-radius: 14px;
	padding: 8px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.fab-nav button {
	background: transparent;
	border-color: rgba(255,255,255,.12);
	padding: 10px 12px;
	border-radius: 10px;
}
.fab-nav button:hover {
	border-color: rgba(255,255,255,.25);
}
/* 8) Overlay rôle (ATTAQUE / DÉFEND) moderne */
#roleOverlay {
	background: var(--glass-bg);
	border: var(--glass-border);
	border-radius: var(--radius);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	padding: 10px 16px;
	box-shadow: 0 10px 40px rgba(0,0,0,.35);
}

/* 9) Scrollbars globaux (cohérents avec #log) */
*::-webkit-scrollbar {
width:10px;
height:10px;
}
*::-webkit-scrollbar-thumb {
 background:#2b2f38;
border-radius:10px;
border:2px solid transparent;
 background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover {
background:#343845;
}
/* 10) Petits helpers d’elevation (à appliquer au besoin) */
.elev-1 {
	box-shadow: 0 6px 24px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.03);
}
.elev-2 {
	box-shadow: 0 12px 36px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.04);
}
 @media (max-width: 600px) {
header {
	padding: 10px 12px;
}
.brand img {
	width: 36px;
	height: 36px;
}
}
/* Focus visibles (accessibles) */
:root {
--focus:#fcb10f;
}
:where(a, button, input, select, textarea, [role="button"], [tabindex]):focus-visible {
 outline:2px solid var(--focus);
 outline-offset:3px;
}
.modal.open .card :focus-visible {
 outline:3px solid #8b5cf6; /* accent violet dans la modale */
 outline-offset:3px;
}
#timerPanel.urgent .score span {
	color: #ffffff !important;
	text-shadow: 0 0 10px rgba(255,255,255,.6);
}
@media (max-width: 980px) {
.grid {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
main {
	order: 1;
}
aside.left {
	order: 2;
}
}