/* Minimal, dense, lisible */
:root{
  --bg:#0f0f11;
  --panel:#151518;
  --panel2:#1b1b1f;
  --text:#f3f3f3;
  --muted:#b9b9c3;
  --line:#2a2a30;
  --accent:#e9e6ff;
  --chip:#22222a;
  --blue:#6d5cff;
  --blue2:#3aa7ff;
  --gold:#ffd676;
  --gold2:#d4a03a;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  --radius: 16px;
  --radius2: 22px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--sans);
  background: radial-gradient(1200px 600px at 10% 0%, #1a1630 0%, rgba(26,22,48,0) 60%), var(--bg);
  color:var(--text);
}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:var(--mono); font-size:.92em; color:#d8d8ff}

.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; gap:16px; align-items:center; justify-content:space-between;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  background: rgba(15,15,17,.78);
  backdrop-filter: blur(10px);
}
.brand{display:flex; align-items:center; gap:12px}
.sigil{
  width:40px; height:40px; border-radius:14px;
  background: conic-gradient(from 90deg, #6d5cff, #f0f, #6d5cff);
  filter: saturate(.85);
  box-shadow: 0 0 0 1px rgba(255,255,255,.12) inset, var(--shadow);
}
.title{font-weight:700; letter-spacing:.2px}
.subtitle{font-size:.86rem; color:var(--muted); margin-top:2px}

.layout{
  display:grid;
  grid-template-columns: 360px 1fr;
  min-height: calc(100vh - 74px);
}
.sidebar{
  border-right:1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));
  padding:14px;
}
.content{
  padding:18px;
}

.tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  background: var(--panel);
  border:1px solid var(--line);
  border-radius: 18px;
  padding:6px;
}
.tab{
  flex:1 1 120px;
  background: transparent;
  color: var(--muted);
  border:0;
  padding:10px 12px;
  border-radius: 999px;
  cursor:pointer;
  font-weight:600;
  position:relative;
  overflow:hidden;
  transition: transform .16s ease, color .16s ease;
}
.tab.active{
  background: linear-gradient(180deg, rgba(27,27,31,.92), rgba(20,20,26,.92));
  color: var(--text);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.08) inset,
    0 10px 22px rgba(0,0,0,.22);
}

.tab::after{
  content:"";
  position:absolute;
  inset:-12px;
  background: conic-gradient(from 210deg,
    rgba(109,92,255,0),
    rgba(58,167,255,.20),
    rgba(255,214,118,.16),
    rgba(109,92,255,0)
  );
  opacity:.35;
  animation: uiSweep 4.8s linear infinite;
}
.tab > *{position:relative; z-index:1}
.tab:hover{transform: translateY(-1px); color: var(--text)}
.tab:active{transform: translateY(0px)}
.searchbox{margin:14px 0 10px}
.searchbox input{
  width:100%;
  padding:12px 12px;
  border-radius: 12px;
  border:1px solid var(--line);
  background: var(--panel);
  color: var(--text);
  outline:none;
}
.searchbox input:focus{border-color: rgba(233,230,255,.6)}

.filters{margin:10px 0 14px}
.filters-title{font-size:.85rem; color:var(--muted); margin-bottom:8px}
.filters-toggle{
  width:100%;
  text-align:left;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-radius: 14px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(18,18,26,.52), rgba(12,12,16,.42));
  color: rgba(243,243,243,.86);
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  position:relative;
  overflow:hidden;
}
.filters-toggle::after{
  content:"";
  position:absolute;
  inset:-12px;
  background: conic-gradient(from 210deg, rgba(109,92,255,0), rgba(58,167,255,.18), rgba(255,214,118,.14), rgba(109,92,255,0));
  opacity:.38;
  animation: uiSweep 6.4s linear infinite;
}
.filters-toggle > *{position:relative; z-index:1}
.filters-toggle:hover{filter: brightness(1.05)}
.chips.hidden{display:none}

