﻿/* ÉvaluPrêt — thème « B : moderne » (indigo, teal, coins arrondis, Plus Jakarta Sans).
   Chargé APRÈS les styles de chaque page : il ne fait que redéfinir couleurs, police et formes. */
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");

:root{
  /* noms utilisés par l'espace enseignant / direction */
  --bg:#F4F5FB; --surface:#FFFFFF; --paper:#FFFFFF; --ink:#111827; --muted:#4B5563; --rule:#E3E6F0;
  --brand:#4338CA; --on-brand:#FFFFFF; --soft:#EEF0FF; --hazard:#0F766E; --stripe:#111827;
  --ok:#0F766E; --warn:#9F1239; --warn-bg:#FFE4E6;
  --f-display:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif; --f-ui:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;
  /* noms utilisés par la page de connexion / espace / apprenant */
  --card:#FFFFFF; --fg:#111827; --acc:#4338CA; --acc2:#4338CA; --bad:#9F1239; --warn2:#FFF4DC;
  --b-shadow:0 1px 3px rgba(17,24,39,.08),0 1px 2px rgba(17,24,39,.04);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0E1120; --surface:#171B2E; --paper:#171B2E; --ink:#EEF0FA; --muted:#A3AAC4; --rule:#2A3050;
  --brand:#A5B4FC; --on-brand:#0E1120; --soft:#232A4D; --hazard:#2DD4BF; --stripe:#0E1120;
  --ok:#5EEAD4; --warn:#FDA4AF; --warn-bg:#3A1A24;
  --card:#171B2E; --fg:#EEF0FA; --acc:#A5B4FC; --acc2:#A5B4FC; --bad:#FDA4AF; --warn2:#33291A;
  --b-shadow:none; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0E1120; --surface:#171B2E; --paper:#171B2E; --ink:#EEF0FA; --muted:#A3AAC4; --rule:#2A3050;
  --brand:#A5B4FC; --on-brand:#0E1120; --soft:#232A4D; --hazard:#2DD4BF; --stripe:#0E1120;
  --ok:#5EEAD4; --warn:#FDA4AF; --warn-bg:#3A1A24;
  --card:#171B2E; --fg:#EEF0FA; --acc:#A5B4FC; --acc2:#A5B4FC; --bad:#FDA4AF; --warn2:#33291A;
  --b-shadow:none; color-scheme:dark}

body{font-family:var(--f-ui);letter-spacing:-.005em}
.stripe{display:none}                                   /* l'ancien bandeau jaune et noir disparaît */
h1,h2,h3{font-family:var(--f-display);letter-spacing:-.015em}

/* Cartes et panneaux */
.panel,.card,.dir-classe,.dir-voir,.sn-map,.home-cl,.item,.ex,.sem{border-color:transparent;box-shadow:var(--b-shadow)}
.panel,.card{border-radius:22px}
.panel{padding:22px}
.dir-classe,.dir-voir,.sn-map,.item,.ex,.sem{border-radius:16px}
.tile{border-color:transparent;border-radius:20px;box-shadow:var(--b-shadow);padding:20px 18px}
.tile:hover{box-shadow:0 6px 18px rgba(67,56,202,.16);transform:translateY(-1px)}
.tile .ti{border-radius:14px;background:var(--soft);color:var(--brand)}
.tile:first-child .ti,.tile:nth-child(2) .ti{background:var(--brand);color:var(--on-brand)}
.recent-row{border-color:transparent;border-radius:16px;box-shadow:var(--b-shadow)}

/* Boutons : arrondis, nets */
.btn{border-radius:12px;font-weight:600}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand);border-radius:14px;box-shadow:0 2px 8px rgba(67,56,202,.28)}
.btn.primary-s{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn.danger{color:var(--warn);border-color:var(--warn-bg);background:var(--warn-bg)}
.iconbtn{border-color:transparent;box-shadow:var(--b-shadow)}

/* Champs */
textarea,input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=time],select{border-radius:12px;border-color:var(--rule);background:var(--surface)}
textarea:focus,input:focus,select:focus,button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}

