

:root{
  --azur:#175b96;
  --azur-fonce:#114875;
  --azur-clair:#eaf2f9;
  --rouge:#711f27;
  --rouge-clair:#f7eaec;
  --blanc:#ffffff;
  --encre:#1a3349;
  --doux:#74879a;
  --bordure:#dce4eb;
  --fond:#f2f4f7;
  --fond2:#f8fafc;
  --vert:#27815f;
  --vertF:#e8f5ef;
  --orange:#b77717;
  --orangeF:#fff3df;
  --rougeF:#fae9eb;
  --ombre:0 18px 50px rgba(29,55,79,.09);
  --ombre-carte:0 7px 20px rgba(29,55,79,.055);
}
*{box-sizing:border-box}
html{background:var(--fond)}
body{
  margin:0;
  padding:30px 18px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--fond);
  color:var(--encre);
}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app{
  width:min(1180px,100%);
  min-height:calc(100vh - 60px);
  margin:0 auto;
  background:var(--blanc);
  border:1px solid #e4e9ee;
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--ombre);
}
.header{
  position:relative;
  background:var(--blanc);
  color:var(--encre);
  padding:24px 28px 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:118px;
  border-bottom:1px solid #edf1f4;
}
.brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  text-align:center;
}
.logo{
  background:transparent;
  color:var(--azur);
  font-size:17px;
  font-weight:700;
  padding:0;
  letter-spacing:.35px;
}
.logo span{color:var(--rouge)}
.kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--azur-clair);
  color:var(--azur);
  border-radius:999px;
  padding:5px 10px;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.8px;
  opacity:1;
  order:3;
}
.title{
  color:var(--encre);
  font-size:21px;
  font-weight:650;
  text-transform:none;
  letter-spacing:-.2px;
}
.sub{
  font-size:11px;
  color:var(--doux);
  font-weight:500;
  margin-top:-2px;
}
.headerActions{
  position:absolute;
  right:24px;
  top:24px;
  display:flex;
  gap:8px;
  align-items:center;
}
.headerBtn{
  border:1px solid var(--bordure);
  background:#fff;
  color:var(--azur);
  padding:8px 11px;
  border-radius:10px;
  font-size:11px;
  font-weight:600;
  transition:.15s ease;
}
.headerBtn:hover{background:var(--azur-clair);border-color:#bed2e4}
.redbar{height:3px;background:var(--rouge)}
.content{padding:28px 30px 34px;background:var(--fond2)}
.dashboardTop{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-bottom:20px;
}
.pageHeading h1{
  margin:0;
  color:var(--encre);
  font-size:24px;
  font-weight:650;
  letter-spacing:-.35px;
}
.pageHeading p{
  margin:6px 0 0;
  color:var(--doux);
  font-size:13px;
}
.mainAction{
  border:0;
  min-width:215px;
  padding:14px 18px;
  border-radius:13px;
  background:var(--azur);
  color:#fff;
  box-shadow:0 7px 15px rgba(23,91,150,.17);
  font-size:13px;
  font-weight:600;
}
.mainAction:hover{background:var(--azur-fonce)}
.gridStats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-bottom:18px;
}
.stat{
  position:relative;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:16px;
  padding:17px 18px 15px;
  box-shadow:var(--ombre-carte);
}
.stat:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:3px;
  background:var(--azur);
}
.stat:last-child:before{background:var(--rouge)}
.stat .n{
  font-size:27px;
  line-height:1;
  font-weight:650;
  color:var(--encre);
}
.stat .l{
  font-size:10px;
  color:var(--doux);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-top:7px
}
.toolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  padding:14px;
  margin-bottom:16px;
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:15px;
  box-shadow:var(--ombre-carte);
}
.search{flex:1;min-width:260px}
input,select,textarea{
  width:100%;
  border:1px solid var(--bordure);
  border-radius:10px;
  padding:11px 12px;
  color:var(--encre);
  background:#fff;
  outline:none;
  font-size:13px;
}
input::placeholder,textarea::placeholder{color:#a4b0bb}
input:focus,select:focus,textarea:focus{
  border-color:#91b5d3;
  box-shadow:0 0 0 3px rgba(23,91,150,.08);
}
textarea{min-height:78px;resize:vertical}
.btn{
  border:none;
  border-radius:10px;
  padding:10px 14px;
  font-weight:600;
  font-size:12px;
}
.btnPrimary{background:var(--azur);color:#fff}
.btnBlue{background:var(--azur);color:#fff}
.btnLight{background:#fff;color:var(--azur);border:1px solid var(--bordure)}
.btnDanger{background:var(--rougeF);color:var(--rouge);border:1px solid #efcbd0}
.btnFull{width:100%}
.card{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:15px;
  padding:16px 17px;
  margin-bottom:10px;
  box-shadow:var(--ombre-carte);
}
.sectionTitle{
  color:var(--encre);
  font-size:16px;
  font-weight:650;
}
.filet{
  width:34px;
  height:2px;
  background:var(--rouge);
  border-radius:3px;
  margin:7px 0 14px;
}
.company{
  background:transparent;
  padding:10px 2px 8px;
  margin:17px 0 4px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--bordure);
}
.company .name{
  font-weight:650;
  color:var(--azur);
  text-transform:none;
  font-size:14px;
}
.company .count{
  background:var(--azur-clair);
  border-radius:999px;
  padding:4px 8px;
  font-size:10px;
  color:var(--azur);
  font-weight:600
}
.person{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:11px;
  align-items:start;
}
.dot{
  width:10px;
  height:10px;
  border-radius:50%;
  margin-top:5px;
  box-shadow:0 0 0 4px rgba(116,135,154,.08);
}
.personName{
  font-weight:650;
  color:var(--encre);
  font-size:14px
}
.meta{font-size:11px;color:var(--doux);margin-top:3px}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.tag{
  padding:4px 8px;
  border-radius:999px;
  font-size:9.5px;
  font-weight:600;
}
.ok{background:var(--vertF);color:var(--vert)}
.warn{background:var(--orangeF);color:var(--orange)}
.bad{background:var(--rougeF);color:var(--rouge)}
.muted{background:#f0f3f6;color:var(--doux)}
.actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.linkBtn{
  border:none;
  background:none;
  padding:0;
  font-size:11px;
  font-weight:600;
  color:var(--azur)
}
.linkBtn:hover{text-decoration:underline}
.linkBtn.danger{color:var(--rouge)}
.legend{
  display:flex;
  gap:13px;
  flex-wrap:wrap;
  color:var(--doux);
  font-size:10px;
  font-weight:500;
  margin:0 2px 13px;
}
.legend span{display:flex;align-items:center;gap:5px}
.puce{width:8px;height:8px;border-radius:50%;display:inline-block}
.empty{
  text-align:center;
  color:var(--doux);
  padding:32px 10px;
  background:#fff;
  border:1px dashed var(--bordure);
  border-radius:15px;
}
.modal{
  position:fixed;
  inset:0;
  background:rgba(17,40,61,.52);
  backdrop-filter:blur(3px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:100
}
.modalBox{
  background:#fff;
  width:min(780px,100%);
  max-height:92vh;
  overflow:auto;
  border-radius:20px;
  box-shadow:0 25px 70px rgba(0,0,0,.22)
}
.modalHead{
  position:sticky;
  top:0;
  z-index:3;
  background:#fff;
  color:var(--encre);
  padding:18px 20px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border-bottom:1px solid var(--bordure)
}
.modalHead b{font-size:16px;font-weight:650;color:var(--encre)}
.close{
  border:1px solid var(--bordure);
  background:#fff;
  color:var(--doux);
  width:32px;
  height:32px;
  border-radius:9px;
  font-size:18px
}
.modalBody{padding:20px 22px 23px}
.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin-bottom:17px
}
.step{
  background:#f2f5f8;
  color:var(--doux);
  padding:8px 6px;
  border-radius:9px;
  font-size:10px;
  font-weight:600;
  text-align:center;
  border:1px solid transparent
}
.step.on{
  background:var(--azur-clair);
  color:var(--azur);
  border-color:#c8dbea
}
.ssTitle{
  background:transparent;
  color:var(--azur);
  padding:0 0 7px;
  border-radius:0;
  margin:17px 0 10px;
  border-bottom:1px solid var(--bordure);
  font-size:11px;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.4px
}
.row{display:flex;gap:10px}
.row>*{flex:1}
.field{margin-bottom:12px}
.label{
  display:block;
  font-size:9.5px;
  font-weight:600;
  color:var(--doux);
  text-transform:uppercase;
  letter-spacing:.45px;
  margin-bottom:5px
}
.check{
  display:flex;
  align-items:center;
  gap:9px;
  padding:7px 0;
  cursor:pointer
}
.box{
  width:20px;
  height:20px;
  border:1px solid var(--bordure);
  border-radius:5px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-weight:600;
  flex:none
}
.check.on .box{background:var(--azur);border-color:var(--azur)}
.check.on .checkText{font-weight:600}
.checkText{font-size:12.5px}
.segment{
  display:flex;
  border:1px solid var(--bordure);
  border-radius:10px;
  overflow:hidden;
  background:#f7f9fb
}
.segment button{
  flex:1;
  border:none;
  background:transparent;
  color:var(--doux);
  padding:10px;
  font-weight:600;
  font-size:11px
}
.segment button.on{background:var(--azur);color:#fff}
.sig{
  border:1px dashed #b9c7d3;
  border-radius:10px;
  background:#fafbfd
}
.sig canvas{
  display:block;
  width:100%;
  height:105px;
  border-radius:10px;
  touch-action:none;
  cursor:crosshair
}
.note{font-size:10.5px;color:var(--doux)}
.doc{
  border:1px solid var(--bordure);
  border-radius:12px;
  padding:12px 13px;
  margin-bottom:9px;
  background:#fff
}
.docTop{display:flex;justify-content:space-between;gap:10px;align-items:center}
.docName{font-weight:600;font-size:13px}
.docStatus{font-size:10px;font-weight:600;padding:4px 8px;border-radius:999px}
.toast{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  background:var(--azur);
  color:#fff;
  padding:10px 17px;
  border-radius:10px;
  font-weight:600;
  font-size:12px;
  box-shadow:0 8px 25px rgba(0,0,0,.18);
  z-index:200
}
.toast.err{background:var(--rouge)}
.smallActions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}
.alert{
  padding:11px 13px;
  border-radius:12px;
  margin-bottom:14px;
  font-size:11px;
  font-weight:550;
  border:1px solid transparent
}
.alert.warn{background:var(--orangeF);color:var(--orange);border-color:#f1ddba}
.alert.bad{background:var(--rougeF);color:var(--rouge);border-color:#eccbd0}
.footerTools{
  position:fixed;
  right:24px;
  bottom:22px;
  display:flex;
  gap:8px;
  z-index:20
}
.floatingTool{
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid var(--bordure);
  background:#fff;
  color:var(--azur);
  box-shadow:0 7px 18px rgba(29,55,79,.12);
  font-size:16px
}
@media(max-width:820px){
  body{padding:0}
  .app{min-height:100vh;border-radius:0;border-left:0;border-right:0}
  .header{padding:22px 18px 18px}
  .headerActions{position:static;margin-top:7px}
  .header{flex-direction:column}
  .dashboardTop{align-items:stretch;flex-direction:column}
  .mainAction{width:100%}
  .gridStats{grid-template-columns:repeat(2,1fr)}
  .row{flex-direction:column;gap:0}
  .person{grid-template-columns:auto 1fr}
  .actions{grid-column:2;justify-content:flex-start;margin-top:7px}
  .content{padding:20px 14px 28px}
  .footerTools{right:14px;bottom:14px}
}
@media(max-width:460px){
  .gridStats{grid-template-columns:1fr 1fr}
  .stat{padding:14px}
  .stat .n{font-size:23px}
}
@media print{
  body{background:#fff;padding:0}
  .app{box-shadow:none;max-width:none;border:0;border-radius:0}
  .headerActions,.toolbar,.actions,.legend,.noPrint,.footerTools,.mainAction{display:none!important}
  .content{padding:0;background:#fff}
  .card{box-shadow:none;break-inside:avoid}
}


/* ===== V3 — Accueil + menu latéral + registre tableau ===== */
body{
  padding:0;
  background:#edf1f5;
}
.app{
  width:100%;
  max-width:none;
  min-height:100vh;
  margin:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:#f5f7f9;
}
.shell{
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  min-height:100vh;
}
.sidebar{
  position:sticky;
  top:0;
  height:100vh;
  background:#fff;
  border-right:1px solid var(--bordure);
  padding:24px 16px 18px;
  display:flex;
  flex-direction:column;
  z-index:20;
}
.sideBrand{
  padding:3px 10px 22px;
  border-bottom:1px solid #edf1f4;
  margin-bottom:18px;
}
.sideBrand .logo{
  font-size:16px;
  text-align:left;
}
.sideProject{
  margin-top:8px;
  color:var(--doux);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.55px;
}
.sideNav{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.navBtn{
  width:100%;
  border:0;
  background:transparent;
  color:#607486;
  border-radius:11px;
  padding:11px 12px;
  display:flex;
  align-items:center;
  gap:10px;
  text-align:left;
  font-size:12px;
  font-weight:600;
}
.navBtn:hover{background:#f4f7f9;color:var(--azur)}
.navBtn.on{
  background:var(--azur-clair);
  color:var(--azur);
}
.navIcon{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:#f2f5f8;
  font-size:13px;
  flex:none;
}
.navBtn.on .navIcon{background:#fff}
.sideSpacer{flex:1}
.sideFooter{
  border-top:1px solid #edf1f4;
  padding:15px 8px 0;
  color:var(--doux);
  font-size:10px;
  line-height:1.5;
}
.workspace{
  min-width:0;
  padding:28px 32px 38px;
}
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:25px;
}
.topbarTitle h1{
  margin:0;
  font-size:24px;
  font-weight:650;
  letter-spacing:-.35px;
  color:var(--encre);
}
.topbarTitle p{
  margin:5px 0 0;
  font-size:12px;
  color:var(--doux);
}
.topActions{
  display:flex;
  gap:8px;
}
.ghostBtn{
  border:1px solid var(--bordure);
  background:#fff;
  color:var(--azur);
  border-radius:10px;
  padding:9px 12px;
  font-size:11px;
  font-weight:600;
}
.homeStats{
  display:grid;
  grid-template-columns:repeat(6,minmax(110px,1fr));
  gap:12px;
}
.homeStats .stat{
  min-height:90px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.homeStats .stat:nth-child(4):before{background:var(--rouge)}
.homeStats .stat:nth-child(5):before{background:var(--orange)}
.homeStats .stat:nth-child(6):before{background:var(--rouge)}
.homeCenter{
  min-height:325px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:15px;
  padding:28px 0 20px;
}
.addWorkerSquare{
  width:185px;
  height:185px;
  border:0;
  border-radius:25px;
  background:var(--azur);
  color:#fff;
  box-shadow:0 16px 35px rgba(23,91,150,.20);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:13px;
  transition:transform .14s ease, background .14s ease;
}
.addWorkerSquare:hover{
  transform:translateY(-3px);
  background:var(--azur-fonce);
}
.addPlus{
  width:58px;
  height:58px;
  border-radius:17px;
  background:rgba(255,255,255,.14);
  display:grid;
  place-items:center;
  font-size:38px;
  font-weight:300;
  line-height:1;
}
.addWorkerSquare .addTitle{
  font-size:15px;
  font-weight:650;
}
.addWorkerSquare .addSub{
  font-size:10px;
  opacity:.75;
  font-weight:500;
}
.registerCta{
  min-width:260px;
  border:1px solid var(--bordure);
  background:#fff;
  color:var(--azur);
  padding:12px 18px;
  border-radius:12px;
  font-size:12px;
  font-weight:650;
  box-shadow:var(--ombre-carte);
}
.companyRecap{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:17px;
  overflow:hidden;
  box-shadow:var(--ombre-carte);
}
.companyRecapHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:16px 18px;
  border-bottom:1px solid var(--bordure);
}
.companyRecapHead h2{
  margin:0;
  font-size:15px;
  font-weight:650;
}
.companyRecapHead span{
  font-size:10px;
  color:var(--doux);
}
.companyLine{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  padding:13px 18px;
  border-bottom:1px solid #edf1f4;
}
.companyLine:last-child{border-bottom:0}
.companyLineName{
  font-size:12.5px;
  font-weight:600;
  color:var(--encre);
}
.companyLineMeta{
  font-size:10px;
  color:var(--doux);
  margin-top:3px;
}
.companyCount{
  min-width:42px;
  text-align:center;
  padding:6px 9px;
  border-radius:999px;
  background:var(--azur-clair);
  color:var(--azur);
  font-size:11px;
  font-weight:650;
}
.registerPanel{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:17px;
  overflow:hidden;
  box-shadow:var(--ombre-carte);
}
.registerToolbar{
  display:flex;
  gap:10px;
  align-items:center;
  padding:14px;
  border-bottom:1px solid var(--bordure);
  background:#fff;
}
.registerToolbar .search{flex:1}
.tableWrap{
  overflow:auto;
}
.registerTable{
  width:100%;
  border-collapse:collapse;
  min-width:940px;
}
.registerTable th{
  position:sticky;
  top:0;
  background:#f6f8fa;
  color:#708395;
  text-align:left;
  font-size:9.5px;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.45px;
  padding:11px 13px;
  border-bottom:1px solid var(--bordure);
  white-space:nowrap;
}
.registerTable td{
  padding:12px 13px;
  border-bottom:1px solid #edf1f4;
  font-size:11.5px;
  vertical-align:middle;
}
.registerTable tbody tr:hover{background:#fbfcfd}
.registerTable tbody tr:last-child td{border-bottom:0}
.tableCompany{
  font-weight:650;
  color:var(--azur);
}
.tablePerson{
  font-weight:650;
  color:var(--encre);
}
.tableRole{color:var(--doux)}
.tableStatus{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border-radius:999px;
  font-size:9.5px;
  font-weight:650;
  white-space:nowrap;
}
.tableDot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:currentColor;
}
.tableActions{
  display:flex;
  gap:8px;
  align-items:center;
  white-space:nowrap;
}
.tableLink{
  border:0;
  background:none;
  color:var(--azur);
  padding:0;
  font-size:10px;
  font-weight:600;
}
.tableLink.danger{color:var(--rouge)}
.registerSummary{
  padding:10px 14px;
  background:#fafbfd;
  border-top:1px solid var(--bordure);
  color:var(--doux);
  font-size:10px;
}
.alertStrip{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin:14px 0 0;
}
.alertChip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius:10px;
  font-size:10px;
  font-weight:600;
}
.alertChip.expired{background:var(--rougeF);color:var(--rouge)}
.alertChip.soon{background:var(--orangeF);color:var(--orange)}
@media(max-width:1050px){
  .homeStats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
  .shell{display:block}
  .sidebar{
    position:sticky;
    height:auto;
    padding:10px 12px;
    border-right:0;
    border-bottom:1px solid var(--bordure);
  }
  .sideBrand{display:none}
  .sideNav{flex-direction:row;overflow:auto}
  .navBtn{
    width:auto;
    flex:none;
    padding:8px 10px;
  }
  .navIcon{display:none}
  .sideSpacer,.sideFooter{display:none}
  .workspace{padding:20px 14px 28px}
  .topbar{align-items:flex-start}
  .topActions{display:none}
  .homeStats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .topbarTitle h1{font-size:21px}
  .homeStats{grid-template-columns:1fr 1fr}
  .addWorkerSquare{width:160px;height:160px}
  .companyLine{padding:12px 14px}
}
@media print{
  .sidebar,.topActions,.homeCenter,.registerToolbar,.tableActions,.noPrint{display:none!important}
  .shell{display:block}
  .workspace{padding:0}
  .registerPanel{border:0;box-shadow:none}
}


/* ===== V4 — Dossier documentaire réel (IndexedDB) ===== */
.docHint{margin:8px 0 14px;padding:10px 12px;border-radius:11px;background:#f4f7fa;border:1px solid var(--bordure);color:var(--doux);font-size:10.5px;line-height:1.45}
.docGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}
.docFieldFull{grid-column:1/-1}
.docActionsRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.uploadLabel{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:8px 11px;border:1px solid var(--bordure);border-radius:9px;background:#fff;color:var(--azur);font-size:10.5px;font-weight:600;cursor:pointer}
.uploadLabel:hover{background:var(--azur-clair)}
.uploadLabel input{display:none}
.pieces{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.pieceRow{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8fafb;border:1px solid #e7edf2;border-radius:9px;padding:8px 9px}
.pieceInfo{min-width:0;display:flex;align-items:center;gap:8px}
.pieceIcon{width:28px;height:28px;border-radius:7px;background:var(--azur-clair);color:var(--azur);display:grid;place-items:center;font-size:11px;flex:none}
.pieceName{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px;font-size:10.5px;font-weight:600;color:var(--encre)}
.pieceMeta{font-size:9px;color:var(--doux);margin-top:2px}
.pieceBtns{display:flex;gap:7px;flex:none}
.miniBtn{border:0;background:none;padding:0;color:var(--azur);font-size:9.5px;font-weight:650}
.miniBtn.danger{color:var(--rouge)}
.naToggle{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--doux);cursor:pointer;user-select:none}
.naToggle input{width:auto}
.conditionalTag{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#f1f4f6;color:var(--doux);font-size:8.5px;font-weight:600;vertical-align:middle}
.statusType{display:inline-block;padding:4px 8px;border-radius:999px;background:#f1f4f6;color:#617485;font-size:9.5px;font-weight:600}
@media(max-width:620px){.docGrid{grid-template-columns:1fr}.docFieldFull{grid-column:auto}.pieceName{max-width:180px}}


/* ===== V5 — Accueil nouvel arrivant sans pop-up ===== */
.formWorkspace{
  width:min(1000px,100%);
  margin:0 auto;
}
.formBack{
  border:0;
  background:transparent;
  color:var(--azur);
  font-size:11px;
  font-weight:650;
  padding:0;
  margin-bottom:13px;
}
.onboardingHero{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:19px;
  overflow:hidden;
  box-shadow:var(--ombre-carte);
  margin-bottom:14px;
}
.onboardingHeroTop{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  padding:18px 20px;
}
.onboardingLogo{
  color:var(--azur);
  font-size:16px;
  font-weight:700;
}
.onboardingLogo span{color:var(--rouge)}
.onboardingMeta{
  color:var(--doux);
  font-size:10px;
  margin-top:4px;
}
.onboardingImportant{
  max-width:310px;
  border:1px solid #cfaeb2;
  color:var(--rouge);
  padding:9px 12px;
  border-radius:9px;
  font-size:9.5px;
  line-height:1.35;
  text-align:center;
  font-weight:600;
}
.onboardingBand{
  padding:16px 20px;
  background:var(--rouge);
  color:#fff;
  text-align:center;
}
.onboardingBand .big{
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px;
  font-weight:700;
  letter-spacing:.3px;
}
.onboardingBand .small{
  margin-top:3px;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.5px;
}
.formSteps{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:7px;
  margin:14px 0;
}
.formStep{
  border:1px solid var(--bordure);
  background:#fff;
  color:var(--doux);
  padding:10px 8px;
  border-radius:10px;
  text-align:center;
  font-size:9.5px;
  font-weight:650;
}
.formStep.on{
  background:var(--azur);
  color:#fff;
  border-color:var(--azur);
}
.formStep.done{
  background:var(--vertF);
  color:var(--vert);
  border-color:#cbe5d9;
}
.formSheet{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:18px;
  padding:20px;
  box-shadow:var(--ombre-carte);
}
.formSheetTitle{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.formSheetTitle h2{
  margin:0;
  color:var(--encre);
  font-size:19px;
  font-weight:650;
}
.formSheetTitle p{
  margin:5px 0 0;
  color:var(--doux);
  font-size:10.5px;
  line-height:1.45;
}
.paperFields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.fieldLine{
  border-bottom:1px dashed #81909d;
  padding-bottom:5px;
}
.readOnlyValue{
  min-height:28px;
  padding:7px 2px 2px;
  font-size:13px;
  font-weight:600;
  color:var(--encre);
}
.formNav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:20px;
  padding-top:15px;
  border-top:1px solid var(--bordure);
}
.formNavRight{display:flex;gap:8px;margin-left:auto}
.introBox{
  background:#f7f9fb;
  border:1px solid var(--bordure);
  border-radius:13px;
  padding:13px 14px;
  margin-bottom:14px;
}
.introBox h3{
  margin:0 0 6px;
  color:var(--azur);
  font-size:13px;
  font-weight:650;
}
.introBox p{
  margin:0;
  font-size:10.5px;
  line-height:1.5;
  color:var(--doux);
}
.bookletGrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
.bookletCard{
  border:1px solid var(--bordure);
  border-radius:14px;
  padding:14px;
  background:#fff;
}
.bookletCard h3{
  margin:0 0 8px;
  color:var(--azur);
  font-family:Georgia,"Times New Roman",serif;
  font-size:15px;
}
.bookletCard .redLine{
  height:3px;
  width:54px;
  background:var(--rouge);
  margin:0 0 9px;
}
.bookletCard ul{
  margin:0;
  padding-left:17px;
  color:var(--encre);
  font-size:10.5px;
  line-height:1.5;
}
.ackBox{
  margin-top:14px;
  padding:13px;
  border:1px solid #c9dbea;
  background:var(--azur-clair);
  border-radius:12px;
}
.ackLabel{
  display:flex;
  align-items:flex-start;
  gap:9px;
  cursor:pointer;
  font-size:11px;
  line-height:1.45;
  color:var(--azur-fonce);
  font-weight:600;
}
.ackLabel input{width:auto;margin-top:2px}
.quizIntro{
  margin-bottom:14px;
  color:var(--doux);
  font-size:10.5px;
  line-height:1.45;
}
.quizQuestion{
  border:1px solid var(--bordure);
  border-radius:14px;
  padding:14px;
  margin-bottom:10px;
  background:#fff;
}
.quizQuestion h3{
  margin:0 0 9px;
  color:var(--encre);
  font-size:12px;
  font-weight:650;
  line-height:1.4;
}
.quizOption{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:6px 7px;
  border-radius:8px;
  cursor:pointer;
  color:#405668;
  font-size:10.5px;
}
.quizOption:hover{background:#f5f8fa}
.quizOption input{width:auto;margin-top:1px}
.quizBins{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin:8px 0;
}
.quizBin{
  border:1px solid var(--bordure);
  border-radius:10px;
  padding:9px;
  text-align:center;
  font-size:9.5px;
  font-weight:650;
}
.quizBin.a{background:#eef1f3}
.quizBin.b{background:#fff0d7}
.quizBin.c{background:#f1e5cf}
.quizResult{
  display:none;
  margin-top:12px;
  padding:11px 13px;
  border-radius:11px;
  font-size:11px;
  font-weight:600;
}
.quizResult.ok{display:block;background:var(--vertF);color:var(--vert)}
.quizResult.warn{display:block;background:var(--orangeF);color:var(--orange)}
.paperValidation{
  border:1px solid var(--bordure);
  border-radius:14px;
  padding:15px;
  background:#fff;
}
.formationBox{
  border:1px solid #8a949d;
  border-radius:10px;
  padding:11px 12px;
  margin:12px 0;
}
.formationBox .head{
  font-size:9px;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:6px;
  color:var(--encre);
}
.formationBox label{
  display:flex;
  gap:8px;
  align-items:flex-start;
  font-size:10.5px;
  line-height:1.4;
}
.formationBox input{width:auto;margin-top:2px}
.signatureGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:14px;
}
.signatureCard{
  border:1px solid var(--bordure);
  border-radius:12px;
  padding:11px;
}
.signatureCard .sigLabel{
  font-size:10px;
  font-weight:650;
  color:var(--encre);
  margin-bottom:7px;
}
.signatureStatus{
  font-size:9px;
  color:var(--doux);
  margin-top:5px;
}
.doc .docStatus{transition:.15s ease}
.finishBox{
  background:var(--vertF);
  color:var(--vert);
  border:1px solid #c9e1d5;
  border-radius:12px;
  padding:11px 13px;
  font-size:10.5px;
  line-height:1.45;
  margin-bottom:12px;
}
@media(max-width:760px){
  .onboardingHeroTop{grid-template-columns:1fr}
  .onboardingImportant{max-width:none}
  .formSteps{grid-template-columns:1fr 1fr}
  .formStep:last-child{grid-column:auto}
  .paperFields,.bookletGrid,.signatureGrid{grid-template-columns:1fr}
}


.cobatLogoImg{
  display:block;
  width:170px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}
.sideBrand .cobatLogoImg{
  width:175px;
}
.onboardingHeroTop .cobatLogoImg{
  width:190px;
}
@media(max-width:760px){
  .onboardingHeroTop .cobatLogoImg{width:165px}
}


/* ===== V7 — OCR / QR + rapport d'accueil ===== */
.autoTools{
  margin-top:10px;
  padding:10px 11px;
  border:1px solid #cbddea;
  background:#f5f9fc;
  border-radius:10px;
}
.autoToolsHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.autoToolsTitle{
  font-size:10.5px;
  color:var(--azur);
  font-weight:600;
}
.autoState{
  font-size:9.5px;
  color:var(--doux);
}
.autoState.running{color:var(--orange)}
.autoState.done{color:var(--vert)}
.autoState.error{color:var(--rouge)}
.autoResults{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.autoChip{
  border-radius:999px;
  padding:4px 7px;
  background:#fff;
  border:1px solid #d7e2eb;
  color:#526b80;
  font-size:9px;
}
.autoDetectedInput{
  border-color:#87b7da !important;
  background:#f8fcff !important;
}
.qrBox{
  grid-column:1/-1;
  padding:9px 10px;
  border-radius:9px;
  background:#f7f9fb;
  border:1px solid var(--bordure);
}
.qrValue{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:9.5px;
  color:#526b80;
  word-break:break-all;
  margin-top:4px;
}
.validCheck{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:9px 10px;
  background:var(--vertF);
  border:1px solid #c9e3d6;
  border-radius:9px;
  color:var(--vert);
  font-size:10.5px;
  line-height:1.4;
  cursor:pointer;
}
.validCheck input{width:auto;margin-top:2px}
.quizOption.correctAnswer{
  background:var(--vertF);
  color:var(--vert);
  border:1px solid #c7e2d4;
}
.quizOption.wrongFirst{
  background:var(--rougeF);
  color:var(--rouge);
  border:1px solid #edc7cc;
}
.quizOption .attemptBadge{
  margin-left:auto;
  flex:none;
  border-radius:999px;
  padding:2px 6px;
  font-size:8px;
  background:#fff;
  border:1px solid currentColor;
}
.quizExplain{
  margin-top:8px;
  font-size:9.5px;
  color:var(--doux);
  line-height:1.4;
}
.reportMini{
  margin-top:10px;
  border:1px solid var(--bordure);
  border-radius:11px;
  background:#f7f9fb;
  padding:10px;
  cursor:pointer;
}
.reportMini:hover{border-color:#b9cede}
.reportMiniPage{
  background:#fff;
  border:1px solid #e1e6ea;
  border-radius:7px;
  padding:9px 10px;
  box-shadow:0 4px 10px rgba(29,55,79,.04);
}
.reportMiniTop{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}
.reportMiniTitle{
  font-size:10.5px;
  color:var(--encre);
  font-weight:600;
}
.reportMiniMeta{
  font-size:8.8px;
  color:var(--doux);
  line-height:1.5;
  margin-top:5px;
}
.reportMiniScore{
  font-size:9px;
  border-radius:999px;
  padding:4px 7px;
  background:var(--azur-clair);
  color:var(--azur);
  white-space:nowrap;
}
.reportActions{
  display:flex;
  gap:8px;
  margin-top:9px;
  flex-wrap:wrap;
}
.reportModalBox{
  width:min(900px,100%);
}
.reportPaper{
  background:#fff;
  color:#202a33;
  width:100%;
  max-width:790px;
  min-height:1020px;
  margin:0 auto;
  border:1px solid #d9dfe4;
  box-shadow:0 8px 25px rgba(0,0,0,.08);
  padding:34px 38px;
}
.reportHeader{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding-bottom:14px;
  border-bottom:3px solid var(--rouge);
}
.reportLogo{
  width:185px;
  height:auto;
}
.reportDocTitle{
  text-align:right;
}
.reportDocTitle .main{
  color:var(--rouge);
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  font-weight:600;
}
.reportDocTitle .sub{
  color:#5e6e7b;
  font-size:9px;
  margin-top:3px;
}
.reportSection{
  margin-top:18px;
}
.reportSection h3{
  margin:0 0 9px;
  color:var(--azur);
  font-family:Georgia,"Times New Roman",serif;
  font-size:14px;
  font-weight:600;
  padding-bottom:5px;
  border-bottom:2px solid var(--rouge);
}
.reportInfoGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 18px;
}
.reportInfo{
  padding:6px 0;
  border-bottom:1px dashed #9ca8b2;
}
.reportInfo .lab{
  color:#7b8995;
  font-size:8.5px;
  text-transform:uppercase;
  letter-spacing:.35px;
}
.reportInfo .val{
  font-size:10.5px;
  margin-top:3px;
}

.reportLegalBox{
  margin-top:12px;
  border:1.6px solid #222;
  padding:12px 14px 10px;
  position:relative;
  break-inside:avoid;
  page-break-inside:avoid;
  background:#fff;
}
.reportLegalBox .legalLegend{
  position:absolute;
  top:-8px;
  left:18px;
  background:#fff;
  padding:0 8px;
  font-size:9px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.25px;
}
.reportLegalBox .legalRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.reportLegalBox .legalText{
  font-size:10px;
  line-height:1.35;
}
.reportLegalBox .legalYes{
  white-space:nowrap;
  font-size:17px;
  font-weight:700;
}
.reportLegalBox .legalCheck{
  display:inline-block;
  width:13px;
  height:13px;
  border:1.5px solid #111;
  margin-right:6px;
  vertical-align:-1px;
  text-align:center;
  line-height:11px;
  font-size:11px;
}
.reportLegalBox .legalRef{
  margin-top:7px;
  padding-top:6px;
  border-top:1px solid #d9dee2;
  font-size:8px;
  color:#596773;
}

.reportQuizTable{
  width:100%;
  border-collapse:collapse;
  font-size:9px;
}
.reportQuizTable th{
  background:#f2f5f7;
  color:#647887;
  text-align:left;
  padding:7px;
  border:1px solid #dde4e9;
}
.reportQuizTable td{
  padding:7px;
  border:1px solid #dde4e9;
  vertical-align:top;
}
.answerGood{color:var(--vert)}
.answerBad{color:var(--rouge)}
.answerNeutral{color:#526b80}
.reportScoreLine{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0;
}
.scorePill{
  padding:5px 8px;
  border-radius:999px;
  font-size:9px;
  border:1px solid #d9e2e8;
  background:#f7f9fa;
}
.scorePill.firstBad{background:var(--rougeF);color:var(--rouge);border-color:#ecc7cc}
.scorePill.firstGood,.scorePill.finalGood{background:var(--vertF);color:var(--vert);border-color:#c9e2d5}
.reportSignatures{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.reportSignature{
  min-height:145px;
  border:1px solid #cfd7de;
  border-radius:8px;
  padding:9px;
  text-align:center;
}
.reportSignature img{
  display:block;
  width:100%;
  height:90px;
  object-fit:contain;
  margin:3px auto 4px;
}
.reportSigEmpty{
  height:90px;
  display:grid;
  place-items:center;
  color:#9aa6af;
  font-size:9px;
}
.reportFooter{
  margin-top:24px;
  padding-top:8px;
  border-top:1px solid #dfe4e8;
  display:flex;
  justify-content:space-between;
  color:#87939d;
  font-size:8px;
}
.reportToolbar{
  max-width:790px;
  margin:0 auto 10px;
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.analysisButton{
  border:1px solid #bfd5e5;
  background:#fff;
  color:var(--azur);
  border-radius:8px;
  padding:6px 8px;
  font-size:9px;
  font-weight:600;
}
@media(max-width:720px){
  .reportPaper{padding:22px 18px;min-height:auto}
  .reportHeader,.reportInfoGrid,.reportSignatures{grid-template-columns:1fr;display:grid}
  .reportDocTitle{text-align:left}
}
@media print{
  .reportToolbar{display:none!important}
  .reportPaper{box-shadow:none;border:0;max-width:none;min-height:auto;padding:15mm}
}


/* ===== V8 — Étape 6 documents complémentaires ===== */
.optionalIntro{
  margin-bottom:14px;
  padding:11px 13px;
  border:1px solid #d6e2eb;
  background:#f7fafc;
  border-radius:11px;
  color:var(--doux);
  font-size:10.5px;
  line-height:1.45;
}
.presetGrid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin:12px 0 16px;
}
.presetBtn{
  min-height:70px;
  border:1px solid var(--bordure);
  border-radius:12px;
  background:#fff;
  color:var(--azur);
  padding:10px 8px;
  font-size:10px;
  font-weight:600;
}
.presetBtn:hover{
  background:var(--azur-clair);
  border-color:#b8d1e4;
}
.presetBtn .pIcon{
  display:block;
  font-size:18px;
  margin-bottom:5px;
}
.compCard{
  border:1px solid var(--bordure);
  border-radius:13px;
  padding:13px;
  margin-bottom:10px;
  background:#fff;
}
.compHead{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.compTitle{
  flex:1;
}
.compTitle input{
  font-weight:600;
  color:var(--encre);
}
.compDelete{
  border:0;
  background:var(--rougeF);
  color:var(--rouge);
  border-radius:8px;
  padding:7px 9px;
  font-size:9.5px;
  font-weight:600;
}
.compEmpty{
  border:1px dashed #cbd6df;
  border-radius:12px;
  padding:22px;
  text-align:center;
  color:var(--doux);
  font-size:10.5px;
}
.compType{
  display:inline-block;
  margin-top:6px;
  padding:3px 7px;
  border-radius:999px;
  background:var(--azur-clair);
  color:var(--azur);
  font-size:8.5px;
  font-weight:600;
}
.compView{
  border:1px solid var(--bordure);
  border-radius:11px;
  padding:11px;
  margin-bottom:8px;
  background:#fff;
}
.compViewTop{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.compViewTitle{
  font-size:11.5px;
  font-weight:600;
  color:var(--encre);
}
@media(max-width:780px){
  .presetGrid{grid-template-columns:repeat(2,1fr)}
}


/* ===== V9 — Illustrations du livret COBAT ===== */
.bookletVisual{
  width:100%;
  height:165px;
  margin:0 0 11px;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  border:1px solid #edf1f4;
  display:flex;
  align-items:center;
  justify-content:center;
}
.bookletVisual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}
.bookletSource{
  margin:-4px 0 9px;
  color:#9aa6af;
  font-size:8px;
  text-align:right;
}
@media(max-width:760px){
  .bookletVisual{height:135px}
}


.quizRoleBadge{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:var(--azur-clair);
  color:var(--azur);
  font-size:9px;
  font-weight:650;
  margin-bottom:8px;
}


/* ===== V16 - correction définitive des médias ===== */
.cobatLogoImg{
  display:block!important;
  width:190px!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:left center!important;
}
.sideBrand .cobatLogoImg{width:180px!important;height:auto!important}
.onboardingHeroTop .cobatLogoImg{width:205px!important;height:auto!important}
.bookletVisual{
  width:100%;
  height:195px!important;
  background:#fff!important;
  border:1px solid #edf1f4;
  border-radius:10px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.bookletVisual img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#fff!important;
}


/* ===== V17 — Contrôle Carte BTP renforcé ===== */
.btpAudit{
  margin-top:10px;
  padding:12px;
  border:1px solid #cfdde8;
  background:#f8fbfd;
  border-radius:11px;
}
.btpAuditGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:8px;
}
.btpAuditItem{
  border:1px solid #dbe4ea;
  background:#fff;
  border-radius:9px;
  padding:9px 10px;
}
.btpAuditItem .k{
  font-size:8.5px;
  color:var(--doux);
  text-transform:uppercase;
  letter-spacing:.35px;
}
.btpAuditItem .v{
  margin-top:4px;
  font-size:10.5px;
  color:var(--encre);
  font-weight:600;
  word-break:break-word;
}
.btpStatus{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:5px 8px;
  font-size:9.5px;
  font-weight:650;
}
.btpStatus.ok{background:var(--vertF);color:var(--vert)}
.btpStatus.warn{background:var(--orangeF);color:var(--orange)}
.btpStatus.bad{background:var(--rougeF);color:var(--rouge)}
.btpStatus.muted{background:#eef2f5;color:var(--doux)}
.btpActions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.btpManualBox{
  margin-top:10px;
  padding:10px;
  border-radius:9px;
  border:1px dashed #cbd6df;
  background:#fff;
}
.btpManualBox .row2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:8px;
}
.btpWarning{
  margin-top:9px;
  padding:9px 10px;
  border-radius:9px;
  font-size:10px;
  line-height:1.4;
}
.btpWarning.ok{background:var(--vertF);color:var(--vert)}
.btpWarning.warn{background:var(--orangeF);color:var(--orange)}
.btpWarning.bad{background:var(--rougeF);color:var(--rouge)}
@media(max-width:650px){
  .btpAuditGrid,.btpManualBox .row2{grid-template-columns:1fr}
}


/* ===== V18 — Analyse médicale / DUE / intérim ===== */
.autoReview{
  margin-top:10px;
  padding:10px 11px;
  border:1px solid #d5e1ea;
  background:#f8fbfd;
  border-radius:10px;
}
.autoReviewGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:8px;
}
.autoReviewItem{
  background:#fff;
  border:1px solid #dfe6eb;
  border-radius:8px;
  padding:8px 9px;
}
.autoReviewItem .k{
  font-size:8.3px;
  color:var(--doux);
  text-transform:uppercase;
}
.autoReviewItem .v{
  margin-top:3px;
  font-size:10px;
  font-weight:600;
  color:var(--encre);
}
.coherence{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border-radius:999px;
  font-size:8.8px;
  font-weight:650;
}
.coherence.ok{background:var(--vertF);color:var(--vert)}
.coherence.warn{background:var(--orangeF);color:var(--orange)}
.coherence.bad{background:var(--rougeF);color:var(--rouge)}
.coherence.muted{background:#eef2f5;color:var(--doux)}
@media(max-width:650px){
  .autoReviewGrid{grid-template-columns:1fr}
}


/* ===== V19 — Menu latéral redessiné ===== */
.sidebar{
  padding-left:14px;
  padding-right:14px;
}
.nav{
  gap:8px;
}
.navBtn{
  position:relative;
  min-height:58px;
  padding:8px 10px;
  gap:13px;
  border:1px solid transparent;
  border-radius:14px;
  font-size:12.5px;
  font-weight:600;
  color:#536b7f;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.navBtn:hover{
  background:#f6f9fb;
  border-color:#e4ebf0;
  color:var(--azur);
  transform:translateX(2px);
}
.navBtn.on{
  background:linear-gradient(90deg,#e8f2fa 0%,#f1f7fb 100%);
  border-color:#d6e6f2;
  color:var(--azur);
  box-shadow:0 5px 14px rgba(23,91,150,.06);
}
.navBtn.on:before{
  content:"";
  position:absolute;
  left:-1px;
  top:12px;
  bottom:12px;
  width:3px;
  border-radius:0 3px 3px 0;
  background:var(--azur);
}
.navIcon{
  width:40px;
  height:40px;
  border-radius:12px;
  display:grid;
  place-items:center;
  flex:none;
  background:#f0f4f7;
  color:#61788b;
  border:1px solid #e4eaf0;
  box-shadow:0 2px 6px rgba(22,47,68,.035);
  transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;
}
.navIcon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.navBtn:hover .navIcon{
  background:#fff;
  border-color:#cedeea;
  color:var(--azur);
  transform:scale(1.03);
}
.navBtn.on .navIcon{
  background:var(--azur);
  border-color:var(--azur);
  color:#fff;
  box-shadow:0 5px 12px rgba(23,91,150,.18);
}
.navLabel{
  line-height:1.25;
}
@media(max-width:900px){
  .navBtn{min-height:54px}
  .navIcon{width:38px;height:38px}
  .navIcon svg{width:21px;height:21px}
}


/* ===== V20 — petites icônes Style 1 COBAT ===== */
.navIcon{width:40px;height:40px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#0E2F54}
.navIcon svg{width:25px;height:25px;display:block}
.navBtn:hover .navIcon,.navBtn.on .navIcon{background:transparent;border-color:transparent;color:#0E2F54;box-shadow:none}
.navBtn:hover .navIcon{transform:scale(1.05)}


/* ===== V21 — menu COBAT bleu glissant au survol ===== */
.shell{
  grid-template-columns:64px minmax(0,1fr)!important;
}
.sidebar{
  position:sticky!important;
  top:0;
  width:64px!important;
  min-width:64px!important;
  height:100vh!important;
  padding:16px 8px 14px!important;
  overflow:hidden!important;
  background:#0E2F54!important;
  border-right:0!important;
  box-shadow:5px 0 18px rgba(14,47,84,.15)!important;
  transition:width .24s cubic-bezier(.2,.7,.2,1), box-shadow .24s ease!important;
  z-index:1000!important;
}
.sidebar:hover{
  width:248px!important;
  min-width:248px!important;
  box-shadow:12px 0 30px rgba(14,47,84,.24)!important;
}
.sideBrand{
  width:220px!important;
  min-width:220px!important;
  height:108px;
  padding:2px 4px 16px!important;
  margin-bottom:14px!important;
  border-bottom:1px solid rgba(255,255,255,.14)!important;
  opacity:0;
  transform:translateX(-8px);
  transition:opacity .16s ease,transform .20s ease;
}
.sidebar:hover .sideBrand{opacity:1;transform:translateX(0)}
.sideBrand .cobatLogoImg{
  width:174px!important;
  height:auto!important;
  padding:5px 7px;
  border-radius:9px;
  background:#fff;
}
.sideProject{
  margin-top:9px!important;
  color:rgba(255,255,255,.78)!important;
}
.sideNav{
  width:220px!important;
  min-width:220px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
}
.navBtn{
  width:220px!important;
  min-width:220px!important;
  min-height:52px!important;
  padding:6px 7px!important;
  gap:11px!important;
  border:0!important;
  border-radius:11px!important;
  background:transparent!important;
  color:rgba(255,255,255,.82)!important;
  box-shadow:none!important;
  transform:none!important;
  transition:background .15s ease,color .15s ease!important;
}
.navBtn:hover{
  background:rgba(255,255,255,.11)!important;
  color:#fff!important;
  transform:none!important;
}
.navBtn.on{
  background:#fff!important;
  color:#0E2F54!important;
}
.navBtn.on:before{display:none!important}
.navIcon,
.navBtn:hover .navIcon,
.navBtn.on .navIcon{
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  flex:0 0 40px!important;
  display:grid!important;
  place-items:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:currentColor!important;
  box-shadow:none!important;
  transform:none!important;
}
.navIcon svg{
  width:25px!important;
  height:25px!important;
  display:block!important;
}
.navLabel{
  white-space:nowrap!important;
  opacity:0;
  transform:translateX(-8px);
  transition:opacity .15s ease .04s,transform .18s ease .04s;
}
.sidebar:hover .navLabel{
  opacity:1;
  transform:translateX(0);
}
.sideFooter{
  width:220px!important;
  min-width:220px!important;
  border-top:1px solid rgba(255,255,255,.14)!important;
  color:rgba(255,255,255,.56)!important;
  opacity:0;
  transition:opacity .15s ease;
}
.sidebar:hover .sideFooter{opacity:1}
.sideRailMark{
  position:absolute;
  left:50%;
  top:20px;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  gap:3px;
  opacity:.65;
  transition:opacity .12s ease;
}
.sideRailMark span{
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
}
.sidebar:hover .sideRailMark{opacity:0}
.workspace{
  min-width:0!important;
  padding-left:28px!important;
}
@media(max-width:900px){
  .shell{grid-template-columns:58px minmax(0,1fr)!important}
  .sidebar{width:58px!important;min-width:58px!important;padding-left:6px!important;padding-right:6px!important}
  .sidebar:hover{width:230px!important;min-width:230px!important}
  .sideNav,.navBtn,.sideBrand,.sideFooter{width:206px!important;min-width:206px!important}
  .workspace{padding-left:20px!important}
}


/* ===== V22 — menu tiroir COBAT avec onglet vertical ===== */
:root{
  --cobat-blue:#1F5F93;
  --cobat-blue-hover:#2A6FA8;
  --cobat-red:#7C1720;
}
.shell{
  grid-template-columns:0 minmax(0,1fr)!important;
}
.sidebar{
  position:fixed!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:248px!important;
  min-width:248px!important;
  height:100vh!important;
  padding:20px 16px 16px!important;
  overflow:visible!important;
  background:var(--cobat-blue)!important;
  border-right:0!important;
  box-shadow:10px 0 28px rgba(23,67,102,.16)!important;
  transform:translateX(-248px);
  transition:transform .25s cubic-bezier(.22,.75,.24,1),box-shadow .22s ease!important;
  z-index:1000!important;
}
.sidebar:hover{
  transform:translateX(0);
  box-shadow:14px 0 34px rgba(23,67,102,.22)!important;
}
.menuTab{
  position:absolute;
  right:-52px;
  top:39%;
  width:52px;
  height:156px;
  border-radius:0 17px 17px 0;
  background:var(--cobat-red);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:12px;
  font-weight:750;
  letter-spacing:1.3px;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:8px 7px 22px rgba(74,18,24,.20);
  cursor:default;
}
.menuTab:after{
  content:"";
  position:absolute;
  inset:3px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:0 14px 14px 0;
  pointer-events:none;
}
.sideBrand{
  width:216px!important;
  min-width:216px!important;
  height:auto!important;
  padding:2px 4px 16px!important;
  margin-bottom:14px!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  opacity:1!important;
  transform:none!important;
}
.sideBrand .cobatLogoImg{
  width:178px!important;
  height:auto!important;
  padding:6px 8px;
  border-radius:10px;
  background:#fff;
}
.sideProject{
  margin-top:10px!important;
  color:rgba(255,255,255,.84)!important;
}
.sideNav{
  width:216px!important;
  min-width:216px!important;
  gap:7px!important;
}
.navBtn{
  width:216px!important;
  min-width:216px!important;
  min-height:52px!important;
  padding:6px 8px!important;
  gap:11px!important;
  border:0!important;
  border-radius:11px!important;
  background:transparent!important;
  color:rgba(255,255,255,.90)!important;
  box-shadow:none!important;
  transform:none!important;
}
.navBtn:hover{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
}
.navBtn.on{
  background:#fff!important;
  color:var(--cobat-blue)!important;
}
.navBtn.on:before{display:none!important}
.navIcon,
.navBtn:hover .navIcon,
.navBtn.on .navIcon{
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  flex:0 0 40px!important;
  display:grid!important;
  place-items:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:currentColor!important;
  box-shadow:none!important;
  transform:none!important;
}
.navIcon svg{
  width:25px!important;
  height:25px!important;
}
.navLabel{
  opacity:1!important;
  transform:none!important;
  white-space:nowrap!important;
}
.sideFooter{
  width:216px!important;
  min-width:216px!important;
  border-top:1px solid rgba(255,255,255,.18)!important;
  color:rgba(255,255,255,.62)!important;
  opacity:1!important;
}
.workspace{
  margin-left:0!important;
  padding-left:32px!important;
}
@media(max-width:900px){
  .sidebar{
    width:228px!important;
    min-width:228px!important;
    transform:translateX(-228px);
  }
  .menuTab{
    right:-46px;
    width:46px;
    height:140px;
  }
  .sideBrand,.sideNav,.navBtn,.sideFooter{
    width:198px!important;
    min-width:198px!important;
  }
}


/* ===== V23 — correctif affichage menu tiroir ===== */
.shell{
  display:block !important;
  min-height:100vh !important;
}
.workspace{
  position:relative !important;
  z-index:1 !important;
  min-width:0 !important;
  width:auto !important;
  margin-left:0 !important;
  padding:28px 32px 38px 92px !important; /* laisse l'espace pour l'onglet MENU */
  box-sizing:border-box !important;
}
.sidebar{
  z-index:1002 !important;
}
.menuTab{
  z-index:1003 !important;
}
.topbar,
.homeStats,
.homeActions,
.homeCompanies,
.regWrap,
.ficheWrap,
.onboardingWrap{
  position:relative;
  z-index:1;
}
@media(max-width:900px){
  .workspace{
    padding-left:78px !important;
    padding-right:20px !important;
  }
}


/* ===== V24 — correction onglet menu + icônes affinées ===== */
:root{
  --cobat-blue:#2A6FA8;
  --cobat-blue-deep:#235E90;
}
.menuTab{
  background:var(--cobat-blue) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.28) !important;
  box-shadow:8px 7px 22px rgba(29,84,128,.20) !important;
  writing-mode:initial !important;
  transform:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  font-size:11px !important;
  font-weight:750 !important;
  letter-spacing:.8px !important;
}
.menuTab:after{
  border-radius:0 14px 14px 0 !important;
}
.menuTab span{
  display:block;
  line-height:1;
}

.navIcon,
.navBtn:hover .navIcon,
.navBtn.on .navIcon{
  color:currentColor !important;
}

.navIcon svg{
  width:23px !important;
  height:23px !important;
  display:block !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.7 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

.navBtn{
  font-weight:600 !important;
}

.navBtn.on{
  color:var(--cobat-blue-deep) !important;
}


/* ===== V25 — onglet MENU dans la longueur + boutons rétablis ===== */
.menuTab{
  background:#2A6FA8 !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.26) !important;
  box-shadow:8px 7px 22px rgba(29,84,128,.20) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}
.menuTab span{
  display:block !important;
  transform:rotate(-90deg) !important;
  transform-origin:center center !important;
  font-size:12px !important;
  font-weight:750 !important;
  letter-spacing:1.2px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
.menuTab:after{
  border-radius:0 14px 14px 0 !important;
}

/* sécurise l'affichage des 4 boutons */
.sideNav{
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
}
.sideNav .navBtn{
  display:flex !important;
  align-items:center !important;
  visibility:visible !important;
  opacity:1 !important;
}
.sideNav .navLabel{
  opacity:1 !important;
  transform:none !important;
}
.navIcon svg{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.7 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}


/* ===== V26 — statut global ouvriers + alertes détaillées ===== */
.workerGlobalStatus{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:6px 9px;
  border-radius:999px;
  font-size:9px;
  font-weight:700;
  white-space:nowrap;
}
.workerGlobalStatus i{
  width:8px;
  height:8px;
  border-radius:50%;
  flex:none;
}
.workerGlobalStatus.authorized{background:#e7f5ee;color:#18784f}
.workerGlobalStatus.authorized i{background:#239b69}
.workerGlobalStatus.regularize{background:#e4f8fa;color:#087f8c}
.workerGlobalStatus.regularize i{background:#18a9b8}
.workerGlobalStatus.denied{background:#fbe8e8;color:#a52b32}
.workerGlobalStatus.denied i{background:#c83c45}
.workerGlobalStatus.progress{background:#edf1f4;color:#647582}
.workerGlobalStatus.progress i{background:#8b99a4}

.alertPanel{
  margin-top:16px;
  border:1px solid var(--bordure);
  border-radius:15px;
  background:#fff;
  overflow:hidden;
  box-shadow:var(--ombre-carte);
}
.alertPanelHead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:14px 16px;
  border-bottom:1px solid #edf1f4;
}
.alertPanelHead h2{
  margin:0;
  font-size:14px;
  color:var(--encre);
}
.alertPanelHead span{
  font-size:9.5px;
  color:var(--doux);
}
.alertList{display:flex;flex-direction:column}
.alertLine{
  width:100%;
  border:0;
  border-bottom:1px solid #edf1f4;
  background:#fff;
  padding:11px 14px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  text-align:left;
  cursor:pointer;
}
.alertLine:last-child{border-bottom:0}
.alertLine:hover{background:#f8fafb}
.alertIcon{
  width:32px;
  height:32px;
  border-radius:9px;
  display:grid;
  place-items:center;
  font-size:15px;
  font-weight:750;
}
.alertLine.bad .alertIcon{background:#fbe8e8;color:#b12b35}
.alertLine.warn .alertIcon{background:#fff2db;color:#ad6900}
.alertLine.progress .alertIcon{background:#edf1f4;color:#697985}
.alertTitle{
  font-size:10.5px;
  font-weight:700;
  color:var(--encre);
  line-height:1.3;
}
.alertMeta{
  margin-top:3px;
  font-size:9px;
  color:var(--doux);
}
.alertArrow{
  color:var(--azur);
  font-size:16px;
  padding:0 4px;
}
.statusLegend{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:14px 0;
}
.statusLegend .workerGlobalStatus{font-size:8.5px}
@media(max-width:700px){
  .alertLine{grid-template-columns:30px minmax(0,1fr) auto;padding:10px}
}


/* ===== V27 — sortie chantier et archivage ===== */
.workerGlobalStatus.archived{
  background:#e9edf1;
  color:#596a76;
}
.workerGlobalStatus.archived i{background:#7e8d98}

.archiveFilter{
  width:auto;
  min-width:145px;
}
.exitCell{
  min-width:138px;
}
.exitDateInput{
  width:128px;
  min-height:32px;
  padding:5px 7px;
  border:1px solid var(--bordure);
  border-radius:8px;
  background:#fff;
  color:var(--encre);
  font-size:9.5px;
}
.archiveNote{
  margin-top:4px;
  font-size:8.5px;
  color:var(--doux);
}
.tableLink.archive{
  color:#6a7882;
}
.tableLink.reactivate{
  color:var(--vert);
}
.archiveSummary{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 7px;
  border-radius:999px;
  background:#edf1f4;
  color:#687984;
  font-size:8.5px;
  font-weight:650;
}


/* ===== V28 — libellés des icônes d'application ===== */
.appIconLabelTuned{
  margin-top:-8px !important;
  font-size:16px !important;
  line-height:1.15 !important;
  font-weight:700 !important;
  letter-spacing:.2px !important;
}
.appIconCardTuned{
  justify-content:flex-start !important;
}


/* ===== V30 — INTÉGRATION PORTAIL COBAT ===== */
.cobatPortalBack{display:none!important}

.cobatPortalGate{
  position:fixed;
  inset:0;
  z-index:99990;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(17,40,61,.82);
  backdrop-filter:blur(5px);
}
.cobatPortalGate.hidden{display:none!important}
.cobatPortalGateCard{
  width:min(510px,100%);
  padding:25px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
}
.cobatPortalGateBrand{
  color:#175b96;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}
.cobatPortalGateTitle{
  margin-top:7px;
  color:#1a3349;
  font-size:22px;
  font-weight:700;
}
.cobatPortalGateText{
  margin-top:9px;
  color:#74879a;
  font-size:12px;
  line-height:1.55;
}
.cobatPortalGateActions{
  display:flex;
  gap:8px;
  margin-top:18px;
  flex-wrap:wrap;
}
.cobatPortalGateActions button{
  border:0;
  border-radius:10px;
  padding:10px 14px;
  background:#175b96;
  color:#fff;
  font-size:12px;
  font-weight:700;
}
.cobatPortalStatus{
  position:fixed;
  left:16px;
  bottom:14px;
  z-index:810;
  max-width:min(420px,calc(100vw - 32px));
  padding:8px 11px;
  border:1px solid #dce4eb;
  border-radius:10px;
  background:rgba(255,255,255,.96);
  color:#607486;
  font-size:10px;
  box-shadow:0 5px 18px rgba(29,55,79,.10);
}
.cobatPortalStatus strong{color:#175b96}

/* Lecture seule : aucune action modifiant les dossiers */
body.cobat-registre-readonly [onclick^="nouvelOuvrier"],
body.cobat-registre-readonly [onclick^="modifierOuvrier"],
body.cobat-registre-readonly [onclick^="nouvelAccueil"],
body.cobat-registre-readonly [onclick^="preparerDossier"],
body.cobat-registre-readonly [onclick^="accueillirOuvrier"],
body.cobat-registre-readonly [onclick^="archiverOuvrier"],
body.cobat-registre-readonly [onclick^="reactiverOuvrier"],
body.cobat-registre-readonly [onclick^="supprimerOuvrier"],
body.cobat-registre-readonly [onchange^="majDateSortie"]{
  display:none!important;
}

/* Éditeur : gestion opérationnelle oui, suppression définitive non */
body.cobat-registre-editor [onclick^="supprimerOuvrier"]{
  display:none!important;
}

@media(max-width:760px){
  .cobatPortalBack{
    top:6px;
    right:6px;
    min-height:30px;
    padding:0 9px;
    font-size:9px;
  }
  .cobatPortalStatus{
    left:8px;
    bottom:8px;
    max-width:calc(100vw - 16px);
  }
}


/* V56 — Chef de chantier : consultation basique Registre */
body.cobat-registre-basic .tableActions { display:none !important; }
body.cobat-registre-basic .exitDateInput { display:none !important; }
body.cobat-registre-basic .registerTable th:last-child,
body.cobat-registre-basic .registerTable td:last-child { display:none !important; }
body.cobat-registre-basic .addCard,
body.cobat-registre-basic [onclick^="nouvelOuvrier"],
body.cobat-registre-basic [onclick^="modifierOuvrier"],
body.cobat-registre-basic [onclick^="nouvelAccueil"],
body.cobat-registre-basic [onclick^="preparerDossier"],
body.cobat-registre-basic [onclick^="accueillirOuvrier"],
body.cobat-registre-basic [onclick^="archiverOuvrier"] { display:none !important; }



/* ============================================================
   COBAT V47 — TIROIRS UNIFORMISÉS
   Portée : menus latéraux uniquement.
============================================================ */
.cobatUnifiedDrawerBrand,
.cobatUnifiedDrawerBrand *{
  box-sizing:border-box !important;
}

.cobatUnifiedDrawerBrand{
  width:100% !important;
  height:146px !important;
  min-height:146px !important;
  flex:0 0 146px !important;
  margin:0 !important;
  padding:15px 16px 12px !important;
  background:rgba(20,68,106,.18) !important;
  border-bottom:1px solid rgba(255,255,255,.18) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:6px !important;
  text-align:center !important;
  overflow:hidden !important;
}

.cobatUnifiedDrawerLogoBox{
  width:190px !important;
  height:72px !important;
  min-height:72px !important;
  margin:0 auto 1px !important;
  padding:8px 12px !important;
  border-radius:11px !important;
  background:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:0 3px 10px rgba(12,47,75,.10) !important;
  overflow:hidden !important;
}

.cobatUnifiedDrawerLogo{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
  padding:0 !important;
}

.cobatUnifiedDrawerApp{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:#fff !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:11px !important;
  line-height:14px !important;
  font-weight:800 !important;
  letter-spacing:.45px !important;
  text-transform:uppercase !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.cobatUnifiedDrawerContext{
  width:100% !important;
  margin:0 !important;
  padding:0 4px !important;
  color:rgba(255,255,255,.76) !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:9px !important;
  line-height:12px !important;
  font-weight:600 !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* Tiroirs à largeur commune */
.cobatDrawer,
.cobatPteDrawer,
.sidebar{
  width:290px !important;
  min-width:290px !important;
  padding:0 !important;
  background:linear-gradient(180deg,#2A6FA8 0%,#235E90 100%) !important;
  border-radius:0 18px 18px 0 !important;
  box-sizing:border-box !important;
}

/* Les sidebars des apps Personnel / Consultations / Pointage utilisent
   une translation chiffrée dans leur CSS d'origine : on la recale à 290px. */
.sidebar{
  transform:translateX(-290px) !important;
}
.sidebar:hover,
.sidebar.open{
  transform:translateX(0) !important;
}

/* Navigation identique pour les sidebars */
.sideNav{
  width:100% !important;
  padding:14px 9px !important;
  margin:0 !important;
  gap:6px !important;
  box-sizing:border-box !important;
}
.navBtn{
  width:100% !important;
  min-height:48px !important;
  margin:0 !important;
  padding:6px 11px !important;
  border-radius:11px !important;
  box-sizing:border-box !important;
}
.sideFooter{
  width:calc(100% - 18px) !important;
  margin:0 9px !important;
  padding:13px 8px 14px !important;
  box-sizing:border-box !important;
}

/* Navigation Commandes / PTE */
.drawerNav,
.pteDrawerNav{
  padding:14px 9px !important;
  margin:0 !important;
}
.drawerNavBtn,
.pteDrawerNavBtn{
  min-height:48px !important;
  border-radius:11px !important;
}

/* Plans est déjà en tiroir 290px : on uniformise le bloc marque et nav */
.side-drawer{
  width:290px !important;
  box-sizing:border-box !important;
  background:linear-gradient(180deg,#2A6FA8 0%,#235E90 100%) !important;
}
.side-nav{
  padding:14px 9px !important;
  margin:0 !important;
}
.side-nav-btn{
  min-height:48px !important;
  border-radius:11px !important;
}

/* Onglet extérieur commun */
.side-handle,
.drawerTab,
.pteDrawerTab,
.menuTab{
  top:39% !important;
  width:52px !important;
  height:156px !important;
  padding:0 !important;
  border-radius:0 17px 17px 0 !important;
  background:#235E90 !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.25) !important;
  box-shadow:8px 7px 22px rgba(29,84,128,.20) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.side-handle span,
.drawerTab span,
.pteDrawerTab span,
.menuTab span{
  writing-mode:initial !important;
  display:block !important;
  transform:rotate(-90deg) !important;
  transform-origin:center center !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:1.15px !important;
  white-space:nowrap !important;
}

/* Anciens en-têtes neutralisés */
.side-head,
.drawerHeader,
.pteDrawerHeader,
.sideBrand{
  display:none !important;
}

@media(max-width:700px){
  .cobatDrawer,
  .cobatPteDrawer,
  .sidebar,
  .side-drawer{
    width:260px !important;
    min-width:260px !important;
  }
  .sidebar{
    transform:translateX(-260px) !important;
  }
  .sidebar:hover,
  .sidebar.open{
    transform:translateX(0) !important;
  }
  .cobatUnifiedDrawerBrand{
    height:136px !important;
    min-height:136px !important;
    flex-basis:136px !important;
    padding:13px 12px 10px !important;
  }
  .cobatUnifiedDrawerLogoBox{
    width:178px !important;
    height:66px !important;
    min-height:66px !important;
  }
  .side-handle,
  .drawerTab,
  .pteDrawerTab,
  .menuTab{
    width:46px !important;
    height:146px !important;
  }
}


/* ===== V52 — MENTIONS DISCRÈTES EN BAS DE PAGE ===== */
.cobatCreditsLegal{
  width:min(1180px,calc(100% - 28px));
  margin:18px auto 8px;
  padding:4px 8px;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#8a969f;
  font-family:Arial,Helvetica,sans-serif;
  font-size:8px;
  line-height:1.45;
  text-align:center;
  letter-spacing:0;
  opacity:.88;
}
.cobatCreditsLegal .credit,
.cobatCreditsLegal .ref,
.cobatCreditsLegal .legal{
  display:block;
  margin:0;
  padding:0;
  color:inherit !important;
  background:transparent !important;
  font-weight:400;
}
.cobatCreditsLegal .credit{
  font-weight:600;
}
.cobatCreditsLegal .ref{
  margin-top:1px;
}
.cobatCreditsLegal .legal{
  margin-top:2px;
  font-size:7.5px;
}
@media(max-width:700px){
  .cobatCreditsLegal{
    width:calc(100% - 18px);
    margin:14px auto 6px;
    padding:3px 5px;
    font-size:7.5px;
  }
  .cobatCreditsLegal .legal{
    font-size:7px;
  }
}
@media print{
  .cobatCreditsLegal{
    color:#777;
    opacity:1;
    page-break-inside:avoid;
  }
}

/* V2.1.45 — personnel en insertion */
.insertionToggle{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--bordure);border-radius:10px;background:#fff;cursor:pointer;transition:.15s ease}.insertionToggle:hover{border-color:#b9cad7;background:#f9fbfc}.insertionToggle input{position:absolute;opacity:0;pointer-events:none}.insertionCheck{width:22px;height:22px;border:1px solid #bfcbd5;border-radius:6px;display:grid;place-items:center;flex:none;color:transparent;background:#fff;font-size:13px;font-weight:800}.insertionToggle.on{border-color:#8ab6a1;background:#f0f8f4}.insertionToggle.on .insertionCheck{border-color:#2f8061;background:#2f8061;color:#fff}.insertionToggle strong{display:block;font-size:12px;color:var(--encre);font-weight:650}.insertionToggle small{display:block;margin-top:3px;font-size:9.5px;line-height:1.4;color:var(--doux)}.insertionBadge{display:inline-flex;margin-top:4px;padding:3px 6px;border-radius:999px;background:#e8f5ee;color:#237354;font-size:8px;font-weight:750;letter-spacing:.15px}


/* COBAT V2.3.84 — navigation rapide en modification de dossier */
.editQuickNav{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin:0 0 12px;padding:8px;
  border:1px solid #d8e1ea;border-radius:12px;background:#f8fafc;
}
.editQuickNavBtn{
  min-height:38px;padding:0 14px;border:1px solid #cbd8e4;border-radius:9px;
  background:#fff;color:#17324a;font:700 12px Arial,Helvetica,sans-serif;cursor:pointer;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.editQuickNavBtn:hover{background:#eef6fd;border-color:#7fb2df;color:#0b5cad;}
.editQuickNavBtn.active{background:#0b5cad;border-color:#0b5cad;color:#fff;box-shadow:0 3px 10px rgba(11,92,173,.18);}
@media(max-width:767px){
  .editQuickNav{display:grid;grid-template-columns:1fr;gap:6px;}
  .editQuickNavBtn{width:100%;text-align:left;}
}


/* COBAT V2.4.12 — préparation anticipée d'un dossier d'accueil */
.workerGlobalStatus.prepared,
.tableStatus.prepared{
  background:#eef1f4;
  color:#687887;
  border-color:#d8e0e6;
}
.preparedWorkerRow,
.preparedWorkerRow:hover{
  background:#f2f4f6 !important;
}
.preparedWorkerRow td{
  background:#f2f4f6 !important;
  color:#75818c;
}
.preparedWorkerRow .tableCompany,
.preparedWorkerRow .tablePerson,
.preparedWorkerRow .tableRole{
  color:#75818c;
}
.preparedWorkerRow .statusType{
  background:#e8ecef;
  color:#687887;
}
.prepareWorkerBtn{
  border-color:#aebac5;
  color:#365064;
  background:#f7f9fb;
}
.prepareWorkerBtn:hover{
  border-color:#7f92a3;
  background:#eef3f7;
}
.tableLink.welcome{
  color:#0B5CAD;
  background:#D8ECFF;
  border-radius:7px;
  padding:5px 8px;
}
.preparedWorkerRow .exitDateInput{
  background:#f8fafb;
}