.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{
  border:1px solid var(--line);
  background: var(--chip);
  color: var(--muted);
  padding:8px 10px;
  border-radius: 999px;
  cursor:pointer;
  font-size:.85rem;
  user-select:none;
  position:relative;
  overflow:hidden;
  transition: transform .14s ease, border-color .14s ease, color .14s ease;
}
.chip::after{
  content:"";
  position:absolute;
  inset:-10px;
  background: conic-gradient(from 180deg, rgba(109,92,255,0), rgba(58,167,255,.14), rgba(255,214,118,.12), rgba(109,92,255,0));
  opacity:.28;
  animation: uiSweep 6.2s linear infinite;
}
.chip > *{position:relative; z-index:1}
.chip:hover{transform: translateY(-1px); border-color: rgba(233,230,255,.22); color: var(--text)}
.chip:active{transform: translateY(0px)}
.chip.on{
  color: var(--text);
  border-color: rgba(233,230,255,.45);
  box-shadow: 0 0 0 1px rgba(233,230,255,.15) inset;
}

.list{
  display:flex; flex-direction:column;
  gap:8px;
  padding-bottom: 12px;
  max-height: calc(100vh - 310px);
  overflow:auto;
}
.item{
  /* Mobile fix: prevent flexbox from vertically shrinking items when list is height-constrained */
  flex: 0 0 auto;
  border:1px solid var(--line);
  background: var(--panel);
  padding:12px 12px;
  min-height: 48px;
  line-height: 1.25;
  border-radius: 14px;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition: transform .14s ease, border-color .14s ease, background .14s ease;
}
.item::after{
  content:"";
  position:absolute;
  inset:-14px;
  background: conic-gradient(from 200deg, rgba(109,92,255,0), rgba(58,167,255,.14), rgba(255,214,118,.12), rgba(109,92,255,0));
  opacity:.18;
  animation: uiSweep 8.2s linear infinite;
}
.item > *{position:relative; z-index:1}
.item:hover{background: var(--panel2); transform: translateY(-1px); border-color: rgba(233,230,255,.25)}
.item:active{transform: translateY(0px)}
.item.active{border-color: rgba(233,230,255,.45); box-shadow: 0 0 0 1px rgba(233,230,255,.12) inset}
.item .name{font-weight:700; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; word-break: break-word}
.item .meta{color:var(--muted); font-size:.85rem; margin-top:4px; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; word-break: break-word}

.card{
  border:1px solid var(--line);
  background: rgba(21,21,24,.6);
  border-radius: var(--radius2);
  padding:16px;
  box-shadow: var(--shadow);
}
.card h1{margin:0 0 6px; font-size:1.6rem}
.badges{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0}
.badge{
  font-size:.82rem;
  color: var(--muted);
  background: rgba(255,255,255,.04);
  border:1px solid var(--line);
  padding:6px 10px;
  border-radius: 999px;
}
.section{margin-top:14px}
.section-title{
  font-size:1rem;
  color: var(--text);
  margin:0 0 8px;
}
.grid{
  display:grid;
  grid-template-columns: 1fr;
  gap:10px;
}
.row{
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  border-radius: var(--radius);
  padding:12px;
}
.row-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
}
.row-title{font-weight:700}
.row-sub{color:var(--muted); font-size:.9rem; margin-top:4px}
.row-right{display:flex; gap:8px; align-items:center}
.btn{
  border:1px solid rgba(255,255,255,.16);
  background: linear-gradient(180deg, rgba(31,31,44,.78), rgba(18,18,22,.78));
  color: var(--text);
  padding:10px 12px;
  border-radius: 12px;
  cursor:pointer;
  font-weight:700;
  letter-spacing:.15px;
  position:relative;
  overflow:hidden;
  box-shadow:
    0 10px 26px rgba(0,0,0,.28),
    0 0 0 1px rgba(255,255,255,.05) inset;
  transition: transform .16s ease, filter .16s ease, border-color .16s ease;
  animation: btnAura 4.6s ease-in-out infinite;
}
.btn::after{
  content:"";
  position:absolute;
  inset:-12px;
  background: conic-gradient(from 200deg, rgba(109,92,255,0), rgba(58,167,255,.18), rgba(255,214,118,.16), rgba(109,92,255,0));
  opacity:.42;
  animation: uiSweep 5.6s linear infinite;
}
.btn > *{position:relative; z-index:1}
.btn:hover{transform: translateY(-1px); border-color: rgba(233,230,255,.28); filter: brightness(1.04)}
.btn:active{transform: translateY(0px); filter: brightness(1.0)}
.btn.ghost{
  background: rgba(255,255,255,.02);
  color: rgba(243,243,243,.82);
  border-color: rgba(255,255,255,.14);
}
.btn.ghost:hover{color: var(--text); border-color: rgba(255,255,255,.2)}
.btn.small{padding:8px 10px; font-size:.9rem}

