/* École des Riches V8.5 — correctifs de stabilité et finitions */

/* Les interactions désactivées ne doivent plus sembler cliquables. */
button:disabled,[aria-disabled="true"]{pointer-events:none!important;cursor:not-allowed!important;opacity:.48!important;filter:saturate(.65)}
.pn-student.locked{background:color-mix(in srgb,var(--pn-bg) 45%,var(--pn-card))!important}
.pn-student.locked .pn-att-actions{opacity:.72}

/* Messages d'état cohérents pour les pages en lecture seule / appel terminé. */
.pn-readonly-banner{display:flex;align-items:center;gap:8px;margin:10px 0 14px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--pn-accent) 26%,var(--pn-line));border-left:4px solid var(--pn-accent);border-radius:12px;background:color-mix(in srgb,var(--pn-accent) 7%,var(--pn-card));color:var(--pn-text);font-size:.76rem;line-height:1.4;box-shadow:0 2px 10px rgba(0,0,0,.025)}
.pn-readonly-banner.success{border-left-color:#2d9a68;background:color-mix(in srgb,#2d9a68 8%,var(--pn-card))}

/* Modales et formulaires : même rendu partout, sans débordements. */
dialog::backdrop{background:rgba(12,27,39,.46);backdrop-filter:blur(2px)}
.pn-modal{overflow:hidden!important}.pn-modal-body{overflow:auto!important;overscroll-behavior:contain!important}.pn-form{align-items:start!important}.pn-field{min-width:0!important}.pn-field input,.pn-field select,.pn-field textarea{width:100%!important;box-sizing:border-box!important}.pn-form-actions{gap:8px!important;flex-wrap:wrap!important}
.pn-form-actions .pn-btn{min-height:39px}

/* Barres d'outils : éviter que les sélecteurs ou boutons se chevauchent. */
.pn-toolbar{align-items:center!important;gap:8px!important;flex-wrap:wrap!important}.pn-toolbar select,.pn-toolbar input{max-width:100%!important}.pn-toolbar .grow{flex:1 1 180px!important}

/* Emploi du temps : interactions plus nettes et aucun bloc ne sort de sa colonne. */
.hybrid-old-timetable .schedule-day{isolation:isolate}.hybrid-course{z-index:5!important;max-width:calc(100% - 8px)!important}.hybrid-course:focus-visible{z-index:12!important}.schedule-recess-block,.schedule-lunch-block{z-index:2!important;pointer-events:none}.schedule-vacation-block{pointer-events:none}.schedule-brand{overflow:hidden}.schedule-brand img{flex:none}

/* Les tableaux restent lisibles sur petits écrans. */
.pn-table-wrap{overflow:auto!important;overscroll-behavior:contain}.pn-table th{position:sticky;top:0;z-index:2}

/* Listes et cartes : éviter les coupures de texte et les actions qui sortent. */
.pn-row{min-width:0!important}.pn-row>div{min-width:0!important}.pn-row strong,.pn-row small{overflow-wrap:anywhere}.pn-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap!important}.pn-action-card{min-width:0!important}.pn-action-card strong,.pn-action-card small{overflow-wrap:anywhere}

/* Sidebar classique : un seul scroll et zone cliquable stable. */
.portal-sidebar{overscroll-behavior-y:contain!important}.portal-sidebar nav a{flex:none!important}.portal-sidebar nav a:focus-visible{outline-offset:-2px!important}

/* Paramètres : les contrôles de couleur ne doivent pas s'écraser. */
.pn-setting-row>input[type="color"]{width:52px!important;min-width:52px!important;height:36px!important;padding:2px!important}.pn-theme{cursor:pointer!important}

@media(max-width:980px){
  .pn-toolbar{flex-wrap:wrap!important;overflow:visible!important}.pn-toolbar>*{flex:1 1 155px!important}.pn-toolbar .pn-btn{flex:0 1 auto!important}.pn-toolbar .grow{display:none!important}
  .pn-readonly-banner{font-size:.72rem;margin-inline:2px}
  .pn-modal-body{max-height:78vh!important}
}
@media(max-width:620px){
  .pn-toolbar>*{flex:1 1 100%!important}.pn-toolbar .pn-btn{flex:1 1 auto!important}.pn-toolbar input[type="date"],.pn-toolbar select{width:100%!important}
  .pn-att-actions button{min-height:38px!important}.pn-readonly-banner{padding:10px 11px!important}
  .schedule-brand{gap:9px!important}.schedule-brand strong{font-size:.9rem!important}.schedule-brand span{font-size:.67rem!important}
}

@media print{
  body.pn-print-timetable dialog,body.pn-print-timetable .pn-toast,body.pn-print-timetable .toast{display:none!important}
}

/* Sur téléphone on garde le VRAI emploi du temps, dans une zone défilable horizontalement.
   L'ancien CSS masquait .schedule-scroll sous 760 px. */
@media(max-width:760px){
  .hybrid-old-timetable .hybrid-schedule-scroll,.hybrid-schedule-scroll{display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-inline:contain!important;scrollbar-width:thin}
  .hybrid-old-timetable .schedule-week{display:grid!important}
}
