/* Couche ergonomique additive. Aucun changement des règles métier. */
.cf-mobile-nav,.cf-mobile-menu{display:none}
.cf-mobile-table-scroll{max-width:100%;overflow:auto;overscroll-behavior-x:contain}
@media screen and (max-width:760px){
 html{scroll-padding-bottom:90px}
 body{--cf-mobile-bottom:calc(68px + env(safe-area-inset-bottom,0px));overflow-wrap:break-word}
 body.cf-mobile-ready{padding-bottom:var(--cf-mobile-bottom)}
 body .layout{width:100%;max-width:100%;box-sizing:border-box;padding:12px}
 body .layout :where(.col,.card,.panel,.grid>*,.row>*){min-width:0;box-sizing:border-box}
 body .layout .col{flex-basis:100%}
 body .layout :where(input:not([type=checkbox]):not([type=radio]),select,textarea){max-width:100%;box-sizing:border-box;font-size:16px;min-height:44px}
 body :where(.btn,.iconbtn,.tab,.tools-subtab,button:not(.cf-mobile-menu button)){min-height:44px;white-space:normal;height:auto}
 body :where(input[type=checkbox],input[type=radio]){min-width:20px;min-height:20px}
 body .topbar{flex-wrap:wrap;gap:10px;padding:12px;padding-top:max(12px,env(safe-area-inset-top));height:auto}
 body .topbar__brand{min-width:0;flex:1}
 body .topbar__institution{width:100%;order:3;text-align:left;min-width:0}
 body .topbar__right{flex-wrap:wrap;gap:8px;max-width:100%}
 body.cf-mobile-ready .topbar__right{display:none}
 body .brand__sub{font-size:11px}
 body .topbar__school{white-space:normal;font-size:12px}
 body .topbar__space{white-space:normal;font-size:12px}
 body .cf-contextbar{padding:10px 12px;position:static}
 body.cf-mobile-ready .tabs.cf-mobile-main-tabs{display:none!important}
 body.cf-mobile-ready .cf-page-navigation{display:none}
 body .tabs-categories{max-width:100%}
 body :where(.modal__card,.modal__content,.modal-overlay>.modal,dialog){box-sizing:border-box;min-width:0!important;width:calc(100% - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 32px)!important;overflow:auto;overscroll-behavior:contain}
 body .modal-overlay{padding:12px}
 body :where(.modal-head,.modal__head,.modal-footer,.modal__footer){flex-wrap:wrap;gap:8px}
 body :where(img,video,canvas){max-width:100%}
 body video{object-fit:contain}
 body :where(.table-wrap,.table-responsive,.table-scroll){max-width:100%;overflow:auto}
 body .cf-mobile-table-scroll{border:1px solid rgba(148,163,184,.3);border-radius:12px;margin-block:12px}
 body .cf-mobile-table-scroll:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
 body .cf-mobile-table-scroll table{margin:0;min-width:100%;width:max-content;max-width:none}
 body .cf-mobile-table-scroll :where(td,th){white-space:normal;max-width:280px;overflow-wrap:anywhere}
 body .cf-mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;inset:auto 0 0;z-index:9000;background:#fff;color:#102e50;border-top:1px solid #d7e0eb;box-shadow:0 -6px 24px #102e5012;padding:5px max(4px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));box-sizing:border-box}
 .cf-mobile-nav :where(a,button){display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-height:56px;min-width:0;border:0;border-radius:10px;background:transparent;color:inherit;text-decoration:none;font:600 11px/1.2 system-ui;text-align:center;padding:4px}
 .cf-mobile-nav :where(a,button):focus-visible{outline:3px solid #2563eb}
 .cf-mobile-nav .cf-mobile-icon{font-size:22px;line-height:1.1}
 .cf-mobile-nav [aria-current=page]{background:#eaf1fc;color:#174e92}
 .cf-mobile-count{background:#cf2439;color:white;border-radius:20px;padding:2px 5px;font-size:10px;position:absolute;margin-left:28px;margin-top:-30px}
 body .cf-mobile-menu[open]{display:flex;flex-direction:column;padding:16px;border:0;border-radius:20px;background:#fff;color:#102e50;box-shadow:0 16px 60px #001b4160}
 .cf-mobile-menu::backdrop{background:#061d3dcc}
 .cf-mobile-menu header{display:flex;align-items:center;justify-content:space-between;gap:8px}
 .cf-mobile-menu h2{margin:0;font:700 20px system-ui}
 .cf-mobile-menu input{width:100%;margin:12px 0;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
 .cf-mobile-menu-list{overflow:auto;min-height:0;overscroll-behavior:contain}
 .cf-mobile-menu-list h3{font:700 12px system-ui;color:#48617e;margin:18px 8px 6px}
 .cf-mobile-menu button,.cf-mobile-menu-list a{min-height:44px;padding:12px;border:1px solid #d7e0eb;border-radius:10px;background:#f6f9fd;color:#102e50;font:600 14px/1.4 system-ui;text-decoration:none;white-space:normal;text-align:left;display:block;width:100%;box-sizing:border-box;margin:4px 0}
 .cf-mobile-menu header button{width:auto;margin:0}
 body .cf-chat-dock{bottom:calc(var(--cf-mobile-bottom) + 10px);right:12px;max-width:calc(100vw - 24px)}
 body .cf-chat-panel{width:calc(100vw - 24px);max-width:100%;max-height:calc(100dvh - var(--cf-mobile-bottom) - 30px)}
 body #toast{max-width:calc(100vw - 24px);bottom:calc(var(--cf-mobile-bottom) + 12px);box-sizing:border-box;white-space:normal}
 body.cf-mobile-keyboard .cf-mobile-nav{display:none}
 body.cf-mobile-keyboard{padding-bottom:0}
 body .eph-important-panel{max-width:calc(100vw - 24px);bottom:calc(var(--cf-mobile-bottom) + 12px)}
}
@media print{.cf-mobile-nav,.cf-mobile-menu{display:none!important}.cf-mobile-table-scroll{overflow:visible;border:0}body.cf-mobile-ready{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){.cf-mobile-menu,.cf-mobile-nav{scroll-behavior:auto;transition:none}}
.cf-mobile-menu [hidden]{display:none!important}
@media screen and (max-width:760px){
 body .layout :where(.groups-grid,.rh-main-grid,.rh-metrics,.rh-grid){grid-template-columns:minmax(0,1fr)}
 body .layout pre{max-width:100%;overflow:auto}
 body .layout :where(.row,.toolbar,.actions){flex-wrap:wrap}
}
@media screen and (max-width:760px){
 .index-main,.staff-public-scan{box-sizing:border-box;max-width:100%;padding-inline:12px}
 .staff-public-scan video,.index-main video{max-width:100%;object-fit:contain}
 .staff-public-scan :where(button,input,select),.index-main :where(button,input,select){min-height:44px;font-size:16px;max-width:100%;box-sizing:border-box}
 body .layout :where(.cf-home__welcome,.cf-home__main,.cf-home__content-grid,.cf-meet-workspace,.cf-meet-form-grid,.cf-meet-search-grid){grid-template-columns:minmax(0,1fr)}
 body .layout [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
}
@media screen and (max-width:760px){
 body:not(.cf-mobile-ready):has(.cf-page-navigation){padding-bottom:calc(90px + env(safe-area-inset-bottom))}
 body:not(.cf-mobile-ready) .cf-page-navigation{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));justify-content:center;z-index:9000;box-sizing:border-box}
 body .cf-page-navigation a{min-height:44px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex:1;font-size:13px}
}
@media screen and (max-width:760px){
 body :where(.btn,.iconbtn,.tab,.tools-subtab,button){min-width:44px;touch-action:manipulation}
 body [aria-busy=true]{cursor:progress}
 body .layout :where(h1,h2,h3,p,a,label){overflow-wrap:anywhere}
 body .layout :where(.fc,.timetable,.edt-grid){max-width:100%;overflow:auto}
}