@keyframes uiSweep{from{transform: rotate(0deg);}to{transform: rotate(360deg);}}
@keyframes btnAura{
  0%,100%{box-shadow: 0 10px 26px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.05) inset, 0 0 0 0 rgba(58,167,255,0);}
  50%{box-shadow: 0 12px 30px rgba(0,0,0,.30), 0 0 0 1px rgba(255,255,255,.07) inset, 0 0 22px 0 rgba(109,92,255,.14);}
}

@media (prefers-reduced-motion: reduce){
  .btn,.chip,.tab,.btn-plus{animation:none !important}
  }

.empty{
  max-width: 720px;
  margin: 10vh auto;
  text-align:center;
  color: var(--muted);
}
.empty h2{color: var(--text)}
.hint{color: var(--muted); font-size:.92rem}
.reading{margin:0; color: var(--text); white-space:pre-wrap; line-height:1.55}
.reading em{color: var(--muted)}

.modal::backdrop{background: rgba(0,0,0,.65)}
.modal{
  border:0;
  padding:0;
  background: transparent;
}
.modal-card{
  width:min(760px, calc(100vw - 24px));
  border:1px solid var(--line);
  background: rgba(21,21,24,.92);
  border-radius: 18px;
  box-shadow: var(--shadow);
  overflow:hidden;
}
.modal-head{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:12px 12px;
  border-bottom:1px solid var(--line);
}
.modal-title{font-weight:800}
.modal-body{padding:14px 14px; color: var(--text)}
.source{
  padding:10px;
  border:1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.03);
  margin-bottom:10px;
}
.source .slabel{font-weight:700}
.source .surl{font-family: var(--mono); font-size:.86rem; color: var(--muted); margin-top:6px; word-break: break-all}

@media (max-width: 920px){
  .layout{grid-template-columns: 1fr}
  .sidebar{border-right:0; border-bottom:1px solid var(--line)}
  .list{max-height: 260px}
}



/* Chip count + small helpers */
.chip .count{
  display:inline-block;
  margin-left:8px;
  font-size:.82em;
  color: var(--muted);
  padding:2px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background: rgba(255,255,255,.03);
}
.chip.on .count{color: var(--text); border-color: rgba(233,230,255,.35)}

