.modal-overlay[data-v-5da3e15a]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.75);display:flex;justify-content:center;align-items:center;z-index:9999;padding:1rem;overflow-y:auto}.modal-container[data-v-5da3e15a]{background:var(--bg-primary);border-radius:20px;width:100%;max-width:600px;box-shadow:var(--shadow-xl);animation:slideDown-5da3e15a .3s ease-out;margin:auto;border:1px solid var(--border-light)}@keyframes slideDown-5da3e15a{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-5da3e15a]{background:var(--gradient-primary);color:#fff;padding:1.5rem 2rem;border-radius:20px 20px 0 0;display:flex;justify-content:space-between;align-items:center}.modal-title[data-v-5da3e15a]{margin:0;font-size:1.5rem;font-weight:700}.btn-close-modal[data-v-5da3e15a]{background:hsla(0,0%,100%,.2);border:none;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.btn-close-modal[data-v-5da3e15a]:hover{background:hsla(0,0%,100%,.3);transform:rotate(90deg)}.modal-body[data-v-5da3e15a]{padding:2rem}.form-label[data-v-5da3e15a]{font-weight:600;color:var(--text-primary);margin-bottom:.5rem;display:block}.form-control[data-v-5da3e15a]{width:100%;padding:.75rem 1rem;border:2px solid var(--border-medium);border-radius:10px;font-size:1rem;transition:var(--transition);background:var(--bg-primary);color:var(--text-primary)}.form-control[data-v-5da3e15a]:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.password-input-wrapper[data-v-5da3e15a]{position:relative}.btn-toggle-password[data-v-5da3e15a]{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;transition:var(--transition-fast)}.btn-toggle-password[data-v-5da3e15a]:hover{color:var(--primary)}.form-text[data-v-5da3e15a]{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.875rem}.alert[data-v-5da3e15a]{padding:1rem;border-radius:10px;margin-bottom:1rem}.alert-danger[data-v-5da3e15a]{background:var(--primary-lighter);color:var(--primary-dark);border:1px solid var(--primary-light)}.btn-submit[data-v-5da3e15a]{background:var(--gradient-primary);color:#fff;border:none;padding:1rem 2rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);margin-top:1rem;box-shadow:var(--shadow-colored)}.btn-submit[data-v-5da3e15a]:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-xl)}.btn-submit[data-v-5da3e15a]:disabled{opacity:.6;cursor:not-allowed}.modal-footer-text[data-v-5da3e15a]{text-align:center;margin-top:1.5rem;color:var(--text-secondary)}.link-primary[data-v-5da3e15a]{color:var(--primary);text-decoration:none;font-weight:600}.link-primary[data-v-5da3e15a]:hover{text-decoration:underline}@media (max-width:768px){.modal-container[data-v-5da3e15a]{max-width:95%}.modal-body[data-v-5da3e15a],.modal-header[data-v-5da3e15a]{padding:1.5rem}.modal-title[data-v-5da3e15a]{font-size:1.25rem}}.modal-overlay[data-v-83228d26]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.75);display:flex;justify-content:center;align-items:center;z-index:9999;padding:1rem;overflow-y:auto}.modal-container[data-v-83228d26]{background:var(--bg-primary);border-radius:20px;width:100%;max-width:600px;box-shadow:var(--shadow-xl);animation:slideDown-83228d26 .3s ease-out;margin:auto;border:1px solid var(--border-light)}@keyframes slideDown-83228d26{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-83228d26]{background:var(--gradient-primary);color:#fff;padding:1.5rem 2rem;border-radius:20px 20px 0 0;display:flex;justify-content:space-between;align-items:center}.modal-title[data-v-83228d26]{margin:0;font-size:1.5rem;font-weight:700}.btn-close-modal[data-v-83228d26]{background:hsla(0,0%,100%,.2);border:none;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.btn-close-modal[data-v-83228d26]:hover{background:hsla(0,0%,100%,.3);transform:rotate(90deg)}.modal-body[data-v-83228d26]{padding:2rem}.form-label[data-v-83228d26]{font-weight:600;color:var(--text-primary);margin-bottom:.5rem;display:block}.form-control[data-v-83228d26]{width:100%;padding:.75rem 1rem;border:2px solid var(--border-medium);border-radius:10px;font-size:1rem;transition:var(--transition);background:var(--bg-primary);color:var(--text-primary)}.form-control[data-v-83228d26]:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.password-input-wrapper[data-v-83228d26]{position:relative}.btn-toggle-password[data-v-83228d26]{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;transition:var(--transition-fast)}.btn-toggle-password[data-v-83228d26]:hover{color:var(--primary)}.form-text[data-v-83228d26]{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.875rem}.alert[data-v-83228d26]{padding:1rem;border-radius:10px;margin-bottom:1rem}.alert-danger[data-v-83228d26]{background:var(--primary-lighter);color:var(--primary-dark);border:1px solid var(--primary-light)}.alert-success[data-v-83228d26]{background:var(--primary-lighter);color:var(--primary-dark);border:1px solid var(--primary)}.btn-submit[data-v-83228d26]{background:var(--gradient-primary);color:#fff;border:none;padding:1rem 2rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);margin-top:1rem;box-shadow:var(--shadow-colored)}.btn-submit[data-v-83228d26]:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-xl)}.btn-submit[data-v-83228d26]:disabled{opacity:.6;cursor:not-allowed}.modal-footer-text[data-v-83228d26]{text-align:center;margin-top:1.5rem;color:var(--text-secondary)}.link-primary[data-v-83228d26]{color:var(--primary);text-decoration:none;font-weight:600}.link-primary[data-v-83228d26]:hover{text-decoration:underline}@media (max-width:768px){.modal-container[data-v-83228d26]{max-width:95%}.modal-body[data-v-83228d26],.modal-header[data-v-83228d26]{padding:1.5rem}.modal-title[data-v-83228d26]{font-size:1.25rem}}.btn-login[data-v-6875019a],.btn-register[data-v-6875019a]{background:var(--bg-primary);color:var(--primary);border:2px solid var(--primary);border-radius:12px;padding:.5rem 1.2rem;font-weight:600;font-size:1rem;display:flex;align-items:center;gap:.5rem;box-shadow:var(--shadow-sm);transition:var(--transition-fast)}.btn-login[data-v-6875019a]:hover,.btn-register[data-v-6875019a]:hover{background:var(--primary);color:var(--bg-primary);border-color:var(--primary)}.btn-register[data-v-6875019a]{margin-left:0!important}.mobile-menu[data-v-6875019a]{position:fixed;top:70px;left:0;width:100vw;background:var(--bg-primary);box-shadow:var(--shadow-lg);z-index:2000;padding:1.5rem 1rem}.mobile-menu ul[data-v-6875019a]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.mobile-menu li[data-v-6875019a]{width:100%}.mobile-menu .nav-link[data-v-6875019a]{width:100%;justify-content:flex-start;font-size:1.1rem;padding:.75rem .5rem;border-radius:.5rem}.fade-enter-active[data-v-6875019a],.fade-leave-active[data-v-6875019a]{transition:opacity .2s}.fade-enter-from[data-v-6875019a],.fade-leave-to[data-v-6875019a]{opacity:0}.theme-switcher[data-v-39c500fa]{position:fixed;bottom:2rem;right:2rem;z-index:999}.theme-button[data-v-39c500fa]{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.25rem;background:var(--bg-primary);border:1.5px solid var(--border-medium);border-radius:3rem;color:var(--primary);font-weight:600;font-size:.9375rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg)}.theme-button[data-v-39c500fa]:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.theme-button.active[data-v-39c500fa],.theme-button[data-v-39c500fa]:hover{background:var(--primary);color:var(--bg-primary);border-color:var(--primary)}.theme-button i[data-v-39c500fa]{font-size:1.25rem}.theme-label[data-v-39c500fa]{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;letter-spacing:-.01em}.theme-dropdown[data-v-39c500fa]{position:absolute;bottom:calc(100% + 1rem);right:0;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:1rem;box-shadow:var(--shadow-xl);min-width:320px;overflow:hidden}.theme-dropdown-header[data-v-39c500fa]{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-light);font-weight:600;color:var(--text-primary);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.theme-dropdown-header i[data-v-39c500fa]{font-size:1rem;color:var(--primary)}.theme-options[data-v-39c500fa]{padding:.5rem;max-height:400px;overflow-y:auto}.theme-option[data-v-39c500fa]{display:flex;align-items:center;gap:1rem;width:100%;padding:1rem;background:none;border:1.5px solid transparent;border-radius:.75rem;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);margin-bottom:.375rem;position:relative}.theme-option[data-v-39c500fa]:hover{background:var(--bg-secondary);border-color:var(--border-medium)}.theme-option.active[data-v-39c500fa]{background:var(--primary-lighter);border-color:var(--primary)}.theme-preview[data-v-39c500fa]{display:flex;gap:.25rem;flex-shrink:0}.color-dot[data-v-39c500fa]{width:1rem;height:1rem;border-radius:50%;border:1.5px solid var(--bg-primary);box-shadow:var(--shadow-sm)}.theme-info[data-v-39c500fa]{display:flex;flex-direction:column;align-items:flex-start;flex:1;text-align:left}.theme-name[data-v-39c500fa]{font-weight:600;color:var(--text-primary);font-size:.9375rem;letter-spacing:-.01em}.theme-desc[data-v-39c500fa]{font-size:.8125rem;color:var(--text-secondary)}.theme-check[data-v-39c500fa]{color:var(--primary);font-size:1.25rem;flex-shrink:0}.dropdown-enter-active[data-v-39c500fa],.dropdown-leave-active[data-v-39c500fa]{transition:all .3s cubic-bezier(.4,0,.2,1)}.dropdown-enter-from[data-v-39c500fa],.dropdown-leave-to[data-v-39c500fa]{opacity:0;transform:translateY(10px) scale(.95)}@media (max-width:640px){.theme-switcher[data-v-39c500fa]{bottom:1rem;right:1rem}.theme-button[data-v-39c500fa]{padding:.75rem 1rem}.theme-label[data-v-39c500fa]{display:none}.theme-dropdown[data-v-39c500fa]{min-width:280px;right:auto;left:50%;transform:translateX(-50%)}}.formations-section{margin-top:3rem;padding:2rem 0}.section-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:3rem}.section-title i{color:var(--primary)}.timeline{position:relative;padding:2rem 0;max-width:900px;margin:0 auto}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--primary-light),var(--primary));transform:translateX(-50%)}.timeline-item{position:relative;margin-bottom:3rem;width:100%}.timeline-item-left .timeline-content{margin-right:52%;text-align:right}.timeline-item-right .timeline-content{margin-left:52%;text-align:left}.timeline-marker{position:absolute;left:50%;top:0;transform:translateX(-50%);z-index:10}.timeline-dot{width:20px;height:20px;border-radius:50%;border:4px solid var(--white);box-shadow:0 0 0 3px var(--primary);transition:var(--transition)}.dot-success{background:var(--gradient-primary)}.dot-warning{background:linear-gradient(135deg,var(--primary-light),var(--primary))}.dot-info{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}.timeline-item:hover .timeline-dot{transform:scale(1.3);box-shadow:0 0 0 5px var(--primary-light)}.timeline-card,.timeline-content{position:relative}.timeline-card{background:var(--white);padding:1.5rem;border-radius:12px;box-shadow:var(--shadow-md);transition:var(--transition);border:2px solid transparent}.timeline-item-left .timeline-card:after{content:"";position:absolute;right:-12px;top:8px;width:0;height:0;border-style:solid;border-width:10px 0 10px 12px;border-color:transparent transparent transparent var(--white)}.timeline-item-right .timeline-card:after{content:"";position:absolute;left:-12px;top:8px;width:0;height:0;border-style:solid;border-width:10px 12px 10px 0;border-color:transparent var(--white) transparent transparent}.timeline-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--primary-light)}.timeline-year{display:inline-block;background:linear-gradient(135deg,var(--primary),var(--primary));color:var(--white);padding:.4rem 1rem;border-radius:20px;font-weight:700;font-size:.9rem;margin-bottom:.8rem;box-shadow:0 2px 8px rgba(255,179,217,.3)}.timeline-title{font-size:1.4rem;font-weight:600;color:var(--text-primary);margin:.8rem 0;line-height:1.3}.timeline-description{color:var(--text-secondary);font-size:1rem;line-height:1.6;margin:.5rem 0 0 0}.badge{display:inline-block;padding:.4rem .8rem;border-radius:15px;font-size:.85rem;font-weight:600;margin-left:.5rem;text-transform:capitalize}.badge-success{background:var(--gradient-primary);color:var(--white)}.badge-warning{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:var(--white)}.badge-info{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--white)}@media (max-width:768px){.timeline:before{left:20px}.timeline-item-left .timeline-content,.timeline-item-right .timeline-content{margin-left:60px;margin-right:0;text-align:left}.timeline-marker{left:20px;transform:translateX(0)}.timeline-item-left .timeline-card:after,.timeline-item-right .timeline-card:after{left:-12px;right:auto;border-width:10px 12px 10px 0;border-color:transparent var(--white) transparent transparent}.section-title{font-size:2rem}.timeline-title{font-size:1.2rem}}@media (max-width:576px){.timeline-card{padding:1rem}.timeline-year{font-size:.8rem;padding:.3rem .8rem}.timeline-title{font-size:1.1rem}.timeline-description{font-size:.95rem}}.profile-image[data-v-26d69024]{width:180px;height:180px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:4px solid var(--primary);box-shadow:var(--shadow-lg);transition:var(--transition)}.profile-image[data-v-26d69024]:hover{transform:scale(1.05);box-shadow:var(--shadow-xl);border-color:var(--primary-light)}.profile-placeholder[data-v-26d69024]{width:180px;height:180px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;margin:0 auto;box-shadow:var(--shadow-lg);transition:var(--transition)}.profile-placeholder i[data-v-26d69024]{font-size:8rem;color:var(--bg-primary)}.profile-placeholder[data-v-26d69024]:hover{transform:scale(1.05);box-shadow:var(--shadow-xl);background:var(--gradient-primary)}.avatar-wrapper[data-v-26d69024]{display:inline-block}:root{--accent:#3b82f6;--secondary:#0ea5e9;--bg-primary:#fff;--bg-tertiary:#f1f5f9;--text-muted:#94a3b8;--border-light:#e2e8f0;--border-medium:#cbd5e1;--shadow-sm:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--shadow-colored:0 10px 30px -5px rgba(37,99,235,.25);--gradient-primary:linear-gradient(135deg,#2563eb,#3b82f6 50%,#0ea5e9);--gradient-soft:linear-gradient(135deg,#dbeafe,#f1f5f9);--transition-fast:all 0.2s cubic-bezier(0.4,0,0.2,1);--transition:all 0.3s cubic-bezier(0.4,0,0.2,1);--transition-slow:all 0.5s cubic-bezier(0.4,0,0.2,1);--white:#fff;--bg-secondary:#f8fafc;--gris-tres-clair:#f1f5f9;--gris-clair:#e2e8f0;--gris-moyen:#94a3b8;--gris-fonce:#475569;--text-primary:#0f172a;--text-secondary:#475569;--primary:#2563eb;--primary-light:#60a5fa;--primary-lighter:#dbeafe;--primary-dark:#1e40af;--primary:#3b82f6}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;padding:0;background-color:var(--bg-secondary);line-height:1.6;overflow-x:hidden}#app,body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--text-primary)}#app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--primary-lighter) 100%)}.main-content{flex:1;width:100%;position:relative}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:6px;border:2px solid var(--bg-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--primary)}::selection{background:var(--primary-light);color:var(--primary-dark)}::-moz-selection{background:var(--primary-light);color:var(--primary-dark)}.navbar{background:var(--white);padding:.75rem 0;position:sticky;top:0;z-index:1000;box-shadow:var(--shadow-md);border-bottom:2px solid var(--primary-light)}.nav-container{max-width:1400px;margin:0 auto;padding:0 2rem;display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center}.nav-center,.nav-left{display:flex;align-items:center}.nav-center{justify-content:center}.nav-right{display:flex;align-items:center;gap:1rem;justify-content:flex-end}.nav-menu-main{gap:.25rem}.nav-menu-admin,.nav-menu-main{display:flex;list-style:none;margin:0;padding:0;align-items:center}.nav-user-menu{gap:.5rem}.nav-logo,.nav-user-menu{display:flex;align-items:center}.nav-logo{gap:1rem;text-decoration:none;transition:var(--transition)}.logo-svg{width:50px;height:50px;cursor:pointer;color:var(--primary);transition:all .3s ease}.logo-svg text{fill:var(--primary)}.logo-svg:hover{transform:translateY(-2px) scale(1.1)}.logo-text{color:var(--primary);font-size:1.5rem;font-weight:700;text-decoration:none;white-space:nowrap}.nav-logo:hover .logo-text{transform:translateY(-2px)}.menu-toggle,.nav-logo i{font-size:1.8rem}.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;color:var(--primary);transition:var(--transition)}.menu-toggle:hover{transform:scale(1.1);color:var(--primary)}.nav-menu{display:flex;list-style:none;margin:0;padding:0;gap:.5rem;align-items:center}.nav-item{margin:0}.nav-link{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;color:var(--text-primary);text-decoration:none;border-radius:.5rem;transition:var(--transition);font-weight:500;font-size:.95rem;position:relative;overflow:hidden;background:transparent;border:none;white-space:nowrap}.nav-anchor,.nav-link{cursor:pointer}.nav-link i{font-size:1.1rem;transition:var(--transition);color:var(--primary)}.nav-link:hover{background-color:var(--primary-lighter);transform:translateY(-2px);box-shadow:var(--shadow-sm);color:var(--primary)}.nav-link:hover i{transform:scale(1.15)}.nav-link.router-link-active{background-color:var(--primary-light);font-weight:600;color:var(--primary-dark)}.nav-link.router-link-active:before{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--primary);border-radius:3px 3px 0 0}.btn-login,.btn-logout,.btn-register{background:none;border:2px solid var(--primary-light);cursor:pointer;font-family:inherit;padding:.625rem 1rem}.btn-login:hover,.btn-logout:hover,.btn-register:hover{transform:translateY(-2px)}.btn-login:hover,.btn-logout:hover,.btn-register,.btn-register:hover{background:var(--primary-light);border-color:var(--primary)}.btn-register:hover{background:var(--primary);color:#fff}.nav-link.nav-link-profile{border:2px solid var(--primary-light)}.nav-link.nav-link-profile:hover{border-color:var(--primary)}.nav-link-admin{background:linear-gradient(135deg,var(--primary),var(--primary))}.nav-link-admin,.nav-link-admin i{color:#fff!important}.nav-link-admin:hover{background:linear-gradient(135deg,var(--primary),var(--primary));transform:translateY(-2px)}@media (max-width:768px){.menu-toggle{display:block}.nav-container{grid-template-columns:1fr auto;gap:1rem}.nav-center,.nav-right .nav-menu-admin,.nav-right .theme-dropdown{display:none}.nav-item,.nav-link{width:100%}.nav-link{padding:1rem 1.5rem;justify-content:flex-start}.nav-link:hover{transform:translateX(8px)}}@media (max-width:480px){.nav-container{padding:0 1rem}.logo-text{font-size:1.2rem}}.footer{background:var(--bg-primary);padding:3rem 0 1rem;margin-top:auto;border-top:3px solid var(--primary-light);box-shadow:var(--shadow-md)}.footer-container{max-width:1400px;margin:0 auto;padding:0 2rem}.footer-main{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr 1fr;gap:2.5rem;padding-bottom:2rem;border-bottom:2px solid var(--border-light)}.footer-brand{display:flex;flex-direction:column;gap:1rem}.brand-header{display:flex;align-items:center;gap:.75rem}.footer-logo-icon{font-size:2rem;color:var(--primary)}.footer-title{color:var(--primary);font-weight:700;font-size:1.35rem;margin:0}.footer-description{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin:0}.footer-section{display:flex;flex-direction:column}.footer-heading{color:var(--primary);font-weight:600;font-size:1.05rem;margin-bottom:1rem}.footer-contact,.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.625rem}.footer-contact li{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.footer-contact i{color:var(--primary);font-size:1rem}.footer-anchor,.footer-link{color:var(--text-secondary);text-decoration:none;font-size:.9rem;transition:var(--transition);display:inline-block;cursor:pointer}.footer-anchor:hover,.footer-link:hover{color:var(--primary);transform:translateX(3px)}.footer-social{display:flex;gap:.625rem;flex-wrap:wrap}.social-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:2px solid var(--border-light);border-radius:.5rem;color:var(--primary);text-decoration:none;transition:var(--transition);font-size:1.2rem}.social-btn:hover{background:var(--primary-lighter);border-color:var(--primary);transform:translateY(-3px);box-shadow:var(--shadow-md);color:var(--primary)}.footer-bottom{padding:1.5rem 0}.footer-bottom-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-copyright,.footer-made{color:var(--text-secondary);font-size:.875rem;margin:0}.footer-made i{color:var(--primary);margin:0 .25rem}@media (max-width:992px){.footer-main{grid-template-columns:1fr 1fr;gap:2rem}}@media (max-width:576px){.footer-main{grid-template-columns:1fr;gap:1.5rem}.footer-bottom-content{flex-direction:column;text-align:center;gap:.75rem}.footer-container{padding:0 1rem}}.apropos-page{min-height:calc(100vh - 200px);padding:2rem 0;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--primary-lighter) 100%)}.container-responsive{max-width:1400px;margin:0 auto;padding:0 2rem}.apropos-page .card{background:var(--white);border:2px solid var(--primary-light);border-radius:1rem;box-shadow:var(--shadow-xl);padding:2.5rem;margin:2rem 0;transition:var(--transition)}.apropos-page .card:hover{box-shadow:var(--shadow-colored);transform:translateY(-3px)}.apropos-page h1{font-weight:700;margin-bottom:2rem}.apropos-page h1,.apropos-page h1 i{color:var(--primary)}.apropos-page h3{color:var(--primary-dark);margin-top:1rem;font-weight:600}.apropos-page .avatar-wrapper{font-size:5rem;color:var(--primary)}.apropos-page .lead{font-size:1.125rem;line-height:1.8;color:var(--text-primary)}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.apropos-page .alert{background:var(--primary-lighter);border:1px solid var(--primary-light);color:var(--text-primary);padding:1rem;border-radius:.5rem}.apropos-page .spinner-border{color:var(--primary)}.description-container{max-width:900px;margin:0 auto}.text-justify{text-align:justify}@media (max-width:768px){.container-responsive{padding:0 1rem}.apropos-page .card{padding:1.5rem}.apropos-page h1{font-size:2rem}}.competences-page,.projets-page{min-height:calc(100vh - 200px);padding:2rem 0;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--primary-lighter) 100%)}.page-header{padding:2rem 0 1rem}.header-content,.windows-interface{max-width:1400px;margin:0 auto}.windows-interface{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;padding:0 2rem}.sidebar-left{background:var(--white);border-radius:1rem;box-shadow:var(--shadow-lg);padding:1.5rem;height:-moz-fit-content;height:fit-content;position:sticky;top:90px;border:2px solid var(--primary-light)}.sidebar-header{display:flex;align-items:center;gap:.75rem;padding-bottom:1rem;border-bottom:2px solid var(--primary-light);margin-bottom:1rem}.sidebar-icon{font-size:1.5rem;color:var(--primary)}.sidebar-title{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.sidebar-section{margin-bottom:1rem;border-bottom:1px solid var(--border-light);padding-bottom:1rem}.sidebar-section:last-of-type{border-bottom:none;padding-bottom:0}.sidebar-section-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;cursor:pointer;border-radius:.5rem;transition:var(--transition);font-weight:600;color:var(--texte-primary);font-size:.95rem}.sidebar-section-header:hover{background:var(--primary-lighter)}.sidebar-section-header i{font-size:1.1rem;color:var(--primary)}.toggle-icon{margin-left:auto;transition:transform .3s ease;font-size:.875rem}.toggle-icon.rotated{transform:rotate(180deg)}.sidebar-section-content{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 .75rem}.sidebar-section-content.expanded{max-height:500px;padding:.75rem}.search-input-wrapper{position:relative}.sidebar-search-input{width:100%;padding:.625rem 2rem .625rem .75rem;border:2px solid var(--border-light);border-radius:.5rem;font-size:.9rem;transition:var(--transition)}.sidebar-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(255,179,217,.25)}.sidebar-clear-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--texte-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:var(--transition)}.sidebar-clear-btn:hover{background:var(--primary-lighter);color:var(--primary)}.sidebar-filter-select{width:100%;padding:.625rem;border:2px solid var(--border-light);border-radius:.5rem;font-size:.9rem;transition:var(--transition);background:var(--white)}.sidebar-filter-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(255,179,217,.25)}.active-filters-list{display:flex;flex-direction:column;gap:.5rem}.filter-tag-sidebar{display:inline-flex;align-items:center;gap:.5rem;background:var(--primary-light);color:var(--primary-dark);padding:.5rem .75rem;border-radius:.375rem;font-size:.85rem;font-weight:500}.btn-remove-tag{background:none;border:none;color:var(--primary-dark);cursor:pointer;font-size:1.25rem;line-height:1;padding:0;margin-left:.25rem;transition:var(--transition)}.btn-remove-tag:hover{color:var(--primary);transform:scale(1.2)}.btn-clear-all-sidebar{background:var(--primary);color:#fff;border:none;padding:.5rem .75rem;border-radius:.375rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:.25rem}.btn-clear-all-sidebar:hover{background:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.results-counter-sidebar{padding:.75rem;background:var(--bg-secondary);border-radius:.5rem;margin-top:1rem}.main-content{background:var(--white);border-radius:1rem;box-shadow:var(--shadow-lg);overflow:hidden;border:2px solid var(--primary-light);min-height:600px}.content-header{background:var(--gradient-primary);padding:1rem 1.5rem;justify-content:space-between;border-bottom:3px solid var(--primary-dark);flex-wrap:wrap;gap:1rem}.content-header,.content-title{color:#fff;display:flex;align-items:center}.content-title{font-size:1.25rem;font-weight:600;margin:0}.competences-content,.projects-content{padding:2rem;overflow-y:auto;max-height:calc(100vh - 180px);scrollbar-width:thin;scrollbar-color:var(--primary) var(--bg-tertiary)}.competences-content::-webkit-scrollbar,.projects-content::-webkit-scrollbar{width:8px}.competences-content::-webkit-scrollbar-track,.projects-content::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}.competences-content::-webkit-scrollbar-thumb,.projects-content::-webkit-scrollbar-thumb{background:var(--gradient-primary);border-radius:4px}.competences-content::-webkit-scrollbar-thumb:hover,.projects-content::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}.competences-grid,.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.project-card,.skill-card{background:var(--white);border:2px solid var(--primary-light);border-radius:1rem;box-shadow:var(--shadow-md);transition:var(--transition);height:100%;display:flex;flex-direction:column}.project-card:hover,.skill-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-xl);border-color:var(--primary)}.project-card .card-body,.skill-card .card-body{padding:1.5rem;flex:1;display:flex;flex-direction:column}.project-card h5,.skill-card h5{color:var(--primary);font-weight:600;margin-bottom:1rem;font-size:1.125rem}.project-card h5 i,.skill-card h5 i{color:var(--primary)}.project-card .badge,.skill-card .badge{background:var(--primary-light);color:var(--primary-dark);padding:.375rem .75rem;border-radius:.375rem;font-weight:500;display:inline-block;margin:.25rem;font-size:.85rem}.badge.bg-primary,.badge.bg-success{background:var(--primary)!important;color:#fff!important}.empty-state,.loading-state,.no-results-state{text-align:center;padding:3rem 2rem}.mobile-filters-toggle{display:none;width:100%;background:var(--white);border:2px solid var(--primary-light);border-radius:.75rem;padding:1rem;margin-bottom:1rem;font-weight:600;color:var(--text-primary);cursor:pointer;transition:var(--transition);align-items:center;justify-content:space-between;box-shadow:var(--shadow-md)}.mobile-filters-toggle:hover{background:var(--primary-lighter);border-color:var(--primary)}@media (max-width:992px){.windows-interface{grid-template-columns:1fr;padding:0 1rem}.sidebar-left{position:relative;top:0;display:none}.sidebar-left.mobile-open{display:block}.mobile-filters-toggle{display:flex}.competences-grid,.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}}@media (max-width:576px){.competences-grid,.projects-grid{grid-template-columns:1fr}.competences-content,.projects-content{padding:1rem}.content-header{padding:.875rem 1rem}.content-title{font-size:1.05rem}}.contact-page{min-height:calc(100vh - 200px);padding:2rem 0;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--primary-lighter) 100%)}.contact-page .container-responsive{max-width:1400px;margin:0 auto;padding:0 2rem}.contact-page .card{background:var(--white);border:2px solid var(--primary-light);border-radius:1rem;box-shadow:var(--shadow-xl);padding:2.5rem;max-width:900px;margin:2rem auto;transition:var(--transition)}.contact-page .card:hover{box-shadow:var(--shadow-colored);transform:translateY(-3px)}.contact-page h1{font-weight:700;margin-bottom:2rem}.contact-page h1,.contact-page h1 i{color:var(--primary)}.contact-page .form-label{color:var(--text-primary);font-weight:600;margin-bottom:.5rem;display:block;font-size:.95rem}.contact-page .form-control{width:100%;padding:.875rem;border:2px solid var(--primary-light);border-radius:.5rem;font-size:1rem;transition:var(--transition);background:var(--bg-secondary);font-family:inherit}.contact-page .form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(255,179,217,.25);background:var(--white)}.contact-page textarea.form-control{resize:vertical;min-height:120px}.contact-page .btn-primary{background:linear-gradient(135deg,var(--primary) 0,var(--primary) 100%);border:none;color:var(--white);padding:1rem 2rem;border-radius:.5rem;font-weight:600;font-size:1.1rem;cursor:pointer;transition:var(--transition);width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem}.contact-page .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary) 0,var(--primary) 100%);transform:translateY(-2px);box-shadow:var(--shadow-xl)}.contact-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.contact-page .alert{padding:1rem 1.25rem;border-radius:.5rem;margin-top:1rem;display:flex;align-items:center;gap:.5rem}.contact-page .alert-danger,.contact-page .alert-success{background:var(--primary-lighter);border:1px solid var(--primary-light);color:var(--primary-dark)}.contact-page hr{border:none;border-top:2px solid var(--primary-light);margin:2.5rem 0}.contact-page .display-6{font-size:2.5rem}.contact-page .text-danger,.contact-page .text-primary,.contact-page .text-success{color:var(--primary)!important}.contact-page .spinner-border{width:1rem;height:1rem;border-width:.15em}@media (max-width:768px){.contact-page .card{padding:1.5rem}.contact-page h1{font-size:2rem}}.text-center{text-align:center}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.me-1{margin-right:.25rem}.me-2{margin-right:.5rem}.me-3{margin-right:1rem}.ms-2{margin-left:.5rem}.py-5{padding-top:3rem;padding-bottom:3rem}.d-flex{display:flex}.d-grid{display:grid}.align-items-center{align-items:center}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-mobile-center{justify-content:flex-start}@media (max-width:576px){.justify-content-mobile-center{justify-content:center}}.flex-wrap{flex-wrap:wrap}.gap-2{gap:.5rem}.g-4{gap:1.5rem}.h-100{height:100%}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.card-body{padding:1.5rem}.card-title{margin-bottom:1rem;font-size:1.25rem}.card-text{color:var(--text-secondary);line-height:1.6}.text-muted{color:var(--gris-moyen)!important}.lead{font-size:1.125rem;line-height:1.75}.display-1{font-size:6rem;font-weight:300}.display-4{font-size:3.5rem;font-weight:300}.display-6{font-size:2.5rem;font-weight:300}.btn-link{background:none;border:none;text-decoration:underline;cursor:pointer;padding:0;font:inherit}.btn-link,.btn-link:hover{color:var(--primary)}.row{display:flex;flex-wrap:wrap;margin:0 -1rem}.col-12,.col-md-4{flex:0 0 100%;max-width:100%;padding:0 1rem}@media (min-width:768px){.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}}.col-lg-10,.col-lg-11,.col-lg-8{flex:0 0 100%;max-width:100%;padding:0 1rem}@media (min-width:992px){.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}}.col-xl-10{flex:0 0 100%;max-width:100%;padding:0 1rem}@media (min-width:1200px){.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}}.btn-project-link{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;text-decoration:none;border-radius:.5rem;font-weight:600;font-size:.95rem;transition:var(--transition);border:none;cursor:pointer}.btn-project-link,.btn-project-link:hover{background:linear-gradient(135deg,var(--primary) 0,var(--primary) 100%);color:var(--white)}.btn-project-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-project-link i{font-size:1.1rem}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@media (max-width:768px){.d-md-none{display:none}}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-lg{box-shadow:var(--shadow-lg)}.border-0{border:none!important}