/* Espace etudiant — transposition de la maquette de reference.
   Le chrome de maquette (bascule desktop/mobile) et l'atelier ne sont pas
   repris : le premier n'a pas lieu d'etre en production, le second est hors
   de ce lot. */

:root{
  --papier:#FDFCF8; --encre:#1C1917; --doux:#57534E; --tres-doux:#8A837B;
  --filet:#E7E2D6; --filet-fort:#D6CFBE;
  --accent:#B4472A; --accent-pale:#F7EDE8; --accent-encre:#8E3520;
  --ok:#1F5C4A; --alerte:#A63A1E;
  --serif:"Literata",Georgia,serif;
  --display:"Fraunces",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
[data-theme="sombre"]{
  --papier:#14130F; --encre:#EDEAE0; --doux:#A8A196; --tres-doux:#736C62;
  --filet:#2B2822; --filet-fort:#3A362E;
  --accent:#D2735A; --accent-pale:#241A16; --accent-encre:#E08E76;
  --ok:#5C9B85; --alerte:#D2735A;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="clair"]){
    --papier:#14130F; --encre:#EDEAE0; --doux:#A8A196; --tres-doux:#736C62;
    --filet:#2B2822; --filet-fort:#3A362E;
    --accent:#D2735A; --accent-pale:#241A16; --accent-encre:#E08E76;
    --ok:#5C9B85; --alerte:#D2735A;
  }
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--papier);color:var(--encre);font-family:var(--serif);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;
  font-variant-numeric:oldstyle-num}

.saut{position:absolute;left:-9999px}
.saut:focus{position:fixed;left:12px;top:12px;z-index:99;background:var(--papier);
  border:1px solid var(--accent);padding:10px 16px;border-radius:2px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.appareil{width:100%;max-width:1040px;margin:0 auto}
.tete{border-bottom:1px solid var(--filet);padding:14px 22px 0}
.marque{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.marque .nom{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;
  color:var(--doux);text-transform:uppercase;text-decoration:none}
.marque .promo{font-family:var(--mono);font-size:11px;color:var(--accent);
  letter-spacing:.1em;margin-left:auto}
.nav{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;align-items:flex-start}
.nav::-webkit-scrollbar{display:none}
.nav a{font-family:var(--display);font-size:16px;color:var(--doux);text-decoration:none;
  padding:0 0 10px;border-bottom:2px solid transparent;white-space:nowrap;
  min-height:44px;display:flex;align-items:flex-start}
.nav a[aria-current="page"]{color:var(--encre);border-bottom-color:var(--accent)}
.cmdk{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--tres-doux);
  border:1px solid var(--filet);padding:6px 9px;border-radius:2px;cursor:pointer;
  background:none;align-self:flex-start;min-height:32px}
@media (max-width:640px){.cmdk{display:none}}

main{padding:30px 22px 60px}
@media (max-width:640px){main{padding:22px 16px 40px} .tete{padding:12px 16px 0}}
.prose{max-width:64ch}

h1{font-family:var(--display);font-size:34px;line-height:1.15;font-weight:600;
  margin:0 0 6px;letter-spacing:-.01em}
h2{font-family:var(--display);font-size:20px;font-weight:600;margin:0 0 10px}
@media (max-width:640px){h1{font-size:27px}}
.surtitre{font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.chapeau{color:var(--doux);margin:0 0 26px}
.regle{border:0;border-top:1px solid var(--filet);margin:34px 0}
.sourdine{color:var(--tres-doux)}

.bloc{border-left:2px solid var(--accent);padding:0 0 0 20px;margin:0 0 34px}
.bloc.neutre{border-left-color:var(--filet-fort)}
.bloc .etiq{display:flex;align-items:baseline;gap:12px;margin-bottom:9px}
.bloc .num{font-family:var(--serif);font-size:22px;color:var(--tres-doux);line-height:1}
.bloc .type{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--doux)}
.bloc .duree{font-family:var(--mono);font-size:10.5px;color:var(--tres-doux);
  margin-left:auto;letter-spacing:.06em}
.bloc p{margin:0 0 12px}
.bloc p:last-child{margin-bottom:0}
.bloc pre{font-family:var(--mono);font-size:13px;background:var(--filet);
  padding:12px 14px;border-radius:2px;overflow-x:auto}
.bloc code{font-family:var(--mono);font-size:.92em}
.bloc blockquote{margin:0 0 12px;padding-left:14px;border-left:2px solid var(--filet-fort);
  color:var(--doux)}

a.notion{border-bottom:1px dotted var(--accent);color:inherit;text-decoration:none}
a.notion:hover,a.notion:focus{color:var(--accent)}

.objectifs{border-top:1px solid var(--filet);border-bottom:1px solid var(--filet);
  padding:16px 0;margin:0 0 32px}
.objectifs .lab{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--doux);margin-bottom:9px}
.objectifs ul{margin:0;padding:0;list-style:none}
.objectifs li{padding-left:20px;position:relative;margin-bottom:5px}
.objectifs li::before{content:"→";position:absolute;left:0;color:var(--accent)}

