:root{--marine:#163B62;--bleu:#2D75AC;--bleu-h:#245F8E;--vert:#2F7A33;--vert-c:#8EC63F;--txt:#163B62;--txt2:#4A5B6C;
--bg:#F6F9FB;--bg2:#EEF3F7;--line:#D5E0E9;--warn:#B25E09;--warn-bg:#FFF3E0;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--txt);font:16px/1.5 Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
-webkit-tap-highlight-color:transparent}
h1,h2,h3{font-family:Outfit,Manrope,system-ui,sans-serif;font-weight:600;margin:0;line-height:1.2}
a{color:var(--bleu);text-decoration:none}
header{background:var(--marine);color:#fff;position:sticky;top:0;z-index:5}
.bar{max-width:880px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:14px}
.bar img{height:30px;display:block}
nav{display:flex;gap:4px;flex:1;overflow-x:auto}
nav a{color:#B8CBDB;padding:10px 11px;border-radius:22px;font-weight:600;font-size:15px;white-space:nowrap;min-height:44px;display:flex;align-items:center}
nav a.on{background:#fff;color:var(--marine)}
.more{position:relative}
.more summary{list-style:none;cursor:pointer;color:#B8CBDB;font-size:22px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.more summary::-webkit-details-marker{display:none}
.menu{position:absolute;right:0;top:46px;background:#fff;border-radius:12px;border:1px solid var(--line);min-width:210px;padding:6px;
box-shadow:0 8px 24px rgba(14,42,71,.18)}
.menu a{display:block;padding:12px 14px;color:var(--txt);border-radius:8px;min-height:44px}
.menu a:hover{background:var(--bg2)}
main{max-width:880px;margin:0 auto;padding:18px 16px 60px}
.head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.head h1{font-size:26px}
.sub{color:var(--txt2);font-size:14px}
h2.sec{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--vert);margin:26px 0 10px;display:flex;justify-content:space-between;gap:10px}
h2.sec span{color:var(--txt2);font-weight:600;letter-spacing:0;text-transform:none}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;transition:opacity .3s,transform .3s}
.card.gone{opacity:0;transform:translateX(30px)}
.who{display:flex;gap:12px;align-items:center}
.av{width:44px;height:44px;border-radius:50%;background:var(--bg2);color:var(--marine);display:flex;align-items:center;justify-content:center;
font:600 15px Outfit,sans-serif;flex:none}
.who b{font-size:17px}.who small{color:var(--txt2);display:block;font-size:14px;line-height:1.35}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:1px 8px;border-radius:6px;background:#E5F2E3;color:var(--vert);margin-left:6px;vertical-align:1px}
.tag.o{background:var(--bg2);color:var(--txt2)}
.todo{font-size:13px;font-weight:700;color:var(--bleu);margin:12px 0 6px}
textarea,input,select{font:inherit;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;width:100%;min-height:44px}
textarea{resize:vertical;line-height:1.5;font-size:15px}
textarea:focus,input:focus,select:focus{outline:2px solid var(--bleu);outline-offset:-1px}
.subj{margin-bottom:6px;font-weight:600}
.warn{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:6px 10px;font-size:13px;margin:6px 0;font-weight:600}
.hint{color:var(--txt2);font-size:14px;margin:4px 0 0}
.row{display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap}
button,.btn{font:inherit;font-weight:700;border:0;border-radius:10px;min-height:46px;padding:0 18px;cursor:pointer;background:var(--bleu);color:#fff;display:inline-flex;align-items:center;justify-content:center}
button:hover,.btn:hover{background:var(--bleu-h)}
button.ghost,.btn.ghost{background:transparent;color:var(--txt2);border:1px solid var(--line)}
button.ghost:hover{background:var(--bg2)}
button.sent{background:var(--vert)}
button.link{background:none;color:var(--txt2);min-height:44px;padding:0 10px;font-weight:600}
.grow{flex:1}
.more-act{position:relative}
.more-act summary{list-style:none;cursor:pointer;min-height:46px;min-width:46px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;color:var(--txt2);font-size:20px}
.more-act summary::-webkit-details-marker{display:none}
.more-act .menu{right:0;bottom:50px;top:auto}
.menu button{width:100%;justify-content:flex-start;background:none;color:var(--txt);font-weight:600;border-radius:8px}
.menu button:hover{background:var(--bg2)}
.empty{text-align:center;padding:50px 16px;color:var(--txt2)}
.empty h2{color:var(--marine);font-size:22px;margin-bottom:6px}
.wait{color:var(--txt2);font-size:14px;margin:-2px 2px 8px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.filters input{flex:2 1 200px}.filters select{flex:1 1 140px}
.list a.item{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px;color:var(--txt);min-height:60px}
.list .grow b{display:block}.list .grow small{color:var(--txt2)}
.st{font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px;background:var(--bg2);color:var(--txt2);white-space:nowrap}
.st.en_cours{background:#DCEBF6;color:var(--bleu-h)}.st.echange,.st.rdv,.st.devis{background:#E5F2E3;color:var(--vert)}
.st.gagne{background:var(--vert);color:#fff}.st.clos{background:#EBD9D9;color:#8a3030}
.pr{width:26px;height:26px;border-radius:7px;background:var(--marine);color:#fff;font:700 13px Outfit,sans-serif;display:flex;align-items:center;justify-content:center;flex:none}
.pr.B{background:var(--bleu)}.pr.C{background:#9FB3C4}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
label{font-size:13px;font-weight:700;color:var(--txt2);display:block;margin-bottom:3px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:14px}
.panel h3{font-size:17px;margin-bottom:10px}
.chk{display:flex;align-items:center;gap:10px;min-height:44px}
.chk input{width:22px;height:22px;min-height:0}
.ev{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--bg2);font-size:15px}
.ev:first-child{border:0}.ev time{color:var(--txt2);min-width:84px;font-size:14px}
.back{display:inline-block;margin-bottom:10px;font-weight:600;min-height:44px;line-height:44px}
.msg-ref{font:700 12px Outfit,sans-serif;background:var(--marine);color:#fff;border-radius:6px;padding:2px 8px;margin-right:8px}
.login{max-width:340px;margin:18vh auto;padding:0 16px;text-align:center}
.login img{height:44px;margin-bottom:20px}
.ok{background:#E5F2E3;color:var(--vert);padding:10px 14px;border-radius:10px;font-weight:700;margin-bottom:12px}
@media(max-width:560px){.head h1{font-size:22px}.bar img{display:none}}
.tl{display:flex;overflow-x:auto;padding:4px 0 6px}
.tl-i{flex:1 0 118px;position:relative;padding-top:22px;text-align:center;font-size:13px;line-height:1.3;color:var(--txt2)}
.tl-i::before{content:"";position:absolute;top:7px;left:0;right:0;height:3px;background:var(--line)}
.tl-i:first-child::before{left:50%}.tl-i:last-child::before{right:50%}
.tl-i .dot{position:absolute;top:0;left:50%;margin-left:-8px;width:17px;height:17px;border-radius:50%;background:var(--bleu);border:3px solid var(--bg)}
.tl-i.email .dot{background:var(--vert)}.tl-i.end .dot{background:#9FB3C4}
.tl-i b{display:block;color:var(--txt);font-family:Outfit,sans-serif;font-size:15px}
.step-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.num{width:30px;height:30px;border-radius:50%;background:var(--marine);color:#fff;font:700 14px Outfit,sans-serif;display:flex;align-items:center;justify-content:center;flex:none}
.step-name{font-weight:700;font-size:17px}
.branch{display:flex;gap:8px 10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-radius:10px;background:var(--bg2);margin-bottom:8px;border-left:4px solid var(--line);font-size:15px}
.branch .when{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;min-width:128px;color:var(--txt2)}
.branch.no{border-color:#9FB3C4}.branch.yes{border-color:var(--vert)}.branch.skip{border-color:var(--warn)}.branch.reply{border-color:var(--bleu)}
.branch select{width:auto;min-width:200px;flex:1 1 200px}.branch input.days{width:76px;text-align:center}
.tpls{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;flex:1}
button:disabled{opacity:.4;cursor:default}
.tpls{flex:1 1 100%;min-width:0}.tpls>div{min-width:0}.branch .tpls select{min-width:0;width:100%;flex:none}
.branch .when{flex:0 0 100%}
@media(min-width:700px){.branch .when{flex:0 0 140px}.tpls{flex:1 1 300px}}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.kpi small{display:block;color:var(--txt2);font-size:13px;font-weight:600;line-height:1.3}
.kpi b{display:block;font:600 30px/1.15 Outfit,sans-serif;margin:2px 0}
.kpi span{color:var(--txt2);font-size:13px}.kpi.hl{background:var(--marine);border-color:var(--marine)}
.kpi.hl small,.kpi.hl span{color:#B8CBDB}.kpi.hl b{color:#fff}.kpi b.dim{color:#9FB3C4}
.cols{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:start}
@media(max-width:760px){.cols{grid-template-columns:minmax(0,1fr)}}
.panel h3 .sub{font:600 13px Manrope,sans-serif;float:right}
.act{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--bg2);min-height:56px}
.act:first-of-type{border:0}.act .ico{width:40px;height:40px;border-radius:10px;background:#DCEBF6;color:var(--bleu-h);display:flex;align-items:center;justify-content:center;font:700 16px Outfit,sans-serif;flex:none}
.act .ico.email{background:#E5F2E3;color:var(--vert)}
.act .grow b{display:block}.act .grow small{color:var(--txt2)}
.meter{height:8px;border-radius:4px;background:var(--bg2);overflow:hidden;margin-top:5px}.meter i{display:block;height:100%;background:var(--bleu)}
.next{display:flex;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--bg2);font-size:15px}
.next:first-of-type{border:0}.next .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar{display:flex;align-items:center;gap:10px;margin:7px 0;font-size:14px}
.hbar .lab{flex:0 0 118px;color:var(--txt2)}.hbar .track{flex:1;height:22px;border-radius:6px;background:var(--bg2);overflow:hidden}
.hbar .track i{display:block;height:100%;background:var(--bleu);min-width:0;border-radius:6px}
.hbar .n{flex:0 0 34px;text-align:right;font-weight:700}
.hbar.s-en_cours i{background:#6AA0CB}.hbar.s-echange i,.hbar.s-rdv i,.hbar.s-devis i{background:var(--vert)}.hbar.s-gagne i{background:var(--vert-c)}
.hbar.s-clos i,.hbar.s-pause i,.hbar.s-a_contacter i{background:#9FB3C4}
.days{display:flex;align-items:flex-end;gap:4px;height:120px;margin-top:6px}
.days div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:11px;color:var(--txt2);min-width:0}
.days i{display:block;width:100%;max-width:22px;background:var(--bleu);border-radius:4px 4px 0 0;min-height:2px}
.days div.t i{background:var(--vert)}.days div.z i{background:var(--line)}
.days span{margin-top:4px;white-space:nowrap}
.alert{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:10px 14px;font-weight:600;margin-top:12px;font-size:15px}
.big-btn{display:flex;width:100%;margin-top:12px}
.legend{display:flex;gap:14px;font-size:13px;color:var(--txt2);margin-top:8px;flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;background:var(--bleu)}.legend i.g{background:var(--vert)}
@media(min-width:700px){.dash-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tl-i .dot{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700}
.tl-i.done .dot{background:var(--vert)}.tl-i.reply .dot{background:var(--vert-c)}.tl-i.stop .dot{background:#B24A4A}
.tl-i.now .dot{background:var(--bleu);box-shadow:0 0 0 4px #DCEBF6}.tl-i.now b{color:var(--bleu-h)}
.tl-i.next .dot{background:#fff;border:3px solid #9FB3C4;box-sizing:border-box}
.tl-i.next{opacity:.85}.tl-i em{display:block;font-style:normal;font-size:12px;color:var(--vert);margin-top:2px}
.tl-i.done::before,.tl-i.reply::before{background:var(--vert)}
.panel h3 .sub{font-weight:600}
.tl-i.wait .dot{background:#fff;border:3px solid var(--bleu);box-sizing:border-box}.tl-i.wait em{color:var(--bleu-h)}
a.act{color:inherit;border-radius:10px;margin:0 -8px;padding-left:8px;padding-right:8px}
a.act:hover{background:var(--bg)}.act .chev{font-size:26px;color:var(--txt2);line-height:1}
.note-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px;line-height:1.5}
.note-edit summary{cursor:pointer;color:var(--bleu);font-size:14px;font-weight:600;min-height:36px;display:flex;align-items:center;list-style:none}
.note-edit summary::-webkit-details-marker{display:none}.note-edit textarea{margin-top:6px}
.subnav{display:flex;gap:6px;overflow-x:auto;margin:10px 0 12px;padding-bottom:2px}
.subnav a{padding:8px 14px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--txt2);font-weight:600;font-size:14px;white-space:nowrap;min-height:40px;display:flex;align-items:center;gap:6px}
.subnav a.on{background:var(--marine);border-color:var(--marine);color:#fff}.subnav a small{opacity:.7;font-weight:600}
.tscroll{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px}
table.tbl{border-collapse:collapse;width:100%;font-size:14px}
.tbl th{background:var(--bg2);color:var(--txt2);font-size:12px;letter-spacing:.04em;text-transform:uppercase;text-align:left;padding:9px 12px;white-space:nowrap}
.tbl td{padding:8px 12px;border-top:1px solid var(--bg2);vertical-align:middle}
.tbl td.r{text-align:right;font-variant-numeric:tabular-nums}
.tbl tr.bad td{background:var(--warn-bg)}.tbl td.empty{padding:30px}
.tbl td input,.tbl td select{min-height:38px;padding:6px 9px;font-size:14px}
.chev{font-size:26px;color:var(--txt2);line-height:1}
.panel .grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
a.kpi{color:inherit;display:block}
.crumbs{margin:-6px -16px 4px;padding:0 10px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.crumbs::-webkit-scrollbar{display:none}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;width:max-content;min-width:100%}
.crumbs li{display:flex;align-items:center;flex:none}
.crumbs li+li::before{content:"›";color:var(--txt2);font-size:20px;line-height:1;padding:0 2px}
.crumbs a,.crumbs span{display:flex;align-items:center;min-height:44px;padding:0 10px;border-radius:10px;font-size:15px;font-weight:600;white-space:nowrap}
.crumbs a{color:var(--bleu)}.crumbs a:active{background:var(--bg2)}
.crumbs span{color:var(--txt);max-width:60vw;overflow:hidden;text-overflow:ellipsis;display:block;line-height:44px;padding:0 10px}
a.kpi{position:relative;transition:background .15s,border-color .15s}
a.kpi::after{content:"›";position:absolute;right:12px;top:10px;font-size:22px;line-height:1;color:var(--txt2);opacity:.6}
a.kpi.hl::after{color:#B8CBDB}
a.kpi:hover{border-color:var(--bleu)}a.kpi:active{background:var(--bg2)}a.kpi.hl:active{background:#0E2A47}
.logs{margin-bottom:8px}
.log{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:8px;color:var(--txt);min-height:60px}
a.log:hover{border-color:var(--bleu)}a.log:active{background:var(--bg2)}
.log time{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:84px;color:var(--txt2);font-variant-numeric:tabular-nums;line-height:1.2}
.log time b{font:600 15px Outfit,sans-serif;color:var(--txt);display:block}.log time span{font-size:12px;font-weight:600}
.log .grow{min-width:0}.log .grow b{display:block;overflow-wrap:anywhere}
.log .grow small{display:block;color:var(--txt2);font-size:14px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill-cat{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;font:700 13px Outfit,sans-serif;background:var(--bg2);color:var(--txt2)}
.pill-cat.c-envoi{background:#DCEBF6;color:var(--bleu-h)}.pill-cat.c-reponse{background:#E5F2E3;color:var(--vert)}
.pill-cat.c-entreprise{background:#E9E5F5;color:#5B4B9A}.pill-cat.c-note{background:#FFF3E0;color:var(--warn)}
.pill-cat.c-config{background:var(--bg2);color:var(--marine)}.pill-cat.c-cee{background:var(--marine);color:#fff;font-size:11px}
.ico-s{min-width:38px;height:34px;border-radius:9px;background:#DCEBF6;color:var(--bleu-h);display:flex;align-items:center;justify-content:center;font:700 12px Outfit,sans-serif;flex:none;padding:0 6px}
.lead{color:var(--txt2);margin:4px 0 6px}
@media(max-width:560px){.log{padding:10px 12px;gap:10px}.log time{min-width:76px}}
.back-journal{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:20;min-height:48px;padding:0 20px;border-radius:24px;background:var(--marine);color:#fff;font-weight:700;display:flex;align-items:center;gap:6px;box-shadow:0 6px 20px rgba(14,42,71,.3)}
.back-journal:active{background:#0E2A47}

/* Études CEE : écran de saisie */
.chip{background:var(--bg2);color:var(--marine);border-radius:99px;padding:4px 10px;font:700 13px Outfit,sans-serif;white-space:nowrap}
.etude .card{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px;background:#FAFCFD}
.etude .cardhead{display:flex;gap:8px;align-items:flex-end}
.etude .grow{flex:1;min-width:0}
.etude h4,.result h4{margin:12px 0 6px;font:700 12px Outfit,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--txt2)}
.etude .line{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:8px}
.etude .line>div{flex:1 1 130px;min-width:0}
.etude .line>div.chk{flex:0 0 auto}
.etude .grid{align-items:end}
.etude .grid .chk{grid-column:1/-1}
.etude .chk label{display:flex;gap:8px;align-items:center;min-height:44px;text-transform:none;letter-spacing:0;font-size:14px}
.etude .chk input,.etude .opt input{width:22px;height:22px;flex:none}
.etude .del{width:44px;min-height:44px;padding:0;font-size:22px;line-height:1}
.etude .ops{display:flex;flex-wrap:wrap;gap:6px 18px}
.etude .opt{display:flex;gap:8px;align-items:center;min-height:44px;text-transform:none;letter-spacing:0;font-size:14px}
.etude .sticky{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding:14px 0 10px;margin-top:0}
.result .total{font:600 15px Manrope,sans-serif;color:var(--txt2);margin-bottom:12px}
.result .total b{font:700 36px Outfit,sans-serif;color:var(--marine);margin-right:6px}
.result .total small{display:block;font-size:13px}
.result .vals b{display:block;font:700 20px Outfit,sans-serif;color:var(--marine)}
.etude .card.retenu{border-color:var(--vert);background:#F1F8EF}
.chip.ok-chip{background:#E5F2E3;color:var(--vert)}
.etude .offre-calc{margin:10px 0 0;font-size:14px}
.etude .jalons{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.etude .jalons li{font-size:13px}

/* Aide des études CEE */
.head .grow{flex:1}
.aide-btn{width:44px;height:44px;border-radius:50%;padding:0;font:700 20px Outfit,sans-serif;background:#fff;color:var(--bleu);border:2px solid var(--bleu);flex:none}
.aide{width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 32px);padding:0;border:0;border-radius:16px;box-shadow:0 20px 60px rgba(14,42,71,.35);color:var(--txt)}
.aide::backdrop{background:rgba(14,42,71,.5)}
.aide-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.aide-head h2{font-size:18px}
.aide-head button{width:44px;height:44px;padding:0;font-size:24px;line-height:1}
.aide-body{padding:6px 18px 18px;overflow-y:auto;max-height:calc(100vh - 110px);font-size:14.5px;line-height:1.5}
.aide-body h3{margin:16px 0 6px;font-size:15px;color:var(--vert)}
.aide-body ol,.aide-body ul{margin:0;padding-left:22px}
.aide-body li{margin-bottom:6px}
.head .aide-btn{align-self:center}
.etude a.absent{margin-left:6px;font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;white-space:nowrap}
#refresh-msg{margin-left:6px}
.etude .grid .wide{grid-column:1/-1}
.etude .naf-lib{display:block;margin-top:4px;font-size:12.5px;color:var(--txt2)}
.etude .imgbox img{display:block;max-width:100%;max-height:320px;border-radius:10px;border:1px solid var(--line);margin-bottom:8px}
.etude .grid.top{align-items:start}
.etude [hidden]{display:none !important}
.etude .sg{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;align-items:start}
.etude .sg h4{margin:0}
.etude .sg .cL{grid-column:1}.etude .sg .cR{grid-column:2}
.etude .sg .r0{grid-row:1}.etude .sg .r1{grid-row:2}.etude .sg .r2{grid-row:3}.etude .sg .r3{grid-row:4}
.etude .sg .r4{grid-row:5}.etude .sg .r5{grid-row:6}.etude .sg .r6{grid-row:7}
@media (max-width:700px){.etude .sg{grid-template-columns:1fr}.etude .sg .cL,.etude .sg .cR{grid-column:1;grid-row:auto}.etude .sg .cR.r0{margin-top:8px}}
.etude .pieces{list-style:none;margin:6px 0;padding:0}
.etude .pieces li{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);min-height:44px}
.etude .pieces li a{flex:1;min-width:0;overflow-wrap:anywhere;font-weight:600}
.etude textarea{width:100%}

/* Études CEE : bandeau fixe et onglets */
.tabpane{display:none}.tabpane.on{display:block}
.etude-bar{position:sticky;top:var(--hdr,56px);z-index:4;background:var(--bg);margin:0 -4px 14px;padding:8px 4px 0;border-bottom:1px solid var(--line)}
.etude-bar .bar-fields{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.etude-bar .bar-fields>div{flex:1 1 140px;min-width:0}
.etude-bar .total-chip{flex:0 0 auto;min-height:44px;padding:0 16px;border-radius:22px;background:var(--bg2);color:var(--marine);font:600 14px Manrope,sans-serif}
.etude-bar .total-chip b{font:700 18px Outfit,sans-serif}
.tabs{display:flex;gap:4px;overflow-x:auto;margin-top:8px;-webkit-overflow-scrolling:touch}
.tabs button{flex:0 0 auto;min-height:44px;padding:0 16px;border-radius:12px 12px 0 0;background:transparent;color:var(--txt2);border:1px solid transparent;border-bottom:0;font:600 14px Manrope,sans-serif;white-space:nowrap}
.tabs button.on{background:#fff;color:var(--marine);border-color:var(--line);box-shadow:inset 0 3px 0 var(--vert)}
@media (max-width:700px){.etude-bar{position:static;border-bottom:0}.tabs{position:sticky;top:var(--hdr,56px);z-index:4;background:var(--bg);padding-top:4px}}
.bilan-in input{min-width:78px;width:100%}
.bilan-in input.nom{min-width:130px}
.bilan-in td{padding:4px}
.bilan-in .act{white-space:nowrap;width:1%}
.bilan-in .act button{width:40px;min-height:40px;padding:0;font-size:18px}
.result tr.tot td{border-top:2px solid var(--marine);background:var(--bg2)}
.etude details.panel summary{cursor:pointer;min-height:32px}

/* Bilan : tableaux ajustés à la largeur, sans défilement horizontal */
.tscroll.fit{overflow:visible}
table.fit{table-layout:fixed;width:100%}
table.fit th,table.fit td{padding:6px 5px;overflow-wrap:anywhere;word-break:normal;hyphens:auto}
table.fit th{font-size:11.5px;line-height:1.25;vertical-align:bottom}
table.fit th.c-nom,table.fit td.c-nom{width:17%}
table.fit th.c-act,table.fit td.c-act{width:84px}
.bilan-in input{min-width:0;width:100%;padding:8px 6px;font-size:14px}
.bilan-in input.nom{min-width:0}
.bilan-in .act{white-space:nowrap;width:84px}
.bilan-in .act button{width:36px;min-height:40px;padding:0;font-size:17px}
table.res td,table.res th{font-size:13px}
@media (max-width:900px){
  table.stack thead{display:none}
  table.stack,table.stack tbody{display:block}
  table.stack tr{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 10px;padding:10px 4px;border-bottom:1px solid var(--line)}
  table.stack td{display:block;padding:0;border:0;text-align:left}
  table.stack td.r{text-align:left}
  table.stack td::before{content:attr(data-label);display:block;font:600 11.5px Manrope,sans-serif;color:var(--txt2);margin-bottom:2px}
  table.stack td.c-nom,table.stack td.act{grid-column:1/-1;width:auto}
  table.stack td:empty{display:none}
}
/* Hypothèses de calcul par catégorie */
.hyp{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.hcat{border:1px solid var(--line);border-radius:12px;padding:12px;background:#FAFCFD}
.hcat h4{margin:0 0 8px}
table.pn{width:100%;border-collapse:collapse}
table.pn th,table.pn td{padding:4px 6px 4px 0;text-align:left;vertical-align:middle;font-size:13px}
table.pn thead th{font:600 11.5px Manrope,sans-serif;color:var(--txt2)}
table.pn tbody th{font-weight:600;color:var(--txt);width:46%}
table.pn small{font-weight:500;color:var(--txt2)}
table.pn input{width:100%;min-width:0;padding:8px 6px}
table.pn .na{color:var(--txt2);font-size:12px}
table.fit th{white-space:normal;text-transform:none;letter-spacing:0;overflow-wrap:normal;word-break:normal;hyphens:manual}
table.fit td{white-space:normal}
.result h4{margin:14px 0 6px}
.etude .somme{margin:6px 0 10px;padding:8px 12px;border-radius:10px;background:var(--bg2);font-size:13.5px;color:var(--txt)}
.etude .somme:empty{display:none}
.etude .somme.total{background:#E5F2E3;margin-top:12px}
