*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--primary-blue: #667eea;--primary-violet: #764ba2;--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--violet-dark: #4c1d95;--violet-medium: #5b21b6;--violet-light: #c7d2fe;--violet-lighter: #e0e7ff;--violet-bg: #faf5ff;--text-dark: #1f2937;--text-medium: #374151;--text-light: #6b7280;--text-muted: #9ca3af;--bg-light: #f3f4f6;--bg-white: white;--border-light: #e5e7eb;--border-medium: #d1d5db;--success: #10b981;--success-dark: #059669;--success-bg: #d1fae5;--success-text: #065f46;--danger: #ef4444;--danger-dark: #dc2626;--danger-bg: #fee2e2;--warning: #f59e0b;--info: #3b82f6}.btn-primary{padding:.75rem 1.5rem;background:var(--primary-gradient);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{padding:.75rem 1.5rem;background:var(--bg-light);color:var(--text-medium);border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-secondary:hover:not(:disabled){background:var(--border-light)}.btn-danger{padding:.75rem 1.5rem;background:var(--danger);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-danger:hover:not(:disabled){background:var(--danger-dark)}.btn-danger:disabled{opacity:.7;cursor:not-allowed}.btn-small{padding:.5rem 1rem;font-size:.875rem}.btn-icon{background:none;border:none;font-size:1rem;padding:.25rem;border-radius:4px;cursor:pointer;transition:background .2s}.btn-icon:hover:not(:disabled){background:var(--bg-light)}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-icon-small{background:none;border:none;font-size:.9rem;padding:.15rem;cursor:pointer;opacity:.6;transition:opacity .2s}.btn-icon-small:hover{opacity:1}.btn-add{display:flex;align-items:center;gap:.5rem}.btn-close{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:32px;height:32px;border-radius:50%;cursor:pointer;line-height:1}.btn-close:hover{background:#ffffff4d}.form-section{background:linear-gradient(135deg,#667eea05,#764ba205);border:1px solid var(--violet-light);border-radius:12px;padding:1.5rem}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--violet-lighter)}.form-header h2{margin:0;font-size:1.25rem;color:var(--primary-blue)}fieldset{border:1px solid var(--violet-light);border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem;background:linear-gradient(135deg,#667eea08,#764ba208)}legend{font-weight:600;padding:.25rem .75rem;background:var(--primary-gradient);color:#fff;border-radius:4px;font-size:.9rem}.form-row{display:flex;gap:1rem;flex-wrap:wrap}.form-group{flex:1;min-width:200px;margin-bottom:1rem}.form-group.small{flex:0 0 120px;min-width:120px}.form-group.full-width{flex:1 1 100%;min-width:100%}.form-group label{display:block;margin-bottom:.4rem;color:var(--violet-dark);font-size:.9rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.6rem;border:1px solid var(--violet-light);border-radius:6px;font-size:.95rem;box-sizing:border-box;font-family:inherit;transition:border-color .2s,box-shadow .2s;background:var(--violet-bg);color:var(--text-dark)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #667eea26}.form-group textarea{resize:vertical}.form-group input[type=checkbox]{width:auto;margin-right:.5rem}.form-group input[type=date]::-webkit-calendar-picker-indicator{filter:brightness(0)}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.info-text{color:var(--violet-medium);font-size:.875rem;margin-bottom:1rem;padding:.75rem;background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:6px;border-left:3px solid var(--primary-blue)}.error{color:var(--danger-dark);margin-bottom:1rem;font-size:.9rem}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.8rem;margin-top:.25rem;display:block}.filters-bar{background:var(--bg-light);padding:1rem;border-radius:8px;margin-bottom:1rem}.filters-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.filters-row+.filters-row{margin-top:.75rem}.filter-group{flex:1;min-width:150px}.filter-group.search-group{flex:2;min-width:200px}.filter-group select,.filter-group input{width:100%;padding:.5rem;border:1px solid var(--border-medium);border-radius:6px;font-size:.875rem;background:var(--bg-white);color:var(--text-medium)}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:var(--primary-blue)}.sort-group{display:flex;align-items:center;gap:.5rem}.sort-group label{font-size:.875rem;color:var(--text-light);white-space:nowrap}.sort-group select{padding:.5rem;border:1px solid var(--border-medium);border-radius:6px;font-size:.875rem;background:var(--bg-white);color:var(--text-medium)}.sort-direction-btn{padding:.5rem .75rem;background:var(--bg-white);border:1px solid var(--border-medium);border-radius:6px;cursor:pointer;font-size:1rem;color:var(--text-medium)}.sort-direction-btn:hover{background:var(--bg-light)}.results-count{font-size:.875rem;color:var(--text-light);margin-left:auto}.periode-group{display:flex;align-items:center;gap:.5rem}.periode-group label{font-size:.85rem;color:var(--text-light);white-space:nowrap}.periode-group input[type=date]{padding:.4rem .5rem;border:1px solid var(--border-medium);border-radius:4px;font-size:.85rem;width:130px}.periode-group input[type=date]::-webkit-calendar-picker-indicator{filter:brightness(0);cursor:pointer}.periode-group span{color:var(--text-light);font-size:.85rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-white);padding:2rem;border-radius:12px;max-width:400px;width:90%}.modal h3{margin-bottom:1rem;color:var(--text-dark)}.modal p{margin-bottom:.5rem;color:var(--text-medium)}.modal .warning{color:var(--danger);font-size:.9rem;margin-bottom:1.5rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.entity-card{background:var(--bg-white);border:1px solid var(--border-light);border-radius:8px;padding:1rem;margin-bottom:.75rem;border-left:4px solid var(--primary-blue)}.entity-card.actif{border-left-color:var(--success)}.entity-card.inactif{opacity:.7;border-left-color:var(--text-muted)}.entity-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.entity-identity{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.entity-identity strong{font-size:1rem;color:var(--text-dark)}.entity-actions{display:flex;gap:.25rem}.entity-details{display:flex;gap:1rem;flex-wrap:wrap;font-size:.875rem;color:var(--text-light)}.detail-item{display:flex;align-items:center;gap:.25rem}.status-badge{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.status-badge.actif,.status-badge.statut-actif{background:var(--success-bg);color:var(--success-text)}.status-badge.inactif,.status-badge.statut-inactif{background:var(--bg-light);color:var(--text-light)}.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.tag.heures{background:var(--success-bg);color:var(--success-text)}.tag.km{background:#dbeafe;color:#1e40af}.tag.benevole{background:#fef3c7;color:#92400e}.tag.niveau{background:#e0e7ff;color:var(--violet-dark)}.tag-blue{background:#dbeafe;color:#1e40af;padding:.15rem .5rem;border-radius:4px}.tag-violet{background:#f3e8ff;color:#7c3aed;padding:.15rem .5rem;border-radius:4px}.tag-warning{background:#fef3c7;color:#92400e;padding:.15rem .5rem;border-radius:4px}.tag-success{background:var(--success-bg);color:var(--success-text);padding:.15rem .5rem;border-radius:4px}.tag-danger{background:var(--danger-bg);color:#991b1b;padding:.15rem .5rem;border-radius:4px}.selected-tag{display:inline-flex;align-items:center;gap:.35rem;background:var(--success-bg);color:var(--success-text);padding:.35rem .6rem;border-radius:20px;font-size:.85rem}.tag-remove{background:none;border:none;color:inherit;cursor:pointer;padding:0;font-size:1rem;line-height:1}.tag-remove:hover{color:var(--danger-dark)}.dropdown-container{position:relative}.dropdown-list{position:absolute;top:100%;left:0;right:0;background:var(--bg-white);color:var(--text-medium);border:1px solid var(--border-medium);border-radius:6px;box-shadow:0 4px 12px #00000026;max-height:200px;overflow-y:auto;z-index:100;margin-top:4px}.dropdown-list .dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;cursor:pointer;transition:background .15s;margin-bottom:0}.dropdown-item:hover{background:var(--bg-light)}.dropdown-item.selectable{cursor:pointer;padding:.7rem .75rem}.dropdown-item.selectable:hover{background:var(--success-bg)}.dropdown-item input[type=checkbox]{width:16px;height:16px;margin:0;flex-shrink:0;cursor:pointer}.dropdown-empty{padding:.75rem;text-align:center;color:var(--text-light);font-size:.9rem}.dropdown-backdrop{position:fixed;inset:0;z-index:99}.loading,.no-data{text-align:center;padding:2rem;color:var(--text-light)}.seance-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;justify-content:center;align-items:center;padding:1rem}.seance-modal{width:60%;max-width:800px;min-width:400px;max-height:90vh;background:var(--bg-white);border-radius:12px;box-shadow:0 20px 50px #0000004d;display:flex;flex-direction:column;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.seance-modal-header{padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--success) 0%,var(--success-dark) 100%);color:#fff;display:flex;justify-content:space-between;align-items:center;border-radius:12px 12px 0 0}.seance-modal-header h3{margin:0;font-size:1.1rem}.seance-modal-content{flex:1;overflow-y:auto;padding:1.5rem}.seances-list-header{margin-bottom:1rem}.seances-items{display:flex;flex-direction:column;gap:.75rem}.seance-item{background:var(--bg-light);padding:.75rem;border-radius:8px;border-left:3px solid var(--success)}.seance-item-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.seance-date{font-weight:600;color:var(--text-dark)}.seance-type{padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.seance-type.individuel{background:#dbeafe;color:#1e40af}.seance-type.atelier{background:#fef3c7;color:#92400e}.seance-mode{font-size:.8rem;color:var(--text-light)}.seance-duree{font-weight:600;color:var(--success)}.seance-details{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem;font-size:.8rem;color:var(--text-medium)}.seance-by{font-size:.75rem;color:var(--text-muted);margin-top:.5rem;display:block}.seance-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.seance-form-group{display:flex;flex-direction:column}.seance-form-group.full-width{grid-column:1 / -1}.seance-form-group label{font-size:.85rem;font-weight:500;color:var(--text-medium);margin-bottom:.35rem}.seance-form-group input,.seance-form-group select,.seance-form-group textarea{padding:.6rem;border:1px solid var(--border-medium);border-radius:6px;font-size:.9rem;font-family:inherit}.seance-form-group input:focus,.seance-form-group select:focus,.seance-form-group textarea:focus{outline:none;border-color:var(--success)}.seance-modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-light)}.page{min-height:100vh;background:var(--bg-light)}.header{padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.back-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--primary-blue);font-weight:500;transition:opacity .2s}.back-link:hover{opacity:.8}.back-icon{width:20px;height:20px}.role-badge{background:var(--primary-gradient);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:600}.content{padding:0 2rem 2rem}.main-card{background:var(--bg-white);border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000000d}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-header h1{margin:0;color:var(--text-dark);font-size:1.5rem}.header-actions{display:flex;gap:.75rem}