.reglette{display:flex;gap:3px;overflow-x:auto;padding:14px 0 18px;scrollbar-width:none}
.reglette::-webkit-scrollbar{display:none}
.cran{flex:0 0 auto;width:30px;text-align:center;font-family:var(--mono);
  font-size:10px;color:var(--tres-doux);text-decoration:none}
.cran i{display:block;height:26px;border:1px solid var(--filet-fort);
  margin-bottom:5px;border-radius:1px}
.cran.faite i{background:var(--filet)}
.cran.aujourdhui i{background:var(--accent);border-color:var(--accent)}
.cran.aujourdhui{color:var(--accent)}

.liste{border-top:1px solid var(--filet)}
.ligne{display:flex;gap:16px;align-items:baseline;padding:13px 0;
  border-bottom:1px solid var(--filet);text-decoration:none;color:inherit;min-height:44px}
.ligne:hover{background:var(--accent-pale)}
.ligne .code{font-family:var(--mono);font-size:11.5px;color:var(--tres-doux);
  flex:0 0 62px;letter-spacing:.04em}
.ligne .titre{flex:1;font-family:var(--display);font-size:16.5px}
.ligne .date{font-family:var(--mono);font-size:11px;color:var(--tres-doux)}
@media (max-width:640px){.ligne .date{display:none}}

.encart{border:1px solid var(--filet-fort);padding:18px 20px;margin:0 0 22px;border-radius:2px}
.encart .lab{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--doux);margin-bottom:8px}
.encart.mise-en-avant{border-color:var(--accent);background:var(--accent-pale)}

.btn{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;border:1px solid var(--encre);color:var(--encre);
  background:none;padding:12px 16px;cursor:pointer;text-decoration:none;
  border-radius:2px;min-height:44px}
.btn:hover{background:var(--encre);color:var(--papier)}
.btn.primaire{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primaire:hover{background:var(--accent-encre);border-color:var(--accent-encre)}
.btn.petit{padding:9px 11px;font-size:11px;min-height:38px}

.onglets{display:flex;border-bottom:1px solid var(--filet);margin-bottom:16px}
.onglets button{font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;background:none;border:0;border-bottom:2px solid transparent;
  color:var(--tres-doux);padding:12px 14px;cursor:pointer;margin-bottom:-1px;min-height:44px}
.onglets button[aria-selected="true"]{color:var(--encre);border-bottom-color:var(--accent)}
.palier{display:none}.palier.actif{display:block}

.check{list-style:none;margin:0;padding:0}
.check li{display:flex;gap:11px;align-items:flex-start;padding:11px 0;
  border-bottom:1px solid var(--filet);min-height:44px}
.check input{margin-top:6px;accent-color:var(--accent);width:20px;height:20px;flex:0 0 auto}
.check .code{font-family:var(--mono);font-size:10.5px;color:var(--tres-doux);
  flex:0 0 62px;padding-top:3px}
.check li.fait span.txt{color:var(--tres-doux);text-decoration:line-through}
.check .depassee{color:var(--alerte)}

.verrou{border:1px dashed var(--filet-fort);padding:20px;text-align:center;
  color:var(--tres-doux);font-family:var(--mono);font-size:11.5px;
  letter-spacing:.06em;border-radius:2px}

.recherche{width:100%;font-family:var(--serif);font-size:17px;background:none;
  color:var(--encre);border:0;border-bottom:1px solid var(--filet-fort);
  padding:12px 0;margin-bottom:6px;outline:none;min-height:44px}
.recherche:focus{border-bottom-color:var(--accent)}
.filtres{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 26px}
.filtres a{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;border:1px solid var(--filet-fort);background:none;
  color:var(--doux);padding:9px 10px;border-radius:2px;text-decoration:none;min-height:38px;
  display:inline-flex;align-items:center}
.filtres a[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);
  background:var(--accent-pale)}
