/* SmartTrack — grand écran (modèle mur INORIA) : sombre par défaut, carte animée, colonne qui monte, bandeau qui défile, fil info. */
body.mur { height: 100vh; overflow: hidden; display: grid; grid-template-rows: auto auto 1fr 46px; }
.m-tete { display: flex; align-items: center; gap: 16px; padding: 10px 20px; border-bottom: 1px solid var(--line); background: var(--panel2); }
.m-tete > #logo { height: 40px; }
.m-titre { flex: 1; } .m-titre b { font-size: 20px; } .m-titre em { font-style: normal; color: var(--acc); }
.m-direct, .m-bande-direct { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.4px; font-size: 12px; color: var(--ok); }
.m-direct i, .m-bande-direct i { width: 10px; height: 10px; border-radius: 50%; background: var(--ok); animation: m-emission 1.8s infinite; }
.m-horloge { font: 700 26px var(--font); font-variant-numeric: tabular-nums; letter-spacing: 1px; }
.m-compteurs { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; padding: 12px 20px 0; }
.m-cpt { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; position: relative; overflow: hidden; cursor: pointer; }
.m-cpt .l { text-transform: uppercase; letter-spacing: 1.2px; font-size: 11px; font-weight: 700; color: var(--mut); }
.m-cpt .v { font: 700 38px var(--font); font-variant-numeric: tabular-nums; line-height: 1.15; }
.m-cpt .s { font-size: 12px; color: var(--mut); }
.m-cpt::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--c, var(--acc)); }
.m-cpt.ok { --c: var(--ok); } .m-cpt.info { --c: var(--info); } .m-cpt.alerte { --c: var(--warn); } .m-cpt.critique { --c: var(--bad); }
.m-cpt.ok .v { color: var(--ok); } .m-cpt.alerte .v { color: var(--warn); }
.m-cpt.flash { animation: m-flash 1.2s ease; }
.m-corps { display: grid; grid-template-columns: 1fr 360px; gap: 12px; padding: 12px 20px; min-height: 0; }
.m-carte { position: relative; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); }
.m-carte #carte { position: absolute; inset: 0; }
.m-lieu { position: absolute; top: 14px; left: 14px; z-index: 5; padding: 8px 14px; border-radius: 10px; font-weight: 700; letter-spacing: .6px;
  background: color-mix(in srgb, var(--bg) 72%, transparent); color: var(--ink); backdrop-filter: blur(8px); text-transform: uppercase; font-size: 13px; }
