:root{--accent: #4F46E5;--accent-hover: #4338CA;--accent-active: #3730A3;--accent-light: #EEF2FF;--accent-soft: #E0E7FF;--accent-ring: rgba(79, 70, 229, .16);--brand: #4F46E5;--brand-hover: #4338CA;--brand-light: #EEF2FF;--brand-soft: #E0E7FF;--bg: #F7F8FC;--surface: #FFFFFF;--surface2: #F4F5FA;--surface3: #EBEDF5;--border: #E7E9F2;--border-strong: #D5D9E8;--text: #14161F;--text2: #5A6072;--text3: #8A90A3;--green: #047857;--green-light: #ECFDF5;--yellow: #B45309;--yellow-light:#FFFBEB;--red: #B91C1C;--red-light: #FEF2F2;--violet: #6D28D9;--violet-light:#F5F3FF;--slate: #475569;--slate-light: #F1F5F9;--radius-xs: 6px;--radius-sm: 10px;--radius: 14px;--radius-lg: 18px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(20, 22, 31, .04);--shadow-sm: 0 1px 2px rgba(20, 22, 31, .04), 0 1px 3px rgba(20, 22, 31, .06);--shadow: 0 2px 4px rgba(20, 22, 31, .03), 0 6px 16px rgba(20, 22, 31, .07);--shadow-lg: 0 4px 8px rgba(20, 22, 31, .04), 0 16px 32px rgba(20, 22, 31, .1);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--transition: .15s cubic-bezier(.4, 0, .2, 1);--transition-lent: .24s cubic-bezier(.4, 0, .2, 1);--sidebar-bg: #FFFFFF;--sidebar-w: 232px;--gradient-brand: linear-gradient(135deg, #6366F1 0%, #4F46E5 100%);--gradient-brand-soft: linear-gradient(135deg, #EEF2FF 0%, #F5F3FF 100%);--gradient-hero: linear-gradient(135deg, #EEF2FF 0%, #F7F8FC 100%);--gradient-hero-dark: linear-gradient(135deg, #1a1f3a 0%, #0f1729 50%, #1e1b4b 100%);--gradient-mesh: radial-gradient(at 0% 0%, #EEF2FF 0px, transparent 50%), radial-gradient(at 98% 100%, #F0FDFA 0px, transparent 50%)}body.dark{color-scheme:dark;--accent: #818CF8;--accent-hover: #A5B4FC;--accent-active: #C7D2FE;--accent-light: rgba(129, 140, 248, .14);--accent-soft: rgba(129, 140, 248, .26);--accent-ring: rgba(129, 140, 248, .28);--brand: #818CF8;--brand-hover: #A5B4FC;--brand-light: rgba(129, 140, 248, .14);--brand-soft: rgba(129, 140, 248, .26);--bg: #100B1A;--surface: #1A1425;--surface2: #221B2F;--surface3: #2C2439;--border: #2A2338;--border-strong: #3B3250;--text: #F3F1F8;--text2: #ADA6BD;--text3: #837C96;--green: #34D399;--green-light: rgba(16, 185, 129, .15);--yellow: #FBBF24;--yellow-light:rgba(245, 158, 11, .15);--red: #F87171;--red-light: rgba(239, 68, 68, .15);--violet: #C4B5FD;--violet-light:rgba(139, 92, 246, .17);--slate: #CBD5E1;--slate-light: rgba(148, 163, 184, .15);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .34);--shadow: 0 2px 4px rgba(0, 0, 0, .36), 0 6px 16px rgba(0, 0, 0, .44);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .4), 0 16px 32px rgba(0, 0, 0, .52);--sidebar-bg: #150F20;--gradient-brand: linear-gradient(135deg, #818CF8 0%, #6366F1 100%);--gradient-brand-soft: linear-gradient(135deg, rgba(99,102,241,.14) 0%, rgba(139,92,246,.12) 100%);--gradient-hero: linear-gradient(135deg, #1A1425 0%, #100B1A 100%);--gradient-mesh: radial-gradient(at 0% 0%, rgba(99,102,241,.14) 0px, transparent 50%), radial-gradient(at 98% 100%, rgba(20,184,166,.1) 0px, transparent 50%)}body.dark .badge-gray{border-color:var(--border)}body.dark .badge-yellow{border-color:#fbbf2457}body.dark .badge-blue{border-color:var(--accent-soft)}body.dark .badge-green{border-color:#34d39957}body.dark .badge-red{border-color:#f8717157}body.dark .badge-violet{border-color:#c4b5fd57}body.dark .badge-slate{border-color:#cbd5e14d}body.dark .table-wrap{background:linear-gradient(to right,var(--surface) 30%,rgba(26,20,37,0)) left / 28px 100% no-repeat,linear-gradient(to left,var(--surface) 30%,rgba(26,20,37,0)) right / 28px 100% no-repeat;background-attachment:local,local}.page-title{font-size:26px;font-weight:800;letter-spacing:-.6px;color:var(--text);line-height:1.15}.page-subtitle{font-size:14px;color:var(--text2);margin-top:5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:0 1px 2px #1018280a,0 4px 16px #1018280a;transition:box-shadow .2s ease,transform .2s ease}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;position:relative;overflow:hidden;box-shadow:0 1px 2px #1018280a}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gradient-brand)}.stat-label{font-size:12px;color:var(--text2);font-weight:600}.btn-primary{background:var(--gradient-brand)!important;color:#fff!important;border:none!important;box-shadow:0 2px 8px #4f46e540;transition:transform .12s ease,box-shadow .2s ease,opacity .2s ease}.btn-primary:hover{box-shadow:0 4px 14px #4f46e559;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.55;box-shadow:none;transform:none}.nav-item.active{background:var(--brand-light)!important;color:var(--brand)!important;font-weight:600}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:600}.badge-green{background:var(--green-light);color:var(--green)}.badge-yellow{background:var(--yellow-light);color:var(--yellow)}.badge-gray{background:var(--surface3);color:var(--text2)}.field input:focus,.field select:focus,.field textarea:focus,.qaly-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}@media (max-width: 768px){.form-grid-2,.form-grid-3{grid-template-columns:1fr!important;gap:14px}[style*=gridTemplateColumns][style*="1fr 1fr"],[style*=grid-template-columns][style*="1fr 1fr"],[style*="repeat(2"],[style*="repeat(3"],[style*="repeat(4"]{grid-template-columns:1fr!important}.page-title{font-size:22px}.card{padding:18px 16px}.field input,.field select,.field textarea,.qaly-input,input,select,textarea{font-size:16px!important}.field input[type=date],input[type=date]{width:100%;box-sizing:border-box}table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}html,body,button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica,Arial,sans-serif}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);background:var(--bg);margin:0}*{box-sizing:border-box}.montant,.stat-value,td,.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.page-title{font-size:22px;font-weight:680;letter-spacing:-.02em;color:var(--text);line-height:1.2}.page-subtitle{font-size:13.5px;color:var(--text2);line-height:1.5;margin-top:4px}.eyebrow,.nav-section,.stat-label{font-size:11px;font-weight:620;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:var(--sp-5);transition:box-shadow var(--transition),border-color var(--transition)}.card:hover{box-shadow:var(--shadow-sm)}.card-clickable{cursor:pointer}.card-clickable:hover{border-color:var(--accent-soft);box-shadow:var(--shadow);transform:translateY(-1px)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:var(--sp-4) var(--sp-5);position:relative;overflow:hidden}.stat-value{font-size:26px;font-weight:660;letter-spacing:-.025em;color:var(--text);line-height:1.15;margin-top:6px}.stat-sub{font-size:12px;color:var(--text3);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:560;font-family:inherit;line-height:1.2;cursor:pointer;border:1px solid transparent;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition);white-space:nowrap}.btn:active{transform:translateY(.5px)}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-sm)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-secondary{background:var(--surface);color:var(--text2);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface2);color:var(--text);border-color:var(--text3)}.btn-danger{background:var(--surface);color:var(--red);border-color:var(--border-strong)}.btn-danger:hover:not(:disabled){background:var(--red-light);border-color:var(--red)}.btn-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text2);font-size:13px;font-family:inherit;cursor:pointer;padding:6px 2px;transition:color var(--transition)}.btn-back:hover{color:var(--accent)}.btn:focus-visible,.nav-item:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field label{display:block;font-size:12.5px;font-weight:580;color:var(--text2);margin-bottom:6px}.field input,.field select,.field textarea,.qaly-input{width:100%;padding:10px 13px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);font-size:14px;font-family:inherit;color:var(--text);box-sizing:border-box;transition:border-color var(--transition),box-shadow var(--transition)}.field input:focus,.field select:focus,.field textarea:focus,.qaly-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field input::placeholder,.field textarea::placeholder{color:var(--text3)}.field-hint{font-size:12px;color:var(--text3);margin-top:5px}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:580;line-height:1.5;white-space:nowrap;border:1px solid transparent}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-gray{background:var(--surface2);color:var(--text2);border-color:var(--border)}.badge-yellow{background:var(--yellow-light);color:var(--yellow);border-color:#fde68a}.badge-blue{background:var(--accent-light);color:var(--accent);border-color:var(--accent-soft)}.badge-green{background:var(--green-light);color:var(--green);border-color:#a7f3d0}.badge-red{background:var(--red-light);color:var(--red);border-color:#fecaca}.badge-violet{background:var(--violet-light);color:var(--violet);border-color:#ddd6fe}.badge-slate{background:var(--slate-light);color:var(--slate);border-color:#cbd5e1}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;margin-bottom:2px;border:none;border-radius:var(--radius-sm);background:none;color:var(--text2);font-size:13.5px;font-weight:500;font-family:inherit;text-align:left;cursor:pointer;transition:background var(--transition),color var(--transition)}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:580}.nav-section{padding:0 12px;margin:18px 0 6px}.app{min-height:100vh;background:var(--bg)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px;overflow-y:auto;z-index:50}.logo{display:flex;align-items:center;gap:10px;padding:6px 10px 22px}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:15px;flex-shrink:0}.nav-badge{margin-left:auto;min-width:18px;padding:1px 6px;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:10.5px;font-weight:700;text-align:center;line-height:1.5;flex-shrink:0}.nav-badge-text{margin-left:auto;font-size:11px;font-weight:600;color:var(--text3);flex-shrink:0}.sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}.user-card{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);min-width:0}.user-avatar{width:34px;height:34px;border-radius:var(--radius-pill);background:var(--gradient-brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.user-name{font-size:13.5px;font-weight:620;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.user-role{font-size:11.5px;color:var(--text3);margin-top:1px}.main-content{margin-left:var(--sidebar-w);min-height:100vh;padding:28px 32px}@media (max-width: 1024px){.main-content{margin-left:0}}.table-qaly{width:100%;border-collapse:collapse;font-size:13.5px}.table-qaly thead th{text-align:left;padding:9px 14px;font-size:11px;font-weight:620;letter-spacing:.05em;text-transform:uppercase;color:var(--text3);border-bottom:1px solid var(--border);white-space:nowrap}.table-qaly tbody td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text2);vertical-align:middle}.table-qaly tbody tr:last-child td{border-bottom:none}.table-qaly tbody tr{transition:background var(--transition)}.table-qaly tbody tr:hover{background:var(--surface2)}.table-qaly td.montant{color:var(--text);font-weight:560;text-align:right}.skeleton{background:linear-gradient(90deg,var(--surface2) 25%,var(--surface3) 50%,var(--surface2) 75%);background-size:200% 100%;animation:qaly-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-xs)}.skeleton-line{height:12px;margin-bottom:8px}.skeleton-line:last-child{width:60%;margin-bottom:0}@keyframes qaly-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;padding:var(--sp-10) var(--sp-5);color:var(--text2)}.empty-state-icon{font-size:30px;margin-bottom:var(--sp-3);opacity:.85}.empty-state-titre{font-size:14.5px;font-weight:580;color:var(--text);margin-bottom:5px}.empty-state-texte{font-size:13px;color:var(--text3);max-width:340px;margin:0 auto;line-height:1.5}.toast{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;align-items:flex-start;gap:10px;min-width:260px;max-width:380px;padding:13px 16px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:13.5px;color:var(--text);animation:qaly-toast-in .22s cubic-bezier(.16,1,.3,1)}.toast-succes{border-left:3px solid var(--green)}.toast-erreur{border-left:3px solid var(--red)}.toast-info{border-left:3px solid var(--accent)}@keyframes qaly-toast-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.toast{left:16px;right:16px;bottom:16px;max-width:none}}.separateur{height:1px;background:var(--border);border:none;margin:var(--sp-5) 0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}.table-wrap .table-qaly{min-width:560px}@media (max-width: 768px){.table-wrap{background:linear-gradient(to right,var(--surface) 30%,rgba(255,255,255,0)) left / 28px 100% no-repeat,linear-gradient(to left,var(--surface) 30%,rgba(255,255,255,0)) right / 28px 100% no-repeat;background-attachment:local,local}.table-qaly thead th,.table-qaly tbody td{padding:10px 12px}}.grille-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.grille-deux{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}.grille-raccourcis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.raccourci{display:flex;align-items:center;gap:11px;width:100%;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);font-family:inherit;font-size:13.5px;font-weight:560;color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition),background var(--transition)}.raccourci:hover{border-color:var(--accent-soft);background:var(--accent-light);color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.topbar{margin-bottom:24px}@media (max-width: 768px){.grille-stats{grid-template-columns:repeat(2,1fr);gap:10px}.grille-raccourcis{grid-template-columns:1fr}.topbar{margin-bottom:18px}}.stat-card[data-accent]:before{background:var(--filet, var(--gradient-brand))}