/* Coverage matrix */
.matrix-wrap{overflow:auto; border:1px solid var(--line); border-radius: var(--radius2); background: rgba(255,255,255,.02)}
.matrix{
  border-collapse: separate;
  border-spacing: 0;
  min-width: 860px;
  width: 100%;
}
.matrix th, .matrix td{
  padding:10px 10px;
  border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);
  vertical-align:middle;
}
.matrix th{
  position:sticky; top:0;
  background: rgba(21,21,24,.92);
  backdrop-filter: blur(8px);
  color: var(--muted);
  font-weight:700;
  text-align:left;
}
.matrix th:first-child{left:0; z-index:2}
.matrix td:first-child{
  position:sticky; left:0; z-index:1;
  background: rgba(21,21,24,.82);
  font-weight:700;
  color: var(--text);
}
.matrix td.cell{
  text-align:center;
  cursor:pointer;
  user-select:none;
}
.matrix td.cell:hover{background: rgba(255,255,255,.03)}
.dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px; height:28px;
  border-radius: 10px;
  border:1px solid var(--line);
  color: var(--muted);
  font-size:.85rem;
}
.dot.on{
  color: var(--text);
  border-color: rgba(233,230,255,.35);
  box-shadow: 0 0 0 1px rgba(233,230,255,.12) inset;
}

/* Ontologie iframe */
.ontologie-body{padding:0}
.ontologie-frame{
  width:100%;
  height: min(76vh, 740px);
  border:0;
  border-radius: 0 0 18px 18px;
  background: #0f0f12;
}


.footer{border-top:1px solid var(--line); background: rgba(12,12,14,.65); padding:12px 16px; text-align:center}
.footer-inner{color:var(--muted); font-size:.85rem}


/* Lecture posœnnoïale — bouton “plus” doré */
.section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.btn-plus{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(255,214,118,.55);
  background: radial-gradient(circle at 30% 30%, rgba(255,235,160,.95), rgba(212,160,58,.85) 55%, rgba(120,84,22,.9));
  color:#1a1407;
  font-weight:900;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:
    0 6px 18px rgba(212,160,58,.18),
    0 0 0 1px rgba(0,0,0,.35) inset;
  cursor:pointer;
  transition: transform .18s ease, filter .18s ease;
  position:relative;
  overflow:hidden;
}
.btn-plus::after{
  content:"";
  position:absolute;
  inset:-10px;
  background: conic-gradient(from 180deg, rgba(255,255,255,.0), rgba(255,255,255,.22), rgba(255,255,255,.0));
  opacity:.35;
  animation: goldSweep 2.8s linear infinite;
}
.btn-plus span{position:relative; z-index:1; transform: translateY(-1px);}
.btn-plus:hover{transform: translateY(-1px) scale(1.02); filter: brightness(1.03);}
.btn-plus:active{transform: translateY(0px) scale(.99);}
@keyframes goldSweep{
  from{transform: rotate(0deg);}
  to{transform: rotate(360deg);}
}

/* Modal lecture longue */
.modal-reading .modal-head{
  gap:12px;
}
.modal-tools{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.reading-long{
  max-height: min(64vh, 640px);
  overflow:auto;
  padding-right:6px;
}
.reading-long p{
  margin: 0 0 12px;
  color: var(--text);
  line-height:1.55;
}
.reading-long p:last-child{margin-bottom:0}

/* v6.4 — Pédagogie */
.panel{
  border:1px solid var(--line);
  background: rgba(14,14,18,.55);
  border-radius: 18px;
  padding: 14px 14px 12px;
  box-shadow: 0 12px 36px rgba(0,0,0,.22);
}
.panel h2{margin:0 0 6px; font-size:1.1rem}
.panel h3{margin:10px 0 6px; font-size:1rem}

.form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:10px;
}
@media (max-width: 980px){
  .form-grid{grid-template-columns:1fr}
}
.form-row label{display:block; font-size:.85rem; color: var(--muted); margin:0 0 6px}
.input, select, textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius: 12px;
  background: rgba(10,10,14,.55);
  color: var(--text);
  padding:10px 10px;
  outline: none;
}
textarea{min-height: 110px; resize: vertical}

.kpis{display:flex; gap:10px; flex-wrap:wrap; margin: 10px 0 0}
.kpi{display:flex; flex-direction:column; gap:2px; padding:10px 12px; border:1px solid var(--line); border-radius:14px; background: rgba(10,10,12,.4)}
.kpi .k{color: var(--muted); font-size:.8rem}
.kpi .v{font-size: 1rem}

