:root{--brand:#075a9f;--brand2:#03477f;--ink:#17324d;--bg:#f3f6f8;--ok:#087a63;--warn:#e66d18;--shadow:0 8px 24px rgba(15,62,96,.09)}
.institution-bar{min-height:88px;padding:10px max(22px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:26px;background:#fff;border-bottom:4px solid #ff7417}.institution-bar img{display:block;width:210px;height:64px;object-fit:contain;object-position:left center}.institution-copy{display:grid;gap:4px;text-align:right;color:#075a9f}.institution-copy strong{font-size:18px}.institution-copy span{font-size:13px;color:#64748b}.topbar{top:0;background:#064f8c}.brand-square{width:34px;height:34px;display:grid;place-items:center;background:#ff7417;color:#fff;border-radius:4px;font-weight:900}.hero{background:linear-gradient(120deg,#064f8c,#0871bb);border-radius:8px;border-left:7px solid #ff7417}.card,.panel{border-radius:8px}.card{border-top:4px solid #ff7417}.btn{border-radius:4px}.btn.primary{background:#075a9f}.btn.primary:hover{background:#03477f}.btn.secondary{background:#edf3f7;color:#075a9f;border:1px solid #c9d9e5}.eyebrow{color:#e66d18}.login{border-top:5px solid #ff7417}.login-brand-mark{width:64px;height:64px;margin:0 auto 18px;display:grid;place-items:center;background:#075a9f;color:#fff;border:4px solid #ff7417;border-radius:8px;font-size:19px;font-weight:900;letter-spacing:.04em}.field input:focus,.field textarea:focus,.field select:focus{outline:3px solid rgba(7,90,159,.15);border-color:#075a9f}.score{color:#075a9f}
@media(max-width:650px){.institution-bar{min-height:74px;padding:8px 14px}.institution-bar img{width:150px;height:52px}.institution-copy span{display:none}.institution-copy strong{font-size:13px}.topbar{top:0}}
.assigned-access{margin-top:24px}.assigned-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.assigned-heading h2{margin:4px 0 0}.assigned-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.assigned-course{border:1px solid #d9e4ec;border-radius:7px;background:#f9fbfc;padding:16px}.assigned-course-title{display:flex;align-items:center;gap:9px;color:#075a9f}.course-dot{width:10px;height:10px;border-radius:50%;flex:none}.assigned-course ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.assigned-course li{display:flex;justify-content:space-between;gap:14px;padding-top:8px;border-top:1px solid #e4ebf0}.assigned-course li small{color:#64748b;text-align:right}.empty.compact{padding:20px}@media(max-width:700px){.assigned-grid{grid-template-columns:1fr}.assigned-course li{display:grid;gap:3px}.assigned-course li small{text-align:left}}

/* Expérience de catalogue moderne inspirée des grandes plateformes de cours. */
body{background:#f7f9fa;font-family:"Segoe UI",Arial,sans-serif}.wrap{max-width:1240px}.topbar{height:64px;box-shadow:0 2px 8px rgba(15,35,50,.16)}.hero{padding:24px 32px;border-radius:0;box-shadow:0 4px 14px rgba(7,90,159,.18)}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:32px;margin-bottom:8px}.hero p{margin-bottom:0}.grid{gap:22px}.card{padding:0 0 20px;border:1px solid #dfe3e6;border-top:7px solid #ff7417;border-radius:0;box-shadow:0 2px 7px rgba(20,35,50,.09);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-4px);box-shadow:0 8px 20px rgba(20,35,50,.16)}.card>.icon,.card>.eyebrow,.card>h3,.card>p,.card>.badges,.card>.btn{margin-left:20px;margin-right:20px}.card>.icon{margin-top:20px}.card h3{font-size:19px;line-height:1.35}.card>.btn{width:calc(100% - 40px);margin-top:auto}.panel{box-shadow:0 2px 8px rgba(20,35,50,.08)}.btn{font-weight:800}.attempt-count{background:#fff0f1!important;border-color:#e5484d!important;color:#c1121f!important;font-size:13px!important;font-weight:900!important}.card .attempt-count{margin-left:auto}.table td:nth-child(5){color:#c1121f;font-weight:900}.assigned-course{background:#fff;border-radius:0}.assigned-course:hover{border-color:#075a9f}
.access-series{align-items:center}.attempt-limit-field{display:grid;gap:4px;margin-left:auto;min-width:145px}.attempt-limit-field input{width:100%;padding:8px 10px}.card .btn:disabled{background:#6b7280;border-color:#6b7280;color:#fff;cursor:not-allowed}
.inte-footer{display:flex;align-items:center;justify-content:center;gap:22px;margin:48px auto 0;padding:28px 32px;max-width:1240px;border-top:4px solid #ff7417;background:#075a9f;color:#fff}.inte-footer img{width:118px;max-height:58px;object-fit:contain;background:#fff;padding:7px}.inte-footer div{display:grid;gap:6px}.inte-footer strong{font-size:17px}.inte-footer span{color:#dceeff}@media(max-width:640px){.inte-footer{margin-top:32px;flex-direction:column;text-align:center;padding:24px 20px}}
.topbar{height:58px;background:#fff;color:#172033;border-bottom:1px solid #d8dde3;box-shadow:0 2px 8px rgba(15,35,50,.08)}.topbar .brand{color:#075a9f;font-size:21px;font-weight:800;letter-spacing:-.02em}.topbar .nav{height:100%;gap:2px}.topbar .nav button{height:100%;padding:0 18px;color:#263746;border-radius:0;border-bottom:4px solid transparent;font-size:14px;font-weight:700}.topbar .nav button:hover,.topbar .nav button.active{background:#f3f7f9;color:#075a9f;border-bottom-color:#ff7417}.topbar .nav .logout-link{height:auto;margin-left:12px;padding:10px 16px;background:#075a9f;color:#fff;border:0}.topbar .nav .logout-link:hover{background:#03477f;color:#fff;border:0}.nav-icon{display:none}@media(max-width:560px){.topbar .brand{font-size:18px}.topbar .nav button{padding:0 10px}.topbar .nav .logout-link{margin-left:4px;padding:9px 11px}.nav .label{display:inline}}
.login-page{min-height:calc(100vh - 88px);display:grid;place-items:center;padding:42px 22px;background-image:linear-gradient(90deg,rgba(3,39,70,.88),rgba(7,90,159,.5)),url("assets/profil-k.jpg");background-position:center center;background-size:cover;background-repeat:no-repeat}.login-page .login{width:min(470px,100%);margin:0;background:rgba(255,255,255,.97);backdrop-filter:blur(4px)}.login-lock{width:62px;height:62px;margin:0 auto 18px;display:grid;place-items:center;background:#075a9f;border:4px solid #ff7417;border-radius:8px;color:#fff}.login-lock svg{width:34px;height:34px;fill:currentColor}@media(max-width:650px){.login-page{min-height:calc(100vh - 74px);padding:28px 14px;background-position:center center}}
body.authenticated{background:#eaf1f6}.authenticated .shell{min-height:100vh;background-image:linear-gradient(rgba(242,247,250,.84),rgba(242,247,250,.84)),url("assets/profil-herbert-k-3.jpg");background-position:center center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}.authenticated .wrap{position:relative}.authenticated .panel,.authenticated .card{background:rgba(255,255,255,.95);backdrop-filter:blur(3px)}@media(max-width:650px){.authenticated .shell{background-attachment:scroll;background-position:center center}}

/* Adaptation téléphone et tablette */
html{overflow-x:hidden}body{min-width:0}.btn,.nav button,.tabs button,.palette button,.option{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}.table{min-width:720px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:768px){
  .institution-bar{min-height:64px;padding:6px 12px;gap:10px}.institution-bar img{width:128px;height:46px}.institution-copy{min-width:0}.institution-copy strong{font-size:12px;line-height:1.25}.institution-copy span{display:none}
  .topbar{position:sticky;height:auto;min-height:0;padding:0;flex-direction:column;align-items:stretch}.topbar .brand{padding:11px 14px 8px;font-size:18px}.topbar .nav{width:100%;height:44px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #e7ebef}.topbar .nav button,.topbar .nav .logout-link{width:100%;height:44px;margin:0;padding:0 6px;font-size:12px;white-space:nowrap}.topbar .nav .logout-link{border-radius:0}.topbar .nav:has(button:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.nav-icon{display:inline-block;margin-right:6px;font-size:18px;line-height:1;vertical-align:-2px}
  .wrap{width:100%;padding:20px 12px}.hero{padding:19px 18px;border-left-width:5px;gap:12px}.hero h1{font-size:clamp(24px,8vw,30px);overflow-wrap:anywhere}.hero p{font-size:14px;line-height:1.55}.hero>.badge{align-self:flex-start}
  .grid{grid-template-columns:1fr;gap:16px;margin-top:18px}.card{min-width:0}.card:hover{transform:none}.card>.icon,.card>.eyebrow,.card>h3,.card>p,.card>.badges,.card>.btn{margin-left:16px;margin-right:16px}.card>.btn{width:calc(100% - 32px);min-height:46px}.card .attempt-count{margin-left:0}.badges{gap:6px}
  .assigned-access{margin-top:18px}.assigned-heading{align-items:flex-start;flex-direction:column}.assigned-heading .badge{align-self:flex-start}.assigned-course{padding:13px}
  .seb-guide{display:block}.seb-guide>.icon{margin-bottom:14px}.seb-actions{display:grid;grid-template-columns:1fr}.seb-actions .btn{width:100%;text-align:center}
  .tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.tabs button{flex:0 0 auto;min-height:44px;white-space:nowrap}
  .toolbar{gap:12px}.toolbar>div{display:flex;flex-wrap:wrap;gap:8px}.toolbar .btn{flex:1 1 150px;min-height:44px}
  .panel{padding:16px}.table-wrap{margin:0 -16px;padding:0 16px}.table th,.table td{padding:10px;font-size:13px;white-space:normal}.table td:last-child{min-width:230px}.table td .btn{margin:3px 1px;min-height:40px}
  .form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.field input,.field textarea,.field select{min-height:44px;font-size:16px}.field input[type=file]{height:auto}.field select[multiple]{min-height:180px}
  .modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:92dvh;border-radius:18px 18px 0 0;padding:20px 16px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.modal>button[data-action="close-modal"]{min-width:44px;min-height:44px}.modal-actions{position:sticky;bottom:-20px;margin:20px -16px -20px;padding:12px 16px;background:#fff;border-top:1px solid #e3e8f1}.modal-actions .btn{width:100%;min-height:46px}
  .access-list label{min-width:0}.access-series{align-items:flex-start!important;display:grid!important;grid-template-columns:auto minmax(0,1fr)}.attempt-limit-field{grid-column:2;margin:8px 0 0;min-width:0;width:100%}
  .exam-layout{grid-template-columns:1fr;gap:14px}.exam-head{align-items:flex-start;gap:10px}.exam-head h2{font-size:20px}.timer{flex:none;font-size:14px}.question{font-size:18px}.option{min-height:52px;padding:13px}.exam-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.exam-actions .btn{min-height:46px;padding:10px 8px}.exam-actions .btn:last-child{grid-column:1/-1}.palette{grid-template-columns:repeat(6,minmax(40px,1fr))}.palette button{min-height:42px;aspect-ratio:auto}
  .toast{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));text-align:center}.result{padding:24px 16px}.score{font-size:52px}.inte-footer{margin-top:28px;padding:22px 16px}.inte-footer img{width:100px}
  .login-page{padding:20px 12px;align-items:center}.login-page .login{padding:22px 16px}.login-lock{width:54px;height:54px}.login-lock svg{width:29px;height:29px}
}
@media(max-width:390px){
  .institution-copy{display:none}.institution-bar{justify-content:center}.institution-bar img{width:145px;object-position:center}.topbar .brand{text-align:center}.topbar .nav button,.topbar .nav .logout-link{font-size:11px}.wrap{padding-left:10px;padding-right:10px}.panel{padding:14px}.table-wrap{margin:0 -14px;padding:0 14px}.palette{grid-template-columns:repeat(5,minmax(40px,1fr))}.exam-actions{grid-template-columns:1fr}.exam-actions .btn:last-child{grid-column:auto}.inte-footer strong{font-size:15px}.inte-footer span{font-size:13px}
}
.question-type-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.question-type-card{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center;padding:13px;border:1px solid #d9e4ec;background:rgba(255,255,255,.9)}.question-type-card>span{grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#edf3f7;color:#075a9f;font-weight:900}.question-type-card strong{font-size:20px;line-height:1}.question-type-card small{color:#64748b}.question-filters{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;margin:0 0 18px}.question-type-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800}.type-mcq{background:#e8f1fc;color:#075a9f}.type-boolean{background:#e8f8f1;color:#087a63}.type-short{background:#fff4e9;color:#b45309}.type-number{background:#f0ebff;color:#5b36aa}.question-toolbar .small{margin:4px 0 0}.field[hidden]{display:none!important}@media(max-width:768px){.question-type-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.question-type-card{padding:10px}.question-filters{grid-template-columns:1fr}.question-toolbar>div{display:block}.question-toolbar .btn{width:100%}}
.question-type-guide{display:grid;gap:4px;padding:13px 15px;background:#eef6fb;border-left:4px solid #075a9f;color:#17324d}.question-type-guide strong{font-size:14px}.question-type-guide span{font-size:13px;line-height:1.45}.question-type-guide+ .field textarea{min-height:125px}
.question-image-field{padding:14px;border:1px dashed #a8bfce;background:rgba(248,252,254,.92)}.question-image-preview{display:flex;align-items:flex-start;gap:12px;margin-top:10px}.question-image-preview img{width:132px;height:88px;object-fit:cover;border:1px solid #cbd8e1}.question-illustration{margin:18px 0;max-width:720px}.question-illustration img{display:block;width:100%;max-height:420px;object-fit:contain;background:#f3f6f8;border:1px solid #d9e4ec}.question-illustration figcaption{padding-top:6px;font-size:12px;color:#64748b}@media(max-width:768px){.question-image-preview{display:grid;grid-template-columns:1fr}.question-image-preview img{width:100%;height:auto;max-height:220px}.question-illustration img{max-height:280px}}
.course-material-field{padding:14px;border:1px dashed #a8bfce;background:rgba(248,252,254,.92)}.course-material-state{margin-top:10px;padding:10px 12px;background:#eaf5ee;border-left:4px solid #087a63;color:#17324d}.course-material-reader{margin-bottom:10px}.pdf-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 12px}.pdf-controls .btn{min-width:42px;min-height:38px;padding:6px 10px;font-size:16px}.pdf-controls [data-action="pdf-zoom-fit"]{font-size:13px}.pdf-zoom-value{min-width:52px;text-align:center;font-size:13px;font-weight:800;color:#314b5f}.pdf-readonly{height:min(70vh,760px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y pinch-zoom;border:1px solid #cbd8e1;background:#eef3f7;user-select:none}.pdf-pages{display:grid;justify-items:center;gap:18px;padding:14px}.pdf-pages.zoomed{width:max-content;min-width:100%}.pdf-pages canvas{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 2px 8px rgba(15,35,50,.22)}.pdf-pages.zoomed canvas{max-width:none}.pdf-loading{height:100%;display:grid;place-items:center;color:#4b6477;font-weight:700;text-align:center;padding:22px}.course-material-modal{width:min(1040px,96vw)}@media(max-width:768px){.course-material-modal{width:100%;max-height:96dvh;padding:16px 12px 0}.course-material-modal h2{max-width:calc(100% - 54px);font-size:20px;line-height:1.25}.course-material-modal .small{font-size:13px;line-height:1.45}.pdf-controls{position:sticky;top:0;z-index:2;justify-content:flex-end;padding:8px 0;background:#fff}.pdf-controls .btn{min-width:44px;min-height:42px}.pdf-readonly{height:calc(100dvh - 265px);min-height:300px;border-left:0;border-right:0;margin:0 -12px}.pdf-pages{gap:12px;padding:10px}.pdf-pages canvas{box-shadow:0 1px 5px rgba(15,35,50,.2)}.course-material-reader{min-height:44px}}
.candidate-add-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.candidate-add-choice{display:grid;gap:8px;min-height:150px;padding:20px;text-align:left;border:1px solid #cbd8e1;background:#f8fbfd;color:#17324d;cursor:pointer}.candidate-add-choice:hover,.candidate-add-choice:focus{border-color:#075a9f;background:#eef6fb;outline:none}.candidate-add-choice strong{font-size:17px;color:#075a9f}.candidate-add-choice span{font-size:14px;line-height:1.45;color:#526779}@media(max-width:600px){.candidate-add-choices{grid-template-columns:1fr}.candidate-add-choice{min-height:0;padding:16px}}
