#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#fff;margin:0;padding:0}.app-layout{display:flex;min-height:100vh;background:#f5f5f5;margin:0;padding:0}button:hover,button:focus{background-color:#fbbf24!important;color:#000!important;outline:none!important;box-shadow:none!important}.sidebar{width:250px;background:linear-gradient(180deg,#000,#1a1a1a);color:#fff;display:flex;flex-direction:column;transition:width .3s ease;position:fixed;height:100vh;min-height:0;left:0;top:0;z-index:100;box-shadow:2px 0 10px rgba(0,0,0,.1);overflow:hidden}.sidebar-collapsed{width:80px}.sidebar-header{padding:1.5rem;display:flex;align-items:center;gap:1rem;border-bottom:1px solid rgba(245,158,11,.2);position:relative}.sidebar-logo{width:45px;height:45px;object-fit:contain}.sidebar-header h2{font-size:1.3rem;color:#f59e0b;font-weight:800;letter-spacing:2px;white-space:nowrap}.toggle-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#f59e0b;border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .3s ease}.toggle-btn svg{width:16px;height:16px}.toggle-btn:hover{background:#d97706;transform:translateY(-50%) scale(1.1)}.sidebar-nav{flex:1;min-height:0;padding:.5rem 0;overflow-y:auto;overflow-x:hidden}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:#f59e0b;border-radius:3px}.nav-item{display:flex;align-items:center;gap:1rem;padding:.9rem 1.25rem;color:rgba(255,255,255,.75);text-decoration:none;transition:all .25s ease;border-left:4px solid transparent;cursor:pointer;background:none;width:100%;text-align:left;font-size:.95rem}.nav-item:hover{background:rgba(245,158,11,.1);color:#f59e0b;border-left-color:#f59e0b}.nav-item.active{background:rgba(245,158,11,.15);color:#f59e0b;border-left-color:#f59e0b;font-weight:600}.nav-icon{min-width:24px;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.nav-icon svg{width:20px;height:20px}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{margin-top:auto;border-top:1px solid rgba(245,158,11,.2)}.logout-btn:hover{background:rgba(239,68,68,.1);color:#ef4444;border-left-color:#ef4444}.nav-group-header{width:100%;border:none}.nav-group .nav-caret{margin-left:auto;display:flex}.nav-group .nav-children{padding-left:1.5rem}.sub-item{padding:.75rem 1.25rem;font-size:.92rem}.nav-group.open .nav-group-header{background:rgba(245,158,11,.12)}.sidebar-footer{padding:1rem;border-top:1px solid rgba(245,158,11,.2)}.user-info{display:flex;align-items:center;gap:.75rem}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:#fff}.user-details{flex:1;min-width:0}.user-name{font-size:.9rem;font-weight:600;color:#fff;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:rgba(255,255,255,.6);margin:0}.main-content{flex:1;margin-left:250px;height:100vh;min-height:0;overflow:hidden;transition:margin-left .3s ease;display:flex;flex-direction:column;margin-top:0;padding-top:0}.sidebar-collapsed~.main-content{margin-left:80px}.topbar{background:linear-gradient(135deg,#f59e0b,#f8b033);padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 12px rgba(0,0,0,.1);position:sticky;z-index:50;top:0;margin:0}.topbar-left{display:flex;align-items:center;gap:.75rem}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:8px;background:rgba(255,255,255,.18);color:#fff;cursor:pointer}.mobile-menu-btn svg{width:20px;height:20px}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);z-index:95}.topbar-left{flex:1;max-width:500px}.search-box{position:relative;width:100%}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#94a3b8;display:flex;align-items:center;pointer-events:none}.search-input{width:100%;padding:.75rem 1rem .75rem 3rem;border:none;border-radius:8px;background:rgba(255,255,255,.15);color:#fff;font-size:.95rem;transition:all .3s ease;backdrop-filter:blur(10px)}.search-input::placeholder{color:rgba(255,255,255,.6)}.search-input:focus{outline:none;background:rgba(255,255,255,.25);box-shadow:0 0 0 3px rgba(255,255,255,.1)}.topbar-right{display:flex;align-items:center;gap:1.5rem}.user-profile{display:flex;align-items:center;gap:.85rem}.profile-avatar{width:45px;height:45px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;color:#fff;border:3px solid rgba(255,255,255,.3);flex-shrink:0}.profile-info{display:flex;flex-direction:column;gap:.15rem}.profile-name{font-size:.95rem;font-weight:700;color:#fff;margin:0;white-space:nowrap}.profile-role{font-size:.8rem;color:rgba(255,255,255,.8);margin:0}.content-wrapper{flex:1;min-height:0;padding:1.75rem;overflow-y:auto}.app-layout.role-admin .data-table thead th{background:#f59e0b!important;color:#111827!important}@media (max-width: 768px){.sidebar{width:80%;max-width:320px;transform:translate(-100%);transition:transform .3s ease;z-index:100;box-shadow:2px 0 12px rgba(0,0,0,.25)}.sidebar.sidebar-mobile-open{transform:translate(0)}.sidebar-collapsed{width:250px}.main-content{margin-left:0}.topbar{padding:1rem}.profile-info{display:none}.content-wrapper{padding:1rem}}body{font-family:Arial,sans-serif;line-height:1.6;background:#f4f4f4}.container{max-width:1200px;margin:0 auto;padding:1rem}.auth-form{max-width:400px;margin:2rem auto;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1)}:root{--primary-color: #f59e0b;--primary-dark: #d97706;--primary-light: #fbbf24;--secondary-color: #000000;--accent-color: #ffffff;--error-color: #ef4444;--warning-color: #f59e0b;--success-color: #10b981;--text-primary: #000000;--text-secondary: #4b5563;--text-light: #9ca3af;--border-color: #e5e7eb;--bg-light: #fafafa;--bg-dark: #111827;--shadow: 0 2px 4px rgba(0,0,0,.1);--shadow-hover: 0 4px 8px rgba(0,0,0,.15);--border-radius: 8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;color:var(--text-primary);background:var(--bg-light)}img,video,iframe{max-width:100%;min-height:auto;display:block}.container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}.table-wrapper,.table-container,.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.chart-container{width:100%;min-width:0}.chart-container canvas{display:block;width:100%!important;max-width:100%!important}.search-box{position:relative}.search-box .search-icon{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);pointer-events:none;z-index:2;width:1rem;min-height:1rem;color:var(--text-light)!important;opacity:1;display:block}.search-box .search-input,.search-box input.search-input{padding-left:2.75rem!important}.search-box .search-input::placeholder,.search-box input.search-input::placeholder{color:transparent}.search-box:has(.search-input:placeholder-shown):after{content:"Rechercher";position:absolute;left:2.75rem;top:50%;transform:translateY(-50%);color:var(--text-light);font-size:.95rem;pointer-events:none;z-index:1}.search-box:has(.search-input:focus):after,.search-box:has(.search-input:not(:placeholder-shown)):after{content:""}@media (max-width: 768px){body{font-size:14px}.pagination{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center;justify-content:center;gap:.5rem;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.pagination .btn-page,.pagination .pagination-btn,.pagination .page-info,.pagination .pagination-info{flex:0 0 auto;white-space:nowrap}.pagination .page-info,.pagination .pagination-info{font-size:clamp(.75rem,2.8vw,.9rem)}.filter-group .custom-select,.filter-group button,.filter-group select{min-width:0}.filter-group .custom-select .custom-select-trigger,.filter-group button,.filter-group select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-group .custom-select .custom-select-trigger span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-group button svg,.filter-group .custom-select .custom-select-trigger svg{flex-shrink:0}.filter-group:has(>.custom-select:nth-of-type(2)):not(:has(>.custom-select:nth-of-type(3))),.filter-group:has(>select:nth-of-type(2)):not(:has(>select:nth-of-type(3))){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%;align-items:stretch}.filter-group:has(>.custom-select:nth-of-type(2)):not(:has(>.custom-select:nth-of-type(3)))>.custom-select,.filter-group:has(>select:nth-of-type(2)):not(:has(>select:nth-of-type(3)))>select{min-width:0;width:100%!important}.filter-group:has(>.custom-select:nth-of-type(2)):not(:has(>.custom-select:nth-of-type(3)))>.custom-select .custom-select-trigger{width:100%}.filter-group:has(>.custom-select:nth-of-type(2)):not(:has(>.custom-select:nth-of-type(3)))>button,.filter-group:has(>select:nth-of-type(2)):not(:has(>select:nth-of-type(3)))>button{grid-column:1 / -1}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.table-wrapper .data-table,.table-container .data-table,.table-responsive .data-table,.users-members-page .table-wrapper .data-table,.users-members-page .table-container .data-table,.users-members-page .table-responsive .data-table,.wireguard-page .table-wrapper .data-table,.wireguard-page .table-container .data-table,.wireguard-page .table-responsive .data-table{width:max-content!important;min-width:640px!important}.table-wrapper .data-table th,.table-wrapper .data-table td,.table-container .data-table th,.table-container .data-table td,.table-responsive .data-table th,.table-responsive .data-table td,.users-members-page .data-table th,.users-members-page .data-table td,.wireguard-page .data-table th,.wireguard-page .data-table td{white-space:nowrap!important}.chart-container{min-height:300px}}@media (max-width: 480px){body{font-size:13px}h1{font-size:1.375rem}h2{font-size:1.125rem}h3{font-size:1rem}.table-wrapper .data-table,.table-container .data-table,.table-responsive .data-table,.users-members-page .table-wrapper .data-table,.users-members-page .table-container .data-table,.users-members-page .table-responsive .data-table,.wireguard-page .table-wrapper .data-table,.wireguard-page .table-container .data-table,.wireguard-page .table-responsive .data-table{min-width:560px!important}.chart-container{min-height:260px}}.member-details-page,[class*=details-page]{width:100%;max-width:100%}.member-details-page .details-content,.member-details-page .content-grid,.member-details-page .info-card,.member-details-page .profile-card,.member-details-page .section-card,[class*=details-page] .details-content,[class*=details-page] .content-grid,[class*=details-page] .info-card,[class*=details-page] .profile-card,[class*=details-page] .section-card{min-width:0;max-width:100%}.member-details-page .detail-row .label,.member-details-page .detail-row .value,[class*=details-page] .detail-row .label,[class*=details-page] .detail-row .value{overflow-wrap:anywhere;word-break:break-word}@media (max-width: 1024px){.member-details-page .content-grid,[class*=details-page] .content-grid{grid-template-columns:1fr!important}.member-details-page .detail-row,[class*=details-page] .detail-row{flex-wrap:wrap}.member-details-page .detail-row .label,[class*=details-page] .detail-row .label{min-width:0!important}}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.badge-active{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.badge-inactive{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.badge-pending{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:#1976d2}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-secondary:hover{background:#388e3c}.btn-danger{background:var(--error-color);color:#fff}.btn-danger:hover{background:#d32f2f}.btn:disabled{background:#ccc;cursor:not-allowed}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--border-radius);overflow:hidden}.table th,.table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color)}.table th{background:var(--bg-light);font-weight:600;color:var(--text-primary)}.table tr:hover{background:#f9f9f9}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:var(--border-radius);padding:2rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary)}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseGentle{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-slide-in{animation:slideInUp .6s ease-out forwards;opacity:0}.animate-fade-in{animation:fadeIn .8s ease-out forwards;opacity:0}.animate-pulse-gentle{animation:pulseGentle 2s ease-in-out infinite}@media (max-width: 768px){.btn{padding:.625rem 1.25rem;font-size:.9rem}.status-badge{padding:.2rem .625rem;font-size:.8rem}}@media (max-width: 480px){.btn{padding:.5rem 1rem;font-size:.85rem}.status-badge{padding:.15rem .5rem;font-size:.75rem}}.dashboard{padding:20px;max-width:1400px;margin:0 auto}.dashboard h1{margin-bottom:1.5rem;color:var(--text-primary)}.dashboard-section{margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow)}.dashboard-section h3{margin-bottom:1rem;color:var(--text-primary)}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card{padding:1.5rem;background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow);transition:box-shadow .3s}.card:hover{box-shadow:var(--shadow-hover)}.card h4{margin-bottom:.75rem;color:var(--text-primary)}.card p{color:var(--text-secondary);margin:.5rem 0}.stat-card{padding:1.5rem;background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow);text-align:center}.stat-card h3{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase}.stat-card p{font-size:2rem;font-weight:700;color:var(--primary-color)}.loading{padding:2rem;text-align:center;color:var(--text-secondary);font-style:italic}.error{color:var(--error-color);background:#ffebee;padding:1rem;border-radius:4px;margin:1rem 0}.empty-state{padding:2rem;text-align:center;color:var(--text-secondary)}.list{list-style:none;padding:0}.list-item{padding:1rem 0;border-bottom:1px solid var(--border-color)}.list-item:last-child{border-bottom:none}.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.auth-form{width:100%;max-width:420px;padding:2rem;background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow)}.auth-form h2{margin-bottom:1.5rem;text-align:center;color:var(--text-primary)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color)}.form-actions{margin-top:1.5rem}.form-actions button{width:100%;padding:.75rem;background:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .3s}.form-actions button:hover:not(:disabled){background:#d97706}.form-actions button:disabled{background:#ccc;cursor:not-allowed}.error-message{color:var(--error-color);margin-top:1rem;padding:.75rem;background:#ffebee;border-radius:4px;font-size:.9rem}.success-message{color:var(--success-color);margin-top:1rem;padding:.75rem;background:#e8f5e9;border-radius:4px;font-size:.9rem}.auth-links{margin-top:1.5rem;text-align:center}.auth-links a{display:inline-block;margin:0 .5rem;color:var(--primary-color);text-decoration:none;font-size:.9rem;transition:color .3s}.auth-links a:hover{color:#d97706;text-decoration:underline}