.step{border:1px solid var(--line); border-radius: 16px; padding:12px; background: rgba(10,10,14,.45); margin: 10px 0}
.step-head{display:flex; gap:12px; align-items:baseline; justify-content:space-between}
.step-title{font-size:1rem; margin:0}
.step-p{margin:8px 0 0; color: var(--text)}
.step-tools{display:flex; gap:8px; flex-wrap:wrap}

.list-mini{display:flex; flex-direction:column; gap:10px}
.note-card{border:1px solid var(--line); border-radius: 16px; padding: 12px; background: rgba(10,10,14,.45)}
.note-head{display:flex; gap:10px; align-items:baseline; justify-content:space-between}
.note-title{margin:0; font-size:1rem}
.note-meta{color: var(--muted); font-size:.85rem}
.note-body{margin:10px 0 0; white-space:pre-wrap; color: var(--text)}

.badge.soft{background: rgba(233,230,255,.08); border:1px solid rgba(233,230,255,.16)}

.btnrow{display:flex; gap:8px; flex-wrap:wrap; margin-top: 10px}

.small-help{color: var(--muted); font-size:.85rem; margin: 8px 0 0}

/* Scrollbars — plus visibles (bleu + or) */
*{
  scrollbar-width: thin;
  scrollbar-color: rgba(255,214,118,.68) rgba(10,10,14,.55);
}
::-webkit-scrollbar{width:10px; height:10px}
::-webkit-scrollbar-track{
  background: rgba(10,10,14,.55);
  border-radius: 999px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.06) inset;
}
::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(58,167,255,.82), rgba(255,214,118,.82));
  border-radius: 999px;
  border:2px solid rgba(10,10,14,.55);
  box-shadow: 0 0 18px rgba(58,167,255,.10);
}
::-webkit-scrollbar-thumb:hover{filter: brightness(1.08)}
::-webkit-scrollbar-corner{background: rgba(10,10,14,.55)}


/* --- UI Layering fix: ensure button text stays above animated glows (mobile-safe) --- */
.lbl{
  position:relative;
  z-index: 3;
  display:inline-flex;
  align-items:center;
  gap:8px;
}

/* Create a clean stacking context for glow layers */
.btn, .tab, .chip, .btn-plus, .filters-toggle, .filters-title{
  isolation:isolate;
}

/* Glow layers */
.btn::before, .tab::before, .chip::before, .btn-plus::before{
  content:"";
  position:absolute;
  inset:-14px;
  pointer-events:none;
  z-index:1;
  background:
    radial-gradient(60px 44px at 20% 30%, rgba(58,167,255,.55), rgba(58,167,255,0) 65%),
    radial-gradient(72px 52px at 78% 70%, rgba(255,214,118,.48), rgba(255,214,118,0) 70%);
  filter: blur(10px);
  opacity:0;
  transform: scale(.98);
  animation: sparkPulse 3.6s ease-in-out infinite;
}

.btn::after, .tab::after, .chip::after, .btn-plus::after{
  pointer-events:none;
  z-index:2;
  opacity:.28;
  animation: uiSweep 6.4s linear infinite;
  mix-blend-mode: screen;
}

/* Slightly stronger readability for tabs */
.tab{
  color: rgba(243,243,243,.76);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(18,18,22,.42);
}
.tab.active{border-color: rgba(255,214,118,.26);}

/* Pulse: a small light that appears each cycle */
@keyframes sparkPulse{
  0%{opacity:0; transform: scale(.98);}
  10%{opacity:.62; transform: scale(1.03);}
  22%{opacity:.14; transform: scale(1.05);}
  55%{opacity:.10; transform: scale(1.00);}
  76%{opacity:.40; transform: scale(1.02);}
  88%{opacity:.12; transform: scale(1.06);}
  100%{opacity:0; transform: scale(.98);}
}