/* Onglets en pastilles */
.tabs{background:var(--surface);border-color:transparent;border-radius:22px;padding:4px;box-shadow:var(--b-shadow)}
.tabs button{border-radius:999px;padding:8px 16px}
.tabs button[aria-selected=true]{background:var(--brand);color:var(--on-brand)}
.tabs.srctabs{border-radius:20px}

/* Tableaux plus aérés */
.ctable th{letter-spacing:.04em;font-size:.72rem}
.ctable th,.ctable td{padding:10px 10px;border-bottom-color:var(--rule)}
.ctable.stack tr{border-radius:14px;border-color:transparent;box-shadow:var(--b-shadow)}
.pill{padding:3px 11px;font-weight:700;border:0}
.pill.ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.notice,.msg{border-radius:14px}
.carnet-alert{border-radius:14px;border-left-width:0;box-shadow:inset 4px 0 0 var(--warn)}

/* Barre du bas (téléphone) : flottante et arrondie */
@media (max-width:760px){
  .bottomnav{left:10px;right:10px;bottom:10px;border:0;border-radius:24px;box-shadow:0 8px 24px rgba(17,24,39,.18);padding:6px}
  .bottomnav button{border-radius:18px}
  .bottomnav button[aria-current=page]{background:var(--brand);color:var(--on-brand)}
  .wrap{padding-bottom:110px}
}

/* Page de connexion / espace / apprenant */
.brand{font-family:var(--f-display);font-weight:800;letter-spacing:-.02em}
.profil{border-radius:14px;border-color:var(--rule)}
.profil:has(input:checked){border-color:var(--brand);background:var(--soft)}
a.btn{border-radius:12px}
.msg.info{border-radius:14px}
.carte{border-radius:20px;border-color:var(--brand)}
.chrono{border-radius:14px}
.dir-groupe{border-color:transparent;border-radius:18px;box-shadow:var(--b-shadow);background:var(--surface)}

