/* Amphi web – thème « cours », mise en page inspirée de Révisions EDN (tuiles bento, onglets en pastilles) */
:root{
  --bg:#EEF0FF; --surface:#FFFFFF; --surface2:#F5F6FF; --text:#1B1F4B; --muted:#4A4F86; --border:#D9DCF7;
  --primary:#4F46E5; --on-primary:#FFFFFF; --accent:#4F46E5;
  --coral:#FF6B5A; --amber:#FFC857; --mint:#3DCB9A; --violet:#8B5CF6; --sky:#38BDF8;
  --violet-t:#6D3FDC; --hero:#4F46E5; --on-tile:#1B1F4B;
  --t-indigo:#E0DEFF; --t-coral:#FFE1DC; --t-amber:#FFF0C7; --t-mint:#D3F4E6; --t-violet:#EADFFF; --t-sky:#D4EFFC;
  --blob1:#D3F4E6; --blob2:#FFF0C7; --squig:#B9B4F5;
  --ok:#0B6B4B; --ko:#A3200F; --focus:#1B1F4B;
  --radius:28px; --shadow:0 1px 2px rgba(27,31,75,.06),0 8px 22px rgba(27,31,75,.06);
  --font:"Inter","Segoe UI Variable Display","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#12133A; --surface:#1B1D4F; --surface2:#23266A; --text:#ECEEFF; --muted:#A9AEE0; --border:#34377A;
    --primary:#8F89FF; --on-primary:#12133A; --accent:#8F89FF;
    --t-indigo:#2A2C70; --t-coral:#4A2540; --t-amber:#3F3A33; --t-mint:#1D4A4A; --t-violet:#38297A; --t-sky:#1F4A72;
    --blob1:#16335A; --blob2:#2E2A55; --squig:#3F3F99;
    --ok:#6FE3B8; --ko:#FF9D90; --focus:#ECEEFF; --shadow:none;
  }
}
:root[data-theme="dark"]{
  --bg:#12133A; --surface:#1B1D4F; --surface2:#23266A; --text:#ECEEFF; --muted:#A9AEE0; --border:#34377A;
  --primary:#8F89FF; --on-primary:#12133A; --accent:#8F89FF;
  --t-indigo:#2A2C70; --t-coral:#4A2540; --t-amber:#3F3A33; --t-mint:#1D4A4A; --t-violet:#38297A; --t-sky:#1F4A72;
  --blob1:#16335A; --blob2:#2E2A55; --squig:#3F3F99;
  --ok:#6FE3B8; --ko:#FF9D90; --focus:#ECEEFF; --shadow:none;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--font);min-height:100vh;position:relative;overflow-x:hidden}
/* formes décoratives du fond */
body::before{content:"";position:fixed;z-index:-1;left:-140px;top:-160px;width:420px;height:420px;border-radius:50%;background:var(--blob1);pointer-events:none}
body::after{content:"";position:fixed;z-index:-1;right:-180px;bottom:-200px;width:520px;height:460px;border-radius:58% 42% 50% 50%/50% 56% 44% 50%;background:var(--blob2);pointer-events:none}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--primary);color:var(--on-primary);padding:10px 14px;border-radius:12px;z-index:100}
.skip:focus{top:8px}
h1,h2,h3,h4{line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(1.7rem,4.4vw,2.3rem);font-weight:800;letter-spacing:-.025em;margin:0}
h2{font-size:1.2rem;font-weight:800} h3{font-size:1.05rem}
p{margin:0 0 .8em}
a{color:var(--primary)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:10px}
.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico.sm{width:18px;height:18px}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.eyebrow,.card>h2,.card>.day-head h2,.hero .eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800}
.card>h2{color:var(--muted)}
.card.tone-indigo>h2,.card.tone-coral>h2,.card.tone-amber>h2,.card.tone-mint>h2,.card.tone-violet>h2,.card.tone-sky>h2{color:var(--text)}

/* Boutons et champs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:999px;border:2px solid var(--primary);background:var(--primary);color:var(--on-primary);font:inherit;font-weight:800;cursor:pointer;text-decoration:none;transition:transform .12s,filter .12s}
.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
.btn.ghost{background:var(--surface);color:var(--primary);border-color:var(--surface)}
.btn.danger{background:#B3261E;border-color:#B3261E;color:#fff}
.btn.danger.ghost{background:transparent;color:var(--ko);border-color:var(--ko)}
.btn.small{min-height:38px;padding:0 14px;font-size:.9rem}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.btn.light{background:#fff;color:#3730A3;border-color:#fff}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;border:0;background:var(--surface);color:var(--muted);cursor:pointer;flex:none}
.iconbtn:hover{background:var(--t-indigo);color:var(--text)}
.entry .iconbtn{width:36px;height:36px;background:rgba(255,255,255,.55);color:#1B1F4B}
label,.lbl{display:block;font-weight:700;margin:0 0 4px}
input,select,textarea{width:100%;min-height:46px;padding:8px 16px;border-radius:16px;border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit}
input[type=search]{border-radius:999px}
textarea{min-height:90px}
input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--primary);flex:none}
.field{margin-bottom:14px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.hint{color:var(--muted);font-size:.875rem;margin:4px 0 0}
.err{color:var(--ko);font-weight:700;min-height:1.5em;margin:6px 0}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.row.end{justify-content:flex-end}
.grow{flex:1 1 180px}
.stack>*+*{margin-top:12px}

/* Auth */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.auth-card{width:100%;max-width:460px;background:var(--surface);border-radius:32px;padding:32px 26px;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.5rem;margin-bottom:8px;letter-spacing:-.02em}
.brand .ico,.brandrow .ico{width:46px;height:46px;fill:currentColor;stroke:none}
.tabs{display:flex;gap:6px;background:var(--bg);padding:5px;border-radius:999px;margin:16px 0}
.tabs button{flex:1;min-height:42px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-weight:800;cursor:pointer}
.tabs button[aria-selected=true]{background:var(--primary);color:var(--on-primary)}

