/* Plannings ULIS — compléments (octobre 2026) : temps de la semaine, EDT visuel, liens de partage */

/* ---------- temps de la semaine ---------- */
table.hrs{max-width:760px}
table.hrs td.n,table.hrs th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.hrs td:first-child{white-space:nowrap}
table.hrs tr.tot td{border-top:1px solid var(--rule);font-weight:600}
table.hrs tr.tot td.muted{font-weight:400}
table.hrs.recap{max-width:none}
table.hrs.recap td,table.hrs.recap th{padding:6px 8px}
.pps{margin-top:10px;font-size:14px}
.pps label{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.pps input{width:4.5em;text-align:right}
.ecart{font-size:14px}
.ecart.plus{color:var(--warn)}
.ecart.moins{color:var(--abs)}
.liste .it.rec{border:1px dashed var(--rule);margin-bottom:6px}
.liste .it.rec.on{border-color:var(--ink)}

/* ---------- emploi du temps visuel : noir et blanc, sans aplat ----------
   Le lieu se lit au cadre : épais pour l'ULIS, tirets pour une prise en charge
   ou une absence, fin et gris pour les récréations et la pause de midi. */
.visw{padding:10px;min-width:0}
.vis{display:grid;grid-template-columns:34px repeat(4,minmax(150px,1fr));column-gap:8px;row-gap:6px;background:#fff;min-width:680px;color:#000}
.vis .vh{border:1px solid #000;border-radius:5px;text-align:center;padding:5px 4px;font-family:"Source Serif 4",Georgia,serif;font-weight:600;font-size:17px}
.vis .vh small{font-family:"Source Sans 3",sans-serif;font-weight:400;font-size:13px}
.vis .ax{position:relative}
.vis .ax span{position:absolute;left:0;font-size:12px;color:#444;transform:translateY(-50%);font-variant-numeric:tabular-nums}
.vis .col{position:relative}
.vis .col .hl{position:absolute;left:0;right:0;border-top:1px dotted #bbb}
.vis .col.off{border:1px dashed #000;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:16px}
.vis .b{position:absolute;left:0;right:0;background:#fff;color:#000;border:1.5px solid #000;border-radius:5px;padding:4px 8px;overflow:hidden;display:flex;gap:8px;align-items:flex-start}
.vis .b.k-ulis{border-width:3px}
.vis .b.k-pec,.vis .b.k-abs{border-style:dashed}
.vis .b.k-pause,.vis .b.k-midi{border:1px solid #aaa;color:#555}
.vis .b .ic{flex:none;width:30px;height:30px;margin-top:2px}
.vis .b .tx{min-width:0}
.vis .b .lb{font-weight:700;font-size:16px;line-height:1.15}
.vis .b .sb{font-size:12.5px;line-height:1.25;margin-top:2px}
.vis .b.m{align-items:center;padding:1px 8px}
.vis .b.m .ic{width:18px;height:18px;margin:0}
.vis .b.m .lb{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vis .b.s{align-items:center;padding:0 8px}
.vis .b.s .lb{font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vis .b.xs{padding:0;border-width:1px}
.vis .b.k-pause .lb,.vis .b.k-midi .lb{font-weight:400}

/* ---------- colonne des heures fixe quand on fait défiler un tableau de côté ----------
   (planning, ULIS seule, journées, fiches élève et AESH, emploi du temps visuel, pages partagées) */
table.pl tr>:first-child,table.edt tr>:first-child,table.hrs.recap tr>:first-child{position:sticky;left:0;z-index:2;background:var(--white);box-shadow:inset -1px 0 0 var(--rule)}
table.pl thead tr>:first-child,table.edt thead tr>:first-child,table.hrs.recap thead tr>:first-child{background:var(--soft);z-index:3}
table.pl tr.midi>:first-child,table.edt tr.midi>:first-child{background:var(--soft)}
table.pl tr>:first-child,table.edt tr>:first-child{border-right:0}
/* à l'écran, bordures séparées : chaque case garde ses traits, la colonne fixe reste nette */
@media screen{
  table.pl,table.edt,table.hrs.recap{border-collapse:separate;border-spacing:0}
  table.edt th,table.edt td{border:0;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
}
table.edt tr>th:first-child{width:108px!important}
table.hrs.recap td:first-child,table.hrs.recap th:first-child{white-space:normal;min-width:110px}
.vis>div:first-child,.vis .ax{position:sticky;left:0;z-index:3;background:#fff}
.vis .ax{box-shadow:4px 0 0 #fff}
.visw{padding-left:0}
.vis{grid-template-columns:40px repeat(4,minmax(150px,1fr))}
.vis .ax span{left:6px}
/* sur téléphone, c'est le tableau qui défile, pas toute la page (sinon la colonne fixe ne sert à rien) */
.el>*{min-width:0}
@media (max-width:900px){.el{grid-template-columns:minmax(0,1fr)}}

/* ---------- liens de partage ---------- */
.part{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;margin-top:10px}
.part .qr{width:170px;min-height:60px;flex:none}
.part .qr svg{width:170px;height:170px;display:block}
.part .partinfo{flex:1;min-width:240px}
.part .lien{width:100%;font-size:13px;color:var(--muted)}
.part .hint{font-size:13.5px;color:var(--muted);margin-top:6px}
.part a.btn{text-decoration:none;color:inherit}

/* ---------- impression et PDF : noir et blanc, peu d'encre ----------
   Aucun fond, texte noir, cases bordées de noir. L'écran garde ses couleurs. */
.qrpage{text-align:center;padding-top:30mm}
.qrpage .pt{font-size:26px}
.qrpage .ps{font-size:14px}
.qrgrand svg{width:80mm;height:80mm;margin:10mm auto 6mm;display:block}
.qrurl{font-size:10px;color:#555;word-break:break-all}

.pdfpage:not(.couleur) *,.pdfpage:not(.couleur){background:none!important;color:#000!important;box-shadow:none!important}
.pdfpage:not(.couleur) .meta,.pdfpage:not(.couleur) small,.pdfpage:not(.couleur) .ps,.pdfpage:not(.couleur) .muted{color:#444!important}
.pdfpage:not(.couleur) table th,.pdfpage:not(.couleur) table td{border:1px solid #000!important}
.pdfpage:not(.couleur) .g.cl{border-left-color:#000!important}
.pdfpage:not(.couleur) .g.ulis{border-left:3px solid #000!important;padding-left:5px!important;margin-left:0!important}
.pdfpage:not(.couleur) .g.pec,.pdfpage:not(.couleur) .g.pecx{border-left:2px solid #000!important;padding-left:5px!important;margin-left:0!important}
.pdfpage table tr>:first-child{position:static!important}
/* journée par élève : un moment par ligne, sinon les horaires se collent au moment d'avant */
.pdfpage .puce{display:block!important;margin:0 0 2px!important;padding:0!important;border:0!important}
@media print{
  #printArea:not(.couleur) *,#printArea:not(.couleur){background:none!important;color:#000!important;box-shadow:none!important}
  #printArea:not(.couleur) .meta,#printArea:not(.couleur) small,#printArea:not(.couleur) .ps,#printArea:not(.couleur) .muted,#printArea:not(.couleur) .qrurl{color:#444!important}
  #printArea:not(.couleur) table th,#printArea:not(.couleur) table td{border:1px solid #000!important}
  #printArea:not(.couleur) table.edt td.ulis{border-width:2px!important}
  #printArea:not(.couleur) .g.cl{border-left-color:#000!important}
  #printArea:not(.couleur) .g.ulis{border-left:3px solid #000!important;padding-left:5px!important;margin-left:0!important}
  #printArea:not(.couleur) .g.pec,#printArea:not(.couleur) .g.pecx{border-left:2px dashed #000!important;padding-left:5px!important;margin-left:0!important}
  #printArea.couleur *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #printArea table tr>:first-child{position:static!important}
  #printArea .puce{display:block!important;margin:0 0 2px!important;padding:0!important;border:0!important}
  #printArea .vis .b.k-pause,#printArea .vis .b.k-midi{color:#555!important}
  #printArea .vis .ax span{color:#444!important}
  .vis{min-width:0;break-inside:avoid}
  .vis-page{break-inside:avoid}
  .vis-page .pt{font-size:20px}
  .vis-page .ps{font-size:12px;margin-bottom:6px}
}

/* ---------- page de consultation (voir.html) ---------- */
body.voir main{max-width:1100px}
.voir .vbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 12px}
.voir .vbar h2{font-size:18px}
.voir .vnote{font-size:14px;color:var(--muted);max-width:760px}
.voir .vmaj{font-size:13px;color:var(--muted);margin-top:14px}
.voir .nm{cursor:default}
.voir .brand{white-space:normal}
@media (min-width:561px){table.pl th.t{width:108px}}
