/* MyJiu v50.0.24 - correctifs interface sans migration.
   Objectifs: logo login toujours visible, calendriers responsive, actions de cours lisibles. */
:root{--myjiu-action-gap:.5rem;--myjiu-soft-border:#d9e1e7;--myjiu-teal:#078b8f;}
.brand-mark img,.auth-logo img,.login-logo img,.guest-logo img{display:block;width:100%;height:100%;object-fit:contain;}
.auth-logo,.login-logo,.guest-logo{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border:1px solid var(--myjiu-soft-border);border-radius:14px;background:#fff;overflow:hidden;}
.auth-logo img[src=""],.login-logo img[src=""],.guest-logo img[src=""]{display:none;}
/* fallback visuel si un vieux template garde une image absente */
.auth-logo:empty,.login-logo:empty,.guest-logo:empty{background:linear-gradient(135deg,#f6ffff,#fff);}
.auth-logo:empty::before,.login-logo:empty::before,.guest-logo:empty::before{content:"✓";font-weight:800;color:var(--myjiu-teal);font-size:1.45rem;}
/* Tables d'administration: les actions restent groupées et lisibles. */
.table td:last-child,.table th:last-child{white-space:nowrap;}
.table td .btn,.table td form .btn{margin:.15rem;}
.table td form{display:inline-flex;margin:0;vertical-align:middle;}
.actions,.table-actions,.row-actions,.course-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--myjiu-action-gap);}
.course-actions form,.table-actions form,.row-actions form{margin:0;}
.table .form-switch,.table .switch,.table .status-switch{display:inline-flex;align-items:center;justify-content:center;margin:.15rem .35rem .15rem 0;vertical-align:middle;}
@media (max-width: 900px){
  .table-responsive table,.table-responsive .table{min-width:760px;}
  .actions,.table-actions,.row-actions,.course-actions{justify-content:flex-start;}
}
/* Calendrier semaine: 7 colonnes sur desktop sans couper dimanche. */
.week-calendar,.attendance-week,.week-grid,.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;width:100%;max-width:100%;overflow:visible;}
.week-calendar>* ,.attendance-week>* ,.week-grid>* ,.calendar-week>*{min-width:0;}
.week-day,.calendar-day,.attendance-day{min-width:0;overflow:hidden;}
.week-day-card,.day-card,.calendar-day-card,.attendance-day-card{min-width:0;overflow:hidden;}
.course-card,.session-card,.attendance-session{max-width:100%;overflow-wrap:anywhere;}
.attendance-toolbar,.week-toolbar,.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;}
.attendance-toolbar .btn,.week-toolbar .btn,.calendar-toolbar .btn{white-space:nowrap;}
@media (max-width: 1100px){.week-calendar,.attendance-week,.week-grid,.calendar-week{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (max-width: 720px){.week-calendar,.attendance-week,.week-grid,.calendar-week{grid-template-columns:repeat(2,minmax(0,1fr));}.attendance-toolbar,.week-toolbar,.calendar-toolbar{align-items:stretch}.attendance-toolbar .btn,.week-toolbar .btn,.calendar-toolbar .btn{flex:1 1 auto;}}
@media (max-width: 460px){.week-calendar,.attendance-week,.week-grid,.calendar-week{grid-template-columns:1fr;}}
/* Empêche la barre horizontale héritée autour des calendriers quand elle n'est pas nécessaire. */
.calendar-scroll,.week-scroll,.attendance-scroll{overflow-x:visible;max-width:100%;}
@media (max-width: 900px){.calendar-scroll,.week-scroll,.attendance-scroll{overflow-x:auto;}}

/* v50.0.39 - interrupteur compact type iPhone, visible/lumineux partout */
.status-switch-button{position:relative;display:inline-flex;align-items:center;width:42px;height:24px;padding:0;border:0;border-radius:999px;cursor:pointer;vertical-align:middle;transition:background-color .18s ease,box-shadow .18s ease;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.08)}
.status-switch-button.is-on{background:#188a43;box-shadow:0 0 0 2px rgba(24,138,67,.12),0 0 10px rgba(24,138,67,.20)}
.status-switch-button.is-off{background:#b8bec6;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.08)}
.status-switch-button .status-switch-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28);transition:transform .18s ease}
.status-switch-button.is-on .status-switch-knob{transform:translateX(18px)}
.status-switch-button:focus-visible{outline:3px solid rgba(13,110,253,.28);outline-offset:2px}
.status-switch-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}

/* v50.0.69 - uniformisation des switches actif/inactif */
.form-switch .form-check-input{cursor:pointer;background-color:#b8bec6;border-color:#b8bec6}
.form-switch .form-check-input:checked{background-color:#188a43;border-color:#188a43}
.form-switch .form-check-input:focus{border-color:#8fa0b2;box-shadow:0 0 0 .2rem rgba(24,138,67,.12)}