/* Coque : en-tête + onglets en pastilles */
.shell{max-width:1280px;margin:0 auto;padding:22px 20px 40px;position:relative}
.hd{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:22px;position:relative}
.hd::before{content:"";position:absolute;left:44%;top:-30px;width:190px;height:50px;pointer-events:none;opacity:.7;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 190 50'%3E%3Cpath d='M6 30c20-34 40-34 60 0s40 34 60 0 40-30 58-8' fill='none' stroke='%23B9B4F5' stroke-width='8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain}
.hd-l{min-width:0;flex:1 1 320px}
.brandrow{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem;margin-bottom:12px;letter-spacing:-.01em}
.brandrow .ico{width:40px;height:40px}
.hd-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.status{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:var(--muted);background:var(--surface);border-radius:999px;padding:8px 14px}
.themebtn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:0;background:var(--text);color:var(--bg);font:inherit;font-weight:800;cursor:pointer}
.themebtn:hover{filter:brightness(1.15)}
.side{margin-bottom:24px}
.side ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.side a.nav{display:flex;align-items:center;justify-content:flex-start;min-height:54px;padding:0 22px;border-radius:999px;background:var(--surface);color:var(--text);text-decoration:none;font-weight:800;font-size:.98rem;box-shadow:var(--shadow);transition:transform .12s,background .12s}
.side a.nav .ico{display:none}
.side a.nav:hover{transform:translateY(-2px)}
.side a.nav[aria-current=page]{background:var(--primary);color:var(--on-primary)}
.main{width:100%}
.main:focus{outline:none}
@media (max-width:900px){.side ul{grid-template-columns:repeat(3,1fr)}.side a.nav{justify-content:center;padding:0 8px;font-size:.92rem}}
@media (max-width:520px){.shell{padding:16px 14px 32px}.side ul{gap:8px}.side a.nav{min-height:46px;font-size:.85rem}.themebtn{padding:0 14px}.hd-r{justify-content:flex-start}.hd::before{left:55%;width:130px}}

