:root{--navy:#1b2a4a;--navy-light:#2a3e68;--grey:#333;--grey-light:#f4f5f7;--border:#e1e4ea;--red:#c00;--green:#1e6b32;color:var(--grey);background:var(--grey-light);font:15px/1.5 Open Sans,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}h1{color:var(--navy);margin:0 0 16px;font-size:20px}.login-page{background:var(--navy);justify-content:center;align-items:center;min-height:100svh;display:flex}.login-card{background:#fff;border-radius:10px;flex-direction:column;gap:14px;width:340px;padding:40px;display:flex;box-shadow:0 20px 40px #00000040}.login-card h1{margin:0;font-size:18px}.login-card .subtitle{color:#6b7280;margin:-8px 0 8px}.login-card label{color:#6b7280;text-transform:uppercase;flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.login-card input{border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:14px}.login-card button{background:var(--navy);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:12px;font-weight:700}.login-card button:disabled{cursor:not-allowed;background:#b9c0cc}.error-banner{color:var(--red);background:#fdecec;border-radius:6px;padding:10px 14px;font-size:13px}.app-shell{min-height:100svh;display:flex}.sidebar{background:var(--navy);color:#fff;flex-direction:column;width:220px;padding:24px 16px;display:flex}.sidebar .brand{margin-bottom:24px;font-weight:800}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav a{color:#c9d3e8;border-radius:6px;padding:10px 12px;font-size:13.5px;font-weight:600;text-decoration:none}.sidebar nav a.active{background:var(--navy-light);color:#fff}.user-box{color:#b7c2d9;border-top:1px solid #ffffff26;padding-top:14px;font-size:12px}.user-box .roles{color:#7fa6e0;margin:2px 0 10px}.user-box button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:6px;width:100%;padding:8px}.content{flex:1;padding:32px}.data-table{border-collapse:collapse;border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;overflow:hidden}.data-table th{background:var(--navy);color:#fff;text-align:left;text-transform:uppercase;padding:10px 12px;font-size:11px}.data-table td{border-bottom:1px solid var(--border);padding:9px 12px;font-size:13.5px}.data-table .empty{text-align:center;color:#9aa3b2;padding:24px}.badge{text-transform:uppercase;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700}.badge-payee{color:var(--green);background:#e8f5e9}.badge-partiellement_payee,.badge-en_retard{color:#7a5b00;background:#fff4ce}.badge-validee{color:var(--navy);background:#eef2fa}.badge-annulee,.badge-annule,.badge-rejete{color:var(--red);background:#fdecec}.badge-recu,.badge-en_attente,.badge-remis_en_banque{color:var(--navy);background:#eef2fa}.badge-a_echeance{color:#7a5b00;background:#fff4ce}.badge-encaisse{color:var(--green);background:#e8f5e9}.badge-ouverte{color:var(--red);background:#fdecec}.badge-en_cours{color:#7a5b00;background:#fff4ce}.badge-resolue{color:var(--green);background:#e8f5e9}.badge-ignoree{background:var(--grey-light);color:var(--grey)}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h1{margin:0}.page-header select{border:1px solid var(--border);background:#fff;border-radius:6px;padding:8px 10px;font-size:13px}.echeance-proche{color:var(--red);font-weight:600}.btn-valider{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:6px 12px;font-size:12px;font-weight:700}.btn-valider:disabled{cursor:not-allowed;background:#b9c0cc}.btn-primary{background:var(--navy);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:9px 16px;font-size:13px;font-weight:700}.btn-primary:disabled{cursor:not-allowed;background:#b9c0cc}.btn-secondary{color:var(--navy);border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:600}.btn-secondary:disabled{color:#b9c0cc;cursor:not-allowed}.btn-danger{color:var(--red);cursor:pointer;background:#fff;border:1px solid #f3c9c9;border-radius:5px;padding:6px 12px;font-size:12px;font-weight:700}.btn-link{color:var(--navy);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:12.5px;font-weight:600}.action-row{flex-wrap:wrap;gap:6px;display:flex}.modal-backdrop{z-index:100;background:#0f15288c;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:10px;width:560px;max-width:100%;box-shadow:0 20px 50px #0000004d}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-header h2{color:var(--navy);margin:0;font-size:16px}.modal-close{color:#9aa3b2;cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1}.modal-body{padding:20px 22px 24px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid .full{grid-column:1/-1}.form-grid label{color:#6b7280;text-transform:uppercase;flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--border);border-radius:6px;padding:9px 11px;font-family:inherit;font-size:14px}.form-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.form-hint{color:#6b7280;margin:-8px 0 4px;font-size:12px}.allocation-row{border-bottom:1px solid var(--border);grid-template-columns:1fr 130px auto;align-items:center;gap:10px;padding:8px 0;display:grid}.allocation-row:last-child{border-bottom:none}.solde-badge{color:#6b7280;font-size:11px}.page-toolbar{justify-content:flex-end;margin-bottom:12px;display:flex}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.dashboard-card{border:1px solid var(--border);background:#fff;border-radius:8px;padding:18px 20px}.dashboard-card h2{color:var(--navy);text-transform:uppercase;letter-spacing:.02em;margin:0 0 8px;font-size:12px}.dashboard-figure{color:var(--navy);margin:0 0 6px;font-size:28px;font-weight:800}.dashboard-list{color:#6b7280;flex-direction:column;gap:4px;margin:10px 0;padding:0;font-size:12px;list-style:none;display:flex}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.tabs button{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:13px;font-weight:600}.tabs button.active{color:var(--navy);border-bottom-color:var(--navy)}