.entree{padding:20px 0;border-bottom:1px solid var(--filet)}
.entree h3{font-family:var(--display);font-size:19px;margin:0 0 4px;font-weight:600}
.entree .syn{font-family:var(--mono);font-size:10.5px;color:var(--tres-doux);
  letter-spacing:.06em;margin-bottom:9px}
.entree .def{margin:0 0 12px}
.piege{border-left:2px solid var(--accent);background:var(--accent-pale);
  padding:11px 14px;font-size:14.5px;color:var(--doux);margin:0 0 12px}
.piege b{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);display:block;margin-bottom:4px;font-weight:500}
.puces-seances{display:flex;gap:6px;flex-wrap:wrap}
.puces-seances a{font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  border:1px solid var(--filet-fort);padding:6px 8px;color:var(--doux);
  text-decoration:none;border-radius:2px}

.acces{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:12px}
@media (max-width:760px){.acces{grid-template-columns:1fr}}
.carte-acces{border:1px solid var(--filet-fort);padding:18px 20px;border-radius:2px}
.carte-acces .cms{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:3px}
.carte-acces .url{font-family:var(--mono);font-size:12px;color:var(--doux);
  word-break:break-all;margin-bottom:14px}
.ident{border-top:1px solid var(--filet);padding-top:12px;margin-top:14px;
  font-family:var(--mono);font-size:12px;color:var(--doux)}
.ident div{display:flex;gap:10px;padding:2px 0}
.ident span:first-child{color:var(--tres-doux);flex:0 0 84px}
.note-jury{font-size:14px;color:var(--doux);border-left:2px solid var(--filet-fort);
  padding-left:14px;margin-top:16px}

.deux-col{display:grid;grid-template-columns:1fr 232px;gap:44px;align-items:start}
@media (max-width:860px){.deux-col{grid-template-columns:1fr;gap:26px}}
.cote{font-size:14.5px}
.cote h4{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--doux);margin:0 0 9px;font-weight:500;border-bottom:1px solid var(--filet);
  padding-bottom:7px}
.cote ul{list-style:none;margin:0 0 26px;padding:0}
.cote li{padding:4px 0}
.cote a{color:var(--doux);text-decoration:none;border-bottom:1px dotted var(--filet-fort)}
.cote a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* apercu inerte des blocs terrain/dataset/dashboard/document : leur atelier
   viendra plus tard, mais le contenu doit deja se voir. */
.amorce{display:grid;grid-template-columns:186px 1fr;gap:20px;
  border:1px solid var(--filet-fort);border-radius:2px;padding:16px;align-items:center}
@media (max-width:640px){.amorce{grid-template-columns:1fr}}
.am-apercu{background:var(--filet);border-radius:1px;height:118px}
.am-type{font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.am-nom{font-family:var(--display);font-size:17px;margin-bottom:4px}
.am-note{font-size:13.5px;color:var(--tres-doux);margin:0}

.palette{position:fixed;inset:0;background:rgba(20,19,15,.34);z-index:80;
  display:none;padding-top:13vh;justify-content:center}
.palette.ouverte{display:flex}
.palette .boite{width:min(560px,92vw);background:var(--papier);
  border:1px solid var(--filet-fort);height:max-content;border-radius:3px}
.palette input{width:100%;font-family:var(--serif);font-size:18px;padding:16px 18px;
  border:0;border-bottom:1px solid var(--filet);background:none;color:var(--encre);outline:none}
.palette .res{padding:6px 0 8px;max-height:46vh;overflow:auto}
.palette .r{display:flex;gap:13px;align-items:baseline;padding:11px 18px;
  text-decoration:none;color:inherit}
.palette .r:hover,.palette .r.sel{background:var(--accent-pale)}
.palette .r .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent);flex:0 0 74px}
.palette .pied{border-top:1px solid var(--filet);padding:9px 18px;
  font-family:var(--mono);font-size:10px;color:var(--tres-doux);letter-spacing:.06em}

@media print{
  .tete,.cmdk,.palette,.reglette,.btn{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  .bloc{border-left-color:#999;break-inside:avoid}
  .deux-col{grid-template-columns:1fr}
  a[href]::after{content:" (" attr(href) ")";font-size:9pt;color:#666}
  a.notion::after{content:""}
}
