@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#102c39;--green:#137d61;--ink:#173440;--muted:#7d8e94;--line:#e4eaea;--bg:#f3f6f5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:7px;padding:10px 14px;color:var(--ink);font-weight:600}button:hover{background:#eaf4ef;border-color:#94b9a9}button.primary{background:var(--green);color:white;border-color:var(--green)}button.danger{color:#b54332}button.small{padding:6px 9px;font-size:12px}aside{position:fixed;inset:0 auto 0 0;width:238px;background:var(--navy);color:#abc1c8;padding:25px 18px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;font:bold 25px Manrope;color:white;padding:0 8px 24px}.brand img{width:44px;height:48px;object-fit:contain;background:white;border-radius:6px;padding:3px}.brand small{display:block;font:8px 'DM Sans';letter-spacing:2px;color:#8dafb9;margin-top:3px}.workspace{border:1px solid #34505a;padding:12px;border-radius:7px;color:#d5e3e5;margin-bottom:20px}.workspace span{float:right;color:#67cb9b}nav{overflow:auto;flex:1}nav label{display:block;text-transform:uppercase;letter-spacing:1.6px;font-size:9px;margin:18px 12px 8px;color:#71929d}nav button{display:block;text-align:left;background:none;border:0;color:#b5c9cf;width:100%;margin:3px 0;font-weight:500;padding:10px 12px;font-size:12px}nav button.active{background:#255047;color:#a6efc7}nav button:hover{background:#24424b}nav i{display:inline-block;width:24px;font-style:normal;font-size:16px}.asidefoot{font-size:9px;line-height:1.9;letter-spacing:.5px;padding:20px 8px 0;color:#71929d}.asidefoot b{color:#b5c9cf;font-weight:400}main{margin-left:238px}header{height:103px;background:#fff;border-bottom:1px solid var(--line);padding:24px 36px;display:flex;align-items:center;justify-content:space-between}.crumb{font-size:11px;color:var(--muted)}h1{font:800 23px Manrope;margin:7px 0}.topright{display:flex;align-items:center;gap:12px}.topright button{font-size:11px}.avatar{background:#e7efeb;border-radius:50%;padding:11px;font-size:12px;font-weight:bold}select,input,textarea{border:1px solid #dbe4e2;border-radius:6px;background:white;padding:10px;color:var(--ink);max-width:100%}.topright select{width:175px;font-size:11px}.demo{padding:11px 36px;background:#eaf1ed;color:#39725c;font-size:10px;letter-spacing:.8px;display:flex;align-items:center;gap:20px}.demo span{letter-spacing:0;color:#688376;font-size:11px}.demo button{margin-left:auto;padding:0;border:0;background:transparent;font-size:11px;color:#39725c}#view{padding:28px 36px;min-height:75vh}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.intro h2{font:800 25px Manrope;margin:0 0 7px}.muted{color:var(--muted);font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.7px;color:var(--green);font-weight:bold;margin-bottom:9px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.kpi{background:white;border:1px solid var(--line);border-radius:10px;padding:19px}.kpi label{font-size:11px;color:#697e87}.kpi strong{display:block;font:800 29px Manrope;margin:12px 0 8px}.kpi small{color:#478d70;font-size:10px}.grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-bottom:20px}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:22px;margin-bottom:18px}.card h3{font:700 15px Manrope;margin:0 0 8px}.cardhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cardhead small{color:var(--muted)}.map{position:relative;background:#edf2ed;border-radius:8px;overflow:hidden;height:285px}.map svg{width:100%;height:100%}.mapbadge{position:absolute;left:15px;top:15px;background:white;border-radius:5px;padding:8px 10px;font-size:10px}.maplegend{position:absolute;bottom:12px;left:15px;color:#6f8982;font-size:10px}.activity{display:flex;gap:12px;padding:15px 0;border-bottom:1px solid #edf1ef}.activity:last-child{border:0}.dot{width:9px;height:9px;background:#e6aa51;border-radius:50%;margin-top:5px;flex-shrink:0}.activity b{font-size:12px}.activity p{font-size:11px;color:var(--muted);margin:5px 0}.bars{display:flex;gap:15px;align-items:end;height:150px;padding:10px 0 0}.barcol{flex:1;text-align:center;font-size:10px;color:var(--muted)}.bar{background:#2d8166;border-radius:5px 5px 0 0;min-height:3px;margin-bottom:10px}.toolbar{display:flex;gap:10px;margin-bottom:18px;align-items:center;flex-wrap:wrap}.toolbar input{flex:1;min-width:170px}.tablewrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{background:#fafcfb;color:#82938f;font-weight:500;text-transform:uppercase;letter-spacing:.6px;font-size:9px;padding:15px}td{font-size:12px;padding:15px;border-top:1px solid #edf1ef}td:first-child{font-weight:600}td .small{margin-right:4px}.pill{padding:5px 8px;border-radius:4px;background:#e9f4ef;color:#35795f;font-size:10px;display:inline-block}.pill.warn{background:#fff2db;color:#af7d24}.pill.bad{background:#fcebe7;color:#b2513f}.pill.neutral{background:#edf1f4;color:#73838f}.empty{padding:60px;text-align:center;color:var(--muted)}footer{padding:18px 36px;font-size:10px;color:#92a29d;border-top:1px solid var(--line)}footer span{float:right}dialog{border:0;border-radius:12px;padding:28px;width:680px;max-width:94vw;max-height:90vh;box-shadow:0 30px 100px #0003}dialog::backdrop{background:#0a263b70;backdrop-filter:blur(3px)}dialog h2{font:800 22px Manrope;margin:0 0 8px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.field label{display:block;color:#71857e;font-size:11px;margin-bottom:6px}.field input,.field select,.field textarea{width:100%}.full{grid-column:1/-1}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.close{float:right;border:0;padding:5px 10px}.notice{background:#f0f5f2;padding:14px;border-radius:7px;font-size:12px;line-height:1.7;margin:15px 0}.error{color:#b54332;font-size:12px}.detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:22px}.detailgrid label{font-size:10px;color:var(--muted);display:block;margin-bottom:5px}.detailgrid p{margin:0;font-size:13px}.scenario{border:1px solid var(--line);border-radius:8px;padding:18px;margin-bottom:12px;display:flex;gap:18px;align-items:center}.scenario span{font:800 25px Manrope;color:#aac4b8}.scenario p{margin:5px 0;font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#183f33;color:white;border-radius:8px;padding:15px 25px;display:none;z-index:20;max-width:90vw}.mobile{display:none}.camera{height:180px;background:#102c39;border-radius:8px;color:#9bb9c2;display:grid;place-items:center;position:relative}.camera::after{content:'DÉMONSTRATION · AUCUN FLUX RÉEL';position:absolute;bottom:14px;font-size:9px;letter-spacing:1px}.tank{height:190px;width:120px;border:3px solid #b6c9c1;border-radius:14px;margin:20px auto;position:relative;overflow:hidden}.liquid{position:absolute;bottom:0;background:#5ba389;width:100%}.tank b{position:absolute;inset:45% 0 auto;text-align:center;color:#123c30}.metricrow{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid var(--line)}@media(max-width:1100px){aside{width:205px}main{margin-left:205px}header,#view{padding:24px}.demo{padding:10px 24px}.grid{grid-template-columns:1fr}.topright .avatar{display:none}.kpis{gap:10px}.kpi{padding:15px}}@media(max-width:760px){aside{display:none}.menu aside{display:flex;width:238px;top:95px}main{margin:0}.mobile{display:block;margin-right:10px}header{padding:12px;height:95px}.topright{gap:5px}.topright select{width:120px}.crumb{display:none}h1{font-size:16px}.demo{padding:10px 15px}.demo span{display:none}#view{padding:20px 15px}.kpis{grid-template-columns:1fr 1fr}.intro{align-items:start;gap:10px}.intro h2{font-size:21px}.formgrid,.detailgrid{grid-template-columns:1fr}.grid{gap:0}.full{grid-column:auto}footer span{display:none}}
@media print{aside,header,.demo,footer,button,.toolbar{display:none!important}main{margin:0}#view{padding:0}.grid{display:block}.card{break-inside:avoid}.tablewrap{overflow:visible}body{background:white}.kpis{grid-template-columns:repeat(4,1fr)}}