/* v6.5 — Mode Séance + impression + corpus TTS */
.seance-card{
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(18,18,26,.55), rgba(12,12,16,.42));
  border-radius: 18px;
  padding: 14px 14px 16px;
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
}
.seance-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.seance-grid .field{display:flex; flex-direction:column; gap:6px}
.seance-grid label{font-size:.86rem; color: var(--muted)}
.seance-grid select, .seance-grid textarea, .seance-grid input{
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(10,10,14,.55);
  color: rgba(243,243,243,.9);
  padding: 10px 12px;
  outline: none;
}
.seance-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:12px}
.seance-actions .btn{min-height:44px}
@media (max-width: 980px){
  .seance-grid{grid-template-columns: 1fr}
}

/* Accessibilité : focus visible + barres de défilement plus lisibles */
:focus-visible{
  outline: 2px solid rgba(58,167,255,.75);
  outline-offset: 2px;
}
.list, .content, .modal-body, .reading-long{
  scrollbar-color: rgba(58,167,255,.65) rgba(255,255,255,.06);
  scrollbar-width: thin;
}
.list::-webkit-scrollbar, .content::-webkit-scrollbar, .modal-body::-webkit-scrollbar, .reading-long::-webkit-scrollbar{
  width: 12px;
  height: 12px;
}
.list::-webkit-scrollbar-thumb, .content::-webkit-scrollbar-thumb, .modal-body::-webkit-scrollbar-thumb, .reading-long::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(58,167,255,.55), rgba(255,214,118,.55));
  border-radius: 999px;
  border: 3px solid rgba(0,0,0,.0);
  background-clip: padding-box;
}



/* v6.6 — progression + badges + accessibilité */
.badge.source{
  margin-left:6px;
  font-size:.72rem;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(16,16,22,.45);
  color: rgba(243,243,243,.88);
}

.progress-card{
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(18,18,26,.55), rgba(12,12,16,.42));
  border-radius: 18px;
  padding: 14px 14px 16px;
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
}
.progress-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.progress-grid .box{
  border:1px solid rgba(255,255,255,.12);
  background: rgba(10,10,14,.42);
  border-radius: 16px;
  padding: 12px;
}
.progress-grid .box h3{margin:0 0 8px; font-size:1rem}
.progress-list{max-height: 260px; overflow:auto; padding-right:6px}
.progress-list li{margin:6px 0; color: rgba(243,243,243,.88)}
@media (max-width: 980px){
  .progress-grid{grid-template-columns:1fr}
}

/* Réduction de mouvement */
@media (prefers-reduced-motion: reduce){
  *{animation-duration: .01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
}



/* v6.6.2 — UI depth (or bleuté) : hiérarchie fond/bloc/action + impulsions */
:root{
  --bg0: var(--bg);
  --surface-1: rgba(21,21,24,.68);
  --surface-2: rgba(27,27,33,.72);
  --edge: rgba(233,230,255,.18);
  --edge-strong: rgba(233,230,255,.32);
}

/* Surfaces (blocs) */
.card,.row,.panel{
  position:relative;
  overflow:hidden;
  border-color: var(--edge);
  box-shadow: 0 14px 40px rgba(0,0,0,.28);
}
.card{
  background: linear-gradient(180deg, rgba(29,29,44,.70), rgba(16,16,20,.62));
}
.row{
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
}
.panel{
  background: linear-gradient(180deg, rgba(18,18,26,.62), rgba(12,12,16,.52));
}
.card::before,.row::before,.panel::before{
  content:"";
  position:absolute;
  left:10px; right:10px; top:0;
  height:2px;
  background: linear-gradient(90deg,
    rgba(58,167,255,0),
    rgba(58,167,255,.55),
    rgba(255,214,118,.42),
    rgba(58,167,255,0)
  );
  opacity:.65;
  pointer-events:none;
}
.card::after,.row::after,.panel::after{
  content:"";
  position:absolute;
  inset:-18px;
  background: radial-gradient(520px 220px at 15% 0%,
    rgba(58,167,255,.14),
    rgba(58,167,255,0) 62%);
  opacity:.30;
  pointer-events:none;
}

/* Barres d'actions (regroupe les boutons : plus intuitif) */
.topbar-actions, .row-right{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  padding:6px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  box-shadow: 0 10px 26px rgba(0,0,0,.18);
}

/* Boutons : plus distincts des blocs */
.btn,.tab{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1.15;
  isolation:isolate;
}
.btn{
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(56,56,86,.78), rgba(18,18,22,.78));
  box-shadow:
    0 12px 28px rgba(0,0,0,.26),
    0 0 0 1px rgba(255,255,255,.06) inset;
}
.btn:hover{
  border-color: rgba(233,230,255,.34);
  filter: brightness(1.06);
}
.btn:focus-visible, .tab:focus-visible, .item:focus-visible{
  outline: 2px solid rgba(58,167,255,.55);
  outline-offset: 2px;
}

