:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;color:var(--text-primary);background-color:var(--bg-secondary)}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}a{font-weight:500;color:var(--accent-admin);text-decoration:inherit}a:hover{color:var(--accent-admin-hover)}h1{font-size:3.2em;line-height:1.1}*{box-sizing:border-box}input::placeholder,textarea::placeholder{color:var(--text-tertiary)!important;opacity:.7}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--text-secondary)!important;opacity:.8}input,textarea,select{background-color:var(--bg-input)!important;color:var(--text-primary)!important;border-color:var(--border-primary)!important}input:focus,textarea:focus,select:focus{border-color:var(--accent-admin)!important;outline:none}@media screen and (max-width:768px){input,textarea,select{font-size:16px!important}}:root,:root[data-theme=light]{--color-primary: #2c3e50;--color-primary-light: #34495e;--color-primary-dark: #1a252f;--color-primary-lighter: #4a6278;--color-accent: #3498db;--color-accent-light: #5dade2;--color-accent-dark: #2980b9;--color-secondary: #1e5aa8;--color-secondary-light: #3a7bc8;--color-secondary-dark: #16467f;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #ecf0f1;--bg-hover: #f8f9fa;--bg-input: #ffffff;--bg-overlay: rgba(0, 0, 0, .5);--background: var(--bg-secondary);--surface: var(--bg-primary);--primary: var(--accent-admin);--primary-hover: var(--accent-admin-hover);--border: var(--border-primary);--text-primary: #2c3e50;--text-secondary: #7f8c8d;--text-tertiary: #95a5a6;--text-light: #bdc3c7;--text-inverse: #ffffff;--text-link: #3498db;--border-primary: #e0e0e0;--border-secondary: #bdc3c7;--border-dark: #95a5a6;--shadow-color: rgba(44, 62, 80, .1);--shadow-sm: 0 1px 3px rgba(44, 62, 80, .12);--shadow-md: 0 4px 6px rgba(44, 62, 80, .15);--shadow-lg: 0 10px 20px rgba(44, 62, 80, .2);--accent-admin: #3498db;--accent-admin-hover: #2980b9;--accent-admin-light: #e8f4fd;--accent-candidat: #1e5aa8;--accent-candidat-hover: #16467f;--accent-candidat-light: #e3edf7;--success: #27ae60;--success-light: #d4edda;--warning: #f39c12;--warning-light: #fff3cd;--danger: #c0392b;--danger-light: #f8d7da;--info: #3498db;--info-light: #d1ecf1}:root[data-theme=dark],.dark-mode{--color-primary: #3498db;--color-primary-light: #5dade2;--color-primary-dark: #2980b9;--color-primary-lighter: #85c7f2;--color-accent: #4a9eff;--color-accent-light: #6eb4ff;--color-accent-dark: #3a7bc8;--color-secondary: #2e7ad3;--color-secondary-light: #4a9eff;--color-secondary-dark: #1e5aa8;--bg-primary: #2c3e50;--bg-secondary: #1a252f;--bg-tertiary: #34495e;--bg-hover: #34495e;--bg-input: #1a252f;--bg-overlay: rgba(0, 0, 0, .7);--background: var(--bg-primary);--surface: var(--bg-secondary);--primary: var(--accent-admin);--primary-hover: var(--accent-admin-hover);--border: var(--border-primary);--text-primary: #ecf0f1;--text-secondary: #bdc3c7;--text-tertiary: #95a5a6;--text-light: #7f8c8d;--text-inverse: #1a252f;--text-link: #5dade2;--border-primary: #34495e;--border-secondary: #4a6278;--border-dark: #2c3e50;--shadow-color: rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .5);--accent-admin: #5dade2;--accent-admin-hover: #3498db;--accent-admin-light: #1a3a52;--accent-candidat: #4a9eff;--accent-candidat-hover: #6eb4ff;--accent-candidat-light: #1a3d5c;--success: #2ecc71;--success-light: #0d4d2b;--warning: #f1c40f;--warning-light: #5d4a0f;--danger: #e74c3c;--danger-light: #5a1f1a;--info: #5dade2;--info-light: #1a3a52}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}button,input,select,textarea{transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}.theme-toggle-button{width:40px;height:40px;border-radius:8px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.theme-toggle-button:hover{background:var(--bg-hover);color:var(--text-primary);transform:scale(1.05)}.theme-toggle-button:active{transform:scale(.95)}.theme-toggle-switch{display:flex;align-items:center;gap:12px}.theme-switch{position:relative;display:inline-block;width:56px;height:28px}.theme-switch input{opacity:0;width:0;height:0}.theme-slider{position:absolute;cursor:pointer;inset:0;background:linear-gradient(135deg,#fbbf24,#f59e0b);transition:.3s;border-radius:28px;display:flex;align-items:center;padding:0 6px}.theme-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}input:checked+.theme-slider{background:linear-gradient(135deg,#1e3a8a,#1e40af)}input:checked+.theme-slider:before{transform:translate(28px)}.sun-icon{position:absolute;left:6px;color:#fff;opacity:1;transition:opacity .3s}.moon-icon{position:absolute;right:6px;color:#fff;opacity:0;transition:opacity .3s}input:checked+.theme-slider .sun-icon{opacity:0}input:checked+.theme-slider .moon-icon{opacity:1}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.theme-toggle-button:hover svg{animation:rotate .5s ease-in-out}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-primary);padding:20px}:root[data-theme=dark] .login-container{background:var(--bg-secondary)}.login-card{position:relative;background:var(--bg-primary);border-radius:4px;box-shadow:var(--shadow-lg);width:100%;max-width:380px;padding:40px;border:1px solid var(--border-primary)}.login-theme-toggle{position:absolute;top:12px;right:12px;opacity:.9;transition:opacity .2s ease;z-index:1}.login-theme-toggle:hover{opacity:1}.login-theme-toggle .theme-toggle-button{width:32px;height:32px;border-radius:6px;background:color-mix(in srgb,var(--bg-tertiary) 80%,transparent);border:1px solid var(--border-primary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.login-theme-toggle .theme-toggle-button svg{width:16px;height:16px}.login-theme-toggle .theme-toggle-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:24px;font-weight:600;color:var(--text-primary);margin:0 0 6px;letter-spacing:-.5px}.login-header p{color:var(--text-secondary);font-size:13px;margin:0;font-weight:400}.login-form{display:flex;flex-direction:column;gap:18px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:var(--text-primary)}.form-group input{padding:10px 12px;border:1px solid var(--border-secondary);border-radius:3px;font-size:14px;transition:border-color .2s;background:var(--bg-secondary);color:var(--text-primary)}.form-group input:focus{outline:none;border-color:var(--color-primary);background:var(--bg-primary)}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding-right:40px}.password-toggle{position:absolute;right:4px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .2s,background-color .2s}.password-toggle:hover{color:var(--text-primary);background:var(--bg-tertiary)}.password-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.error-message{background:var(--danger-light);color:var(--danger);padding:10px 12px;border-radius:3px;font-size:13px;border:1px solid var(--danger)}.login-button{padding:12px;background:var(--color-primary);color:var(--text-inverse);border:none;border-radius:3px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:6px;letter-spacing:.3px}.login-button:hover:not(:disabled){background:var(--color-primary-dark)}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-test-connection{padding:8px 12px;background:transparent;color:var(--text-secondary);border:1px dashed var(--border-secondary);border-radius:3px;font-size:12px;cursor:pointer;transition:all .2s}.login-test-connection:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-primary)}.login-test-connection:disabled{cursor:wait;opacity:.7}.connection-hint{background:var(--danger-light);color:var(--danger);padding:10px 12px;border-radius:3px;font-size:12px;border:1px solid var(--danger);line-height:1.4}.app-popup-overlay{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:11000;padding:16px}.app-popup-dialog{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg, 0 20px 50px rgba(0, 0, 0, .2));padding:20px}.app-popup-dialog h3{margin:0 0 10px;color:var(--text-primary)}.app-popup-dialog p{margin:0 0 14px;color:var(--text-secondary);white-space:pre-line}.app-popup-dialog input{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:14px;color:var(--text-primary);background:var(--bg-primary, #fff)}.app-popup-phrase-hint{margin:0 0 8px;font-size:.9rem;color:var(--text-secondary)}.app-popup-phrase-hint strong{color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-secondary, rgba(15, 23, 42, .06));padding:1px 6px;border-radius:4px}.app-popup-actions{display:flex;justify-content:flex-end;gap:8px}.app-popup-actions .btn-primary:disabled{opacity:.55;cursor:not-allowed}.cgu-modal-overlay{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:12000;padding:16px}.cgu-modal-dialog{width:100%;max-width:520px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:10px;box-shadow:0 20px 50px #00000040;padding:28px;color:var(--text-primary)}.cgu-modal-dialog h3{margin:0 0 12px;font-size:20px;font-weight:600;letter-spacing:-.3px}.cgu-modal-dialog p{margin:0 0 16px;line-height:1.55;color:var(--text-secondary);font-size:14px}.cgu-modal-links{list-style:none;padding:14px 16px;margin:0 0 18px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px}.cgu-modal-links li{padding:4px 0}.cgu-modal-links a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px;font-weight:500;font-size:14px}.cgu-modal-links a:hover{color:var(--color-primary-dark)}.cgu-modal-check{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;font-size:14px;line-height:1.45;margin-bottom:16px}.cgu-modal-check input[type=checkbox]{margin-top:2px;flex-shrink:0;cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.cgu-modal-error{margin:0 0 14px;padding:10px 12px;background:var(--danger-light);color:var(--danger);border:1px solid var(--danger);border-radius:4px;font-size:13px}.cgu-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.cgu-modal-btn{padding:10px 18px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background-color .15s,color .15s,border-color .15s}.cgu-modal-btn-primary{background:var(--color-primary);color:var(--text-inverse)}.cgu-modal-btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.cgu-modal-btn-primary:disabled{opacity:.5;cursor:not-allowed}.cgu-modal-btn-secondary{background:transparent;color:var(--text-secondary);border-color:var(--border-secondary)}.cgu-modal-btn-secondary:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-primary)}.cgu-modal-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.change-password-modal-overlay{position:fixed;inset:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;z-index:12500;padding:16px}.change-password-modal-dialog{width:100%;max-width:480px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:10px;box-shadow:0 20px 50px #00000040;padding:28px;color:var(--text-primary)}.change-password-modal-dialog h3{margin:0 0 12px;font-size:20px;font-weight:600;letter-spacing:-.3px}.change-password-modal-dialog p{margin:0 0 16px;line-height:1.55;color:var(--text-secondary);font-size:14px}.change-password-modal-form{display:flex;flex-direction:column;gap:14px}.change-password-modal-field{display:flex;flex-direction:column;gap:6px}.change-password-modal-field label{font-size:13px;font-weight:500;color:var(--text-secondary)}.change-password-modal-field input{padding:10px 12px;border-radius:6px;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.change-password-modal-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb2e}.change-password-modal-hint{font-size:12px;color:var(--text-secondary)}.change-password-modal-error{margin:0;padding:10px 12px;background:var(--danger-light, #fef2f2);color:var(--danger, #b91c1c);border:1px solid var(--danger, #fecaca);border-radius:4px;font-size:13px}.change-password-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:6px}.change-password-modal-btn{padding:10px 18px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background-color .15s,color .15s,border-color .15s}.change-password-modal-btn-primary{background:var(--color-primary);color:var(--text-inverse)}.change-password-modal-btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.change-password-modal-btn-primary:disabled{opacity:.5;cursor:not-allowed}.change-password-modal-btn-secondary{background:transparent;color:var(--text-secondary);border-color:var(--border-secondary)}.change-password-modal-btn-secondary:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-primary)}.change-password-modal-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.legal-page{min-height:100vh;background:var(--bg-secondary);color:var(--text-primary);display:flex;flex-direction:column}.legal-page-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-primary);background:var(--bg-primary)}.legal-page-back{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text-primary);text-decoration:none;letter-spacing:-.2px}.legal-page-back:hover{color:var(--color-primary)}.legal-page-main{flex:1;display:flex;justify-content:center;padding:32px 20px 64px}.legal-page-article{width:100%;max-width:800px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;padding:40px 48px;box-shadow:var(--shadow-sm)}.legal-page-article h1{font-size:28px;font-weight:600;margin:0 0 8px;letter-spacing:-.6px;color:var(--text-primary)}.legal-page-meta{font-size:13px;color:var(--text-secondary);margin:0 0 32px}.legal-page-content{font-size:14.5px;line-height:1.65;color:var(--text-primary)}.legal-page-content h2{font-size:18px;font-weight:600;margin:32px 0 12px;letter-spacing:-.2px;color:var(--text-primary)}.legal-page-content h3{font-size:15px;font-weight:600;margin:20px 0 8px;color:var(--text-primary)}.legal-page-content p,.legal-page-content li{color:var(--text-primary)}.legal-page-content ul,.legal-page-content ol{padding-left:22px;margin:8px 0 16px}.legal-page-content li{margin:4px 0}.legal-page-content a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.legal-page-content a:hover{color:var(--color-primary-dark)}.legal-page-content .placeholder{background:var(--danger-light);color:var(--danger);padding:1px 6px;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:500}@media(max-width:600px){.legal-page-article{padding:24px 20px}.legal-page-article h1{font-size:22px}}.commencer-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-secondary, #f4f5f7)}.commencer-card{max-width:420px;width:100%;padding:28px 24px;border-radius:12px;background:var(--bg-primary, #fff);border:1px solid var(--border-primary, #e2e4e8);box-shadow:0 4px 24px #0000000f;text-align:center}.commencer-card h1{font-size:1.25rem;font-weight:700;margin:0 0 12px;color:var(--text-primary, #1a1a1a)}.commencer-card p{margin:0 0 20px;color:var(--text-secondary, #5c6370);line-height:1.5}.commencer-error{color:var(--error-color, #c62828)}.commencer-loading p{margin:0}.commencer-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:8px;border:none;font-size:14px;font-weight:600;cursor:pointer;background:var(--accent-primary, #2563eb);color:#fff;transition:opacity .2s}.commencer-btn:hover{opacity:.92}.admin-layout{display:flex;height:100vh;min-height:100vh;background-color:var(--bg-secondary);overflow:hidden}.sidebar{width:260px;background:#1a1d23;color:#fff;display:flex;flex-direction:column;box-shadow:2px 0 10px #0000001a;position:fixed;height:100vh;height:100dvh;left:0;top:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}[data-theme=dark] .sidebar{background:#0f1114;box-shadow:2px 0 10px #0000004d}.sidebar-header{padding:24px 20px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between}.admin-badge{background:#3498db33;color:var(--accent-admin-light);padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}[data-theme=dark] .admin-badge{background:#5dade233;color:var(--accent-admin)}.sidebar-nav{flex:1;padding:20px 12px}.sidebar-nav .nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:4px;border-radius:8px;color:#ffffffb3;text-decoration:none;transition:all .2s;font-weight:500}.sidebar-nav .nav-item:hover{background:#3498db26!important;color:var(--color-accent-light)!important}.sidebar-nav .nav-item.active{background:#3498db40!important;color:var(--color-accent-light)!important;border-left:3px solid var(--accent-admin)!important;font-weight:600}.sidebar-nav .nav-item.active:hover{background:#3498db59!important;color:var(--color-accent-light)!important;border-left:3px solid var(--accent-admin)!important}.sidebar-nav .nav-item.active svg{color:#93c5fd!important}.sidebar-nav .nav-item.active:hover svg{color:#bfdbfe!important}.sidebar-nav .nav-item svg{flex-shrink:0;color:inherit}.sidebar-nav .nav-item--candidat{margin-top:8px;border-top:1px solid rgba(255,255,255,.1);padding-top:20px}.sidebar-footer{padding:20px;border-top:1px solid rgba(255,255,255,.1)}.logout-button{width:100%;padding:10px;background:#ffffff1a;color:#fff;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;transition:background .2s}.logout-button:hover{background:#fff3}.sidebar-footer .user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%)!important;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:#fff!important}.user-details{display:flex;flex-direction:column;flex:1}.user-name{font-weight:600;font-size:14px;color:#fff}.admin-main{flex:1;margin-left:260px;display:flex;flex-direction:column;height:100vh;min-height:100vh;overflow:hidden}.admin-header{background:var(--bg-primary);padding:20px 32px;border-bottom:1px solid var(--border-primary);display:none;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:10}.admin-header h1{margin:0;font-size:24px;font-weight:700;color:var(--text-primary)}.header-actions{display:flex;gap:8px}.icon-button{width:40px;height:40px;border-radius:8px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.icon-button:hover{background:var(--bg-hover);color:var(--text-primary)}.admin-content{flex:1;min-height:0;padding:16px 32px 32px;overflow-y:auto;display:flex;flex-direction:column}.admin-content.admin-content--full-bleed{padding-left:0;padding-right:0}.admin-content.admin-content--banque-qcm{padding:0;height:100%;min-height:0;overflow:hidden}@media(max-width:768px){.admin-layout{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}.hamburger-btn{display:flex;align-items:center;justify-content:center;position:fixed;top:calc(16px + env(safe-area-inset-top,0px));left:calc(16px + env(safe-area-inset-left,0px));z-index:100;width:44px;height:44px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-md);transition:background .2s}.hamburger-btn:hover{background:var(--bg-hover)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:998;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.sidebar-overlay.open{opacity:1;visibility:visible}.sidebar{width:280px;max-width:85vw;transform:translate(-100%);transition:transform .3s ease;z-index:999;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px)}.sidebar-header{position:sticky;top:0;background:#1a1d23;z-index:1}[data-theme=dark] .admin-layout .sidebar-header{background:#0f1114}.sidebar.open{transform:translate(0)}.sidebar-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:#ffffff1a;border:none;border-radius:8px;color:#fff;cursor:pointer;transition:background .2s}.sidebar-close-btn:hover{background:#fff3}.admin-main{margin-left:0;height:auto;min-height:100vh;min-height:100dvh;overflow:visible}.admin-content{padding:72px 16px 16px;overflow:visible}.admin-content.admin-content--full-bleed{padding-left:0;padding-right:0;padding-top:72px}.admin-content.admin-content--banque-qcm{padding:60px 0 0;height:auto;overflow:visible}}.candidat-layout{display:flex;min-height:100vh;background:var(--bg-secondary)}.sidebar{width:260px;background:#1a1d23;color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh;height:100dvh;left:0;top:0;box-shadow:2px 0 10px #0000001a;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}[data-theme=dark] .candidat-layout .sidebar{background:#0f1114;box-shadow:2px 0 10px #0000004d}.sidebar-header{padding:24px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between}.sidebar-logo{height:40px;max-width:180px;width:auto;object-fit:contain}.candidat-badge{background:#1e5aa833;color:var(--accent-candidat-light);padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}[data-theme=dark] .candidat-badge{background:#4a9eff33;color:var(--accent-candidat)}.sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 24px;color:#ffffffb3;text-decoration:none;transition:all .2s}.nav-item:hover{background:#1e5aa826;color:var(--color-secondary-light)}.nav-item.active{background:#1e5aa840;color:var(--color-secondary-light);border-left:3px solid var(--accent-candidat);font-weight:600}.nav-item.active:hover{background:#1e5aa859;color:var(--color-secondary-light);border-left:3px solid var(--accent-candidat)}.nav-item.active svg{color:var(--color-secondary-light)}.nav-item.active:hover svg{color:var(--color-secondary-light)}.nav-item svg{color:inherit}.nav-item--admin{margin-top:8px;border-top:1px solid rgba(255,255,255,.1);padding-top:20px}.sidebar-footer{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.1)}.user-info{display:flex;align-items:center;gap:12px;margin-bottom:12px}.footer-actions{display:flex;flex-direction:column;gap:8px}.theme-toggle-button{width:100%;padding:10px;background:#ffffff1a;color:#fff;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;transition:background .2s}.theme-toggle-button:hover{background:#fff3}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-candidat) 0%,var(--accent-admin) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:#fff}.user-details{flex:1;display:flex;flex-direction:column}.user-name{font-size:14px;font-weight:500}.user-role{font-size:12px;color:#fff9}.logout-button{width:100%;padding:10px;background:#c0392b33;color:var(--danger-light);border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;transition:all .2s}.logout-button:hover{background:#c0392b4d;color:var(--danger)}[data-theme=dark] .logout-button{background:#e74c3c33;color:var(--danger)}[data-theme=dark] .logout-button:hover{background:#e74c3c4d}.candidat-main{flex:1;margin-left:260px;display:flex;flex-direction:column}.candidat-content{flex:1;padding:32px}.hamburger-btn,.sidebar-close-btn,.sidebar-overlay{display:none}@media(max-width:768px){.hamburger-btn{display:flex;align-items:center;justify-content:center;position:fixed;top:calc(16px + env(safe-area-inset-top,0px));left:calc(16px + env(safe-area-inset-left,0px));z-index:100;width:44px;height:44px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-md);transition:background .2s}.hamburger-btn:hover{background:var(--bg-hover)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:998;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.sidebar-overlay.open{opacity:1;visibility:visible}.sidebar{width:280px;max-width:85vw;transform:translate(-100%);transition:transform .3s ease;z-index:999;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px)}.sidebar-header{position:sticky;top:0;background:#1a1d23;z-index:1}[data-theme=dark] .candidat-layout .sidebar-header{background:#0f1114}.sidebar.open{transform:translate(0)}.sidebar-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:#ffffff1a;border:none;border-radius:8px;color:#fff;cursor:pointer;transition:background .2s}.sidebar-close-btn:hover{background:#fff3}.candidat-main{margin-left:0}.candidat-content{padding:72px 16px 16px}}.formations-page{width:100%;max-width:none}.formation-card{background:var(--bg-primary);border-radius:12px;padding:24px;box-shadow:var(--shadow-md);transition:all .2s;display:flex;flex-direction:column;border:1px solid var(--border-primary)}.formation-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.formation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.formation-status{flex:1}.status-badge.inactive{background:var(--warning-light);color:var(--warning)}.formation-actions{display:flex;gap:8px}.formation-content{flex:1;margin-bottom:16px}.formation-content h3{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.formation-content p{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.6;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:8;text-overflow:ellipsis}.voir-plus-btn{margin-top:10px;border:none;background:transparent;color:var(--accent-admin);font-size:13px;font-weight:600;cursor:pointer;padding:0}.formation-footer{border-top:1px solid var(--border-primary);padding-top:16px}.formation-meta{display:flex;gap:16px;flex-wrap:wrap}.meta-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.meta-item svg{color:var(--text-tertiary)}@media(max-width:768px){.page-header{flex-direction:column;gap:16px}.filters-bar{flex-direction:column}.formations-grid{grid-template-columns:1fr}.formation-modal{width:100%;max-width:100%;max-height:100vh;border-radius:0}}.candidats-page{width:100%;max-width:none}.btn-secondary{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.candidats-table-container{background:var(--bg-primary);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-md)}.candidats-table{width:100%;border-collapse:collapse}.candidats-table thead{background:var(--bg-secondary);border-bottom:2px solid var(--border-primary)}.candidats-table th{padding:16px 20px;text-align:left;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.candidats-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background-color .2s}.candidats-table tbody tr.candidat-row{cursor:pointer}.candidats-table tbody tr:hover{background-color:var(--bg-hover)}.candidats-table tbody tr:last-child{border-bottom:none}.candidats-table td{padding:16px 20px;font-size:14px;color:var(--text-primary)}.candidat-info{display:flex;align-items:center;gap:12px}.candidat-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:#fff;flex-shrink:0}.candidat-nom{font-weight:600;color:var(--text-primary)}.candidat-email{color:var(--text-secondary)}@media(max-width:1024px){.candidats-table-container{overflow-x:auto}.candidats-table{min-width:800px}}@media(max-width:768px){.page-header{flex-direction:column;gap:16px}.filters-bar{flex-direction:column}}.utilisateurs-page{width:100%;max-width:none}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:var(--accent-admin);color:var(--text-inverse);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-sizing:border-box;line-height:1.4;white-space:nowrap;vertical-align:middle}.btn-primary svg{flex-shrink:0;display:block}.btn-primary:hover{background:var(--accent-admin-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3498db4d}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-sizing:border-box;line-height:1.4;white-space:nowrap;vertical-align:middle}.btn-secondary svg{flex-shrink:0;display:block}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.filters-bar{display:flex;gap:16px;margin-bottom:24px}.search-box{flex:1;position:relative;display:flex;align-items:center}.search-box svg{position:absolute;left:14px;color:var(--text-tertiary)}.search-box input{width:100%;padding:12px 16px 12px 42px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;background:var(--bg-input);color:var(--text-primary);transition:border-color .2s}.search-box input:focus{outline:none;border-color:var(--accent-admin)}.filter-select{padding:12px 16px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:border-color .2s}.filter-select:focus{outline:none;border-color:var(--accent-admin)}.utilisateurs-table-container{background:var(--bg-primary);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-md)}.utilisateurs-table{width:100%;border-collapse:collapse}.utilisateurs-table thead{background:var(--bg-secondary);border-bottom:2px solid var(--border-primary)}.utilisateurs-table th{padding:16px 20px;text-align:left;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.utilisateurs-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.utilisateurs-table th.sortable:hover{color:var(--accent-admin)}.utilisateurs-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background-color .2s}.utilisateurs-table tbody tr.utilisateur-row{cursor:pointer}.utilisateurs-table tbody tr.utilisateur-row--echec{background-color:#dc262638}.utilisateurs-table tbody tr:hover{background-color:var(--bg-hover)}.utilisateurs-table tbody tr.utilisateur-row--echec:hover{background-color:#dc262652}.utilisateurs-table tbody tr:last-child{border-bottom:none}.utilisateurs-table td{padding:16px 20px;font-size:14px;color:var(--text-primary)}.utilisateur-info{display:flex;align-items:center;gap:12px}.utilisateur-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:#fff;flex-shrink:0}.utilisateur-nom{font-weight:600;color:var(--text-primary)}.utilisateur-email{color:var(--text-secondary)}.id-unique{font-family:Courier New,monospace;font-size:12px;font-weight:600;color:var(--accent-admin);background:var(--accent-admin-light);padding:4px 8px;border-radius:4px}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 10px;background:var(--accent-admin-light);color:var(--accent-admin);border-radius:14px;font-size:13px;font-weight:600}.badge-formations{font-size:13px;color:var(--text-secondary)}.status-badge.en_attente{background:#eab30826;color:#854d0e}.date-text{color:var(--text-secondary);font-size:13px}.table-actions{display:flex;gap:8px}.icon-btn{width:32px;height:32px;border:none;background:var(--bg-tertiary);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .2s}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.icon-btn.disabled,.icon-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.icon-btn-danger.disabled,.icon-btn-danger:disabled{background:var(--bg-tertiary)!important;color:var(--text-tertiary)!important}.icon-btn-danger.disabled svg,.icon-btn-danger:disabled svg{stroke:var(--text-tertiary)!important}.icon-btn-danger:hover{background:var(--danger-light)!important;opacity:.8}.modal-content{background:var(--bg-primary);border-radius:12px;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid var(--border-primary)}.modal-header h3{margin:0;font-size:20px;font-weight:700;color:var(--text-primary)}.modal-close{width:32px;height:32px;border:none;background:var(--bg-tertiary);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .2s}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-content form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.modal-form-body{flex:1;overflow-y:auto;padding:24px 24px 0}.modal-actions{flex-shrink:0;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px 24px;border-top:1px solid var(--border-primary);background:var(--bg-primary)}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--text-primary)}.form-group input,.form-group select{width:100%;padding:12px 16px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;background:var(--bg-input);color:var(--text-primary);transition:border-color .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-admin)}.edit-user-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}.edit-user-compact-item{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.edit-user-compact-item span{font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--text-tertiary)}.edit-user-compact-item strong{font-size:13px;color:var(--text-primary);font-weight:600;word-break:break-word}@media(max-width:1024px){.utilisateurs-table-container{overflow-x:auto}.utilisateurs-table{min-width:900px}}@media(max-width:768px){.page-header{flex-direction:column;gap:16px}.filters-bar{flex-direction:column}.modal-content{max-width:100%}.edit-user-compact-grid{grid-template-columns:1fr}}.profil-utilisateur-page{width:100%;max-width:none;padding:0}.profil-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.header-actions{display:flex;gap:12px}.btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:0}.profil-content{display:flex;flex-direction:column;gap:24px}.profil-summary{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;padding:16px 20px;background:var(--bg-primary);border-radius:12px;box-shadow:var(--shadow-md);border:2px solid var(--border-primary)}.profil-summary-statut-action{margin-left:auto;display:flex;align-items:center;flex-shrink:0}.profil-summary-identity{display:flex;align-items:center;gap:12px}.profil-avatar-small{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:var(--text-inverse);flex-shrink:0}.profil-summary-info{display:flex;flex-direction:column;gap:6px}.profil-summary-name{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.profil-summary-email{font-size:13px;color:var(--text-secondary);margin:2px 0 0}.profil-summary-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn-toggle-statut{padding:6px 12px;font-size:12px;font-weight:600;border-radius:8px;border:2px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:border-color .2s,background .2s}.btn-toggle-statut:hover:not(:disabled){border-color:var(--accent-admin);color:var(--accent-admin)}.btn-toggle-statut:disabled{opacity:.65;cursor:not-allowed}.profil-summary-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary)}.profil-summary-meta .meta-sep{color:var(--text-tertiary);-webkit-user-select:none;user-select:none}.stats-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary);padding-left:20px;margin-left:20px;border-left:2px solid var(--border-primary)}.stats-inline span:not(.stats-sep){color:var(--text-primary);font-weight:500}.stats-sep{color:var(--text-tertiary);font-weight:400;-webkit-user-select:none;user-select:none}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.actif{background:var(--info-light);color:var(--info)}.status-badge.en_attente{background:var(--warning-light);color:var(--warning)}.status-badge.inactif{background:var(--danger-light);color:var(--danger)}.status-badge.active{background:var(--info-light);color:var(--info)}.status-badge.brouillon{background:var(--warning-light);color:var(--warning)}.status-badge.archive{background:var(--danger-light);color:var(--danger)}.role-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.role-badge.candidat{background:var(--accent-candidat-light);color:var(--accent-candidat)}.role-badge.admin{background:var(--warning-light);color:var(--warning)}.role-badge.superAdmin{background:#dc26261a;color:#dc2626}.formations-section{background:var(--bg-primary);border-radius:12px;padding:20px 24px;box-shadow:var(--shadow-md)}.formations-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.formations-section h2{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.btn-primary{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--accent-admin);color:var(--text-inverse);border:2px solid transparent;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:0}.btn-primary:hover{background:var(--accent-admin-hover)}.formations-section .empty-state{display:block;width:100%;max-width:none;padding:14px 16px;text-align:center;color:var(--text-tertiary);background:var(--bg-secondary);border:1px dashed var(--border-primary);border-radius:8px;box-sizing:border-box}.formations-section .empty-state p{margin:0;font-size:13px;font-style:italic}.formations-list{display:flex;flex-direction:column;gap:6px}.formation-row{display:flex;align-items:center;gap:12px 20px;padding:8px 12px;border:1px solid var(--border-primary);border-radius:6px;transition:all .2s;flex-wrap:wrap}.formation-row:hover{border-color:var(--border-secondary);background:var(--bg-secondary)}.formation-row-name{flex:1;min-width:120px;font-size:14px;font-weight:600;color:var(--text-primary)}.formation-row-score{min-width:36px;font-size:13px;font-weight:600;color:var(--text-primary);text-align:right}.formation-row-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase}.formation-row-badge.reussite{background:var(--success-light);color:var(--success)}.formation-row-badge.echec{background:var(--danger-light);color:var(--danger)}.formation-row-badge.encours{background:var(--info-light);color:var(--info)}.formation-row-actions{display:flex;gap:6px;align-items:center;margin-left:auto}.btn-download-mini{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--accent-admin);color:var(--text-inverse);border:none;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-download-mini:hover{background:var(--accent-admin-hover)}.btn-download-mini svg{flex-shrink:0}.btn-repasser-mini{padding:4px 8px;background:var(--warning-light);color:var(--warning);border:1px solid var(--warning);border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s}.btn-repasser-mini:hover{background:var(--warning);color:#fff}.profil-sidebar{display:flex;flex-direction:column;gap:24px}.profil-summary-temp-password{--temp-password-text: #7a4b00;--temp-password-border: rgba(166, 107, 0, .35);margin-top:14px;padding:12px 14px;background:var(--warning-light);border:1px solid var(--temp-password-border);border-radius:8px;display:flex;flex-direction:column;gap:8px}.profil-temp-password-message{font-size:13px;color:var(--temp-password-text);line-height:1.45}[data-theme=dark] .profil-summary-temp-password,.dark-mode .profil-summary-temp-password{--temp-password-text: #f6e39b;--temp-password-border: rgba(241, 196, 15, .4)}.profil-temp-password-code{padding:4px 10px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;font-family:monospace;font-size:14px;letter-spacing:.4px;min-width:140px;display:inline-block}.profil-temp-password-status{font-size:13px;padding:8px 10px;border-radius:6px}.profil-temp-password-status.success{background:var(--success-light);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);color:var(--success)}.profil-temp-password-status.error{background:var(--danger-light);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.stats-card{background:var(--bg-primary);border-radius:12px;padding:24px;box-shadow:var(--shadow-md)}.stats-card h3{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 24px}.stats-grid{display:flex;flex-direction:column;gap:20px}.stat-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:8px}.stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border-radius:10px;color:var(--accent-admin);flex-shrink:0}.stat-content{display:flex;flex-direction:column;gap:4px}.stat-value{font-size:24px;font-weight:700;color:var(--text-primary)}.stat-label{font-size:13px;color:var(--text-secondary);font-weight:500}.loading{text-align:center;padding:48px;color:var(--text-secondary);font-size:16px}@media(max-width:1024px){.profil-content,.details-grid{grid-template-columns:1fr}}.modal-overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:var(--bg-primary);border-radius:12px;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:2px solid var(--border-primary)}.modal-header h2{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.btn-close-modal{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;color:var(--text-secondary);border:none;border-radius:8px;cursor:pointer;transition:all .2s}.btn-close-modal:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:24px 32px;overflow-y:auto;flex:1}.search-box-modal{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:8px;margin-bottom:24px}.search-box-modal svg{color:var(--text-secondary);flex-shrink:0}.search-box-modal input{flex:1;border:none;background:transparent;font-size:14px;color:var(--text-primary);outline:none}.search-box-modal input::placeholder{color:var(--text-tertiary)}.formations-modal-list{display:flex;flex-direction:column;gap:8px}.formation-modal-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;border:2px solid var(--border-primary);border-radius:8px;transition:all .2s}.formation-modal-item:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-sm)}.formation-modal-item.affectee{background:var(--info-light);border-color:var(--accent-admin)}.formation-modal-info{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.formation-modal-text{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.formation-modal-badge-inactive{flex-shrink:0;display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--danger);background:var(--danger-light);border:1px solid var(--danger);border-radius:999px;white-space:nowrap}.formation-modal-item.desactivee .formation-modal-text{color:var(--text-secondary)}.formation-modal-item.desactivee:not(.affectee){border-style:dashed;opacity:.85}.formation-modal-item .btn-add,.formation-modal-item .btn-remove{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-add{background:var(--accent-admin);color:var(--text-inverse)}.btn-add:hover{background:var(--accent-admin-hover)}.btn-remove{background:var(--danger-light);color:var(--danger)}.btn-remove:hover{background:var(--danger-light);color:#b91c1c}.modal-footer{display:flex;justify-content:flex-end;padding:24px 32px;border-top:2px solid var(--border-primary)}.modal-content-edit-user{max-width:560px}.modal-form-edit-user{display:flex;flex-direction:column;flex:1}.edit-user-error{background:var(--danger-light);border:1px solid rgba(220,38,38,.25);color:var(--danger);padding:10px 12px;border-radius:8px;margin-bottom:12px;font-size:14px}.edit-user-form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.edit-user-form-group:last-child{margin-bottom:0}.edit-user-form-group label{font-size:13px;font-weight:600;color:var(--text-secondary)}.edit-user-form-group input{width:100%;padding:10px 12px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.edit-user-form-group input:focus{border-color:var(--accent-admin);box-shadow:0 0 0 3px #3b82f626}.edit-user-form-group input::placeholder{color:var(--text-tertiary)}@media(max-width:768px){.profil-header{flex-direction:column;align-items:flex-start;gap:16px}.profil-identity{flex-direction:column;text-align:center}.formation-row{gap:8px}.formation-row-actions{margin-left:0;width:100%;justify-content:flex-end}.formations-section-header{flex-direction:column;align-items:flex-start;gap:16px}.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header,.modal-body,.modal-footer{padding:20px}.formation-modal-item{flex-direction:column;align-items:flex-start;gap:16px}.btn-add,.btn-remove{width:100%;justify-content:center}}.certificats-resultats-page{max-width:900px;padding:0}.certificats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.certificats-intro{margin-bottom:32px}.certificats-intro h1{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.certificats-subtitle{font-size:16px;color:var(--text-secondary);margin:0}.certificats-empty{text-align:center;padding:48px 24px;background:var(--bg-primary);border-radius:12px;box-shadow:var(--shadow-md);border:2px dashed var(--border-primary)}.certificats-empty .empty-icon{color:var(--text-secondary);opacity:.6;margin-bottom:16px}.certificats-empty p{color:var(--text-secondary);margin:0 0 8px}.certificats-empty .empty-hint{font-size:14px;opacity:.8;margin-bottom:24px}.certificats-empty .btn-primary{margin-top:8px}.certificats-search{margin-bottom:20px}.certificats-search .search-input{width:100%;max-width:360px;padding:10px 16px 10px 40px;font-size:14px;border:2px solid var(--border-primary);border-radius:8px;background:var(--bg-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat 12px center;color:var(--text-primary);transition:border-color .2s}.certificats-search .search-input::placeholder{color:var(--text-secondary)}.certificats-search .search-input:focus{outline:none;border-color:var(--accent-admin)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.certificats-list{display:flex;flex-direction:column;gap:8px}.certificat-row{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-primary);transition:border-color .2s}.certificat-row:hover{border-color:var(--border-secondary)}.certificat-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px}.certificat-row-titre{font-size:15px;font-weight:600;color:var(--text-primary)}.certificat-row-date{font-size:13px;color:var(--text-secondary);white-space:nowrap}.certificat-row-badges{display:flex;align-items:center;gap:8px;flex-shrink:0}.certificat-row .score-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:13px;font-weight:700;background:var(--accent-admin-light);color:var(--accent-admin)}.certificat-row .certificat-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;background:var(--success-light, rgba(34, 197, 94, .15));color:var(--success, #16a34a)}.certificat-row .echec-badge{font-size:12px;font-weight:600;color:var(--text-secondary);font-style:italic}.certificat-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.certificat-row-actions .btn-download-cert{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .2s}.certificat-row-actions .btn-resultat-qcm{background:var(--accent-admin);color:#fff}.certificat-row-actions .btn-resultat-qcm:hover{opacity:.9}.certificat-row-actions .btn-certificat{background:var(--success, #16a34a);color:#fff}.certificat-row-actions .btn-certificat:hover{opacity:.9}.certificats-empty-filtered{padding:24px;margin-top:0}@media(max-width:768px){.certificats-header{flex-direction:column;align-items:flex-start;gap:16px}.certificat-row{flex-wrap:wrap;gap:10px}.certificat-row-main{flex:1 1 100%;flex-direction:column;align-items:flex-start;gap:2px}.certificat-row-badges{order:2}.certificat-row-actions{order:3;margin-left:auto}}.formation-stepper{margin-bottom:2rem}.stepper-list{display:flex;align-items:center;justify-content:center;gap:0;list-style:none;margin:0;padding:0}.stepper-item{display:flex;align-items:center;flex:1;max-width:200px}.stepper-button{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:10px;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:default;transition:all .2s ease;width:100%;text-align:left}.stepper-item.clickable .stepper-button{cursor:pointer}.stepper-item.clickable .stepper-button:hover{border-color:var(--accent-admin);color:var(--accent-admin);background:var(--accent-admin-light)}.stepper-item.active .stepper-button{background:var(--accent-admin);border-color:var(--accent-admin);color:var(--text-inverse);box-shadow:0 4px 12px #3498db4d}.stepper-item.completed .stepper-button{background:var(--success-light);border-color:var(--success);color:var(--success)}.stepper-item.completed .stepper-button svg{flex-shrink:0}.stepper-number{width:28px;height:28px;min-width:28px;border-radius:50%;background:#0000001a;display:flex;align-items:center;justify-content:center;font-size:13px}.stepper-item.active .stepper-number{background:#ffffff4d}.stepper-item.completed .stepper-number{background:transparent}.stepper-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper-connector{flex:0 0 24px;height:2px;background:var(--border-primary);margin:0 8px}.stepper-item.completed+.stepper-item .stepper-connector,.stepper-item.active~.stepper-item .stepper-connector{background:var(--border-primary)}.stepper-item.completed .stepper-connector{background:var(--success)}@media(max-width:768px){.stepper-list{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px}.stepper-item{max-width:none;flex:0 0 auto}.stepper-connector,.stepper-label{display:none}.stepper-button{justify-content:center;padding:10px 14px}}.toast{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:10px;box-shadow:var(--shadow-lg);z-index:9999;animation:toastSlideIn .3s ease;max-width:380px}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast-icon{flex-shrink:0}.toast-message{font-size:14px;font-weight:500}.toast-success{background:var(--success);color:#fff}.toast-success .toast-icon{color:#ffffffe6}.toast-error{background:var(--danger);color:#fff}.toast-error .toast-icon{color:#ffffffe6}.toast-info{background:var(--accent-admin);color:#fff}.toast-info .toast-icon{color:#ffffffe6}.participant-role-badge{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.4;vertical-align:middle;white-space:nowrap}.participant-role-badge--admin{background:#6f480026;color:#ffd900}.participant-role-badge--superAdmin{background:#7e000026;color:red}.candidat-nom-list,.candidat-nom-item{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.edition-formation-page,.gestion-formation-page{width:100%;padding:0;max-width:none;background:var(--bg-secondary);--statut-off-bg: #fee2e2;--statut-off-border: #ef4444;--statut-off-border-hover: #dc2626;--statut-off-text: #dc2626}.page-title-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 auto 10px;width:100%}.page-title-section h2{font-size:26px;font-weight:700;color:var(--text-primary);margin:0 0 5px}.page-title-section p{color:var(--text-secondary);font-size:13px;margin:0;max-width:760px}.gestion-formation-title{font-size:26px;font-weight:700;color:var(--text-primary);text-align:center;margin:0 0 5px}.gestion-formation-lead{color:var(--text-secondary);font-size:13px;text-align:center;margin:0 auto 8px;max-width:760px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px;color:var(--text-secondary);font-size:16px}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-primary);border-top-color:var(--accent-admin);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.formation-form{background:var(--bg-primary);border-radius:14px;padding:16px;box-shadow:var(--shadow-md);max-width:1200px;margin:0 auto;border:1px solid var(--border-primary)}.gestion-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}.gestion-left,.gestion-right{width:100%;min-width:0}.btn-gerer-participants{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:10px;font-size:14px;font-weight:600;color:var(--accent-admin);cursor:pointer;transition:all .2s;width:100%;justify-content:center}.btn-gerer-participants:hover{border-color:var(--accent-admin);background:#3498db1a}.btn-gerer-participants svg{flex-shrink:0}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-participants{background:var(--bg-primary);border-radius:16px;box-shadow:var(--shadow-md);max-width:980px;width:100%;height:86vh;min-height:720px;max-height:98vh;display:flex;flex-direction:column}.modal-participants-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:2px solid var(--border-primary)}.modal-participants-header h3{margin:0;font-size:20px;font-weight:700;color:var(--text-primary)}.modal-close-btn{width:40px;height:40px;border:none;background:var(--bg-secondary);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s}.modal-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-participants-body{padding:24px;overflow-y:auto;flex:1;display:flex;flex-direction:column}.modal-participants-body .section-description,.modal-participants-body .participants-tabs{margin-bottom:20px}.modal-participants-body .candidats-affectes-list{max-height:200px}.gestion-formation-page .formation-form{width:100%;max-width:none;margin:0;padding:14px;border-radius:0}.gestion-formation-page .candidats-affectes-list{max-height:250px}.form-part{margin-bottom:10px;background:color-mix(in oklab,var(--bg-primary) 90%,white 10%);border:1px solid var(--border-primary);border-radius:14px;box-shadow:0 10px 26px #0f172a12;padding:12px}.form-part-header{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-primary)}.form-part-header h3{font-size:19px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.section-description{color:var(--text-secondary);font-size:12px;margin:0}.form-section{display:flex;flex-direction:column;gap:8px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:13px;font-weight:600;color:var(--text-primary)}.lien-candidat-group{padding-top:8px;border-top:1px dashed var(--border-primary)}.statut-hint{font-size:.8rem;color:var(--text-tertiary);margin:.2rem 0 0}.statut-toggle-row{display:flex;align-items:center;gap:10px}.statut-toggle{position:relative;width:52px;height:30px;border:2px solid var(--statut-off-border);border-radius:999px;background:var(--statut-off-bg);cursor:pointer;padding:0;transition:all .2s ease}.statut-toggle:hover{border-color:var(--statut-off-border-hover)}.statut-toggle:focus-visible{outline:none;border-color:var(--accent-admin);box-shadow:0 0 0 2px #3498db33}.statut-toggle.is-active{background:#3498db26;border-color:var(--accent-admin)}.statut-toggle-thumb{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--statut-off-text);transition:all .2s ease}.statut-toggle.is-active .statut-toggle-thumb{transform:translate(22px);background:var(--accent-admin)}.statut-toggle-label{font-size:13px;font-weight:600;color:var(--statut-off-text)}.statut-toggle-label.is-active{color:var(--accent-admin)}.tab-panel{display:flex;flex-direction:column;gap:20px;flex:1;min-height:0}.participants-tab-content{display:flex;flex-direction:column;flex:1;min-height:0}.pourcentage-section{margin-bottom:.75rem;padding:12px;background:var(--bg-secondary);border-radius:12px;border:2px solid var(--border-primary);box-shadow:inset 0 1px #ffffff0f}.pourcentage-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.pourcentage-control{display:flex;align-items:center;gap:10px}.slider-wrapper{position:relative;flex:1;height:28px;min-height:28px;display:flex;align-items:center;overflow:visible}.slider-wrapper:before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:10px;background:var(--border-primary);border-radius:5px;border:1px solid var(--border-secondary);pointer-events:none;z-index:0}.slider-progress{position:absolute;left:0;top:50%;transform:translateY(-50%);height:10px;min-width:4px;background:linear-gradient(90deg,#2980b9,#3498db,#5dade2);border-radius:5px;pointer-events:none;z-index:3;transition:width .15s ease;box-shadow:0 0 10px #3498db80}.pourcentage-slider{position:absolute;left:0;right:0;z-index:2;width:100%;height:28px;margin:0;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer}.pourcentage-slider::-webkit-slider-runnable-track{height:10px;background:transparent;border-radius:5px}.pourcentage-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:var(--accent-admin);border:3px solid var(--bg-primary);border-radius:50%;cursor:grab;margin-top:-7px;box-shadow:var(--shadow-md);transition:transform .15s,box-shadow .15s}@supports selector(::-webkit-slider-thumb){.pourcentage-slider::-webkit-slider-thumb:hover{transform:scale(1.08);box-shadow:0 4px 12px #3498db66}.pourcentage-slider::-webkit-slider-thumb:active{cursor:grabbing}}.pourcentage-slider::-moz-range-track{height:10px;background:transparent;border-radius:5px}.pourcentage-slider::-moz-range-thumb{width:24px;height:24px;background:var(--accent-admin);border:3px solid var(--bg-primary);border-radius:50%;cursor:grab;box-shadow:var(--shadow-md)}.pourcentage-slider::-moz-range-thumb:hover{transform:scale(1.08)}.pourcentage-input-wrapper{display:flex;align-items:center;gap:4px;flex-shrink:0}.pourcentage-number{width:56px;text-align:center;padding:7px 8px;border:2px solid var(--border-primary);border-radius:8px;font-size:13px;font-weight:600;background:var(--bg-input);color:var(--text-primary)}.pourcentage-number:focus{outline:none;border-color:var(--accent-admin)}.pourcentage-unit{font-size:13px;font-weight:600;color:var(--text-secondary)}.pourcentage-scale{display:flex;justify-content:space-between;margin-top:6px;padding:0 2px}.pourcentage-scale span{font-size:11px;color:var(--text-tertiary)}.form-group input,.form-group textarea,.form-select{padding:8px 10px;border:2px solid var(--border-primary);border-radius:8px;font-size:13px;font-family:inherit;transition:border-color .2s;background:var(--bg-primary)}.form-group input:focus,.form-group textarea:focus,.form-select:focus{outline:none;border-color:var(--accent-admin)}.form-group textarea{resize:vertical;min-height:56px}.form-group .description-textarea{min-height:140px;line-height:1.45}.form-select{cursor:pointer}.ef-action-buttons{display:flex;flex-direction:row;gap:10px}.ef-action-btn{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;padding:10px 12px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;flex:1;min-height:62px}.ef-action-btn:hover{border-color:var(--accent-admin);box-shadow:var(--shadow-md);transform:translateY(-2px);background:color-mix(in oklab,var(--bg-primary) 92%,white 8%)}.ef-action-btn-icon{display:flex;align-items:center;justify-content:center;width:auto;height:auto;min-width:24px;border-radius:0;background:transparent;color:var(--accent-admin);box-shadow:none}.ef-action-btn-icon .ef-action-icon-svg{stroke:currentColor;width:22px!important;height:22px!important;stroke-width:2.6;flex-shrink:0;display:block}.ef-action-btn-icon.ef-cours-icon{color:var(--accent-admin)}.ef-action-btn-icon.ef-qcm-icon{color:var(--color-secondary)}.ef-action-btn-icon.ef-docs-icon{color:#8b5cf6}.ef-action-btn-content{flex:1;min-width:0}.ef-action-btn-title{display:block;font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.ef-action-btn-subtitle{display:block;font-size:11px;color:var(--text-secondary)}.ef-action-btn-arrow{flex-shrink:0;color:var(--text-tertiary);opacity:.7}.ef-action-btn:hover .ef-action-btn-arrow{color:var(--accent-admin);opacity:1}.form-footer{padding:8px 0;margin-top:10px;background:var(--bg-primary);border-top:2px solid var(--border-primary);box-shadow:0 -8px 20px #0000001f}.gestion-formation-page .form-footer{position:fixed;bottom:0;left:260px;right:0;padding:8px 12px;margin-top:0;z-index:100;background:var(--bg-primary);box-shadow:0 -4px 16px #0000001a}.gestion-formation-page .footer-buttons-wrapper{background:var(--bg-primary)}.gestion-formation-page .formation-form{padding-bottom:52px}.footer-buttons-wrapper{display:flex;justify-content:flex-end;align-items:center;width:100%}.left-buttons{display:flex;gap:12px;justify-content:flex-end;width:auto}.navigation-buttons{display:flex;gap:16px}.btn-primary:hover:not(:disabled){background:var(--accent-admin-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3498db4d}.form-footer .btn-secondary{border-radius:8px;font-size:14px;font-weight:600;font-family:inherit}.btn-secondary:focus-visible,.btn-save:focus-visible,.btn-gerer-participants:focus-visible,.ef-action-btn:focus-visible,.btn-copy-lien:focus-visible,.btn-mail-lien:focus-visible{outline:2px solid color-mix(in oklab,var(--accent-admin) 65%,white 35%);outline-offset:2px}.btn-save{display:flex;align-items:center;gap:8px;padding:10px 18px;background:var(--accent-admin);color:var(--text-inverse);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-save:hover:not(:disabled){background:var(--accent-admin-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3498db4d}.btn-save:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in oklab,var(--accent-admin) 38%,var(--border) 62%);color:color-mix(in oklab,var(--text-inverse) 75%,var(--text-tertiary) 25%);transform:none;box-shadow:none}.candidat-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-primary);border-bottom:1px solid var(--border-primary);cursor:pointer;transition:all .2s}.candidat-item .candidat-avatar-small{width:36px;height:36px;min-width:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;box-shadow:0 2px 8px #3498db33}.candidat-item .btn-add-candidat,.candidat-affecte-item .btn-add-candidat{width:32px;height:32px;border:none;background:var(--accent-admin);color:var(--text-inverse);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.candidat-item .btn-add-candidat svg,.candidat-affecte-item .btn-add-candidat svg{stroke:#fff!important;fill:none}.candidat-item .btn-add-candidat:hover,.candidat-affecte-item .btn-add-candidat:hover{background:var(--accent-admin-hover);transform:scale(1.05)}.participants-candidats-layout,.participants-groupes-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch;flex:1;min-height:0}.participants-groupes-col{min-width:0;display:flex;flex-direction:column;gap:8px;min-height:0}.groupes-left-panel{display:flex;flex-direction:column;min-height:0;gap:6px}.groupes-left-toolbar{display:flex;flex-direction:column;gap:4px}.groupes-left-toolbar label{font-size:12px;font-weight:600;color:var(--text-primary)}.groupes-left-toolbar #recherche-groupe{border-radius:0;border:1px solid var(--border-primary);background:transparent;padding:7px 8px;font-size:12px}.groupes-left-toolbar #recherche-groupe:focus{outline:none;border-color:var(--accent-admin)}.groupes-left-meta{font-size:11px;color:var(--text-tertiary);padding:2px 0}.groupes-list-compact{display:flex;flex-direction:column;min-height:0;max-height:430px;overflow-y:auto;border-top:1px solid rgba(148,163,184,.25)}.groupe-list-item{border:none;border-bottom:1px solid rgba(148,163,184,.2);border-radius:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:32px;padding:5px 6px;text-align:left;cursor:pointer;transition:background-color .12s ease}.groupe-list-item:hover{background:#3498db0d}.groupe-list-item.is-selected{background:#3498db1a;box-shadow:inset 2px 0 0 var(--accent-admin)}.groupe-list-name{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.groupe-list-right{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.groupe-list-count{font-size:11px;color:var(--text-secondary);min-width:18px;text-align:right}.groupe-list-status{font-size:10px;color:var(--accent-admin)}.groupe-details-panel{border:2px solid var(--border-primary);border-radius:10px;background:var(--bg-secondary);padding:10px;min-height:0;display:flex;flex-direction:column;gap:10px;flex:1}.groupe-details-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.groupe-actions-row{display:inline-flex;gap:8px;align-items:center}.groupes-membres-list{display:flex;flex-direction:column;overflow-y:auto;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-primary)}.participants-candidats-col{min-width:0}.participants-candidats-col--left,.participants-candidats-col--right{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0}.participants-candidats-col--left .candidats-disponibles{margin-top:0}.candidats-affectes-section{display:flex;flex-direction:column;gap:16px;margin-top:0;flex:1;min-height:0}.empty-state--compact{padding:20px}.candidats-affectes-list{display:flex!important;flex-direction:column!important;flex:1;height:100%;min-height:0;max-height:none;overflow-y:auto;background:var(--bg-primary);border-radius:12px;border:2px solid var(--border-primary);width:100%}.modal-participants-body .candidats-affectes-list{max-height:none}.candidats-disponibles-virtual-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.modal-participants-body .candidats-disponibles-virtual-scroll{max-height:none}.candidat-affecte-item.candidat-affecte-item--virtual-row{border-bottom:1px solid var(--border-primary);box-sizing:border-box;cursor:pointer}.candidat-affecte-item.candidat-affecte-item--virtual-row:last-child{border-bottom:1px solid var(--border-primary)}.candidat-affecte-item{display:flex!important;align-items:center;gap:12px;padding:10px 16px;background:var(--bg-primary);border-bottom:1px solid var(--border-primary);transition:all .2s ease;width:100%;flex-direction:row!important;position:relative}.candidat-affecte-item .candidat-avatar-small,.candidat-avatar-list{width:36px;height:36px;min-width:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;box-shadow:0 2px 8px #3498db33}.groupe-nom-item{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.2}.groupe-description-item{font-size:11px;color:var(--text-secondary);line-height:1.2;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.btn-remove-groupe svg{display:block!important;width:18px!important;height:18px!important;fill:none!important;stroke:var(--danger)!important;stroke-width:2!important;flex-shrink:0}.btn-remove-groupe:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-remove-groupe:disabled:hover{transform:none}.btn-remove-groupe-text{width:auto;height:auto;padding:8px 12px;font-size:13px;font-weight:600}@media(max-width:768px){.gestion-formation-title{font-size:22px}.modal-participants{height:auto;min-height:0}.participants-candidats-layout,.participants-groupes-layout{grid-template-columns:1fr}.gestion-formation-page .form-footer{left:0;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}.gestion-layout{grid-template-columns:1fr}.form-part{padding:10px}.page-header{flex-direction:column;gap:16px}.footer-buttons-wrapper{flex-direction:column;gap:16px;align-items:stretch}.left-buttons,.navigation-buttons,.ef-action-buttons{flex-direction:column}.ef-action-btn{min-height:72px}.ef-action-btn-arrow{display:none}.two-columns-container{grid-template-columns:1fr}}.lien-candidat-group .lien-candidat-hint{font-size:12px;color:var(--text-secondary);margin:0 0 3px;line-height:1.25}.lien-candidat-row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.modal-documents{max-width:980px}.documents-actions-top{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;align-items:center}.documents-qcm-echoues-label{flex:1 1 100%;display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary, #5c6370);cursor:pointer;-webkit-user-select:none;user-select:none}.documents-qcm-echoues-label input{cursor:pointer}.documents-list-compact{display:flex;flex-direction:column;gap:8px;max-height:48vh;overflow:auto;margin-top:8px;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-primary);padding:6px}.documents-list-compact--empty{min-height:56px;max-height:56px;padding:4px 6px;display:grid;place-items:center}.documents-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-secondary);min-height:42px}.documents-row-main{min-width:0;flex:1;display:flex;align-items:center;gap:10px;overflow:hidden}.documents-row-name{flex:0 1 220px;min-width:120px;max-width:240px;font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.documents-row-meta{display:flex;flex-wrap:nowrap;align-items:center;min-width:0;flex:1;gap:8px;font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.documents-row-meta>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-badge-inline,.cert-badge-inline{border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.score-badge-inline{background:#dbeafe;color:#1d4ed8}.cert-badge-inline.is-success{background:#dcfce7;color:#166534}.score-badge-inline.is-muted,.cert-badge-inline.is-muted{background:#f1f5f9;color:#64748b}.documents-row-actions{display:flex;flex-wrap:nowrap;gap:8px;flex-shrink:0}.documents-row-actions .btn-secondary{padding:5px 9px;font-size:12px;white-space:nowrap}.empty-state-documents{width:fit-content;max-width:100%;min-height:30px;padding:4px 12px;margin:0;border:1px dashed var(--border-primary);border-radius:999px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box}.empty-state-documents p{margin:0;font-size:11px;font-weight:600;color:var(--text-tertiary);white-space:nowrap;line-height:1}.lien-candidat-input{flex:1;min-width:0;padding:8px 10px;font-size:12px;border:2px solid var(--border-primary);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary)}.btn-copy-lien{padding:8px 12px;font-size:13px;font-weight:600;border-radius:8px;border:none;cursor:pointer;background:var(--accent-primary, #2563eb);color:#fff;white-space:nowrap;transition:opacity .2s}.btn-copy-lien:hover{opacity:.92}.btn-mail-lien{padding:8px 12px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid var(--border-secondary);cursor:pointer;background:var(--bg-secondary);color:var(--text-primary);white-space:nowrap;transition:all .2s}.btn-mail-lien:hover:not(:disabled){border-color:var(--accent-admin);color:var(--accent-admin)}.btn-mail-lien:disabled{opacity:.6;cursor:not-allowed}.nouvelle-formation-page{width:100%;max-width:none;padding:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.page-title-section{display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 auto 24px;width:100%}.page-title-section h2{font-size:32px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.page-title-section p{color:var(--text-secondary);font-size:16px;margin:0}.btn-back{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-back:hover{background:var(--bg-secondary);border-color:var(--border-secondary);color:var(--text-primary)}.formation-form{background:var(--bg-primary);border-radius:12px;padding:32px;box-shadow:var(--shadow-md);max-width:1200px;margin:0 auto}.form-part{margin-bottom:32px}.form-part-header{margin-bottom:24px}.form-part-header h3{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.section-description{color:var(--text-secondary);font-size:14px;margin:0}.required{color:var(--danger)}.form-group textarea{resize:vertical;min-height:120px}.action-buttons{display:flex;flex-direction:row;gap:16px}.action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:var(--bg-primary);border:2px solid var(--border-primary);border-radius:12px;cursor:pointer;transition:all .2s;text-align:center;flex:1}.action-btn:hover{border-color:var(--accent-admin);box-shadow:0 4px 12px #3b82f61a;transform:translateY(-2px)}.action-btn svg:first-child{color:var(--accent-admin);flex-shrink:0}.action-btn svg:last-child{display:none}.action-btn-title{display:block;font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.action-btn-subtitle{display:block;font-size:13px;color:var(--text-secondary)}.nouvelle-formation-page .form-footer{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:2px solid var(--border-primary);margin-top:32px;background:transparent;box-shadow:none}.navigation-buttons{display:flex;gap:12px;background:transparent;border:none;box-shadow:none;padding:0}.btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 20px;background:var(--accent-admin);color:var(--text-inverse);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 20px;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.form-footer>.btn-secondary,.form-footer .navigation-buttons>.btn-secondary,.form-footer .navigation-buttons>.btn-primary{min-width:120px}.nouvelle-formation-page .form-footer .btn-primary,.nouvelle-formation-page .form-footer .btn-secondary{font-size:14px;line-height:1.25}.search-candidat-box svg{position:absolute;left:14px;color:var(--text-tertiary);fill:none;stroke:currentColor;stroke-width:2;z-index:1;pointer-events:none;width:18px;height:18px}.search-candidat-box input{width:100%;padding:12px 16px 12px 48px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;transition:border-color .2s;background:var(--bg-primary);box-sizing:border-box}.candidats-disponibles{margin-top:8px;background:var(--bg-primary);border:2px solid var(--border-primary);border-radius:8px;max-height:300px;overflow-y:auto}.candidats-list{display:flex!important;flex-direction:column!important;width:100%}.candidat-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-primary);border-bottom:1px solid var(--bg-tertiary);cursor:pointer;transition:all .2s}.candidat-item .candidat-avatar-small{width:36px;height:36px;min-width:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;box-shadow:0 2px 8px #3b82f633}.candidat-item .candidat-info-item{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.candidat-item .candidat-nom-item{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.candidat-item .candidat-email-item{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.candidat-item .btn-add-candidat{width:32px;height:32px;border:none;background:var(--accent-admin);color:var(--text-inverse);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.candidat-item .btn-add-candidat svg{stroke:#fff!important;fill:none}.candidat-item .btn-add-candidat:hover{background:var(--accent-admin-hover);transform:scale(1.05)}.candidats-affectes-section>label:before{content:"";width:4px;height:20px;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);border-radius:2px;box-shadow:0 2px 8px #3498db4d}.candidat-affecte-item .candidat-avatar-small,.candidat-avatar-list{width:36px;height:36px;min-width:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;box-shadow:0 2px 8px #3b82f633}.candidat-affecte-item .candidat-info-item,.candidat-info-list{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.candidat-affecte-item .candidat-nom-item,.candidat-nom-list{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.candidat-affecte-item .candidat-email-item,.candidat-email-list{font-size:12px;color:var(--text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-remove-candidat svg{stroke:#64748b!important;fill:none;transition:stroke .2s ease}.btn-remove-candidat:hover svg{stroke:#dc2626!important}.groupes-affectes-section{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.groupes-affectes-section>label{font-size:14px;font-weight:600;color:var(--text-primary)}.groupes-affectes-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto;padding:8px;background:var(--bg-secondary);border-radius:8px;border:2px solid var(--border-primary)}.groupe-affecte-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-primary);transition:all .2s}.groupe-affecte-item:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-sm)}.groupe-info-item{display:flex;flex-direction:column;gap:4px;flex:1}.groupe-nom-item{font-size:14px;font-weight:600;color:var(--text-primary)}.groupe-description-item{font-size:12px;color:var(--text-secondary)}.btn-remove-groupe{width:32px;height:32px;border:none;background:var(--danger-light);color:var(--danger);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.btn-remove-groupe svg{display:block!important;width:18px!important;height:18px!important;fill:none!important;stroke:#dc2626!important;stroke-width:2!important;flex-shrink:0}.btn-remove-groupe:hover{background:var(--danger-light);transform:scale(1.05)}.participants-tabs{display:flex;gap:8px;margin-bottom:24px}.tab-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:10px;font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s}.tab-btn:hover{border-color:var(--border-secondary);color:var(--text-primary)}.tab-btn.active{background:var(--accent-admin);border-color:var(--accent-admin);color:var(--text-inverse)}.tab-panel{display:flex;flex-direction:column;gap:20px}.search-hint{padding:16px;background:var(--bg-secondary);border-radius:8px;border:1px dashed var(--border-primary)}.search-hint p{margin:0;font-size:14px;color:var(--text-tertiary)}.recap-card{background:var(--bg-secondary);border-radius:12px;border:2px solid var(--border-primary);overflow:hidden}.recap-row{display:flex;flex-direction:column;gap:4px;padding:16px 20px;border-bottom:1px solid var(--border-primary)}.recap-row:last-child{border-bottom:none}.recap-label{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.recap-value{font-size:15px;color:var(--text-primary)}@media(max-width:768px){.page-header{flex-direction:column;gap:16px}.footer-buttons-wrapper{flex-direction:column;gap:16px;align-items:stretch}.left-buttons,.navigation-buttons,.action-buttons{flex-direction:column}.action-btn{flex-direction:column;text-align:center}.two-columns-container{grid-template-columns:1fr}}.nouvelle-formation-page .nouvelle-participants-embedded{min-height:520px;display:flex;flex-direction:column}.nouvelle-formation-page .nouvelle-participants-embedded .tab-panel{flex:1;min-height:0}.nouvelle-formation-page .nouvelle-participants-embedded .candidats-affectes-list{max-height:min(420px,50vh);overflow-y:auto}.edition-qcm-container{width:100vw;height:100vh;background:var(--background);overflow:hidden}.edition-qcm-page{width:100%;height:100%;display:flex;flex-direction:column;padding:0;max-width:none;margin:0}.edition-qcm-page .page-header{flex-shrink:0;margin-bottom:0;background:var(--surface);border-bottom:1px solid var(--border)}.edition-qcm-page .page-header--compact{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1.5rem;gap:1rem}.edition-qcm-page .page-header--compact .header-actions{flex-shrink:0;display:flex;align-items:center;gap:.75rem}.qcm-option-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.qcm-option-checkbox input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.qcm-option-checkbox span{-webkit-user-select:none;user-select:none}.edition-qcm-page .page-header--compact .header-actions button{padding:.5rem 1rem;font-size:.875rem}.qcm-split-pane{flex:1;min-height:0;display:flex;overflow:hidden}.qcm-sidebar{width:280px;min-width:280px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.qcm-sidebar .sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.qcm-sidebar .sidebar-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.qcm-sidebar .sidebar-status{font-size:.75rem;font-weight:500}.qcm-sidebar .sidebar-status.success{color:var(--success)}.qcm-sidebar .sidebar-status.warning{color:var(--danger)}.qcm-sidebar .btn-add-question{display:flex;align-items:center;justify-content:center;gap:.5rem;width:calc(100% - 1.5rem);margin:1rem .75rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;border:none;background:var(--primary);color:#fff;transition:all .2s}.qcm-sidebar .btn-add-question:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.qcm-sidebar .btn-add-question:disabled{opacity:.6;cursor:not-allowed}.qcm-sidebar .sidebar-empty{padding:1.5rem;text-align:center}.qcm-sidebar .sidebar-empty p{font-size:.875rem;color:var(--text-tertiary);margin:0}.qcm-sidebar .questions-list{flex:1;min-height:0;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.5rem}.qcm-sidebar .question-card{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--background);cursor:pointer;transition:all .2s}.qcm-sidebar .question-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #3b82f61a}.qcm-sidebar .question-card.selected{border-color:var(--primary);background:var(--accent-admin-light, rgba(59, 130, 246, .08));box-shadow:0 2px 8px #3b82f626}.qcm-sidebar .question-number{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;color:var(--accent-admin);background:var(--border);border-radius:6px}.qcm-sidebar .question-info{flex:1;min-width:0}.qcm-sidebar .question-info h4{font-size:.9375rem;font-weight:500;color:var(--text-primary);margin:0 0 .25rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qcm-sidebar .question-incomplete{font-size:.6875rem;padding:.125rem .375rem;border-radius:999px;background:var(--danger-light);color:var(--danger)}.edition-draft-badge{font-size:.6875rem;font-weight:600;letter-spacing:.02em;padding:.2rem .55rem;border-radius:999px;background:#f59e0b33;color:#f59e0b;border:1px solid rgba(245,158,11,.45)}.qcm-sidebar .question-meta-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.2rem;pointer-events:none}.qcm-sidebar .question-draft-badge{font-size:.6875rem;padding:.125rem .375rem;border-radius:999px;font-weight:500;background:#3b82f624;color:var(--primary);border:1px solid rgba(59,130,246,.35);pointer-events:none}.qcm-sidebar .question-actions{flex-shrink:0}.qcm-sidebar .btn-icon{display:flex;align-items:center;justify-content:center;padding:6px;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.qcm-sidebar .btn-icon.btn-danger{background:var(--danger-light);color:var(--danger)}.qcm-sidebar .btn-icon.btn-danger:hover{background:var(--danger);color:#fff}.qcm-editor-panel{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--background);overflow-y:auto}.editor-panel-content{display:flex;flex-direction:column;height:100%;padding:2rem;max-width:100%}.editor-panel-header{flex-shrink:0;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.editor-body{flex:1;overflow-y:auto;padding-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:1.5rem}.form-group textarea{padding:12px 16px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s;background:var(--bg-input);color:var(--text-primary);resize:vertical;min-height:120px}.form-group textarea:focus{outline:none;border-color:var(--accent-admin)}.reponses-section{margin-top:1.5rem}.reponses-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.reponses-header label{font-size:14px;font-weight:600;color:var(--text-primary)}.btn-add-reponse{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-primary);color:var(--accent-admin);border:2px solid var(--accent-admin);border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-add-reponse:hover{background:var(--accent-admin);color:var(--text-inverse)}.reponses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.reponse-item{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:8px}.reponse-input{width:100%;padding:10px 14px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s;background:var(--bg-primary)}.reponse-input:focus{outline:none;border-color:var(--accent-admin)}.reponse-actions{display:flex;gap:.5rem;align-items:center}.btn-correct{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-correct:hover{border-color:var(--accent-admin);color:var(--accent-admin)}.btn-correct.active{background:var(--info-light);border-color:var(--accent-admin);color:var(--info)}.btn-delete-small{display:flex;align-items:center;justify-content:center;padding:8px;background:var(--danger-light);color:var(--danger);border:2px solid var(--danger-light);border-radius:6px;cursor:pointer;transition:all .2s}.btn-delete-small:hover{background:var(--danger);color:#fff}.btn-primary{display:flex;align-items:center;gap:8px;padding:.5rem 1rem;background:var(--accent-admin);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover{background:var(--accent-admin-hover);transform:translateY(-1px)}.btn-secondary{display:flex;align-items:center;gap:8px;padding:.5rem 1rem;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.qcm-bank-modal-overlay{position:fixed;inset:0;z-index:1000;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1rem}.qcm-bank-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:720px;max-height:min(90vh,640px);display:flex;flex-direction:column;box-shadow:0 20px 50px #0003}.qcm-bank-modal--wide{max-width:min(960px,96vw);max-height:min(88vh,720px)}.qcm-bank-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.1rem;border-bottom:1px solid var(--border)}.qcm-bank-modal-header h2{margin:0;font-size:1.05rem;font-weight:700;color:var(--text-primary)}.qcm-bank-modal-tabs{display:flex;gap:.25rem;padding:.5rem 1rem 0;border-bottom:1px solid var(--border)}.qcm-bank-modal-tabs button{padding:.45rem .85rem;border:none;background:transparent;cursor:pointer;font-size:.875rem;color:var(--text-secondary);border-radius:8px 8px 0 0;margin-bottom:-1px}.qcm-bank-modal-tabs button.active{background:var(--background);color:var(--text-primary);font-weight:600;border:1px solid var(--border);border-bottom-color:var(--background)}.qcm-bank-modal-body{flex:1;min-height:0;overflow-y:auto;padding:1rem 1.1rem}.qcm-bank-search-input{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;margin-bottom:.75rem;background:var(--background);color:var(--text-primary);font-size:.9rem}.qcm-bank-result-row{display:flex;gap:.65rem;align-items:flex-start;padding:.55rem .45rem;border-radius:8px;border:1px solid transparent;cursor:pointer;font-size:.82rem}.qcm-bank-result-row:hover{background:var(--background);border-color:var(--border)}button.qcm-bank-result-row--click{width:100%;margin:0;font:inherit;color:inherit;text-align:left;background:transparent;cursor:pointer}button.qcm-bank-result-row--click:focus-visible{outline:2px solid var(--accent-admin, #3b82f6);outline-offset:2px}.qcm-bank-result-row .excerpt{color:var(--text-primary);line-height:1.35}.qcm-bank-result-row .chips{margin-top:.25rem;display:flex;flex-wrap:wrap;gap:.25rem}.qcm-bank-result-row .chip{font-size:.68rem;padding:.1rem .4rem;border-radius:999px;background:var(--background);border:1px solid var(--border);color:var(--text-tertiary)}.qcm-bank-modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;padding:.75rem 1.1rem;border-top:1px solid var(--border);background:var(--surface)}.qcm-bank-modal-footer .hint{font-size:.8rem;color:var(--text-tertiary)}.qcm-bank-explorer{display:flex;min-height:300px;max-height:min(52vh,420px);border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--background)}.qcm-bank-explorer-sidebar{width:220px;min-width:200px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface);overflow:hidden}.qcm-bank-explorer-sidebar-title{padding:.5rem .75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);border-bottom:1px solid var(--border)}.qcm-bank-explorer-folder-list{list-style:none;margin:0;padding:.35rem;overflow-y:auto;flex:1}.qcm-bank-explorer-folder{display:flex;align-items:flex-start;gap:.45rem;width:100%;padding:.45rem .5rem;margin-bottom:.15rem;border:none;border-radius:8px;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;line-height:1.3}.qcm-bank-explorer-folder:hover{background:var(--background)}.qcm-bank-explorer-folder.active{background:color-mix(in srgb,var(--accent-admin, #3b82f6) 16%,transparent);font-weight:600}.qcm-bank-explorer-folder-icon{flex-shrink:0;color:var(--text-tertiary);margin-top:.05rem}.qcm-bank-explorer-folder.active .qcm-bank-explorer-folder-icon{color:var(--accent-admin, #3b82f6)}.qcm-bank-explorer-folder-label{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.qcm-bank-explorer-folder-name{font-size:.85rem;word-break:break-word}.qcm-bank-explorer-folder-count{font-size:.72rem;color:var(--text-tertiary)}.qcm-bank-explorer-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.qcm-bank-explorer-placeholder,.qcm-bank-explorer-empty{margin:0;padding:1.25rem;font-size:.88rem;color:var(--text-secondary)}.qcm-bank-explorer-main-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--surface)}.qcm-bank-explorer-toolbar-hint{font-size:.78rem;color:var(--text-tertiary);max-width:28rem;line-height:1.35}.qcm-bank-explorer-main-toolbar .btn-secondary{padding:.35rem .65rem;font-size:.8rem}.qcm-bank-explorer-question-list{list-style:none;margin:0;padding:.4rem .5rem;overflow-y:auto;flex:1}.qcm-bank-explorer-question-row{display:flex;gap:.6rem;align-items:flex-start;padding:.5rem .45rem;margin-bottom:.25rem;border-radius:8px;cursor:pointer;border:1px solid transparent}.qcm-bank-explorer-question-row:hover{background:var(--surface);border-color:var(--border)}.qcm-bank-explorer-question-row input{margin-top:.2rem;flex-shrink:0}.qcm-bank-explorer-question-body .excerpt{font-size:.82rem;line-height:1.35;color:var(--text-primary)}.editor-actions-bank{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.qcm-bank-modal .banque-dossiers-checkboxes label{font-size:.88rem;color:var(--text-secondary);cursor:pointer}@media(max-width:768px){.qcm-split-pane{flex-direction:column}.qcm-sidebar{width:100%;min-width:0;max-height:200px}.reponses-grid{grid-template-columns:1fr}.edition-qcm-page .page-header--compact{flex-direction:column;align-items:stretch}}.confirm-dialog-overlay{position:fixed;inset:0;z-index:10000;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1rem;animation:confirmDialogFadeIn .2s ease}@keyframes confirmDialogFadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog-box{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg, 0 20px 50px rgba(0, 0, 0, .2));padding:1.25rem 1.35rem;animation:confirmDialogPop .22s ease}@keyframes confirmDialogPop{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-dialog-title{margin:0 0 .65rem;font-size:1.05rem;font-weight:700;color:var(--text-primary)}.confirm-dialog-body{font-size:.9rem;line-height:1.45;color:var(--text-secondary);margin-bottom:1.25rem}.confirm-dialog-body p{margin:0}.confirm-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.confirm-dialog-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:8px;cursor:pointer;border:2px solid transparent}.confirm-dialog-btn:disabled{opacity:.65;cursor:not-allowed}.confirm-dialog-btn.cancel{background:var(--bg-primary, var(--background));color:var(--text-secondary);border-color:var(--border-primary, var(--border))}.confirm-dialog-btn.cancel:hover:not(:disabled){background:var(--bg-secondary, var(--surface));color:var(--text-primary)}.confirm-dialog-btn.confirm{background:var(--accent-admin, #3b82f6);color:#fff;border-color:var(--accent-admin, #3b82f6)}.confirm-dialog-btn.confirm:hover:not(:disabled){filter:brightness(1.05)}.confirm-dialog-btn.confirm.danger{background:#dc2626;border-color:#dc2626}.confirm-dialog-btn.confirm.danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.banque-qcm-page{display:flex;flex-direction:column;flex:1;height:100%;min-height:0;padding:0;overflow:hidden}.banque-qcm-page>.banque-qcm-empty{flex:1;display:flex;align-items:center;justify-content:center}.banque-qcm-split{flex:1;height:100%;min-height:0;display:flex;border:none;border-radius:0;overflow:hidden;background:var(--surface)}.banque-qcm-dossiers{width:260px;min-width:260px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--background)}.banque-qcm-dossiers-header{padding:.75rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.banque-qcm-dossiers-header span{font-weight:600;font-size:.9rem;color:var(--text-primary)}.banque-header-action{display:inline-flex;align-items:center;justify-content:center;padding:.42rem .68rem;border-radius:8px;border:1px solid color-mix(in srgb,var(--accent-primary, #3b82f6) 30%,var(--border));background:color-mix(in srgb,var(--accent-primary, #3b82f6) 12%,transparent);color:var(--text-primary);font-size:.78rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .1s ease,box-shadow .18s ease}.banque-header-action:hover{background:color-mix(in srgb,var(--accent-primary, #3b82f6) 18%,transparent);border-color:color-mix(in srgb,var(--accent-primary, #3b82f6) 52%,var(--border))}.banque-header-action:active{transform:translateY(1px)}.banque-header-action:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary, #3b82f6) 22%,transparent)}.banque-qcm-dossiers-list{flex:1;min-height:0;overflow-y:auto;padding:.5rem}.banque-dossier-row{display:flex;align-items:center;gap:.35rem;padding:.45rem .5rem;border-radius:6px;cursor:pointer;font-size:.875rem;color:var(--text-secondary);border:none;background:transparent;width:100%;text-align:left}.banque-dossier-row:hover{background:var(--surface);color:var(--text-primary)}.banque-dossier-row.active{background:color-mix(in srgb,var(--accent-primary, #3b82f6) 18%,transparent);color:var(--text-primary);font-weight:600}.banque-dossier-actions{display:flex;gap:.15rem;margin-left:auto;flex-shrink:0}.banque-dossier-actions button{padding:.2rem;border:none;background:transparent;cursor:pointer;color:var(--text-tertiary);border-radius:4px;line-height:0}.banque-dossier-actions button:hover{color:var(--text-primary);background:var(--surface)}.banque-qcm-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.banque-qcm-toolbar{padding:.75rem 1rem;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.banque-qcm-toolbar input[type=search]{flex:1;min-width:160px;padding:.45rem .65rem;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--text-primary);font-size:.875rem}.banque-toolbar-action{display:inline-flex;align-items:center;justify-content:center;padding:.48rem .9rem;border-radius:8px;border:1px solid color-mix(in srgb,var(--accent-primary, #3b82f6) 35%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--accent-primary, #3b82f6) 100%,#5ea0ff),color-mix(in srgb,var(--accent-primary, #3b82f6) 92%,#2b6de0));color:#fff;font-size:.84rem;font-weight:600;line-height:1.15;white-space:nowrap;cursor:pointer;transition:filter .18s ease,transform .1s ease,box-shadow .18s ease}.banque-toolbar-action:hover{filter:brightness(1.06)}.banque-toolbar-action:active{transform:translateY(1px)}.banque-toolbar-action:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary, #3b82f6) 22%,transparent),0 8px 20px color-mix(in srgb,var(--accent-primary, #3b82f6) 26%,transparent)}.banque-qcm-body{flex:1;min-height:0;display:flex;overflow:hidden}.banque-qcm-list-col{width:42%;min-width:240px;min-height:0;border-right:1px solid var(--border);overflow-y:auto;padding:.5rem}.banque-qcm-question-pill{padding:.6rem .65rem;margin-bottom:.35rem;border-radius:8px;cursor:pointer;font-size:.82rem;color:var(--text-primary);border:1px solid transparent;background:var(--background);line-height:1.35}.banque-qcm-question-pill:hover{border-color:var(--border)}.banque-qcm-question-pill.selected{border-color:color-mix(in srgb,var(--accent-primary, #3b82f6) 55%,var(--border));background:color-mix(in srgb,var(--accent-primary, #3b82f6) 10%,transparent)}.banque-qcm-question-pill .pill-meta{display:block;margin-top:.25rem;font-size:.72rem;color:var(--text-tertiary)}.banque-qcm-editor-col{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;padding:1rem 1.25rem}.banque-qcm-editor-col .form-group{margin-bottom:1rem}.banque-qcm-editor-col label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.35rem;color:var(--text-secondary)}.banque-qcm-editor-col textarea{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:8px;background:var(--background);color:var(--text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:100px}.banque-section-label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.5rem;color:var(--text-secondary)}.banque-empty-inline{font-size:.85rem;color:var(--text-tertiary)}.banque-dossiers-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.banque-dossier-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem .35rem .5rem;border:1px solid var(--border);background:var(--background);border-radius:999px;color:var(--text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease;-webkit-user-select:none;user-select:none;line-height:1}.banque-dossier-chip:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent-primary, #3b82f6) 55%,var(--border));color:var(--text-primary)}.banque-dossier-chip:active:not(:disabled){transform:scale(.97)}.banque-dossier-chip:disabled{opacity:.55;cursor:wait}.banque-dossier-chip.active{background:color-mix(in srgb,var(--accent-primary, #3b82f6) 14%,transparent);border-color:var(--accent-primary, #3b82f6);color:var(--text-primary)}.banque-dossier-chip-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:transparent;flex-shrink:0;transition:background .15s ease,border-color .15s ease,color .15s ease}.banque-dossier-chip.active .banque-dossier-chip-check{background:var(--accent-primary, #3b82f6);border-color:var(--accent-primary, #3b82f6);color:#fff}.banque-dossier-chip-label{white-space:nowrap}.banque-reponse-row{display:flex;gap:.4rem;align-items:center;margin-bottom:.4rem;padding:.25rem;border-radius:8px;transition:background .15s ease}.banque-reponse-row.is-correct{background:color-mix(in srgb,var(--accent-primary, #3b82f6) 8%,transparent)}.banque-reponse-row input[type=text]{flex:1;padding:.5rem .65rem;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--text-primary);font-size:.875rem;transition:border-color .15s ease,box-shadow .15s ease}.banque-reponse-row input[type=text]:focus{outline:none;border-color:var(--accent-primary, #3b82f6);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary, #3b82f6) 18%,transparent)}.banque-reponse-correct{flex-shrink:0;width:30px;height:30px;padding:0;border-radius:999px;border:1.5px solid var(--border);background:var(--background);color:var(--text-tertiary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.banque-reponse-correct:hover{border-color:var(--accent-primary, #3b82f6);color:var(--accent-primary, #3b82f6)}.banque-reponse-correct:active{transform:scale(.92)}.banque-reponse-correct.active{background:var(--accent-primary, #3b82f6);border-color:var(--accent-primary, #3b82f6);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary, #3b82f6) 22%,transparent)}.banque-reponse-correct-dot{width:10px;height:10px;border-radius:999px;border:1.5px solid currentColor;display:block;opacity:.5}.banque-reponse-correct:hover .banque-reponse-correct-dot{opacity:1}.banque-reponse-remove{flex-shrink:0;width:30px;height:30px;padding:0;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-tertiary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.banque-reponse-remove:hover:not(:disabled){background:color-mix(in srgb,#dc2626 10%,transparent);border-color:color-mix(in srgb,#dc2626 30%,transparent);color:#dc2626}.banque-reponse-remove:disabled{opacity:.3;cursor:not-allowed}.banque-reponse-add{display:inline-flex;align-items:center;gap:.35rem;margin-top:.5rem;padding:.45rem .85rem;border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.banque-reponse-add:hover{border-color:var(--accent-primary, #3b82f6);color:var(--accent-primary, #3b82f6);background:color-mix(in srgb,var(--accent-primary, #3b82f6) 6%,transparent)}.banque-qcm-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.banque-qcm-actions-row button{padding:.5rem .85rem;border-radius:8px;font-size:.875rem;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-primary)}.banque-qcm-actions-row button.primary{background:var(--accent-primary, #3b82f6);color:#fff;border-color:transparent}.banque-qcm-actions-row button.danger{color:#dc2626;border-color:color-mix(in srgb,#dc2626 35%,transparent)}.banque-qcm-empty{padding:2rem 1rem;text-align:center;color:var(--text-tertiary);font-size:.9rem}.banque-chip-folder{display:inline-block;margin-right:.35rem;margin-top:.2rem;padding:.15rem .45rem;border-radius:999px;background:var(--background);border:1px solid var(--border);font-size:.7rem;color:var(--text-secondary)}@media(max-width:768px){.banque-qcm-page{overflow:visible;height:auto}.banque-qcm-split{flex-direction:column;height:auto;overflow:visible}.banque-qcm-dossiers{width:100%;min-width:0;border-right:none;border-bottom:1px solid var(--border)}.banque-qcm-dossiers-list{max-height:180px;overflow-y:auto}.banque-qcm-main{overflow:visible}.banque-qcm-toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.banque-qcm-toolbar input[type=search]{width:100%;min-width:0}.banque-qcm-body{flex-direction:column;overflow:visible}.banque-qcm-list-col{width:100%;min-width:0;max-height:320px;border-right:none;border-bottom:1px solid var(--border)}.banque-qcm-editor-col{padding:1rem;overflow:visible}.banque-qcm-actions-row{flex-direction:column}.banque-qcm-actions-row button{width:100%}}.rich-text-editor{border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--background)}.rich-text-editor-toolbar{display:flex;gap:1px;padding:.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.rich-text-editor-toolbar button{padding:.5rem .75rem;font-size:.875rem;font-weight:600;background:transparent;border:none;border-radius:4px;cursor:pointer;color:var(--text-secondary);transition:all .2s}.rich-text-editor-toolbar button:hover{background:var(--background);color:var(--text-primary)}.rich-text-editor-toolbar button.active{background:var(--primary);color:#fff}.rich-text-editor-toolbar button svg{display:block}.rich-text-editor-toolbar-divider{width:1px;height:20px;background:var(--border);margin:0 .25rem;align-self:center}.rich-text-editor .ProseMirror{min-height:160px;padding:.75rem 1rem;font-size:.875rem;color:var(--text-primary);outline:none}.rich-text-editor .ProseMirror p{margin:0 0 .5rem}.rich-text-editor .ProseMirror p:last-child{margin-bottom:0}.rich-text-editor .ProseMirror h2{font-size:1.25rem;font-weight:600;margin:1rem 0 .5rem}.rich-text-editor .ProseMirror h2:first-child{margin-top:0}.rich-text-editor .ProseMirror h3{font-size:1.125rem;font-weight:600;margin:.75rem 0 .5rem}.rich-text-editor .ProseMirror ul,.rich-text-editor .ProseMirror ol{padding-left:1.5rem;margin:.5rem 0}.rich-text-editor .ProseMirror:empty:before{content:attr(data-placeholder);color:var(--text-tertiary)}.rich-text-editor-loading{min-height:160px;display:flex;align-items:center;justify-content:center;font-size:.875rem;color:var(--text-tertiary);border:1px solid var(--border);border-radius:6px}.schema-editor{border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--background)}.schema-editor-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.5rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);min-height:88px}.schema-toolbar-group{display:flex;align-items:center;gap:.5rem}.schema-toolbar-group button{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:all .2s}.schema-toolbar-group button:hover{background:var(--background);color:var(--text-primary)}.schema-toolbar-group button.active{background:var(--primary);border-color:var(--primary);color:#fff}.schema-toolbar-selection{margin-left:auto;padding-left:.75rem;border-left:1px solid var(--border)}.schema-transform-controls{display:flex;align-items:center;gap:1rem}.schema-transform-controls label{display:flex;align-items:center;gap:.375rem}.schema-number-input{width:60px;padding:.25rem .5rem;font-size:.875rem;border:1px solid var(--border);border-radius:4px;background:var(--background);color:var(--text-primary)}.schema-number-input:focus{outline:none;border-color:var(--primary)}.schema-toolbar-label{font-size:.75rem;color:var(--text-tertiary)}.schema-color-palette{display:flex;gap:.25rem}.schema-color-btn{width:24px;height:24px;padding:0;border:2px solid transparent;border-radius:4px;cursor:pointer;transition:border-color .2s}.schema-color-btn:hover,.schema-color-btn.active{border-color:var(--text-primary)}.schema-color-btn--light{border:1px solid var(--border)}.schema-color-btn--light:hover,.schema-color-btn--light.active{border-color:var(--text-primary);border-width:2px}.schema-delete-btn{color:var(--danger, #ef4444)!important}.schema-delete-btn:hover{background:#ef44441a!important}.schema-editor-body{display:flex;min-height:0}.schema-editor-canvas-wrapper{position:relative;flex:1;min-width:0;overflow:hidden;max-height:min(80vh,700px);display:flex;justify-content:center;align-items:center;aspect-ratio:16 / 9}.schema-canvas-16-9--16-9{flex-shrink:0;width:1120px;height:630px}.schema-elements-sidebar{width:220px;min-width:220px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);padding:.75rem;overflow-y:auto;max-height:min(80vh,700px)}.schema-sidebar-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.schema-sidebar-empty{font-size:.8125rem;color:var(--text-tertiary);margin:0;line-height:1.4}.schema-elements-list{list-style:none;margin:0;padding:0}.schema-element-item{display:flex;align-items:center;gap:.375rem;padding:.5rem .375rem;border-radius:6px;cursor:grab;transition:background .15s,opacity .15s;margin-bottom:.25rem}.schema-element-item:active{cursor:grabbing}.schema-element-item.schema-element-dragging{opacity:.5}.schema-element-drag-handle{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:grab}.schema-element-item:hover .schema-element-drag-handle{color:var(--text-secondary)}.schema-element-item:hover{background:var(--background)}.schema-element-item.selected{background:#3b82f626;border:1px solid var(--primary)}.schema-element-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.schema-element-item.selected .schema-element-icon{color:var(--primary)}.schema-element-label{flex:1;font-size:.8125rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schema-element-actions{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.schema-element-order-btn{width:22px;height:22px;padding:0;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.schema-element-order-btn:hover:not(:disabled){color:var(--primary);background:#3b82f61a}.schema-element-order-btn:disabled{opacity:.35;cursor:not-allowed}.schema-element-delete{width:22px;height:24px;padding:0;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.schema-element-delete:hover{color:var(--danger, #ef4444);background:#ef44441a}.schema-stage{border:1px solid var(--border);background:#fafafa}.schema-text-edit-overlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--background);border:2px solid var(--primary);border-radius:8px;padding:1rem;box-shadow:0 4px 12px #00000026;z-index:10}.schema-text-edit-overlay textarea{display:block;width:280px;min-height:80px;padding:.5rem .75rem;font-size:.875rem;font-family:inherit;border:1px solid var(--border);border-radius:6px;resize:vertical;outline:none}.schema-text-edit-overlay textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #3b82f633}.schema-text-edit-hint{margin:.5rem 0 0;font-size:.75rem;color:var(--text-tertiary)}.schema-editor-hint{font-size:.75rem;color:var(--text-tertiary);margin:.5rem .75rem 0;padding-bottom:.5rem}.schema-editor--fullscreen{position:fixed;inset:0;z-index:9999;border-radius:0;border:none;display:flex;flex-direction:column;background:var(--surface)}.schema-editor--fullscreen .schema-editor-toolbar{flex-shrink:0}.schema-editor--fullscreen .schema-editor-body{flex:1;min-height:0}.schema-editor--fullscreen .schema-editor-canvas-wrapper{max-height:none;flex:1;display:flex;justify-content:center;align-items:center;aspect-ratio:16 / 9;min-width:0;min-height:0}.schema-editor--fullscreen .schema-canvas-16-9--active{width:1120px;height:630px;flex-shrink:0;transform-origin:center center;max-width:none;max-height:none}.schema-editor--fullscreen .schema-elements-sidebar{max-height:none}.schema-editor--fullscreen .schema-editor-hint{flex-shrink:0}.edition-cours-container{width:100vw;height:100vh;background:var(--background);overflow:hidden}.edition-cours-page{width:100%;height:100%;display:flex;flex-direction:column;padding:0;max-width:none;margin:0}.edition-cours-page .page-header{flex-shrink:0;margin-bottom:0;background:var(--surface);border-bottom:1px solid var(--border)}.edition-cours-page .page-header--compact{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1.5rem;gap:1rem}.page-header-left{display:flex;align-items:center;flex-wrap:wrap;gap:0 .5rem;font-size:.9375rem;color:var(--text-primary)}.page-header-title{font-weight:700;font-size:1rem}.page-header-sep{color:var(--text-tertiary);font-weight:400}.page-header-formation{color:var(--text-secondary)}.edition-cours-page .page-header--compact .header-actions{flex-shrink:0}.edition-cours-page .page-header--compact .header-actions button{padding:.5rem 1rem;font-size:.875rem}.cours-split-pane{flex:1;min-height:0;display:flex;overflow:hidden}.cours-sidebar{width:280px;min-width:280px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.sidebar-status{font-size:.75rem;font-weight:500}.sidebar-status.success{color:var(--success)}.sidebar-status.warning{color:var(--danger)}.btn-add-page{display:flex;align-items:center;justify-content:center;gap:.5rem;width:calc(100% - 1.5rem);margin:1rem .75rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;border:none;background:var(--primary);color:#fff;transition:all .2s}.btn-add-page:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.btn-add-page:disabled{opacity:.6;cursor:not-allowed}.sidebar-empty{padding:1.5rem;text-align:center}.sidebar-empty p{font-size:.875rem;color:var(--text-tertiary);margin:0}.cours-sidebar .pages-list{flex:1;min-height:0;overflow-y:auto;padding:.5rem;gap:.5rem}.cours-sidebar .page-card{padding:.75rem 1rem;cursor:grab;gap:.5rem;align-items:center}.cours-sidebar .page-card:active{cursor:grabbing}.cours-sidebar .page-card-drag-handle{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);line-height:0;opacity:.9}.cours-sidebar .page-card-drag-handle svg{display:block}.cours-sidebar .page-card.selected .page-card-drag-handle{color:var(--text-secondary)}.cours-sidebar .page-card.selected{border-color:var(--primary);background:var(--accent-admin-light);box-shadow:0 2px 8px #3b82f626}.cours-sidebar .page-card .page-number{width:28px;height:28px;font-size:.875rem}.cours-sidebar .page-card .page-info h4{font-size:.9375rem;margin-bottom:.5rem}.cours-sidebar .page-card .page-meta{flex-wrap:wrap;gap:.5rem}.cours-sidebar .page-badge{font-size:.6875rem;padding:.125rem .375rem;border-radius:999px;background:var(--border);color:var(--text-secondary)}.cours-sidebar .page-incomplete{font-size:.6875rem;padding:.125rem .375rem;border-radius:999px;background:var(--danger-light);color:var(--danger)}.cours-sidebar .page-excerpt{font-size:.75rem;color:var(--text-tertiary);margin:.375rem 0 0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cours-editor-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--background);overflow:hidden}.editor-panel-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.editor-panel-content{display:flex;flex-direction:column;min-height:min-content;max-width:800px;margin:0 auto;padding:2rem 2rem 1.5rem;width:100%}.editor-panel-content--contenu-redige{max-width:1000px}.editor-panel-content--schema{max-width:100%;padding:1rem 1.5rem}.editor-panel-content--schema .schema-editor-canvas-wrapper{min-width:0}.editor-panel-content--contenu-redige .rich-text-editor .ProseMirror{min-height:350px}.editor-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-shrink:0;gap:1rem}.editor-panel-header-main{display:flex;flex-direction:column;gap:.25rem}.editor-panel-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.editor-panel-subtitle{margin:0;font-size:.875rem;color:var(--text-secondary)}.form-layout-shell{display:flex;flex-direction:column;gap:1rem}.form-section-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem}.form-section-card .form-group:last-child{margin-bottom:0}.form-section-card--editor{padding:1.125rem}.form-help-text{font-size:.875rem;color:var(--text-secondary);margin:.5rem 0 0}.form-help-text--compact{font-size:.75rem;color:var(--text-tertiary)}.form-checkbox-card{margin-top:1rem;border-top:1px solid var(--border);padding-top:.875rem}.form-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.form-checkbox-label input[type=checkbox]{width:16px;height:16px}.file-info{margin-top:.75rem;border-radius:8px;padding:.625rem .75rem;border:1px solid transparent}.file-info p{margin:0;font-size:.875rem}.file-info p+p{margin-top:.25rem}.file-info--success{color:#047857;background:#10b9811a;border-color:#10b98140}.file-info--info{color:#1d4ed8;background:#3b82f61a;border-color:#3b82f64d}.preview-card{margin-top:1rem;border:1px solid var(--border);border-radius:10px;overflow:hidden}.preview-card-header{padding:.625rem .75rem;background:var(--background);border-bottom:1px solid var(--border);font-size:.875rem;font-weight:600;color:var(--text-primary)}.preview-card-body{padding:.75rem}.preview-card-body--pdf{height:520px;overflow:auto;background:#f8fafc}.preview-error{color:var(--danger);margin:0 0 .75rem}.image-grid-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.5rem}.image-preview-thumb-wrap{position:relative}.image-preview-thumb{width:100%;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}.image-preview-remove{position:absolute;top:4px;right:4px;width:26px;height:26px;padding:0;border:none;border-radius:50%;background:#000000a6;color:#fff;font-size:1.125rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0003}.image-preview-remove:hover{background:var(--danger, #c62828)}.editor-actions-bar{flex-shrink:0;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -6px 20px #0000000f;padding:.875rem 1.5rem calc(.875rem + env(safe-area-inset-bottom,0px));z-index:4}.editor-actions-bar-inner{max-width:none;margin:0;width:100%;display:flex;justify-content:flex-end;align-items:center;gap:1rem;flex-wrap:wrap}.editor-actions-bar-inner .btn-secondary,.editor-actions-bar-inner .btn-primary{min-height:44px;padding:.8rem 1.6rem;font-size:1.02rem;font-weight:600}.cours-editor-panel--schema-wide .editor-actions-bar-inner,.cours-editor-panel--contenu-redige .editor-actions-bar-inner{max-width:none}.editor-empty-state{display:flex;align-items:center;justify-content:center;flex:1;padding:3rem;text-align:center}.editor-empty-state p{font-size:1rem;color:var(--text-tertiary);max-width:400px;margin:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:2rem}.page-title-section h2{font-size:1.875rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.page-title-section p{color:var(--text-secondary);font-size:1rem;margin:0}.header-actions{display:flex;gap:1rem}.empty-state-container{display:flex;justify-content:center;align-items:center;min-height:400px}.empty-state{text-align:center;padding:3rem;background:var(--surface);border-radius:12px;border:2px dashed var(--border);max-width:500px}.empty-state svg{color:var(--text-tertiary);margin-bottom:1rem}.empty-state h3{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.empty-state p{color:var(--text-secondary);margin:0 0 1.5rem}.cours-content{background:var(--surface);border-radius:12px;padding:2rem;border:1px solid var(--border)}.pages-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.pages-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.pages-list{display:flex;flex-direction:column;gap:1rem}.page-card{display:flex;align-items:flex-start;gap:1.5rem;padding:1.5rem;background:var(--background);border:1px solid var(--border);border-radius:8px;transition:all .2s}.page-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #3b82f61a}.page-number{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;border-radius:50%;font-weight:600;font-size:1.125rem}.page-info{flex:1;min-width:0}.page-info h4{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.page-meta{display:flex;gap:1.5rem;margin-bottom:.5rem}.page-type,.page-duration{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.page-type svg{flex-shrink:0}.page-url{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-tertiary);margin-top:.5rem;word-break:break-all}.page-url svg{flex-shrink:0;margin-top:2px}.page-actions{display:flex;gap:.5rem}.cours-sidebar .btn-icon{display:flex;align-items:center;justify-content:center;padding:6px;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.cours-sidebar .page-card .page-actions{cursor:pointer}.cours-sidebar .btn-icon.btn-danger{background:var(--danger-light);color:var(--danger)}.cours-sidebar .btn-icon.btn-danger:hover{background:var(--danger);color:#fff}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--surface);border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border)}.btn-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:all .2s}.btn-close:hover{background:var(--background);color:var(--text-primary)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;font-size:1rem;color:var(--text-primary);background:var(--background);border:1px solid var(--border);border-radius:6px;transition:all .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.form-group textarea{resize:vertical;min-height:100px;font-family:inherit}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s;border:none}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.loading{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;font-size:1.125rem;color:var(--text-secondary)}@media(max-width:1024px){.cours-split-pane{flex-direction:column}.cours-sidebar{width:100%;min-width:0;max-height:40vh;border-right:none;border-bottom:1px solid var(--border)}}@media(max-width:768px){.edition-cours-page .page-header--compact{flex-direction:column;align-items:flex-start;padding:.75rem 1rem;gap:.75rem}.edition-cours-page .page-header--compact .header-actions{width:100%;flex-wrap:wrap}.edition-cours-page .page-header--compact .header-actions button{flex:1;min-width:120px}.cours-sidebar .page-card{flex-direction:row}.editor-panel-content{padding:1rem}.form-section-card{padding:.875rem}.editor-panel-header{align-items:flex-start}}.groupes-page{width:100%;max-width:none}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.page-header h2{font-size:32px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.page-header p{color:var(--text-secondary);font-size:16px;margin:0}.btn-primary{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--accent-admin);color:var(--text-inverse);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover:not(:disabled){background:var(--accent-admin-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--accent-admin);color:var(--accent-admin)}.create-groupe-form{background:var(--bg-primary);border-radius:12px;padding:32px;box-shadow:var(--shadow-md);margin-bottom:32px;max-width:1200px;margin-left:auto;margin-right:auto}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--border-primary)}.form-header h3{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.btn-close{width:36px;height:36px;border:none;background:var(--bg-tertiary);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .2s}.btn-close:hover{background:var(--border-primary);color:var(--text-primary)}.form-section{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:var(--text-primary)}.form-group input,.form-group textarea{padding:12px 16px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s;background:var(--bg-input);color:var(--text-primary)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-admin)}.form-group textarea{resize:vertical;min-height:80px}.form-footer{display:flex;justify-content:flex-end;gap:12px;padding-top:24px;border-top:2px solid var(--border-primary);margin-top:32px}.search-candidat-box{position:relative;display:flex;align-items:center}.search-candidat-box svg{position:absolute;left:14px;color:var(--text-tertiary);z-index:1}.search-candidat-box input{width:100%;padding:12px 16px 12px 48px;border:2px solid var(--border-primary);border-radius:8px;font-size:14px;transition:border-color .2s;background:var(--bg-primary)}.form-group .search-candidat-box input{padding-left:52px}.search-candidat-box input:focus{outline:none;border-color:var(--accent-admin)}.candidats-disponibles{margin-top:8px;max-height:300px;overflow-y:auto;border:2px solid var(--border-primary);border-radius:8px;background:var(--bg-primary)}.candidats-list{display:flex;flex-direction:column}.candidat-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--bg-tertiary);cursor:pointer;transition:background-color .2s}.candidat-item:last-child{border-bottom:none}.candidat-item:hover{background:var(--bg-secondary)}.candidat-avatar-small{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;flex-shrink:0}.candidat-info-item{flex:1;display:flex;flex-direction:column;gap:4px}.candidat-nom-item{font-size:14px;font-weight:600;color:var(--text-primary)}.candidat-email-item{font-size:13px;color:var(--text-secondary)}.btn-add-candidat{width:32px;height:32px;border:none;background:var(--accent-admin);color:var(--text-inverse);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.btn-add-candidat svg{stroke:#fff!important;fill:none}.btn-add-candidat:hover{background:var(--accent-admin-hover);transform:scale(1.05)}.candidats-affectes-section{display:flex;flex-direction:column;gap:16px;margin-top:12px}.candidats-affectes-section>label{font-size:15px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:10px;padding:0 2px}.candidats-affectes-section>label:before{content:"";width:4px;height:20px;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);border-radius:2px;box-shadow:0 2px 8px #3b82f64d}.empty-state{padding:32px;text-align:center;color:var(--text-tertiary);background:var(--bg-secondary);border-radius:8px;border:2px dashed var(--border-primary)}.empty-state p{margin:0;font-size:14px}.candidats-affectes-list{display:flex!important;flex-direction:column!important;max-height:500px;overflow-y:auto;background:var(--bg-primary);border-radius:12px;border:2px solid var(--border-primary);width:100%}.candidats-affectes-list::-webkit-scrollbar{width:6px}.candidats-affectes-list::-webkit-scrollbar-track{background:transparent}.candidats-affectes-list::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:3px}@supports selector(::-webkit-scrollbar-thumb){.candidats-affectes-list::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}}.candidat-affecte-item{display:flex!important;align-items:center;gap:12px;padding:10px 16px;background:var(--bg-primary);border-bottom:1px solid var(--bg-tertiary);transition:all .2s ease;width:100%;flex-direction:row!important;position:relative}.candidat-affecte-item:last-child{border-bottom:none}.candidat-affecte-item:hover{background:var(--bg-secondary)}.candidat-affecte-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);opacity:0;transition:opacity .2s ease}.candidat-affecte-item:hover:before{opacity:1}.candidat-avatar-list{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;box-shadow:0 2px 8px #3b82f633}.candidat-info-list{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.candidat-nom-list{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.candidat-email-list{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.btn-remove-candidat{width:32px;height:32px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-remove-candidat svg{stroke:var(--text-secondary)!important;fill:none;transition:stroke .2s ease}.btn-remove-candidat:hover{background:var(--danger-light);color:var(--danger)}.btn-remove-candidat:hover svg{stroke:var(--danger)!important}.two-columns-container{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.column-left,.column-right{display:flex;flex-direction:column;gap:16px}.groupes-list{margin-top:24px}.empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center;background:var(--bg-primary);border-radius:12px;box-shadow:var(--shadow-md)}.empty-state-large svg{color:var(--border-secondary);margin-bottom:24px}.empty-state-large h3{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.empty-state-large p{color:var(--text-secondary);font-size:14px;margin:0 0 24px}.groupes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.groupe-card{background:var(--bg-primary);border-radius:12px;padding:24px;box-shadow:var(--shadow-md);transition:all .2s;border:2px solid transparent;cursor:pointer}.groupe-card:hover{border-color:var(--border-primary);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.groupe-card:focus-visible{outline:2px solid var(--accent-admin);outline-offset:2px}.groupe-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;position:relative;z-index:1}.groupe-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent-admin) 0%,var(--color-secondary) 100%);display:flex;align-items:center;justify-content:center;color:var(--text-inverse)}.groupe-actions{display:flex;gap:8px;position:relative;z-index:10}.icon-btn{width:36px;height:36px;border:none;background:var(--bg-tertiary);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .2s;flex-shrink:0;padding:0;margin:0}.icon-btn svg{display:block!important;width:18px!important;height:18px!important;flex-shrink:0}.icon-btn:hover{background:var(--border-primary)}.icon-btn:hover svg{stroke:var(--text-primary)!important}.icon-btn-danger{color:var(--danger);background:var(--danger-light)!important}.icon-btn-danger svg{stroke:var(--danger)!important}.icon-btn-danger:hover{background:var(--danger-light)!important}.icon-btn-danger:hover svg{stroke:var(--danger)!important}.groupe-card-body{display:flex;flex-direction:column;gap:12px}.groupe-nom{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.groupe-description{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.5}.groupe-stats{display:flex;gap:16px;margin-top:8px;padding-top:16px;border-top:1px solid var(--border-primary)}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.stat-item svg{color:var(--text-tertiary)}@media(max-width:768px){.page-header{flex-direction:column;gap:16px}.form-footer{flex-direction:column}.groupes-grid,.two-columns-container{grid-template-columns:1fr}}.candidat-formations h2{margin:0 0 24px;font-size:24px;font-weight:700;color:var(--text-primary)}.empty-state{text-align:center;padding:60px 20px;background:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow-md)}.empty-state p{color:var(--text-secondary);font-size:16px}.formations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.formation-card{background:var(--bg-primary);border-radius:8px;padding:24px;box-shadow:var(--shadow-md);transition:transform .2s,box-shadow .2s;border:1px solid var(--border-primary)}.formation-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.formation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.formation-header h3{margin:0;font-size:20px;font-weight:600;color:var(--text-primary);flex:1}.formation-header-actions{display:flex;align-items:center;gap:8px}.formation-download-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.formation-download-btn:hover:not(:disabled){color:var(--accent-candidat);border-color:var(--accent-candidat);transform:translateY(-1px)}.formation-download-btn:disabled{opacity:.6;cursor:not-allowed}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize}.status-active{background:var(--info-light);color:var(--info)}.status-inactive{background:var(--warning-light);color:var(--warning)}.formation-description{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:12px 0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:8;text-overflow:ellipsis}.voir-plus-btn{margin-top:-4px;border:none;background:transparent;color:var(--accent-candidat);font-size:13px;font-weight:600;cursor:pointer;padding:0}.voir-plus-btn:hover{text-decoration:underline}.formation-progress{margin:16px 0}.progress-info{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px;color:var(--text-secondary)}.progress-value{font-weight:600;color:var(--text-primary)}.progress-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-candidat) 0%,var(--accent-admin) 100%);transition:width .3s ease}.progress-fill.progress-started{min-width:8px}.formation-note{margin-top:12px;padding:12px;background:var(--bg-secondary);border-radius:6px;font-size:14px;color:var(--text-primary)}.formation-date{margin-top:12px;font-size:13px;color:var(--text-secondary)}.formation-certificat{margin-top:16px;padding:12px;background:linear-gradient(135deg,#10b9811a,#0596691a);border:1px solid #10b981;border-radius:8px}.certificat-badge{display:flex;align-items:center;gap:8px;color:#10b981;font-weight:600;font-size:14px}.certificat-badge svg{flex-shrink:0;fill:#10b981}.btn-commencer-formation{width:100%;padding:14px 24px;margin-top:16px;background:linear-gradient(135deg,var(--primary) 0%,var(--accent-candidat) 100%);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 12px #3b82f64d}.btn-commencer-formation:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.formation-bloquee{background:#fee;border:1px solid #dc2626;color:#991b1b}.formation-modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.formation-modal{width:min(680px,100%);max-height:80vh;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:12px;box-shadow:var(--shadow-lg);padding:20px}.formation-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.formation-modal-header h3{margin:0;color:var(--text-primary)}.formation-modal-close{border:none;background:transparent;color:var(--text-secondary);font-size:24px;line-height:1;cursor:pointer}.formation-modal p{margin:0;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap}.legal-links{font-size:12px;color:var(--text-secondary);line-height:1.4}.legal-links a{color:var(--text-secondary);text-decoration:underline;text-underline-offset:2px}.legal-links a:hover{color:var(--text-primary)}.legal-links-sep{margin:0 8px;opacity:.6}.candidat-profil h2{margin:0 0 24px;font-size:24px;font-weight:700;color:var(--text-primary)}.loading,.error{text-align:center;padding:40px;font-size:16px;color:var(--text-secondary)}.error{color:var(--danger)}.profil-card{background:var(--bg-primary);border-radius:8px;padding:24px;box-shadow:var(--shadow-md);border:1px solid var(--border-primary)}.profil-info-compact{display:flex;align-items:center;gap:16px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--border-primary)}.profil-info-compact .profil-info-content{flex:1;min-width:0}.profil-info-line3{margin-top:4px;font-size:13px;color:var(--text-secondary);word-break:break-all}.profil-email-label{color:var(--text-tertiary)}.profil-email-value{color:var(--text-secondary)}.btn-edit-profil{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:background .2s ease,border-color .2s ease;flex-shrink:0}.btn-edit-profil:hover{background:var(--bg-primary);border-color:var(--text-secondary)}.btn-edit-profil svg{flex-shrink:0}.profil-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-candidat) 0%,var(--accent-admin) 100%);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0}.profil-info-content{display:flex;flex-direction:column;gap:4px}.profil-info-line1{font-size:16px;font-weight:600;color:var(--text-primary)}.profil-username{font-weight:400;color:var(--text-secondary)}.profil-info-line2{font-size:13px;color:var(--text-secondary)}.profil-sep{margin:0 6px;color:var(--border-primary)}.status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:capitalize}.status-actif,.status-active{background:var(--info-light);color:var(--info)}.status-inactif{background:var(--danger-light);color:var(--danger)}.status-brouillon{background:var(--warning-light);color:var(--warning)}.status-archive{background:var(--danger-light);color:var(--danger)}.profil-certificats{margin-top:0}.profil-certificats h4{margin:0 0 12px;font-size:16px;font-weight:600;color:var(--text-primary)}.certificats-empty{margin:0;padding:16px;color:var(--text-secondary);font-size:14px;background:var(--bg-secondary);border-radius:6px;border:1px dashed var(--border-primary)}.certificats-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;border:1px solid var(--border-primary);border-radius:6px;overflow:hidden}.certificat-ligne{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-primary);border-bottom:1px solid var(--border-primary);font-size:14px}.certificat-ligne:last-child{border-bottom:none}.certificat-ico{color:#10b981;font-size:16px;flex-shrink:0}.certificat-titre{flex:1;font-weight:600;color:var(--text-primary)}.certificat-note{color:var(--text-secondary);min-width:40px}.btn-telecharger-certificat{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--accent-candidat);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-telecharger-certificat:hover{background:var(--accent-candidat-hover);box-shadow:var(--shadow-sm)}.btn-telecharger-certificat svg{flex-shrink:0}.profil-rgpd{margin-top:28px;padding-top:24px;border-top:1px solid var(--border-primary)}.profil-rgpd h4{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--text-primary)}.profil-rgpd-intro{margin:0 0 16px;font-size:14px;color:var(--text-secondary);line-height:1.5}.profil-rgpd-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.btn-export-donnees{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font-size:14px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.btn-export-donnees:hover:not(:disabled){background:var(--bg-primary);border-color:var(--text-secondary)}.btn-export-donnees:disabled{opacity:.6;cursor:not-allowed}.btn-supprimer-compte{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font-size:14px;font-weight:600;color:#fff;background:var(--danger);border:none;border-radius:8px;cursor:pointer;transition:opacity .2s ease}.btn-supprimer-compte:hover:not(:disabled){opacity:.92}.btn-supprimer-compte:disabled{opacity:.6;cursor:not-allowed}.profil-legal-links{margin-top:4px}.candidat-edit-modal-overlay{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.candidat-edit-modal{background:var(--bg-primary);border-radius:12px;width:100%;max-width:480px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;overflow:hidden;border:1px solid var(--border-primary)}.candidat-edit-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border-primary)}.candidat-edit-modal-header h3{margin:0;font-size:18px;font-weight:700;color:var(--text-primary)}.candidat-edit-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:background .2s ease}.candidat-edit-modal-close:hover:not(:disabled){background:var(--bg-secondary)}.candidat-edit-modal-close:disabled{opacity:.5;cursor:not-allowed}.candidat-edit-form{display:flex;flex-direction:column;flex:1;min-height:0}.candidat-edit-modal-body{padding:20px 22px;overflow-y:auto}.candidat-edit-error{background:var(--danger-light);color:var(--danger);border:1px solid var(--danger);border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:16px}.candidat-edit-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.candidat-edit-group:last-child{margin-bottom:0}.candidat-edit-group label{font-size:13px;font-weight:600;color:var(--text-primary)}.candidat-edit-group input{width:100%;padding:10px 12px;font-size:14px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.candidat-edit-group input:focus{border-color:var(--accent-candidat);box-shadow:0 0 0 3px #3b82f626}.candidat-edit-group input::placeholder{color:var(--text-tertiary)}.candidat-edit-hint{margin:0;font-size:12px;color:var(--text-tertiary)}.candidat-edit-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--border-primary);background:var(--bg-secondary)}.btn-annuler-edit,.btn-enregistrer-edit{padding:9px 18px;font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;transition:background .2s ease,border-color .2s ease,opacity .2s ease}.btn-annuler-edit{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-primary)}.btn-annuler-edit:hover:not(:disabled){background:var(--bg-tertiary, var(--bg-secondary));border-color:var(--text-secondary)}.btn-enregistrer-edit{background:var(--accent-candidat);color:#fff;border:1px solid var(--accent-candidat)}.btn-enregistrer-edit:hover:not(:disabled){background:var(--accent-candidat-hover);border-color:var(--accent-candidat-hover)}.btn-annuler-edit:disabled,.btn-enregistrer-edit:disabled{opacity:.6;cursor:not-allowed}@media(max-width:520px){.profil-info-compact{flex-wrap:wrap}.btn-edit-profil{margin-left:auto}.candidat-edit-modal{max-width:100%}}.passer-qcm-container{width:100%;max-width:100vw;height:100vh;background:var(--background);overflow:hidden;overflow-x:hidden}.passer-qcm-page{width:100%;max-width:100%;height:100%;display:flex;flex-direction:column;background:var(--background);min-width:0}.qcm-header{display:flex;flex-direction:column;gap:.1rem;padding:.12rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:none;flex-shrink:0}.qcm-header h2{margin:0;font-size:1.1rem;color:var(--text-primary)}.qcm-progression{display:flex;flex-direction:column;gap:.1rem;width:100%}.progression-text{font-size:.75rem;color:var(--text-secondary);font-weight:500;margin:0}.progression-bar{width:100%;height:4px;background:var(--bg-tertiary);border-radius:0;overflow:hidden}.progression-fill{height:100%;width:0;background:var(--accent-candidat);border-radius:0;transition:width .3s ease}.qcm-content{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;padding:2rem;padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center}.question-container{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:12px;padding:2rem;margin-bottom:2rem;max-width:900px;width:100%;min-width:0;margin-left:auto;margin-right:auto}.question-numero{font-size:.875rem;font-weight:600;color:var(--accent-candidat);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.question-texte{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 2rem;line-height:1.6;overflow-wrap:break-word;word-wrap:break-word}.reponses-container{display:flex;flex-direction:column;gap:1rem}.reponse-item{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .2s ease}.reponse-item:hover{border-color:var(--accent-candidat);background:var(--bg-hover)}.reponse-item.selected{border-color:var(--accent-candidat);background:var(--accent-candidat-light)}.reponse-radio{width:24px;height:24px;border:2px solid var(--border-primary);border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.reponse-item.selected .reponse-radio{border-color:var(--accent-candidat)}.reponse-radio-checked{width:12px;height:12px;background:var(--accent-candidat);border-radius:50%}.reponse-texte{flex:1;min-width:0;font-size:1rem;color:var(--text-primary);line-height:1.5;overflow-wrap:break-word;word-wrap:break-word}.qcm-navigation{display:flex;gap:.5rem;justify-content:space-between;position:fixed;bottom:0;left:0;right:0;z-index:100;box-shadow:0 -2px 10px #0000001a;padding:.1rem .75rem;padding-bottom:calc(.35rem + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.qcm-navigation .btn-secondary,.qcm-navigation .btn-primary,.qcm-navigation .btn-submit,.btn-secondary,.btn-primary,.btn-submit{padding:.12rem .4rem;border:none;border-radius:4px;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.3rem}.btn-secondary{background:var(--bg-primary);color:var(--text-secondary);border:2px solid var(--border-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.btn-primary{background:var(--accent-candidat);color:var(--text-inverse)}.btn-primary:hover{background:var(--accent-candidat-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-submit{background:var(--success);color:var(--text-inverse)}.btn-submit:hover{background:var(--success);transform:translateY(-1px);box-shadow:var(--shadow-md);opacity:.9}@media(min-width:769px){.qcm-navigation .btn-secondary,.qcm-navigation .btn-primary,.qcm-navigation .btn-submit{padding:.5rem 1rem;font-size:.95rem;gap:.5rem}.resultat-container .btn-primary{padding:.5rem 1rem;font-size:.95rem}}.qcm-intro{display:flex;justify-content:center;align-items:center;flex:1;padding:2rem;min-width:0}.qcm-intro-card{background:var(--bg-primary);border:2px solid var(--border-primary);border-radius:16px;padding:3rem;text-align:center;max-width:500px;width:100%;min-width:0;box-shadow:var(--shadow-lg)}.qcm-intro-card h2{font-size:1.5rem;margin:0 0 1.5rem;color:var(--text-primary)}.qcm-intro-avertissement{font-size:1rem;color:var(--text-primary);margin:0 0 2rem;padding:1rem;background:var(--bg-secondary);border-radius:8px;border-left:4px solid var(--accent-candidat)}.qcm-intro-avertissement strong{color:var(--accent-candidat)}.btn-commencer{padding:.75rem 2rem;font-size:1.125rem;font-weight:600}.resultat-container{display:flex;justify-content:center;align-items:center;flex:1;padding:2rem;min-width:0}.resultat-card{background:var(--bg-primary);border:2px solid var(--border-primary);border-radius:16px;padding:3rem;text-align:center;max-width:500px;width:100%;min-width:0;box-shadow:var(--shadow-lg)}.resultat-card.reussi{border-color:var(--success)}.resultat-card.echec{border-color:var(--danger)}.resultat-icon{margin-bottom:2rem;display:flex;justify-content:center}.resultat-card h2{font-size:2rem;margin:0 0 2rem;color:var(--text-primary)}.resultat-score{margin-bottom:2rem}.score-value{font-size:4rem;font-weight:700;color:var(--accent-candidat);margin-bottom:.5rem}.score-detail{font-size:1.125rem;color:var(--text-secondary)}.certificat-message,.echec-message{margin-bottom:2rem;padding:1.5rem;border-radius:8px}.certificat-message{background:var(--success-light);border:1px solid var(--success)}.certificat-message p{margin:.5rem 0;color:var(--text-primary);font-size:1rem}.echec-message{background:var(--danger-light);border:1px solid var(--danger)}.echec-message p{margin:.5rem 0;color:var(--text-primary);font-size:1rem}@media(max-width:768px){.qcm-intro{padding:1rem}.qcm-intro-card{padding:2rem}.qcm-intro-card h2{font-size:1.25rem}.btn-commencer{padding:.6rem 1.5rem;font-size:1rem}.qcm-header{padding:.1rem .5rem;gap:.1rem}.qcm-content{padding:.75rem;padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.question-container{padding:1rem;margin:0;margin-bottom:1rem}.question-texte{font-size:1.05rem}.reponse-item{padding:.75rem}.qcm-navigation{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:.5rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,20px));flex-wrap:wrap;gap:.35rem;box-shadow:0 -2px 10px #0000001a}.qcm-navigation .btn-secondary,.qcm-navigation .btn-primary,.qcm-navigation .btn-submit{flex:1;min-width:0;padding:.12rem .35rem;font-size:.7rem}}@media(max-width:480px){.qcm-header{padding:.1rem .5rem}.qcm-header h2{font-size:1rem}.qcm-content{padding:.5rem;padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.question-container{padding:.75rem}.qcm-navigation{flex-direction:column-reverse}.qcm-navigation .btn-secondary,.qcm-navigation .btn-primary,.qcm-navigation .btn-submit{width:100%;justify-content:center}}@media(max-width:768px)and (orientation:portrait){.qcm-navigation{position:fixed;left:0;right:0;bottom:0;z-index:100;width:100%;box-sizing:border-box}.qcm-content{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.qcm-navigation .btn-secondary,.qcm-navigation .btn-primary,.qcm-navigation .btn-submit{min-height:48px;padding:.65rem .75rem;font-size:.78rem;box-sizing:border-box}}@media(max-width:480px)and (orientation:portrait){.qcm-content{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}}@media(orientation:landscape)and (max-height:500px){.qcm-header{padding:.08rem .4rem;gap:.08rem}.qcm-header h2{font-size:.9rem}.qcm-progression .progression-bar{height:4px}.qcm-content{padding:.35rem .5rem;padding-bottom:calc(50px + env(safe-area-inset-bottom,0px))}.question-container{padding:.75rem;margin-bottom:.5rem}.question-numero{font-size:.7rem;margin-bottom:.35rem}.question-texte{font-size:.9rem;margin-bottom:.5rem}.reponse-item{padding:.5rem .75rem}.reponse-texte{font-size:.85rem}.qcm-navigation{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:.35rem .4rem;padding-bottom:calc(.35rem + env(safe-area-inset-bottom,16px));gap:.25rem;box-shadow:0 -2px 10px #0000001a}.qcm-navigation .btn-secondary,.qcm-navigation .btn-primary,.qcm-navigation .btn-submit{padding:.1rem .35rem;font-size:.65rem}.qcm-intro{padding:.75rem}.qcm-intro-card{padding:1.5rem}.qcm-intro-card h2{font-size:1.1rem;margin-bottom:1rem}.qcm-intro-avertissement{margin-bottom:1rem;font-size:.9rem}.btn-commencer{padding:.5rem 1.25rem;font-size:.95rem}.resultat-container{padding:1rem}.resultat-card{padding:2rem}.resultat-card h2{font-size:1.5rem;margin-bottom:1rem}.score-value{font-size:3rem}.score-detail{font-size:1rem}}.schema-viewer{width:100%;max-width:100%;min-width:0;flex:1;min-height:0;overflow:hidden;display:flex;justify-content:center;align-items:center;padding:1rem;background:var(--surface, #f5f5f5);border-radius:8px}.schema-viewer-placeholder{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-tertiary, #6b7280);font-size:.875rem}.schema-viewer-stage{border:1px solid var(--border, #e5e7eb);background:#fafafa;flex-shrink:0}.schema-viewer-empty{min-height:200px;align-items:center}.schema-viewer-empty p{color:var(--text-tertiary, #6b7280);font-size:.875rem}.pdf-viewer{width:100%;display:flex;flex-direction:column;flex:1;min-height:0}.pdf-viewer-loading{text-align:center;color:var(--text-secondary);padding:1rem 0}.pdf-viewer-empty{padding:1rem 0;color:var(--text-secondary)}.pdf-viewer-error{padding:1rem 0;color:#b91c1c}.pdf-viewer-error-detail{margin-top:.25rem;font-size:.875rem;color:#b91c1ce6;word-break:break-word}.pdf-page-wrap{display:flex;justify-content:center;flex-direction:column;align-items:center;width:100%;margin-bottom:.75rem;padding:0;background:transparent}.pdf-page-wrap--last{margin-bottom:.25rem}.pdf-end-sentinel{width:100%;height:1px}.pdf-page-placeholder{max-width:100%;background:#00000008;border-radius:4px}.pdf-viewer canvas{max-width:100%!important;height:auto!important;display:block}.passer-cours-container{width:100%;max-width:100vw;height:100vh;background:var(--background);overflow:hidden;overflow-x:hidden;--cours-nav-inset: 84px}.passer-cours-page{width:100%;max-width:100%;height:100%;display:flex;flex-direction:column;background:var(--background);min-width:0}.cours-header{display:flex;justify-content:space-between;align-items:center;padding:.1rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.cours-info{flex:1;min-width:0;display:flex;align-items:center;gap:.35rem}.cours-info h2{font-size:.9rem;font-weight:700;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.cours-progression{display:flex;align-items:center;gap:.25rem;flex:1;min-width:0}.progression-bar{flex:1;min-width:60px;height:4px;background:var(--border);border-radius:0;overflow:hidden}.progression-text{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.progression-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-hover));border-radius:0;transition:width .3s ease}.btn-quit{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:1px solid var(--border);border-radius:4px;cursor:pointer;color:var(--text-secondary);transition:all .2s;flex-shrink:0;margin-left:.4rem}.btn-quit:hover{background:#fee;color:#dc2626;border-color:#dc2626}.cours-content{flex:1;display:flex;flex-direction:column;padding:2rem 2rem 0;scroll-padding-bottom:var(--cours-nav-inset, 84px);overflow-y:auto;overflow-x:hidden;min-height:0;min-width:0}.cours-content-bottom-spacer{flex-shrink:0;width:100%;height:var(--cours-nav-inset, 84px);min-height:var(--cours-nav-inset, 84px);pointer-events:none}.cours-content.cours-content--pdf{padding:0;overflow:hidden;background:var(--background)}.cours-content.cours-content--pdf .pdf-viewer{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.cours-content.cours-content--pdf .pdf-viewer .pdf-page-wrap--last{margin-bottom:var(--cours-nav-inset, 160px)}.cours-content.cours-content--pdf .cours-content-bottom-spacer{display:none;height:0!important;min-height:0!important;flex:0 0 0}.cours-content--images{padding-left:.75rem;padding-right:.75rem}.page-header{margin-bottom:2rem}.page-header h3{font-size:1.75rem;font-weight:600;color:var(--text-primary);margin:0}.video-container{position:relative;width:100%;max-width:min(1200px,100%);margin:0 auto;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #0003}.video-stage{position:relative;width:100%;aspect-ratio:var(--video-aspect-ratio, 16 / 9);max-height:min(72vh,calc(100vh - 260px));background:#000}.video-player{width:100%;height:100%;max-height:none;background:#000;border:none;display:block;outline:none;cursor:pointer;object-fit:contain}.video-container-controlled{display:flex;flex-direction:column}.video-container-controlled:focus{outline:none}.video-container-fullscreen-overlay{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;margin:0!important;border-radius:0!important;z-index:9999;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;background:#000!important;padding-bottom:env(safe-area-inset-bottom,0px)}.video-container-fullscreen-overlay .video-player{flex:1;min-height:0;max-height:none!important;width:100%;height:100%;object-fit:contain}.video-container-fullscreen-overlay .video-stage{flex:1;min-height:0;max-height:none;aspect-ratio:auto}.video-container-fullscreen-overlay .video-controls-custom{position:relative;z-index:2;flex:0 0 auto;padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}@supports not (height: 100dvh){.video-container-fullscreen-overlay{height:100vh!important}}.video-controls-custom{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#000000d9;color:#fff;flex-shrink:0;min-width:0;overflow-x:auto}.video-control-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:none;border-radius:8px;color:#fff;cursor:pointer;transition:background .2s,color .2s}.video-control-btn:hover{background:#ffffff26}.video-control-btn:focus{outline:2px solid var(--primary);outline-offset:2px}.video-time-display{font-size:.875rem;font-variant-numeric:tabular-nums;color:#ffffffe6;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.video-volume-wrapper{display:flex;align-items:center;gap:.5rem;margin-left:auto;min-width:0}.video-volume-slider{width:80px;height:6px;-webkit-appearance:none;appearance:none;background:#ffffff4d;border-radius:3px;cursor:pointer}.video-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--primary);border-radius:50%;cursor:pointer;transition:transform .2s}@supports selector(::-webkit-slider-thumb){.video-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}}.video-volume-slider::-moz-range-thumb{width:14px;height:14px;background:var(--primary);border:none;border-radius:50%;cursor:pointer}.cours-content .schema-viewer{flex:1;min-height:0}.text-content{max-width:100%;padding:0;overflow-wrap:break-word;word-wrap:break-word}.text-content p{font-size:1.125rem;line-height:1.8;color:var(--text-primary);white-space:pre-wrap;margin:0 0 1rem}.text-content p:last-child{margin-bottom:0}.text-content h2{font-size:1.5rem;font-weight:600;margin:1.5rem 0 .75rem;color:var(--text-primary)}.text-content h2:first-child{margin-top:0}.text-content h3{font-size:1.25rem;font-weight:600;margin:1.25rem 0 .5rem;color:var(--text-primary)}.text-content ul,.text-content ol{margin:.75rem 0;padding-left:1.5rem}.text-content li{margin-bottom:.35rem;line-height:1.7}.text-content strong{font-weight:600}.text-content em{font-style:italic}.cours-images-gallery{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch;gap:1.25rem;padding:0 0 .5rem;-webkit-overflow-scrolling:touch}.cours-images-gallery__slide{flex:0 0 auto;width:100%;min-height:calc(100vh - var(--cours-nav-inset, 84px) - 9rem);min-height:calc(100dvh - var(--cours-nav-inset, 84px) - 9rem);display:flex;align-items:center;justify-content:center}.cours-images-gallery__frame{border:none;padding:0;margin:0;background:transparent;cursor:zoom-in;display:flex;align-items:center;justify-content:center;width:100%;max-width:min(1200px,100%);border-radius:8px;-webkit-tap-highlight-color:transparent}.cours-images-gallery__frame:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.cours-images-gallery__frame img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100vh - var(--cours-nav-inset, 84px) - 9rem);max-height:calc(100dvh - var(--cours-nav-inset, 84px) - 9rem);object-fit:contain;border-radius:8px;border:1px solid var(--border);background:var(--surface);pointer-events:none}.cours-images-gallery__frame:fullscreen{display:flex;align-items:center;justify-content:center;width:100%;height:100%;max-width:none;border-radius:0;background:#000;cursor:zoom-out}.cours-images-gallery__frame:fullscreen img{max-width:100vw;max-height:100vh;width:auto;height:auto;object-fit:contain;border:none;border-radius:0;background:transparent}.cours-image-lightbox{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top,0px));padding-bottom:max(1rem,env(safe-area-inset-bottom,0px));background:#000000f0;cursor:zoom-out}.cours-image-lightbox img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:default;border-radius:4px}.cours-image-lightbox__close{position:absolute;top:max(.5rem,env(safe-area-inset-top,0px));right:max(.5rem,env(safe-area-inset-right,0px));z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:#00000080;color:#fff;cursor:pointer;transition:background .2s,border-color .2s}.cours-image-lightbox__close:hover{background:#ffffff1f;border-color:#ffffff8c}.cours-navigation{display:flex;justify-content:space-between;position:fixed;bottom:0;left:0;right:0;z-index:100;box-shadow:0 -2px 10px #0000001a;padding:.1rem .75rem;padding-bottom:calc(.35rem + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.btn-next-wrapper{display:inline-flex}.cours-navigation button{display:inline-flex;align-items:center;gap:.25rem;padding:.12rem .35rem;font-size:.68rem;font-weight:500;border-radius:2px;cursor:pointer;transition:all .2s;border:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.btn-primary:disabled,.btn-primary.btn-disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--background);border-color:var(--primary);color:var(--primary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media(min-width:769px){.cours-navigation .btn-secondary,.cours-navigation .btn-primary{padding:.5rem 1rem;font-size:.95rem;gap:.5rem}}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.modal-content{background:var(--surface);border-radius:12px;width:100%;max-width:500px;box-shadow:0 20px 25px -5px #0000004d}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border)}.modal-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.modal-body{padding:1.5rem}.modal-body p{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin:0}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid var(--border);background:var(--background)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:3rem;text-align:center}.empty-state h3{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.empty-state p{font-size:1rem;color:var(--text-secondary);margin:0 0 2rem}.loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.125rem;color:var(--text-secondary)}.passer-cours-container:fullscreen{background:var(--background)}.passer-cours-container:fullscreen .passer-cours-page{height:100vh}@media(max-width:768px){.cours-header{padding:.1rem .5rem}.cours-info{gap:.3rem}.cours-info h2{font-size:.85rem;max-width:100px}.progression-text{font-size:.7rem}.cours-content{padding:.75rem .75rem 0;scroll-padding-bottom:var(--cours-nav-inset, 84px)}.page-header h3{font-size:1.1rem}.cours-navigation{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:.5rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,20px));gap:.3rem;box-shadow:0 -2px 10px #0000001a}.cours-navigation button{padding:.15rem .35rem;font-size:.7rem}.video-container{max-width:100%}.video-stage{max-height:min(56vh,calc(100vh - 260px))}.video-controls-custom{flex-wrap:wrap;gap:.5rem}.video-control-btn{width:36px;height:36px}.video-volume-slider{width:60px}}@media(max-width:480px){.cours-navigation{flex-direction:column-reverse}.cours-navigation button{width:100%;justify-content:center}}@media(max-width:768px)and (orientation:portrait){.passer-cours-container{--cours-nav-inset: 160px}.cours-navigation{position:fixed;left:0;right:0;bottom:0;z-index:100;width:100%;box-sizing:border-box}.cours-content{padding:.75rem .75rem 0;scroll-padding-bottom:var(--cours-nav-inset, 160px)}.cours-content.cours-content--pdf{padding:0}.cours-navigation button{min-height:48px;padding:.65rem .75rem;font-size:.78rem;box-sizing:border-box}}@media(orientation:landscape)and (max-height:500px){.cours-header{padding:.08rem .4rem}.cours-info h2{font-size:.75rem;max-width:80px}.progression-bar{height:4px}.cours-content{padding:.35rem .5rem 0;scroll-padding-bottom:var(--cours-nav-inset, 72px);flex:1;min-height:0}.page-header{margin-bottom:.35rem}.page-header h3{font-size:.9rem}.cours-navigation{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:.35rem .4rem;padding-bottom:calc(.35rem + env(safe-area-inset-bottom,16px));box-shadow:0 -2px 10px #0000001a}.cours-navigation button{padding:.12rem .35rem;font-size:.65rem}.video-container{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.video-stage{flex:1;min-height:0;max-height:none}.video-container-controlled{flex:1;min-height:0;overflow:hidden}.video-container-controlled .video-player{flex:1;min-height:0;width:100%;height:100%;max-height:none;object-fit:contain}.video-controls-custom{padding:.4rem .5rem;gap:.25rem}.video-control-btn{width:32px;height:32px}.video-time-display{font-size:.75rem}.video-volume-slider{width:50px}.cours-content .schema-viewer{min-height:120px;flex:1}.text-content{font-size:.9375rem}.text-content p{font-size:.9375rem;margin-bottom:.5rem}}.synthese-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-secondary, #f4f5f7)}.synthese-card{max-width:640px;width:100%;padding:32px 28px;border-radius:12px;background:var(--bg-primary, #fff);border:1px solid var(--border-primary, #e2e4e8);box-shadow:0 4px 24px #0000000f}.synthese-card h1{font-size:1.5rem;font-weight:700;margin:0 0 16px;color:var(--text-primary, #1a1a1a)}.synthese-intro{margin:0 0 24px;color:var(--text-secondary, #5c6370);line-height:1.6;font-size:1rem}.synthese-intro strong{color:var(--text-primary, #1a1a1a);font-weight:600}.synthese-description{margin-bottom:28px;padding-top:20px;border-top:1px solid var(--border-primary, #e2e4e8)}.synthese-description h2{font-size:.95rem;font-weight:600;margin:0 0 12px;color:var(--text-primary, #1a1a1a);text-transform:uppercase;letter-spacing:.04em}.synthese-description p{margin:0;color:var(--text-secondary, #5c6370);line-height:1.6;white-space:pre-wrap}.synthese-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.synthese-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:opacity .2s}.synthese-btn-primary{background:var(--accent-primary, #2563eb);color:#fff}.synthese-btn-secondary{background:transparent;color:var(--text-primary, #1a1a1a);border:1px solid var(--border-primary, #d0d4da)}.synthese-btn:hover{opacity:.92}.synthese-error{color:var(--error-color, #c62828);margin-bottom:20px}.synthese-loading{text-align:center}.synthese-loading p{margin:0;color:var(--text-secondary, #5c6370)}@media(max-width:480px){.synthese-actions{flex-direction:column-reverse}.synthese-btn{width:100%}}
