:root{--navy:#14213d;--navy2:#1d2d52;--anth:#2b2f36;--gold:#b8924a;--gold2:#d9b66f;--bg:#f3f4f7;--card:#fff;--line:#e3e6ec;--tx:#1c2230;--mut:#6b7385;--ok:#1f8a5b;--warn:#c27a10;--err:#c0392b;--r:12px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx);font-size:15px;line-height:1.45}
h1{font-size:1.45rem;margin:0}h2{font-size:1.1rem;margin:0 0 .6rem}h3{font-size:.95rem;margin:.2rem 0 .5rem;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
a{color:var(--navy2)}button,input,select,textarea{font:inherit}
.shell{display:flex;min-height:100vh}
.side{width:236px;background:linear-gradient(180deg,var(--navy),var(--anth));color:#dfe4ef;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex:none}
.brand{display:flex;align-items:center;gap:10px;padding:18px 16px;border-bottom:1px solid #ffffff1a;font-weight:700;letter-spacing:.03em}
.brand img{width:38px;height:38px;object-fit:contain;background:#fff;border-radius:8px;padding:3px}
.brand .dot{width:38px;height:38px;border-radius:8px;background:var(--gold);color:var(--navy);display:grid;place-items:center;font-weight:800}
.brand small{display:block;font-weight:400;color:var(--gold2);font-size:.72rem}
nav{padding:10px;overflow:auto;flex:1}nav a{display:block;color:#cfd6e6;text-decoration:none;padding:10px 12px;border-radius:8px;margin-bottom:2px}
nav a:hover{background:#ffffff12}nav a.on{background:#ffffff1c;color:#fff;box-shadow:inset 3px 0 0 var(--gold)}
.me{padding:12px 16px;border-top:1px solid #ffffff1a;font-size:.85rem}.me button{margin-top:8px}
.main{flex:1;min-width:0;padding:22px 26px 60px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:16px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.kpi{border-left:4px solid var(--gold)}.kpi b{display:block;font-size:1.5rem;color:var(--navy)}.kpi span{color:var(--mut);font-size:.85rem}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
tr.click{cursor:pointer}tr.click:hover{background:#f8f9fc}.tw{overflow-x:auto}
.btn{background:var(--navy);color:#fff;border:0;border-radius:9px;padding:9px 14px;cursor:pointer;font-weight:600}.btn:hover{background:var(--navy2)}
.btn.gold{background:var(--gold);color:#1b1b1b}.btn.gold:hover{background:var(--gold2)}.btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}
.btn.danger{background:var(--err)}.btn.sm{padding:5px 10px;font-size:.85rem}.side .btn.ghost{color:#fff;border-color:#ffffff40}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sp{flex:1}
label{display:block;font-size:.82rem;color:var(--mut);margin-bottom:3px}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid #cfd4de;border-radius:9px;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold2);border-color:var(--gold)}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.form .full{grid-column:1/-1}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.76rem;font-weight:600;background:#e8ebf2;color:var(--navy)}
.b-ok{background:#dff3e9;color:var(--ok)}.b-warn{background:#fdf0d8;color:var(--warn)}.b-err{background:#f9e1de;color:var(--err)}.b-gold{background:#f4ead6;color:#8a6a2a}
.muted{color:var(--mut)}.err{color:var(--err)}.ok{color:var(--ok)}.money{font-variant-numeric:tabular-nums;white-space:nowrap}
.toast{position:fixed;right:16px;bottom:16px;background:var(--anth);color:#fff;padding:12px 16px;border-radius:10px;max-width:90vw;z-index:50;box-shadow:0 6px 24px #0004}.toast.e{background:var(--err)}
.modal{position:fixed;inset:0;background:#0007;display:grid;place-items:center;z-index:40;padding:12px}.modal>div{background:#fff;border-radius:14px;padding:20px;width:min(640px,100%);max-height:92vh;overflow:auto}
.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--navy),var(--anth));padding:16px}
.login .card{width:min(400px,100%);padding:26px;border-top:4px solid var(--gold)}.login img{max-height:70px;display:block;margin:0 auto 10px}
canvas.sig{width:100%;height:170px;border:1px dashed var(--gold);border-radius:10px;background:#fff;touch-action:none}
.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.tabs button{background:#fff;border:1px solid var(--line);border-radius:99px;padding:6px 14px;cursor:pointer}.tabs button.on{background:var(--navy);color:#fff}
.alert{padding:10px 12px;border-radius:9px;margin-bottom:8px;background:#fdf0d8;color:#6d4608}.alert.e{background:#f9e1de;color:#7b1f14}
.logo-prev{max-height:80px;max-width:240px;background:#fff;border:1px solid var(--line);padding:6px;border-radius:8px}


/* ===== v2 : coque, navigation, tableau de bord, assistant ===== */
.side-cta{padding:12px 12px 0}.side-cta .btn{display:block;text-align:center;text-decoration:none;padding:11px}
.top2{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.top2 h1{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mlogo{display:none}
.mlogo img,.mlogo .dot{width:34px;height:34px;object-fit:contain;border-radius:8px;background:#fff;border:1px solid var(--line);padding:2px}.mlogo .dot{background:var(--gold);color:var(--navy);display:grid;place-items:center;font-weight:800;font-size:.8rem}
.sbox{position:relative;width:min(340px,100%)}.sbox input{padding-left:36px;border-radius:99px;background:#fff}.sbox .si{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--mut);display:flex}.sbox .si svg{width:17px;height:17px}
.sres{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #0002;z-index:35;max-height:60vh;overflow:auto;padding:6px}
.sres h4{margin:8px 8px 2px;font-size:.72rem;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}.sres a{display:block;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--tx);text-decoration:none}.sres a:hover{background:#f3f4f7}
.icon{position:relative;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);display:grid;place-items:center;cursor:pointer}
.bn{position:absolute;top:-3px;right:-3px;background:var(--err);color:#fff;font-style:normal;font-size:.68rem;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.bnav{display:none}
.sheet{position:fixed;inset:0;background:#0006;z-index:45;display:flex;align-items:flex-end;justify-content:center}
.sheet-in{background:#fff;border-radius:20px 20px 0 0;padding:18px 16px calc(22px + env(safe-area-inset-bottom));width:min(560px,100%);max-height:85vh;overflow:auto;animation:up .18s ease-out}
@keyframes up{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}
.sgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sgrid a{padding:14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--navy);font-weight:600;text-align:center}
.qa{display:grid;gap:10px}.qa a{display:flex;align-items:center;gap:14px;padding:16px;border-radius:14px;background:var(--bg);text-decoration:none;color:var(--navy);font-weight:600;font-size:1.02rem}.qa svg{color:var(--gold);width:26px;height:26px}
/* tableau de bord */
.hero{background:linear-gradient(120deg,var(--navy),var(--anth));color:#fff;border-radius:16px;padding:18px 20px;margin-bottom:16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-bottom:3px solid var(--gold)}
.hero h2{margin:0;color:#fff;font-size:1.15rem}.hero p{margin:2px 0 0;color:#cfd6e6}.hero .sp{flex:1}
.kp{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}
.kc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;position:relative;overflow:hidden}.kc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.kc span{color:var(--mut);font-size:.82rem}.kc b{display:block;font-size:1.45rem;color:var(--navy);margin:2px 0}.kc small{font-size:.8rem}.up{color:var(--ok)}.down{color:var(--err)}
.ring{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.ring svg{flex:none}.leg{display:grid;gap:6px;font-size:.88rem}.leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px}
.bars{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:8px}.bars div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:.7rem;color:var(--mut)}.bars i{display:block;width:100%;max-width:44px;background:#cdd3e1;border-radius:6px 6px 0 0;min-height:2px}.bars div.cur i{background:var(--gold)}.bars em{font-style:normal;font-size:.68rem;color:var(--tx);margin-bottom:3px;white-space:nowrap}
.list a,.list .li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--tx)}.list a:last-child,.list .li:last-child{border:0}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px}.chips button{flex:none;border:1px solid var(--line);background:#fff;border-radius:99px;padding:7px 14px;cursor:pointer;font-weight:600;color:var(--navy)}.chips button.on{background:var(--navy);color:#fff;border-color:var(--navy)}.chips b{margin-left:6px;opacity:.7}
.rc{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:13px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;cursor:pointer;text-decoration:none;color:var(--tx)}.rc:hover{border-color:var(--gold)}.rc .t{font-weight:700}.rc .r{text-align:right}
.draft{border-style:dashed;background:#fffdf7}
/* assistant */
.wiz{max-width:860px;margin:0 auto}.steps{display:flex;gap:4px;margin-bottom:16px}.steps div{flex:1;text-align:center;font-size:.72rem;color:var(--mut);padding-top:8px;border-top:4px solid #dde1ea;cursor:default}.steps div.done{border-color:var(--gold);color:var(--navy)}.steps div.cur{border-color:var(--navy);color:var(--navy);font-weight:700}
.vc{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.vc button{text-align:left;background:#fff;border:2px solid var(--line);border-radius:14px;padding:14px;cursor:pointer}.vc button.on{border-color:var(--gold);background:#fffaf0}.vc button:disabled{opacity:.5}
.quote{background:var(--navy);color:#fff;border-radius:14px;padding:14px 16px;margin:14px 0}.quote table td{border-color:#ffffff22;padding:5px 0}.quote .tot{font-size:1.4rem;font-weight:700;color:var(--gold2)}
.wnav{display:flex;gap:10px;justify-content:space-between;margin-top:16px;position:sticky;bottom:0;background:var(--bg);padding:10px 0}.wnav .btn{min-width:120px}
.pick{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px}.pick button{display:flex;width:100%;justify-content:space-between;padding:11px 12px;background:#fff;border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left}.pick button.on{background:#fffaf0;box-shadow:inset 3px 0 0 var(--gold)}
.xt{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.xt input[type=checkbox]{width:22px;height:22px}.xt .q{width:70px}
/* parcours dossier */
.flow{display:flex;gap:0;margin:0 0 16px;overflow-x:auto}.flow div{flex:1;min-width:84px;text-align:center;font-size:.76rem;color:var(--mut);position:relative;padding-top:34px}.flow div:before{content:attr(data-n);position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;background:#dde1ea;color:#fff;display:grid;place-items:center;font-weight:700;z-index:1}.flow div:after{content:"";position:absolute;top:12px;left:50%;width:100%;height:3px;background:#dde1ea}.flow div:last-child:after{display:none}
.flow div.done:before{background:var(--gold)}.flow div.done:after{background:var(--gold)}.flow div.cur:before{background:var(--navy)}.flow div.cur{color:var(--navy);font-weight:700}
.next{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#fffaf0;border:1px solid #ecd9a8;border-radius:14px;padding:14px 16px;margin-bottom:16px}.next .sp{flex:1}.next b{color:var(--navy)}
.fuel{width:100%}.rng{display:flex;justify-content:space-between;font-size:.74rem;color:var(--mut)}
@media(max-width:860px){
 body{font-size:16px}
 .side{display:none}.main{padding:12px 12px calc(86px + env(safe-area-inset-bottom))}
 .mlogo{display:block}.top2{gap:8px}.top2 h1{font-size:1.2rem}.sbox{order:5;width:100%}#actions{order:4;width:100%}
 #actions .btn{flex:1;text-align:center;padding:12px}
 input,select,textarea{font-size:16px;padding:12px}.btn{padding:12px 16px;min-height:44px}.btn.sm{min-height:40px;padding:9px 12px}
 .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);z-index:30;padding:6px 6px calc(6px + env(safe-area-inset-bottom));align-items:flex-end;justify-content:space-around}
 .bnav a,.bnav button:not(.fab){flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.7rem;color:var(--mut);text-decoration:none;background:none;border:0;padding:6px 0;min-height:48px;cursor:pointer}.bnav a.on{color:var(--navy);font-weight:700}.bnav a.on svg{color:var(--gold)}
 .fab{flex:none;width:58px;height:58px;border-radius:50%;border:0;background:var(--gold);color:var(--navy);display:grid;place-items:center;margin-top:-26px;box-shadow:0 6px 18px #b8924a88;cursor:pointer}.fab svg{width:28px;height:28px}
 .modal{align-items:end;padding:0}.modal>div{border-radius:20px 20px 0 0;width:100%;max-height:92vh}
 .toast{bottom:90px}.hero{padding:14px}.steps div{font-size:.62rem}.form{grid-template-columns:1fr}
 table.rsp thead{display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
a.btn{text-decoration:none;display:inline-block;text-align:center}
.bnav a.on{box-shadow:none;background:none}
@media(max-width:860px){.kp{grid-template-columns:1fr 1fr}.kc b{font-size:1.1rem}.kc{padding:12px}#actions:empty{display:none}.top2 .btn.ghost{width:100%}}
/* v3 : identité, clauses, signataires */
.card.inner{box-shadow:none;background:#fafbfd;border:1px solid var(--line,#e3e6ec)}.asset-prev{max-width:100%;max-height:90px;display:block;margin:8px 0;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0/14px 14px;border:1px solid #dde}
.grid.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:800px){.grid.g3{grid-template-columns:1fr}}
table.lay input{max-width:90px}.row.wrap{flex-wrap:wrap;gap:12px}label.chk{display:flex;gap:8px;align-items:center}label.chk input{width:auto}
.cl{border:1px solid var(--line,#e3e6ec);border-radius:8px;padding:10px 12px;margin:8px 0;background:#fff}.cl.off{opacity:.6;background:#f6f6f6}.cl-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}.cl-b{margin:6px 0 0;white-space:pre-line;max-height:4.6em;overflow:hidden}
.envbar{background:#b3261e;color:#fff;text-align:center;font:600 12px system-ui;padding:3px;position:sticky;top:0;z-index:9999}
