:root{--navy:#11263d;--navy2:#18344f;--gold:#e9ae3d;--bg:#f4f7fa;--text:#172434;--muted:#718096;--line:#e5eaf0;--green:#1a9b6d;--red:#d9534f;--blue:#3182ce;--white:#fff}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);display:flex;min-height:100vh}.sidebar{width:245px;background:var(--navy);color:#dce7f1;position:fixed;inset:0 auto 0 0;padding:25px 15px;display:flex;flex-direction:column;z-index:4}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 25px}.brandmark{width:42px;height:42px;border-radius:12px;background:var(--gold);display:grid;place-items:center;color:var(--navy);font:800 26px Georgia}.brand b{font-size:18px;letter-spacing:1px}.brand small,.user small{display:block;color:#9fb2c5;font-size:10px;letter-spacing:1px}nav{display:grid;gap:5px;overflow:auto}nav button{background:none;border:0;color:#b9c9d8;text-align:left;padding:11px 13px;border-radius:8px;font-weight:600;cursor:pointer}nav button span{display:inline-block;width:25px}nav button:hover,nav button.active{background:var(--navy2);color:white}nav button.active{box-shadow:inset 3px 0 var(--gold)}.user{margin-top:auto;border-top:1px solid #29435b;padding:18px 8px 0;display:flex;gap:10px;align-items:center}.user>span{background:#294966;width:34px;height:34px;border-radius:50%;display:grid;place-items:center}main{margin-left:245px;width:calc(100% - 245px)}header{height:90px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:18px 30px;position:sticky;top:0;z-index:3}h1{font-size:22px;margin:0}header p{margin:2px 0;color:var(--muted)}.header-actions{display:flex;gap:10px;align-items:center}select,input,textarea{border:1px solid #d9e1e8;border-radius:8px;padding:10px;background:white;color:var(--text)}button{font:inherit}.primary{border:0;background:var(--gold);color:#17283b;font-weight:700;padding:11px 16px;border-radius:8px;cursor:pointer}.secondary{border:1px solid #ccd7e2;background:white;padding:9px 13px;border-radius:8px;cursor:pointer}.icon{border:1px solid var(--line);background:white;width:42px;height:42px;border-radius:8px;position:relative}.icon i{position:absolute;right:-3px;top:-5px;background:var(--red);color:white;font-size:10px;padding:2px 5px;border-radius:10px}#app{padding:26px 30px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:19px;box-shadow:0 2px 8px #23384d0a}.kpi{position:relative}.kpi small{color:var(--muted);font-weight:600}.kpi strong{display:block;font-size:24px;margin:7px 0}.kpi em{font-style:normal;font-size:12px;color:var(--green)}.kpi .bubble{position:absolute;right:17px;top:17px;width:39px;height:39px;border-radius:10px;background:#fff6df;display:grid;place-items:center}.grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px}.card h2{font-size:16px;margin:0 0 15px}.barrow{display:grid;grid-template-columns:130px 1fr 45px;gap:10px;align-items:center;margin:13px 0}.track{height:8px;background:#edf1f5;border-radius:8px}.fill{height:100%;background:var(--gold);border-radius:8px}.activity{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}.activity:last-child{border:0}.dot{width:31px;height:31px;border-radius:50%;background:#e8f3fb;display:grid;place-items:center}.activity p{margin:0}.activity small{color:var(--muted)}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}.search{min-width:280px}.tablewrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;background:#f9fbfc}th,td{padding:13px 15px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:hover{background:#fcfdfe}.badge{display:inline-block;padding:4px 9px;border-radius:15px;font-size:11px;font-weight:700;background:#edf2f7}.badge.green{background:#e1f6ed;color:#14734f}.badge.gold{background:#fff2d5;color:#956610}.badge.red{background:#fde9e8;color:#a83b36}.badge.blue{background:#e6f1fb;color:#24659b}.actions button{border:0;background:none;cursor:pointer;color:var(--blue)}.empty{text-align:center;padding:50px;color:var(--muted)}.modal{position:fixed;inset:0;background:#0c1c2d99;z-index:10;display:grid;place-items:center;padding:20px}.modal.hidden{display:none}.modal-card{width:min(680px,100%);max-height:90vh;overflow:auto;background:white;border-radius:14px;padding:25px;position:relative}.close{position:absolute;right:15px;top:12px;background:none;border:0;font-size:25px;cursor:pointer}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:700;color:#536273}.form-actions{text-align:right;margin-top:20px}.mobile{display:none}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-grid button{padding:20px 8px;border:1px solid var(--line);background:#f9fbfc;border-radius:10px;cursor:pointer;font-weight:700}.quick-grid button:hover{border-color:var(--gold);background:#fff9ec}#toast{position:fixed;right:22px;bottom:22px;background:var(--navy);color:white;padding:12px 18px;border-radius:8px;opacity:0;transform:translateY(10px);transition:.2s;z-index:20}#toast.show{opacity:1;transform:none}@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.header-actions select{display:none}}@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.mobile{display:inline;border:0;background:none;font-size:20px}main{margin:0;width:100%}header{padding:14px 16px;height:80px}.header-actions .icon,.header-actions .primary{display:none}#app{padding:18px 14px}.kpis{grid-template-columns:1fr}.toolbar{flex-direction:column}.search{min-width:0;width:100%}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.quick-grid{grid-template-columns:1fr 1fr}}
/* Tableaux larges : défilement interne avec barre horizontale toujours accessible en bas. */
.tablewrap{overflow:auto;max-height:calc(100vh - 190px);scrollbar-gutter:stable}
.tablewrap table{min-width:1120px}
.tablewrap thead{position:sticky;top:0;z-index:2}
.crm-filters{display:flex;gap:10px;align-items:center}.crm-filters select{min-width:210px}
@media(max-width:720px){.crm-filters{align-items:stretch;flex-direction:column}.crm-filters select{width:100%}}
.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.attachment-row span,.attachment-row small{display:block}.attachment-row small{color:var(--muted)}.attachment-upload{display:inline-block;margin-top:18px}.empty.compact{padding:25px}
.workflow-track{display:flex;gap:4px;min-width:620px}.workflow-track span{font-size:10px;padding:5px 7px;border-radius:12px;background:#edf1f5;color:#687789;white-space:nowrap}.workflow-track span.done{background:#dff4e7;color:#167447}.workflow-track span.active{background:#fff0cf;color:#8a5a00;font-weight:700}