/* Impulsion (petite lumière à chaque tour) */
.btn::before, .tab::before, .item::before{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(420px 160px at 18% 0%,
    rgba(255,214,118,.22),
    rgba(58,167,255,.18),
    rgba(58,167,255,0) 68%);
  opacity:0;
  pointer-events:none;
  animation: uiPulse 4.8s ease-in-out infinite;
}
.item::before{animation-duration: 7.6s;}
.tab::before{animation-duration: 5.4s;}

@keyframes uiPulse{
  0%{opacity:0; transform: translateY(-6px) scale(.98);}
  6%{opacity:.72; transform: translateY(0px) scale(1);}
  13%{opacity:0; transform: translateY(2px) scale(1.01);}
  100%{opacity:0; transform: translateY(2px) scale(1.01);}
}

/* Halo conique : un peu moins permanent, plus lisible */
.btn::after{opacity:.30;}
.tab::after{opacity:.28;}
.item::after{opacity:.14;}

/* Listes (grecs/archétypes) : confort mobile */
.item{
  min-height:56px;
  padding:14px 12px;
  border-color: rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(21,21,28,.92), rgba(14,14,18,.86));
}
.item:hover{border-color: rgba(58,167,255,.28);}

/* Scrollbars : prise plus évidente */
::-webkit-scrollbar{width:12px; height:12px}
::-webkit-scrollbar-thumb{
  box-shadow: 0 0 18px rgba(58,167,255,.16), 0 0 0 1px rgba(255,214,118,.18);
}
::-webkit-scrollbar-thumb:hover{
  filter: brightness(1.12);
  box-shadow: 0 0 26px rgba(58,167,255,.22), 0 0 0 1px rgba(255,214,118,.24);
}

/* Reduced motion (si activé par OS) : garder lisible */
@media (prefers-reduced-motion: reduce){
  .btn::before,.tab::before,.item::before{animation:none !important}
}

/* =========================================================
   v6.6.5 — Stratigraphie “or bleuté” (inspiration CalAPdor)
   Objectif : fond mat / blocs-plaque / actions-vernies / champs lisibles
   ========================================================= */

/* Palette & surfaces (override) */
:root{
  --bg:#0b0d12;               /* nuit plus mate */
  --panel:#121624;            /* plaque 1 */
  --panel2:#171c2e;           /* plaque 2 / actions */
  --chip:#151a2b;
  --line:rgba(120,140,200,.28);
  --text:#f5f7ff;
  --muted:rgba(225,235,255,.72);
  --blue2:#3aa7ff;
  --gold:#ffd676;
  --gold2:#d4a03a;
  --shadow: 0 14px 46px rgba(0,0,0,.46);
}

