:root{
  --bg:#0d1117;--bg2:#161b22;--bg3:#1c2230;--bg4:#242938;
  --border:rgba(255,255,255,.07);--border2:rgba(255,255,255,.13);
  --text:#e6eaf2;--text2:#8b91a8;--text3:#505570;
  --blue:#2e6fdb;--blue2:#1a4fa3;--bl:#4a90e2;
  --green:#27ae60;--green2:#1e8449;
  --orange:#e67e22;--orange2:#ca6f1e;
  --red:#e74c3c;--red2:#c0392b;
  --purple:#8e44ad;--teal:#16a085;--gold:#f1c40f;
  --r:10px;--r2:6px;--sh:0 4px 24px rgba(0,0,0,.5)
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,sans-serif;font-size:14px;min-height:100vh}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px}

/* ======= ÉCRAN AUTH ======= */
#auth-screen{position:fixed;inset:0;background:linear-gradient(135deg,#0d1117,#161b22,#0d1117);display:flex;align-items:center;justify-content:center;z-index:9999}
.abox{background:var(--bg2);border:1px solid var(--border2);border-radius:16px;padding:40px;width:420px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.a-logo{text-align:center;font-size:26px;font-weight:900;color:var(--bl);margin-bottom:4px;letter-spacing:1px}
.a-sub{text-align:center;font-size:11px;color:var(--text2);margin-bottom:24px;letter-spacing:.5px}
.atabs{display:flex;gap:4px;background:var(--bg3);padding:4px;border-radius:8px;margin-bottom:20px}
.atab{flex:1;padding:7px;border-radius:6px;text-align:center;cursor:pointer;font-size:12px;font-weight:600;color:var(--text2);transition:.15s}
.atab.active{background:var(--blue);color:#fff}
.aerr{background:rgba(231,76,60,.12);border:1px solid rgba(231,76,60,.3);color:#e74c3c;border-radius:6px;padding:8px 12px;font-size:12px;margin-bottom:10px;display:none}
.aok{background:rgba(39,174,96,.12);border:1px solid rgba(39,174,96,.3);color:#2ecc71;border-radius:6px;padding:8px 12px;font-size:12px;margin-bottom:10px;display:none}
.a-setup{background:rgba(46,111,219,.09);border:1px solid rgba(46,111,219,.3);border-radius:8px;padding:13px;margin-bottom:14px;font-size:12px;color:var(--bl)}
.a-setup strong{display:block;margin-bottom:3px}

/* ======= APP ======= */
#app{display:none;flex-direction:column;min-height:100vh}
#app.v{display:flex}
.hdr{background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 18px;height:54px;position:sticky;top:0;z-index:100}
.hlogo{font-size:17px;font-weight:900;color:var(--bl);letter-spacing:.5px}
.hlogo small{font-weight:400;color:var(--text2);font-size:11px;margin-left:4px}
.hdiv{width:1px;height:26px;background:var(--border2);margin:0 4px}
.hsp{flex:1}
.hbadge{background:rgba(231,76,60,.85);color:#fff;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}
.upill{display:flex;align-items:center;gap:7px;background:var(--bg3);border:1px solid var(--border2);border-radius:20px;padding:4px 11px 4px 4px}
.uav{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff}
.uname{font-size:12px;font-weight:600}.urole{font-size:10px;color:var(--text2)}
.blogout{background:none;border:1px solid var(--border2);color:var(--text2);border-radius:5px;padding:5px 10px;cursor:pointer;font-size:11px;transition:.15s}
.blogout:hover{background:var(--red2);color:#fff;border-color:var(--red2)}

/* ======= LAYOUT ======= */
.layout{display:flex;flex:1}
.sidebar{width:210px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:8px 0;position:sticky;top:54px;height:calc(100vh - 54px);overflow-y:auto}
.nsec{padding:5px 12px;font-size:10px;font-weight:700;color:var(--text3);letter-spacing:1px;text-transform:uppercase;margin-top:9px}
.ni{display:flex;align-items:center;gap:9px;padding:8px 14px;cursor:pointer;color:var(--text2);transition:.15s;border-left:3px solid transparent;font-size:12px}
.ni:hover{background:var(--bg3);color:var(--text)}.ni.active{background:rgba(46,111,219,.12);color:var(--bl);border-left-color:var(--blue)}
.nic{width:17px;text-align:center;font-style:normal;font-size:14px}
.nbadge{margin-left:auto;background:var(--red);color:#fff;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:700}
.main{flex:1;overflow-y:auto;padding:22px;background:var(--bg)}
.page{display:none}.page.active{display:block}
.ptitle{font-size:19px;font-weight:700;margin-bottom:3px}.psub{color:var(--text2);font-size:12px;margin-bottom:20px}
.stitle{font-size:13px;font-weight:700;color:var(--text);margin-bottom:11px}

/* ======= CARDS / GRIDS ======= */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:17px 19px}
.csm{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:11px 14px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:13px}
.g4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}
.fx{display:flex;gap:9px;align-items:center}.fxb{justify-content:space-between}.fxe{justify-content:flex-end}
.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.mb20{margin-bottom:20px}.mb24{margin-bottom:24px}
.sep{height:1px;background:var(--border);margin:14px 0}

/* ======= COULEURS ======= */
.tb{color:var(--bl)}.tg{color:var(--green)}.tr{color:var(--red)}.to{color:var(--orange)}.tm{color:var(--text2)}.tgo{color:var(--gold)}
.fw7{font-weight:700}.fs11{font-size:11px}.fs12{font-size:12px}

/* ======= METRICS ======= */
.metric{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:13px 17px}
.mlbl{font-size:10px;color:var(--text2);font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px}
.mval{font-size:19px;font-weight:800}.msub{font-size:10px;color:var(--text3);margin-top:2px}

/* ======= BOUTONS ======= */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:var(--r2);border:none;cursor:pointer;font-size:12px;font-weight:600;transition:.15s}
.bpri{background:var(--blue);color:#fff}.bpri:hover{background:var(--blue2)}
.bsuc{background:var(--green2);color:#fff}.bsuc:hover{background:#196636}
.bdan{background:var(--red2);color:#fff}.bdan:hover{background:#a93226}
.bghost{background:transparent;color:var(--text2);border:1px solid var(--border2)}.bghost:hover{background:var(--bg3);color:var(--text)}
.borg{background:var(--orange2);color:#fff}.borg:hover{background:#b9770e}
.bsm{padding:4px 9px;font-size:11px}.bxs{padding:3px 7px;font-size:11px}
.bti{padding:5px;border:1px solid var(--border2);background:transparent;color:var(--text2);cursor:pointer;border-radius:var(--r2);display:inline-flex;transition:.15s}.bti:hover{background:var(--bg3);color:var(--text)}

/* ======= FORMULAIRES ======= */
.fg{margin-bottom:11px}.fl{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:3px}
.fi,.fs{width:100%;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);padding:7px 10px;color:var(--text);font-size:13px;outline:none;transition:border .15s}
.fi:focus,.fs:focus{border-color:var(--blue)}.fi[type=date]{cursor:pointer;color-scheme:dark}.fs{cursor:pointer}
.fiil{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);padding:7px 10px;color:var(--text);font-size:13px;outline:none;width:100%}
.fiil:focus{border-color:var(--blue)}

/* ======= TABLEAUX ======= */
.tw{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:12px}
th{background:var(--bg3);color:var(--text2);font-weight:700;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:8px 11px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
td{padding:8px 11px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
tr:last-child td{border-bottom:none}tr:hover td{background:rgba(255,255,255,.018)}

/* ======= BADGES ======= */
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;white-space:nowrap}
.bok{background:rgba(39,174,96,.18);color:#2ecc71}.bpart{background:rgba(230,126,34,.18);color:#e67e22}
.bwait{background:rgba(255,255,255,.08);color:var(--text2)}.bsurf{background:rgba(231,76,60,.18);color:#e74c3c}
.bblue{background:rgba(46,111,219,.18);color:#5ba4f5}.bpurp{background:rgba(142,68,173,.18);color:#c39bd3}
.bgold{background:rgba(241,196,15,.18);color:#f1c40f}
.dot{width:5px;height:5px;border-radius:50%;display:inline-block}.dg{background:var(--green)}.do{background:var(--orange)}.dr{background:var(--red)}

/* ======= TABS ======= */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px}
.tab{padding:6px 13px;cursor:pointer;color:var(--text2);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:12px;font-weight:600;transition:.15s}.tab:hover{color:var(--text)}.tab.active{color:var(--bl);border-bottom-color:var(--blue)}

/* ======= ALERTES ======= */
.alert{padding:9px 13px;border-radius:var(--r);border:1px solid;display:flex;gap:9px;align-items:flex-start;margin-bottom:11px}
.adan{background:rgba(231,76,60,.1);border-color:rgba(231,76,60,.3);color:#e74c3c}.awarn{background:rgba(230,126,34,.1);border-color:rgba(230,126,34,.3);color:#e67e22}
.asuc{background:rgba(39,174,96,.1);border-color:rgba(39,174,96,.3);color:#2ecc71}.ainfo{background:rgba(46,111,219,.1);border-color:rgba(46,111,219,.3);color:#5ba4f5}
.aic{font-size:15px;flex-shrink:0;margin-top:1px}.atx{font-size:12px;flex:1}

/* ======= MODALS ======= */
.mov{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:500;display:none;align-items:center;justify-content:center;backdrop-filter:blur(3px)}.mov.open{display:flex}
.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);width:600px;max-width:96vw;max-height:92vh;overflow-y:auto;box-shadow:var(--sh)}
.mlg{width:800px}
.mh{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}
.mt{font-size:14px;font-weight:700}.mc{background:none;border:none;cursor:pointer;color:var(--text2);font-size:21px;line-height:1}
.mbody{padding:18px}.mft{padding:11px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:7px}

/* ======= DIVERS ======= */
.pbar{height:5px;background:var(--bg4);border-radius:3px;overflow:hidden}.pfill{height:100%;border-radius:3px;transition:width .3s}
.eti{flex:1;text-align:center;position:relative}
.edot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;z-index:1;position:relative;margin:0 auto 5px;color:#fff}
.eline{height:2px;position:absolute;top:14px;left:50%;right:-50%;z-index:0}.eti:last-child .eline{display:none}
.elbl{font-size:10px;color:var(--text2)}.eamt{font-size:11px;font-weight:700;margin-top:1px}
.dz{border:2px dashed var(--border2);border-radius:var(--r);padding:26px;text-align:center;cursor:pointer;transition:.2s}.dz:hover,.dz.dov{border-color:var(--blue);background:rgba(46,111,219,.05)}
.dzi{font-size:30px;margin-bottom:7px;color:var(--text3)}.dzt{font-size:12px;color:var(--text2)}.dzt strong{color:var(--blue)}
.surfa{background:rgba(231,76,60,.1);border:1px solid rgba(231,76,60,.28);border-radius:var(--r2);padding:7px 11px;font-size:12px;color:var(--red);display:flex;align-items:center;gap:7px;margin-bottom:7px}
.noac{text-align:center;padding:50px;color:var(--text3)}.noac-i{font-size:44px;margin-bottom:10px}

/* ======= IMPORT EDITABLE ======= */
.imp-edit{background:transparent;border:none;border-bottom:1px dashed var(--border2);color:var(--text);font-size:12px;width:100%;padding:2px 4px;outline:none}
.imp-edit:focus{border-bottom-color:var(--blue);background:rgba(46,111,219,.05)}

/* ======= RAPPORT ======= */
.rwrap{background:#fff;color:#111;border-radius:var(--r);overflow:hidden;font-family:'Segoe UI',Arial,sans-serif;border:1px solid #dce7f8}
.rhdr{background:#fff;padding:18px 26px;border-bottom:2px solid #2e6fdb;display:flex;align-items:center;justify-content:space-between}
.rtit{font-size:17px;font-weight:800;color:#2e6fdb}.rsub{font-size:11px;color:#666;margin-top:2px}
.rsec{padding:16px 26px;border-bottom:1px solid #eef2f8}.rsec:last-child{border-bottom:none}
.rstitl{font-size:11px;font-weight:700;color:#2e6fdb;text-transform:uppercase;letter-spacing:.5px;margin-bottom:11px}
.rmet{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.rm{background:#f3f7ff;border:1px solid #dce7f8;border-radius:7px;padding:11px 13px}
.rml{font-size:9px;color:#555;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
.rmv{font-size:16px;font-weight:800;color:#2e6fdb}
.rftr{background:#f3f7ff;padding:9px 26px;border-top:2px solid #2e6fdb;font-size:10px;color:#888;display:flex;justify-content:space-between}

@media print{#auth-screen,#app>.hdr,.sidebar,#page-rapports .card:first-child{display:none!important}.rwrap{box-shadow:none!important}body{background:#fff!important}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
