/* ── Data Analyst Bootcamp : page d'inscription ──────────────────────────────
   Même structure que l'AI Business Accelerator (abacc.css), accent émeraude et cyan.
   Métaphore : vos sources de données deviennent un tableau de bord, puis une décision.
   Règle de l'Académie : en-tête sombre, contenu clair, cartes sombres ; l'or reste réservé à l'inscription. */

/* ── Accent de la page ── */
body.da .ab-aurore i:nth-child(1) { background: rgba(16,185,129,.5); }
body.da .ab-aurore i:nth-child(2) { background: rgba(0,212,255,.38); }
body.da .ab-aurore i:nth-child(3) { background: rgba(245,158,11,.2); }
body.da .ab-hero h1 em { background: linear-gradient(100deg, #6ee7b7, #10b981 45%, #00d4ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
body.da .ab-methode { color: #6ee7b7; }
body.da .ab-lien { background-image: linear-gradient(#10b981, #10b981); }
body.da .ab-lien:hover { color: #6ee7b7; }
body.da .section .section-label, body.da .section .section-title em { color: #047857; }
body.da .audience-card:hover, body.da .mod-item:hover, body.da .week-card:hover { border-color: rgba(16,185,129,.5); }
body.da .audience-icon svg { color: #6ee7b7; }
body.da .prerequis { border-color: rgba(4,120,87,.25); }
body.da .prerequis-text strong { color: #047857; }
body.da .final-project { background: linear-gradient(135deg, #0d2b2a, #08161a); border-color: rgba(110,231,183,.22); }
body.da .price-card.featured::before { background: conic-gradient(from var(--ab-angle, 0deg), #f5dcb0, #10b981, #00d4ff, #f5dcb0); }
body.da .price-card .price-cta:not(.outline):not(.ab-cta) { background: linear-gradient(135deg, #10b981, #047857); }
body.da .price-card .price-cta:not(.outline):not(.ab-cta):hover { box-shadow: 0 8px 26px rgba(4,120,87,.4); }
body.da .price-cta.outline:hover { border-color: #6ee7b7; color: #6ee7b7; }
body.da .bottom-cta { background: radial-gradient(700px 360px at 50% 100%, rgba(16,185,129,.22), transparent 70%), #0a0a14; }
body.da .bottom-cta h2 em { color: #6ee7b7; }
body.da .ab-lecture { background: linear-gradient(90deg, #10b981, #f5dcb0); }
body.da .ab-faq-item { background: linear-gradient(135deg, #10201f, #0b1416); border-color: rgba(110,231,183,.16); }
body.da .ab-faq-item:hover { border-color: rgba(16,185,129,.5); }
body.da .ab-faq-item summary i { border-color: rgba(110,231,183,.35); }
body.da .ab-faq-item summary i::before, body.da .ab-faq-item summary i::after { background: #6ee7b7; }
body.da .ab-semaine { background: linear-gradient(135deg, #10201f, #0b1416); border-color: rgba(110,231,183,.14); }
body.da .ab-semaine [data-cat="c"] { --col: #10b981; } body.da .ab-semaine [data-cat="a"] { --col: #00d4ff; }
body.da .ab-semaine [data-cat="q"] { --col: #f59e0b; } body.da .ab-semaine [data-cat="t"] { --col: #a78bfa; }

/* ── Sections propres au programme Data Analyst, sur fond clair ── */
body.da .bloc-header { border-bottom-color: rgba(15,21,35,.1); }
body.da .bloc-title { color: #0f1523; }
body.da .bloc-num { box-shadow: 0 6px 16px rgba(15,21,35,.18); }
body.da .tool-group, body.da .bonus-card { box-shadow: 0 10px 28px rgba(15,21,35,.12); transition: border-color .3s, transform .3s cubic-bezier(.16,1,.3,1); }
body.da .tool-group:hover, body.da .bonus-card:hover { border-color: rgba(16,185,129,.5); transform: translateY(-3px); }
body.da .cert-section { background: linear-gradient(135deg, #14122e, #0b1416); border-color: rgba(167,139,250,.25); box-shadow: 0 24px 60px rgba(15,21,35,.22); }
body.da .cert-section > p { color: rgba(226,232,240,.7); }

/* ── En-tête : le tableau de bord se construit à partir des sources ── */
.da-scene { position: relative; z-index: 1; display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 26px; align-items: center; min-height: 460px; }
.da-sources { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 14px; }
.da-src { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border-radius: 12px; font-size: 13px; font-weight: 600; color: #e2e8f0;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(6px);
  opacity: 0; transform: translateX(-16px); transition: opacity .6s calc(.25s + var(--i) * .12s), transform .7s cubic-bezier(.16,1,.3,1) calc(.25s + var(--i) * .12s), border-color .3s; }
.da-src svg { width: 18px; height: 18px; flex: none; color: var(--c); }
.da-src.da-actif { border-color: var(--c); box-shadow: 0 0 18px color-mix(in srgb, var(--c) 45%, transparent); }
.da-pret .da-src { opacity: 1; transform: none; }
.da-flux { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; overflow: visible; }
.da-flux path { fill: none; stroke: rgba(110,231,183,.18); stroke-width: 1.2; stroke-dasharray: 3 5; }
.da-flux circle { fill: #fff; filter: drop-shadow(0 0 5px #10b981); opacity: 0; }
.da-pret .da-flux circle { opacity: 1; transition: opacity .6s 1.2s; }

.da-dash { position: relative; z-index: 2; border-radius: 20px; padding: 18px; color: #e2e8f0;
  background: linear-gradient(160deg, rgba(20,34,40,.92), rgba(10,14,24,.94)); border: 1px solid rgba(110,231,183,.2);
  box-shadow: 0 0 0 1px rgba(255,255,255,.03) inset, 0 40px 90px rgba(0,0,0,.55), 0 0 60px rgba(16,185,129,.12);
  transform-style: preserve-3d; transition: transform .5s cubic-bezier(.16,1,.3,1);
  opacity: 0; translate: 0 18px; scale: .97; }
.da-pret .da-dash { opacity: 1; translate: 0 0; scale: 1; transition: opacity .8s .1s, translate 1s cubic-bezier(.16,1,.3,1) .1s, scale 1s cubic-bezier(.16,1,.3,1) .1s, transform .5s cubic-bezier(.16,1,.3,1); }
.da-tete { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.da-pts { display: flex; gap: 5px; } .da-pts i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.18); }
.da-pts i:nth-child(1) { background: #ff6b6b; } .da-pts i:nth-child(2) { background: #ffc94d; } .da-pts i:nth-child(3) { background: #4cd38a; }
.da-tete b { font-size: 13.5px; font-weight: 600; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.da-prog { margin-left: auto; font-size: 11.5px; color: #6ee7b7; background: rgba(16,185,129,.12); border: 1px solid rgba(16,185,129,.3); padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.da-prog em { font-style: normal; font-weight: 700; color: #fff; }
.da-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.da-kpi { padding: 11px 12px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); }
.da-kpi small { display: block; font-size: 11px; color: rgba(226,232,240,.6); margin-bottom: 4px; }
.da-kpi b { font-family: 'DM Serif Display', Georgia, serif; font-weight: 400; font-size: 24px; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.da-kpi i { display: inline-block; margin-left: 6px; font-style: normal; font-size: 11px; font-weight: 700; color: #34d399; }
.da-kpi i.da-bas { color: #fb7185; }
.da-graphes { display: grid; grid-template-columns: 1.2fr 1fr; gap: 10px; }
.da-carte { position: relative; padding: 12px; border-radius: 12px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.07); min-height: 150px; }
.da-carte small { display: block; font-size: 11px; color: rgba(226,232,240,.6); margin-bottom: 8px; }
.da-barres { display: flex; align-items: flex-end; gap: 7px; height: 108px; }
.da-barres i { flex: 1; height: calc(var(--h) * 1%); border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg, #34d399, rgba(16,185,129,.35));
  transform-origin: 50% 100%; transform: scaleY(0); transition: transform .9s cubic-bezier(.34,1.3,.64,1) calc(.9s + var(--i) * .09s); }
.da-barres i.da-alerte { background: linear-gradient(180deg, #fb7185, rgba(251,113,133,.35)); }
.da-pret .da-barres i { transform: none; }
.da-courbe { width: 100%; height: 108px; overflow: visible; }
.da-courbe path.da-ligne { fill: none; stroke: #00d4ff; stroke-width: 2.4; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 4px rgba(0,212,255,.6)); }
.da-courbe path.da-aire { fill: url(#da-aire); opacity: 0; }
.da-courbe circle { fill: #fff; stroke: #00d4ff; stroke-width: 2; opacity: 0; }
.da-pret .da-courbe path.da-ligne { stroke-dashoffset: 0; transition: stroke-dashoffset 1.8s cubic-bezier(.65,0,.35,1) 1.3s; }
.da-pret .da-courbe path.da-aire { opacity: 1; transition: opacity 1s 2.4s; }
.da-pret .da-courbe circle { opacity: 1; transition: opacity .4s 3s; }
.da-insight { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 11px 13px; border-radius: 12px; font-size: 13px; line-height: 1.45;
  background: linear-gradient(90deg, rgba(245,220,176,.14), rgba(245,220,176,.04)); border: 1px solid rgba(245,220,176,.3); color: #f5ecd8;
  opacity: 0; transform: translateY(8px); transition: opacity .6s, transform .7s cubic-bezier(.34,1.56,.64,1); }
.da-insight svg { width: 20px; height: 20px; flex: none; color: #f5dcb0; }
.da-insight.da-on { opacity: 1; transform: none; }

/* Données en direct : après la construction, le tableau de bord continue de bouger */
.da-live .da-barres i { transform: none; transition: height .9s cubic-bezier(.34,1.3,.64,1), background .4s, box-shadow .4s; }
.da-barres i.da-neuf { box-shadow: 0 0 14px rgba(52,211,153,.55); }
.da-barres i.da-alerte.da-neuf { box-shadow: 0 0 14px rgba(251,113,133,.55); }
.da-direct { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 0 rgba(52,211,153,.6); animation: da-direct 1.6s ease-out infinite; }
@keyframes da-direct { 0% { box-shadow: 0 0 0 0 rgba(52,211,153,.65); } 100% { box-shadow: 0 0 0 9px rgba(52,211,153,0); } }
.da-point { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(0,212,255,.45), 0 0 14px #00d4ff;
  pointer-events: none; animation: da-point 1.8s ease-in-out infinite; }
@keyframes da-point { 0%, 100% { box-shadow: 0 0 0 3px rgba(0,212,255,.45), 0 0 14px #00d4ff; } 50% { box-shadow: 0 0 0 7px rgba(0,212,255,.12), 0 0 22px #00d4ff; } }
.da-kpi { transition: border-color .4s, background .4s; }
.da-kpi.da-flash { animation: da-flash 1.1s ease-out; }
.da-kpi.da-flash b { animation: da-flash-txt 1.1s ease-out; }
@keyframes da-flash { 0% { border-color: rgba(52,211,153,.6); background: rgba(16,185,129,.14); } 100% { border-color: rgba(255,255,255,.07); background: rgba(255,255,255,.04); } }
@keyframes da-flash-txt { 0% { color: #6ee7b7; } 100% { color: #fff; } }
.da-live .da-insight { transition: opacity .45s, transform .5s cubic-bezier(.16,1,.3,1); }

/* ── Mission : une console en quatre étapes ── */
.dm-onglets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.dm-onglet { position: relative; overflow: hidden; text-align: left; cursor: pointer; font: inherit; padding: 13px 15px 15px; border-radius: 14px; border: 1px solid rgba(15,21,35,.12);
  background: #fff; color: #1f2a3d; transition: border-color .3s, box-shadow .3s, transform .3s; }
.dm-onglet small { display: block; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #047857; margin-bottom: 3px; }
.dm-onglet b { display: block; font-weight: 600; font-size: 14.5px; line-height: 1.35; }
.dm-onglet i { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; transform: scaleX(0); transform-origin: 0 50%; background: linear-gradient(90deg, #10b981, #00d4ff, #f5dcb0); }
.dm-onglet[aria-selected="true"] { border-color: rgba(4,120,87,.45); box-shadow: 0 12px 30px rgba(15,21,35,.12); transform: translateY(-2px); }
.dm-onglet:focus-visible { outline: 2px solid #047857; outline-offset: 3px; }
.dm-console { position: relative; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px; padding: 26px; border-radius: 24px; color: #e2e8f0; overflow: hidden;
  background: radial-gradient(120% 90% at 0% 0%, #0f2e2a 0%, #0b1a1d 45%, #080d16 100%); box-shadow: 0 34px 80px rgba(15,21,35,.3); }
.dm-console::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .45;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 34px 34px;
  -webkit-mask: radial-gradient(80% 70% at 20% 30%, #000, transparent); mask: radial-gradient(80% 70% at 20% 30%, #000, transparent); }
.dm-brief { position: relative; display: flex; flex-direction: column; gap: 16px; }
.dm-demande { padding: 16px; border-radius: 16px; background: rgba(245,220,176,.07); border: 1px solid rgba(245,220,176,.22); }
.dm-qui { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.dm-avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; color: #1a1206; background: linear-gradient(135deg, #f5dcb0, #e8c07d); flex: none; }
.dm-qui b { display: block; font-size: 13.5px; color: #fff; } .dm-qui span { font-size: 11.5px; color: rgba(226,232,240,.55); }
.dm-demande p { font-size: 15px; line-height: 1.55; color: #f5ecd8; font-style: italic; }
.dm-etape { position: relative; min-height: 170px; }
.dm-etape > div { position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .45s, transform .5s cubic-bezier(.16,1,.3,1), visibility 0s .5s; }
.dm-etape > div.dm-on { position: relative; opacity: 1; visibility: visible; transform: none; transition: opacity .45s, transform .5s cubic-bezier(.16,1,.3,1); }
.dm-etape h3 { font-family: 'DM Serif Display', Georgia, serif; font-weight: 400; font-size: 22px; color: #fff; margin-bottom: 8px; }
.dm-etape p { font-size: 14.5px; line-height: 1.6; color: rgba(226,232,240,.75); margin-bottom: 12px; }
.dm-outils { display: flex; flex-wrap: wrap; gap: 6px; }
.dm-outils span { font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; color: #6ee7b7; background: rgba(16,185,129,.1); border: 1px solid rgba(16,185,129,.28); }

.dm-ecran { position: relative; display: grid; grid-template-rows: auto 1fr; border-radius: 16px; overflow: hidden; background: #0d131c; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 24px 60px rgba(0,0,0,.45); }
.dm-ecran-tete { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: rgba(255,255,255,.04); border-bottom: 1px solid rgba(255,255,255,.06); font-size: 12px; color: rgba(226,232,240,.65); }
.dm-ecran-tete .da-pts { margin-right: 6px; }
.dm-ecran-tete b { color: #fff; font-weight: 600; }
/* Les quatre vues occupent la même case : la fenêtre prend la hauteur de la plus haute */
.dm-vue { grid-row: 2; grid-column: 1; padding: 16px; opacity: 0; visibility: hidden; transition: opacity .45s, visibility 0s .45s; }
.dm-vue.dm-on { opacity: 1; visibility: visible; transition: opacity .45s; }

/* Étape 1 : la table se nettoie */
.dm-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.dm-table th { text-align: left; font-weight: 600; color: rgba(226,232,240,.55); padding: 7px 9px; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 11.5px; }
.dm-table td { padding: 8px 9px; border-bottom: 1px solid rgba(255,255,255,.04); color: #e2e8f0; transition: background .4s, color .4s; white-space: nowrap; }
.dm-table td.dm-souci { background: rgba(251,113,133,.14); color: #fda4af; box-shadow: inset 0 0 0 1px rgba(251,113,133,.35); }
.dm-table td.dm-ok { background: rgba(16,185,129,.14); color: #6ee7b7; }
.dm-table tr.dm-doublon td { text-decoration: line-through; color: rgba(253,164,175,.8); background: rgba(251,113,133,.08); }
.dm-table tr.dm-retire { opacity: 0; transition: opacity .5s; }
.dm-bilan { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.dm-bilan span { font-size: 12px; font-weight: 600; padding: 5px 10px; border-radius: 8px; background: rgba(255,255,255,.05); color: rgba(226,232,240,.8); opacity: 0; transform: translateY(6px); transition: opacity .4s, transform .5s cubic-bezier(.34,1.56,.64,1); }
.dm-bilan span.dm-on { opacity: 1; transform: none; }
.dm-bilan span b { color: #6ee7b7; }

/* Étape 2 : la requête s'écrit */
.dm-sql { font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace; font-size: 12.5px; line-height: 1.7; color: #cbd5e1; background: rgba(0,0,0,.25); border-radius: 10px; padding: 12px 14px; min-height: 150px; white-space: pre-wrap; }
.dm-sql .k { color: #6ee7b7; font-weight: 700; } .dm-sql .f { color: #67e8f9; } .dm-sql .s { color: #fcd34d; } .dm-sql .n { color: #f9a8d4; }
.dm-curseur { display: inline-block; width: 7px; height: 14px; margin-left: 1px; vertical-align: -2px; background: #6ee7b7; animation: dm-clignote 1s steps(1) infinite; }
@keyframes dm-clignote { 50% { opacity: 0; } }
.dm-resultat { margin-top: 12px; opacity: 0; transform: translateY(8px); transition: opacity .5s, transform .6s cubic-bezier(.16,1,.3,1); }
.dm-resultat.dm-on { opacity: 1; transform: none; }
.dm-resultat td.dm-neg { color: #fb7185; font-weight: 700; } .dm-resultat td.dm-pos { color: #34d399; font-weight: 700; }

/* Étape 3 : le tableau de bord */
.dm-db { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.dm-db .da-kpi b { font-size: 21px; }
.dm-filtres { grid-column: 1 / -1; display: flex; gap: 6px; flex-wrap: wrap; }
.dm-filtres span { font-size: 11.5px; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); color: rgba(226,232,240,.75); }
.dm-filtres span.dm-sel { background: rgba(0,212,255,.12); border-color: rgba(0,212,255,.4); color: #67e8f9; }
.dm-db .da-carte { grid-column: span 3; min-height: 0; }
.dm-db .da-carte.dm-demi { grid-column: span 3; }
.dm-regions { display: grid; gap: 8px; }
.dm-region { display: grid; grid-template-columns: 52px minmax(0, 1fr) 48px; gap: 10px; align-items: center; font-size: 12px; }
.dm-region span { color: rgba(226,232,240,.75); }
.dm-region em { font-style: normal; text-align: right; font-weight: 700; color: #34d399; font-variant-numeric: tabular-nums; }
.dm-region.dm-alerte em { color: #fb7185; }
.dm-piste { height: 12px; border-radius: 6px; background: rgba(255,255,255,.06); overflow: hidden; }
.dm-piste i { display: block; height: 100%; width: calc(var(--w) * 1%); border-radius: 6px; background: linear-gradient(90deg, #10b981, #34d399); transform-origin: 0 50%; transform: scaleX(0); transition: transform 1s cubic-bezier(.65,0,.35,1) calc(var(--i) * .15s); }
.dm-region.dm-alerte .dm-piste i { background: linear-gradient(90deg, #e11d48, #fb7185); }
.dm-vue.dm-anim .dm-piste i { transform: none; }

/* Étape 4 : la recommandation au comité */
.dm-slide { border-radius: 12px; padding: 18px; background: linear-gradient(160deg, #fdfbf6, #f3efe6); color: #10172a; box-shadow: 0 18px 40px rgba(0,0,0,.4); }
.dm-slide small { display: block; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #047857; margin-bottom: 6px; }
.dm-slide h4 { font-family: 'DM Serif Display', Georgia, serif; font-weight: 400; font-size: 22px; line-height: 1.2; margin-bottom: 12px; }
.dm-slide ul { list-style: none; display: grid; gap: 7px; margin-bottom: 12px; padding: 0; }
.dm-slide li { display: flex; gap: 8px; font-size: 13px; line-height: 1.45; color: #344054; opacity: 0; transform: translateX(-8px); transition: opacity .45s, transform .5s cubic-bezier(.16,1,.3,1); }
.dm-slide li::before { content: ""; flex: none; width: 7px; height: 7px; margin-top: 6px; border-radius: 50%; background: #10b981; }
.dm-slide li.dm-on { opacity: 1; transform: none; }
.dm-reco { padding: 10px 12px; border-radius: 10px; background: #ecfdf5; border: 1px solid #a7f3d0; font-size: 13px; color: #065f46; opacity: 0; transition: opacity .5s; }
.dm-reco.dm-on { opacity: 1; }
.dm-valide { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 9px 16px; border-radius: 999px; font-size: 13px; font-weight: 700; color: #1a1206;
  background: linear-gradient(135deg, #f5dcb0, #e8c07d); box-shadow: 0 12px 28px rgba(232,192,125,.35); opacity: 0; transform: scale(.9); transition: opacity .4s, transform .6s cubic-bezier(.34,1.56,.64,1); }
.dm-valide svg { width: 15px; height: 15px; }
.dm-valide.dm-on { opacity: 1; transform: none; }
.dm-note { margin-top: 12px; font-size: 12.5px; color: #6b7487; }
.dm-console canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3; }

/* ── Mobile ── */
@media (max-width: 900px) {
  .da-scene { grid-template-columns: 1fr; min-height: 0; gap: 14px; }
  .da-sources { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .da-src { padding: 7px 10px; font-size: 12px; }
  .da-flux { display: none; }
  .dm-onglets { grid-template-columns: 1fr 1fr; }
  .dm-console { grid-template-columns: 1fr; padding: 18px 14px; gap: 18px; border-radius: 20px; }
  .dm-etape { min-height: 0; }
}
@media (max-width: 600px) {
  .da-kpis { grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
  .da-kpi { padding: 9px; } .da-kpi b { font-size: 19px; } .da-kpi i { display: block; margin: 2px 0 0; }
  .da-graphes { grid-template-columns: 1fr; }
  .da-carte { min-height: 0; }
  .da-barres, .da-courbe { height: 84px; }
  .dm-onglet { padding: 11px 12px 13px; } .dm-onglet b { font-size: 13.5px; }
  .dm-table { font-size: 11.5px; } .dm-table td, .dm-table th { padding: 6px 5px; }
  .dm-sql { font-size: 11.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .da-src, .da-dash, .da-barres i, .da-courbe path, .da-courbe circle, .da-insight, .dm-etape > div, .dm-vue, .dm-piste i, .dm-slide li, .dm-reco, .dm-valide, .dm-bilan span, .dm-resultat { transition: none !important; animation: none !important; }
  .da-src, .da-dash { opacity: 1; transform: none; translate: none; scale: none; }
  .da-barres i, .dm-piste i { transform: none; }
  .da-courbe path.da-ligne { stroke-dashoffset: 0; } .da-courbe path.da-aire, .da-courbe circle { opacity: 1; }
  .dm-curseur, .da-direct, .da-point { animation: none; }
}
