:root{--blue:#075cf5;--navy:#0c2340;--ink:#142847;--muted:#78859b;--line:#e8edf5;--bg:#f3f7fb}*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #dce5f1;background:white;border-radius:7px;padding:9px 14px;color:var(--ink)}button:hover{background:#edf4ff}a{color:var(--blue);text-decoration:none}aside{position:fixed;inset:0 auto 0 0;width:224px;background:linear-gradient(155deg,#102d50,#081c34);color:#c7d6e8;z-index:5;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:white;font-size:14px;font-weight:700;letter-spacing:1px;padding:27px 22px;line-height:1.2}.logo{font-size:43px;color:#53beff}nav{padding:5px 10px}nav a{display:flex;align-items:center;gap:14px;padding:12px 14px;color:#c7d6e8;border-radius:6px;margin:5px 0;font-size:13px}nav a.active{background:linear-gradient(100deg,#166bf5,#084bb8);color:white;box-shadow:0 5px 14px #0002}nav a:hover{background:#ffffff14}nav a.active:hover{background:#075cf5}.ico{font-size:19px;width:22px;text-align:center}.sidefoot{margin-top:auto;padding:22px;font-size:10px;letter-spacing:1.2px;color:#9aabc1}.sidefoot small{font-size:10px;letter-spacing:0}.shell{margin-left:224px}header{height:78px;background:#ffffffec;border-bottom:1px solid var(--line);padding:15px 30px;display:flex;align-items:center;gap:16px}header input{background:#f3f6fa;border:1px solid var(--line);padding:11px 16px;border-radius:7px;width:min(470px,50%)}.topright{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:12px}.topright small{display:block;color:var(--muted)}.avatar{display:inline-grid;place-items:center;background:#0956c9;color:white;border-radius:50%;width:38px;height:38px;font-size:12px}sup{color:#f35970}#menu{display:none}main{max-width:1600px;margin:auto;padding:27px 30px 18px}.heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:25px}h1{font-size:30px;letter-spacing:-1px;line-height:1.2;margin:0 0 5px}h2{font-size:16px;margin:0}h3{font-size:14px}p{margin:5px 0;color:var(--muted)}.eyebrow{font-size:11px;color:var(--blue);font-weight:700;letter-spacing:1.5px;margin-bottom:8px}.primary{background:var(--blue);border-color:var(--blue);color:white}.primary:hover{background:#064bc4}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:21px}.stat,.card{background:white;border:1px solid var(--line);border-radius:9px;box-shadow:0 2px 8px #20355302}.stat{padding:19px;position:relative;overflow:hidden}.stat .icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:23px;background:#def7f0;color:#00ab89;float:left;margin-right:12px}.stat:nth-child(2) .icon{background:#e5f0ff;color:#176af0}.stat:nth-child(3) .icon{background:#fff2d6;color:#d69214}.stat:nth-child(4) .icon{background:#eee9ff;color:#8663f2}.stat label{font-size:12px}.stat strong{display:block;font-size:27px;letter-spacing:-.7px}.trend{color:#00ac90;font-size:11px;margin-top:17px}.trend span{color:var(--muted);margin-left:4px}.spark{position:absolute;bottom:12px;right:12px;width:78px;height:32px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.grid.wide{grid-template-columns:3fr 1fr}.card{padding:20px;min-width:0}.cardhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.cardhead a,.cardhead button{font-size:11px}.chart{height:205px;display:flex;gap:8%;align-items:end;padding:14px 22px 27px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent,transparent 40px,#edf1f7 41px)}.barset{display:flex;gap:4px;align-items:end;height:100%;flex:1;position:relative}.barset b{width:22%;border-radius:2px 2px 0 0;background:var(--blue)}.barset b:nth-child(2){background:#06b4a4}.barset b:nth-child(3){background:#8adecf}.barset b:nth-child(4){background:#9b85f6}.barset small{position:absolute;bottom:-23px;left:30%;color:var(--muted);font-size:10px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:10px;padding-top:22px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--blue);margin-right:5px}.route{height:120px;border-radius:7px;background:#edf6fc;position:relative;overflow:hidden}.route svg{width:100%;height:100%}.routecards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}.mini{border:1px solid var(--line);border-radius:7px;padding:12px;font-size:11px}.mini p{font-size:10px}.progress{background:#eaf0f7;border-radius:6px;height:6px;margin:11px 0}.progress span{height:100%;display:block;background:var(--blue);border-radius:6px}.badge{display:inline-block;border-radius:20px;background:#d8f7ed;color:#008767;padding:3px 10px;font-size:11px;white-space:nowrap}.badge.amber{background:#fff0ce;color:#ad7200}.badge.blue{background:#dfedff;color:#0757db}.badge.gray{background:#edf0f5;color:#6e7d92}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{text-align:left;color:#65748b;background:#f5f8fc;font-size:10px;font-weight:600;padding:12px}td{padding:14px 12px;border-bottom:1px solid var(--line)}tbody tr:hover{background:#fafcff}td button{padding:4px 9px;font-size:11px}.task{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink)}.task strong{font-size:25px}.task span{font-size:12px}.toolbar{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}.toolbar input{flex:1;min-width:160px}.toolbar input,.toolbar select,input,textarea,select{border:1px solid #dce5ef;border-radius:6px;padding:10px;background:white;color:var(--ink)}.muted{color:var(--muted);font-size:12px}.empty{padding:35px;text-align:center;color:var(--muted)}footer{font-size:10px;color:#8793a6;text-align:right;padding:12px 30px}dialog{border:1px solid var(--line);border-radius:13px;width:min(660px,95vw);padding:27px;box-shadow:0 30px 100px #00152a50;color:var(--ink)}dialog::backdrop{background:#071c3b70;backdrop-filter:blur(3px)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.field{display:flex;flex-direction:column;gap:6px;font-size:12px}.field.full{grid-column:1/-1}.close{float:right}.profile{display:flex;align-items:center;gap:16px}.profile .avatar{width:55px;height:55px;font-size:20px}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow:auto}.tabs button{border:0;background:none;border-radius:0;padding:13px 0;white-space:nowrap}.tabs button.selected{color:var(--blue);border-bottom:3px solid var(--blue)}.details{display:grid;grid-template-columns:1fr 1fr;gap:18px}.details label{display:block;font-size:11px;color:var(--muted)}.check{padding:12px 0;border-bottom:1px solid var(--line)}.check input{margin-right:10px}.flight{display:flex;justify-content:space-around;align-items:center;padding:20px;background:#f6faff;border-radius:7px;margin-bottom:20px}.flight strong{font-size:28px}.file{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);gap:8px}.file span{overflow-wrap:anywhere}.moneyrow{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#0c2947;color:white;border-radius:8px;padding:12px 24px;z-index:20;display:none}.reportbars{display:grid;gap:20px}.reportbar{display:flex;gap:15px;align-items:center}.reportbar label{width:100px}.reportbar .progress{flex:1;height:15px}.notice{background:#edf5ff;border:1px solid #dceaff;padding:15px;border-radius:7px;color:#386496;font-size:12px;margin-bottom:20px}@media(min-width:1450px){main{padding:35px 45px}}@media(max-width:1100px){aside{width:195px}.shell{margin-left:195px}main{padding:22px 20px}.stats{gap:10px}.stat{padding:13px}.stat strong{font-size:23px}.stat .icon{float:none;margin-bottom:8px}.grid.wide{grid-template-columns:1fr}.grid{gap:14px}.card{padding:15px}}@media(max-width:760px){aside{transform:translateX(-100%);transition:.2s;width:235px;box-shadow:10px 0 50px #0003}body.menuopen aside{transform:translateX(0)}.shell{margin-left:0}#menu{display:block}header{padding:12px 15px;height:70px}header input{width:100%;min-width:0}.topright>span:last-child{display:none}main{padding:22px 15px}.heading{align-items:flex-start}h1{font-size:25px}.heading>.actions{justify-content:flex-end}.heading p{font-size:12px}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.stat .icon{float:left}.stat strong{font-size:24px}.stat label{font-size:11px}.trend span{display:none}.routecards{gap:8px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.details{grid-template-columns:1fr 1fr}.spark{width:55px}.brand{padding:20px}nav a{padding:9px 14px}.sidefoot{padding:15px}.heading .actions button{font-size:11px;padding:8px}.topright{gap:5px}footer{text-align:center}.cardhead{align-items:flex-start}}@media print{aside,header,footer,.actions,button,.toolbar,.tabs,#toast{display:none!important}.shell{margin:0}main{padding:0}.card{break-inside:avoid}.grid{display:block}.card{margin-bottom:15px}body{background:white}}
/* Espace de connexion — Groupe Ekobusiness */
#login-screen{display:none}.login-mode #login-screen{display:grid;grid-template-columns:1.55fr 1fr;min-height:100svh}.login-mode>aside,.login-mode>.shell,.login-mode>#toast{display:none}.login-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;padding:48px clamp(28px,4vw,78px);min-height:100svh;background:#15293c url('assets/port-background.png') center/cover no-repeat;color:white}.login-hero:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0717279e 0%,#07152399 45%,#061320e8 100%)}.login-brand{display:flex;gap:17px;align-items:center;font-weight:700;font-size:17px;letter-spacing:.3px}.login-brand img{width:53px;height:53px;object-fit:contain;background:white;border-radius:11px;padding:4px}.login-brand small{display:block;color:#ffc139;font-size:12px;letter-spacing:1px;margin-top:3px}.hero-copy{margin:auto 0;max-width:800px;padding:100px 0 110px}.hero-copy .eyebrow{color:#98c5ff;margin-bottom:18px;font-size:10px;letter-spacing:2px}.hero-copy h1{font-size:clamp(30px,3.3vw,58px);font-weight:800;line-height:1.16;letter-spacing:-1.5px;margin:0 0 24px;color:white}.hero-copy h1 span{color:#61a7ff}.hero-copy p{max-width:550px;color:#c0cbd5;font-size:17px;line-height:1.8}.service-pills{display:flex;flex-wrap:wrap;gap:10px}.service-pills span{padding:8px 15px;background:#ffffff10;border:1px solid #ffffff25;border-radius:30px;font-size:11px;font-weight:600;backdrop-filter:blur(9px)}.service-pills span:before{content:'•';color:#4e9bff;margin-right:8px}.login-panel{display:flex;align-items:center;justify-content:center;padding:45px clamp(25px,3.3vw,65px);background-color:#101e33;background-image:linear-gradient(30deg,#35608912 12%,transparent 12.5%,transparent 87%,#35608912 87.5%,#35608912),linear-gradient(150deg,#35608912 12%,transparent 12.5%,transparent 87%,#35608912 87.5%,#35608912),linear-gradient(30deg,#35608912 12%,transparent 12.5%,transparent 87%,#35608912 87.5%,#35608912),linear-gradient(150deg,#35608912 12%,transparent 12.5%,transparent 87%,#35608912 87.5%,#35608912),linear-gradient(60deg,#35608909 25%,transparent 25.5%,transparent 75%,#35608909 75%,#35608909);background-size:90px 156px;background-position:0 0,0 0,45px 78px,45px 78px,0 0;color:#fff}.login-box{width:100%;max-width:470px;text-align:center}.login-logo{width:78px;height:78px;object-fit:contain;background:white;border-radius:17px;padding:7px;box-shadow:0 0 0 1px #a4c6ee55,0 8px 30px #0002;margin-bottom:24px}.login-box h2{font-size:33px;letter-spacing:-1px;color:white;margin-bottom:12px}.login-subtitle{font-size:14px;color:#96a4b7;line-height:1.6;margin-bottom:34px}#login-form{text-align:left}#login-form>label{display:block;color:#9ea9b9;font-size:11px;font-weight:700;letter-spacing:1.2px;margin:22px 0 10px}#login-form input{width:100%;height:58px;color:#f4f6fa;background:#10192b;border:1px solid #344155;border-radius:12px;padding:16px 19px;outline:none}#login-form input:focus{border-color:#5f9fff;box-shadow:0 0 0 3px #2672ef22}.password-field{position:relative}.password-field input{padding-right:60px!important}.password-field button{position:absolute;right:8px;top:9px;border:0;color:#a2afc0;background:transparent;padding:9px 12px}#login-error{color:#ffb8b8;font-size:12px;margin-top:14px}.login-submit{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;margin-top:22px;border-radius:12px;border:0;background:#2467f1;box-shadow:0 10px 24px #0066ff22;height:57px;font-weight:700;color:white;font-size:15px}.login-submit:hover{background:#387aff}.login-demo{font-size:10px;color:#96a7bc;margin-top:20px}.login-copyright{font-size:10px;color:#77869c;margin-top:29px;line-height:1.8}.sidebar-logo{width:45px;height:45px;border-radius:9px;object-fit:contain;background:white;padding:3px}.brand{gap:10px;font-size:12px;padding:22px 15px}#logout{padding:7px 10px;color:#42658b}.login-mode{background:#101e33}.login-mode footer{display:none}@media(max-width:950px){.login-mode #login-screen{grid-template-columns:1fr 1fr}.login-hero{padding:35px 28px}.hero-copy h1{font-size:34px}.hero-copy p{font-size:14px}.service-pills{gap:7px}.service-pills span{font-size:10px;padding:7px 10px}.login-panel{padding:35px 25px}.login-box h2{font-size:27px}.login-brand{font-size:13px}.login-brand small{font-size:10px}}@media(max-width:650px){.login-mode #login-screen{display:flex;flex-direction:column}.login-hero{min-height:290px;padding:24px}.hero-copy{padding:40px 0 15px;margin:0}.hero-copy .eyebrow,.hero-copy p,.service-pills{display:none}.hero-copy h1{font-size:28px;letter-spacing:-.7px;margin:0}.login-brand img{width:43px;height:43px}.login-brand{font-size:13px}.login-panel{padding:35px 25px;flex:1}.login-logo{width:63px;height:63px;margin-bottom:14px}.login-box h2{font-size:27px}.login-subtitle{margin-bottom:20px;font-size:12px}.login-copyright{margin-top:20px}.topright #logout{display:block}}@media print{#login-screen{display:none!important}}