/* Fond : moins de voile permanent, plus “nuit velours” */
body{
  background:
    radial-gradient(900px 420px at 14% 0%, rgba(58,167,255,.10) 0%, rgba(58,167,255,0) 62%),
    radial-gradient(820px 420px at 92% 10%, rgba(255,214,118,.08) 0%, rgba(255,214,118,0) 62%),
    radial-gradient(700px 520px at 30% 100%, rgba(109,92,255,.08) 0%, rgba(109,92,255,0) 60%),
    var(--bg);
}

/* Blocs : plaque plus lisible + liseré interne */
.panel,.card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)),
    rgba(18,22,36,.78);
  border-color: rgba(125,150,220,.30);
  box-shadow:
    0 1px 0 rgba(255,255,255,.06) inset,
    0 0 0 1px rgba(0,0,0,.22) inset,
    0 16px 44px rgba(0,0,0,.38);
}

/* Séparations : sidebar un cran plus “mur” */
.sidebar{
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0)),
    rgba(10,12,18,.40);
  border-right-color: rgba(125,150,220,.22);
}

/* Items de liste : lisibles, “plaque” */
.item{
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)),
    rgba(16,18,28,.82);
  border-color: rgba(125,150,220,.24);
}
.item:hover{
  border-color: rgba(58,167,255,.36);
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
    rgba(18,22,36,.86);
}

/* Boutons : vernis plus clair que les blocs, contour plus net */
.btn,.tab{
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03)),
    rgba(20,24,38,.92);
  border-color: rgba(255,214,118,.22);
  box-shadow:
    0 1px 0 rgba(255,255,255,.08) inset,
    0 0 0 1px rgba(0,0,0,.18) inset,
    0 10px 22px rgba(0,0,0,.28);
}
.btn:hover,.tab:hover{
  border-color: rgba(58,167,255,.42);
  box-shadow:
    0 1px 0 rgba(255,255,255,.10) inset,
    0 0 0 1px rgba(0,0,0,.18) inset,
    0 14px 28px rgba(0,0,0,.34);
}
.tab.active, .btn.primary{
  border-color: rgba(255,214,118,.40);
  box-shadow:
    0 1px 0 rgba(255,255,255,.10) inset,
    0 0 0 1px rgba(0,0,0,.18) inset,
    0 18px 36px rgba(0,0,0,.36);
}

/* Barres d’actions : lieu de commande (plus intuitif) */
.topbar-actions, .row-right, .seance-actions{
  border-color: rgba(125,150,220,.22) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)),
    rgba(14,16,26,.66) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.06) inset,
    0 12px 30px rgba(0,0,0,.26) !important;
}

/* Champs : un cran au-dessus des blocs (on sait où écrire) */
input, select, textarea{
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)),
    rgba(12,14,22,.92);
  border: 1px solid rgba(125,150,220,.26);
  color: var(--text);
}
input:focus, select:focus, textarea:focus{
  border-color: rgba(58,167,255,.60);
  box-shadow: 0 0 0 3px rgba(58,167,255,.18), 0 1px 0 rgba(255,255,255,.06) inset;
  outline: none;
}

/* Select : harmoniser (mobile) */
select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:
    radial-gradient(circle at 92% 50%, rgba(255,214,118,.65) 0 2px, rgba(255,214,118,0) 3px),
    linear-gradient(45deg, transparent 50%, rgba(225,235,255,.70) 50%),
    linear-gradient(135deg, rgba(225,235,255,.70) 50%, transparent 50%);
  background-position:
    right 14px center,
    right 18px center,
    right 12px center;
  background-size:
    12px 12px,
    8px 8px,
    8px 8px;
  background-repeat:no-repeat;
  padding-right: 44px;
}

/* Focus visible : sécurité pédagogique (clavier / accessibilité) */
:focus-visible{
  outline: 2px solid rgba(255,214,118,.55);
  outline-offset: 2px;
}

/* Scrollbar : pouce plus lisible */
::-webkit-scrollbar-thumb{
  border: 1px solid rgba(125,150,220,.22);
}
::-webkit-scrollbar-thumb:hover{
  border-color: rgba(255,214,118,.36);
}