/* Interface Direction séparée : on ne montre que l'espace direction et la messagerie */
body.mode-dir .tabs.views button:not(#dirNav):not(#msgNav){display:none}
body.mode-dir .bottomnav{display:none}
body.mode-dir .wrap{padding-bottom:32px}
body.mode-dir header.top h1 span::after{content:" Direction";font-weight:700;font-size:.55em;color:var(--muted);margin-left:.5em;letter-spacing:0}
body.mode-dir #dirExit{border-color:var(--rule)}
.dir-mods{display:flex;flex-wrap:wrap}
@media (max-width:760px){
  body.mode-dir .tabs.views{display:none}
  .dir-mods{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}
  .dir-mods button{flex:0 0 auto}
}

/* Grille d'emploi du temps (glisser-déposer) */
.ed-wrap{overflow-x:auto;margin:10px 0;border-radius:16px;background:var(--surface);box-shadow:var(--b-shadow);padding:8px}
.ed-grid{display:grid;grid-template-columns:3.2em repeat(6,minmax(7.5em,1fr));min-width:720px;position:relative}
.ed-cell{border-top:1px solid var(--rule);border-left:1px solid var(--rule);min-height:0}.ed-cell.h{border-top-color:color-mix(in srgb,var(--ink) 18%,transparent)}
.ed-cell:hover{background:var(--soft)}
.ed-h{font-size:.72rem;color:var(--muted);text-align:right;padding-right:6px}
.ed-j{font-weight:700;font-size:.85rem;text-align:center;padding:6px 2px;position:sticky;top:0}
.ed-slot{margin:1px 2px;border-radius:10px;padding:3px 6px;font-size:.74rem;line-height:1.2;overflow:hidden;cursor:grab;color:#111827;border:1px solid rgba(17,24,39,.12);z-index:2;display:flex;flex-direction:column;gap:1px}
.ed-slot b{font-size:.78rem}.ed-slot small{color:#374151;font-size:.7rem}
.ed-slot.conflit{border:2px solid var(--warn)}.ed-slot.sel{outline:2px solid var(--brand)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ed-slot{color:#111827}}

/* Logo (tuile « É ») et carte de bienvenue */
.brand .logo{display:inline-grid;place-items:center;width:1.3em;height:1.3em;border-radius:.34em;background:var(--acc);color:#FFFFFF;margin-right:.38em;font-size:.82em;vertical-align:-.1em}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand .logo{color:#0E1120}}
:root[data-theme="dark"] .brand .logo{color:#0E1120}
.home-hello{background:var(--brand);color:var(--on-brand);border-radius:24px;padding:22px 26px}
.home-hello h2,.home-hello .tagline{color:inherit}.home-hello .tagline{opacity:.9;max-width:60ch}
.hero-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.hero-stats div{background:rgba(255,255,255,.16);border-radius:14px;padding:10px 12px;min-width:74px;flex:1 1 74px}
.hero-stats b{display:block;font-size:1.45rem;font-weight:800;line-height:1.2}.hero-stats small{opacity:.92;font-size:.78rem}
.vide{text-align:center;padding:14px 8px 6px}.vide svg{max-width:150px;height:auto}.vide p{margin:6px 0 0}

/* Bandeau d'indicateurs du tableau de bord (« vue d'ensemble » de la direction) */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:6px 0 16px}
.kpi{background:var(--surface);border-radius:18px;padding:16px 18px;box-shadow:var(--b-shadow)}
.kpi small{display:block;color:var(--muted);font-weight:600;font-size:.8rem}
.kpi b{display:block;font-family:var(--f-display);font-weight:800;font-size:2rem;line-height:1.15;margin-top:2px}
.kpi.hero{background:var(--brand);color:var(--on-brand)}.kpi.hero small{color:inherit;opacity:.85}
.kpi.alerte b{color:var(--warn)}
.bar2{height:10px;background:var(--rule);border-radius:99px;overflow:hidden}.bar2>i{display:block;height:100%;background:var(--brand);border-radius:99px}
.hero-card{background:var(--brand);color:var(--on-brand);border-radius:24px;padding:24px 26px;margin:8px 0 18px}
.hero-card h3{margin:0;font-size:clamp(1.3rem,3.4vw,1.8rem);font-weight:800;line-height:1.2;max-width:34ch}
.hero-card p{margin:6px 0 0;opacity:.9}
.hero-card .btn{background:#FFFFFF;color:#3730A3;border-color:#FFFFFF;margin-top:14px}
.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap}

/* Retouches mobiles : défilement des tableaux, colonne Élève fixe, alertes visibles, marge basse */
.nowrap{white-space:nowrap}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ctable.sticky1 th:first-child,.ctable.sticky1 td:first-child{position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:1px 0 0 var(--rule);white-space:nowrap}
.badge-warn{display:inline-block;margin:6px 0;padding:6px 12px;border-radius:12px;background:#FFEDD5;color:#9A3412;font-weight:700;font-size:.88rem}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .badge-warn{background:#3B2410;color:#FDBA74}}
:root[data-theme="dark"] .badge-warn{background:#3B2410;color:#FDBA74}
@media (max-width:760px){body{padding-bottom:90px}main,.wrap{padding-bottom:90px}}

/* Emploi du temps : zones de diagnostic, pastilles de cellule */
.ed-trou{pointer-events:none;z-index:1;border-radius:6px;margin:1px 2px}
.ed-trou.salle{background:repeating-linear-gradient(45deg,rgba(220,38,38,.28),rgba(220,38,38,.28) 6px,rgba(220,38,38,.08) 6px,rgba(220,38,38,.08) 12px);border:2px solid #DC2626}
.ed-trou.prof{background:repeating-linear-gradient(45deg,rgba(234,88,12,.25),rgba(234,88,12,.25) 6px,rgba(234,88,12,.07) 6px,rgba(234,88,12,.07) 12px);border:2px solid #EA580C}
.ed-chip{display:block;margin:2px 0;padding:2px 7px;border-radius:8px;font-size:.74rem;color:#111827;white-space:nowrap}

/* Sections repliables (fermées par défaut, résumé d'une ligne) */
.dir-sect{background:var(--surface);border-radius:16px;box-shadow:var(--b-shadow);margin:10px 0;padding:0 16px}
.dir-sect>summary{cursor:pointer;padding:14px 0;list-style:none;display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline}
.dir-sect>summary::-webkit-details-marker{display:none}
.dir-sect>summary::before{content:"▸";color:var(--brand);font-size:.95em}
.dir-sect[open]>summary::before{content:"▾"}
.dir-sect>summary .hint{margin:0;font-size:.85rem}
.dir-sect-corps{padding:0 0 14px}

/* Pages limpides : aides longues et champs facultatifs repliés */
details.fold-hint{margin:6px 0}
details.fold-hint>summary{cursor:pointer;color:var(--muted);font-size:.85rem;list-style:none;padding:2px 0}
details.fold-hint>summary::-webkit-details-marker{display:none}
details.fold-hint[open]>summary{margin-bottom:4px}
details.fold-hint>.hint{margin:0 0 4px}
.dir-sect.fold-fac{margin:12px 0}

/* Résumés des sections : texte discret, sans encadré */
.dir-sect>summary .hint{background:none!important;padding:0!important;border:0!important;border-radius:0!important;margin:0}
details.fold-hint>summary{background:none}

/* ---- Retouches 22 oct. : messages doux, menus pliants lisibles, listes déroulantes, onglets défilants ---- */
.notice,.carnet-alert{background:color-mix(in srgb,var(--brand) 8%,var(--surface));color:var(--ink);border:0;border-radius:14px;box-shadow:inset 4px 0 0 var(--brand);padding:12px 14px;font-size:.95rem}
.notice b,.carnet-alert b{color:var(--ink)}
.dir-sect>summary{font-size:1.08rem;padding:16px 0;align-items:center}
.dir-sect>summary::before{content:"+";display:inline-grid;place-items:center;flex:0 0 auto;width:1.6em;height:1.6em;border-radius:50%;background:var(--brand);color:var(--on-brand);font-weight:800;font-size:1rem;line-height:1}
.dir-sect[open]>summary::before{content:"\2212"}
.dir-sect>summary .hint{font-size:.95rem}
details.more>summary{font-size:1.05rem;padding:12px 0}
details.more>summary::before{content:"+";display:inline-grid;place-items:center;width:1.5em;height:1.5em;margin-right:.5em;border-radius:50%;background:var(--brand);color:var(--on-brand);font-size:.95rem;line-height:1}
details.more[open]>summary::before{content:"\2212"}
details.fold-hint>summary{font-size:.98rem;color:var(--brand);font-weight:600}
details.fold-hint>summary::before{content:"+";display:inline-grid;place-items:center;width:1.4em;height:1.4em;margin-right:.45em;border-radius:50%;background:var(--brand);color:var(--on-brand);font-size:.9rem}
details.fold-hint[open]>summary::before{content:"\2212"}
details.dir-voir>summary,details.dir-groupe>summary{cursor:pointer;font-size:1.05rem}
.dir-mods,.srctabs.dir-subs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;max-width:100%}
.dir-mods::-webkit-scrollbar,.srctabs::-webkit-scrollbar{display:none}
.dir-mods button,.srctabs button{flex:0 0 auto;white-space:nowrap}
.srctabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
.combo{position:relative;display:block}
.combo>input{width:100%;padding-right:2.6em}
.combo-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:2.2em;height:2.2em;border:0;border-radius:10px;background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);font-size:1rem;cursor:pointer;line-height:1}
.combo-pop{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);max-height:min(46vh,320px);overflow:auto;background:var(--surface);border-radius:14px;box-shadow:0 12px 32px rgba(15,23,42,.22);padding:6px;display:grid;gap:2px}
.combo-o{font:inherit;text-align:left;border:0;background:none;color:var(--ink);padding:10px 12px;border-radius:10px;cursor:pointer}
.combo-o:hover,.combo-o.sel{background:color-mix(in srgb,var(--brand) 14%,transparent);font-weight:700}

.hint.nt-bloc{display:block;margin:4px 0 0;padding:0;background:none;border:0;line-height:1.35}
.dir-voir>span:first-child{flex:1 1 14em;min-width:0}

.nowrap,.trend-up,.trend-down,.pill,.badge-warn{white-space:nowrap}
.pill{max-width:100%}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.ctable:not(.stack) td:first-child,.ctable:not(.stack) th:first-child{position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:1px 0 0 var(--rule)}

/* ---- Carnet de notes : cartes des élèves, fiche d'un élève ---- */
.cn-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface);border-radius:16px;padding:4px;margin:10px 0;box-shadow:var(--b-shadow)}
.cn-seg button{font:inherit;font-weight:700;border:0;background:none;color:var(--muted);padding:10px;border-radius:12px;cursor:pointer}
.cn-seg button[aria-selected=true]{background:var(--brand);color:var(--on-brand)}
.cn-chips{display:flex;gap:6px;align-items:center;overflow-x:auto;scrollbar-width:none;padding:2px 0 8px}
.cn-chips::-webkit-scrollbar{display:none}
.cn-chip{font:inherit;font-size:.88rem;font-weight:600;white-space:nowrap;border:0;border-radius:99px;padding:7px 13px;background:var(--surface);color:var(--muted);cursor:pointer;box-shadow:var(--b-shadow)}
.cn-chip.on{background:var(--soft);color:var(--brand)}
.cn-chip small{opacity:.75}
.cn-sort{margin-left:auto;font:inherit;font-size:.88rem;font-weight:700;white-space:nowrap;border:0;background:none;color:var(--brand);cursor:pointer;padding:7px 4px}
.cn-search{display:flex;gap:8px;align-items:center;background:var(--surface);border-radius:14px;padding:4px 12px;margin:0 0 10px;box-shadow:var(--b-shadow)}
.cn-search input{border:0;background:none;flex:1;min-width:0;font:inherit;color:inherit;padding:8px 0;outline:none}
.cn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:700px){.cn-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
.cn-card{font:inherit;text-align:left;border:0;background:var(--surface);color:var(--ink);border-radius:16px;padding:11px 13px;box-shadow:var(--b-shadow);cursor:pointer;display:grid;gap:8px}
.cn-l{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--muted)}
.cn-l b{font-size:1.3rem;color:var(--ink)}.cn-l b.low{color:var(--warn)}
.cn-none{color:var(--warn);font-weight:700}
.cn-n{display:flex;gap:8px;align-items:center;min-width:0}
.cn-n i{width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--brand);font-style:normal;font-weight:700;font-size:.78rem;display:grid;place-items:center;flex:0 0 auto}
.cn-n>span{font-weight:700;line-height:1.2;min-width:0;overflow-wrap:anywhere}
.cn-n u{display:block;text-decoration:none;font-weight:500}
.cn-hd{background:linear-gradient(160deg,var(--brand),color-mix(in srgb,var(--brand) 70%,#000));color:var(--on-brand);border-radius:20px 20px 0 0;padding:14px 16px 44px}
.cn-hr{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.cn-hd h3{margin:8px 0 2px;font-size:1.25rem;color:inherit}.cn-hd p{margin:0;opacity:.85;font-size:.9rem}
.cn-back{font:inherit;font-size:1.2rem;border:0;background:rgba(255,255,255,.2);color:inherit;border-radius:12px;width:40px;height:40px;cursor:pointer}
.cn-moy{background:rgba(255,255,255,.2);border-radius:14px;padding:6px 12px;text-align:center}.cn-moy b{font-size:1.6rem;display:block;line-height:1.1}.cn-moy small{font-size:.75rem;opacity:.9}
.cn-sheet{background:var(--bg);border-radius:22px 22px 0 0;margin-top:-30px;padding:14px 4px 10px;position:relative}
.cn-kp{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.cn-kp>div{background:var(--surface);border-radius:14px;padding:8px 10px;font-size:.78rem;color:var(--muted);box-shadow:var(--b-shadow)}
.cn-kp b{display:block;font-size:1rem;color:var(--ink);white-space:nowrap}
.cn-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 6px;border-top:1px solid var(--rule)}
.cn-row:first-of-type{border-top:0}
.cn-row small{display:block;color:var(--muted)}
.cn-row .v{font-size:1.1rem;font-weight:700;white-space:nowrap}.cn-row .v.low{color:var(--warn)}.cn-row .v.none{color:var(--muted)}
.cn-pen{font:inherit;width:36px;height:36px;border:0;border-radius:10px;background:var(--soft);color:var(--brand);cursor:pointer;font-size:1rem}

#carnetTable td.c-nom,#carnetTable th:first-child{min-width:9.5em;white-space:nowrap}

.cn-card[hidden]{display:none!important}

.cn-l2{flex-direction:column;align-items:flex-start;gap:1px}

/* ---- Informations : signe « i » et texte visible (plus de « + » quand rien n'est caché) ---- */
.info{display:flex;gap:10px;align-items:flex-start;background:color-mix(in srgb,var(--brand) 9%,var(--surface));border-radius:14px;padding:10px 12px;margin:8px 0;box-shadow:inset 4px 0 0 var(--brand)}
.info-i{flex:0 0 auto;width:1.5em;height:1.5em;border-radius:50%;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font:italic 700 .95rem Georgia,serif;margin-top:1px}
.info>.hint{margin:0;color:var(--ink);font-size:.92rem;line-height:1.45;background:none;padding:0;border:0}
.info.dir-note,.field+.info{background:color-mix(in srgb,#D97706 14%,var(--surface));box-shadow:inset 4px 0 0 #D97706}

.note-zone{background:color-mix(in srgb,#D97706 14%,var(--surface));border-radius:14px;padding:10px 12px;box-shadow:inset 4px 0 0 #D97706}
.note-zone>span{font-weight:700;color:var(--ink)}
.note-zone textarea{background:var(--surface)}

tr[hidden]{display:none!important}

/* ---- Téléphone en portrait : champs empilés, bouton d'enregistrement toujours visible ---- */
@media (max-width:520px){
  .row2{grid-template-columns:1fr}
  .row2 .row2{grid-template-columns:1fr 1fr}
  .modal-foot{position:sticky;bottom:0;z-index:3;background:var(--surface);padding:10px 0 calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 14px rgba(15,23,42,.08)}
  .modal-box{max-width:100%}
}

/* ---- Cadre de l'année sur téléphone : une matière = 3 lignes lisibles ---- */
@media (max-width:760px){
  .dir-mat.dir-mat{grid-template-columns:1fr 1fr 1fr auto;gap:6px;padding:8px 0;border-top:1px solid var(--rule)}
  .dir-mat.dir-mat>:nth-child(1){grid-column:1 / 4;grid-row:1}
  .dir-mat.dir-mat>:nth-child(2){grid-column:1;grid-row:2}
  .dir-mat.dir-mat>:nth-child(3){grid-column:2;grid-row:2}
  .dir-mat.dir-mat>:nth-child(4){grid-column:3;grid-row:2}
  .dir-mat.dir-mat>:nth-child(5){grid-column:1 / 5;grid-row:3}
  .dir-mat.dir-mat>:nth-child(6){grid-column:4;grid-row:1}
}

#cohBanner,#cohBannerAff{margin-bottom:8px}

@media (max-width:520px){.sn-list .prog-row{grid-template-columns:1fr!important}.sn-list .prog-row .pa{display:flex;gap:6px;flex-wrap:wrap}}

.dm-f{display:block;margin:0}.dm-f>span{display:none}
@media (max-width:760px){.dm-f>span{display:block;font-size:.74rem;color:var(--muted);margin:0 0 2px}}

.ecm{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--rule)}.ecm:first-child{border-top:0}.ecm small{display:block;color:var(--muted);font-size:.82rem}.ecm label{display:grid;gap:3px;font-size:.74rem;color:var(--muted);text-align:center;margin:0}.ecm input.ecc{width:4.6em;text-align:center}

/* ---- Accueil dynamique : l'emploi du temps du jour ---- */
#homeDash{margin:6px 0 14px}
.ds-now{background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 88%,#fff),var(--brand));color:var(--on-brand);border-radius:22px;padding:16px 16px 14px;margin:0 0 12px;box-shadow:var(--b-shadow)}
.ds-st{display:inline-block;background:rgba(255,255,255,.22);border-radius:99px;padding:3px 11px;font-size:.8rem;font-weight:700}
.ds-now h3{margin:8px 0 2px;font-size:1.35rem;color:inherit}.ds-now p{margin:0;opacity:.92}
.ds-bar{height:6px;background:rgba(255,255,255,.28);border-radius:9px;margin:12px 0 4px;overflow:hidden}.ds-bar i{display:block;height:100%;background:#fff;border-radius:9px}
.ds-small{font-size:.82rem!important}
.ds-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.ds-acts button{font:inherit;font-weight:700;border:0;border-radius:14px;padding:12px 6px;cursor:pointer;background:#fff;color:#3730A3;min-height:46px}
.ds-acts button.full{grid-column:1 / 3;background:rgba(255,255,255,.2);color:inherit}
.ds-sec{font-weight:700;margin:6px 2px;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.ds-tl{background:var(--surface);border-radius:18px;padding:2px 12px;box-shadow:var(--b-shadow);margin-bottom:12px}
.ds-it,.ds-row{font:inherit;color:inherit;text-align:left;background:none;border:0;width:100%;cursor:pointer;display:grid;grid-template-columns:52px 1fr auto;gap:10px;padding:12px 0;border-top:1px solid var(--rule);align-items:center}
.ds-row{grid-template-columns:1fr auto}
.ds-it:first-child,.ds-row:first-child{border-top:0}
.ds-it.sel{background:color-mix(in srgb,var(--brand) 7%,transparent);margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:12px}
.ds-h{font-weight:700;font-size:.88rem}.ds-h small,.ds-t small,.ds-row small{display:block;color:var(--muted);font-weight:500}
.ds-t b{display:block}
.ds-bd{white-space:nowrap;border-radius:99px;padding:3px 10px;font-size:.78rem;font-weight:700}
.ds-bd.ok{background:color-mix(in srgb,var(--ok) 16%,var(--surface));color:var(--ok)}.ds-bd.now{background:var(--soft);color:var(--brand)}.ds-bd.next{background:color-mix(in srgb,var(--muted) 14%,var(--surface));color:var(--muted)}.ds-bd.warn{background:color-mix(in srgb,#D97706 18%,var(--surface));color:#B45309}
.ds-tag{display:inline-block;font-size:.68rem;font-weight:700;border-radius:6px;padding:1px 6px;margin-left:4px;vertical-align:2px;background:var(--soft);color:var(--brand)}.ds-tag.a{background:color-mix(in srgb,#2563EB 14%,var(--surface));color:#1D4ED8}
.ds-note{background:color-mix(in srgb,#D97706 12%,var(--surface));border-radius:14px;padding:10px 12px;margin:0 0 12px;box-shadow:inset 4px 0 0 #D97706;font-size:.9rem}
.ds-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.ds-card{font:inherit;color:inherit;text-align:left;border:0;background:var(--surface);border-radius:16px;padding:12px;box-shadow:var(--b-shadow);cursor:pointer;display:block}
.ds-card b{display:block;margin:6px 0 2px}.ds-card small{color:var(--muted)}
.ds-ic{width:34px;height:34px;border-radius:10px;background:var(--brand);color:var(--on-brand);display:grid;place-items:center}
.ds-empty{background:var(--surface);border-radius:20px;padding:18px 16px;text-align:center;box-shadow:var(--b-shadow);margin:0 0 12px}
.ds-big{font-size:2.1rem}.ds-empty h3{margin:6px 0 4px}.ds-empty p{margin:0;color:var(--muted)}
.ds-btn{font:inherit;font-weight:700;border:0;border-radius:14px;padding:12px 18px;background:var(--brand);color:var(--on-brand);margin-top:12px;cursor:pointer}
.ds-week{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:14px}.ds-week div{background:var(--bg);border-radius:10px;padding:6px 2px;font-size:.74rem;font-weight:700}.ds-week div.on{background:var(--brand);color:var(--on-brand)}.ds-week small{display:block;font-weight:500;opacity:.85}
#homeOutils{margin-top:6px}
#viewAccueil .home-hello{background:none!important;color:var(--ink)!important;padding:2px 4px!important;margin:0 0 6px!important;box-shadow:none!important;border-radius:0!important}
#viewAccueil .home-hello h2{font-size:1.25rem;margin:0;color:var(--ink)}
#viewAccueil .home-hello p{margin:0;color:var(--muted);font-size:.9rem;opacity:1}
.ds-it.sel{margin:0 -8px;padding-left:8px;padding-right:8px}

.ds-cl{background:none!important;box-shadow:none!important;padding:0 2px!important;margin:0 0 10px!important}.ds-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ds-link{font:inherit;font-size:.86rem;font-weight:700;border:0;background:none;color:var(--brand);cursor:pointer;padding:4px 4px}