:root[data-theme="light"] .m-lieu { background: rgba(255,255,255,.8); color: #000; }
.m-lieu:empty { display: none; }
.m-colonne { display: flex; flex-direction: column; min-height: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 14px 14px 0; }
.m-colonne h2 { margin: 0 0 10px; font-size: 13px; text-transform: uppercase; letter-spacing: 1.4px; color: var(--mut); }
.m-liste { flex: 1; overflow: hidden; position: relative; mask-image: linear-gradient(180deg, #000 85%, transparent); }
.m-liste-piste { animation: m-monte linear infinite; }
.m-liste:hover .m-liste-piste { animation-play-state: paused; }
.m-evt { display: grid; grid-template-columns: 10px 1fr; gap: 10px; padding: 9px 4px; border-bottom: 1px solid var(--line); cursor: pointer; }
.m-evt i { width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; background: var(--c, var(--info)); }
.m-evt.alerte { --c: var(--warn); } .m-evt.critique { --c: var(--bad); } .m-evt.ok { --c: var(--ok); }
.m-evt.critique i { animation: m-pouls 1.4s infinite; }
.m-evt b { display: block; } .m-evt span { font-size: 12px; color: var(--mut); }
/* Bandeau du bas toujours foncé (comme le mur INORIA), y compris en thème clair : ses couleurs sont les valeurs du thème sombre de la charte (agl-tokens.css), figées ici volontairement. */
.m-bande { display: flex; align-items: stretch; border-top: 1px solid var(--line); background: #050c13; color: #e3ecf3; }
:root[data-theme="light"] .m-bande { background: var(--agl-marine); }
.m-bande-direct { padding: 0 14px; } .m-bande-heure { display: grid; place-items: center; padding: 0 12px; font-variant-numeric: tabular-nums; font-weight: 700; }
.m-bande-tag { display: grid; place-items: center; padding: 0 16px; background: var(--acc); color: var(--acc-ink); font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; font-size: 12px; }
.m-bande-cadre { flex: 1; overflow: hidden; position: relative; }
.m-bande-texte { position: absolute; white-space: nowrap; top: 50%; transform: translateY(-50%); animation: m-defile linear infinite; font-size: 15px; }
.m-bande-texte span { margin-right: 46px; } .m-bande-texte .sep { color: var(--agl-or); margin-right: 12px; }
.m-bande-texte .alerte { color: #fab219; font-weight: 700; } .m-bande-texte .ok { color: #3fbf6b; font-weight: 700; }
.m-fil { position: fixed; left: 34px; bottom: 70px; z-index: 20; display: flex; flex-direction: column-reverse; gap: 8px; width: 340px; pointer-events: none; }
.m-pop { background: var(--panel); border: 1px solid var(--line); border-left: 5px solid var(--c, var(--info)); border-radius: 12px; padding: 12px 14px;
  box-shadow: 0 18px 40px #000a; animation: m-surgit .45s cubic-bezier(.2,.9,.3,1.2) both; backdrop-filter: blur(10px); }
.m-pop.part { animation: m-part .5s ease forwards; }
.m-pop.alerte { --c: var(--warn); } .m-pop.ok { --c: var(--ok); } .m-pop.critique { --c: var(--bad); }
.m-pop .k { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--acc); font-weight: 700; }
.m-pop .t { font-weight: 700; margin-top: 2px; } .m-pop .d { font-size: 13px; color: var(--mut); }
body.mur .ass-panneau { top: 130px; bottom: 62px; }
body.mur .ass-bouton { bottom: 62px; }
body.mur .ass-canevas { left: auto; right: 400px; bottom: 70px; width: 440px; }
body.mur .bandeau-demo { position: fixed; top: 64px; left: 50%; transform: translateX(-50%); z-index: 30; border-radius: 8px; border: 1px solid var(--warn); }
@keyframes m-emission { 0% { box-shadow: 0 0 0 0 #3fbf6b88; } 70% { box-shadow: 0 0 0 9px #3fbf6b00; } 100% { box-shadow: 0 0 0 0 #3fbf6b00; } }
@keyframes m-pouls { 50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--bad) 35%, transparent); } }
@keyframes m-monte { from { transform: translateY(0); } to { transform: translateY(-50%); } }
@keyframes m-defile { from { transform: translate(0, -50%); } to { transform: translate(-50%, -50%); } }
@keyframes m-surgit { from { opacity: 0; transform: translateX(-40px) scale(.96); } }
@keyframes m-part { to { opacity: 0; transform: translateX(-40px); } }
@keyframes m-flash { 30% { background: var(--hl); transform: scale(1.02); } }
@media (max-width: 1100px) { body.mur { overflow: auto; height: auto; grid-template-rows: none; } .m-corps { grid-template-columns: 1fr; }
  .m-carte { height: 60vh; } .m-colonne { max-height: 320px; } .m-titre b { font-size: 15px; } .m-horloge { font-size: 16px; } body.mur .ass-canevas { right: 16px; left: 16px; width: auto; } }
@media (max-width: 600px) { .m-tete { flex-wrap: wrap; gap: 8px; } .m-titre { order: 3; flex-basis: 100%; } .m-cpt .v { font-size: 26px; }
  .m-fil { width: calc(100% - 32px); left: 16px; } .m-bande { position: static; height: 46px; } /* 27/10/2026 : ne recouvre plus la carte */ }
@media (prefers-reduced-motion: reduce) { body.mur *, body.mur *::before, body.mur *::after { animation: none !important; transition: none !important; } }
body.mur main.m-corps { max-width: none; margin: 0; width: 100%; }
.m-pays button { background: var(--panel); color: var(--ink); }
@media (max-width: 600px) { .m-pays { order: 4; } }
body.mur .ass-panneau { top: 200px; }
.m-ecoute { border: 1px solid var(--acc); background: transparent; color: var(--acc); border-radius: 20px; padding: 7px 14px; font-weight: 700; cursor: pointer; }
.m-ecoute[aria-pressed="true"] { background: var(--acc); color: var(--acc-ink); animation: m-emission 1.8s infinite; }
body.mur .ass-canevas { left: 50%; right: auto; bottom: 90px; transform: translateX(-50%); width: min(620px, 90vw); }
body.mur.ass-ouvert .ass-canevas { left: 40%; }
