.login-page{background:#faf9f5;justify-content:center;min-height:100vh;padding:20px}.login-card,.login-page{align-items:center;display:flex}.login-card{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000001a;flex-direction:column;gap:16px;max-width:400px;padding:48px 40px;text-align:center;width:100%}.login-icon{align-items:center;background:#f5f4ed;border-radius:18px;display:flex;font-size:2.5rem;height:72px;justify-content:center;width:72px}.login-card h1{color:#1e293b;font-size:1.5rem;font-weight:700;margin:0}.login-subtitle{color:#6b7280;font-size:.875rem;margin:0}.login-error{background:#fef2f2;border-radius:8px;color:#dc2626;font-size:.825rem;font-weight:500;padding:10px 14px;width:100%}.login-card input{border:1px solid #d1d5db;border-radius:10px;font-size:.95rem;outline:none;padding:12px 16px;transition:border-color .2s,box-shadow .2s;width:100%}.login-card input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.login-card button{background:#10b981;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;margin-top:4px;padding:12px 20px;transition:background .2s,transform .1s;width:100%}.login-card button:hover{background:#059669}.login-card button:active{transform:scale(.98)}.login-card button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:480px){.login-card{margin:16px;padding:32px 24px}}.pl-container{background:#faf9f5;min-height:100%;padding:0 0 40px}.pl-filters-bar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;padding:16px 0}.pl-filter-group{display:flex;flex-direction:column;gap:4px}.pl-filter-group label{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.pl-filter-group input,.pl-filter-group select{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#1e293b;font-size:.875rem;min-width:160px;outline:none;padding:8px 12px;transition:border-color .2s,box-shadow .2s}.pl-filter-group input:focus,.pl-filter-group select:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811f}.pl-config-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;display:inline-flex;font-size:.825rem;font-weight:500;justify-content:center;margin-left:auto;padding:8px 16px;transition:background .2s,color .2s}.pl-config-btn:hover{background:#f5f4ed;color:#1e293b}.pl-tabs{border-bottom:1px solid #e5e7eb;display:flex;gap:4px;margin-bottom:20px}.pl-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:.875rem;font-weight:500;margin-bottom:-1px;padding:10px 20px;transition:color .2s,border-color .2s}.pl-tab:hover{color:#1e293b}.pl-tab.active{border-bottom-color:#10b981;color:#1e293b;font-weight:600}.pl-table-container{background:#fff;border:1px solid #00000014;border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow:hidden}.pl-table-scroll{overflow-x:auto}.pl-fournisseur-table,.pl-reporting-table,.pl-salaries-table{border-collapse:initial;border-spacing:0;font-size:.825rem;width:100%}.pl-fournisseur-table thead,.pl-reporting-table thead,.pl-salaries-table thead{background:#f5f4ed}.pl-fournisseur-table th,.pl-reporting-table th,.pl-salaries-table th{background:#f5f4ed;border-bottom:1px solid #0000000f;color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.03em;padding:10px 14px;position:sticky;text-transform:uppercase;top:0;white-space:nowrap;z-index:2}.pl-fournisseur-table td,.pl-reporting-table td,.pl-salaries-table td{border-bottom:1px solid #0000000a;padding:8px 14px;vertical-align:middle;white-space:nowrap}.pl-fournisseur-table tbody tr:hover,.pl-reporting-table tbody tr:hover,.pl-salaries-table tbody tr:hover,.row-total{background:#f5f4ed}.row-total{font-weight:700}.row-total td{border-bottom:1px solid #00000014;padding-bottom:10px;padding-top:10px}.row-sous-total{background:#fafaf5;font-weight:600}.row-sous-total td{border-bottom:1px solid #0000000f}.row-pourcentage{color:#9ca3af;font-size:.775rem;font-style:italic}.cell-reel{color:#1e293b;font-weight:500}.cell-provision{color:#9ca3af;font-size:.75rem;font-style:italic}.cell-budget{color:#64748b;font-size:.75rem}.pl-editable{border-bottom:1px dashed #d1d5db;cursor:pointer}.pl-editable:hover{border-bottom-color:#10b981}.pl-inline-edit{border:1px solid #d1d5db;border-radius:6px;font-size:.8rem;outline:none;padding:4px 8px;text-align:right;width:90px}.pl-inline-edit:focus{border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.pl-provision-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.75rem;font-weight:500;gap:6px;padding:3px 10px}.pl-provision-ok{background:#ecfdf5;color:#059669}.pl-provision-alerte{background:#fffbeb;color:#d97706}.pl-tree-label{color:#1e293b;font-weight:500}.pl-tree-toggle{color:#9ca3af;cursor:pointer;margin-right:4px}.pl-tree-type{color:#9ca3af;font-size:.7rem;margin-left:8px}.pl-tree-item{align-items:center;display:flex;font-size:.85rem;gap:8px;padding:4px 0}.pl-config-overlay{background:#0000004d;inset:0;position:fixed;z-index:900}.pl-config-panel{animation:pl-panel-slide .3s ease;background:#fff;bottom:0;box-shadow:-4px 0 24px #0000001f;display:flex;flex-direction:column;max-width:100%;position:fixed;right:0;top:0;width:480px;z-index:910}@keyframes pl-panel-slide{0%{transform:translateX(100%)}to{transform:translateX(0)}}.pl-config-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.pl-config-header h2{font-size:1.05rem;font-weight:700;margin:0}.pl-config-close{background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;font-size:1.3rem;padding:4px}.pl-config-close:hover{background:#f3f4f6;color:#1e293b}.pl-config-tabs{border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:2px;padding:12px 24px 0}.pl-config-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:.8rem;font-weight:500;margin-bottom:-1px;padding:8px 14px}.pl-config-tab:hover{color:#1e293b}.pl-config-tab.active{border-bottom-color:#10b981;color:#1e293b;font-weight:600}.pl-config-content{flex:1 1;overflow-y:auto;padding:16px 24px}.pl-config-add-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.pl-config-add-row input,.pl-config-add-row select{border:1px solid #d1d5db;border-radius:8px;flex:1 1;font-size:.85rem;min-width:100px;padding:8px 12px}.pl-config-add-row button{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;white-space:nowrap}.pl-config-add-row button:hover{background:#059669}.pl-config-list{list-style:none;margin:0;padding:0}.pl-config-list li{align-items:center;border-radius:8px;display:flex;justify-content:space-between;padding:10px 12px}.pl-config-list li:hover{background:#f5f4ed}.pl-config-list li span{color:#1e293b;font-size:.875rem}.pl-config-delete{background:none;border:none;border-radius:4px;color:#dc2626;cursor:pointer;font-size:.85rem;padding:4px 8px}.pl-config-delete:hover{background:#fef2f2}.pl-loading{align-items:center;color:#9ca3af;display:flex;font-size:.9rem;gap:10px;justify-content:center;padding:60px 20px}.pl-loading:before{animation:pl-spin .7s linear infinite;border:2px solid #e5e7eb;border-radius:50%;border-top-color:#10b981;content:"";display:inline-block;height:20px;width:20px}@keyframes pl-spin{to{transform:rotate(1turn)}}.pl-empty-state{color:#9ca3af;font-size:.9rem;padding:60px 20px;text-align:center}.pl-toast{border-radius:10px;bottom:24px;box-shadow:0 4px 16px #00000026;color:#fff;font-size:.85rem;font-weight:500;padding:12px 20px;position:fixed;right:24px;z-index:1100}.pl-toast.success{background:#059669}.pl-toast.error{background:#dc2626}@media (max-width:768px){.pl-filters-bar{align-items:stretch;flex-direction:column;gap:10px}.pl-filter-group select{min-width:100%}.pl-config-panel{width:100%}.pl-tabs{overflow-x:auto}.pl-tab{flex-shrink:0;white-space:nowrap}}.salaires-container{background:#faf9f5;min-height:100%}.salaires-stats{display:flex;gap:16px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid #00000014;border-radius:12px;box-shadow:0 1px 3px #0000000d;min-width:180px;padding:20px 24px}.stat-value{color:#1e293b;font-size:1.5rem;font-weight:700}.stat-label{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.03em;margin-top:4px;text-transform:uppercase}.salaires-add-btn,.salaires-export-btn{border:none;border-radius:8px;cursor:pointer;font-size:.825rem;font-weight:600;padding:8px 16px;transition:background .2s}.salaires-export-btn{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.salaires-export-btn:hover{background:#e5e7eb}.salaires-add-btn{background:#10b981;color:#fff}.salaires-add-btn:hover{background:#059669}.salaires-purge-btn{background:#fff;border:1px solid #fca5a5;color:#dc2626;font-size:.825rem;padding:8px 16px;transition:background .2s}.salaires-purge-btn:hover{background:#fef2f2}.salaires-add-form{background:#fff;border:1px solid #00000014;border-radius:12px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:16px}.salaires-add-form input,.salaires-add-form select{border:1px solid #d1d5db;border-radius:8px;flex:1 1;font-size:.85rem;min-width:120px;padding:8px 12px}.salaires-add-form button{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px}.salaires-add-form button.btn-cancel{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.salaires-import-btn{align-items:center;background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:.825rem;font-weight:600;padding:8px 16px}.salaires-import-btn:hover{background:#2563eb}.import-result{background:#fff;border:1px solid #00000014;border-radius:12px;margin-bottom:16px;padding:14px 20px}.import-result-summary{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.import-badge{border-radius:20px;font-size:.75rem;font-weight:600;padding:4px 12px}.import-badge.created{background:#ecfdf5;color:#059669}.import-badge.updated{background:#eff6ff;color:#2563eb}.import-badge.details{background:#f5f3ff;color:#7c3aed}.import-close{background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;font-size:1rem;margin-left:auto;padding:2px 6px}.import-close:hover{background:#f3f4f6;color:#1e293b}.import-errors{border-top:1px solid #e5e7eb;margin-top:10px;padding-top:10px}.import-error-line{color:#dc2626;font-size:.8rem;padding:2px 0}.row-autres{background:#fafaf8}.row-autres td{border-bottom:none!important;color:#6b7280;font-size:.775rem}.type-autres{color:#9ca3af!important;font-style:italic}.row-total-verse{background:#f5f4ed}.row-total-verse td{border-bottom:2px solid #00000014!important;font-weight:600;padding-bottom:6px!important;padding-top:6px!important}.estimation-cell{color:#9ca3af!important;font-style:italic}.coeff-modal-overlay{align-items:center;background:#0000004d;display:flex;inset:0;justify-content:center;position:fixed;z-index:900}.coeff-modal{background:#fff;border-radius:14px;box-shadow:0 12px 40px #00000026;max-width:400px;padding:28px 32px;width:90%}.coeff-modal h3{font-size:1.05rem;font-weight:700;margin:0}.coeff-modal input{border:1px solid #d1d5db;border-radius:8px;font-size:1rem;padding:10px 14px;width:100%}.coeff-modal input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98126;outline:none}.coeff-modal button{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:10px 20px}.coeff-modal button:hover{background:#059669}.coeff-modal .btn-cancel{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.salarie-name-cell{min-width:180px;padding-top:10px!important;vertical-align:top!important}.salarie-collapse-btn{cursor:pointer;margin-right:4px}.salarie-collapse-btn:hover{color:#3b82f6}.salarie-grouped-row{cursor:pointer;transition:background .1s}.salarie-grouped-row:hover{background:#f8fafc}.salarie-grouped-name{align-items:center;display:flex;gap:6px}.salarie-grouped-type{color:#64748b;font-size:.78rem;font-weight:600}.salarie-name{color:#1e293b;font-size:.85rem;font-weight:600}.salarie-meta{align-items:center;color:#9ca3af;display:flex;font-size:.7rem;gap:6px;margin-top:4px}.categorie-badge{border-radius:20px;display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.03em;padding:3px 10px;text-transform:uppercase}.categorie-badge.productif{background:#ecfdf5;color:#059669}.categorie-badge.improductif{background:#fef2f2;color:#dc2626}.categorie-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.75rem;padding:4px 8px}.categorie-select:focus{border-color:#10b981;box-shadow:0 0 0 2px #10b98126;outline:none}.add-charge-btn{background:none;border:1px dashed #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.75rem;font-weight:500;padding:4px 12px;transition:background .15s,border-color .15s,color .15s}.add-charge-btn:hover{background:#ecfdf5;border-color:#10b981;color:#059669}.add-charge-row td{background:#fafaf8;padding:6px 14px!important}.add-charge-inline{align-items:center;display:flex;gap:8px}.add-charge-inline select{border:1px solid #d1d5db;border-radius:6px;font-size:.8rem;min-width:200px;padding:6px 10px}.add-charge-inline select:focus{border-color:#10b981;box-shadow:0 0 0 2px #10b98126;outline:none}.add-charge-confirm{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:5px 14px}.add-charge-confirm:hover{background:#059669}.add-charge-cancel{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.8rem;padding:5px 14px}.add-charge-cancel:hover{background:#e5e7eb}.salaires-tabs{border-bottom:2px solid #e2e8f0;display:flex;gap:0;margin-bottom:16px}.salaires-tabs button{background:none;border:none;border-bottom:2px solid #0000;color:#64748b;cursor:pointer;font-size:.9rem;font-weight:600;margin-bottom:-2px;padding:10px 22px;transition:color .15s,border-color .15s}.salaires-tabs button:hover{color:#1e293b}.salaires-tabs button.active{border-bottom-color:#3b82f6;color:#3b82f6}.annuaire-table td,.annuaire-table th{text-align:left;white-space:nowrap}.annuaire-table th{color:#64748b;font-size:.8rem;text-transform:uppercase}.annuaire-table td{font-size:.85rem}.annuaire-actions{gap:4px}.annuaire-actions,.annuaire-btn{display:flex;justify-content:center}.annuaire-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;height:28px;transition:background .15s;width:28px}.annuaire-btn-edit{background:#f1f5f9;color:#64748b}.annuaire-btn-edit:hover{background:#e2e8f0;color:#334155}.annuaire-btn-save{background:#dcfce7;color:#16a34a}.annuaire-btn-save:hover{background:#bbf7d0}.annuaire-btn-cancel{background:#fee2e2;color:#dc2626}.annuaire-btn-cancel:hover{background:#fecaca}.annuaire-editing-row input,.annuaire-editing-row select{background:#fff;border:1px solid #cbd5e1;border-radius:4px;font-size:.82rem;padding:4px 6px;width:100%}.annuaire-editing-row input:focus,.annuaire-editing-row select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626;outline:none}.annuaire-row-inactif{background:#fef2f2!important}.annuaire-row-inactif td{color:#991b1b}.annuaire-toolbar{display:flex;gap:8px;margin-bottom:12px}.annuaire-import-modal{background:#fff;border-radius:12px;display:flex;flex-direction:column;max-height:80vh;max-width:900px;padding:24px;width:95vw}.annuaire-import-modal h3{font-size:1.05rem;margin:0 0 4px}.annuaire-import-scroll{flex:1 1;margin-bottom:16px;overflow:auto}.annuaire-import-table{border-collapse:collapse;font-size:.82rem;width:100%}.annuaire-import-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#475569;font-weight:600;padding:8px 10px;text-align:left;white-space:nowrap}.annuaire-import-table td{border-bottom:1px solid #f1f5f9;padding:7px 10px}.annuaire-import-unknown td{color:#9ca3af}.annuaire-import-match{color:#16a34a;font-size:.78rem;font-weight:500}.annuaire-import-old{color:#9ca3af;font-size:.75rem}.annuaire-import-badge{border-radius:10px;display:inline-block;font-size:.72rem;font-weight:600;padding:2px 8px;white-space:nowrap}.annuaire-import-badge.ok{background:#dcfce7;color:#16a34a}.annuaire-import-badge.skip{background:#f1f5f9;color:#9ca3af}.annuaire-import-footer{display:flex;gap:8px;justify-content:flex-end}.recap-table td{text-align:right}.recap-table td:first-child{text-align:left}.recap-toggle{color:#9ca3af;font-size:.6rem;margin-right:6px}.recap-activite-row{cursor:pointer}.recap-activite-row td{color:#1e293b;font-weight:700}.recap-activite-row:hover td{background:#f5f4ed}.recap-poste-row{cursor:pointer}.recap-poste-row td{color:#374151;font-size:.82rem;font-weight:600}.recap-poste-row td:first-child{padding-left:28px!important}.recap-poste-row:hover td{background:#f9fafb}.recap-salarie-row td{color:#6b7280;font-size:.78rem;font-weight:400}.recap-salarie-row td:first-child{padding-left:52px!important}.recap-total-row td{border-top:2px solid #1e293b;color:#1e293b;font-weight:800!important}.section-header td{font-size:.8rem;font-weight:700!important}.section-clickable{cursor:pointer}.section-clickable:hover td{filter:brightness(.97)}.section-label{color:#374151;font-size:.72rem!important;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.section-toggle{color:#9ca3af;font-size:.6rem;margin-right:6px}.section-subtotal{color:#1e293b;font-weight:700!important}.ecart-indicator{align-items:center;display:inline-flex;gap:4px}.ecart-dot{background:#dc2626;border-radius:50%;cursor:help;display:inline-block;height:8px;width:8px}.purge-mois-group{align-items:center;display:inline-flex;gap:4px}.purge-mois-select{background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.8rem;padding:7px 10px}.salaires-purge-btn{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:7px 14px;white-space:nowrap}.salaires-purge-btn:hover{background:#b91c1c}.salaires-ecart-btn{background:#fff;border:1px solid #dc2626;border-radius:8px;color:#dc2626;cursor:pointer;font-size:.825rem;font-weight:600;padding:8px 16px;white-space:nowrap}.salaires-ecart-btn:hover{background:#fef2f2}.salaires-ecart-btn.active{background:#dc2626;color:#fff}.salaires-ecart-btn.sans-activite{border-color:#d97706;color:#d97706}.salaires-ecart-btn.sans-activite:hover{background:#fffbeb}.salaires-ecart-btn.sans-activite.active{background:#d97706;color:#fff}.section-detail-row td{font-size:.78rem}.section-detail-label{color:#6b7280;font-weight:400;padding-left:28px!important;white-space:nowrap}.exclude-checkbox{accent-color:#9ca3af;cursor:pointer;margin-right:6px;vertical-align:middle}.row-excluded td{opacity:.45;text-decoration:line-through}.salarie-name-edit{align-items:center;display:flex;gap:4px}.salarie-name-edit input{border:1px solid #d1d5db;border-radius:5px;font-size:.8rem;padding:4px 6px;width:90px}.salarie-name-edit input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626;outline:none}.salarie-numero{color:#9ca3af;font-family:monospace;font-size:.72rem}.salaires-import-pdf-btn{align-items:center;background:#7c3aed;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:.825rem;font-weight:600;gap:6px;padding:8px 16px;white-space:nowrap}.salaires-import-pdf-btn:hover{background:#6d28d9}.pdf-confirm-mois-modal{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-width:420px;padding:32px 40px;text-align:center}.pdf-confirm-mois-modal h3{color:#1e293b;font-size:1.15rem;margin:0 0 4px}.pdf-confirm-count{color:#6b7280;font-size:.85rem;margin:0 0 20px}.pdf-confirm-mois-fields{display:flex;gap:16px;justify-content:center;margin-bottom:16px}.pdf-confirm-mois-display{color:#7c3aed;font-size:1.6rem;font-weight:800;letter-spacing:.02em;margin:8px 0 24px;text-transform:uppercase}.pdf-confirm-mois-actions{display:flex;gap:10px;justify-content:center}.pdf-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.pdf-modal{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;display:flex;flex-direction:column;max-height:85vh;max-width:1100px;width:95vw}.pdf-modal-header{border-bottom:1px solid #e5e7eb;padding:20px 24px 16px}.pdf-modal-header h3{color:#1e293b;font-size:1.1rem;margin:0 0 12px}.pdf-modal-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px}.pdf-badge-count{background:#f5f3ff;border-radius:20px;color:#7c3aed;font-size:.8rem;font-weight:600;padding:6px 12px}.pdf-modal-body{flex:1 1;overflow-y:auto;padding:0 24px}.pdf-preview-table{border-collapse:collapse;font-size:.825rem;width:100%}.pdf-preview-table thead th{background:#f5f4ed;color:#374151;font-weight:600;padding:10px 12px;position:sticky;text-align:left;top:0;z-index:1}.pdf-preview-table tbody td{border-bottom:1px solid #f0f0f0;padding:10px 12px}.pdf-preview-table tbody tr{cursor:pointer}.pdf-preview-table tbody tr:hover{background:#fafaf8}.pdf-row-known{background:#f0fdf4}.pdf-row-known:hover{background:#dcfce7!important}.pdf-row-unknown{background:#fffbeb}.pdf-row-unknown:hover{background:#fef3c7!important}.pdf-known-name{color:#059669;font-weight:600}.pdf-unknown-inputs{display:flex;gap:6px}.pdf-unknown-inputs input{background:#fff;border:1px solid #f59e0b;border-radius:6px;font-size:.8rem;padding:5px 8px;width:120px}.pdf-unknown-inputs input:focus{border-color:#d97706;box-shadow:0 0 0 2px #f59e0b33;outline:none}.pdf-cell-numero{color:#6b7280;font-family:monospace;font-size:.8rem}.pdf-cell-montant{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.pdf-cell-total{color:#1e293b;font-weight:700}.pdf-cell-expand{color:#9ca3af;font-size:.75rem;text-align:center;white-space:nowrap}.pdf-detail-row{background:#fafaf8;cursor:default!important}.pdf-detail-row:hover{background:#f5f4ed!important}.pdf-detail-row td{font-size:.78rem;padding:6px 12px!important}.pdf-detail-code{color:#9ca3af;font-family:monospace;font-size:.75rem}.pdf-detail-libelle{color:#4b5563}.pdf-detail-section{color:#9ca3af;font-size:.7rem;text-transform:uppercase}.pdf-montant-neg{color:#dc2626}.pdf-modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.pdf-confirm-btn{background:#7c3aed;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:10px 24px}.pdf-confirm-btn:hover{background:#6d28d9}.pdf-confirm-btn:disabled{background:#d1d5db;cursor:not-allowed}@media (max-width:768px){.salaires-stats{flex-direction:column}.stat-card{min-width:auto}.pdf-modal{max-height:90vh;width:98vw}.pdf-unknown-inputs{flex-direction:column}.pdf-unknown-inputs input{width:100%}}.gantt-container{background:#faf9f5;min-height:100%;position:relative}.gantt-empty,.gantt-loading{color:#6b7280;padding:4rem 2rem;text-align:center}.gantt-empty h2{color:#1e293b;margin-bottom:8px}.gantt-empty p{margin-bottom:20px}.gantt-toast{animation:gantt-fade-in .2s;background:#10b981;border-radius:8px;color:#fff;font-size:.85rem;font-weight:600;padding:10px 20px;position:fixed;right:20px;top:20px;z-index:9999}.gantt-toast.error{background:#ef4444}@keyframes gantt-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.gantt-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:12px}.gantt-header,.gantt-header-left{align-items:center;display:flex;gap:12px}.gantt-header-right{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.gantt-nom{color:#1e293b;cursor:pointer;font-size:1.25rem;font-weight:700;margin:0}.gantt-nom:hover{color:#3b82f6}.gantt-nom-input{border:1px solid #3b82f6;border-radius:6px;font-size:1.25rem;font-weight:700;outline:none;padding:2px 8px}.gantt-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;padding:6px 10px}.gantt-field{color:#6b7280;display:flex;flex-direction:column;font-size:.72rem;font-weight:600;gap:2px;text-transform:uppercase}.gantt-field input{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.82rem;padding:5px 8px;width:110px}.gantt-field input[type=number]{width:60px}.gantt-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#475569;cursor:pointer;font-size:.8rem;font-weight:600;padding:6px 14px;transition:all .15s}.gantt-btn:hover{background:#f1f5f9;color:#1e293b}.gantt-btn-primary{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 24px}.gantt-btn-primary:hover{background:#2563eb}.gantt-btn-new{background:#3b82f6;border-color:#3b82f6;color:#fff}.gantt-btn-new:hover{background:#2563eb}.gantt-btn-danger{background:#fff;border-color:#fecaca;color:#ef4444}.gantt-btn-danger:hover{background:#fef2f2}.gantt-btn-full{margin-top:12px;padding:8px;text-align:center;width:100%}.gantt-btn-icon{align-items:center;background:#fee2e2;border:none;border-radius:6px;color:#ef4444;cursor:pointer;display:flex;font-size:.75rem;height:26px;justify-content:center;width:26px}.gantt-btn-icon:hover{background:#fecaca}.gantt-legend{color:#64748b;display:flex;flex-wrap:wrap;font-size:.78rem;gap:16px;margin-bottom:14px}.gantt-legend-item{align-items:center;display:flex;gap:5px}.gantt-legend-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.gantt-legend-diamond{color:#f59e0b;font-size:1rem;line-height:1}.gantt-legend-vig{align-items:center;background:#fef3c7;border-radius:50%;color:#d97706;display:inline-flex;font-size:.7rem;font-weight:800;height:16px;justify-content:center;width:16px}.gantt-grid-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;margin-bottom:24px;overflow:hidden}.gantt-labels{background:#fafaf8;border-right:1px solid #e2e8f0;flex-shrink:0;max-width:280px;min-width:240px}.gantt-labels-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:.72rem;height:36px;text-transform:uppercase}.gantt-label-phase,.gantt-labels-header{align-items:center;display:flex;font-weight:700;padding:0 12px}.gantt-label-phase{border-bottom:1px solid #f1f5f9;border-left:3px solid;color:#1e293b;cursor:pointer;font-size:.82rem;gap:6px;height:32px;-webkit-user-select:none;user-select:none}.gantt-label-phase:hover{background:#f8fafc}.gantt-chevron{color:#94a3b8;font-size:.65rem;width:12px}.gantt-phase-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-phase-name:hover{color:#3b82f6}.gantt-phase-count{color:#94a3b8;font-size:.68rem;font-weight:500}.gantt-label-action{align-items:center;border-bottom:1px solid #f8fafc;color:#475569;cursor:pointer;display:flex;font-size:.78rem;gap:5px;height:28px;overflow:hidden;padding:0 12px 0 32px;white-space:nowrap}.gantt-label-action.active,.gantt-label-action:hover{background:#eff6ff;color:#1e293b}.gantt-action-name{overflow:hidden;text-overflow:ellipsis}.gantt-vig-dot{align-items:center;background:#fef3c7;border-radius:50%;color:#d97706;display:inline-flex;flex-shrink:0;font-size:.6rem;font-weight:800;height:14px;justify-content:center;width:14px}.gantt-lock{flex-shrink:0;font-size:.65rem}.gantt-label-add{align-items:center;color:#94a3b8;cursor:pointer;display:flex;font-size:.72rem;height:24px;padding:0 12px 0 32px}.gantt-label-add:hover{background:#eff6ff;color:#3b82f6}.gantt-label-add-phase{font-weight:600;padding-left:12px}.gantt-timeline-wrapper{flex:1 1;min-width:0;overflow-x:auto}.gantt-timeline-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;height:36px;position:sticky;top:0;z-index:2}.gantt-week-col{align-items:center;border-right:1px solid #f1f5f9;color:#64748b;cursor:default;display:flex;flex:1 1;font-size:.68rem;font-weight:700;justify-content:center;min-width:50px}.gantt-week-col:hover{background:#eff6ff}.gantt-row,.gantt-timeline-body{position:relative}.gantt-row{border-bottom:1px solid #f8fafc}.gantt-row,.gantt-row-phase{height:32px}.gantt-row-action{height:28px}.gantt-row-action.active{background:#eff6ff}.gantt-row-add{height:24px}.gantt-week-grid{display:flex;inset:0;position:absolute}.gantt-week-cell{border-right:1px solid #f8fafc;flex:1 1;min-width:50px}.gantt-bar{border-radius:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.gantt-bar-phase{border:1px solid;height:8px;opacity:.7}.gantt-bar-action{cursor:grab;height:14px;transition:filter .1s}.gantt-bar-action:hover{filter:brightness(1.1)}.gantt-bar-action:active{cursor:grabbing}.gantt-bar-resize{bottom:0;cursor:ew-resize;position:absolute;right:-2px;top:0;width:8px}.gantt-jalon{cursor:pointer;font-size:1.1rem;line-height:1;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.gantt-jalon:hover{filter:brightness(1.2);transform:translate(-50%,-50%) scale(1.2)}.gantt-panel-overlay{background:#00000026;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:100}.gantt-panel{animation:gantt-slide-in .2s;background:#fff;box-shadow:-4px 0 20px #00000014;display:flex;flex-direction:column;max-width:90vw;width:380px}.gantt-panel-small{width:320px}@keyframes gantt-slide-in{0%{transform:translateX(100%)}to{transform:translateX(0)}}.gantt-panel-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px 20px}.gantt-panel-header h3{color:#1e293b;font-size:1rem;margin:0}.gantt-panel-close{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:1.1rem;padding:4px}.gantt-panel-close:hover{color:#1e293b}.gantt-panel-body{display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:16px 20px}.gantt-panel-body label{color:#64748b;display:flex;flex-direction:column;font-size:.72rem;font-weight:600;gap:3px;text-transform:uppercase}.gantt-panel-body input,.gantt-panel-body select,.gantt-panel-body textarea{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#1e293b;font-family:inherit;font-size:.85rem;padding:7px 10px}.gantt-panel-body input:focus,.gantt-panel-body select:focus,.gantt-panel-body textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61f;outline:none}.gantt-panel-row{display:flex;gap:10px}.gantt-panel-row label{flex:1 1}.gantt-panel-checks{display:flex;flex-wrap:wrap;gap:16px}.gantt-check{align-items:center;color:#475569!important;cursor:pointer;display:flex!important;flex-direction:row!important;font-size:.82rem!important;gap:5px!important;text-transform:none!important}.gantt-check input[type=checkbox]{width:auto}.gantt-panel-deps{border-top:1px solid #f1f5f9;padding-top:10px}.gantt-panel-deps-title{color:#64748b;display:block;font-size:.72rem;font-weight:700;margin-bottom:6px;text-transform:uppercase}.gantt-dep-item{align-items:center;color:#475569;display:flex;font-size:.82rem;justify-content:space-between;padding:4px 0}.gantt-dep-item button{background:none;border:none;color:#ef4444;cursor:pointer;font-size:.75rem;padding:2px 4px}.gantt-dep-add{background:#fafaf8;border:1px dashed #cbd5e1;border-radius:6px;color:#64748b;cursor:pointer;font-size:.8rem;margin-top:4px;padding:5px 8px;width:100%}.gantt-color-picker{display:flex;gap:6px;margin-top:4px}.gantt-color-swatch{border:2px solid #0000;border-radius:6px;cursor:pointer;height:26px;transition:border-color .15s,transform .1s;width:26px}.gantt-color-swatch:hover{transform:scale(1.1)}.gantt-color-swatch.active{border-color:#1e293b}.gantt-risques{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.gantt-risques-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.gantt-risques-header h3{color:#1e293b;font-size:.95rem;margin:0}.gantt-risques-empty{color:#94a3b8;font-size:.85rem;padding:16px;text-align:center}.gantt-risques-table{border-collapse:collapse;font-size:.82rem;width:100%}.gantt-risques-table th{background:#fafaf8;border-bottom:2px solid #e2e8f0;color:#64748b;font-size:.72rem;font-weight:700;padding:8px 10px;text-align:left;text-transform:uppercase;white-space:nowrap}.gantt-risques-table td{border-bottom:1px solid #f1f5f9;padding:6px 10px;vertical-align:middle}.gantt-risque-input{background:#0000;border:1px solid #e2e8f0;border-radius:4px;font-size:.82rem;padding:4px 6px;width:100%}.gantt-risque-input:focus{border-color:#3b82f6;outline:none}.gantt-risque-select{background:#0000;border:1px solid #e2e8f0;border-radius:4px;font-size:.82rem;font-weight:600;padding:4px 6px}@media (max-width:768px){.gantt-header{align-items:flex-start;flex-direction:column}.gantt-labels{max-width:180px;min-width:160px}.gantt-panel{max-width:100%;width:100%}}.projets-container{background:#faf9f5;min-height:100%}.projets-tabs{border-bottom:2px solid #e2e8f0;display:flex;gap:0;margin-bottom:16px}.projets-tabs button{background:none;border:none;border-bottom:2px solid #0000;color:#64748b;cursor:pointer;font-size:.9rem;font-weight:600;margin-bottom:-2px;padding:10px 22px;transition:color .15s,border-color .15s}.projets-tabs button:hover{color:#1e293b}.projets-tabs button.active{border-bottom-color:#3b82f6;color:#3b82f6}.projets-tabs-spacer{flex:1 1}.projets-print-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#475569;cursor:pointer;font-size:.8rem;font-weight:600;margin-bottom:-2px;padding:6px 14px;transition:all .15s}.projets-print-btn:hover{background:#f1f5f9;color:#1e293b}.suivi-header{margin-bottom:16px}.suivi-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;min-width:200px;padding:7px 12px}.suivi-empty,.suivi-loading{color:#94a3b8;font-size:.9rem;padding:3rem;text-align:center}.suivi-phase{margin-bottom:12px}.suivi-phase-header{align-items:center;background:#fff;border:1px solid #e2e8f0;border-left:3px solid;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:10px 14px;transition:background .1s;-webkit-user-select:none;user-select:none}.suivi-phase-header:hover{background:#f8fafc}.suivi-chevron{color:#94a3b8;font-size:.65rem;width:12px}.suivi-phase-name{color:#1e293b;flex:1 1;font-size:.9rem;font-weight:700}.suivi-phase-count{color:#94a3b8;font-size:.75rem}.suivi-action{background:#fff;border:1px solid #f1f5f9;border-radius:6px;margin:6px 0 6px 16px;overflow:hidden}.suivi-action-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:8px 14px}.suivi-action-left{align-items:center;display:flex;gap:6px;min-width:0}.suivi-action-right{align-items:center;color:#6b7280;display:flex;flex-shrink:0;font-size:.78rem;gap:10px}.suivi-action-name{color:#1e293b;font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suivi-action-badge{border-radius:10px;font-size:.68rem;font-weight:700;padding:2px 8px;white-space:nowrap}.suivi-action-resp{background:#f1f5f9;border-radius:10px;font-size:.72rem;font-weight:500;padding:2px 8px}.suivi-action-dates{font-size:.75rem;white-space:nowrap}.suivi-vig{align-items:center;background:#fef3c7;border-radius:50%;color:#d97706;display:inline-flex;flex-shrink:0;font-size:.65rem;font-weight:800;height:16px;justify-content:center;width:16px}.suivi-jalon{color:#f59e0b;flex-shrink:0;font-size:.9rem}.suivi-progress{align-items:center;display:flex;gap:8px;padding:0 14px 6px}.suivi-progress-bar{background:#f1f5f9;border-radius:2px;flex:1 1;height:4px;overflow:hidden}.suivi-progress-fill{background:#10b981;border-radius:2px;height:100%;transition:width .3s}.suivi-progress-text{color:#94a3b8;font-size:.68rem;font-weight:600;white-space:nowrap}.suivi-taches{border-top:1px solid #f8fafc;padding:4px 14px 8px}.suivi-tache{align-items:center;border-bottom:1px solid #fafaf8;display:flex;font-size:.82rem;gap:8px;padding:5px 0}.suivi-tache:last-child{border-bottom:none}.suivi-tache.done .suivi-tache-titre{color:#94a3b8;text-decoration:line-through}.suivi-tache.blocked .suivi-tache-titre{color:#ef4444}.suivi-tache-check{align-items:center;background:#fff;border:2px solid #d1d5db;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;flex-shrink:0;font-size:.7rem;height:22px;justify-content:center;transition:all .15s;width:22px}.suivi-tache.done .suivi-tache-check{background:#10b981;border-color:#10b981;color:#fff}.suivi-tache.blocked .suivi-tache-check{background:#fef2f2;border-color:#ef4444;color:#ef4444}.suivi-tache-titre{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suivi-tache-resp{background:#f1f5f9;border-radius:8px;color:#6b7280;flex-shrink:0;font-size:.72rem;padding:1px 6px}.suivi-tache-date{color:#94a3b8;flex-shrink:0;font-size:.72rem}.suivi-tache-edit{background:none;border:none;color:#94a3b8;cursor:pointer;flex-shrink:0;font-size:.8rem;padding:2px 4px}.suivi-tache-edit:hover{color:#3b82f6}.suivi-tache-adding,.suivi-tache-editing{gap:6px;padding:6px 0}.suivi-tache-adding input,.suivi-tache-editing input,.suivi-tache-editing select{background:#fff;border:1px solid #d1d5db;border-radius:4px;font-size:.8rem;padding:4px 8px}.suivi-tache-adding input:first-child,.suivi-tache-editing input:first-child{flex:1 1}.suivi-tache-adding input:focus,.suivi-tache-editing input:focus,.suivi-tache-editing select:focus{border-color:#3b82f6;outline:none}.suivi-tache-btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;flex-shrink:0;font-size:.78rem;height:26px;justify-content:center;width:26px}.suivi-tache-btn.save{background:#dcfce7;color:#16a34a}.suivi-tache-btn.save:hover{background:#bbf7d0}.suivi-tache-btn.cancel{background:#f1f5f9;color:#64748b}.suivi-tache-btn.cancel:hover{background:#e2e8f0}.suivi-tache-btn.danger{background:#fee2e2;color:#ef4444}.suivi-tache-btn.danger:hover{background:#fecaca}.suivi-add-tache{align-items:center;background:none;border:none;color:#94a3b8;cursor:pointer;display:inline-flex;font-size:.75rem;margin-top:2px;padding:3px 0}.suivi-add-tache:hover{color:#3b82f6}.suivi-empty-phase{color:#94a3b8;font-size:.82rem;font-style:italic;margin-left:16px;padding:12px 14px}@media (max-width:768px){.suivi-action-header{align-items:flex-start;flex-direction:column}.suivi-action-right{margin-top:4px}.suivi-tache-adding,.suivi-tache-editing{flex-wrap:wrap}}.app-layout{display:flex;min-height:100vh}.sidebar{background:#fff;border-right:1px solid #e5e7eb;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;top:0;width:220px;z-index:100}.sidebar-logo{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:10px;padding:20px 20px 16px}.sidebar-logo-icon{align-items:center;background:#eae5dc;border-radius:10px;display:flex;font-size:1.4rem;height:36px;justify-content:center;width:36px}.sidebar-logo-text{color:#1e293b;font-size:1.1rem;font-weight:700}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;padding:12px 10px}.sidebar-item{align-items:center;background:#0000;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:10px;padding:10px 12px;text-align:left;transition:background .15s,color .15s;width:100%}.sidebar-item.active,.sidebar-item:hover{background:#f5f4ed;color:#1e293b}.sidebar-item.active{font-weight:600}.sidebar-item-icon{align-items:center;display:flex;font-size:1.1rem;justify-content:center;width:28px}.sidebar-footer{border-top:1px solid #e5e7eb;gap:8px;padding:16px 14px}.sidebar-footer,.sidebar-user{display:flex;flex-direction:column}.sidebar-user{gap:2px}.sidebar-user-name{color:#1e293b;font-size:.825rem;font-weight:600}.sidebar-user-role{color:#9ca3af;font-size:.7rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.sidebar-logout{background:#0000;border:1px solid #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;font-size:.8rem;font-weight:500;padding:8px 12px;transition:background .2s,color .2s}.sidebar-logout:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.main-content{background:#faf9f5;flex:1 1;margin-left:220px;min-height:100vh}.page-header{background:#faf9f5;padding:24px 32px 0}.page-header-title{align-items:center;display:flex;gap:12px}.header-page-icon{align-items:center;background:#eae5dc;border-radius:10px;display:flex;font-size:1.1rem;height:36px;justify-content:center;width:36px}.page-header-title h1{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.page-body{padding:20px 32px 40px}.table-container{background:#fff;border:1px solid #00000014;border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow:hidden}@media (max-width:768px){.sidebar{display:none}.main-content{margin-left:0}.page-header{padding:16px 16px 0}.page-body{padding:16px 16px 32px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#faf9f5;color:#1e293b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}
/*# sourceMappingURL=main.03d0169f.css.map*/