/* Cartes et tuiles bento */
.bento{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.card{background:var(--surface);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.card.span2{grid-column:1/-1}
.card h2{display:flex;align-items:center;gap:8px}
.tone-indigo{background:var(--t-indigo)} .tone-coral{background:var(--t-coral)} .tone-amber{background:var(--t-amber)}
.tone-mint{background:var(--t-mint)} .tone-violet{background:var(--t-violet)} .tone-sky{background:var(--t-sky)}
.tiles{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}
.tiles.in-hero{grid-template-columns:repeat(2,1fr)}
.tile{position:relative;border-radius:var(--radius);padding:20px 22px;min-height:112px;color:var(--on-tile);overflow:hidden}
.tile .tile-ico{position:absolute;right:16px;top:16px;width:30px;height:30px;opacity:.85}
.tile-n{font-size:2.6rem;font-weight:800;line-height:1;letter-spacing:-.03em}
.tile-l{font-weight:700;margin-top:6px}
.tile-eyebrow{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin-bottom:4px}
.t-coral{background:var(--coral)} .t-amber{background:var(--amber)} .t-mint{background:var(--mint)} .t-sky{background:var(--sky)}
.t-violet{background:var(--violet-t);color:#fff} .t-indigo{background:var(--hero);color:#fff}
.tile .bar{background:rgba(27,31,75,.2);height:12px}
.tile .bar>span{background:#1B1F4B}
.t-violet .bar,.t-indigo .bar{background:rgba(255,255,255,.3)} .t-violet .bar>span,.t-indigo .bar>span{background:#fff}
.tile a{color:inherit;font-weight:800}
.tile-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.tile-row .tile-n{font-size:3.4rem}
.dash{display:grid;gap:16px;grid-template-columns:1.25fr 1fr;margin-bottom:16px}
.dash2{display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:16px}
.cols2{display:grid;gap:16px;grid-template-columns:1fr 1fr;align-items:start;margin-bottom:16px}
@media (max-width:980px){.dash,.dash2,.cols2{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(2,1fr)}}

/* Héros « prochaine révision » */
.hero{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--hero);color:#fff;padding:26px;display:flex;gap:22px;align-items:center;min-height:220px}
.hero::before{content:"";position:absolute;right:-70px;top:-50px;width:340px;height:340px;border-radius:50%;background:rgba(0,0,0,.16)}
.hero::after{content:"";position:absolute;right:46px;bottom:26px;width:64px;height:64px;border-radius:22px;background:var(--amber);transform:rotate(14deg);opacity:.95}
.hero>*{position:relative;z-index:1}
.hero-txt{min-width:0;max-width:34em}
.hero h2{font-size:clamp(1.4rem,3vw,1.9rem);color:#fff;margin:6px 0 4px;letter-spacing:-.02em}
.hero p{margin:0 0 16px;color:#fff;font-weight:600}
.hero .eyebrow{color:#fff}
.ring{--v:0;width:92px;height:92px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;
  background:conic-gradient(#fff calc(var(--v)*1%),rgba(255,255,255,.3) 0)}
.ring span{width:70px;height:70px;border-radius:50%;background:var(--hero);display:grid;place-items:center}
@media (max-width:560px){.hero{flex-direction:column;align-items:flex-start;padding:22px}.hero::after{right:18px;top:18px;bottom:auto}}

/* Listes */
.list{list-style:none;margin:0;padding:0}
.item{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--border)}
.item:first-child{border-top:0}
.item .t{flex:1;min-width:0}
.item .t a,.item .t strong{display:block;overflow-wrap:anywhere;font-weight:700}
.pillcount{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 8px;border-radius:999px;background:var(--t-indigo);color:var(--text);font-size:.78rem;letter-spacing:0}
.dot{width:9px;height:9px;border-radius:50%;background:var(--primary);flex:none}
.dot.coral{background:var(--coral)} .dot.amber{background:var(--amber)}
.ccard{background:var(--t-indigo);border-radius:22px;padding:16px 18px;margin-top:12px}
.ccard .meta{font-size:.8rem;font-weight:800;color:var(--muted);margin:0 0 2px}
.ccard .ttl{display:block;font-weight:800;font-size:1.05rem;overflow-wrap:anywhere;color:var(--text)}
.ccard .st{font-size:.82rem;font-weight:700;color:var(--muted);margin:4px 0 10px}
.qacts{display:flex;gap:8px;flex-wrap:wrap}
.qacts .btn{min-height:38px;padding:0 14px;font-size:.88rem}
.qacts button.lv{border:0;color:#1B1F4B}
.lv1{background:var(--coral)} .lv3{background:var(--amber)} .lv4{background:var(--mint)} .lv5{background:var(--hero);color:#fff!important}
.emptybox{border:2px dashed var(--border);border-radius:20px;padding:16px;text-align:center;color:var(--muted);font-weight:600}
.badge{display:inline-block;padding:3px 12px;border-radius:999px;font-size:.78rem;font-weight:800;background:var(--t-indigo);color:var(--text);white-space:nowrap}
.badge.late{background:var(--coral);color:#1B1F4B}
.badge.mastered{background:var(--mint);color:#0F2E25}
.badge.progress{background:var(--amber);color:#3A2B00}
.badge.new{background:var(--sky);color:#0B2F44}
.badge.critical{background:var(--coral);color:#1B1F4B}
.bar{height:10px;border-radius:999px;background:var(--border);overflow:hidden}
.bar>span{display:block;height:100%;width:calc(var(--v,0)*1%);background:var(--primary);border-radius:999px}
.bars{display:flex;align-items:flex-end;gap:10px;height:140px}
.bars .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:.75rem}
.bars .col span.b{display:block;width:100%;min-height:4px;height:calc(var(--v,0)*1%);background:var(--primary);border-radius:12px 12px 6px 6px}
.empty{color:var(--muted);padding:8px 0}
.donutwrap{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.donut{width:150px;height:150px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--sky) 0 calc(var(--a)*1%),var(--amber) 0 calc(var(--b)*1%),var(--coral) 0 calc(var(--c)*1%),var(--mint) 0 100%)}
.donut span{width:96px;height:96px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-weight:800;font-size:1.3rem}
.legend{list-style:none;margin:0;padding:0}
.legend li{display:flex;align-items:center;gap:8px;font-weight:700;padding:3px 0}
.legend i{width:12px;height:12px;border-radius:4px;display:inline-block}

/* Filtres / chips */
.filters{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:16px}
.searchhero{background:var(--primary);color:var(--on-primary);border-radius:var(--radius);padding:24px;margin-bottom:16px}
.searchhero h2{font-size:clamp(1.3rem,3vw,1.8rem);margin:4px 0 14px;text-transform:none;letter-spacing:-.02em;color:inherit}
.searchhero .eyebrow{color:inherit}
.searchhero label{color:inherit}
.searchhero input{max-width:560px;border-color:transparent}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.chip{min-height:40px;padding:0 16px;border-radius:999px;border:0;background:var(--surface);color:var(--text);font:inherit;font-weight:800;font-size:.9rem;cursor:pointer;box-shadow:var(--shadow)}
.chip[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}
.chiplabel{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--muted);margin:0 0 6px}
.facts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.fact{padding:5px 14px;border-radius:999px;background:var(--surface);font-weight:800;font-size:.85rem}
.groups{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:start}
.gcard{padding:20px}
.gcard h2{font-size:1rem;text-transform:none;letter-spacing:-.01em;display:flex;justify-content:space-between;gap:8px;color:var(--text)}
.gcard .item{background:var(--surface);border-radius:18px;padding:10px 14px;border:0;margin-top:8px}
.group-title{margin:22px 0 8px;color:var(--muted);font-size:.95rem}

/* Semaine */
.weekbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.weekbar strong{font-size:1.5rem;letter-spacing:-.02em}
.weeknav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.days{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);align-items:start}
@media (max-width:1100px){.days{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.days{grid-template-columns:1fr}}
.day-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.day-head h2{margin:0;font-size:.85rem}
.today-mark{box-shadow:0 0 0 3px var(--primary)}
.entries{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px}
.entry{display:flex;align-items:center;gap:8px;border-radius:18px;padding:10px 10px 10px 14px;color:#1B1F4B}
.entry .t{flex:1;min-width:0}
.entry .t a,.entry .t strong{display:block;font-weight:800;overflow-wrap:anywhere;color:#1B1F4B}
.entry .t span{display:block;font-size:.8rem;font-weight:700;color:#1B1F4B}
.entry.tone-violet{background:var(--violet);} .entry.tone-indigo{background:#B9B4F5} .entry.tone-coral{background:var(--coral)} .entry.tone-amber{background:var(--amber)} .entry.tone-mint{background:var(--mint)} .entry.tone-sky{background:var(--sky)}
details.day{margin:0}
details.day summary{cursor:pointer;font-weight:800;color:var(--primary);min-height:40px;display:flex;align-items:center}

/* Fiche / lecteur */
.reader{display:grid;gap:16px}
.backlink{display:inline-flex;align-items:center;gap:6px;font-weight:800;text-decoration:none;color:var(--text);min-height:44px}
.fiche{max-width:780px;font-size:1.05rem;line-height:1.65}
.fiche h3{margin-top:1.4em;font-size:1.5rem;font-weight:800}
.fiche h3:first-child{margin-top:0}
.fiche h4{margin-top:1.2em;font-size:1.15rem;color:var(--primary);font-weight:800}
.fiche h5{margin-top:1em;font-size:1rem}
.fiche ul{padding-left:1.3em;margin:0 0 .8em}
.fiche li{margin:.3em 0}
.pch{font-weight:800;margin:1.2em 0 .3em;display:flex;gap:8px;align-items:center}
.pc{background:var(--t-amber);border-left:6px solid var(--amber);padding:12px 16px;border-radius:16px;margin:0 0 .6em}
.cap{color:var(--muted);font-size:.9rem;font-style:italic}
.qblock{background:var(--t-violet);padding:12px 16px;border-radius:16px;font-weight:700}
.tblwrap{overflow-x:auto;margin:0 0 1em}
table{border-collapse:collapse;min-width:100%}
th,td{border:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--t-indigo)}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg button{min-height:46px;padding:0 22px;border-radius:999px;border:0;background:var(--surface);color:var(--text);font:inherit;font-weight:800;cursor:pointer;box-shadow:var(--shadow)}
.seg button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}
.levels{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.levels button{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:76px;padding:10px 4px;border-radius:22px;border:0;color:#1B1F4B;font:inherit;cursor:pointer;transition:transform .12s}
.levels button:hover{transform:translateY(-2px)}
.levels button:nth-child(1){background:var(--coral)} .levels button:nth-child(2){background:var(--amber)} .levels button:nth-child(3){background:var(--sky)} .levels button:nth-child(4){background:var(--mint)}
.levels button:nth-child(5){background:var(--hero);color:#fff}
.levels button strong{font-size:1.5rem;line-height:1}
.levels button span{font-size:.74rem;font-weight:700}
.levels button[aria-pressed=true]{box-shadow:0 0 0 3px var(--surface),0 0 0 6px var(--text)}
@media (max-width:420px){.levels span{display:none}}

/* QCM */
.q{margin:0 0 16px;padding:20px;border:0;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.q legend{font-weight:800;padding:4px 14px;border-radius:999px;background:var(--primary);color:var(--on-primary);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.opt{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:2px solid var(--border);border-radius:18px;margin:8px 0;font-weight:500;cursor:pointer}
.opt:hover{border-color:var(--primary)}
.opt.ok{border-color:var(--ok);background:var(--t-mint)}
.opt.ko{border-color:var(--ko);background:var(--t-coral)}
.opt .tag{display:block;font-weight:800;font-size:.8rem}
.opt.ok .tag{color:var(--ok)} .opt.ko .tag{color:var(--ko)}
.expl{background:var(--t-sky);padding:12px 16px;border-radius:16px;margin-top:10px}
.verdict{font-weight:800;margin-top:10px}
.score{position:sticky;top:8px;z-index:5;background:var(--surface);box-shadow:var(--shadow);border-radius:999px;padding:8px 18px;margin-bottom:12px;font-weight:800;display:inline-block}

.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);max-width:92vw;background:var(--text);color:var(--bg);padding:12px 20px;border-radius:999px;z-index:60;box-shadow:var(--shadow);font-weight:700}
.noscript{padding:20px}
.loading{padding:30px;text-align:center;color:var(--muted)}
.pagesub{margin:6px 0 0;color:var(--muted);font-weight:600}
dialog{border:0;border-radius:28px;padding:24px;max-width:min(92vw,440px);background:var(--surface);color:var(--text);box-shadow:0 12px 40px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(18,19,58,.6)}
.hero,.tile,.card{animation:rise .35s ease both}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.sw-new{background:var(--sky)} .sw-progress{background:var(--amber)} .sw-critical{background:var(--coral)} .sw-mastered{background:var(--mint)}
.tiles+.bento{margin-top:16px}
.reader{margin-bottom:16px}
.stats .card.span2{grid-column:1/-1}
.tiles+.days{margin-top:16px}
.band{margin-bottom:16px}
.tile-row .tile-l{flex:1 1 220px;margin-top:0}
.tile .bar{margin-top:14px}
.tile-row{margin-top:4px}
.bento.stats{grid-template-columns:1fr 1fr}
@media (max-width:760px){.bento.stats{grid-template-columns:1fr}}
.fact+.badge{align-self:center}
.facts{align-items:center}

/* ---- Lecteur de QCM (style Révision EDN : vignette + question + options lettrées) ---- */
.qp-track{height:8px;border-radius:99px;background:var(--border);overflow:hidden;margin:4px 0 10px}
.qp-prog{height:100%;background:linear-gradient(90deg,var(--primary),var(--mint));border-radius:99px;transition:width .25s}
.qp-nav{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px}
.qp-qn{display:block;width:28px;height:8px;border-radius:99px;background:var(--border)}
.qp-qn.cur{background:var(--primary)} .qp-qn.ok{background:var(--mint)} .qp-qn.partial{background:var(--amber)} .qp-qn.ko{background:var(--coral)}
.qp-wrap{display:grid;gap:16px;align-items:start}
.qp-wrap.withdp{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
@media (max-width:900px){.qp-wrap.withdp{grid-template-columns:1fr}}
.qp-vign{background:var(--amber);color:#1B1F4B;border-radius:var(--radius);padding:22px;position:sticky;top:12px}
@media (max-width:900px){.qp-vign{position:static}}
.qp-vign summary{font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.qp-vign p{font-size:1rem;line-height:1.55;font-weight:500;margin:12px 0 0;white-space:pre-line}
.qp-q{background:var(--surface);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}
.qp-qhd{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.qp-qnum{font-weight:800;color:var(--muted);font-size:.85rem;letter-spacing:.04em}
.qp-tag{display:inline-block;padding:4px 12px;border-radius:99px;background:var(--t-indigo);color:var(--text);font-size:.78rem;font-weight:800}
.qp-tag.pink{background:var(--t-coral)} .qp-tag.ok{background:var(--t-mint)} .qp-tag.partial{background:var(--t-amber)} .qp-tag.ko{background:var(--t-coral)}
.qp-stem{font-size:1.3rem;font-weight:800;line-height:1.3;margin:0}
.qp-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:760px){.qp-opts{grid-template-columns:1fr}}
.qp-opt{display:flex;gap:14px;align-items:center;text-align:left;width:100%;border:2px solid transparent;border-radius:20px;background:var(--surface2);color:var(--text);padding:14px 16px;font:inherit;font-size:.95rem;line-height:1.4;cursor:pointer}
.qp-opt:hover:not(:disabled){border-color:var(--primary)}
.qp-opt:disabled{cursor:default;opacity:1}
.qp-opt.sel{border-color:var(--primary);background:var(--t-indigo)}
.qp-opt.ok{border-color:var(--ok);background:var(--t-mint)} .qp-opt.ko{border-color:var(--ko);background:var(--t-coral)} .qp-opt.miss{border-color:var(--ok);border-style:dashed}
.qp-ol{flex:none;width:34px;height:34px;border-radius:12px;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;font-weight:800}
.qp-opt:nth-child(5n+2) .qp-ol{background:var(--mint);color:#052229} .qp-opt:nth-child(5n+3) .qp-ol{background:var(--coral);color:#1B1740}
.qp-opt:nth-child(5n+4) .qp-ol{background:var(--sky);color:#1B1740} .qp-opt:nth-child(5n+5) .qp-ol{background:var(--amber);color:#1B1740}
.qp-ot{flex:1;min-width:0} .qp-tg{display:block;font-weight:800;font-size:.75rem;margin-top:2px}
.qp-opt.ok .qp-tg,.qp-opt.miss .qp-tg{color:var(--ok)} .qp-opt.ko .qp-tg{color:var(--ko)}
.qp-om{flex:none;font-weight:800;font-size:1.1rem}
.qp-fb{border-radius:18px;padding:14px 18px;background:var(--t-sky)}
.qp-fb.ok{background:var(--t-mint)} .qp-fb.ko{background:var(--t-coral)} .qp-fb.partial{background:var(--t-amber)}
.qp-fbs{font-weight:800} .qp-fb p{margin:6px 0 0;white-space:pre-line}
.qp-acts{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}
.qp-hero{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border-radius:var(--radius);background:var(--hero);color:#fff;padding:24px}
.qp-hero h2{margin:0;font-size:1.5rem} .qp-hero p{margin:4px 0 0}
.qp-badge{width:104px;height:104px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-content:center;text-align:center}
.qp-badge b{font-size:1.5rem} .qp-badge small{letter-spacing:.12em;font-size:.65rem}
.qp-sc{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.qp-sc div{background:var(--surface);border-radius:20px;padding:14px 16px;box-shadow:var(--shadow)} .qp-sc b{display:block;font-size:1.8rem} .qp-sc small{color:var(--muted)}
.qp-s-ok b{color:var(--ok)} .qp-s-ko b{color:var(--ko)}
.qp-h3{margin:18px 0 8px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.qp-rows{display:grid;gap:8px}
.qp-rrow{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border:0;border-radius:18px;background:var(--surface);color:var(--text);padding:12px 14px;font:inherit;cursor:pointer;box-shadow:var(--shadow)}
.qp-rrow:disabled{opacity:.6;cursor:default}
.qp-n{flex:none;width:30px;height:30px;border-radius:10px;background:var(--t-indigo);display:grid;place-items:center;font-weight:800}
.qp-n.ok{background:var(--mint);color:#052229} .qp-n.ko{background:var(--coral);color:#1B1740} .qp-n.partial{background:var(--amber);color:#1B1740}
.qp-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- Page Annales ---- */
.annh{margin:22px 0 10px;font-size:1.1rem}
.anngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.anncard{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:22px;background:var(--surface);color:var(--text);text-decoration:none;box-shadow:var(--shadow)}
.anncard:hover{background:var(--t-indigo)}
.annyear{flex:none;min-width:56px;text-align:center;padding:10px 8px;border-radius:16px;background:var(--primary);color:var(--on-primary);font-weight:800}
.annt{flex:1;min-width:0;display:grid;gap:2px} .annt small{font-size:.8rem}
.annt-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cyclebadge{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:9999px;text-transform:uppercase;line-height:1.3}
.cycle-dfgsm2{background:rgba(79,70,229,.12);color:#4F46E5;border:1px solid rgba(79,70,229,.28)}
.cycle-dfgsm3{background:rgba(236,72,153,.12);color:#DB2777;border:1px solid rgba(236,72,153,.28)}
[data-theme="dark"] .cycle-dfgsm2{background:rgba(99,102,241,.22);color:#A5B4FC;border-color:rgba(99,102,241,.45)}
[data-theme="dark"] .cycle-dfgsm3{background:rgba(244,114,182,.22);color:#F472B6;border-color:rgba(244,114,182,.45)}

.qp-img{display:block;max-width:100%;max-height:480px;margin:0;border-radius:16px;border:1px solid var(--border);background:#fff;object-fit:contain}
.qp-vign .qp-img{margin-top:12px}
.qp-img{display:block;max-width:100%;max-height:480px;margin:0;border-radius:14px;border:1px solid var(--border);background:#fff;object-fit:contain}
.qp-vign .qp-img{margin-top:12px}

/* ---- Annales : cartes, barre de disciplines, pop-up ---- */
.annhd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0 10px}
.annhd .annh{margin:0 8px 0 0}
.discchip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;background:var(--surface);font-size:.78rem;font-weight:800;box-shadow:var(--shadow)}
.discchip i,.discbtn i{display:block;width:10px;height:10px;border-radius:50%}
.discbar{display:flex;height:8px;border-radius:99px;overflow:hidden;background:var(--border);margin-top:6px}
.discbar span{display:block;min-width:4px}
button.anncard{border:0;font:inherit;text-align:left;cursor:pointer;width:100%}
.linkbtn{background:none;border:0;font:inherit;font-weight:800;color:var(--primary);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 0}
.noscroll{overflow:hidden}
.modalbg{position:fixed;inset:0;z-index:60;background:rgba(27,31,75,.55);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto}
.modal{width:100%;max-width:860px;background:var(--surface);color:var(--text);border-radius:32px;padding:28px 30px;box-shadow:0 30px 80px rgba(27,31,75,.35);display:flex;flex-direction:column;gap:18px;outline:none}
.mdhd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.mdhd h2{margin:4px 0 0;font-size:1.6rem}
.mdeye{font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.mdhd .mdeye{margin-bottom:0}
.pkrows{display:grid;gap:10px}
.pkrow{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 18px;border-radius:22px;border:2px solid transparent;background:var(--surface2);color:var(--text);font:inherit;cursor:pointer}
.pkrow.on{background:var(--t-indigo);border-color:var(--primary)}
.pkdot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--muted);box-sizing:border-box}
.pkrow.on .pkdot{border-color:var(--primary);background:radial-gradient(var(--primary) 0 45%,transparent 50%)}
.pkt{display:grid;gap:2px} .pkt small{color:var(--muted);font-weight:600}
.pkopts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.discbtn{display:inline-flex;align-items:center;gap:8px}
.mdft{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.mdft .row{display:flex;gap:10px}
.qp-discs{display:grid;gap:10px;margin-bottom:6px}
.qp-disc{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:center}
.annscore{font-weight:800;color:var(--ok)}
.qp-report{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:0;background:var(--surface2);color:var(--muted);cursor:pointer}
.qp-report:hover{background:var(--t-coral);color:var(--ko)}
.modal.small{max-width:520px}

/* ---- Administration Console & Question Editor ---- */
.admin-shell{display:flex;min-height:100vh;background:var(--bg)}
.admin-side{width:260px;flex:none;background:#1B1F4B;color:#FFFFFF;display:flex;flex-direction:column;padding:24px 18px;position:sticky;top:0;height:100vh;overflow-y:auto;box-shadow:4px 0 20px rgba(0,0,0,.12);z-index:20}
.admin-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px;text-decoration:none;color:#FFF}
.admin-brand .ico{width:36px;height:36px;fill:#FFF}
.admin-brand-title{font-size:1.25rem;font-weight:800;letter-spacing:-.02em}
.admin-badge{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--coral);color:#FFF}
.admin-nav{display:flex;flex-direction:column;gap:6px;flex:1}
.admin-nav-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:14px;color:#A9AEE0;text-decoration:none;font-weight:700;font-size:.92rem;transition:background .15s,color .15s;border:0;background:transparent;width:100%;text-align:left;cursor:pointer}
.admin-nav-item:hover{background:rgba(255,255,255,.08);color:#FFF}
.admin-nav-item.active{background:var(--primary);color:#FFF}
.admin-nav-item.disabled{opacity:.45;cursor:not-allowed}
.admin-nav-item.disabled:hover{background:transparent;color:#A9AEE0}
.admin-nav-label{display:flex;align-items:center;gap:10px}
.admin-nav-count{font-size:.75rem;padding:2px 8px;border-radius:999px;background:var(--coral);color:#FFF;font-weight:800}
.admin-nav-tag{font-size:.65rem;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.14);color:#ECEEFF;font-weight:600}
.admin-side-footer{margin-top:auto;padding-top:20px;border-top:1px solid rgba(255,255,255,.1)}
.admin-backlink{display:flex;align-items:center;gap:8px;color:#A9AEE0;text-decoration:none;font-weight:700;font-size:.88rem;transition:color .15s}
.admin-backlink:hover{color:#FFF}

.admin-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:28px 32px 48px;max-width:1600px;margin:0 auto;width:100%}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.admin-header-title{display:flex;align-items:center;gap:12px}
.admin-header-title h1{font-size:1.6rem;font-weight:800;margin:0}

/* Onglets de statut (À traiter, Corrigés, Rejetés) */
.admin-status-tabs{display:flex;gap:8px;background:var(--surface);padding:4px;border-radius:999px;box-shadow:var(--shadow)}
.admin-status-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:800;font-size:.9rem;cursor:pointer;transition:background .15s,color .15s}
.admin-status-tab:hover{color:var(--text)}
.admin-status-tab.active{background:var(--primary);color:var(--on-primary)}
.admin-tab-count{font-size:.75rem;padding:1px 7px;border-radius:999px;background:var(--surface2);color:var(--muted)}
.admin-status-tab.active .admin-tab-count{background:rgba(255,255,255,.25);color:#FFF}

/* Disposition 2 colonnes */
.admin-split{display:grid;grid-template-columns:420px 1fr;gap:24px;align-items:start}
@media (max-width:1100px){.admin-split{grid-template-columns:1fr}}

/* Colonne liste de signalements */
.admin-list-col{display:flex;flex-direction:column;gap:14px}
.admin-filter-bar{display:flex;gap:10px;align-items:center}
.admin-filter-bar input[type=search]{flex:1}
.admin-filter-bar select{width:auto;flex:none;max-width:170px}
.admin-report-list{display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 190px);overflow-y:auto;padding-right:4px}

/* Carte de signalement dans la liste */
.report-card{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow);border:2px solid transparent;cursor:pointer;text-align:left;transition:transform .12s,border-color .12s}
.report-card:hover{transform:translateY(-1px);border-color:var(--border)}
.report-card.selected{border-color:var(--primary);background:var(--surface)}
.report-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.report-card-title{font-weight:800;font-size:.92rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.report-card-badges{display:flex;align-items:center;gap:6px;flex:none}
.report-card-q{font-size:.88rem;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.report-card-bot{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:var(--muted);margin-top:2px}
.report-card-count{font-weight:800;color:var(--coral)}

/* Badges de types de signalement */
.adm-kind-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.02em}
.adm-kind-reponse{background:var(--t-coral);color:var(--ko)}
.adm-kind-enonce{background:var(--t-amber);color:#7C4A03}
.adm-kind-explication{background:var(--t-violet);color:var(--violet-t)}
.adm-kind-image{background:var(--t-sky);color:#0C4A6E}
.adm-kind-autre{background:var(--surface2);color:var(--muted)}

.adm-status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:800}
.adm-status-a_traiter{background:var(--t-coral);color:var(--ko)}
.adm-status-corrige{background:var(--t-mint);color:var(--ok)}
.adm-status-rejete{background:var(--surface2);color:var(--muted)}

/* Panneau de détail du signalement */
.admin-detail-col{display:flex;flex-direction:column;gap:18px}
.report-detail-card{background:var(--surface);border-radius:var(--radius);padding:24px 28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:20px}
.report-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.report-detail-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.report-detail-title h2{margin:0 0 4px;font-size:1.3rem;font-weight:800}
.report-detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.85rem}

/* Boîte d'avertissement jaune - messages des étudiants */
.report-msg-box{background:var(--t-amber);border:2px solid var(--amber);border-radius:20px;padding:18px 20px;color:var(--text)}
.report-msg-box-hd{display:flex;align-items:center;gap:8px;font-weight:800;font-size:.95rem;margin-bottom:12px;color:#7C4A03}
:root[data-theme="dark"] .report-msg-box-hd{color:#FFDE85}
.report-msg-list{display:flex;flex-direction:column;gap:12px}
.report-msg-item{background:rgba(255,255,255,.6);border-radius:14px;padding:12px 14px;font-size:.9rem}
:root[data-theme="dark"] .report-msg-item{background:rgba(0,0,0,.25)}
.report-msg-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted);margin-bottom:6px}
.report-msg-text{margin:0;line-height:1.45;white-space:pre-wrap;font-weight:500}

/* Vignette DP dans l'aperçu */
.adm-dp-box{background:var(--t-violet);border-radius:18px;padding:16px 20px;border-left:4px solid var(--violet)}
.adm-dp-box h3{font-size:.95rem;margin:0 0 6px;color:var(--text)}
.adm-dp-box p{margin:0;font-size:.9rem;line-height:1.45}

/* Question dans le panneau de détail */
.adm-q-box{display:flex;flex-direction:column;gap:14px}
.adm-q-stem{font-size:1.05rem;font-weight:700;line-height:1.45;margin:0}
.adm-q-opts{display:flex;flex-direction:column;gap:8px}
.adm-q-opt{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;border:2px solid var(--border);background:var(--surface2);font-size:.92rem}
.adm-q-opt.ok{border-color:var(--mint);background:var(--t-mint);font-weight:700}
.adm-q-opt-letter{width:28px;height:28px;border-radius:8px;background:var(--surface);display:grid;place-items:center;font-weight:800;font-size:.85rem;flex:none}
.adm-q-opt.ok .adm-q-opt-letter{background:var(--mint);color:#052229}
.adm-q-opt-text{flex:1}
.adm-q-opt-mark{color:var(--ok);font-weight:800}
.adm-q-expl{background:var(--surface2);border-radius:14px;padding:14px 16px;font-size:.9rem;color:var(--muted);border-left:3px solid var(--primary)}
.adm-q-expl strong{color:var(--text);display:block;margin-bottom:4px}

/* ---- Écran 2 : Éditeur de question ---- */
.admin-editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.admin-editor-left{display:flex;align-items:center;gap:14px}
.admin-dirty-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:var(--t-coral);color:var(--ko);font-size:.82rem;font-weight:800;border:1px solid var(--coral)}
.admin-dirty-dot{width:8px;height:8px;border-radius:50%;background:var(--coral)}
.admin-editor-actions{display:flex;align-items:center;gap:10px}

.adm-form-card{background:var(--surface);border-radius:var(--radius);padding:26px 28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px}
.adm-form-group{display:flex;flex-direction:column;gap:6px}
.adm-form-group label{font-weight:800;font-size:.88rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.adm-prop-list{display:flex;flex-direction:column;gap:10px;margin:6px 0}
.adm-prop-item{display:grid;grid-template-columns:36px 1fr auto auto;gap:10px;align-items:center;background:var(--surface2);padding:10px 14px;border-radius:16px;border:2px solid transparent}
.adm-prop-item.is-ok{border-color:var(--mint);background:var(--t-mint)}
.adm-prop-letter{font-weight:800;font-size:1rem;text-align:center;color:var(--text)}
.adm-prop-input{min-height:40px;padding:6px 12px;border-radius:10px}
.adm-prop-toggle{min-height:36px;padding:0 12px;border-radius:999px;border:2px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;font-weight:800;font-size:.82rem;cursor:pointer}
.adm-prop-toggle.on{border-color:var(--mint);background:var(--mint);color:#052229}
.adm-prop-del{width:36px;height:36px;border-radius:50%;border:0;background:transparent;color:var(--ko);cursor:pointer;display:grid;place-items:center}
.adm-prop-del:hover{background:var(--t-coral)}
.adm-prop-del:disabled{opacity:.3;cursor:not-allowed}

/* Versions list */
.adm-versions-card{background:var(--surface);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}
.adm-versions-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}
.adm-version-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:12px;background:var(--surface2);font-size:.88rem}

/* ---- Vues Contenu, Utilisateurs, Statistiques ---- */
.adm-table-wrap{width:100%;overflow-x:auto;border-radius:20px;box-shadow:var(--shadow)}
.adm-table{width:100%;border-collapse:collapse;background:var(--surface);text-align:left;font-size:.9rem}
.adm-table th{background:var(--surface2);padding:14px 18px;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--border)}
.adm-table td{padding:14px 18px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
.adm-table tr:last-child td{border-bottom:0}
.adm-table tr:hover td{background:rgba(79,70,229,.03)}

.adm-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.adm-course-card{background:var(--surface);border-radius:24px;padding:20px 22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;border:2px solid transparent;transition:border-color .15s}
.adm-course-card:hover{border-color:var(--border)}
.adm-course-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.adm-course-card h3{margin:0;font-size:1.1rem;font-weight:800}
.adm-course-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.84rem}
.adm-course-q-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding-top:12px;border-top:1px solid var(--border);max-height:300px;overflow-y:auto}
.adm-course-q-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:10px;background:var(--surface2);font-size:.85rem}

.adm-bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
@media (max-width:1100px){.adm-bento-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.adm-bento-grid{grid-template-columns:1fr}}

.adm-stat-tile{border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;justify-content:space-between;min-height:120px;box-shadow:var(--shadow)}
.adm-stat-tile-n{font-size:2.2rem;font-weight:800;line-height:1;margin-bottom:4px}
.adm-stat-tile-l{font-weight:700;font-size:.9rem}
.adm-stat-tile-sub{font-size:.78rem;opacity:.75;margin-top:4px}

.adm-bars-list{display:flex;flex-direction:column;gap:12px}
.adm-bar-row{display:grid;grid-template-columns:160px 1fr 60px;gap:14px;align-items:center}
.adm-bar-label{font-weight:700;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-bar-meter{height:12px;background:var(--surface2);border-radius:999px;overflow:hidden}
.adm-bar-fill{height:100%;border-radius:999px;transition:width .3s}
.adm-bar-val{text-align:right;font-weight:800;font-size:.88rem;color:var(--muted)}

@media (max-width:800px){
  .admin-shell{flex-direction:column}
  .admin-side{width:100%;height:auto;position:sticky;top:0}
  .admin-main{padding:18px 14px}
  .admin-split{grid-template-columns:1fr}
}
